IE特定:在Angular 2 RC4中,管道翻译不起作用

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 却不起作用。:(

请有人告诉我可能是什么问题和可能的解决方案吗?

谢谢,

Debopam

2个回答

1
根据 MSDN 上的文档,navigator.userLanguage 返回操作系统的自然语言,而不是浏览器中设置的首选语言。更改浏览器语言设置不会影响此值。(链接
其他浏览器确实支持 navigator.language,但正如 MDN 所述,它们也有一些缺点,因为并非所有浏览器都会返回用户的首选语言。(链接
在工作中,我们使用服务器端 API 调用返回 Accept-Language HTTP 标头来识别语言。

0

为了让Angular2在Internet Explorer上正常工作,您需要在index.html中包含shims包。

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

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

希望这能有所帮助。

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Debopam Chanda
您可以在外部下载@DebopamChanda。 - Bhushan Gadekar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接