Spring 国际化例子

2014-11-24 00:41:51 · 作者: · 浏览: 0


/WEB-INF/languages/test/messages




在/WEB-INF/languages/test/messages下,建立两个messages的属性文件。一个名为messages_zh_CN.properties,另一个为messages_en_US.properties,分别对应国际化中的中国和美国。

在这两个属性文件中分别建立一个userinfo属性。
中国为:userinfo=当前登陆用户[{0}] 登陆时间[{1}]
美国为:userinfo=current login user:[{0}] login time:[{1}]

接下来可以写段代码测试。建个类,写个测试Main方法。

public class MessageTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(spring.xml);
Object[] arg = new Object[] { 张三, Calendar.getInstance().getTime() };
String msg = ctx.getMessage(userinfo, arg,Locale.CHINA);
System.out.println(Message is ===> + msg);
}
}

最后输出的结果是:Message is ===> 当前登录用户:[张三] 登录时间:[14-3-23 上午12:10]

ctx.getMessage(userinfo, arg,Locale.getDefault());这个方法,传入的三个参数,第一个是properties文件中对应的名。arg为一个对象数组,我们在properties里面放置了两个变量,[{0}]和[{1}],Spring会为我们给它们赋值。而最后则需要传入一个Local。这里用Locale.CHINA代表中国。

如果我们用Locale.US,则输出会变为: Message is ===> current login user:[Erica] login time:[3/23/14 12:10 AM]