Ответ
Интернационализация (i18n) — это проектирование и разработка приложения, позволяющее легко адаптировать его для разных языков и регионов без изменений в коде.
Локализация (l10n) — это процесс адаптации уже интернационализированного приложения под конкретный язык, регион или культуру (переводы, форматы дат, валют).
i18n — подготовка, l10n — реализация.
Пример i18n в коде (подготовка):
// Плохо: хардкод строк
console.log("Welcome");
// Хорошо: использование ключей
console.log(i18n.t('welcome.message'));
Пример файлов локализации (l10n):
en.json:
{
"welcome.message": "Welcome"
}
ru.json:
{
"welcome.message": "Добро пожаловать"
}
Практические аспекты i18n:
- Вынос всех строк в ресурсные файлы.
- Поддержка Юникода (UTF-8).
- Учет разной длины текста при верстке.
- Абстрагирование форматов дат, чисел, валют.
Практические аспекты l10n:
- Перевод текстов и интерфейса.
- Адаптация графики и цветов.
- Настройка региональных форматов (например, дата
DD.MM.YYYYvsMM/DD/YYYY).