7

我有 JSF UI 应用程序,我想显示翻译后的国家/地区名称。

我正在使用 Java 语言环境获取国家/地区名称。但无法得到我的翻译要求。Java 1.6 Locale 仅提供 44 个唯一国家/地区。

Locale[] localeArray =  Locale.getAvailableLocales();
System.out.println("localeArray---->"+localeArray.length);  

for (Locale locale : localeArray) {     
    counter++;
    System.out.print("locale-->"+locale+"-------");
    System.out.print("locale getISO3Language-->"+locale.getISO3Language());
    System.out.println("-----locale.getDisplayCountry(locale)--->"+locale.getDisplayCountry(locale));
    System.out.println("-----locale.getDisplayCountry()--->"+locale.getDisplayCountry());
    System.out.println("-----locale.getCountry()--->"+locale.getCountry());

    System.out.println("----------------------------------------------------"+counter);
}

请让我们知道如何执行我的要求?

Oracle 文档提供链接

除了 Java 之外,是否有任何可用的库来执行强大的语言环境特定要求?

4

2 回答 2

7

正如我在评论中已经建议的那样,您应该尝试使用 ICU 来获取 Locales 的本地名称。最简单的可能用法示例:

ULocale locale = ULocale.forLanguageTag("si-LK");
System.out.println(locale.getDisplayName(locale));

这打印:

සිංහල (ශ්‍රී ලංකාව)

我假设答案是正确的。要将其转换为适合 UIViewRoot 的形式,您只需要调用toLocale()方法:

Locale javaLocale = locale.toLocale();

而已。

于 2013-10-08T19:21:15.797 回答
0

怎么样

Locale locale = new Locale("si", "LK")
于 2021-07-18T05:15:40.160 回答