Nasıl JavaScript yerelleştirme çalışır?
JavaScript yerelleştirme başa çıkmak için nasıl merak ediyorum. Ama ikna edici cevaplar alamıyorum araştırdım:
- JavaScript yerelleştirme desteği var mı?
- JavaScript i18n nedir?
- Nasıl takvimleri, para birimi, tarih, vb ile başa çıkmak için.?
Zaten Internationalization inside Javascript okudum.
CEVAP
Eski tarayıcılarda yerelleştirme desteği zayıf. Aslında, bu gibi ECMA dil spec: ifadeler nedeniyle oldu
Numarası.prototip.() toLocaleString
Sayı değeri temsil eden bir dize değeri göre biçimlendirilmiş üretir bilgisayar ortamında mevcut yerel kongreler. Bu işlev, uygulama-bağımlı ve bu aynı şey gibi geri dönmek için izin, ama değil tavsiye edilirsağlar.
Her yerelleştirme yöntemi spec tanımlı olarak tanımlanan "uygulama-bağımlı tutarsızlıklar birçok sonuçları.", Bu durumda, Chrome, Opera ve Safari .toString()
aynı şey geri döner. Firefox ve IE yerel olarak biçimlendirilmiş bir dize döndürür, ve IE bile binlerce ayırıcı () para birimi dizeleri için mükemmel içerir. Chrome son zamanlarda sabit ondalık rağmen dönüş için binlerce ayrılmış bir dize bir güncelleme oldu.
Modern ortamlar içinECMAScript Internationalization API spec, yeni bir standart olan V-ECMA Dil spec sağlar, çok daha iyi destek için dize karşılaştırma, sayı biçimi, tarih ve saat biçimlendirme, aynı zamanda giderir ilgili işlevleri Dil Spec. Giriş here bulunabilir. Uygulamalarda kullanılabilir:
- Chrome 24
- Firefox 29
- Internet Explorer 11
- Opera 15
Ayrıca, zaten var olmayan ortamlarda API sağlayan bir uyumluluk uygulanması, Intl.js var.
Kullanıcının seçtiği dil belirleme geçerli bir dil elde etmek için belirtim yok beri bir sorun olmaya devam ediyor. Her tarayıcı dili bir dize elde etmek için bir yöntem kullanır, ama bu kullanıcının işletim sistemi veya tarayıcı dili sadece dayalı olabilir:
// navigator.userLanguage for IE, navigator.language for others
var lang = navigator.language || navigator.userLanguage;
Bunun için iyi bir çözüm istemciye sunucudan Kabul-Dili Başlığı terk etmektir. Eğer bir JavaScript olarak biçimlendirilmiş, otomatik olarak (ya da ilk destekli) en iyi yerel seçecek olan Uluslararası API kurucular geçirilebilir.
Kısacası, Kendin bir sürü koymak zorunda, ya da edemiyor çünkü framework/library kullan tarayıcı sizin için bunu yapmak için kullanır.
Yerelleştirme için çeşitli kütüphaneler ve eklentileri:
open community (Emir) tarafından Mantained:
- Intl.js - Uluslar API uyumlu bir uygulama
- İ18n içini18next (home) (dahil. jquery eklenti, çeviri uı,...)
- Tarihlermoment.js (home)
- Sayı ve para biriminumeral.js (home)
- l10n.js (home)
- L10ns (home) i18n aracı iş akışı ve karmaşık dize biçimlendirme
- jQuery Localisation (plugin) (home)
- YUI Internationalization support
- Tarihleri jquery.i18Now
- Çoğullaştırma için Destek browser-i18n
- counterpart Ruby I18n gem ünlü esinlenmiştir
Diğerleri:
- jQuery Globalization (plugin)
- requirejs-i18n RequireJS ile İ18N bir Paket Tanımlayın.
Eklemek/düzenlemek için çekinmeyin.
JavaScript kilitler nasıl çalışır?...
Nasıl bu karıştırılmış JavaScript çalı...
Nasıl bu sihirli Javascript çalışır?...
Nasıl değişken atama JavaScript çalışı...
Nasıl bir JavaScript nesnesinin bir öz...