브라우저가 클라이언트 시스템 로케일 값을 얻는 방법. 브라우저가 클라이언트 컴퓨터의 운영 체제 로캘 값을 선택하는 방법에 대한 내부 프로세스가 궁금합니다. (즉, 클라이언트 OS에서 실행중인 브라우저/앱의 경우 변수 값에 따라 앱/브라우저가 가져오고 요청 헤더 정보로 전송됩니다.)브라우저가 클라이언트 로켈 값을 선택하는 방법은 무엇입니까?
1
A
답변
1
매력적인 질문. https://dxr.mozilla.org/mozilla-esr45/source/intl/locale/nsLocaleService.cpp?q=nslocaleservice&redirect_type=direct#69 내가 목록을 만들었다 고에서
당신
- Windos XP의 경우 : QT 라이브러리를 사용할 수 GetSystemDefaultLCID()
- 경우
파이어 폭스는이 여기에 다른 운영 체계에 따라 취득하는 방법을 보여 주었다 QLocale :: system(). name(). toUtf8()
- 폴백은 C++ getenv("LANG") 매우 원시
- Mac에서는 t를 사용합니다. 그의 CFLocaleRef cflocale = CFLocaleCopyCurrent(); How to get the locale of the current user in OSX using C++
또한 추가 정보를 원하시면 여기를 참조 C에 지어진 안드로이드 크롬 브라우저 ++ 자바의 경우, 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를 호출합니다