Project

General

Profile

Development translations » History » Version 3

« Previous - Version 3/16 (diff) - Next » - Current version
johu, 09/03/2010 10:55 AM
import stuff from http://quassel-irc.org/node/113


Translations

General

After doing some more experimenting with translation workflows, our Master of Translation Daniel "al" Albers has agreed to support Transifex as an additional means to create and maintain translations for Quassel. Thus, people not having or wanting a Launchpad account can use the Transifex portal for contributing translations now!

Since we're not dependending on Ubuntu downstream for managing the translations at Transifex, we are a bit more flexible when it comes to working with contributors, and we can sync the codebase with it more easily and more often. Please do check the other system though before starting, in order to not needlessly duplicating work.

al will integrate translations from both systems into Quassel, so we're not abandoning Launchpad/Rosetta, just providing an alternative.

In short, you can now use the following two frontends for helping Quassel be international:

Transifex - the open translation platform
Launchpad/Rosetta - Ubuntu Translators

FAQ

Q: Why do you intend to switch over to manage translations by third-party tools/teams?
A: While some languages are very well maintained, others have grown stale over time, as some contributors are busy or have found other interests. Also, while a dozen languages is quite impressive for an independent, rather small project like Quassel, there are many more languages in the world. Having experienced teams to handle that will certainly improve both the number and the quality of our translations.

Q: I would like to continue helping you with translations!
A: I am sure the Rosetta language teams will be happy to accept contributions. It is a community site that also seems to make it quite easy for individual translators to add strings without going through the hassle of getting a git checkout, sending patches etc.

Q: Why did you choose Ubuntu's Launchpad, and not, say, KDE's teams for translating Quassel?
A: First of all, we didn't "choose" this, it was offered to us and the import happened more or less automatically once we had proper gettext support going. Secondly, we do have quite good relations with Kubuntu downstream, and they helped us getting the localization stuff in shape in the past months. We also have synced our releases with Kubuntu releases for a while now, which certainly helps getting translations in time for final releases (due to a string freeze in place a few weeks before that). Lastly, getting Quassel to use KDE's infrastructure would've been a lot of effort. We're not hosted in their repositories and we don't use KDE's localization mechanisms (due to KDE support being optional). Supporting Rosetta, on the other hand, didn't require any upstream changes (so far) other than getting gettext working properly.

Q: I used to translate Quassel, and now I feel alienated by your decision to switch to something else!
A: Don't! We are very thankful for all the hard work you've done before, and none of your work has been lost as it all has been imported. You can also continue to contribute via Rosetta, if you'd like!

The Process

The process of keeping a translation up to date, is simply summed up as "git add / commit / format-patch".
But you also need to follow what's written in the README.Translations file in the 'quassel/po' directory. Here's an excerpt from it:

In order to create or update a translatable file, run the following command
in the directory po/:

./update.sh xx

where xx is the two-letter language code according to ISO 639 (which,
if needed, may be suffixed by a country code according to ISO 3166).
Quassel will automatically load these translation files based on the
system locale. Examples for valid codes: de, en_US

You can open translation files with poedit for example and add/edit translated strings.

The *.po files can and should be kept in sync with the source code by running
update.sh regularly (existing translations won't be removed).

NOTE: Remember to remove X-Virgin-Header line if you want to preserve your header.

Note that the X-Virgin-Header line referred to above, is inside the .po-file for your language.