How to translate

keyboard_arrow_left Back to the overview

How to translate

We use Crowdin as our translation system. To submit translations you need to create an account, click the desired language and start suggesting translations.

A general rule of thumb is: Quality, not quantity! If you are unsure about the context of a string or about what it could mean, leave it untouched. It’s much better to have the correct English string there instead of having a wrong translation which doesn’t make sense to the user.

My language is not there and I have checked several times

You seem to speak a language which nobody else does… or there has just been the lack of someone willing to provide support. Contact one of the managers so we can support you by adding your language as well.

I have translated a lot, how do I get these to my device now?

There is (or should be) at least one proofreader for each language (you can apply, if not). Proofreaders will look through the strings and validate those which they think are fitting the context and are of a high-enough quality. In the event that you do not see an active review or acceptance of your (or alternative) suggestions, you can contact one of the proofreaders via the sidebar on the right. To do so, simply type “@” followed by the name and then add the message (e.g. “@NameHere: Please look through my translations on this file”).
After the validation of the strings, they will be merged into the next official monthly release of PixelExperience.

Correcting wrong strings

Translated strings

Sometimes you will notice translated strings which seem to be slightly different from what you’d expect or simply wrong. There are various reasons to how this can happen, but still, the only relevant thing is how to improve the translation. Just suggest your translation like you would do for any untranslated string. After saving it you will have the possibility to “Notify the proofreader”.

Original strings

There is no guarantee the original strings you want to translate are perfect. If you notice an issue there, use the side bar and mark the field “issue”, then type some info on what you think is wrong. If the mistake is only minor, correct this error in your translation, and submit it.

What not to translate

Having the source code and crowdin strings in sync is not an easy job and stuff can slip through. Generally you need to pay attention to a few things:

  1. Strings starting with @ (very often used in strings like @string/<something>) - these are marked as translatable when they shouldn’t be. Please use the issue checkbox on the right of the screen to notify us.
  2. Strings with xliff tags, e.g. <xliff:g id="name" example="Help improve PixelExperience">%1$s</xliff:g>: Keep the whole thing untouched and embed it into your translation at an appropriate place. The example is just there to tell you what can be inserted instead of %1$s in the OS so you know where to place it in your translation. There is no need to touch this either.


Every string requires to be validated by a proofreader. In case your language doesn’t have an active proofreader, you can apply for it. As a proofreader, you also have to make sure that the submitted strings match the context.

Contact one of the managers here if you want to be a proofreader.

Besides the responsibility to only approve strings appropriate for use in the system and to make sure to avoid approving strings mentioned in What not to translate, there is another thing that you should pay attention:

Quantity strings

Various strings exist multiple times for different quantities (one, two, many, few, other). Once a string for one of them is translated and approved, the Android build system (specifically aapt2 for resource builds) requires the whole chain to be present. As a proofreader you have to make sure to approve all variants of a string.