2014-09-25 89 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