日期:2014-05-17  浏览次数:20686 次

struts国际化
struts国际化的哪个原理是个怎么滴啊?

------解决方案--------------------
Java程序国际化的简单实现
国际化(I18N)是指为了使应用程序能适应不同的语言和地区间的变化而不作系统性的改变所采取的设计措施。一个优秀的全球化软件产品的国际化应该包括以下几个方面[4]:
¨ Messages
¨ Labels on GUI components
¨ Online help
¨ Sounds
¨ Colors
¨ Graphics
¨ Icons
¨ Dates
¨ Times
¨ Numbers
¨ Currencies
¨ Measurements
¨ Phone numbers
¨ Honorifics and personal titles
¨ Postal addresses
¨ Page layouts
 
下面通过一个简单的例子来演示Java对国际化的支持[3]。
文件列表:
ResourceBundleTest.java //根据不同的语言地区设置(英/中),显示相应的内容(英/中)
LocalStrings_en_US.properties //英文内容
LocalStrings_zh_CN.properties //中文内容
 
ResourceBundleTest.java程序识别操作系统不同语言[1]不同地区[2]设置,显示相应的内容,如果当现操作系统为英文环境(en_US),则显示“google”;如果当现操作系统为中文环境(zh_CN),则显示“谷歌”。如果需要扩展对其它语言的支持,只要增加相应的属性文件即可,(如日文环境,增加LocalStrings_ja_JP.properties文件和相应的内容),不需要改动ResourceBundleTest.java程序。
 
 
附件:
ResourceBundleTest.java
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import java.io.UnsupportedEncodingException;
import java.util.Locale;
import java.util.ResourceBundle;
 
public class ResourceBundleTest {
public static void main(String args[]) {
 
//LocalStrings 为peoperties文件的文件名称,得到当前环境的LocalStrings_xx_XX.properties文件对应的ResourceBundle对像。
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
// System.out.println("Locale:"+Locale.getDefault().toString());

//得到properties文件里的title值
String title = rb.getString("title");
 
try {
System.out.println(new String(title.getBytes("8859_1")));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
------解决方案--------------------
额,这方面的内容网上很多!可以自己查查!!!
------解决方案--------------------
国际化就是写N个国际化配置文件 一般比如 application_en.properties / application_zh.properties 那么真两个分别对应 英文和中文,他们两个里边都是以键值对的形式存在的, 用的时候根据键去取值,

怎么用嗯? 需要设置当前的环境 
 request.getSession.setAttribute(Globle.key,Local.CHINA); 中文
 request.getSession.setAttribute(Globle.key,Local.ENGLISH);英语 
其他的语言 一样。

那么系统会根据当前语言环境选择相应的 properties文件,并且取其中的值。