SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法
在项目中,很多时候需要国际化的支持,这篇文章要介绍一下springboot项目中多语言国际化的使用。
本文项目结构如图:
springboot默认就支持国际化的,而且不需要你过多的做什么配置,只需要在resources/下创建国际化配置文件即可。
index.properties
index.tip=请登录
index.en.US_properities
index.tip=Please Sign In
index.zh.CN.properities
index.tip=请登录
login.properties
login.username=用户名
login.password=密码
login.remmber=记住我
login.sign=登录
login.en.US_properities
login.username=UserName
login.password=Password
login.remmber=Remember Me
login.sign=Sign In
login.zh.CN_properities
login.username=用户名
login.password=密码
login.remmber=记住我
login.sign=登录
在这个项目中前端页面使用的thymeleaf。创建Springboot项目不在讲述,Eclipase,IDEA创建项目都很方便快捷。pom文件记得加入 thymeleaf 支持。
pom.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.auan</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>demo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
新建login
package com.baiding.i18n.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class Login {@RequestMapping("/login")public String login(){return "login";}
}
到这里可以看出来,其实和整合thymeleaf一样。
然后在templates下新建index.html,代码如下:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"/><title>Title</title>
</head>
<body>
<form action="" method="post"><h1 th:text="#{index.tip}">Please Sign In</h1><label th:text="#{login.username}">Username</label><input type="text" name="username" placeholder="Username" th:placeholder="#{login.username}"><label th:text="#{login.password}">Password</label><input type="password" name="password" placeholder="Password" th:placeholder="#{login.password}"><br> <br><div><label><input type="checkbox" value="remember-me"/> [[#{login.remmber}]]</label></div><br><button type="submit" th:text="#{login.sign}">Sign in</button><br> <br><a th:href="@{/login.html(language='zh_CN')}">中文</a><a th:href="@{/login.html(language='en_US')}">English</a>
</form>
</body>
</html>
创建国际化配置文件,LocaleConfig 代码如下:
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;@Configuration
public class WebMVCConfig implements WebMvcConfigurer {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/").setViewName("login");registry.addViewController("/login.html").setViewName("login");}@Beanpublic LocaleResolver localeResolver(){return new NativeLocaleResolver();}protected static class NativeLocaleResolver implements LocaleResolver{@Overridepublic Locale resolveLocale(HttpServletRequest request) {String language = request.getParameter("language");Locale locale = Locale.getDefault();if(!StringUtils.isEmpty(language)){String[] split = language.split("_");locale = new Locale(split[0],split[1]);}return locale;}@Overridepublic void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {}}
}
application.properitesspring.messages.basename=i18n/login/login,i18n/index/index
server.port=8090
现在启动项目,访问 http://localhost:8080/
然后点击中文或者English就可以自由切换语言了。
SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法相关推荐
- SpringBoot 实现国际化 SpringBoot配置国际化 SpringBoot 国际化 springboot实现国际化 springboot配置国际化 springboot国际化代码实现
SpringBoot 实现国际化,不使用 spring i18n实现方式 配置 全局语言地区拦截器配置 将拦截器注册 多语言实现 多语言接口 中文语言接口实现类 英文语言接口实现类 初始化 使用 配置 ...
- SpringBoot实现i18n国际化配置(超详细之跟着走就会系列)
一.新增国际化资源文件 在resources文件下新建i18n文件,并新建国际化资源文件.如图: 点击新增Resource Bundle文件. 我们在Resource bundle base name ...
- 自学SpringBoot之国际化配置相关的坑
前两天在b站上自学SpringBoot的国际化配置时,浏览器总是报乱码的错,类似??login.tip_zh_CN??, 由于b站上基本都是使用Ideal,我用的是sts2.2.5版本,难免遇到不同, ...
- SpringBoot国际化配置(i8n配置)未生效(完美解决)
最近在整理springBoot国际化时,发现国际化没有生效,通过报错提示在 MessageTag -> doEndTag处打断点 最后发现messageSource并不是ResourceBund ...
- SpringBoot 系列教程(四十六):SpringBoot集成i18n国际化配置
一.概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationalization ...
- Springboot与国际化(i18n)
文章目录 一.什么是国际化? 二.前端联合后端实现国际化. 三.服务端国际化(Springboot内置国际化) 一.什么是国际化? 国际化就是在不修改内部代码的情况下,根据不同语言及地区显示相应的语言 ...
- SpringBoot -> 国际化(i18n)
文章目录 上结果 1.准备工作 配置文件编写 配置文件生效探究 配置页面国际化值 配置国际化解析 总结:我可能骗了你们,这个看了我都总结不出什么东西 上结果 1.准备工作 先在IDEA中统一设置pro ...
- Struts2的国际化(一)-国际化资源文件的配置及国际化信息的访问
一.概述: 1)国际化是一种技术:在程序设计领域,把在无需改写源代码即可让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化. 2)本地化是一个动作:与国际化对应的是本地化,指让一个具备国际 ...
- SpringBoot - 资源国际化
SpringBoot - 资源国际化 2018年06月19日 11:00:31 流烟默 阅读数:344 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net ...
最新文章
- win10下使用certutil工具对文件的SHA1、MD5和SHA256哈希结果做验证(超简单,附图)
- Apache用户认证配置文件
- invalidate(true) 图形不显示_2D图像界面-ATI 图形界面卡
- php 双向加密解密,一个php双向加密解密法
- latex 波浪线_湖熟镇月牙刀波浪刀带哪家好厂家
- 深度技术win11旗舰稳定版v2021.07
- 【笔记】C++自学笔记系列02:类的组合与类的友元
- html5 plus.push,Push - 《HTML5 Plus API 指南》 - 书栈网 · BookStack
- 基于tensorflow 1.x 的bert系列预训练模型工具
- 查看name的状态,是属于active还是standby
- java登录网站_如何使用Java登录网站
- kotlin中文开发文档
- javascript编写acm算法题
- 国际电话号码的区号mysql数据表
- SEO 基础知识遇上圣诞节
- 北京化工大学计算机考研资料汇总
- 求圆和直线之间的交点
- java数组初始化 new_java 数组初始化
- 游戏模型外包-【精刚石数位】
- vue3小兔鲜商城项目学习笔记+资料分享06