我正在使用Java6作为我的网络应用程序我正在尝试下面的代码来改变我的应用程序的语言
public static void doChangeLanguage(String argLang) {
SessionValidationInitiator.setLanguage(argLang);
LOGGER.debug("Changing Language to ... " + argLang);
if(argLang.equalsIgnoreCase("fr_ca")){
Locales.setThreadLocal(Locales.getLocale(Locale.FRENCH));
Executions.getCurrent().getSession().setAttribute(Attributes.PREFERRED_LOCALE, Locale.FRENCH);
Labels.reset();
}else{
Locales.setThreadLocal(Locales.getLocale(Locale.US));
Executions.getCurrent().getSession().setAttribute(Attributes.PREFERRED_LOCALE, Locale.US);
Labels.reset();
}
Executions.sendRedirect(null);
}
它的工作正常,但当我试图改变印地语时,我没有看到任何印度语的语言环境。
我们是否也可以从Java支持Hindi Locale,以便我的应用程序适用于印地语。
答案 0 :(得分:10)
Java 6肯定有Hindi Locale支持,请参阅here。
要将语言环境显式设置为印度语,印度执行以下操作:
System.out.println(new Locale("hi", "IN"));
打印;
hi_IN
这里需要注意的是Locale
还提供构造函数来准确获取受支持的Locale和变体的句柄。
因此,在您的代码中,您可能想尝试一下:
Locales.setThreadLocal(Locales.getLocale(new Locale("hi", "IN")));
答案 1 :(得分:1)
在Java 6中,您需要:Locale lc = new Locale("hi", "IN");