我有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);
}
请告诉我们如何执行我的要求?
Oracle文档提供了link。
是否有除Java以外的可用库来执行强大的语言环境特定要求?
答案 0 :(得分:3)
正如我在评论中已经建议的那样,您应该尝试使用ICU来获取Locales的本机名称。最简单的用法示例:
ULocale locale = ULocale.forLanguageTag("si-LK");
System.out.println(locale.getDisplayName(locale));
打印:
සිංහල(ශ්රීලංකාව)
我认为答案是正确的。要将其转换为适合UIViewRoot的形式,您只需要调用toLocale()
方法:
Locale javaLocale = locale.toLocale();
就是这样。
答案 1 :(得分:0)
怎么样
Locale locale = new Locale("si", "LK")