我想轉換語言環境標記(請參閱圖片)以顯示名稱。例如,而不是en-us,我想顯示英語(美國)。到目前爲止,我已經設法顯示名稱和語言標籤的混合物作爲在圖片:java語言環境標記語言環境顯示名稱
device system languages screen picture
我已經嘗試了許多事情,如使用forLanguageTag,getDisplayLanguage + getDisplayCountry但沒有任何工程。
這是我的代碼片段:
public void getAvailableLocales() {
systemLanguages = Resources.getSystem().getAssets().getLocales();
Arrays.sort(systemLanguages);
for (int i = 0; i < systemLanguages.length; i++) {
String sL = systemLanguages[i];
Locale loc = new Locale(sL);
String locDisplayResults = loc.getDisplayLanguage();
languagesList.add(new Languages(locDisplayResults));
recyclerAdapter.notifyDataSetChanged();
}
}
的想法是顯示給定設備上可用的所有語言。 任何幫助將感激地收到。
編輯:測試顯示Resources.getSystem()。getAssets()。getLocales()確實爲提供了可用於每個給定設備的語言。但是,getDisplayLanguage僅適用於兩個字母標記,而不適用於兩個字母 - 短劃線 - 兩個字母(例如ar-eg)。還有什麼想法?
所以答案爲:。除了使用新的語言環境(SL),請使用Locale.forLanguageTag(SL)(http://stackoverflow.com/questions/40427876/convert- da-dk-to-danish-denmark-etc)它完美運作。 –