Javascript 角度7 ngx平移不';刷新后我记不起语言了
我们有一个角度应用程序,它有两种语言。默认值为德语,另一个为英语。我们正在使用Javascript 角度7 ngx平移不';刷新后我记不起语言了,javascript,angular,typescript,ngx-translate,Javascript,Angular,Typescript,Ngx Translate,我们有一个角度应用程序,它有两种语言。默认值为德语,另一个为英语。我们正在使用ngx translate作为translateService 刷新浏览器时,应用程序将切换回默认语言。 在我们的导航栏中调用swithLang()函数: <li class="nav-item"> <a class="nav-link" id="switchLang" (click)="switchLang()"> <span> <i cl
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>
以及语言服务:
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这是正确的行为。您可以使用localStorage(或其他位置)来存储所选语言。使用寿命完全在内存中。如果要添加持久性,应在语言更改时将当前值保存到localStorage,或将此设置保存到服务器您可以使用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());
}
你什么地方也救不了它。当你刷新页面时,整个应用程序都会重新编译。我认为ngx translate有一个内置的方法。我认为localStorage是一个方向,我还建议您使用浏览器语言初始化默认语言<代码>常量userLang=navigator.language | | navigator.userLanguage代码>我看到翻译有自己的存储空间。如果我希望在每个translate管道(…| translate)上从本地存储获取数据,而不需要对代码做太多更改(我认为这是有属性的),该怎么办。另外-使用translateService.setTranslation(..)将自动使用“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());
}