SpringBoot:国际化组件

本文详细介绍了如何在SpringBoot项目中实现国际化组件,包括创建i18n文件夹和资源配置,自定义LocaleResolver解析器,以及前端Thymeleaf的使用。通过设置不同语言的资源配置文件,实现了页面语言的切换,展示了中文和英文两种版本的效果。
摘要由CSDN通过智能技术生成

国际化组件

用于将页面的语言,切换为多国语言。

使用步骤

将项目设置为utf-8的编码格式

在根目录下建立名为i18n的文件夹,文件夹下建立配置文件

注意:

  • 当创建第二文件时,idea会自动创建资源包
  • 在资源包右键创建后面的配置文件

 编写配置文件(点击资源包即可)Resource Bundle

 在配置文件中添加:将资源文件配置进去

spring.messages.basename=i18n/login

自定义本地解析器 实现LocaleResolver接口

public class MyLocalResolver implements LocaleResolver {
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
//        获取请求
        String localName = request.getParameter("localName");
//        没有指定则使用默认设置
        Locale aDefault = Locale.getDefault();
        if (localName!=null){
            String[] s = localName.split("_");
            //zh_CN 国家_地区
            aDefault=new Locale(s[0],s[1]);
        }
        return aDefault;
    }

    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {

    }
}

将自定义本地解析器交给spring管理(使用@Bean即可)

@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
    //添加视图解析器
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
        registry.addViewController("/index.html").setViewName("index");
        registry.addViewController("/login.html").setViewName("login");
    }
//    方法名称不能改变
    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocalResolver();
    }
}

注意:方法名localeResolver是不可以改变的,springboot会自动检测该方法存不存在,如果存在就会修改国际化组件

前端代码

使用的是thymeleaf语法:

  • url需要’@{}‘的格式,国际消息需要使用’#{}‘这个格式
 <script th:src="@{js/vendor/modernizr-2.8.3.min.js}"></script>
<div class="form-group">
 <label class="control-label" for="username">[[#{login.username}]]</label>
 <input type="text" th:placeholder="#{login.username}" title="Please enter you username" required="" value="" name="username" id="username" class="form-control">
 </div>

调试结果:

中文版

 英文版

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值