Dukungan pelokalan di browser lama sangat buruk. Awalnya, ini karena frasa dalam ECMAScript
spesifikasi bahasa yang terlihat seperti ini:
Number.prototype.toLocaleString ()
Menghasilkan nilai string yang mewakili nilai Number yang diformat sesuai dengan konvensi lokal saat ini dari lingkungan host. Fungsi ini tergantung pada implementasi, dan diizinkan, tetapi tidak dianjurkan, untuk mengembalikan hal yang sama seperti ke String .
Setiap metode lokalisasi yang didefinisikan dalam spesifikasi didefinisikan sebagai "tergantung implementasi", yang menghasilkan banyak inkonsistensi. Dalam hal ini, Chrome Opera dan Safari akan mengembalikan hal yang sama dengan .toString()
. Firefox dan IE akan mengembalikan string berformat lokal, dan IE bahkan menyertakan seribu pemisah (sempurna untuk string mata uang). Chrome baru-baru ini diperbarui untuk mengembalikan string yang dipisahkan ribuan, meskipun tanpa desimal tetap.
Untuk lingkungan modern , spesifikasi API Internasionalisasi ECMAScript , standar baru yang melengkapi spesifikasi Bahasa ECMAScript, memberikan dukungan yang jauh lebih baik untuk perbandingan string, pemformatan angka, dan format tanggal dan waktu; itu juga memperbaiki fungsi yang sesuai dalam Bahasa Spec. Pengantar dapat ditemukan di sini . Implementasi tersedia di:
- Chrome 24
- Firefox 29
- Internet Explorer 11
- Opera 15
Ada juga implementasi kompatibilitas, Intl.js , yang akan menyediakan API di lingkungan yang belum ada.
Menentukan bahasa yang disukai pengguna tetap menjadi masalah karena tidak ada spesifikasi untuk mendapatkan bahasa saat ini. Setiap browser menerapkan metode untuk mendapatkan string bahasa, tetapi ini bisa didasarkan pada bahasa sistem operasi pengguna atau hanya bahasa browser:
// navigator.userLanguage for IE, navigator.language for others
var lang = navigator.language || navigator.userLanguage;
Solusi yang baik untuk ini adalah membuang header Accept-Language dari server ke klien. Jika diformat sebagai JavaScript, ini dapat diteruskan ke konstruktor API Internasionalisasi, yang secara otomatis akan memilih lokal terbaik (atau yang didukung pertama).
Singkatnya, Anda harus memasukkan banyak pekerjaan sendiri, atau menggunakan kerangka / pustaka , karena Anda tidak dapat mengandalkan browser untuk melakukannya untuk Anda.
Berbagai perpustakaan dan plugin untuk pelokalan:
Jangan ragu untuk menambah / mengedit.