springboot国际化——基本的使用

前言

前端页面静态资源一般由前端来做国际化,但是涉及交互、报错、动态提示的是有后端返回的,就由后端处理方便。

正文

1、首先,创建语言包

创建i18n目录,在这个目录下右键,创建resource Bundle
在这里插入图片描述
bundle base name作为语言包的前缀,这里写message;
在这里插入图片描述
点击+号,添加语言种类,需要填入语言的tag
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、配置生效的语言种类

先通过直接的配置设置默认语言种类,再通过拦截器拦截每次请求重置语言种类


@Configuration
public class LocaleConfig {

    //设置默认的语言种类——只调一次(配置)
    @Bean
    public SessionLocaleResolver localeResolver(){
        SessionLocaleResolver localeResolver = new SessionLocaleResolver();
        localeResolver.setDefaultLocale(Locale.ENGLISH);
        return localeResolver;
    }

    //注册拦截器——每个请求都根据前端的参数变换 语言种类
    @Bean
    public WebMvcConfigurer localeInterceptor(){
        return new WebMvcConfigurer() {
            @Override
            public void addInterceptors(InterceptorRegistry registry) {
                //封装好的 按参数lang(这个参数和前端约定) 获取国际化的拦截器, 并装入到locale上下文容器中
                LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
                localeInterceptor.setParamName("lang");
                //拦截器注册,自动生效
                registry.addInterceptor(localeInterceptor);
            }
        };
    }
}

这里浅讲一下LocaleContextHolder,类似requestContextHolder,是专门用于国际化的上下文容器

3、配置语言包的路径和编码

在application.yml中配置

spring:
  messages:
    basename: i18n/message
    encoding: utf-8

4、创建接口测试

 @ApiOperation("测试国际化")
    @GetMapping("/localeTest")
    public String testLocale(){
    //第一个参数是key,第二个是入参,第三个是上下文容器获取的语言种类描述
        return Resources.getMessage("helloword","美丽的世界beautiful world!",LocaleContextHolder.getLocale());
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值