首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

国际化的有关问题,高手请关注

2011-12-22 
国际化的问题,高手请关注java中国家化的问题如何解决?正在做一个web项目,需要用到国际化。网上搜索了些资料

国际化的问题,高手请关注
java中国家化的问题如何解决?
正在做一个web项目,需要用到国际化。网上搜索了些资料,我的国家化过程如下:
1:先生成Resource类

import   java.io.*;
import   java.util.Enumeration;
import   java.util.Hashtable;
import   java.util.Locale;
import   java.util.PropertyResourceBundle;
import   java.util.ResourceBundle;

public   class   Resource   {        
        private   static   final   String   HEAD_FILE   =   "ATTR ";   //属性文件名的前缀        
        private   static   final   String   LAST_FILE= ".properties ";   //属性文件名的后缀
        private   static   final   String   FILE_PATH= "c:// ";   //定义属性文件存放的目录
        public   Resource()   {
               
        }
       
        /*以下是根据传入的属性文件中的 "键 ",而得到与区域与语言设置相对应的 "值 "*/
               
        public   synchronized   String   srcStr(String   disStr)   {
                String   ret   =   " ";        
                try   {
                        Locale   locale   =   Locale.getDefault();   //获取系统的区域与语言默认设置
                        System.out.println( "locale   is   : "+locale.toString());
                        String   baseName   =   new   StringBuffer()
                     
                        .append(HEAD_FILE).append( "_ ").append(locale.toString())
                       
                        .append(LAST_FILE).toString();   //根据local属性,前缀以及后缀生成文件名
                       
                        System.out.println( "baseName   is: "+baseName);
                        String   fileName   =   new   StringBuffer(FILE_PATH).append(baseName).toString();   //获取文件的完整路径
                       
                       
                       
                        InputStream   is   =   new   FileInputStream(fileName);   //生成文件输入流
                        PropertyResourceBundle   pr   =   new   PropertyResourceBundle(is);   //根据输入流构造PropertyResourceBundle的实例
                        ret   =   pr.getString(disStr);


                        if(locale.equals(Locale.CHINA)){        
                                ret   =   new   String(ret.getBytes( "ISO-8859-1 "), "UTF-8 ");
                        }   //如果是要显示中文,则要进行内码的转换
                        is.close();
                        return   ret;      
                }
                catch   (Exception   e)   {
                        e.printStackTrace();
                        return   disStr;                        
                }
        }
        public   static   void   main(String   args[]){
                Resource   res   =   new   Resource();
                System.out.println( "Password   is: "+res.srcStr( "Password "));
        }
}

2:生成资源文件
LoginName=用户  

Password=密码  

Login=登陆  

LoginTime=登陆时间  

LogOff=注销登陆  

ChineseVersion=中文版  

MainPage=首页  

SoftWare=软件  

Hardware=硬件  

YourLocationMainPage=当前位置:首页  

MyCalendar=我的日程  

MyMails=我的邮件  

R&D=研发区  

Forum=讨论区  

DeveloperProcess=开发进程  

TechnologyCommunion=技术交流  


利用native2ascii命令将其转化为utf-8编码

3:在页面中使用Resource类的对象。比如:
<jsp:useBean   id= "resource "   scope= "session "   class= "localtest.Resource "/>
<p   align=right> <%=resource.srcStr( "Password ")%> </p>

可惜,我打开页面,发现是乱码,类似于问号的那样。
期间,我将资源文件用微软带的记事本打开,将资源文件的编码改为utf-8,可惜,无济于事

麻烦高手解决下,谢谢拉····


[解决办法]
...

我的国际化问题 没有写什么代码 直接对资源文件命名。

applicationResources_zh_CN.properties
applicationResources.properties(默认)
applicationResources_US.properties

浏览器自动找
如果你浏览器设置为美国英语,它自己就去找applicationResources_US.properties
如果设置为简体中文,就去找applicationResources_zh_CN.properties

热点排行