मेरे पास एक ही प्रश्न थे और यही मुझे मिला।
आप के रूप में निर्माता के साथ Locale
बनाते हैं:
Locale locale = new Locale("en_US");
और फिर आप फोन getLanguage
:
String language = locale.getLanguage();
language
का मान "en_us" हो जाएगा;
आप निर्माता के साथ Locale
बनाते हैं:
Locale locale = new Locale.Builder().setLanguage("en").setRegion("US").build()
तो मूल्य locale.getLanguage()
वापस आ जाएगी हो जाएगा "एन"।
यह मेरे लिए अजीब बात है लेकिन यह जिस तरह से लागू किया गया था।
तो यह समझने का लंबा जवाब था कि यदि आप दो अक्षर वाली आईएसओ भाषा वापस करने के लिए भाषा कोड चाहते हैं तो आपको जावा Locale
निर्माता का उपयोग करने की आवश्यकता है या कुछ स्ट्रिंग मैनिपुलेशन करें।
आपका substring
काम करता है के साथ विधि, लेकिन मैं कुछ प्रयोग करेंगे जैसे मैं उदाहरणों को कवर करने के लिए नीचे दिए गए लिखा था जहां सीमांकक हो सकता है "-" या "_"।
public String getLang(Locale language)
String[] localeStrings = (language.split("[-_]+"));
return localeStrings[0];
}
आपकी विधि सुरक्षित नहीं है। जैसे अर्गोनी के लिए आईएसओ 3 कोड 'arg' है जबकि आईएसओ 2 कोड 'an' है। –