0

我正在使用 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) 最好的,尼克

4

1 回答 1

0

你测试过代码吗?智能感知并不真正适用于所有 javascript 属性。该属性在 IE 控制台中运行良好。

发布为答案,以防有人从谷歌偶然发现此问题并且没有注意到评论。

于 2016-12-10T14:42:28.143 回答