TIPS FOR DEVELOPERS
Avoiding Common Issues in Your Russian Localization From the Start: Part 3
While these tips may seem obvious, they will help you avoid the common issues I come across in almost every project I work on.

In part 3 of my Tips for Developers series, I mention some other points worth considering before you localize your product
3.1. Fonts That Support Cyrillic Characters
Whether you're creating your own font from scratch or using a free/paid pre-existing one, keep the Cyrillic (Russian) alphabet in mind. If you want your translated text to look just as sleek and impactful as your source, make sure your font of choice supports Cyrillic characters.

And what happens if that badass sans-serif font of yours is only designed for Latin letters, digits, and special characters? Any unsupported characters will be replaced with a standard (and probably ugly) system font.

Take a look at the picture below.
This is an excellent example of a font that doesn't support Cyrillic characters.

Can you see the difference? The English font looks great, while the Russian is pretty much unreadable. Even Arial would have worked better here.

Sorry, EA, but I really believe you can improve :)
3.2. Machine Translation
The image below is from a game that was initially translated from scratch by a professional English-Russian translator. Everything was going great until, at some point, the client decided they could handle the localization themselves and started using machine translation.
To explain: basically everything in this window except the word "REWARD" has been translated incorrectly, ranging from minor errors to critical mistranslations. It would appear that the client didn't even take the time to review the machine translation in the final version of the product before going live.
3.3. Capitalization
Capitalization rules tend to vary from one language to another. English, for example, capitalizes the first letter of every word in a title, with the exception of function words, and the first letter of the last word in a title is always capitalized, no matter which part of speech it belongs to. In Russian, however, only the first letter of the first word and any proper names are capitalized.

The game shown below featured a piece of code that forced every word in the menu, top left, to begin with a capital letter. As a result, even though the translator only capitalized the first word of each title, when implemented, the Russian was capitalized as in English:
There are many more examples of how capitalization differs between English and Russian. For example, Russian does not capitalize any of the following: days of the week (Sunday -> воскресенье), months of the year (April -> апрель), nationalities (Spanish -> испанец), languages (Spanish -> испанский), races (Elves -> эльфы), in-game items (100 Crystals -> 100 кристаллов), and so on and so forth.

Additionally, Russian does not capitalize a word following a colon (unless that word is a proper name).

Keep this point in mind when creating your product and try to leave room in your code for flexible capitalization!
3.4. Translation vs. Transliteration
When localizing their product into Russian, some clients instruct their translation team not to "translate" things like character names.

Often, Russian translators will follow this instruction to the letter, resulting in "localized" strings that look like this:
English:
Congratulations! You've unlocked Bruce Lee, Mike Tyson, Bas Rutten, and Kazushi Sakuraba for achieving the status of Legend in UFC Career Mode!

Russian:
Поздравляем! За достижение звания легенды в режиме карьеры UFC вы разблокировали Bruce Lee, Mike Tyson, Bas Rutten и Kazushi Sakuraba!
Transliteration is the representation of the characters of one script using the characters of another.
This process is different from that of translation.
The translator has left the names in this string "untranslated" by doing nothing to adapt them for localization at all. I've seen this issue come up in projects time and time again, and I think it stems from a misunderstanding between translator and client.

Allow me to clarify.

The client wants to ensure that the proper names of characters, companies, etc. which appear in the game are not altered or translated word-for-word, e.g. that "Chicken Hut" doesn't become "Куриная хижина" (a literal "chicken hut").

That makes sense. However, once again in Russian we face the issue that, unlike in English, nouns can have multiple word endings and take many grammatical forms. This includes proper names. On top of that, as we already know, Russian uses a different script to, say, English. This means that while names and places don't actually need to be translated into Russian, they do need to be transliterated and adapted to fit the Russian grammatical case system.

Executing this step correctly creates a much smoother interactive experience for your Russian-speaking audience while still preserving the original form of the name, title, etc.:
English:
Congratulations! You've unlocked Bruce Lee, Mike Tyson, Bas Rutten, and Kazushi Sakuraba for achieving the status of Legend in UFC Career Mode!

Russian:
Поздравляем! За достижение звания легенды в режиме карьеры UFC вы разблокировали Брюса Ли, Майка Тайсона, Баса Рюттена и Кадзуси Сакурабу!


(Nominative forms are:
Брюс Ли, Майк Тайсон, Бас Рюттен и Кадзуси Сакураба

...while non-nominative, in-context forms are:
Брюса Ли, Майка Тайсона, Баса Рюттена и Кадзуси Сакурабу)
There are, however, certain terms which don't need to be transliterated and can be left in the original script, for example:
- brand names
- trademarks
- player nicknames
- names included in credits
- band names
- names of robots/machines, etc., for example, R2-D2 in Star Wars
While I don't like to name names, I've translated two different e-sports games (one soccer and one basketball) which presented me with precisely this issue. As it transpired, the developers hadn't even added an option in the code for player names to appear in non-Latin scripts (presumably, because they assumed the names didn't need to be "translated"). This meant that major parts of the interface featuring those names were not exported for localization at all. I ended up transliterating a long list of player names, dealing with inconsistencies when they weren't implemented uniformly throughout the product, and, ultimately, wasting a lot of time undoing my work when the code would not allow for removal of all the English names in the localized product.

Now that you know how transliteration works, keep this point in mind when localizing your product. And if you're in doubt, of course, feel free to get in touch!
I hope you've enjoyed this article and picked up some useful tips on how to save time and money (and avoid headaches!) when it comes to localization.

If you like it article, feel free to comment or share it with your colleagues.

And be sure to check out my other articles on what to consider before you localize:
You can also find out more about some of the projects I've worked on in the past:
If you have questions, comments, or a project that needs localizing, get in touch!