其中还包括其他个性化设置,如色调呀什么的。
主要是把所有的页面信息都写入属性文件中
准备多套属性文件
在用户登陆验证通过后,所有页面显示之前装载用户语言对应的属性文件
还有什么问题,msn:[email protected]
主要是把所有的页面信息都写入属性文件中
准备多套属性文件
在用户登陆验证通过后,所有页面显示之前装载用户语言对应的属性文件
还有什么问题,msn:[email protected]
调试欢乐多
根据拥护的Language处理他的显示是很简单的
首先你需要创建properties文件,命名和Locale差不多
比如Resource.properties,Resource_zn_CN.properties,Resources_jp.properties
具体处理是这样的,在第一个页面
session.setAttribute(Globals.LOCAL_KEY,request.getLocale());
然后框架就会每次检索session里面的Locale来选择相对应的资源文件(properties文件)
当用户访问服务器的时候,服务器会自动根据用户的浏览器语言选择对应的语言界面显示给用户。
比如jsp的页面编码都用UTF-8,把界面上要国际化的地方的文字用struts的<bean:message key="title.display"/>标记来替换掉。
这时你的jsp应该到处是<bean:message>标记了,没有特定的语言文字。
现在需要一个默认资源文件,比如ApplicationResources.properties
它的内容如下:
title.display=This is test page
然后需要一个中文文件,命名规则是在默认文件名中加上特定区域的代码,中文就是
ApplicationResources_zh.properties
它的内容是title.display=/3243/5423/5645/3245
这些奇怪的符号其实是通过对一个中文文件进行转码得到的:
一个临时文件temp.properties,内容是title.display=这是一个测试页面
然后通过native2ascii temp.properties ApplicationResources_zh.properties
命令即可得到我们需要的中文资源文件ApplicationResources_zh.properties。
把其它各种语言的资源文件和默认资源文件放在一起,在struts的配置文件里指定一下默认资源文件的路径,你的应用就完成国际化了。
修改一下
用native2ascii得到的结果是
title.display=\u3243\u5423\u5645\u3245
譬如说我现在有一个User类,User类中有一个属性是language,标志用户要进入的页面是什么语言的。
现在我实例化两个user
User user1 = new User(); user1.setLanguage("CHINESE");
User user2 = new User(); user2.setLanguage("ENGLISH");
现在如果以user1的身份登陆进去,则自动进入中文页面,
如果以user2的身份登陆进去,则自动进入英文页面
所需要的资源文件都已经存在,现在的情况是这样的,系统进入后是英文页面,因为我在config里面指定的默认的是英文资源文件。然后我更改页面的:工具-internet选项-语言,把语言改为中文,英文删掉,然后刷新,系统就会自动进入中文页面
你的要求根本不需要在Uder类里面加一个language字段,struts会自动根据用户的Locale来判断选用哪个资源文件的
而且你要测试的话在工具-internet选项-语言,修改了之后要重开浏览器才能看到效果
那么就这样来使用
User user1=new User();
user1.setLanguage(request.getLocale().getLanguage());
国际化都会做,但就是客户非得要那种在页面上可以实现语言互换的
点“英文版”,“日文版”进入不同的语言界面。jFresH_MaN(The answer is ......)(上帝对我说:编程要全面发展,)
说的方法好像可行,还没来的急试,不过感谢先。还有搂主,和回贴的兄弟们。
HttpSession session = request.getSession(true);
UserForm userform = (UserForm) form;
String language = userform.getLanguage(); if (language.equalsIgnoreCase("CHINESE")){
session.setAttribute(Globals.LOCALE_KEY,Locale.CHINESE);}
else{
session.setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);
} MessageResources messages = getResources(request);
然后配置好
ApplicationResources_zh.properties和ApplicationResources_en.properties两个资源文件就可以了
十分感谢大家!感谢lippea(E.L.)!!!分数马上送到