增加国际化i18n语言配置:

  1. # src/main/resources/i18n/login.properties
  2. login.btn=登录
  1. # src/main/resources/i18n/login_zh_CN.properties
  2. login.btn=登录
  1. # src/main/resources/i18n/login_en_US.properties
  2. login.btn=sign in

在模板中使用国际化语言输出及增加切换语言的链接:

  1. # src/main/resources/templates/index.html
  2. <h1 ... th:text="#{login.tip}"></h1>
  3. <input type="checkbox" value="remember-me"> [[#{login.remember}]]
  4. <button type="submit"> [[#{login.btn}]] </button>
  5. <a th:href="@{/index.html(l='zh_CN')}">中文</a>
  6. <a th:href="@{/index.html(l='en_US')}">English</a>
  1. # src/main/resources/application.properties
  2. # 国际化文件的目录位置
  3. spring.messages.basename=i18n

实现本地化解析器:

  1. # src/main/java/com/wu/config/MyLocaleResolver.java
  2. import org.springframework.util.StringUtils;
  3. import org.springframework.web.servlet.LocaleResolver;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import java.util.Locale;
  7. public class MyLocaleResolver implements LocaleResolver {
  8. private static final String PATH_PARAMETER = "l";
  9. private static final String PATH_PARAMETER_SPLIT = "_";
  10. @Override
  11. public Locale resolveLocale(HttpServletRequest request) {
  12. String lang = request.getParameter(PATH_PARAMETER);
  13. Locale locale = request.getLocale();
  14. if (!StringUtils.isEmpty(lang)) {
  15. String[] split = lang.split(PATH_PARAMETER_SPLIT);
  16. locale = new Locale(split[0], split[1]);
  17. }
  18. return locale;
  19. }
  20. @Override
  21. public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
  22. }
  23. }

将语言解析器加入到容器中:

  1. # src/main/java/com/wu/config/MyMvcConfig.java
  2. @Configuration // 标注这个类是一个配置类
  3. public class MyMvcConfig implements WebMvcConfigurer {
  4. // 配置视图跳转
  5. @Override
  6. public void addViewControllers(ViewControllerRegistry registry) {
  7. registry.addViewController("/").setViewName("index");
  8. registry.addViewController("/index.html").setViewName("index");
  9. }
  10. // 将本地化解析器配置到容器中
  11. @Bean
  12. public LocaleResolver localeResolver() {
  13. return new MyLocaleResolver();
  14. }
  15. // 将视图解析器配置到容器中
  16. @Bean
  17. public ViewResolver myViewResolver() {
  18. return new MyViewResolver();
  19. }
  20. // 自定义一个视图解析器
  21. public static class MyViewResolver implements ViewResolver {
  22. @Override
  23. public View resolveViewName(String viewName, Locale locale) throws Exception {
  24. return null;
  25. }
  26. }
  27. }

SpringBoot 之 国际化的更多相关文章

  1. SpringBoot 国际化配置,SpringBoot Locale 国际化

    SpringBoot 国际化配置,SpringBoot Locale 国际化 ================================ ©Copyright 蕃薯耀 2018年3月27日 ht ...

  2. 配置和修改springboot默认国际化文件

    SpringBoot默认国际化文件为:classpath:message.properties,如果放在其它文件夹中,则需要在application.properties配置属性spring.mess ...

  3. SpringBoot的国际化使用

    在项目中,很多时候需要国际化的支持,这篇文章要介绍一下springboot项目中国际化的使用. 在这个项目中前端页面使用的thymeleaf,另外加入了nekohtml去掉html严格校验,如果不了解 ...

  4. SpringBoot整合国际化功能

    (1).编写国际化配置文件 在resources下新建i18n文件夹,并新建以下文件 ①index.properties   username=username ②index_en_US.proper ...

  5. SpringBoot日记——国际化篇

    听起来高大上的国际化,起始就是在利用浏览器语言,或者页面中的中英文切换,将页面的文字在其他语言和中文进行切换,比如: 我们想让这个功能实现,点击中文,页面就是中文的,点击英文就是英文的. 国际化配置 ...

  6. SpringBoot资源国际化

    Springboot根据浏览器实现网站资源国际化 根据浏览器地区主动选择资源 1.创建资源化文件 resource目录下创建messages目录 创建messages_en_US.properties ...

  7. SpringBoot配置国际化

    1).国际化 1).编写国际化配置文件: 2).使用ResourceBundleMessageSource管理国际化资源文件 3).在页面使用fmt:message取出国际化内容 步骤: 1).编写国 ...

  8. SpringBoot 消息国际化配置

    一.目的 针对不同地区,设置不同的语言信息. SpringBoot国际化配置文件默认放在classpath:message.properties,如果自定义消息配置文件,需要application.p ...

  9. springboot实现国际化

    1.编写配置文件 2.在application.properties中添加 i18n指的是国际化所在包名 3.实现国际化的接口 4.在配置类中

  10. SpringBoot整合国际化I18n

    本文主要实现的功能: 从文件夹中直接加载多个国际化文件 后台设置前端页面显示国际化信息的文件 实现 国际化项目初始化,简单看下项目的目录和文件 在resource下创建国际化文件 messages.p ...

随机推荐

  1. poi做一个简单的EXCAL

    //创建一个实体类 package text; import java.util.Date; public class Student { private int id; private String ...

  2. Servlet(2):通过servletContext对象实现数据共享

    一,ServletContext介绍 web容器在启动时,它会为每一个web应用程序都创建一个ServletContext对象,它代表当前web应用 多个Servlet通过ServletContext ...

  3. 【Linux】【Shell】【text】文本处理工具

    文本查看及处理工具:wc, cut, sort, uniq, diff, patch wc:word count wc [OPTION]... [FILE]... -l: lines -w:words ...

  4. 如何使用pycharm克隆阿里云项目

    我们回到PyCharm刚打开时的界面,如图1-1所示:   点击"Check out from Version Control" => "Git",如图1 ...

  5. 重新整理 .net core 实践篇——— UseEndpoints中间件[四十八]

    前言 前文已经提及到了endponint 是怎么匹配到的,也就是说在UseRouting 之后的中间件都能获取到endpoint了,如果能够匹配到的话,那么UseEndpoints又做了什么呢?它是如 ...

  6. 9、Redis五大数据类型---有序集合Zset(sorted set)

    一.简介 zset与set异同 相同之处: 都是没有重复元素的字符串集合 不同之处: 有序集合zset的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排 ...

  7. 让你用Markdown的方式来做PPT

    也许你是以为代码高手,Markdown写作高手,但你是PPT高手吗? 你的成绩有没有被PPT高手抢走过呢? 不会作精美PPT是不是很头疼呢? 今天就给大家介绍了一款PPT制作利器:Slidev~ 说S ...

  8. js--对象内部属性与 Object.defineProperty()

    前言 JavaScript 中允许使用一些内部特性来描述属性的特征,本文来总结一下对象内部属性与 Object.defineProperty() 的相关知识. 正文 1.属性类型 js中使用某些内部属 ...

  9. 2、动态规划接替套路框架——Go语言版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  10. JAVA将一个pdf按页码拆分成多个pdf

    引入maven <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf< ...