Translating

Our software is used widely around the globe, so having proper internationalization/translations is very important. As no single person can speak all the different languages in the world, we require the help of our community to help us and take care of translating our software to the languages they know.

Workflow

We currently use Transifex to manage everything. Our organizational page can be found here.

Submitting Translations

Our translations are provided by volunteers. To improve consistency and quality we prefer to have language coordinators on Transifex to manage individual languages.

You can find more information about getting started with Transifex here.

Unfortunately, we haven't done a good job maintaining our Transifex projects over the years and we're still in the process of addressing that. So please be patient with us in this regard.

String Freeze

Historically we would follow a process known as a String Freeze. This process gives the translators the opportunity to get their supported languages to 100% translated for the release.

About a week before a release, translators are notified of the upcoming release and changes to strings in the source code will not be accepted until the release has been completed.

We haven't been doing string freezes for awhile now as there hasn't been much need due to our unique situation. Pidgin 2 is feature frozen and Pidgin 3 and the accompanying libraries aren't quite ready for general usage yet.

That said, we now have a Translations category on our Discourse for announcements, including string freezes, and other discussions.

Integration

If you look at any of our repositories and browse their contents, you'll find a directory called po/. In it we store all the different translations, each one in its own <lang>.po file.

These files are downloaded from Transifex and committed to the appropriate repository via our release process.