如果我的语言标签是zh-CN,我需要打印中文(简体)作为语言的显示名称。这是为了避免重复的语言,我想将下面的语言组合在一起。
使用小型黑客
在.NET中可以实现同样的目的if(cultureInfo.TwoLetterISOLanguageName == "zh") {
list.Add(cultureInfo.Parent.Name, cultureInfo.Parent.DisplayName);
}
我怎样才能在Java中做同样的事情?
答案 0 :(得分:0)
你能试试吗?
Locale currentLocale = Locale.getDefault();
ArrayList<String> language = new ArrayList<String>();
if(currentLocale.getCountry()=="zh"){
Locale.setDefault(new Locale("zh", "CHS"));
Locale newLocale = Locale.getDefault();
String name = newLocale.getDisplayLanguage();
language.add(name);
}
<强>更新强> 看一下这篇文章。
https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.displayname(v=vs.110).aspx
答案 1 :(得分:0)
使用Locale在java中指定语言和地理区域。使用Java 8中的以下代码段,发现带有zh的所有语言环境的显示语言名称都是中文。
Locale[] locales = Locale.getAvailableLocales();
Map<Locale, String> result = Arrays.stream(locales)
.filter(locale -> locale.toString().startsWith("zh"))
.collect(Collectors.toMap(locale -> locale, locale -> "Chinese (Simplified)"));
System.out.println(result);
JDK 8u121上的输出: {zh_CN =中文(简体),zh =中文(简体),zh_HK =中文(简体),zh_TW =中文(简体),zh_SG =中文(简体)}