Как Angular упрощает интернационализацию?
Angular предоставляет мощные средства для интернационализации (i18n), которые помогают разработчикам легко адаптировать веб-приложения для различных языков и культур. Интернационализация включает в себя не только перевод текста, но и форматирование дат, чисел, валют и других локализованных данных.
Основные концепции интернационализации в Angular
<i18n>
.Пример:
<h1 i18n="@@homeTitle">Добро пожаловать на наш сайт!</h1>
Здесь атрибут
i18n
сообщает Angular, что этот текст следует перевести. @@homeTitle
— это уникальный идентификатор строки, который поможет отслеживать изменения.ng xi18n
Эта команда создаст файл
messages.xlf
, содержащий все строки с атрибутом i18n
. В этом файле необходимо добавить переводы.Пример файла messages.xlf:
<xliff version="1.2">
<file source-language="en" datatype="plaintext" date="2021-07-01T12:00:00Z" original="ng2.template">
<body>
<trans-unit id="homeTitle" datatype="html">
<source>Welcome to our website!</source>
<target>Добро пожаловать на наш сайт!</target>
</trans-unit>
</body>
</file>
</xliff>
messages.ru.xlf
.Пример конфигурации:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { registerLocaleData } from '@angular/common';
import localeRu from '@angular/common/locales/ru';
registerLocaleData(localeRu);
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [{ provide: LOCALE_ID, useValue: 'ru' }],
bootstrap: [AppComponent]
})
export class AppModule {}
В данном примере мы регистрируем локализацию для русского языка и устанавливаем его в качестве языка по умолчанию.
DatePipe
, CurrencyPipe
, и DecimalPipe
.Пример использования пайпов:
<p>{{ today | date }}</p>
<p>{{ amount | currency }}</p>
<p>{{ number | number:'1.2-2' }}</p>
В этом примере мы отображаем текущую дату, сумму с учетом валюты и число с определенным форматом.
Заключение
Интернационализация в Angular значительно упрощает задачу адаптации приложений для разных языков и культур. С помощью простых атрибутов, команд и встроенных пайпов вы можете создать приложение, которое будет доступно для широкой аудитории. Это повышает пользовательский опыт и позволяет вашему приложению быть более универсальным.