Angular 4 i18n - как продолжить добавление файлов переводов?

Мне нужно перевести мое приложение Angular 4. В основном я следил за официальным руководством.

  • Я добавил атрибуты i18n в теги и т.д.

  • angular -cli создал message.xlf

  • Я создал папку "locale" в папке src

  • Я скопировал messages.xlf в эту папку locale...

  • ... и переименовал его в "сообщения. de.xlf", чтобы провести немецкий переводы

Я изменил простой перевод, чтобы проверить все. Однако после того, как я переключил браузер на "немецкий", не было никакой разницы (использовался npm start, поэтому в основном "ng serve" ). Похоже, что все еще что-то не хватает. Также в руководстве объясняется как "объединить" перевод. Но эта глава невероятно странная и звучит не совсем убедительно. Он читается так, как будто это было сделано для более ранней версии.

Например, он указывает на адаптацию моего запуска - script. Дело в том, что у меня даже нет запуска - script. Мой index.html выглядит следующим образом:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>PickUp2</title>
  <base href="/">

  <link href="assets/iconfont/material-icons.css" rel="stylesheet">
  <link href="roboto.css" rel="stylesheet">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="assets/material_supply_icon.ico">
</head>
<body>
  <app-root>Loading...</app-root>
</body>
</html>

Где мне нужно разместить этот запуск - script? Я даже не знаю, использую ли я компилятор JIT или AOT. Раньше они никогда не упоминались в каком-либо руководстве.

Ответы

Ответ 1

Я перевел наше приложение Angular -4 с помощью метода, описанного в Поваренной книге. Я думаю, что ключевой информации, которую вам не хватает, является то, что вам нужно "создавать" приложение для каждого языка отдельно.

Моя команда для запуска приложения локально с одним переводом выглядит следующим образом:

>ng serve --i18n-file src/i18n/messages.fr.xlf --locale fr --i18n-format xlf --aot

чтобы построить его, просто замените ng serve на ng build

Разъяснения:

  • -i18n файл указывает, какой перевод использовать
  • - aot - это компиляция шаблонов html заранее, это заменит тексты, помеченные i18n вашими переводами

поэтому в вашем случае вы создадите приложение на немецком языке, а затем развернете его - пусть говорят - в папку /de. другая версия приложения может быть в /en и т.д.

то вы можете перенаправить своих пользователей на основе языка, который они хотят использовать для выделенного приложения.

надеюсь, что это поможет