15

言語に応じてページを表示できるように、javascript を使用して OS 言語を検出する必要があります。

ブラウザの言語を検出できることはわかっていますが、それだけでは十分ではありません。

オペレーティング システムの言語が必要です

前もって感謝します

4

5 に答える 5

22

これを行うためのクロスブラウザの方法はありません。InternetExplorerは以下をサポートします。

  • navigator.browserLanguage:ブラウザ言語
  • navigator.systemLanguage:Windowsシステム言語
  • navigator.userLanguage:Windowsユーザー固有の言語

しかし、他のブラウザからこれらの設定にアクセスする方法はありません(私が知ることができます)ので、それらを使用しないでくださいnavigator.language:クロスブラウザ機能を維持したい場合は、標準(ブラウザ言語に対応)に固執してください。それらを使用する場合は、Webサイトを特定のオペレーティングシステムファミリ(Windowsなど)および特定のブラウザ(Internet Explorerなど)に関連付けます。本当にこれをしたいですか?

アプリケーションに対してブラウザの言語が不十分なのはなぜですか?

于 2010-10-08T21:44:12.083 に答える
5

いくつかの要因を考慮して、 OS言語を推測するだけかもしれません。

Windows OS

インターネットエクスプローラ

  • navigator.browserLanguage: IE 言語 (メニュー、ヘルプなど)、OS 表示言語と同じ (ユーザーが変更していない場合)。コントロール パネル -> 地域と言語 -> キーボードと言語 -> 表示言語のように
  • navigator.systemLanguage: コントロール パネル -> 地域と言語 -> 場所のように
  • navigator.userLanguage: コントロール パネル -> 地域と言語 -> フォーマットのように

ECMAScript 国際化 API

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 があるためだと思います。

Firefox と Chrome

navigator.languageはブラウザの UI 言語 (メニュー、ヘルプなど) を示しており、圧倒的多数の場合、それは OS 言語 (特に家庭用コンピュータの場合) と一致していると思われるかもしれません: FF または Chrome をダウンロードしている間、ユーザーのブラウザに応じてダウンロード ページが表示されます Windows では、OS と同じ言語の IE です。

残念ながら、ブラウザーの環境パラメーターを処理する際に、Chrome がそれ自体であるというのは非常に奇妙です。

于 2015-05-20T13:37:13.643 に答える
2

ユーザーエージェントを使用できます。ただし、簡単になりすましが可能であり、言語情報が含まれているとは限らず、navigator.languageおそらくnavigator.browserLanguageより信頼性が高くなります。

于 2010-10-08T21:41:24.863 に答える
0

ここにいるすべての人が考慮すべきことの1つは、すべてのユーザーがブラウザーの言語設定を設定する方法を知っているわけではないということです。したがって、人々に見てもらいたいサイトを作成している場合、彼らが快適な言語とは異なる言語でサイトにアクセスすると、彼らが残す変化が増えるため、問題になります。多くはターゲットとする人口統計に依存しますが、Webページの場合、少なくとも可能であればシステム言語を検出し、不可能な場合はブラウザー言語にフォールバックするのが良いと思います。正確である可能性が高くなります。

于 2012-12-10T15:30:00.867 に答える