javascript - Angular 7 ngx-translate 不记得刷新后的语言

标签 javascript angular typescript ngx-translate

我们有一个有两种语言的 Angular 应用程序。默认是德语,另一个是英语。我们使用 ngx-translate 作为 translateService

当您刷新浏览器时,应用程序会切换回默认语言。

switchLang() 函数在我们的导航栏中被调用:

<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);
  }
}

translateServicengx-translate

最佳答案

这是正确的行为。您可以使用 localStorage(或其他地方)来存储所选语言。

关于javascript - Angular 7 ngx-translate 不记得刷新后的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55647038/

相关文章:

Typescript 推断的泛型类型在条件类型中未知

php - 除非启用 Javascript,否则使用 php 函数

javascript - 使用 JavaScript 删除 XML 命名空间的简单方法?

javascript - 如果我们已经有了dispatch作为props,为什么还需要mapDispatchToProps呢?

angular - 组件销毁并重新访问后,订阅在 ngOnInit 函数中运行

ngFor 内的 Angular2 ngModel(数据未绑定(bind)输入)

javascript - 使用 InjectionToken 进行注入(inject)?

php - 通过 $_COOKIE 从 javascript cookie 到 php 输出的西里尔字符

node.js - 全新安装 npm 和 Node

javascript - 在浏览器上使用 Javascript require 和 import