我偶然发现了以下行为
public static void main( String[] args ) {
Locale.setDefault( new Locale( "ar" ));
System.out.println(new Locale( "ar" ).getDisplayName());
System.out.println(new Locale( "en" ).getDisplayName());
System.out.println(new Locale( "fr" ).getDisplayName());
}
输出
العربية
English
French
我偶然发现了以下行为
public static void main( String[] args ) {
Locale.setDefault( new Locale( "en" ));
System.out.println(new Locale( "ar" ).getDisplayName());
System.out.println(new Locale( "en" ).getDisplayName());
System.out.println(new Locale( "fr" ).getDisplayName());
}
输出
Arabic
English
French
我偶然发现了以下行为
public static void main( String[] args ) {
Locale.setDefault( new Locale( "fr" ));
System.out.println(new Locale( "ar" ).getDisplayName());
System.out.println(new Locale( "en" ).getDisplayName());
System.out.println(new Locale( "fr" ).getDisplayName());
}
输出
arabe
anglais
français
为什么没有英语和法语的交易?我需要下载其他内容吗?我可以找到这样的未翻译事物的参考吗?
亚历山大·坎波斯告诉我这个网页: http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html
所以我执行了以下代码。
public static void main( String[] args ) {
show("en");
show("zh_CN");
show("zh_TW");
show("fr");
show("de");
show("it");
show("ja");
show("ko");
show("pt_BR");
show("sv");
}
public static void show(String in){
Locale.setDefault( new Locale( in ) );
System.out.println(new Locale( "ar" ).getDisplayName());
}
输出
Arabic
Arabic
Arabic
arabe
Arabisch
arabo
アラビア語
아랍어
Arabic
arabiska
所以我知道jvm只支持一小部分语言,并且它们在网页中有记录。但为什么我仍然获得zh_CN和zh_TW的默认值?
答案 0 :(得分:1)
您好我正在对Locale类进行一些研究并看一看:
public String getDisplayCountry(Locale inLocale)
返回适合的语言环境国家/地区的名称 显示给用户。如果可能,返回的名称将被本地化 根据inLocale。例如,如果语言环境是fr_FR和 inLocale是en_US,getDisplayCountry()将返回“France”;如果 locale是en_US,inLocale是fr_FR,getDisplayCountry()将返回 “Etats-紫光”。如果返回的名称无法根据本地化 inLocale对。 (比如,我们没有克罗地亚的日本名字),这个 函数依赖于英文名称,最后是ISO代码 作为最后的手段。如果区域设置未指定国家/地区,则为此 function返回空字符串。
将返回英文名称。