Tips: read before you start translating


(Anton) #1

Hi there! My name is Anton and I’m moderating the translation of Discourse to Russian (might moderate the Ukrainian translation eventually as well).

Now that I have more than 1 year experience in translating and moderating translations, I’d like to share a few important points that every translator should be aware of.

Please read them carefully before you contribute, otherwise your effort might become an obstacle rather than help.

Following a few recommendations outlined below will make your effort and help much more valuable.

Always check UI context

If you don’t check the context where a string is used, the user interface can quickly become a mess.

For example, there are 5 buttons in a row. 4 of them have captions that start with a capital letter. You should translate the 5th one the same way - it must start with a capital letter:

Another example - in a single group of elements, all items should be translated with using the same grammatical construction, i.e. be in the same tense etc:

Here is an example of what happens if you don’t check the context:

Always check translation key context

For example, you have to translate this key: js.topic.notifications.tracking_pm.title

Before you do, you should search in Transifex for all the keys from the same keys group, so that you can make sure your translation fits well with the existing ones. In our case, the group is js.topic.notifications - it can be intuitively assumed that all topic notification strings are in this group:

I recommend to always focus on translating all strings in a single group at once, so that you use the same tone and grammatical structure within that group.

Use glossary

There is a nice Glossary in Transifex. It’s like a dictionary of translations for various terms that we use in Discourse:

Always look at available translations in the glossary. This will help you to keep your translation consistent across all user interface. The goal is to use the same translation for the same thing wherever it is shown. If different names are used for the same thing, the end users will quickly become confused.

If you don’t know how to translate a particular term, ask us first! Discourse community is big - someone will help you quickly if you ask in the Translation section of this forum.

Do some research

You will find out that it is sometimes quite difficult to come up with a good translation. Or there is simply more than one good translation, and you can’t choose which one.

If this is the case, please don’t be lazy to do some research. Review some popular websites in your language (not necessarily forums!), find out what terms they use for the same functionality. Does it read well? Will it be understood in the context of a discussion platform?

Another good source of ideas would be to ask your friends. To translate some words to Russian and make it easy to understand, I sometimes have to ask my friends who I know for sure are good in Russian language and have higher education in literacy, history, read a lot etc. Sometimes it takes hours, sometimes even days to find out a good translation! But believe me, it pays off.

I can well distinguish whether some translation is good or not based on questions that come from our small community I run with Discourse. If it is confusing - people will keep asking questions continuously, or would just not use the feature. I can see how bad translation affects our community all the time. That is why I can tell you for sure - researching is very very important.

Having more translation suggestions to choose from does not help

Some people think that if they provide translation reviewers with more translation suggestions, it will simplify their jobs. Actually, the effect is the opposite.

Every responsible moderator will have to read every translation (including inaccurate ones) and think about it in order to decide whether it is good to accept or not.

What is more, every suggestion will be seen by everyone in the “Suggestions” tab in Transifex. This means people will have to read them all before they can start writing their own own translation suggestion.

Reading through 9 translations just for one string does not save time, especially if translations are inaccurate:

All this simply means it’s better to translate 10 strings in a month but so well that nobody will ever question your translations, rather than translating 100 strings in a day but so bad that nobody will use the translations.

Don’t use Google Translate

Please, just don’t.
Don’t ask me why.

If you think Google Translate is a good source, you should probably not start translating before you improve your English to the point when you stop trusting Google Translate.


:coffee: afterword

Translation is not as easy as you might think.

The more popular Discourse becomes, the more responsibility you take by translating. Your translations will be seen by thousands of people. So if you want to help, please try doing it the right way, accurately and responsibly.

By this, I’m not saying “stop translating”, but rather trying to convey a simple idea: if you are about to donate your time to help Discourse flourish, do it so that everyone will benefit from your effort.

Keep looking over the small things described above and the value of your help will increase tremendously. If you don’t, chances are your help might be useless, or, in the worst case, might just eat time of those who review translations.


Is there any help needed with Russian translation review?
(Anton) #2

Non-breaking spaces, thin spaces and other type of spaces

In some languages, like in Ukrainian and Russian, numbers need non-breaking spaces:

1.5 тыс.

Here, a non-breaking space is needed between 1.5 and тыс.

This page about unicode spaces explains all in detail and gives examples. To insert the space that you need in your translation, just copy it from the examples table:

… and then insert it right into your transifex translation:


(Anton) #3

Localizing dates

When localizing dates, formats supported by Moment library are used in Discourse.

It is recommended to test your translated format before saving it in Transifex. To do so, open your localized forum, then open debugger console (see e.g. in Gogle Chrome) and write the following command:

moment().format('your format')

… once written, press Enter.
This way you will have a chance to preview your localized date format and make sure it is what you want it to be.


Example. Below it’s shown various formats used for date formatting right in browser console:


(Gerhard Schlager) #4

That’s only true for the date formats used in client.yml and some of the formats in server.yml.
Always take a look at the Developer Notes on Transifex before translating date formats.