यदि आपके पास देश कोड है US
, FR
(ISO-3166-1 अल्फ़ा -2 देश कोड), आपको लोकेल कोड कैसे मिलता है (Locale.US
, Locale.FRANCE
) कुछ इस तरह से करने के लिए:
System.out.println(DecimalFormat.getCurrencyInstance(Locale.US).format(12.34));
System.out.println(DecimalFormat.getCurrencyInstance(Locale.FRANCE).format(12.34));
$12.34
12,34 €
उत्तर:
उत्तर № 1 के लिए 14आप "t" कर सकते हैं, क्योंकि एक लोकेल को a रखने के लिए उपयोग किया जाता हैभाषा, देश नहीं। यह एक विशिष्ट देश के लिए और इस देश में एक विशिष्ट संस्करण के लिए एक भाषा पकड़ सकता है, लेकिन यह "पहले भाषा है। और एक भाषा और एक देश के बीच एक-से-एक संबंध नहीं है। अधिकांश भाषाएँ विभिन्न देशों में बोली जाती हैं। , और कई देशों में कई भाषाएँ हैं।
यदि आपके पास भाषा के लिए देश कोड है, तो आप उपयोग कर सकते हैं new Locale(code)
। लेकिन एक देश कोड के साथ, आप सभी कर सकते हैं कॉल getAvailableLocales
परिणामों के माध्यम से लूप करें, और अपना देश कोड प्राप्त करें। लेकिन कई हो सकते हैं।
जवाब के लिए 2 № 2
आप या तो स्थान बना सकते हैं,
new Locale("en", "US")
new Locale("fr", "FR")
या
के माध्यम से पुनरावृत्त Locale.getAvailableLocales()
जब तक आप अपना स्थान नहीं पाते हैं और तब तक उस उदाहरण का उपयोग करें।
जवाब के लिए 2 № 3
ISO-639 भाषा कोड द्वारा एक लोकेल को सबसे महत्वपूर्ण रूप से निर्दिष्ट किया गया है, एक ISO-3166 देश कोड और एक संस्करण भी संभव है। Locale
क्लास में कंस्ट्रक्टर होते हैं जो या तो केवल एक भाषा कोड लेते हैं, या इसके अतिरिक्त एक देश कोड, या अतिरिक्त रूप से एक संस्करण।
यदि आपके पास केवल देश कोड है, तो आपको सबसे पहले एक मानचित्र की आवश्यकता होती है जो इसे भाषा कोड में परिवर्तित करता है - लेकिन यह जरूरी नहीं है कि एक अनूठा परिणाम उत्पन्न हो, कई देश एक से अधिक आधिकारिक भाषा का उपयोग करते हैं।
जवाब के लिए 2 № 4
Java7 में है Locale.Builder
, लेकिन इससे पहले कि कोई आसान तरीका नहीं है। आप एक उपयोगी तरीका बना सकते हैं:
- पाश
Locale.getAvailableLocales()
- प्रत्येक जाँच के लिए यदि
locale.getCountryCode().equals(countryCodeParam)
और इसे वापस कर दो