Somewhere back in 2005 the first website that I've ever build with Joomla had to be in Bulgarian. Back then Joomla was in version 1.0 and more or less websites that needed a language other than English were really hard to do. I remember downloading a hacked version that made joomla utf8 aware, so that one could properly encode Cyrillic in the DB... It was a real pain in....
Then few years later Joomla 1.5 came out and a lot of the problems that non-english speakers had when making websites were gone. Joomla was using utf8, it was possible for each extension to distribute an .ini file with the strings that needed translations (no more php files for that).
Then in 2008 I got into extension development with ccomment and I obviously had to look at the problem from another perspective - the one of the developer. I pretty much ignored it for a long time. In the beginning people would send me translations per email, upload them to the forum etc. I on my side would zip them, upload them to the server etc. The usual annoying problems starting to show up - user A sends a translation over email for French, user B uploads a translation for french in the forum. Now which translation should I get??? How do I ensure that the translation is always up to date? And you can imagine that whenever you start to have a lot of translations and a lot of extensions - manually uploading zip files to the server is a nightmare!
1 year ago I heard about transifex - an online platform promising to make software translation easy! After my initial problems with setting it up I just loved it. Now whenever someone wanted to translate an extension I would say - go over here and translate it online! And this works pretty good. I don't have to worry about the latest version of a translation, I don't have to worry if I'm going to override something that was already translated etc.
Transifex is awesome, but it solved just one part of the problem. What remained was how to distribute those translations?
I decided that instead of wasting my time with uploading each language to the server, I would locally download all the available translations and I'll add them to the main extension package. Now this works more or less. But there are few obvious problems.
- Once you create a new version of your extension you add new language strings that people need to translate.
- What happens when there are corrections to a file
- When distributing the extension with all available language files - the language files take a lot of KB in the zip package.
The most annoying part for me was that whenever somebody translated something I could not immediately include it in the package, I had to wait for the next release... In the meantime users could not profit from the translation...
This was troubling me for a lot of time. I was always getting emails from people that want to have the latest extension translation in their language.... So around a month ago I thought - enough is enough! Obviously the way I've been distributing the translations was not good enough. It was time consuming for me & at the same time users couldn't benefit from the latest translations.
I had a look at the transifex API and I figured - hm I could use this thing and write a script to download all the files & automatically make joomla language packs that users could install. Now a script is great, but I hate scripts - I really like to point and click :). That is when I thought - instead of a script, write a joomla extension that other developers could use as well! And here we have it! CTransifex is a joomla extension that would let you distribute translations with ease.
Once you add you project & provide your transifex credentials - you just click the sync button and we create the zip files! Since a picture is worth 1000 words and I really don't feel like writing that much here are few screenshots :)
Just as a side note to my fellow developers! Please read the documentation! It will save you time!
Download | Documentation | Github | Frontend demo | ForumTo take advantage of over 800 experienced Joomla translators with a joomla specific translation memory - check out http://opentranslators.org