java实现i18n国际化
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。
一般用语言_地区的形式表示一种语言,如 zh_CN, zh_TW.
常见的有:
zh_cn: 简体中文
zh_hk: 繁体中文(中国香港)
zh_tw: 繁体中文(中国台湾地区)
en-hk: 英语(香港)
en_us: 英语(美国)
en_gb: 英语(英国)
en_ww: 英语(全球)
ja_jp: 日语(日本)
ko_kr: 韩文(韩国)
如何实现i18国际化
第一步
先解决乱码问题
创建三个文件
第一个为默认文件,可以为空,但是必须要有
文件二加入:
文件三加入:
在配置文件中加入
获取i18n资源文件
MessageUtils
public class MessageUtils extends ResourceBundleMessageSource {private static MessageSource messageSource;public static void setMessageSource(MessageSource source){messageSource=source;}public MessageUtils() {super();//this.messageSource = messageSource;}/*** 获取单个国际化翻译值*/public static String get(String pvsKey) {try {return messageSource.getMessage(pvsKey, null, LocaleContextHolder.getLocale());} catch (Exception e) {return pvsKey;}}/*** 获取单个国际化翻译值*/public static String get(String pvsKey,Object ... pvParams) {try {return messageSource.getMessage(pvsKey, pvParams, LocaleContextHolder.getLocale());} catch (Exception e) {return pvsKey;}}
}
i18n配置文件
I18nConfig
@Configuration
public class I18nConfig {/*** 默认解析器 其中locale表示默认语言*/@Beanpublic LocaleResolver localeResolver() {SessionLocaleResolver localeResolver = new SessionLocaleResolver();localeResolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);return localeResolver;}/*** 默认拦截器 其中lang表示切换语言的参数名*/@Beanpublic WebMvcConfigurer localeInterceptor() {return new WebMvcConfigurer() {@Overridepublic void addInterceptors(InterceptorRegistry registry) {LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();localeInterceptor.setParamName("lang");registry.addInterceptor(localeInterceptor);}};}}
ApplicationEvent
@Component
public class ApplicationEvent implements ApplicationListener<ContextRefreshedEvent> {@Resourceprotected MessageSource messageSource;@Overridepublic void onApplicationEvent(ContextRefreshedEvent event) {MessageUtils.setMessageSource(messageSource);}
}
前端
使用thymeleaf模板引擎的话可以使用th:test="#{user.login.sumbit}"
接下来就可以通过两个超链接进行切换
java实现i18n国际化相关推荐
- 【Java】I18N国际化
i18n(其来源是英文单词internationalization的首末字符i和n,18为中间的字符数)是"国际化"的简称.对程序来说,在不修改内部代码的情况下,能根据不同语言及地 ...
- Java i18n - Java中的国际化
Java i18n - Java中的国际化 Java或Java i18n的国际化是一个非常重要的特性.Java通过资源包提供国际化(i18n)支持. Java的国际化 为了使您的应用程序支持不同的语言 ...
- Spring进行 i18n国际化配置
(本项目是基于Dubbo的,所以会有后端服务和前端Controller两次国际化的配置) 对后端服务的异常代码进行国际化版本的配置 1.在provider的resources中新建一个properti ...
- Java程序的国际化和本地化介绍
IBM : developerWorks 中国网站 : Java : 所有的文章 Java程序的国际化和本地化介绍 邵荣 (youcenter@yahoo.com) 软件工程师, CA有限公司研发中心 ...
- springboot配置i18n国际化
springboot实现i18n国际化,无需引入其他jar包,springboot已经内置了,只需要配置即可. 国际化主要是根据不同的国际语言来决定返回数据的语言. 添加properties文件,作为 ...
- Springboot + i18n国际化
在网上找了很多后端国际化的资料,总是不适合自己.因为脑袋本能的就会取拒绝吸收知识,其实认真看理解思路i18n国际化其实很简单. 那么先简单上手一下 1.首先在resources创建i18n的文件夹,文 ...
- 文件的上传、文件的下载、I18N国际化
一:文件上传 01.文件上传准备 1):上传控件所在的<form>表单的method,必须POST:因为GET方式的数据大小不能超过2kb,而POST没有大小限制.2):上传控件得使用ty ...
- JavaWeb(9) I18N国际化
I18N 国际化(internationalization):软件支持多语言,软件会根据当前的语言使用环境,自动切换 I18N 由来:i和n 中间有18个字符 实现步骤: ①准备资源文件,使用配置文件 ...
- SpringBoot系列之i18n国际化多语言支持教程
SpringBoot系列之i18n国际化多语言支持教程 文章目录 1.环境搭建 2.resource bundle资源配置 3.LocaleResolver类 4.I18n配置类 5.Thymelea ...
最新文章
- 华为开发者学院 | 卷积神经网络与图像处理,听这一节课就够了
- 超效率dea模型_【探索】基于超效率DEA模型的我国公立医院排行榜研究
- bmp文件格式详细解析
- php上传文件到七牛云
- 《leetcode》search-insert-position
- 如何制作一个横版格斗过关游戏 2 Cocos2d x 2 0 4
- SpringBoot整合Mybatis,并实现事务控制
- SpringMVC实现AJax以及RestFull风格
- 国庆在家太无聊, 用Java爬了上千张小姐姐照片...
- Android Listener侦听的N种写法
- python爬虫验证码的处理(云打码)_python爬虫验证码的处理(云打码)
- 计算机上安装的网络协议,win10系统正确安装网络协议的方法
- Coq Art第二章 类型和表达式
- 安卓6.0+通电自动开机
- tomcat日志格式转化为json
- python爬斗鱼直播房间名和主播名_斗鱼爬虫,爬取颜值频道的主播图片和名字
- 自定义根证书颁发机构 CA 生成自签名证书
- Web测试所涉及的主要测试点
- Dubbo系列之微服务框架整合教程
- 2012年9月TIOBE编程社区指数