ngx-translate переключается на язык по умолчанию после обновления страницы

У меня есть две кнопки, и функция setlang переключает языки (либо на DE, либо на ENG). Когда я переключаю языки, код работает, и я могу переключать языки в разных разделах.

Проблема:

Когда я обновляю страницу, язык переключается обратно на язык по умолчанию.

Я не уверен, где изменить код, чтобы сохранить мой ранее выбранный язык.

Что я пробовал?

Я пытался установить язык в разных местах, но не смог добиться нужного результата, так как я новичок в angular, возможно, я делаю это неправильно.

app.module.ts:

export function setupTranslateFactory(
  service: TranslateService): Function {
  return () => service.use('de');
}

component.ts:

export class LanguageSelectionComponent implements OnInit {
  @Input('isGerman') isGerman: boolean;

  constructor(private translate: TranslateService) {  


  }

  ngOnInit() {


  }
  setLang(lang: string) {
    this.translate.use(lang);

  }

}

HTML:

<div>
    <button (click)="setLang('de')">DE</button>

    <button (click)="setLang('en')">EN</button>
</div>

person Marium Malik    schedule 24.01.2019    source источник
comment
В ngx-translate нет встроенного хранилища, говорят на форумах сообщества. Поэтому вы можете использовать localStorage или библиотеку типа @ngx-pwa/local- хранилище, чтобы сохранить последнее значение   -  person Harun Yilmaz    schedule 24.01.2019


Ответы (1)


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

В качестве альтернативы вы можете использовать язык в своем URL-адресе, например, используя localize-router библиотеку для ngx-translate - библиотека и описание находятся здесь: https://www.npmjs.com/package/localize-router

Таким образом, вам не нужно хранить язык в LocalStorage или cookie, потому что у вас всегда есть доступ к этому языку из службы localize-router.

person kris_IV    schedule 24.01.2019