Angular предоставляет встроенный пакет интернационализации
@angular/localize для локализации приложений. Он позволяет
адаптировать интерфейс под различные языки и регионы без необходимости
ручной подстановки строк.
Добавление пакета Пакет подключается через Angular CLI:
ng add @angular/localizeМаркировка строк для перевода Для строк в
шаблонах используется атрибут i18n:
<h1 i18n="site header|Welcome message">Добро пожаловать</h1>
Атрибут i18n может содержать описание и контекст
перевода. Контекст важен для правильного понимания смысла строки
переводчиками.
Извлечение сообщений Для генерации файла с исходными строками используется команда:
ng extract-i18n
В результате создается файл messages.xlf или
messages.xliff, содержащий все строки для
перевода.
Добавление переводов Переводчики создают
локализованные версии файла messages.[locale].xlf. Затем
приложение конфигурируется для использования определенного языка:
"projects": {
"my-app": {
"i18n": {
"sourceLocale": "ru",
"locales": {
"en": "src/locale/messages.en.xlf",
"fr": "src/locale/messages.fr.xlf"
}
}
}
}Сборка локализованной версии Angular CLI позволяет собрать приложение сразу для конкретного языка:
ng build --localize
В результате создаются отдельные сборки для каждого языка.
DatePipe, CurrencyPipe,
DecimalPipe автоматически используют локаль.ICU-сообщения обеспечивают гибкое управление контентом:
<p i18n>
{count, plural,
=0 {Нет сообщений}
=1 {Один новый сообщение}
other {# новых сообщений}
}
</p>
Такой подход гарантирует корректное склонение слов и чисел в разных языках.
Временные функции анимаций и пакет i18n — ключевые механизмы Angular
для создания динамичных, удобных и мультиязычных приложений. Правильное
использование кривых ускорения делает анимации естественными, а
локализация через @angular/localize обеспечивает
масштабируемость интерфейса на международном уровне.