2014-09-25 85 views
0

我偶然发现以下现象非翻译部分

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 

为什么没有TRADUCTION英语和法语吗?我需要下载其他东西吗?我能找到这样的未翻译的参考吗?

亚历山大·坎波斯告诉我关于这个网页: 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的默认值?

回答

1

您好我做的Locale类的研究一点点,看看FO这样的:

公共字符串getDisplayCountry(区域设置inLocale对)

返回的语言环境的国家名是适合于 显示给用户。根据inLocale,如果可能的话,返回的名称将被本地化为 。例如,如果区域设置为fr_FR且inLocale为en_US,则getDisplayCountry()将返回“France”;如果 区域设置为en_US且inLocale为fr_FR,getDisplayCountry()将返回 “Etats-Unis”。如果返回的名称不能根据Locale中的 进行本地化。 (也就是说,我们没有克罗地亚的日文名称),这个 函数可以追溯到英文名称,最后是ISO代码 作为最后一个度假值。如果语言环境未指定国家/地区,则此函数将返回空字符串。

将返回英文名称。

+0

谢谢,但它不是我正在寻找的。如果你在Locale代码中挖掘,你会看到如果你没有指定Locale,它将采用默认的。另外我说的是语言名称,而不是国家名称。 – plcstpierre 2014-09-26 12:56:05

+0

同样的事情发生在lenguaje的名字。 Java不具有您指定的语言环境中所有语言的所有名称。这就是为什么它会返回英文名字 – 2014-09-26 13:01:12

+0

好吧。但为什么?它是否存在可以添加到我的部署中的附加文件?有关这些半支持语言的参考资料是否可用?什么是不支持我的这些半支持的语言? – plcstpierre 2014-09-26 14:19:07