2017-08-08 19 views
5

プロジェクトの場合、英語版とフランス語版の2つのWebページを用意する必要があります。私が英国にいるので、ブラウザー(IE11)は当然現地の言語(en-GB)でインストールされています。フランス語をテストするには、IE11の優先言語が検出されない場合

 Internet-Options->Languages->Set Language Preference->Add a Language (French-France) 
(or select the language if already there) 

に行き、フランス語が最上部にあることを確認しました。 Javaを使用して言語が検出されたJSFページがあり、それはうまくいきます。英語とフランス語の間で言語を変更すると自動的に切り替わる英語のプロパティファイルではなく、すべてのテキストがフランスのプロパティファイルから取り込まれます。 しかし、あるWebページでは、JavaScriptで現在の言語を検出する必要があります。何を試しても、en-GBのままです。

私はこのコードを試してみました:

var language = navigator.languages && navigator.languages[0] || 
      navigator.language || 
      navigator.userLanguage; 

それは 'エンGB' を返します。 はF12デバッガに自分自身で試してみました:

navigator.languages returns: undefined 
navigator.userLanguage: en-GB 
navigator.language: undefined 
navigator.browserLanguage: en-US 

これはIE11バージョン11.0.9600.17031

で誤ってWindowsキーを押した後、私は、Windows 8にもだし、窓、ホーム画面( ...)でもフランス語(ニュース、天気など)のすべてが表示されるので、フランス語が選択されていますが、JavaScriptでそれを検出する方法は?

+0

CJデニス、答えに感謝します。私はChromeについても同じことが分かった。しかし、依然としてユーザーがフランスにいて、フランス語のウィンドウを持っているので、そのシステムがfr-FRを返すと思うのですか? – mljm

+0

必ずしもそうではありません。フランスだけでフランス語が使われているわけではありません。地域の言語に対するサポートが拡大しています。私がフランスで自分のコンピュータを使っていたら、 'en-AU'に設定されます。使用言語のレベルに応じて、フランス語でサイトを使用できる場合と使用できない場合があります(フランス語は中級です)。あなたのウェブサイトをフランス語でしか表示したくない場合(簡単に)、実際の言語設定を検出したい場合は、あなたの責任です。複数の言語でサイトを提供することを正当化するのに十分なフランス語以外のユーザーがいるかどうか検討する必要があります。 –

答えて

2

Internet ExplorerはWindowsで設定された言語設定を尊重しますが、明らかにJavaScriptからこの情報にアクセスする方法はありません。あなたができることは、サーバー上の言語を検出し、その情報をスクリプトに戻すことです。

Accept-Languageヘッダーを手動で表示するには、[F12]を押して開発ツールを有効にし、次に[Ctrl] + [4]を押してリクエストします([F5]を押すだけです) 。右側にヘッダー用のパネルが表示されます。 "Request Headers"には "Accept-Language"が表示されます。これはあなたが望む値でなければなりません。繰り返しますが、わかっている限り、純粋にJavaScriptから同じ情報を得る方法はありません。

関連する問題