Spring之i18n配置与使用
发布日期:2021-08-21 02:35:01 浏览次数:1 分类:技术文章
Spring的i18n配置:
<!-- conf:i18n  --><bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">	<property name="fallbackToSystemLocale" value="false" />	<property name="useCodeAsDefaultMessage" value="true" />	<property name="defaultEncoding" value="UTF-8" />	<property name="cacheSeconds" value="60" />	<property name="basenames">		<list>			<value>classpath:com/hupu/nac/i18n/message</value>		</list>	</property></bean>

Spring的i18n使用:

package com.joyce.enums;import java.util.Locale;/** * 语言枚举 * @author Joyce.Luo * @date 2016-1-5 上午09:38:27 * @version V3.0 * @since Tomcat6.0,Jdk1.6 * @copyright Copyright (c) 2016 */public enum EnumLang {	ZH_CN("zh-CN", Locale.SIMPLIFIED_CHINESE),	ZH_TW("zh-TW", Locale.TRADITIONAL_CHINESE),	EN("en", Locale.ENGLISH),	JA("ja", Locale.JAPAN);	private String lang;	private Locale locale;	public String getLang() {		return lang;	}	public void setLang(String lang) {		this.lang = lang;	}		public Locale getLocale() {		return locale;	}	public void setLocale(Locale locale) {		this.locale = locale;	}	private EnumLang(String lang, Locale locale) {		this.lang = lang;		this.locale = locale;	}	/**	 * 依据ID获取枚举值	 * @param lang ID	 * @return ID相应的枚举值	 * @author Joyce.Luo	 * @date 2015-5-8 上午11:02:45	 * @version V3.0	 * @since Tomcat6.0,Jdk1.6	 * @copyright Copyright (c) 2015	 */	public static Locale getLocale(String lang) {		for (EnumLang enumLang : EnumLang.values()) {			if (enumLang.getLang().equals(lang)) {				return enumLang.getLocale();			}		}		return Locale.ENGLISH;	}}

package com.joyce.util.i18n;import java.util.Locale;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang3.StringUtils;import org.apache.log4j.Logger;import org.apache.struts2.ServletActionContext;import org.springframework.context.MessageSource;import com.joyce.enums.EnumLang;import com.joyce.util.CookieUtil;import com.joyce.util.SpringUtil;/** * Spring i18n * @author Joyce.Luo * @date 2016-1-5 上午09:26:03 * @version V3.0 * @since Tomcat6.0,Jdk1.6 * @copyright Copyright (c) 2016 */public class I18NUtil {	private static final Logger logger = Logger.getLogger(I18NUtil.class);	private static MessageSource messageSource = (MessageSource) SpringUtil.getApplicationContext().getBean("messageSource");	private static final Object[] objs = null;		/**	 * 获取国际化信息	 * @param key 相应键	 * @param locale 语言	 * @param objects 參数	 * @return 国际化信息	 * @author Joyce.Luo	 * @date 2016-1-5 上午10:19:00	 * @version V3.0	 * @since Tomcat6.0,Jdk1.6	 * @copyright Copyright (c) 2016	 */	public static String getMessage(String key, Locale locale, Object...objects){		if (StringUtils.isEmpty(key)) {			return StringUtils.EMPTY;		}		if (null == locale) {			HttpServletRequest request = ServletActionContext.getRequest();			if (null == request) {				locale = Locale.ENGLISH;			} else {				String lang = CookieUtil.getCookieByName(request, "language").getValue();				if (StringUtils.isEmpty(lang)){					locale = Locale.ENGLISH;				} else {					locale = EnumLang.getLocale(lang);				}			}		}		logger.info("Spring I18 ---> key:[" + key + "]。lang:[" + locale.getLanguage() + "],params:[" + objects + "]");		return messageSource.getMessage(key, objects, locale);	}		/**	 * 获取国际化信息	 * @param key 相应键	 * @param locale 语言	 * @return 国际化信息	 * @author Joyce.Luo	 * @date 2016-1-5 上午10:19:00	 * @version V3.0	 * @since Tomcat6.0,Jdk1.6	 * @copyright Copyright (c) 2016	 */	public static String getMessage(String key, Locale locale){		return getMessage(key, locale, objs);	}		/**	 * 获取国际化信息	 * @param key 相应键	 * @param objects 參数	 * @return 国际化信息	 * @author Joyce.Luo	 * @date 2016-1-5 上午10:19:00	 * @version V3.0	 * @since Tomcat6.0,Jdk1.6	 * @copyright Copyright (c) 2016	 */	public static String getMessage(String key, Object...objects){		return getMessage(key, null, objects);	}		/**	 * 获取国际化信息	 * @param key 相应键	 * @param lang 语言	 * @return 国际化信息	 * @author Joyce.Luo	 * @date 2016-1-6 上午11:30:03	 * @version V3.0	 * @since Tomcat6.0,Jdk1.6	 * @copyright Copyright (c) 2016	 */	public static String getMessage(String key, String lang){		return getMessage(key, EnumLang.getLocale(lang));	}		/**	 * 获取国际化信息	 * @param key 相应键	 * @return 国际化信息	 * @author Joyce.Luo	 * @date 2016-1-5 上午10:19:00	 * @version V3.0	 * @since Tomcat6.0,Jdk1.6	 * @copyright Copyright (c) 2016	 */	public static String getMessage(String key){		return getMessage(key, null, objs);	}}

仅供參考。感兴趣者可深入研究,本人抱着引导入门的态度写这篇文章

上一篇:React Native商城项目实战03 - 包装Navigator
下一篇:如何解压POSIX tar archive文件

关于作者

    白红宇是个全栈工程师,前端vue,小程序,app开发到后端框架设计,数据库设计,环境部署上线运维。

最新文章

java 第一 二章作业,Java私塾跟我学系列——JAVA篇 第二章 基础语法 作业 2021-10-30
java 向文本域中添加,怎么给html textarea文本域动态添加数据 2021-10-30
php imgret函数,PHP imagefttext()用法及代码示例 2021-10-30
php fpoen,在php中fopen函数起什么作用呢? 2021-10-30
freenom php,index.php 2021-10-30
php自定义发送Session会话id,php实现session自定义会话处理器的方法 2021-10-30
centos php 错误日志,centos上apache错误日志在哪 2021-10-30
JAVA生成PDF标点符号不换行_iText生成中文PDF行首标点处理 2021-10-30
java游戏开发推荐笔记本_你好,我想请问下,我现在想配置一个华硕的笔记本,主要是做java开发使用的,有时会玩大型3D游戏... 2021-10-30
java设置word页面为A3_word页面怎么设置为A3打印格式 2021-10-30
java实现画直线画圆_java 用鼠标画直线,圆,矩形的共存问题 2021-10-30
java怎样下载maven资源库_java-通过Maven下载本地存储库jar依赖文件 2021-10-30
java关键字的作用_java 常见关键字及其作用 2021-10-30
java转换音频采样率_音频采样率转换 2021-10-30
java百元_VB.net & java ---- 百元买百鸡题目 2021-10-30
qt遍历mysql表数据结构_QT中的常用数据结构及函数 2021-10-30
face java_Java 离线人脸识别 基于ArcFace 2.0 Demo 2021-10-30
java 数据库传输工具_Java实现从网页上传导入excel数据到数据库 2021-10-30
java输出图形_java 输出图形 2021-10-30
eclipse断点java没有断点_详解Eclipse断点(原) 2021-10-30