विरासत ब्राउज़रों में स्थानीयकरण समर्थन खराब है। मूल रूप से, यह ECMAScript
भाषा युक्ति में वाक्यांशों के कारण था जो इस तरह दिखते हैं:
Number.prototype.toLocaleString ()
एक स्ट्रिंग मान उत्पन्न करता है जो होस्ट वातावरण के वर्तमान स्थान के सम्मेलनों के अनुसार संख्या के मूल्य का प्रतिनिधित्व करता है। यह फ़ंक्शन कार्यान्वयन-निर्भर है, और यह अनुमेय है, लेकिन इसे प्रोत्साहित नहीं किया गया है, क्योंकि यह उसी चीज़ को वापस करने के लिए है जैसे स्ट्रींग ।
कल्पना में परिभाषित प्रत्येक स्थानीयकरण विधि को "कार्यान्वयन-निर्भर" के रूप में परिभाषित किया गया है, जिसके परिणामस्वरूप बहुत सारी विसंगतियां हैं। इस उदाहरण में, Chrome Opera और Safari उसी चीज़ को लौटाएगा जैसे कि .toString()
। फ़ायरफ़ॉक्स और IE स्थानीय स्वरूपित स्ट्रिंग्स को लौटाएगा, और IE में एक हजार विभाजक (मुद्रा स्ट्रिंग्स के लिए एकदम सही) भी शामिल है। Chrome को हाल ही में एक हज़ारों-पृथक स्ट्रिंग पर लौटने के लिए अद्यतन किया गया था, हालांकि कोई निश्चित दशमलव नहीं था।
आधुनिक वातावरण के लिए , ECMAScript अंतर्राष्ट्रीयकरण API युक्ति , एक नया मानक जो ECMAScript भाषा युक्ति का पूरक है, स्ट्रिंग की तुलना, संख्या स्वरूपण, और दिनांक और समय स्वरूपण के लिए बेहतर समर्थन प्रदान करता है; यह Language Spec में संबंधित कार्यों को भी ठीक करता है। एक परिचय यहाँ पाया जा सकता है । कार्यान्वयन में उपलब्ध हैं:
- क्रोम 24
- फ़ायरफ़ॉक्स 29
- इंटरनेट एक्सप्लोरर 11
- ओपेरा 15
एक संगतता कार्यान्वयन, Intl.js भी है , जो वातावरण में एपीआई प्रदान करेगा जहां यह पहले से मौजूद नहीं है।
उपयोगकर्ता की पसंदीदा भाषा का निर्धारण एक समस्या है क्योंकि वर्तमान भाषा को प्राप्त करने के लिए कोई विनिर्देश नहीं है। प्रत्येक ब्राउज़र एक भाषा स्ट्रिंग प्राप्त करने के लिए एक विधि लागू करता है, लेकिन यह उपयोगकर्ता के ऑपरेटिंग सिस्टम की भाषा या ब्राउज़र की भाषा पर आधारित हो सकता है:
// navigator.userLanguage for IE, navigator.language for others
var lang = navigator.language || navigator.userLanguage;
इसके लिए एक अच्छा समाधान सर्वर से क्लाइंट के लिए एक्सेप्ट-लैंग्वेज हैडर को डंप करना है। यदि एक जावास्क्रिप्ट के रूप में स्वरूपित किया जाता है, तो इसे अंतर्राष्ट्रीयकरण एपीआई कंस्ट्रक्टरों को पास किया जा सकता है, जो स्वचालित रूप से सबसे अच्छा (या पहले समर्थित) लोकेल को ले जाएगा।
संक्षेप में, आपको बहुत सारे काम खुद करने होंगे, या एक फ्रेमवर्क / लाइब्रेरी का उपयोग करना होगा , क्योंकि आप इसे आपके लिए करने के लिए ब्राउज़र पर भरोसा नहीं कर सकते।
स्थानीयकरण के लिए विभिन्न पुस्तकालय और प्लगइन्स:
जोड़ने / संपादित करने के लिए स्वतंत्र महसूस करें।