spring java 国际化_Spring 解析文字(国际化处理)

ApplicationContext继承了org.springframework.context.MessageResource界面,您可以使用getMessage()的各个签署方法来取得信息资源,从而实现国际化信息的目的。

您可以简单的透过MessageResource的一个实作org.springframework.context.support.ResourceBundleMessageSource来取得国际化信息,首先在Bean定义档中撰写:

beans-config.xml

/p>

"http://www.springframework.org/dtd/spring-beans.dtd">

class="org.springframework.context.support.ResourceBundleMessageSource">

messages

basename属性用来设定信息资源的前置档案名称,在这边设定是messages,则信息资源档的名称可以是messages_en_US.properties、messages_zh_TW.properties、messages_*.properties等等名称,在这边提供两个:messages_en_US.properties、messages_zh_TW.properties,首先messages_en_US.properties内容如下:

messages_en_US.properties

userLogin=User {0} login at {1}

messages_zh_TW.properties内容如下:

messages_zh_TW.properties

userLogin=使用者 {0} 于 {1} 登入

其中{0}与{1}是可以在程序执行过程中设定的占位字元,ResourceBundleMessageSource实际上会使用JDK的ResourceBundle来读取这些文件,而中文在编码过程中会发生问题,为了要能正确的显示中文,我们必须对message_zh_TW.properties进行编码转换,使用JDK工具中的

native2ascii messages_zh_TW.properties messages_zh_TW.txt

之后将messages_zh_TW.txt覆盖(替换)掉messages_zh_TW.properties就可以了。

接下来撰写一个简单的测试程序:

SpringDemo.java

package onlyfun.caterpillar;

import java.util.Calendar;

import java.util.Locale;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringDemo {

public static void main(String[] args) {

ApplicationContext context =

new ClassPathXmlApplicationContext("beans-config.xml");

Object[] arguments =

new Object[] {"格格格", Calendar.getInstance().getTime()};

System.out.println(

context.getMessage("userLogin", arguments, Locale.US));

System.out.println(

context.getMessage("userLogin", arguments, Locale.TAIWAN));

}

}

透过设定参数并指定Locale,使用getMessage()设定对应的信息,这个测试程序结果会显示以下的内容:

User 格格格 login at 10/28/05 8:24 PM

使用者 格格格 于 2005/10/28 下午 8:24 登入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值