3

我正在尝试使用 ng2-translate 以不同的语言显示用户名。

我的LoginComponent如下所示:

import { Component } from '@angular/core';
import {TranslateService, TranslatePipe} from 'ng2-translate/ng2-translate';

@Component({
    selector: 'login-app',
    templateUrl: './app/components/html/login.component.html',
    pipes: [TranslatePipe]
})

export class LoginComponent {
    userName: string;

    constructor(private _translate: TranslateService) {

        this.initializeTranslateServiceConfig();
    }

    initializeTranslateServiceConfig() {
        var userLang = navigator.language || navigator.userLanguage;
        this._translate.use(userLang);
    }
}

我的模板login.component.html有一个显示用户名的标签

    <label for="userName">{{"User Name" | translate}}</label>

我有不同的 .json 文件来支持翻译。

现在我正在更改 Chrome、Firefox 和 IE11 的语言设置。它适用于 Chrome 和 Firefox,但不适用于 IE11。:(

谁能告诉我可能是什么问题和可能的解决方案?

谢谢,

地波泮

4

2 回答 2

1

根据 MSDN 上的文档navigator.userLanguage返回操作系统的自然语言,而不是浏览器中设置的首选语言。(链接) 更改浏览器语言设置不会影响此值。

其他浏览器确实支持navigator.language,但也有一些缺点,如 MDN 所述,因为并非所有浏览器都会返回用户的首选语言。(链接

在工作中,我们使用返回Accept-LanguageHTTP 标头的服务器端 API 调用来识别语言。

于 2016-07-27T12:14:14.287 回答
0

要让 angular2 在 Internet Explorer 上运行,您需要在 index.html 中包含 shims 包

下载并将以下脚本添加到您的 html 中:

<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>

希望这可以帮助。

于 2016-07-21T11:14:03.103 回答