Интернационализация Angular7 против модуля перевода - PullRequest
0 голосов
/ 01 февраля 2019

У меня огромные сомнения в том, как интернационализировать мое веб-приложение angular7.То, что я хочу, это понять из языка браузера язык пользователя и отобразить веб-приложение на этом языке.Затем, если пользователь хочет изменить его, он может выбрать язык в выпадающем списке.Теперь ... Я провел два дня, читая всю официальную и неофициальную документацию, но я не могу понять, какой из них является наилучшим способом достижения этой цели.Читая официальную документацию, я могу использовать новую систему i18n по умолчанию, но не могу понять, как изменить язык во время выполнения.

Должен ли я использовать модуль перевода?

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

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

Служба перевода Все возможно.

Я бы использовал TranslationService или модуль перевода, потому что это проще.Проводил те же расследования, что и вы сейчас; -)

С уважением

0 голосов
/ 16 февраля 2019

Если я понял, вы можете использовать ngx-translate, и он будет работать, как и ожидалось, из документов:

this.translate.setDefaultLang('en');

, в то время как вы можете изменить язык во время выполнения с чем-то вроде:

useLang(){
const lang = localStorage.getItem('language');

if (lang === null) {
  this.translate.use('en');
  console.log('Language is null! Using english');
} else {
  this.translate.use(lang);
  console.log(lang);
}
}

У меня не было проблем в приложении с использованием ngx-translate

...