Iva*_*var 4 java multilingual jsp
将多语言添加到我的网站时遇到了一些麻烦。
它可以在使用jstl的.jsp文件上正常工作,但是当我尝试使用Java代码获取翻译时,它会忽略Locale参数,并使用客户端浏览器的语言环境。
我有:
两个属性文件:dictionary.properties,包含:validate.firstname.empty=You have to enter a first name
dictionary_nl.properties,包含:validate.firstname.empty=U heeft geen voornaam ingevuld
这段Java代码:
public List<String> validate(UserForm user, Locale locale)
{
List<String> errors = new ArrayList<>();
ResourceBundle resources = ResourceBundle.getBundle("dictionary", new Locale("en"));
if (user.getFirstName() == null || user.getFirstName().trim().isEmpty())
{
errors.add(resources.getString("validate.firstname.empty"));
}
return errors;
}
Run Code Online (Sandbox Code Playgroud)
为了进行测试,我在上插入了一个Locale的新实例getBundle,但是如果我的浏览器设置为dutch,它仍然返回dutch翻译,如果浏览器设置为English,它仍返回英语翻译。
实际上,getBundle()不会忽略语言环境,而只是在您的配置中忽略它。
因为dictionary_en.properties您的配置中没有文件,所以语言“ en”的语言环境在ResourceBundle文件搜索中将无效。
进行测试,new Locale("nl")无论使用哪种浏览器设置的语言,您都将始终获得荷兰语翻译。
文档中的更多详细信息:http :
//docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle%28java.lang.String,%20java.util.Locale,%20java。 lang.ClassLoader%29
| 归档时间: |
|
| 查看次数: |
2433 次 |
| 最近记录: |