プロジェクトの場合、英語版とフランス語版の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でそれを検出する方法は?
CJデニス、答えに感謝します。私はChromeについても同じことが分かった。しかし、依然としてユーザーがフランスにいて、フランス語のウィンドウを持っているので、そのシステムがfr-FRを返すと思うのですか? – mljm
必ずしもそうではありません。フランスだけでフランス語が使われているわけではありません。地域の言語に対するサポートが拡大しています。私がフランスで自分のコンピュータを使っていたら、 'en-AU'に設定されます。使用言語のレベルに応じて、フランス語でサイトを使用できる場合と使用できない場合があります(フランス語は中級です)。あなたのウェブサイトをフランス語でしか表示したくない場合(簡単に)、実際の言語設定を検出したい場合は、あなたの責任です。複数の言語でサイトを提供することを正当化するのに十分なフランス語以外のユーザーがいるかどうか検討する必要があります。 –