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 之外,是否还有其他可用的库来执行强大的语言环境特定要求?
正如我在评论中已经建议的那样,您应该尝试使用 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)
就是这样。