Интернационализация и локализация сайта обеспечивает доступ к контенту и улучшает качество пользовательского опыта многоязычной аудитории.
Интернационализация происходит до локализации и добавляет поддержку мультиязычности на уровне архитектуры кода приложения, локализация в свою очередь добавляет контент под необходимую языковую среду.
Вместе их объединяют под общим термином — глобализация.
Интернационализация (I18N) ?
Internationalization
Интернационализация настраивается на серверной части приложения, выбираются:
поддерживаемые языки:ru, en,
fr, de, es, it, pt, nl,
pl, jaи так далее
кодировка текста, обеспечивающая поддержку выбранных языков: универсальным стандартом являетсяUTF-8
механизм определения локали клиента: обычно определяется по значению отправляемого браузером заголовкаHTTP-запросаAccept-Language: ru-RU,ru;q=0.9,en-US;q=0.8 вес q задаёт предпочтительность языка в диапазоне от 0 до 1, где 1 — самый высокий приоритет.
логика переключения языка клиентом:
Локализация (L10N) ?
Localization
Локализация происходит после интернационализации приложения и включает в себя:
перевод текстов и элементов интерфейса для поддерживаемых языков:
форматирование
дат:01.01.2025, 01/01/2025
чисел:1.234,56,
1,234.56
валют:1 234,56 ₽, $1,234.56
адресов и телефонов
перевод единиц измерения: например,30 °C =
86 °F
учет региональных культурных особенностей при использовании изображений и текстов
Тестирование интернационализации и локализации
При тестировании важно проверить, что:
Локаль клиента определяется автоматически (в случае, если механизм реализован). Проверить можно, передавая разные значения заголовкаAccept-Language
Отображается язык по умолчанию при запросе клиентом неподдерживаемого языка.
Установлена верная кодировка, и символы алфавита поддерживаемых языков отображаются корректно. На клиенте некорректная кодировка может выглядеть так:
Все сообщения переведены. В случае ошибки на клиенте могут отображаться незаполненные ключи сообщений:
Язык меняется при смене клиентом через интерфейс. Проверить, что все элементы интерфейса обновляются после изменения языка.
Форматы дат, чисел и валют меняются при смене локали.
Текст отображается корректно с учётом направления письма, например, справа налево для арабского.
Верстка не едет, текст при смене языка не выходит за границы элементов.