Translating STK

Link : SuperTuxKart home at launchpad

There are two main methods to help translating SuperTuxKart :

  • "Recommended' : the first is web-based and involves using the Launchpad web interface for translations.
  • 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). If you still wish to go this way see translating with poedit

Online translations on Launchpad

Log in or register

To translate STK you must go to the STK project on Launchpad :

First, you need a Launchpad account :

(If you don't have a Launchpad account, simply create one)

Join a translation group

Important! Until you join a translation group you will only be able to make suggestions, not actually translate.

Join the "Launchpad Translators" group. Simply go to and click on "Join this team" on the right. (joining is instantaneous)

Alternatively you can also join the "STK" team at (but in this case joining is not instantaneous, you will need for us to approve your join request)

See existing translations

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

Don't forget to click on view all languages !

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 :


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.


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

e.g. with the Irish language :

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

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.