第一步:先创建一个包,包名为i18n
第二步:在i18n包里面创建兩個.properties后缀名的文件,一个文件common_en.properties,一个common_zh.properties
第三步:在spring配置文件里面加一个bean配置国家化,配置如下:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<!-- /WEB-INF/classes/i18n -->
<value>classpath:i18n/test</value>
<value>classpath:i18n/common</value>
</list>
</property>
<property name="fallbackToSystemLocale">
<value>false</value>
</property>
<property name="cacheSeconds">
<value>120</value>
</property>
<property name="useCodeAsDefaultMessage">
<value>true</value>
</property>
</bean>
<bean id="messageUtil" class="com.xtown.util.MessageUtil">
<property name="messageSource" ref ="messageSource" />
</bean>
</pre><pre>
第四步:创建一个工具类,类名为:MessageUtil,代码如下:
import java.util.Locale;
import org.springframework.context.MessageSource;
public class MessageUtil {
private static final Locale DEFAULT_LOCALE = new Locale("en");
private static MessageSource messageSource;
public void setMessageSource(MessageSource messageSource) {
MessageUtil.messageSource = messageSource;
}
public static String getMessage(String messageKey) {
return getMessage(DEFAULT_LOCALE, messageKey, null);
}
public static String getMessage(String messageKey, Object[] args) {
return getMessage(DEFAULT_LOCALE, messageKey, args);
}
public static String getMessage(String messageKey, Locale locale) {
return getMessage(locale, messageKey, null);
}
public static String getMessage(Locale locale, String messageKey,
Object[] args) {
String message = null;
if (locale == null) {
locale = DEFAULT_LOCALE;
}
try {
message = messageSource.getMessage(messageKey, args, locale);
} finally {
if (message == null) {
message = messageKey ;
}
}
return message;
}
}
第六步:在common_en.properties里面对应输入英文,在common_zh.properties里面对应输入中文,在jsp页面需要国际化的地方加入spring标签就可以了,如下:
英文:
中文:
补充:common_zh.properties文件里面直接写上中文就行了,Eclipse会自动自动转换的,例如在common_zh.properties文件里面写上:
common.leftmenu.base.year=年月日,
Eclipse就会自动转换:
common.leftmenu.base.year=\u5b78\u5e74\u53ca\u5b78\u671f\u7ba1\u7406