2011-12-22 23 views
1

可能性の重複:undefined
JavaScript for detecting browser language preference(簡単な方法)

私は、ユーザーの言語を検出するためのjsの次のコードを使用してみました

が、それぞれの方法の結果。私のユーザは2言語でシステムを使用しますEN & FA

ユーザー言語をjavascriptまたはjQueryで検出できますか?はいの場合、どうですか?

デモ:http://jsfiddle.net/AqXsp/1/

$('input').live('keyup', function(){ 
    alert(navigator.userLanguage); // Output this is "undefined" 
    alert(navigator.systemLanguage); // Output this is "undefined" 
    alert(navigator.browserLanguage); // Output this is "undefined" 
}) 
+0

は、これは些細なことではないと、サーバー側のスクリプトが必要になる場合があります - いいえ、私はそれを読んで、それは私を助けていない –

+0

上記のリンクを参照してください。 –

+0

なぜですか?上記のように、そこの一番上の答えによると、これは単純な方法ではありません。* –

答えて

6

answer @Pekka pointed toは、おそらくあなたの最善の策です。実際には、JavaScript自体にそのような機能がないと考えると、洗練されたソリューションです。あなたには、いくつかのデフォルト値にlanguageを設定することができ、もちろん

var language; 
$.ajax({ 
    url: "http://ajaxhttpheaders.appspot.com", 
    dataType: 'jsonp', 
    success: function(headers) { 
     language = headers['Accept-Language']; 
     nowDoSomethingWithIt(language); 
    } 
}); 

ソリューションの作者は、非常に明確な例を提供します。結果は解析されていない文字列なので、nowDoSomethingWithIt()にはもっと論理が必要です。

は、この作業のデモを見てください:http://jsfiddle.net/seYLA/

+1

このURL:私のユーザーのためのhttp://ajaxhttpheaders.appspot.comにはエラー403があります。それはエラーです クライアントにはこのサーバーからURLを取得する権限がありません。このページは禁止された国からアクセスしています。それだけで私たちは知っている。どのようにそれを修正する? –

+0

現在の国はわかりませんが、Google App Engineでホストされています。ここオランダでうまく動作します。とにかく、前に述べた答えを読んだことがあれば、それは単なるPythonスクリプトであり、必要に応じて自分のサーバーで実行できます。だから、再び:上記の答えを読んでください:http://stackoverflow.com/a/3335420/990877 – PPvG

+0

Pythonスクリプトはどこにダウンロードしてサーバーにアップロードするのですか? –