国际化
1.配置i18n文件(internationalization)
点击资源包可以有不同的语言设置
3.需要在项目中进行按钮自动切换的话,先用url传递特征参数,比如中文('zh_CN'),英文(en_US),url会被一个LocaleResolver组件过滤,判断若有相关信息,则执变换为对应的语言
前端(index界面发送请求给index,附带参数 <Thymeleaf >)
页面的静态资源全部被Thymeleaf 接管
<a class="btn btn-sm" th:href="@{/index.html(l='zh_CN')}">中文</a> <a class="btn btn-sm" th:href="@{/index.html(l='en_US')}">English</a>
JAVA自定义LocaleResolver规则
import org.springframework.util.StringUtils; import org.springframework.web.servlet.LocaleResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Locale; //实现国际化语言切换 public class MyLocaleResolver implements LocaleResolver { //解析请求 @Override public Locale resolveLocale(HttpServletRequest request) { String language = request.getParameter("l"); Locale locale = Locale.getDefault(); // 如果没有获取到就使用系统默认的 //如果请求链接不为空 if (!StringUtils.isEmpty(language)){ //分割请求参数 String[] split = language.split("_"); //国家,地区 locale = new Locale(split[0],split[1]); } return locale; } @Override public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) { } }
注册相关组件
@Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); }
标签:
springboot
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术