国际化

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();
    }

 

posted @   磕伴  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示