
L10n Roast: Facebook App Russian locale
I am starting a series of articles about localization (l10n) and UX writing with real-life examples. I'll take an app or a website and show you where it could be improved in terms of copy. I'll start with Facebook for Android (version 09-2019) and its Russian locale. First, the good part.
Generally speaking, the app has a very decent translation into Russian, considering the number of other supported languages (several dozen). Special thanks for the Language item in Settings: developers often force the app to use the system language, but this is not always convenient. For example, the Russian Yandex.Maps persistently switches me to its localized English version because of my phone's system settings, which is not very useful when you're a Russian speaker in Russia.
Most of the time, the Facebook app handles Russian noun endings well (1 комментарий, 8 комментариев). Alas, there are things in the app that could be somewhat better.
Strings with Variables

Запросы на добавление в друзья 7 (Friends Request 7)
The sentence looks odd even in the source language, but the structure is indeed very "safe" for localizers — just a concatenation of two strings or one string with a variable. Probably the app code is written something like this:
friends_request = {Friends requests {$requestCount}}
A more humane way to convey the same idea would be:
У вас 7 запросов в друзья (You have 7 friend requests)
This also helps avoid passive voice, which rarely looks good. Of course, if the number of requests changes, you have to change the ending of the word запрос. If Facebook uses a text management system similar to Mozilla's Fluent, then a UX writer should write a string like this:
friends_request = {$requestCount ->
[one] У вас {$requestCount} запрос в друзья
[many] У вас {$requestCount} запросов в друзья
*[other] У вас {$requestCount} запроса в друзья
}I used several selectors to pick a string according to the value of $requestCount. For instance, if it equals "7", then the second string (many) would be used, rendering the text as У вас 7 запросов в друзья. If it equals "23", the third string would be rendered (У вас 23 запроса в друзья).
By the way, the number of options in the translation can be more or less than in the source language. The aforementioned Fluent does not tighten the link, so the localizer has some degree of freedom. Note that I use selectors called one, many, etc., not mentioning the specific number here, but referring to a CLDR library. Good people have already classified everything for us.
If you are a cool UX writer, you can add a pinch of nice content with selectors for specific numbers:
[1] У вас один запрос в друзья
The variable in the text is not used at all; the word One is written out instead of a digit. You can add other selectors if voice and tone standards allow:
[999] У вас почти тысяча запросов в друзья (You have ALMOST one thousand requests)
[666] У вас чертовски много запросов в друзья (You have DAMN too many friend requests!)
[1000] У вас ровно тысяча запросов в друзья! (You have exactly 1K requests)Timestamp
Facebook has a certain discrepancy in the display of timestamps.
{mm} мин. назад

This is the most readable time format found in the application, although from a design perspective, nothing speaks against spelling out the word минут (minutes) without abbreviation.
{hh} ч.

The word Назад (ago) would make the inscription more understandable and humane, while not hurting the layout.
"Сейчас" (Now)

Сейчас (Now) is suitable for live streams (that are happening right now, at this exact moment), whereas publications and posts require the phrase Только что (Recently/Just now).
Данные (Data)
In English, cellular data, or simply data, usually refers to a limited amount of traffic on your cellular plan. The word "data" can be translated as "дата" (date) in Russian in some contexts, which causes confusion. However, when talking about cellular data, Russians usually use the word "трафик" (traffic).
Also, it is better to change the passive noun экономии (savings) into the active verb экономить (to save).

Missing translations


Shameful, but not surprising given the current approach of constant releases and updates. Facebook probably doesn’t have a good internal CAT or CMS; otherwise, such a simple mistake as a missing string translation would be caught. Such issues don't even require QA to be found if the workflow is set properly.
Line break

Just change the word Редактировать to Изменить :-)
Only 9 out of 12 localization stars for the Facebook app.
The Facebook application interface is not badly localized, but it lacks consistency in some key places (for example, time formats), and missed translations greatly spoil the picture. I give it a personal score of 9/12.











