Языковой перевод с использованием Angular i18n - PullRequest
0 голосов
/ 14 января 2020

У меня возникла проблема с переводом языка в angular с использованием i18n. Для проверки я получаю некоторые коды ошибок из REST API, я помещаю сообщение на основе кода ошибки в файл среды. Я импортировал файл в файл компонента TS. Файл среды выглядит как

loginErrorMsg01EN:'Invalid Credentails!!',
loginErrorMsg01ES:'Credentails inválidos!!'

html строка в файле

<label align="center" class="error-text" i18n="@@loginErrorMsg">{{environment.loginErrorMsg01EN}}</label>

Spani sh (ES) Файл перевода выглядит как

<source><x id="INTERPOLATION" equiv-text="{{environment.loginErrorMsg01EN}}"/></source>
<target><x id="INTERPOLATION" equiv-text="{{environment.loginErrorMsg01ES}}"/></target>

Но я не получаю испанский sh перевод текста. Только Engli sh перевод показ. Пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 15 января 2020

если я понимаю, что вы пытаетесь сделать правильно, вы

  1. запускаете сервер angular через ng serve с опцией 'configuration'. (в настоящее время у вас еще нет переводов)

  2. после запуска приложения вы выполняете вызов REST во внешнем интерфейсе, чтобы получить данные и поместить их в файл среды

  3. вы помещаете ссылку на переменную среды в файле перевода.
  4. наконец, вы ищете файл перевода для восстановления ссылки на среду?

это правильно?

Я могу ошибаться, но я не понимаю, как работает перевод. По angular .io

Процесс перевода шаблона i18n состоит из четырех этапов:

  1. Пометьте stati c текстовые сообщения в шаблонах компонентов для перевода.

  2. Создание файла перевода: используйте команду Angular CLI xi18n для извлечения выделенного текста> в стандартный исходный файл перевода.

  3. Редактирование сгенерированного файла перевода: Переведите извлеченный текст на целевой язык.

  4. Объедините законченный файл перевода в приложение. Для этого используйте команду Angular CLI build>, чтобы скомпилировать приложение, выбрав конфигурацию c, определяемую локалью, или указав> следующие параметры команды.

--i18nFile=path to the translation file
--i18nFormat=format of the translation file
--i18nLocale= locale id

Команда заменяет исходные сообщения переведенным текстом и создает новую> версию приложения на целевом языке.

Вам необходимо создать и развернуть отдельную версию приложения для каждый поддерживаемый язык.

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

это означает, что вы должны сначала определить свои переводы для файла перевода, затем процесс сборки будет создайте дистрибутивные файлы для выбранного вами c языка.

очень возможно, я ошибаюсь, и то, что вы пытаетесь d, поддерживается. в этом случае я узнаю что-то новое сегодня. Я просто не знаю об этом подходе.

Обновление:

по-видимому, этот тип перевода во время выполнения возможен. похоже, что ngx-tgranslate разработан специально для этого типа сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...