Internationalization (i18n) на собеседовании системного аналитика

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Зачем спрашивают на собесе SA

Multi-language applications — стандарт. На собесе SA: «как реализовать», «как handle plurals».

i18n vs l10n

i18n (Internationalization). Подготовка кода для multi-language. Один код — many languages.

l10n (Localization). Конкретный перевод и культурная адаптация для locale.

i18n — engineering. l10n — content.

Locale

Combination language + region + variant.

en-US — English (United States)
en-GB — English (United Kingdom)
ru-RU — Russian
de-CH — German (Switzerland)
zh-Hans-CN — Chinese (Simplified, China)

Влияет на:

  • Translation choice.
  • Date format.
  • Number / currency format.
  • Plurals.
  • RTL / LTR direction.

Переводы

Translation files — typically JSON / YAML / .po.

{
  "welcome": "Welcome",
  "goodbye": "Goodbye"
}
{
  "welcome": "Добро пожаловать",
  "goodbye": "До свидания"
}

Tools:

  • gettext (.po files) — Linux classic.
  • i18next — JS standard.
  • Phrase, Lokalise, Crowdin — translation management platforms.
Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Plurals и interpolation

Plurals варьируются по языкам.

English. «1 item», «N items» — 2 forms.

Russian. «1 item, 2-4 items, 5+ items» — 3 forms ((один, несколько, много)).

Arabic. 6 forms.

ICU MessageFormat — стандарт.

{count, plural,
  one {# элемент}
  few {# элемента}
  other {# элементов}
}

# = count.

Interpolation. Подстановка values:

"hello": "Привет, {{name}}!"

Даты, числа, валюты

Дата.

  • US: 5/7/2026 (M/D/Y).
  • РФ: 07.05.2026 (D.M.Y).
  • ISO: 2026-05-07 — universal.

Числа.

  • US: 1,234.56.
  • РФ: 1 234,56.

Валюты.

  • $1,234.56 (USD)
  • 1 234,56 ₽ (RUB)
  • ¥1,235 (JPY, no decimals)

Tools: Intl.NumberFormat, Intl.DateTimeFormat в JS. ICU в backend.

RTL languages

Arabic, Hebrew — text идёт right-to-left.

CSS:

[dir="rtl"] .container { ... }

Mirroring. Не только текст — UI elements (icons, layouts) тоже mirror.

Связанные темы

FAQ

Hard-code text — почему плохо?

Невозможно перевести без code change. Translation extraction — стандарт.

Это официальная информация?

Нет. Статья основана на материалах W3C / ICU / Unicode CLDR.


Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.