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 better in terms of writing. I’ll start with Facebook for Android (version 09-2019) and it’s Russian locale.

First, the good part. Generally speaking, the app has a very decent translation into Russian, considering the number of other supported languages (few dozens). Special thanks for the Language item in Settings: developers often force the app to use system language, but this is not always convenient. For example, the Russian Yandex.Maps persistently switch me to it’s localized English version because of my phone’s system settings, but it’s not very useful when you’re Russian in Russia. Most of the time, Facebook app works nice with endings of nouns (1 комментарий, 8 комментариев). Alas, there are things in the app that could be just 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 that:

friends_request = {Friends requests {$requestCount}}

A more humane way to convey the same idea would be: У вас 7 запросов в друзья  (You have 7 friends requests)

This is also a way to avoid passive voice, which rarely looks any good. Of course, if the number of friends is different, then 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:

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 запросов в друзья, and 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 Один could be written as a word instead of a digit. And add other selectors if voice and tone standards allows you to.

[999] У вас почти тысяча запросов в друзья (You have ALMOST one thousand requests)
[666] У вас чертовски много запросов в друзья. (You have DAMN too many friends requests!)
[1000] У вас ровно тысяча запросов в друзья! (You have exactly 1K requests)


Facebook has a certain discrepancy in the display of the time stamp.

{mm} мин. назад

The most readable time format found in the application, although from the design perspective, nothing speaks is against the spelling of the word минут (minutes) without shortening.

{hh} ч.

The word Назад (ago) would make the inscription more understandable and humane, also not hurting the layout.

“Сейчас” (Now)


Сейчас (Now) suitable for live streams (that are happening right now, at this exact moment), whether publications and posts requires a word Только что (Recently, just now).

Данные (Data)

In English, cellular data, or simply data, usually refers to a limited amount of traffic on your cellular plan. And the word “data” could be translated as “дата” into Russian in some context. But when you talk about cellular data, Russians usually uses the word “трафик” (traffic). Also it is better to change the passive noun экономии (save) into an active verb экономить (also save).

Missing translations

Shameful, but not surprising, with 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 visible. Such issues don’t even require QA to be found if workflow is set properly.

Line break

Just change the word Редактировать for Изменить 🙂


Only 9 out of 12 localization stars to the Facebook app

The Facebook application interface is not badly localized, but it lacks consistency in some key places (for example, time), and missed translations greatly spoil the picture. I give it a personal score of 9/12.


One thought on “L10n Roast: Facebook App Russian locale

  1. У меня от последнего предложения полный мгимо финиш.
    Ставь Grammarly или ProWritingAid.

Leave a Reply

Your email address will not be published. Required fields are marked *