获取僧伽罗语/斯里兰卡语翻译的Java语言环境

获取僧伽罗语/斯里兰卡语翻译的Java语言环境,java,internationalization,locale,Java,Internationalization,Locale,我有JSF UI应用程序,我想显示翻译后的国家名称 我正在使用Java语言环境获取国家名称。但我无法达到我的转换要求。Java1.6语言环境只提供了44个独特的国家/地区 Locale[] localeArray = Locale.getAvailableLocales(); System.out.println("localeArray---->"+localeArray.length); for (Locale locale : localeArray) {

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

我正在使用Java语言环境获取国家名称。但我无法达到我的转换要求。Java1.6语言环境只提供了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之外,还有其他可用的库来执行强大的特定于语言环境的需求吗

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

ULocale locale = ULocale.forLanguageTag("si-LK");
System.out.println(locale.getDisplayName(locale));
这张照片是:

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

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

Locale javaLocale = locale.toLocale();

就这样。

有什么反馈吗?请看一看,但我怀疑你会发现更多。我不确定是否有翻译,但值得检查。至少在CLDR中,你可能能够实现语言切换反模式(这就是你要做的,不是吗?)我已经检查过了。但是没有有效的解决方案、方法或指南。有Apache commons设施吗?非常感谢您的指导。我使用icu4j-3.6.1.jar进行了检查,但在ULocale类中没有LanguageTag方法。请告诉我们您使用过的步骤和jar。@Ruchira:ICU的当前版本是52.1,与其他项目不同,我强烈建议使用,因为它包含最新版本的Unicode以及CLDR。සිංහල (ශ්‍රී ලංකාව). 我得到了输出。