Angular 7 ngx-translate не запоминает язык после обновления - PullRequest
1 голос
/ 12 апреля 2019

у нас есть приложение Angular с двумя языками.По умолчанию используется немецкий язык, а другой - английский.Мы используем ngx-translate в качестве translateService.

При обновлении браузера приложение переключается обратно на язык по умолчанию.

Функция swithLang()вызывается в нашей навигационной панели:

<li class="nav-item">
    <a class="nav-link" id="switchLang" (click)="switchLang()">
      <span>
        <i class="fa fa-globe" aria-hidden="true"></i>
        <span>{{'switch-lang' | translate}}</span>
      </span>
    </a>
</li>

component.ts:

switchLang() {
    this.languageService.switchLanguage();
}

И языковая служба :

import { Injectable } from '@angular/core';
import {TranslateService} from '@ngx-translate/core';

@Injectable({ providedIn: 'root' })
export class LanguageService {

  private language = 'de';

  constructor(private translateService: TranslateService) { }

  getCurrentLanguage() {
    return this.language;
  }

  getLocale() {
    if (this.language === 'en') {
      return 'en_US';
    } else {
      return 'de_DE';
    }
  }

  switchLanguage() {
    if (this.language === 'en') {
      this.language = 'de';
    } else {
      this.language = 'en';
    }
    this.translateService.use(this.language);
  }
}

translateService - это ngx-translate .

Ответы [ 3 ]

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

Это правильное поведение.Вы можете использовать localStorage (или другое место) для сохранения выбранного языка.

0 голосов
/ 08 июня 2019

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

 // function select language
  selectLanguage(i: number) {
    this.lag = this.languages[i];
    this.translateService.use(this.languages[i].title.toLowerCase());
    localStorage.setItem("language",this.languages[i].title.toLowerCase());
  }
0 голосов
/ 12 апреля 2019

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

...