1

ユーザーの好みのブラウザ言語を検出するのに問題がありました。

ナビゲーターオブジェクトのプロパティは、システム関連の言語のみを検出することがわかりました。.userLanguageは、ユーザーのPCのローカル言語、またはタスクバーで使用され、ControlPanel> Regional&LanguageOptionsで設定された言語を検出し、次に.systemLanguageがOS言語を検出し、次に.browserLanguageがシステムのデフォルトのブラウザー言語を検出します。したがって、これらのものはどれも私を助けません。

私が必要としているのは、Tools>InternetOptionsを介して設定されているユーザーの好みのブラウザ言語を検出することです

Javaを使用してそれを行う方法はありますか?

誰かが私を助けてくれることを願っています

4

2 に答える 2

5

HttpServletRequest オブジェクトにアクセスできれば、かなり簡単です。あなたがサーブレットにいるとしましょう:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
        Enumeration locales = request.getLocales();
/**
*You can get the first one matches your supported local like below
*/
        while (locales.hasMoreElements()) {
             Locale locale = (Locale) locales.nextElement();
             if (supportedLanguages.contains(locale)) {
                 requestLocale = locale;
                 break;
             }
        }
       super.doPost(request, response);
   }

クライアント側でブラウザ言語を検出することについて話している場合。ブラウザー言語を取得するために JS を使用することをお勧めします。Java コードで js を呼び出すことができます。ところで、私はクロムでそれをテストしました:

var type=navigator.appName
if (type=="Netscape"){
var lang = navigator.language
}
else{
var lang = navigator.userLanguage
}
于 2016-01-12T00:55:17.327 に答える