我偶然发现以下行为
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
为什么没有英语和法语的翻译?我是否需要下载其他内容?我可以找到未翻译的参考文献吗?
Alexander Campos告诉我有关此网页的信息:
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的默认值?
最佳答案
嗨,我正在研究Locale类,并对此进行了研究:
公共字符串getDisplayCountry(Locale inLocale)
返回适合于以下语言环境的国家/地区的名称:
向用户显示。如果可能,返回的名称将被本地化
根据inLocale。例如,如果语言环境为fr_FR且
inLocale为en_US,getDisplayCountry()将返回“ France”;如果
语言环境为en_US,inLocale为fr_FR,getDisplayCountry()将返回
“ Etats-Unis”。如果返回的名称无法根据
inLocale。 (例如,我们没有克罗地亚的日语名称),这
功能取决于英文名称,最后取决于ISO代码
作为最后的度假价值。如果语言环境未指定国家/地区,则此
函数返回空字符串。
将返回英文名称。