layui + Thymeleaf 国际化
各位读者好,下面我分享下 layui + thymeleaf 实现国际化 的过程中 注意事项:
layui目前的版本还不支持国际化 ,所以我们现在做的国际化一般都是 thymeleaf 的元素去实现的。
那我们如何 在layui 模板中 去实现国际化呢?
注:本篇文章更多注重的是思路 。
其实 国际化的写法就是 #{ }
1、 页面个个标签里 一般都是 th:text="#{seller.visit.visit.visitPlan.title}"
2、在 script 标签里 一般都是 [[#{seller.visit.visit.visitPlan.Others}]] 用 [[ #{ } ]] 的写法
然后具体说下展览项目中实现方式
弹窗模板 国际化
在 layui ifream 模板中 新增/编辑 一般都用弹窗的方式 如果直接弹 弹框的话是不支持 thymeleaf 的 更别说 国际化了。
所以我们就需要去 controller 用modelAndView 去转一下 以此来达到支持 thymeleaf
来,上菜 :
/** * 跳转弹框页面--一级 * * @return */ @RequestMapping("/tpl/{tplUrl1}") public ModelAndView toTplOne(@PathVariable("tplUrl1") String url) { ModelAndView model = new ModelAndView(); model.setViewName("/tpl/" +url); return model; } /** * 跳转弹框页面--二级 * * @return */ @RequestMapping("/tpl/{tplUrl1}/{tplUr2}") public ModelAndView toTplTwo(@PathVariable("tplUrl1") String url,@PathVariable("tplUr2") String url2) { ModelAndView model = new ModelAndView(); model.setViewName("/tpl/" +url + url2); return model; }
那这个时候呢 我们的弹窗页面 也可以香香的用 th:等各个属性了。
轮到必填提示信息了
layui 在2.50版本之后 支持 对 lay-verify="required" (这个是必填不能为空的校验) 的自定义提示 对你没听错 它来了
自定义提示 lay-reqText=" 提示内容 "
回到我们国际化的问题 你会发现上面两种写法 在这里面都不能完成国际化 为什么呢?因为 layui 不支持!
这时候 我们就要结合 thymeleaf 来完成了
上代码 : th:attr="lay-reqText=#{login.loginAccountPrompt}"
Other:
layui 渲染列表数据也有好几种写法 这里针对我们遇到提出国际化思路
图:1-1
前端给我们的是 cols 表头的方式写的! 表头也是需要国际化的呀!
因为我们所有页面都是这种方式写的 , 打不过 只能顺从 。
表头实现国际化方式:
在页面中 引用
<script type="text/javascript" th:inline="javascript"> var tableColumn =[[#{validate.advertise.adName.length}]]; </script>
这时候 tableColumn 已经是动态中英文了。
然后看上 图:1-1 中 title:tableColumn 就可以实现国际化了
好啦 本次分享就结束啦 ,希望可以帮到大家。