Подтвердить что ты не робот

Angular2 Переключатель языка i18n

Я ищу способ

  • динамически отображать текущий язык, который будет отображаться: я следил за последней angular кулинарной книгой здесь о интернационализации но он говорит: "Язык пользователя жестко закодирован как глобальная переменная document.locale в index.html"

Как это можно установить динамически в angular2 + typescript?

Вот моя попытка из официального angular2 plunkr: https://plnkr.co/edit/lWV4VhzpWYnCXeDBpzsn?p=preview где я прокомментировал

document.locale='en';

и попытался извлечь файл window.document внутри службы typescript и изменить локаль там, но, несмотря на то, что он вызывается и языковой стандарт установлен правильно (отображается в консоли), интерфейс не отображается на выбранном языке при запуске.

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

4b9b3361

Ответ 1

Я сохраняю выбранный пользователем языковой ключ в локальном хранилище:

//<select name="selectLocate" (change)="onChange($event.target.value)">
 public onChange(localeId: string): void {
    localStorage.setItem('localeId', localeId);
    location.reload(true);
  }

Затем принудительно перезагрузите, а в i18n.provider.ts

let locale = localStorage.getItem('localeId');