Version 5 (modified by davea, 4 years ago) (diff)



Many parts of BOINC have translatable strings. The general translation process is

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

The set of parts is as follows. Each one has its own template.

For each one these parts, we need to document:

  • how the template is made (e.g. html/ops/build_po.php)
  • who makes it, and when
  • how it gets uploaded to transifex
  • when and how the .po files are downloaded from transifex
  • for files in the BOINC repo, when and where they're committed
  • how the .po files are deployed
  • the mechanism for using the .po files (e.g. for PHP strings)

Project web sites (generic part)

Project web sites (project-specific part)

The BOINC web site

The Manager

The client

Mac installer

Translations and branches

For the parts involving software releases (server: project web; client: Manager, Client, Installer), I propose that the set of templates be based on master. The templates should be generated as a github commit action. Most commits won't change the templates. When one does, it should be automatically updated on transifex.

When preparing to make a release branch (client or server) we'll notify the translators and encourage them to bring translations up to date. Before creating the release branch, we'll commit the latest .po files to master.

This means that once the release branch is made, its translations won't change. This is correct, since the changes to release branches are bug fixes that don't involve changes to translatable strings.



txclient: upload templates to transifex

Workflow is: build translation templates in release branch. Check them into master.

When make a release branch, make the templates. All subsequent translation is for the new branch.

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

Central to the smooth use of this platform is the TransifexGithub bridge.

txgh handles the following job functions:

  • Updates Transifex's copy of the templates when a updated localization template is committed.
  • Commits completed localizations back to Github.

From a developer perspective they only need to commit updated localization templates for all the localizers to be notified of the changes. When localizations have been completed the updated localization files will automatically be committed for use by the community.

NOTE: At present, the Transifex platform is considered the authoritative source for localization. If someone commits changes to localizations directly into the BOINC github repository (e.g. via a Pull Request) they will get overwritten by txgh when someone changes a translation on Transifex.

Transifex Workflow

Here is some documentation on using Transifex:

TransifexGithub Bridge

Instructions for setting up a new bridge server can be found here:

Additional documentation from Transifex:

The Transifex configuration file is stored in the BOINC source repo at: boinc/locale/txconfig