2012-09-19 10 views
22

ユーザーのロケール(その場所ではありません)を検出します。問題は、いずれの方法も信頼できるとは思われないということです。2012年にブラウザのユーザーのロケールを検出する最適な方法は何ですか?

は受け入れ言語ヘッダーを

賛否

  1. あなたはブラウザが何か他のものをデフォルトに変更された場合はtrueを、ロケールを明らかにすることができます値のリストを取得することを意図しています。
  2. IEで正確に見えますか?
  3. IEでの正確度は、デフォルトではWindowsのFFでは正確ですか? (すなわち、mozilla.orgから正しいバージョンをダウンロードしてください)
  4. Opera on Windowsの場合と同じですか?

短所

  1. サーバ側オーバーヘッド及びキャッシング(または余分XHR)との干渉。
  2. ローカル辞書をインストールして上部にドラッグしない限り、すべてのシステムで英語の "en-us"に設定されています。
  3. Safariから送信されませんか?
  4. SafariとChromeでデフォルトで間違っていると、http://mozilla.orghttp://opera.comが間違ったダウンロードをユーザーに表示し、自分自身の「en-us」バージョンもインストールされます。

結論

  • すべてのブラウザは、デフォルトでは間違っていることになるので、OSX上で完全に信頼できません。しかし、WindowsではIEとFFでは正確でなければなりません。

window.navigator.language /ユーザーの言語

賛否

  1. 本の最良の部分は、それが素敵な軽量クライアント側のソリューションであるということです。
  2. IEで正確に見えますか?
  3. WindowsではFFで正確に見えますか?

短所

  1. 常に "EN-US" すべてのシステム上のSafariでデフォルトで。
  2. ローカル辞書をインストールして上部にドラッグしない限り、すべてのシステムで英語の "en-us"に設定されています。
  3. オペラには常に「en」だけです。さらに信頼性の低い受け入れ言語より

結論

IPジオロケーション

賛否

  1. 独立して、ブラウザとOSの言語設定の作品。

短所

  1. 独立して、ブラウザとOSの言語設定の作品。
  2. これは実際に動作するかどうか結論

などのパフォーマンス、価格設定、日付にそれを追いついて、およそすべてのいつものあなたは、ユーザーのロケールを検出しようとしている なぜに依存。このメソッドは、i18nの意味でロケールと同じではないユーザーの地域を提供します。

サーバーのオーバーヘッドなしのIPジオロケーションのように正確でHTML5 Geolocationの

賛否一般

短所

  1. その場所へのあなたのアクセスを許可するユーザーが必要です。
  2. ブラウザのサポート(実際にサポートはかなり良いようです)。許可を求めるために持っ

結論

  • は、一般的に契約ブレーカです。 IPジオロケーションと同じ結論。彼らの物理的な位置を検出することが容易になった一方でそれは今、ユーザーのロケールを検出するように思える

概要

は、これまで以上に困難です。大きな犯罪者はSafariであり、少なくともOSXのOS設定を反映する必要がありますが、Chromeはいずれの例も設定していません。人々が自分のローカル辞書をChromeにインストールしても、リストの先頭にドラッグすることは本当に疑問です。

MozillaとOperaが他のブラウザからダウンロードページに誤って届いてしまったと非難することはできません。しかし、おそらくAccept-Languageを見るのではなく、ダウンロードページを切り替えてジオロケーションを使用すると問題を軽減できます。

実際、IEがもはや支配的でなくなった今、ユーザーのロケールを検出するためにどのようなオプションが残されていますか?何か残っていますか?

+0

2013年10月現在、Accept-LanguageヘッダーはモバイルSafariで動作するようです。 – nthonygreen

答えて

1

これは、「ユーザーのロケール」が意味するものによって異なります。質問に記載されている可能性は、「ユーザーのロケール」の意味を反映しています。それらのどれも、現代のローカリゼーションにおける適切な意味、すなわちユーザが好む一連の文化的慣習(好みの順に人間の言語のリストを含む)を反映していない。それを見つける方法は、ユーザーにそれらについて問い合わせることです。

当然のことながら、コンテキストで本当に重要な表記について尋ねるだけで、ユーザーが一度表現したCookie、HTML5ストレージ、ユーザーデータベースなどの環境設定を保存することを検討することもできます。

ブラウザでは、一般に、ユーザが優先言語のリストを指定して、Accept-Languageヘッダーで送信することができます。しかし、これはロケールのコンセプトの1つの側面にのみ関連しており、ほとんどのユーザーにとっては不明であり、誤ったデフォルトを頻繁に持つことが知られています。

関連する問題