Saya ingin tahu bagaimana menangani internasionalisasi dalam JavaScript. Saya mencari di Google tetapi saya tidak mendapatkan jawaban yang meyakinkan untuk:
- Apakah JavaScript memiliki dukungan asli untuk internasionalisasi?
- Apa i18n dalam JavaScript?
- Bagaimana cara menangani kalender, mata uang, tanggal, dll.?
Saya sudah membaca Internasionalisasi di dalam JavaScript .
javascript
internationalization
rajakvk
sumber
sumber
Jawaban:
Dukungan pelokalan di browser lama sangat buruk. Awalnya, ini karena frasa dalam
ECMAScript
spesifikasi bahasa yang terlihat seperti ini: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:
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:
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.
sumber
Mozilla baru-baru ini merilis L20n atau lokalisasi 2.0 yang mengagumkan. Dengan kata-kata mereka sendiri L20n adalah
Implementasi js mereka ada di repositori github L20n.
sumber
Beberapa di antaranya asli, sisanya tersedia melalui perpustakaan.
Misalnya Datejs adalah perpustakaan tanggal internasional yang bagus.
Untuk sisanya, ini hanya tentang terjemahan bahasa, dan JavaScript kompatibel dengan Unicode (dan juga semua peramban utama).
sumber
Anda juga dapat mencoba perpustakaan lain - https://github.com/wikimedia/jquery.i18n .
Selain penggantian parameter dan beberapa bentuk jamak, ini memiliki dukungan untuk gender fitur yang agak unik dari aturan tata bahasa khusus yang diperlukan beberapa bahasa.
sumber