现在的位置: 首页 > 综合 > 正文

国际化 学习笔记

2013年05月14日 ⁄ 综合 ⁄ 共 847字 ⁄ 字号 评论关闭

            通常习惯说成i18n也就是internationzation 首字母i中间18个字母最后字母n,合起来就是i18n.国际化就是web资源根据本地语言环境显示出不同的字符。

要编写国际化的web应用需要完成下面几步

1.编写属性资源文件,资源文件名为中文 XXX_zh_CN.properties,英文  XXX_en.properties

由于java内部采用的是unicode编码,所以对于中文字符我们需要用unicode来表示,应用jdk bin目录下的native2ascii工具 

具体命令为native2ascii -encode a.tmp a_zn_CN.properties转换为unicode编码的字符

 

2.在程序中,可以根据请求报头"Accept-Language"来判断请求客户的语言环境,构建当地的Locale对象,利用ResouceBundle(或者其扩展类propertyResourceBundle,ListResourceBundle)来读取对应的资源文件

代码如下:

String headInfo=requesy.getHeader("Accept-Language");

Locale locale=null;

ResourceBundle bundle=null;

if(headInfo.indexOf("zh_cn")!=-1)

{

     locale=new Locale("zh","CN");

     bundle=ResourceBundle.getBundle("XXX",locale);//xxx表示资源文件前缀名,如my_zh_CN.properties 那么xxx就是my

}

//如果多种语言可以继续判断

//再将bundle对象保存在session中

...

session.setAttribute("bundle",bundle);

3.在页面中使用

用bundle.getString("");调用

<%=bundle.getString("name")%>

 

抱歉!评论已关闭.