Cách thích hợp là xem tiêu đề HTTP Accept-Language được gửi đến máy chủ. Điều này chứa danh sách ngôn ngữ được đặt hàng, có trọng số mà người dùng đã định cấu hình trình duyệt của họ muốn sử dụng.
Rất tiếc, tiêu đề này không có sẵn để đọc bên trong JavaScript; tất cả những gì bạn nhận được là navigator.language
, cho bạn biết phiên bản trình duyệt web đã bản địa hóa nào đã được cài đặt. Điều này không nhất thiết phải giống như ngôn ngữ ưa thích của người dùng.Trên IE, bạn thay vào đó, hãy lấy systemLanguage
(ngôn ngữ được cài đặt OS), browserLanguage
(giống như language
) và userLanguage
(khu vực HĐH được định cấu hình người dùng), tất cả đều vô ích tương tự.
Nếu tôi phải lựa chọn giữa các thuộc tính, tôi muốn sniff cho userLanguage
đầu tiên, té ngửa ra language
và chỉ sau đó (nếu những không phù hợp với bất kỳ ngôn ngữ có sẵn) nhìn browserLanguage
và cuối cùng systemLanguage
.
Nếu bạn có thể đặt một server-side script ở một nơi khác trên mạng mà chỉ đơn giản đọc header Accept-Language và spits nó lại ra như một tập tin JavaScript với giá trị tiêu đề trong chuỗi, Eg .:
var acceptLanguage= 'en-gb,en;q=0.7,de;q=0.3';
thì bạn có thể bao gồm một tập lệnh < src> trỏ vào dịch vụ bên ngoài đó trong HTML và sử dụng JavaScript để phân tích cú pháp tiêu đề ngôn ngữ. Tuy nhiên, tôi không biết bất kỳ mã thư viện hiện có nào để thực hiện điều này, vì việc phân tích cú pháp Accept-Language hầu như luôn được thực hiện ở phía máy chủ.
Dù bạn kết thúc làm gì, bạn chắc chắn cần ghi đè người dùng vì sẽ luôn đoán sai đối với một số người. Thường thì dễ nhất là đặt cài đặt ngôn ngữ trong URL (ví dụ: http: //www.example.com/en/site vs http: //www.example.com/de/site) và cho phép người dùng nhấp liên kết giữa hai. Đôi khi bạn muốn một URL duy nhất cho cả hai phiên bản ngôn ngữ, trong trường hợp này bạn phải lưu cài đặt trong cookie, nhưng điều này có thể gây nhầm lẫn cho tác nhân người dùng không hỗ trợ cookie và công cụ tìm kiếm.
cách duy nhất một trình duyệt có thể chia sẻ dữ liệu meta về người dùng của nó và yêu cầu là thông qua URL và tiêu đề. Lấy Firefox và xem nhanh các tiêu đề được gửi khi yêu cầu được thực hiện. Nó khá thú vị để kiểm tra tiêu đề yêu cầu và đáp ứng tiêu biểu. –