Translation of Rhythmbox

About the GNOME Translation Project

You are probably reading this because you are interested in the localization, or translation, of Rhythmbox. Rhythmbox is using the GNOME Translation Project (or GTP for short) for translations. The GTP web page is at:

http://developer.gnome.org/projects/gtp/

The GTP is a large team of volunteering translators (probably a lot like you) that translate the GNOME applications that they like into their native language. The GTP is divided into many language teams, all with their own team coordinator, and some with their own mailing list and website.

To help us with Rhythmbox translations, we'd really like you to join the GTP and join your respective language team first. Joining is easy, what it takes is more or less just subscribing to some mailing lists. More on that below.

There's a lot of reasons why we want you to do this. First of all, you will not be required to translate anything - it's all up to you, even if you join the GTP. Second, we'd really hate if there later was discovered that someone had done duplicate work - there might already be someone working on a Rhythmbox translation for your language, but there's no way to know until you have contacted your language team and asked if someone is already working on a translation. In most cases that's probably not the case, but asking first might save a lot of trouble later. Third, your translation team has people that probably have translated a lot of applications into your language before, and they can usually help you with any translation question (technical or linguistic) that you might have. Fourth, every translation team usually has at least one person with access to the GNOME CVS repository (where Rhythmbox translations are committed), and he/she can commit your finished translation directly into this CVS repository.

Instructions on how to join the GTP are on the GTP web site, mentioned above. To join the GTP itself, you should (as mentioned on the GTP page) subscribe to the gnome-i18n@gnome.org mailing list. This can be done by going to:

http://lists.gnome.org/mailman/listinfo/gnome-i18n/

Subscribing to this mailing list will also make sure you get information when a new version of Rhythmbox will soon be released and the translations need updating.

On the GTP site, you can also find information about existing language teams and their coordinators, and also web sites and mailing lists. Please let the coordinator for your language know that you will be working on a Rhythmbox translation. If there's a mailing list for the language team, consider joining it. That way you can ask other translators in your native language, if you have any problems when translating.

Getting the pot file

From now on I will assume that you have done the above, and joined the GTP and the team for your language. Now we come to the part on how to actually translate. You need at least one important software package installed on your system to be able to translate: "gettext". Please make sure that you have this package installed before you begin.

To be able to start a new translation you need the application's untranslated messages, which is stored in a so called pot file (suffix .pot). The pot file for Rhythmbox can either be fetched from the web or generated from Rhythmbox source code taken from CVS or arch.

Fetching the pot file from the translation status pages

The easiest way to get the pot file is to fetch the pot file from the web. You'll find it on the GNOME translation status pages, located at:

http://developer.gnome.org/projects/gtp/status/

If you browse these pages you should find a reference to Rhythmbox and be able to download a pot file for it.

Generating the pot file from Rhythmbox source code in CVS

Another way of getting the pot file is by using anonymous GNOME CVS access. If you do intend to get the pot file this way you need to make sure that you have the software "intltool" installed on your computer. It should always be the latest available version; if it isn't, please upgrade before you begin.

When you use CVS you need to checkout the "rhythmbox" module and go to the "po" directory of the module. Instructions on how to use anonymous GNOME CVS access are at:

http://developer.gnome.org/tools/cvs.html

When you have checked out the module, go to the "po" directory inside it and run:

	intltool-update --pot

This should create the pot file for you.

Translating

Once you have the pot file, rename it to xy.po, where "xy" in the file name should be the language code of the language you are translating to (like "sv" for Swedish). Then it's just a matter of filling out the headers (if you are not sure about what the headers should be, ask your language team), and filling out the pairs:

	msgid "This is a message from the application."
	msgstr ""

In the example above, your translation should go inside the quotes after the msgstr. Proceed this way until all messages in the file have a translation. If you are unsure about anything regarding this, ask your language team.

Once you have completed the translation, you should check that it is encoded in the "UTF-8" encoding (we require translations to be encoded in UTF-8). You can make sure the file is encoded in UTF-8 by running:

	msgconv -t UTF-8 xy.po > xy.po.new && mv xy.po.new xy.po

You should also make sure that the translation is syntactically correct. You can do that by doing this:

	msgfmt -cv xy.po

If there is any error, please go back and correct it before continuing. When all errors are gone, send the translation to a person in your language team that has GNOME CVS access, and ask him/her to please commit it. If you send the file by mail, it's usually a good idea to first compress the file with "gzip", since otherwise some mail software may do bad things and not preserve the encoding.

That's it. If you have any questions regarding the PO format, gettext or translations, please ask your language team. If the question is specific to Rhythmbox (such as the messages themselves or Rhythmbox code), ask Rhythmbox developers.

Thanks for your help!