springboot页面国际化

springBoot国际化

指页面可以按照中英文切换显示。

在这里插入图片描述

1,配置国际化文件
2.写国际化类添加组件中
3.页面渲染
前期准备
更改idea的页面编码 不然写好之后都乱码
在这里插入图片描述

配置国际化文件

在rescource下创建一个i18n的文件夹
创建三个properties文件
在这里插入图片描述
会自动为我们合成到一个文件下
分别为默认配置 英文配置 中文配置
选择其中一个文件 点击这里
在这里插入图片描述
会变为这样 我们书写不同语言的配置
在这里插入图片描述
配置这个messages的路径

SpringBoot已经自动配置好了管理我们国际化资源文件的组件 ResourceBundleMessageSource我们需要指定文件的位置
指定数据在哪里

spring.messages.basename=i18n.login

写完之后我们用的 Thymeleaf魔板 在前端页面使用标签渲染进去 #{取出数据}

在这里插入图片描述
在这里插入图片描述
自定义地区解析器

想让我们的国际化资源生效,点击按钮切换语言,就需要让我们自己的Locale生效,需要自己注册进去。

自定义一个解析器MyLocaleResolver

//实现接口重写方法
public class MyLocaleResolver implements LocaleResolver {
    //解析请求
    @Override
    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
        //获取请求中的语言参数
        String language = httpServletRequest.getParameter("l");
        Locale locale = Locale.getDefault();//如果没有就使用默认的
        // 如果language不是空的 请求的链接携带了国际化的参数
        if(!StringUtils.isEmpty(language)){
            //zh_CN  分割
            String[] strings = language.split("_");
            //分解出国家 地区
            locale= new Locale(strings[0], strings[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {

    }
}

写好了解析器之后需要交给spring管理
在配置类中注册进去

@Configuration
public class MyMvcConfig implements WebMvcConfigurer {

    //自定义的国际化组件就生效了
    @Bean
    public LocaleResolver localeResolver(){
        return new MyLocaleResolver();
    }
}


在这里插入图片描述
然后我们让页面的按钮发起请求
我们用的是thymeleaf魔板 国际化的标签是 #{}href的标签是@{}
在这里插入图片描述
测试
中文情况下
在这里插入图片描述
点击English后 url变化
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值