ELK GAMEVERSE
Начать

Восемь языков с первого дня и во что это обходится на самом деле

Слова — дешёвая часть. Настоящая цена — множественное число, даты, правостороннее письмо и сохранённые фразы.

ELK GameVerse ships in English, French, German, Spanish, Russian, Arabic, Hindi and Kiswahili, at eight URL prefixes, with right-to-left support for Arabic. It has done since before there was a second game.

That decision is easy to announce and expensive to keep, and the expense is not where people expect.

The cheap part is the words

A message catalogue is a JSON file per language and a function that reads it. Five hundred and fifty keys, eight files, one test that fails if any file is missing a key another has. That test is worth more than it sounds: the failure it prevents is not a missing translation — the interface falls back to English and says so — it is a key that exists in one file and nowhere else, which nobody notices until somebody reads the page in Hindi.

The expensive part is everything that is not words

Plurals are not a suffix. English has two forms, French has two with different boundaries, Russian has four, Arabic has six. "3 friends" is a different sentence in each, and the only sane answer is ICU plural syntax in the catalogue rather than string concatenation in the code.

Dates are ambiguous. 9/5/2026 is the ninth of May in six of these languages and the fifth of September in one. A notification list shipped with toLocaleDateString() and no options, and it took reading the screenshot to notice. A written month is unambiguous everywhere, and costs nothing.

Right-to-left is layout, not text. Arabic reverses the whole page: the breadcrumb, the direction a progress bar fills, which side an icon sits on. Anything positioned with left instead of start is wrong in Arabic and looks fine in the other seven, so it will be found by an Arabic reader or by a test and by nothing in between.

The interface is not the only thing with language in it. A notification stores the sentence it was rendered with. Serve that back and a player who switched from French to English keeps a French history. So notifications are re-rendered from their template at read time, in the language of the page — and the fix for that was found by a browser test, because eighteen integration tests were passing.

What is honestly not done

The five legal documents are written in English and French. The other six languages carry the title and the summary and fall back to English for the body, and the pages say so rather than pretending. Legal text is the one place where a translation nobody qualified has read is worse than an honest fallback.

The same is true of articles like this one. Where a piece exists only in one language, the index shows a badge saying which — because an article you cannot read is still worth knowing about, and a reader deserves to be told before they start.