3

ng2-translate を使用してuserNameを異なる言語で表示しようとしています。

私の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には、 userNameを表示するラベルがあります

    <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-Language職場では、 HTTP ヘッダーを返すサーバー側の 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 に答える