Java Locale 获得僧伽罗语/斯里兰卡语翻译

Ruc*_*sam 7 java locale internationalization

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

我正在使用 Java Locale 获取国家/地区名称。但无法得到我的翻译要求。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);
}
Run Code Online (Sandbox Code Playgroud)

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

Oracle 文档提供链接

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

Paw*_*yda 6

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

ULocale locale = ULocale.forLanguageTag("si-LK");
System.out.println(locale.getDisplayName(locale));
Run Code Online (Sandbox Code Playgroud)

这打印:

????? (???????????????)

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

Locale javaLocale = locale.toLocale();
Run Code Online (Sandbox Code Playgroud)

就是这样。