Все мы знаем, насколько трудоемким может быть процесс перевода. Что, если бы существовало решение, позволяющее сократить дополнительные усилия, необходимые при разработке продукта на нескольких языках, и упростить интернационализацию?

В Angular такое решение существует - в виде модуля, - которое можно использовать при разработке приложения для использования на нескольких языках или локали.

Что такое интернационализация?

Интернационализацию можно определить как процесс разработки программного приложения на нескольких языках без внесения каких-либо изменений в код. Интернационализация обычно используется вместе с локализацией. Это переводит ваше приложение на один или несколько конкретных языков, чтобы улучшить его для определенных локалей.

Angular предлагает несколько способов гарантировать, что ваше программное обеспечение может работать с несколькими языками, включая встроенную функциональность i18n.

Этот модуль поможет преобразовать наш проект на разные языки в этом блоге. Это легкий модуль, который поддерживает простые приложения node.js.

Как использовать модуль i18n от Angular?

Для начала сначала устанавливаем модуль i18n. мы делаем это с помощью этой команды: -npm install i18n — save

Далее мы настраиваем файл для i8n. Мы можем сделать это в angular.json. В конфигурациях мы определяем многие вещи, такие как выходной путь, файл i18n, языковой стандарт i18n и т. Д.

Затем мы помечаем все статические сообщения в наших шаблонах модулем i18n для перевода. Предположим, у нас есть сообщение ниже. Чтобы обернуть его модулем i18n, мы используем приведенный ниже код

В случае файлов HTML мы выполняем это как:

Теперь для переводов мы также можем определить id или message вместе с атрибутом i18n. Это должно быть уникальным для уникальных сообщений. Если мы не назначаем идентификатор по умолчанию, вместо него назначается уникальный идентификатор.

Убедитесь, что идентификаторы разных сообщений различаются. Когда мы переводим, извлекается только первое сообщение, присвоенное идентификатору.

В случае преобразования атрибутов добавляется атрибут в виде i18n- x. Здесь «x» определяет атрибут. Другими словами, это атрибут, который мы хотим перевести. Например, если я хочу перевести заголовок, я могу разместить его, как показано ниже:

Когда мы реализовали это в нашем приложении, нам нужно создать исходный файл перевода. Чтобы извлечь сообщения, помеченные i18n, мы выполняем команду ng xi18n.

Эта команда создаст файл message.xlf, в котором будут содержаться все сообщения, в которых упоминается i18n. Мы можем изменить имя, формат нашего файла и расположение извлеченного файла.

Например, если мы хотим создать наш файл в папке src / locale, мы можем запустить для этого команду ng xi18n –output-path src/locale.

Мы можем запустить команду ниже, чтобы указать формат нашего файла:
ng xi18n –format=xlf

›› Теперь, когда все наши сообщения собраны в одном файле (который мы хотим перевести), следующим шагом будет создание файла перевода для любого языка, который нам нужен.

Для этого нам нужно скопировать наш файл message.xlf и переименовать его таким образом, чтобы упростить определение языка, для которого он создан, поскольку у нас может быть несколько файлов перевода. Например, message. ja .xlf для японского.

Теперь здесь роль переводчика, который будет переводить наши сообщения. Цель состоит в том, чтобы заменить исходное сообщение переведенным. Этот файл записан в следующем формате:

Теперь реализация завершена. Чтобы запустить наше приложение с переведенным текстом, мы компилируем наше приложение с переведенным файлом (для этого нам нужно указать путь в angular.json в нашей конфигурации).

В случае, если мы пропустили какой-либо перевод, наш проект компилируется вместе с предупреждениями.

Заключение

Мы надеемся, что эти сведения об использовании i18n помогут вам понять, насколько легко разрабатывать программные приложения на нескольких языках. И теперь, вместо того, чтобы думать о том, как подойти к разработке приложения на различных других языках, мы можем использовать этот модуль и делать настройки за один раз.

Автор - Аншул Гупта, DLT Labs

Об авторе: Аншул - стажер-программист, в настоящее время
работает с командой DL Asset Track в качестве разработчика Node.js.