Java jvm的未翻译部分

Java jvm的未翻译部分,java,localization,Java,Localization,我偶然发现了以下行为 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 Lo

我偶然发现了以下行为

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());
}
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());
}
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());
}
输出

 العربية
 English
 French
 Arabic
 English
 French
 arabe
 anglais
 français
Arabic
Arabic
Arabic
arabe
Arabisch
arabo
アラビア語
아랍어
Arabic
arabiska
我偶然发现了以下行为

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());
}
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());
}
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());
}
输出

 العربية
 English
 French
 Arabic
 English
 French
 arabe
 anglais
 français
Arabic
Arabic
Arabic
arabe
Arabisch
arabo
アラビア語
아랍어
Arabic
arabiska
我偶然发现了以下行为

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());
}
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());
}
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());
}
输出

 العربية
 English
 French
 Arabic
 English
 French
 arabe
 anglais
 français
Arabic
Arabic
Arabic
arabe
Arabisch
arabo
アラビア語
아랍어
Arabic
arabiska
为什么英语和法语没有贸易?我需要下载其他东西吗?我能找到像这样未翻译的东西的参考资料吗

Alexander Campos告诉我这个网页:

所以我执行了下面的代码

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());
}
输出

 العربية
 English
 French
 Arabic
 English
 French
 arabe
 anglais
 français
Arabic
Arabic
Arabic
arabe
Arabisch
arabo
アラビア語
아랍어
Arabic
arabiska

因此,我发现jvm支持的语言只有一小部分,它们被记录在web页面中。但是为什么我仍然得到zh_CN和zh_TW的默认值呢?

嗨,我对Locale类做了一些研究,看看这个:

公共字符串getDisplayCountry(本地语言环境)

返回适用于该语言环境的国家/地区的名称 显示给用户。如果可能,将本地化返回的名称 根据inLocale。例如,如果区域设置为fr_fr,则 在本地为en_US时,getDisplayCountry()将返回“France”;如果 locale为en_US,inLocale为fr_fr,getDisplayCountry()将返回 “伊塔茨Unis”。如果返回的名称无法根据进行本地化 本地的。(比如说,我们没有克罗地亚的日文名称),这个 函数依赖于英文名称,最后依赖于ISO代码 作为最后手段的价值。如果区域设置未指定国家/地区,则 函数返回空字符串


将返回英文名称。

谢谢,但这不正是我要找的。如果深入研究区域设置代码,您将看到,如果不指定区域设置,它将采用默认的区域设置。我说的是语言名,而不是国家名。同样的事情也发生在冷瓜杰的名字上。Java没有指定区域设置中所有语言的所有名称。这就是为什么它会返回英文名称好的。但是为什么呢?是否存在可以添加到部署中的其他文件?有关于这些半支持语言的参考资料吗?我的那些半支持的语言不支持什么?也许这有帮助