Wednesday, September 26, 2012 - 09:15
Written by

Extensions are a growing part of the CiviCRM way of doing things. We need to develop a process and toolset to facilitate getting them translated and making those translations easily installable. This post is intended to lay out some issues and a potential approach in order to generate discussion.

Here are some assumptions and suggestions I have:

  • Extension developers should be responsible for coding their extensions with ts(), and can be expected to do things like extract strings from their extension and upload somewhere for translation.
  • Transifex is the tool used for translating CiviCRM strings. It has a team for each language translation, who do the translations. This approach is working fairly well. Having extension strings presented for translation in the same space, and displaying percent translated for them, etc. would be ideal.
  • Translations are done in spurts and at somewhat unpredictable times, depending on the interest and availability of volunteer translators and their needs. I believe pushes are made when a new major release is coming out so that the translation files are reasonably complete when the first stable is released. The release cycle for extensions is not going to track core directly, so it would be good if translation files can be picked up when they become available.
  • Ideally there would be an automated process for building the translation files needed by extensions from the data in Transifex, which would feed them to a location where the autodownloader of extensions could get them. So if an admin with a Spanish - Portuguese site installs ExtensionA, it will be able to find the Spanish and Portuguese files for it at some central location using the extension name in the url somehow. In other words, the Extension Developer would not be involved in the translation process or in distributing the resulting translation files.

This approach would let developers concentrate on developing, maintain and enhance the role of the translation community and where and how they work, and fulfill the promise of one-click installations of extensions for non-US English sites.

The challenges and areas of work are in automating the conversion of data in Transifex into files able to be used by CiviCRM, and in enhancing the auto-downloading of extensions to pickup of these files if they are available.


I have started implementing extension i18n support: CRM-12446 (for 4.4, may be backported to 4.3.6).