Developer process for translating GitLab
Managing all translation files inside the GitLab repository manually might become a bit of a hassle and could cause issues like https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12044.
-
CE/EE developers make strings internationalizable in the code
-
New strings to internationalize are synced up to the translation service for each
master
pipeline (only if any new strings are found of course)Already translated strings could also be synced up, allowing outside contributors who prefer other tools to keep using them. We will need to figure out how the translation service handles this so we don't overwrite translations.
-
Translators translate new strings in the translation service
-
Translations are synced down regularly (e.g. every day/week, using a scheduled pipeline), and a MR is automatically created
Important note: Since the translation files (.pot
& .po
) are hard to merge, I think we should only upload the EE-version of the .pot
.
And when we sync down the .po
files, we should use the same ones for EE & CE. That way CE will have a few translations that it doesn't use, but that shouldn't cause any issues.
Requirements for the translation service API:
- Allow uploading
.pot
updates - Allow uploading
.po
files (Double check: Don't overwrite translations) - Allow downloading
.po
files
Related: https://gitlab.com/gitlab-org/gitlab-ce/issues/4012