无法将浏览器区域设置为 java ResourceBundle
Not able to set browser locale to java ResourceBundle
我正在用 3 种语言编写网站,即英语、阿拉伯语和波斯语。我正在尝试以相关语言向用户展示该网站。例如,如果浏览器语言是阿拉伯语,则网站将以阿拉伯语显示,如果浏览器语言是波斯语,则将显示波斯语网站
这是我到目前为止所做的:
private Locale locale(){
Locale locale=null;
if(country == null){
locale = request.getLocale();
if(locale.equals("ar")){
locale = new Locale("ar", "AE");
}
else if(locale.equals("fa")){
locale = new Locale("fa", "IR");
}
else if(locale.equals("en")){
language = "en";
locale = new Locale("en", "US");
}
}else{
locale = new Locale(language, country);
}
System.out.println("return---locale=>"+locale);
return locale;
}
此方法打印locale=>ar
ResourceBundle rb = ResourceBundle.getBundle("LabelBundles.Labels",locale());
if(country == null){}
块不起作用,而 else{<br>
locale = new Locale(语言, 国家);
}
工作正常。
2) locale = request.getLocale();
输出是 "ar" 而 locale = new Locale();
需要两个值,即 language
_COUNTRY
所以为什么输出为 "ar"只有没有国家?
敬请指教,敬请期待
request.getLocale() returns 语言环境,而不是字符串。所以
locale.equals("ar")
永远是假的:只有一个字符串可以等于一个字符串。并且只有 Locale 可以等于 Locale。
但是你可以
if (locale.getLanguage().equals("ar"))
关于你的第二个问题,the javadoc当然已经回答了。如果您阅读它,您将了解到语言环境是一种语言,+ 一个可选的国家,+ 一个可选的变体。并且有一个仅以一种语言作为参数的构造函数。
阅读javadoc。这就是你学习的方式。
我正在用 3 种语言编写网站,即英语、阿拉伯语和波斯语。我正在尝试以相关语言向用户展示该网站。例如,如果浏览器语言是阿拉伯语,则网站将以阿拉伯语显示,如果浏览器语言是波斯语,则将显示波斯语网站
这是我到目前为止所做的:
private Locale locale(){
Locale locale=null;
if(country == null){
locale = request.getLocale();
if(locale.equals("ar")){
locale = new Locale("ar", "AE");
}
else if(locale.equals("fa")){
locale = new Locale("fa", "IR");
}
else if(locale.equals("en")){
language = "en";
locale = new Locale("en", "US");
}
}else{
locale = new Locale(language, country);
}
System.out.println("return---locale=>"+locale);
return locale;
}
此方法打印locale=>ar
ResourceBundle rb = ResourceBundle.getBundle("LabelBundles.Labels",locale());
if(country == null){}
块不起作用,而 else{<br>
locale = new Locale(语言, 国家);
}
工作正常。
2) locale = request.getLocale();
输出是 "ar" 而 locale = new Locale();
需要两个值,即 language
_COUNTRY
所以为什么输出为 "ar"只有没有国家?
敬请指教,敬请期待
request.getLocale() returns 语言环境,而不是字符串。所以
locale.equals("ar")
永远是假的:只有一个字符串可以等于一个字符串。并且只有 Locale 可以等于 Locale。
但是你可以
if (locale.getLanguage().equals("ar"))
关于你的第二个问题,the javadoc当然已经回答了。如果您阅读它,您将了解到语言环境是一种语言,+ 一个可选的国家,+ 一个可选的变体。并且有一个仅以一种语言作为参数的构造函数。
阅读javadoc。这就是你学习的方式。