Chapter 1. Introduction

Introducing CTransifex

[Note]Note

CTransifex is a Joomla extension made for Joomla developers.

As a Joomla developer you should be no stranger to the problems associated with the distribution of multilingual extensions. In the past our users were sending translations for our extensions through mail or they were uploading them to our forum. It was really a tedious task to keep a track of the latest translations. What do you do when a language file needs to be updated? How do you contact the user who has given you the original translation?

Thanks to transifex.com this is a problem of the past. If you haven't heard about transifex yet, you should go and check them out! Thanks to their online platform users are able to translate the source language files of your extensions into any language they speak. Everything is done online, you don't have to download zip files to see how much of a file is translated. If you update a source file, then it is immediately visible to your translators that there are strings that need to be updated.

This tremendously improves the translation process - you don't need to exchange files with your users since everything is done from a central location.

Last but not least - if you join a translation pool such as opentranslators.org - you'll have a reach to 1000s of translators willing to translate your extensions.

Opentranslators & transifex greatly improved the quality of the translations of our extension, but suddenly we had a new problem. How to distribute those translations in the most effective way? In the past we were creating a single installation package of our extensions that contained all of the available translations. Now this was fine, but translators are always few days behind... that meant that we had to distribute our extensions with non-complete language files and when a translation is available we had to update the whole package to add it. As you can imagine this is not a very effective process. Since transifex offers a powerful API, we decided that it was time to automate the process.

Now instead of distributing the extensions with the currently available language translations we distribute them with only the source language (English in our case). If the user needs a French, German or whatever translation - he can come to our website and download a language pack that would contain that translation. The best part of those language packs is that they are automatically generated. Whenever a translator updates a language file on the transifex server, the language pack on our server will be updated as well. Once setup we don't have to do anything to serve those language packs to our users. The added benefit for our users is that they can always see how complete each language pack is, what was the latest update date & if they want they can head up to transifex and translate the remaining strings.