创建预置文件文本内容
1.resources下创建目录internationalization 即国际化目录 2.在internationalization 目录下创建properties文件,我这边是signUp.properties 、signUp_zh_CN.properties 、signUp_en_US.properties 。 3.在Resource Bundle (注意下图左下角圈起来的Resource Bundle,如果没有点开File->settings,去Marketplace中下载Resource Bundle Editor)中添加相应html页面的各个值。
4.如下图所示共有7处,所以上图我添加了7个signUp开头的变量,这代表7处地方可以实现中英文切换
Thymeleaf修改前端使其获得预置文本内容
1.application.properties中设置预置文本来源
spring.messages.basename=
第一步在resource下创建的国际化目录.功能名称(我这边是signUp)
2.找到前端的第一个内容块,通过Thymeleaf设置 发现刷新后改变了,第一块内容变成了我预置的中文。
一些html的标签怎么用thymeleaf传文字
html页面设置跳转标签和传值
<a th:href="@{/signup.html(lang='zh_CN')}">中文 </a> <a th:href="@{/signup.html(lang='en_US')}"> English</a>
创建一个MyLocaleResolver配置文件
利用Locale的一系列方法,大致过程为:解析请求,获取语言和地区,拆分并创建Locale对象,范围新对象。
```java
package com.example.project.config;
import org.springframework.web.servlet.LocaleResolver;
import org.thymeleaf.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
public class MyLocaleResolver implements LocaleResolver {
@Override
//解析request请求
public Locale resolveLocale(HttpServletRequest request) {
//获取请求中的参数链接
String language = request.getParameter("lang");
//如果没有使用默认
Locale locale = Locale.getDefault();
//如果请求链接携带国际化参数
if(!StringUtils.isEmpty(language)){
//zh_CN en_US
String[] split = language.split("_");//把拆开的分别存入数组中
//根据split数组获取语言和国家
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
}
}
在MvcConfiguration中注册bean
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
|