2017-12-04 14 views
1

ブラウザがクライアントマシンのロケール値を取得する方法。ブラウザがクライアントマシンのオペレーティングシステムのロケール値を取得する方法の内部プロセスが不思議です。 (つまり、クライアントOS上で実行されているブラウザ/任意のアプリケーションでは、これらのアプリケーション/ブラウザは変数値によってリクエストヘッダ情報としてフェッチして送信します)ブラウザはどのようにクライアントのロケール値を選択しますか?

答えて

1

魅力的な質問

Firefoxは、それが、ここでは異なるオペレーティングシステムに応じて、これを取得する方法を示しています:https://dxr.mozilla.org/mozilla-esr45/source/intl/locale/nsLocaleService.cpp?q=nslocaleservice&redirect_type=direct#69

私はあなた

  1. Windos XPのためのリストを作成していることから:QTライブラリが利用可能な場合GetSystemDefaultLCID()
  2. をQLocale :: system()。name()。toUtf8()
  3. フォールバックはC++ getenv("LANG")非常に未処理
  4. Macはtを使用します。彼のCFLocaleRef cflocale = CFLocaleCopyCurrent(); How to get the locale of the current user in OSX using C++

また、詳細はここを参照してください、Cに造られたアンドロイドクロムブラウザは++、JavaのLocale.getDefault()

std::string GetDefaultLocaleString() { 
    JNIEnv* env = base::android::AttachCurrentThread(); 
    ScopedJavaLocalRef<jstring> locale = 
     Java_LocaleUtils_getDefaultLocaleString(env); 
    return ConvertJavaStringToUTF8(locale); 
} 

https://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#getDefault()

を使用していますJava.LocaleUtilsを呼び出します
関連する問題