Eski tarayıcılarda yerelleştirme desteği zayıf. Başlangıçta, bunun nedeni ECMAScript
dil spesifikasyonundaki şuna benziyordu:
Number.prototype.toLocaleString ()
Ana bilgisayar ortamının geçerli yerel ayarının kurallarına göre biçimlendirilmiş Sayının değerini temsil eden bir dize değeri üretir. Bu işlev uygulamaya bağlıdır ve toString ile aynı şeyi döndürmesi için izin verilir, ancak teşvik edilmez .
Spesifikasyonda tanımlanan her yerelleştirme yöntemi "uygulamaya bağlı" olarak tanımlanır ve bu da birçok tutarsızlıkla sonuçlanır. Bu durumda, Chrome Opera ve Safari ile aynı şeyi döndürür .toString()
. Firefox ve IE yerel olarak biçimlendirilmiş dizeler döndürür ve IE bile bin ayırıcı (para birimi dizeleri için mükemmel) içerir. Chrome, sabit ondalık olmadan binlercesi ayrılmış bir dize döndürmek için yakın zamanda güncellendi.
Modern ortamlar için , ECMAScript Language spesifikasyonunu tamamlayan yeni bir standart olan ECMAScript Internationalization API spesifikasyonu , dize karşılaştırması, sayı biçimlendirmesi ve tarih ve saat biçimlendirmesi için çok daha iyi destek sağlar; ayrıca Language Spec. Bir giriş burada bulunabilir . Uygulamalar şu dillerde mevcuttur:
- Chrome 24
- Firefox 29
- Internet Explorer 11
- Opera 15
API'yı zaten mevcut olmadığı ortamlarda sağlayacak bir uyumluluk uygulaması olan Intl.js de vardır.
Kullanıcının tercih ettiği dili belirlemek bir sorun olmaya devam etmektedir, çünkü mevcut dili elde etmek için bir spesifikasyon yoktur. Her tarayıcı bir dil dizesi elde etmek için bir yöntem uygular, ancak bu kullanıcının işletim sistemi dilini veya yalnızca tarayıcının dilini temel alabilir:
// navigator.userLanguage for IE, navigator.language for others
var lang = navigator.language || navigator.userLanguage;
Bunun için iyi bir çözüm, Accept-Language üstbilgisini sunucudan istemciye dökmektir. JavaScript olarak biçimlendirilirse, otomatik olarak en iyi (veya ilk desteklenen) yerel ayarı seçecek olan Uluslararasılaştırma API kurucularına geçirilebilir.
Kısacası, işin çoğunu kendiniz koymanız veya bir çerçeve / kütüphane kullanmanız gerekir , çünkü bunu sizin için yapmak için tarayıcıya güvenemezsiniz.
Yerelleştirme için çeşitli kütüphaneler ve eklentiler:
Eklemek / düzenlemek için çekinmeyin.