我需要将ISO3等国家/地区代码转换为法国,可以吗?我尝试过:
Locale locale = new Locale("FRA") or Locale locale = new Locale("","FRA")
locale.getDisplayCountry()
但返回空字符串。
答案 0 :(得分:-1)
Locale构造函数的第二个参数需要一个ISO2代码,而不是ISO3。您需要先将ISO3映射到ISO2,然后获取国家/地区名称。
这可能是最坏的解决方案,我不知道有更好的解决方案,但是它可以工作。
String[] languages = Locale.getISOLanguages();
Map<String, Locale> localeMap = new HashMap<String, Locale>(languages.length);
for (String language : languages) {
Locale locale = new Locale(language);
localeMap.put(locale.getISO3Language(), locale);
}
Locale locale = new Locale("",localeMap("FRA"));
Log.e("loc",""+locale.getDisplayCountry());