2011-12-22 49 views
1

可能重複:
JavaScript for detecting browser language preference如何檢測用戶的語言(簡單的方法)

我使用下面的js代碼,用於檢測用戶的語言嘗試過,但每種方法的結果undefined 。我的用戶使用兩種語言的系統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

這是不平凡的,可能需要服務器端腳本 - 見上面 – 2011-12-22 09:33:50

+0

不,我讀它的聯繫,但它並不能幫助我。 – 2011-12-22 09:35:12

+0

爲什麼不呢?如上所述,根據頂部的答案那裏,*根本沒有簡單的方法。* – 2011-12-22 09:36:48

回答

6

answer @Pekka pointed to可能是你最好的選擇。這實際上是一個優雅的解決方案,考慮到JavaScript本身沒有這樣的設施。

解決方案的作者提供了一個非常明顯的例子:

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

當然,你可以設置language一些默認值。結果是一個未分析的字符串,所以在nowDoSomethingWithIt()中需要更多的邏輯。

看一看這個工作演示:http://jsfiddle.net/seYLA/

+1

此網址:http://ajaxhttpheaders.appspot.com對於我的用戶有錯誤「403.這是一個錯誤。 您的客戶端沒有權限從該服務器獲取URL。您正在禁止訪問此頁面。我們知道的就這些。」如何解決它? – 2011-12-22 12:40:52

+0

我不知道你在哪個國家,但它託管在Google App Engine上。在荷蘭工作得很好。無論如何,如果你已經讀過前面提到的答案,那麼你知道它只是一個Python腳本,如果需要的話,你可以在自己的服務器上運行它。所以,再次:閱讀前面提到的答案:http://stackoverflow.com/a/3335420/990877 – PPvG 2011-12-22 12:44:18

+0

Python腳本在哪裏下載並將其上傳到服務器? – 2011-12-22 13:06:07