LocalResolver国际化语言转换
LocalResolver国际化语言转换
需求:页面实现中英文切换
需求分析:
1.创建i18n目录,在目录下我们需要几种语言切换就需要创建几种语言的配置文件
2.编写我们自定义的MyLocalResolver
3.注册为Bean由spring管理
实验步骤
1.创建i18n目录并创建配置文件
2.创建我们自己的MyLocalResolver并继承LocaleResolver,需要实现接口的两个方法
public class MyLocalResolver implements LocaleResolver {//解析请求@Overridepublic Locale resolveLocale(HttpServletRequest request) {//获取请求中的语言参数String language = request.getParameter("l");//如果没有就使用默认的Locale locale = Locale.getDefault();//如果参数中有语言我们就设置参数中的语言if (!StringUtils.isEmpty(language)){//解析参数语言 zh_CNString[] split = language.split("_");//国家地区locale = new Locale(split[0], split[1]);}return locale;} @Overridepublic void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { } }
3.注册为Bean由spring管理
/*** 如果,你想diy一些定制化的功能,只要写这个组件,然后将它交给springboot,springboot就会帮我们自动装配* 官方建议我们需要扩展springmvc,这样做。* */ @Configuration public class MyMvcConfig implements WebMvcConfigurer { //自定义国际化组件生效@Beanpublic LocaleResolver localeResolver(){return new MyLocalResolver();} }
4.前端页面
<body class="text-center">
<form class="form-signin" action="dashboard.html">
<img class="mb-4" src="/static/asserts/img/bootstrap-solid.svg" alt="" width="72" height="72">
<h1 class="h3 mb-3 font-weight-normal">[[#{login.btn}]]</h1>
<label class="sr-only">Username</label>
<input type="text" class="form-control" th:placeholder="#{login.username}" required="" autofocus="">
<label class="sr-only">Password</label>
<input type="password" class="form-control" th:placeholder="#{login.password}" required="">
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="remember-me" > [[#{login.remember}]]
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit"> [[#{login.btn}]]</button>
<p class="mt-5 mb-3 text-muted">© 2017-2018</p>
<a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>
</form>
</body>
分析业务流程:
业务 后端逻辑
1.用户点击语言按钮======我们给对应的按钮设置了不同的l属性值。用来我们识别语言
2.后端接收请求== =======我们自定义语言切换组件生效,业务走到自定义语言切换
3.业务处理
3.1获取请求参数
3.2如果没有请求参数使用默认语言
3.3如果有参数我们就切换为指定语言
3.3.1对参数进行拆分,拆分为国家和地区
3.3.2创建我们自己的Locale对象
4.返回我们的Locale对象
业务完成
注意点:
1.我们需要配置i18n文件
我们如果需要在项目中进行按钮自动切换,我们需要定义一个组件LocalResolver
记得自己写的组件配置到spring容器中
@Bean
创建的配置文件必须按照格式命名
LocalResolver国际化语言转换相关推荐
- PostgreSQL数据库之国际化语言支持学习总结
目 录 学习参考书籍.网站或博文: PostgreSQL本国语言支持 官方文档,点击前往 GNU gettext官方文档 GNU gettext简介 PostgreSQL数据库之国际化语言支持学习总结 ...
- Spring MVC 第四章:Form表单验证-JSR303和Spring框架验证以及国际化语言、Filter过滤器
Form表单的验证验证,就是在提交表单的时候进行验证是否为空,是否满足特定条件才可以创建.常见的表单有前端验证和后端验证. 其中,前端验证有:HTML验证,JS验证,Jquery验证. 后端验证有:J ...
- Android学习----自适应国际化语言
[前言] 自适应的知识与编程无关,关键在于配置文件的修改.自适应的内容包括:语言.屏幕.平台.今天就来说一下如何自适应国际化言. internationalization (国际化)简称:i18n,因 ...
- c语言uppercase恢复小写,C语言转换字符串为大写和小写
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. #include /* * Convert a string to lowercase * ...
- flutter 国际化_从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持
鉴于Flutter高性能渲染和跨平台的优势,闪点清单在移动端APP上,使用了完整的Flutter框架来开发.既然是完整APP,架构搭建完全不受历史Native APP的影响,没有历史包袱的沉淀,设计也 ...
- R语言转换并保存json文件--使用jsonlite包
R语言转换并保存json文件--使用jsonlite包 钱亦欣 发表于 2017-07-03 00:10 2477 阅读 http://www.ituring.com.cn/article/468 ...
- Pandoc —— 标记语言转换工具(中文乱码问题)
今次毕业设计,来个逼格高的,用 latex 编写.谁曾想,学院首先要收一份 word 版的.辣么多的 latex 公式如何转呀. Pandoc 是由 John MacFarlane 开发的标记语言转换 ...
- android国际化语言编码对照表
android国际化语言编码对照表 (查询整理以备不时之需,以下内容均已附原文连接) 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-z ...
- 微信小程序国际化语言包实现方式(di18n-translate)
首先需要一个工具类:languageBox.js // Time 为事例值 export default {//英文"en": {"test":"te ...
最新文章
- image控件显示图片_Unity之Image amp; Raw Image
- cisco 2960 VLAN MAC_思科交换机交换机中ip、mac地址绑定
- ConfigurationClassPostProcessor设计与实现
- 【杂谈】万万没想到,有三还有个保密的‘朋友圈’,那里面都在弄啥!
- mysql基础(全,必看)
- 使用自己的数据集训练GoogLenet InceptionNet V1 V2 V3模型(TensorFlow)
- 第四十七期:漫画:什么是公有云、私有云和混合云?
- leetcode 96. 不同的二叉搜索树(Unique Binary Search Trees)
- 发布会后库克接受采访:对AR感到无比兴奋
- 如何更高效地学习3D视觉?
- c语言中按字节运算,C语言中位运算的巧用
- Bootstrap系列---按钮
- 马拉车算法详解, C++代码实现
- Laya1.0Matter.js案例之牛顿摆
- 163个人邮箱如何注册申请?vip邮箱有哪些优点?
- 题目:输入一个8bit数,输出其中1的个数。如果只能使用1bit全加 器,最少需要几个?
- 【数据挖掘与商务智能决策】第十七章 神经网络
- 【python数据类型】
- 关于_map文件的全面解析
- js的exports