Я работаю над крупным проектом с использованием углового 6. Этот проект нуждается в значительной интеграции i18n. Я пытаюсь принять правильное решение о том, как действовать.
Я вижу, что я могу выбирать между:
- ngx-translate (https://github.com/ngx-translate/core)
- Угловой i18n (https://angular.io/guide/i18n)
Я склоняюсь к выбору варианта 2; Угловое i18n. Это потому, что он является Угловым собственным встроенным пакетом, и это просто сидит лучше со мной. По-видимому, это также лучше для SEO и немного лучше для производительности без какой-либо работы. Кроме того, теперь он выпущен, я думаю, что ngx-translate может быть устаревшим. Много информации здесь: Угловая интернационализация 5.
Однако вот мои оговорки:
- Очевидно, что угловая версия довольно новая/все еще догоняет (https://github.com/ngx-translate/core/issues/495). Это слишком ново, чтобы взять на себя?
- По-видимому, у меня должен быть отдельный сайт для каждого языка (https://angular.io/guide/i18n#template-translations)??? Я действительно не думаю, что это было бы хорошо. Это правильно? или это случай, когда файлы шаблонов динамически вставляются каждый раз? Я знаю, что с ngx-translate переведенные слова просто хранятся в файлах.json - мне нравится аккуратность этого. Я не думаю, что нам нужна куча разных веб-сайтов.
Есть ли способ сделать живое переключение языков с угловым i18n? т.е. переключение языка на странице без перезагрузки/повторной передачи данных с сервера? Это то, что они называют JIT?
Кто-нибудь пробовал https://github.com/robisim74/angular-l10n? Очень хорошо выглядит.
Большое спасибо. С наилучшими пожеланиями.