Translating STK

This article will explain how to translate STK into another language.

There are two main methods :

  • the first is web-based and involves using the Launchpad web interface for translations. This is now the recommended method.
  • the second is desktop based and involves using poEdit to edit the STK .po file. This method is deprecated because after you edited the file this way you would need to send it to us and then we need to update the STK file manually (whereas it's quite automatic when using Launchpad)

Online translations on Launchpad

Log in or register

To translate STK you must go to the STK project on Launchpad : https://translations.launchpad.net/stk To translate STK, you must have a Launchpad account :

http://supertuxkart.sourceforge.net/persistent/images/2/21/Main-logout-small.png

If you don't have a Launchpad account you can easily create one :

http://supertuxkart.sourceforge.net/persistent/images/c/c2/Register-small.png


Then you need to join the "Launchpad Translators" group. Simply go to https://launchpad.net/~launchpad-translators and click on "Join this team" on the right.

Alternatively you can also join the "STK" team at https://launchpad.net/~stk

See existing translations

After you are logging in, go back to STK's Launchpad Home

Don't forget to click on view all languages !

http://supertuxkart.sourceforge.net/persistent/images/c/c3/Main-languages-small.png


Starting a new translation

To start a translation for a language that currently does not exist, first visit your user's page and set your languages : https://launchpad.net/people/+me/+editlanguages


File:LPEditLanguages.png

Then, when you have done this, you can go back to the main STK translation page and your language will appear in the list, ready to be clicked.

Translating

Then you can start translating SuperTuxKart by clicking on the language you want.

e.g. with the Irish language :

http://supertuxkart.sourceforge.net/persistent/images/3/36/Translation-small.png

Once you have translated STK, scroll down and click on save and continue :

http://supertuxkart.sourceforge.net/persistent/images/c/c9/Translations-2-small.png


Format Strings

From time to time, you will meet some format strings  :

  • %s, %i, %d : something will be inserted instead of the %x, simply add the same format strings in the translation. Not that these format strings do not specify order, so they need to appear in your translation in the same order as in the original string
  • %0, %1, etc... : those are like the above ones, but are ordered (%0 is the first inserted value, %1 is the second inserted value, etc.). The advantage of those is that the translation does not need to insert the values in the same order as the original string. Note that you can use these format strings in your translation even if the original string uses the first (unordered) format string.
  • %1$s, %2$s, etc... : those are like the above ones, but are ordered (%1$s is the first inserted value, %2$s is the second inserted value, etc.). %1$s is equivalent to %0, %2$s is equivalent to %1, etc. The reason this syntax is supported is simply because it's more standard than the %0 syntax described above.

poEdit

Installing poEdit

Note : you may use other tools but the procedure for them is not documented here
  • Get latest STK (to get all latest strings)

The directory where you need to go is /data/po. There you will see a file named supertuxkart.pot and a script called update_pot.sh. The .pot file contains all translatable strings of STK. The update_pot.sh script can be run from the base directory to update the .pot file, but you generally do not need to do that since the STK developers will do it for you.

To get the latest po subdirectory from SVN without checking out the whole SVN version, use:

svn co https://supertuxkart.svn.sourceforge.net/svnroot/supertuxkart/main/trunk/data/po/ stk_po

Configuring poEdit

  • Make sure poEdit is configured to compile .mo files on saving (check in preferences)

File:Poedit prefs.png

  • from the View memu, check Show automatic comments window. This will make a new area appear : this area will sometimes contain tips that the devs left to help you translate a string, for instance if its meaning is ambiguous.

File:Poedit comments.png

Creating a new translation

  • Open poEdit and use menu File > New catalog from POT file.

File:Poedit1.png

  • Select supertuxkart.pot.

File:Poedit2.png

  • Enter the appropriate information in the dialog that pops-up (ignore fields you do not understand or that do not make sense for this project. Only the first tab needs to be completed)

File:Poedit3.png

  • Then simply select the strings in the list and enter a translation.
  • When you're done, save the file as [language code].po. Along it, a .mo file will be generated. Move the .mo file to /data/po/[language_code]/LC_MESSAGES/supertuxkart.mo.

Testing your translation

your translation should be automatically picked if your system is set to the language you made the translation for. If your system is in english or another language, you can force a language from terminal

  • On UNIX (Linux, Mac) : export LANG=[keycode] && export LC_MESSAGES=[keycode] then ./src/supertuxkart or so. Make sure that LC_ALL is not set( or with the correct value ), since it overrides the other variables.
  • In a Windows command interpreter: set LANGUAGE=de_DE followed by .\supertuxkart.exe (that's for german, replace "de_DE" with the code if the langauge you want to test)
  • In a Cygwin shell: $ env LANG=de_DE ./supertuxkart.exe

Updating an existing translation

  • Open the language code.po file in poEdit.
  • Choose Catalog > update from POT file

File:Poedit update.png

  • Select supertuxkart.pot.

File:Poedit2.png

  • You will then get a summary of changes (new and/or obsolete strings) if any.
  • Then simply select the strings in the list and enter a translation.
  • When you're done, save the file. Along it, a .mo file will be generated. Move the .mo file to /data/po/[language_code]/LC_MESSAGES/supertuxkart.mo.