大家好 ,现在我的web 系统 没有应用 struts spring 等框架开发
完了 我想搞一下 国际化
使用 resouceBundle 但是 Locale 的获取 如何得到?
看到 httpservletRequest 有 getLocale()
想问一下 我的系统 如何 获取 locale
[code="java"]Locale.getDefault()[/code]
获得此 Java 虚拟机实例的当前默认语言环境值。
Java 虚拟机根据主机的环境在启动期间设置默认语言环境。如果没有明确地指定语言环境,则很多语言环境敏感的方法都使用该方法。可使用 setDefault 方法更改该值。
可以从httpservletRequest.getLocale() 得到
locale之后,把locale 放到session中,
[code="java"]Locale locale = Locale.getDefault();
ResourceBundle localResource = ResourceBundle.getBundle("ConnResource", locale);[/code]
http://www.cnblogs.com/daniel-shen/archive/2006/11/29/576313.html
1.获取操作系统locale Locale defultLocale=Locale.getDefault();
注: 服务器端调用得到的其实是服务器的locale
2.获取客户端浏览器设置的locale
Enumeration locales=request.getLocales();
while(locales.hasMoreElements())
{
Locale clientLocale=(Locale)locales.nextElement();
out.println("客户端:"+clientLocale+"<br>");
out.println("国别:"+clientLocale.getDisplayCountry()+"<br>");
out.println("语言:"+clientLocale.getDisplayLanguage()+"<br>");
}
3.获取客户端用户设置的第一个locale
Locale first=request.getLocale();
注: 客户端有可能不会发locale给服务器端,这个时候你要判定一下,设置一个缺省的locale
4.通过客户端locale覆盖操作系统中的locale
Locale.setDefault(first);
5.读取资源文件的内容
ResourceBundle rb=ResourceBundle.getBundle("com.lujie.resources.lujie");
String name=rb.getString("jsp.name");
String pass=rb.getString("jsp.pass");
<%=name %>
<%=pass %>
6.将资源文件中的中文转换字符编码
先配置jdk的环境变量
然后再dos里面执行native2ascii
在JVM的System属性中:
[code="java"]System.getProperty("user.timezone");[/code]
我的是 Asia/Shanghai
[b]
应该是:[/b]
[code="java"]
System.getProperty("user.language");[/code]
swing 的话那就直接 调用 Locale 的下面方法,就能得到当前的语言
public static Locale getDefault()获得此 Java 虚拟机实例的当前默认语言环境值。
Java 虚拟机根据主机的环境在启动期间设置默认语言环境。如果没有明确地指定语言环境,则很多语言环境敏感的方法都使用该方法。可使用 setDefault 方法更改该值。
返回:
此 Java 虚拟机实例的默认语言环境。
使用 i18n,Java里面的资源文件叫做ResourceBundle,它分成两种,一种是ListResourceBundle,另一种是PropertyResourceBundle,