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 и т.д.
то вы можете перенаправить своих пользователей на основе языка, который они хотят использовать для выделенного приложения.
надеюсь, что это поможет