... | ... | @@ -4,11 +4,11 @@ |
|
|
|
|
|
In a somewhat reverse order, the life of a translation string in CiviCRM:
|
|
|
|
|
|
* When CiviCRM does a string lookup with `ts` to fetch the translation, it must find a matching string in the gettext `mo` dictionary for the target language.
|
|
|
* The `mo` files are shipped in the localisation files (ex: `civicrm-5.x.x-l10n.tar.gz`) on the [download](https://civicrm.org/download) page.
|
|
|
* When CiviCRM does a string lookup with `ts` to fetch the translation, it must find a matching string in the gettext mo dictionary for the target language.
|
|
|
* The .mo files are shipped in the localisation files (ex: civicrm-5.x.x-l10n.tar.gz) on the [download](https://civicrm.org/download) page.
|
|
|
* Those translation tar.gz files are generated during the release process of the various CiviCRM archives (CMS-specific + translation).
|
|
|
* The release scripts fetch the `mo` files from gcloud, where they were uploaded by a [Jenkins job](https://test.civicrm.org/view/i18n/) that runs daily. From `mo` to `po` is basically the process of indexing the plain text `po` file in a binary format efficient for fast lookups.
|
|
|
* To build the `mo` files, the Jenkins Job fetches the `po` (source / plain text) from the [gitlab translation repository](https://lab.civicrm.org/dev/translation). This repository is updated daily, as part of the same daily jenkins job. This repo is a safeguard in case Transifex disappears. The repo is also [mirrored on github](https://github.com/civicrm/l10n/).
|
|
|
* The release scripts fetch the .mo files from gcloud, where they were uploaded by a [Jenkins job](https://test.civicrm.org/view/i18n/) that runs daily. From .mo to .po is basically the process of indexing the plain text .po file in a binary format efficient for fast lookups.
|
|
|
* To build the .mo files, the Jenkins Job fetches the .po (source / plain text) from the [gitlab translation repository](https://lab.civicrm.org/dev/translation). This repository is updated daily, as part of the same daily jenkins job. This repo is a safeguard in case Transifex disappears. The repo is also [mirrored on github](https://github.com/civicrm/l10n/).
|
|
|
* The daily fetch from Transifex basically does a `tx pull -a -t` (pull all translations) and commits them to github.
|
|
|
|
|
|
Now, for the string to exist on Transifex, we need to run the extraction from the CiviCRM source code. This process is done manually, and will be described more in detail below. Short overview:
|
... | ... | |