国际化

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 @ 2022-05-01 20:10  磕伴  阅读(49)  评论(0)    收藏  举报