tôi phát hiện ngôn ngữ trình duyệt như thế này:trình duyệt phát hiện ngôn ngữ: mâu thuẫn giữa user agent và window.navigator.language
var language = window.navigator.userLanguage || window.navigator.language
Sau đó, tôi gửi giá trị này đến máy chủ web của tôi với AJAX gọi.
Khi tôi kiểm tra kết quả, tôi đã thấy một điều kỳ lạ. Ví dụ: tác nhân người dùng của trình duyệt cho biết rằng địa phương hiện tại là tr-tr
, nhưng khi tôi kiểm tra window.navigator.language
tôi nhận được kết quả là en
.
Tất cả những trình duyệt này nói rằng ngôn ngữ của họ là en
:
Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; GM FOX Build/HuaweiU8350) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1,
Mozilla/5.0 (Linux; U; Android 2.2.2; tr-tr; LG-P503 Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2
Mozilla/5.0 (Linux; U; Android 2.3.4; tr-tr; GT-S5670 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.3.6; tr-tr; GT-S5360 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (Linux; U; Android 2.3.6; tr-tr; GT-S5830i Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S7233E/S723EJVKB1; U; Bada/1.0; tr-tr) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.0 Mobile WQVGA SMM-MMS/1.2.0 OPN-B
Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8500/S8500JVJE6; U; Bada/1.0; tr-tr) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.0 Mobile WVGA SMM-MMS/1.2.0 OPN-B
Mozilla/5.0 (X11; U; Linux x86_64; tr-tr) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36 Puffin/3.7.0.177AP
Mozilla/5.0 (Series40; NokiaC2-02/07.63; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/5.0.0.0.31
Mozilla/5.0 (Series40; Nokia311/07.36; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/2.3.0.0.54
Mozilla/5.0 (Series40; NokiaC3-00/08.70; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/2.3.0.0.49
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; ASU2JS; rv:11.0) like Gecko
Tôi có nên xem xét bất cứ điều gì nhiều hơn để phát hiện ngôn ngữ trình duyệt?
Vấn đề của tôi là phát hiện ngôn ngữ trình duyệt. Đối với tác nhân người dùng, ngôn ngữ hiện tại là "tr", nhưng window.navigator.language
cho "vi". Đó có phải là vấn đề đã biết không? Tôi có nên tin tưởng giá trị window.navigator.language
không? Tôi có nên phân tích cú pháp tác nhân người dùng cho ngôn ngữ không?
Chỉnh sửa:
Tôi cũng đã chọn tiêu đề Chấp nhận ngôn ngữ cho các yêu cầu này. Các giá trị này phù hợp với chuỗi tác nhân người dùng của yêu cầu.
Vì vậy, window.navigator.language
nói "vi", Accept-language
tiêu đề là "tr-TR, en-US", chuỗi tác nhân người dùng có từ "tr-tr".
Trình duyệt sẽ là ... – epascarello
@trante bạn đã đi qua đáy này: http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference? – caramba
Hoặc ngay cả câu trả lời cụ thể này http://stackoverflow.com/a/4079798/941240 –