1 AdminLocalize
Vitalii Koshura edited this page 2023-04-10 01:58:41 +02:00

Translations

Many parts of BOINC have translatable strings. The translation process is documented on TranslationSystem, the general process is

  • build templates (.pot files) and upload to transifex
  • volunteers translate on transifex
  • download translations (.po files) from transifex
  • deploy

The translation manager creates new templates on a regular basis or after it is requested by a committer (e.g. a new feature was added to the master branch). Volunteers on transifex should be regularly updated and asked to translate missing strings. The translation manager updates the finished translations regularly or as part of the release process (see below).

The process is largely automated by scripts and results in atomic commits that the translation manager adds to the correct branch at the time. The goal is to have a consistent set of templates and translations in master and release branches.

The process is largely the same for all parts of BOINC with some special handling required for

Project web sites (project-specific part)

See TranslationSystem#Projectwebsites

The BOINC web site

Also see TranslationSystem#TheBOINCwebsite

Deploy:

  • download BOINC Web zip from transifex, unzip
  • use boinc-site/translate_rename to rename .po files
  • move files to projects/dev/html/languages/project_specific_translations
  • dev/html/ops/update_translations.php

Translations and branches

The Transifex BOINC project is currently setup to only hold one set of templates for which translations are stored. This is either the set of templates from the master branch or a release branch. The translation manager needs to keep track of where the current templates come from and update translations accordingly. When preparing to make a release branch (client or server) the release manager will notify the translation manager with a timeline. The translation manager will make sure that the templates on transifex are from the master branch and were recently updated (see TranslationSystem on how to do this). The translation manager will then notify the translators and encourage them to bring translations up to date.

Shortly before creating the release branch the translation manager updates translations from transifex so that the release branch contains the most up to date translations. It is advisable to not change templates in the release branch and keep the templates on transifex in line with the release branch for some time since translation errors or updates are often found during testing the new release. An updated translation can be easily added to the release branch as a bugfix.

Once the release is stable and no more translation change are expected the templates on transifex can be updated with the ones from the master branch. After that has happened it is not advisable to switch back to older templates on transifex (to update translations of an older release) because newer translations get lost and need to be reentered when switching back.


Transifex

BOINC's localization efforts are focused around the Transifex localization platform. You can find it here.

NOTE: At present, the Transifex platform is considered the authoritative source for localization. If someone commits changes to translations directly into the BOINC github repository (e.g. via a Pull Request) they will get overwritten the next time translations are updated from Transifex.

Transifex Workflow

Here is some documentation on using Transifex: http://docs.transifex.com/tutorials/content

The Transifex configuration file is stored in the BOINC source repo at: .tx/config