言語に応じてページを表示できるように、javascript を使用して OS 言語を検出する必要があります。
ブラウザの言語を検出できることはわかっていますが、それだけでは十分ではありません。
オペレーティング システムの言語が必要です
前もって感謝します
言語に応じてページを表示できるように、javascript を使用して OS 言語を検出する必要があります。
ブラウザの言語を検出できることはわかっていますが、それだけでは十分ではありません。
オペレーティング システムの言語が必要です
前もって感謝します
これを行うためのクロスブラウザの方法はありません。InternetExplorerは以下をサポートします。
navigator.browserLanguage
:ブラウザ言語navigator.systemLanguage
:Windowsシステム言語navigator.userLanguage
:Windowsユーザー固有の言語しかし、他のブラウザからこれらの設定にアクセスする方法はありません(私が知ることができます)ので、それらを使用しないでくださいnavigator.language
:クロスブラウザ機能を維持したい場合は、標準(ブラウザ言語に対応)に固執してください。それらを使用する場合は、Webサイトを特定のオペレーティングシステムファミリ(Windowsなど)および特定のブラウザ(Internet Explorerなど)に関連付けます。本当にこれをしたいですか?
アプリケーションに対してブラウザの言語が不十分なのはなぜですか?
いくつかの要因を考慮して、 OS言語を推測するだけかもしれません。
navigator.browserLanguage
: IE 言語 (メニュー、ヘルプなど)、OS 表示言語と同じ (ユーザーが変更していない場合)。コントロール パネル -> 地域と言語 -> キーボードと言語 -> 表示言語のようにnavigator.systemLanguage
: コントロール パネル -> 地域と言語 -> 場所のようにnavigator.userLanguage
: コントロール パネル -> 地域と言語 -> フォーマットのようにvar d=new Date(Date.UTC(2014,1,26,3,0,0));
var dateFormat={weekday:"long",year:"numeric",month:"long",day:"numeric"};
var result = d.toLocaleDateString("i-default",dateFormat);
alert(result);
//e.g. for Russian format ( Control Panel -> Region and Language -> Formats )
//result == 'среда, 26 февраля 2014 г.'
result
次に、予備的に生成された、さまざまな言語でフォーマットされた日付のセットをサーバーで検索します。
注意!Chrome は、UI 言語でフォーマットされた日付を返します。
OS 言語をどうしても知りたい場合 —ページにフラッシュを埋め込み、 flash.system.Capabilities.languageを利用します。
注意! Chrome はこのトリックを許可していません— Chrome の Flash は常に を表示browser.language
します。これは、独自の Flash があるためだと思います。
navigator.language
はブラウザの UI 言語 (メニュー、ヘルプなど) を示しており、圧倒的多数の場合、それは OS 言語 (特に家庭用コンピュータの場合) と一致していると思われるかもしれません: FF または Chrome をダウンロードしている間、ユーザーのブラウザに応じてダウンロード ページが表示されます— Windows では、OS と同じ言語の IE です。
残念ながら、ブラウザーの環境パラメーターを処理する際に、Chrome がそれ自体であるというのは非常に奇妙です。
ユーザーエージェントを使用できます。ただし、簡単になりすましが可能であり、言語情報が含まれているとは限らず、navigator.language
おそらくnavigator.browserLanguage
より信頼性が高くなります。
ここにいるすべての人が考慮すべきことの1つは、すべてのユーザーがブラウザーの言語設定を設定する方法を知っているわけではないということです。したがって、人々に見てもらいたいサイトを作成している場合、彼らが快適な言語とは異なる言語でサイトにアクセスすると、彼らが残す変化が増えるため、問題になります。多くはターゲットとする人口統計に依存しますが、Webページの場合、少なくとも可能であればシステム言語を検出し、不可能な場合はブラウザー言語にフォールバックするのが良いと思います。正確である可能性が高くなります。