我正在使用 Visual Studio Code (Typescript) 开发 Angular 2 应用程序,我想阅读用户语言进行翻译。
“navigate.language” 有效(至少对于 Chrome,...)
但我不能为 IE 编写 navigate.userLanguage 代码 - 我的 IDE 告诉我这个 .userLanguage 不存在。
我必须导入或定义一些东西吗?
AppComponent.ts 中的代码:
public translatedText: string;
public supportedLanguages: any[];
public userLang = navigator.language; // this one works fine
// 但应该是: //public userLang = navigator.language || navigator.userLanguage;
constructor(private _translate: TranslateService) { }
ngOnInit() {
// standing data
this.supportedLanguages = [
{ display: 'English', value: 'en' },
{ display: 'Español', value: 'es' },
{ display: '华语', value: 'zh' },
{ display: 'Deutsch', value: 'de' },
];
this.subscribeToLangChanged(); // subscribe to language changes
// set language
this._translate.setDefaultLang('en'); // set English as default
this._translate.enableFallback(true); // enable fallback
// set current language
this.selectLang(this.userLang);
}
isCurrentLang(lang: string) {
// check if the selected lang is current lang
return lang === this._translate.currentLang;
}
selectLang(lang: string) {
// set current lang;
this._translate.use(lang);
}
refreshText() {
// refresh translation when language change
this.translatedText = this._translate.instant('hello world');
}
subscribeToLangChanged() {
// refresh text
// please unsubribe during destroy
return this._translate.onLangChanged.subscribe(x => this.refreshText());
}
ngOnDestroy() {
this._translate.onLangChanged.unsubscribe();
}
}
希望得到帮助;o) 最好的,尼克