Hỗ trợ bản địa hóa trong các trình duyệt cũ. Ban đầu, điều này là do các cụm từ trong thông số ECMAScript
ngôn ngữ trông như thế này:
Number.prototype.toLocaleString ()
Tạo một giá trị chuỗi đại diện cho giá trị của Số được định dạng theo các quy ước của ngôn ngữ hiện tại của môi trường máy chủ. Hàm này phụ thuộc vào việc triển khai và được cho phép, nhưng không được khuyến khích, để nó trả về điều tương tự như toString .
Mỗi phương thức bản địa hóa được xác định trong thông số kỹ thuật được định nghĩa là "phụ thuộc vào việc thực hiện", dẫn đến rất nhiều sự không nhất quán. Trong trường hợp này, Chrome Opera và Safari sẽ trả lại điều tương tự như .toString()
. Firefox và IE sẽ trả về các chuỗi được định dạng cục bộ và IE thậm chí bao gồm một nghìn dấu phân cách (hoàn hảo cho các chuỗi tiền tệ). Chrome gần đây đã được cập nhật để trả về một chuỗi phân tách hàng nghìn, mặc dù không có số thập phân cố định.
Đối với các môi trường hiện đại , thông số API quốc tế hóa ECMAScript , một tiêu chuẩn mới bổ sung cho đặc tả Ngôn ngữ ECMAScript, cung cấp hỗ trợ tốt hơn nhiều cho việc so sánh chuỗi, định dạng số và định dạng ngày và giờ; nó cũng sửa các chức năng tương ứng trong Spec Spec. Một giới thiệu có thể được tìm thấy ở đây . Triển khai có sẵn trong:
- Chrome 24
- Firefox 29
- Internet Explorer 11
- Opera 15
Ngoài ra còn có một triển khai tương thích, Intl.js , sẽ cung cấp API trong các môi trường không tồn tại.
Xác định ngôn ngữ ưa thích của người dùng vẫn là một vấn đề vì không có thông số kỹ thuật để có được ngôn ngữ hiện tại. Mỗi trình duyệt thực hiện một phương thức để có được chuỗi ngôn ngữ, nhưng điều này có thể dựa trên ngôn ngữ hệ điều hành của người dùng hoặc chỉ ngôn ngữ của trình duyệt:
// navigator.userLanguage for IE, navigator.language for others
var lang = navigator.language || navigator.userLanguage;
Một cách giải quyết tốt cho vấn đề này là chuyển tiêu đề Ngôn ngữ chấp nhận từ máy chủ sang máy khách. Nếu được định dạng dưới dạng JavaScript, nó có thể được chuyển đến các hàm tạo API quốc tế hóa, nó sẽ tự động chọn ngôn ngữ tốt nhất (hoặc được hỗ trợ đầu tiên).
Nói tóm lại, bạn phải tự mình đưa vào rất nhiều công việc hoặc sử dụng khung / thư viện , vì bạn không thể dựa vào trình duyệt để làm việc đó cho bạn.
Các thư viện và plugin khác nhau để bản địa hóa:
Hãy thêm / chỉnh sửa.