[英]Java I18n for not supported Locales
Java I18n 能力是驚人的。 支持的語言環境工作完美:
Locale ar = new Locale("ar","SA");
System.out.println(ar.getDisplayName(ar));
輸出: العربية (السعودية)
但是對於不支持的語言環境,如Kazakh
,語言名稱顯示在相同的 lang 中,將輸出 Enlish(Standard),如 Java Spec 中所寫。
Locale locale = new Locale("kk","KZ");
System.out.println(kk.getDisplayLanguage(kk));
輸出: Kazakh (Kazakhstan)
我正在嘗試解決這個問題,最后的代碼必須像這樣輸出: Қазақша (Қазақстан)
。
有人知道解決方案嗎?
任何猜測(或與 Java SE 開發人員聯系的方式,或了解算法的人)我都會記錄為答案;)
謝謝!
假設您在 Windows 上運行,您需要在 OS 區域設置中更改區域設置。 請看這個鏈接。 (在 win 2000 中出現哈薩克語,但是,在 win 7 中它沒有出現在列表中......)。 在 linux 上,您可以使用localedef 實用程序設置語言環境。
祝你好運!
由於您的帖子很舊,我認為從 Java JDK 9 開始,您的代碼應該可以正常工作。
使用 Java 11 測試的示例:
Locale country = new Locale.Builder().setRegion("KZ").build();
Locale lang = new Locale.Builder().setLanguage("kk").build();
System.out.println(country.getDisplayCountry(lang));
請注意,在 Java 8 中該問題仍然存在(沒有翻譯)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.