1、国际化文件格式
文件名_语言编码_国家编码.properties
lan_zh_CN.properties 中文
lan_en_US.properties 英文
lan.properties 默认
在resources文件夹下创建一个i18n文件夹,创建上面三个文件
2、编写配置文件
3、修改页面
注意添加<html lang="en" xmlns:th="">
<form><input type="text" th:placeholder="#{lan.username}"><br></form>
4、添加切换按钮
<a th:href="@{/lan(l='zh-CN')}">中文</a><a th:href="@{/lan(l='en-US')}">英文</a>
5、后台处理请求
@Controllerpublic class TestController {@RequestMapping("/lan")public String lan(){return "index";}}
6、编写区域解析器
package com.dhf.springboot2;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.LocaleResolver;import java.util.Locale;@Configuration//自定义解析器public class MyLocalResolver implements LocaleResolver {@Overridepublic Locale resolveLocale(HttpServletRequest request) {//返回国际化对象//可以请求头信息中获取国际化信息:语言编码、国家编码String header=request.getHeader("Accept-Language");//手动选择:参数里面有国际化信息l='zh-CN'String l=request.getParameter("l");//定义变量Locale locale=null;//判断String[] split;if(l!=null){split = l.split("-");}else{split = header.split(",")[0].split("-");}locale=new Locale(split[0],split[1]);return locale;}@Overridepublic void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {}@Beanpublic LocaleResolver localeResolver(){return new MyLocalResolver();}}