Spring Boot(五)国际化篇

Spring Boot国际化配置

国际化是一种处理机制,使得你的应用可以适配不同的语言和区域而无需更改源代码。换言之,国际化是为本地化而准备。本文将带你学习在 Spring Boot 中如何实现国际化的细节。

1.配置LocaleResolver

@Configuration
public class LocaleConfig extends WebMvcConfigurerAdapter{

    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        // 默认语言
        slr.setDefaultLocale(Locale.CHINA);
        return slr;
    }
 
    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        // 参数名
        lci.setParamName("lang");
        return lci;
    }
 
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
        super.addInterceptors(registry);
    }

}

2.创建国际化文件

messages.properties
messages_zh_CN.properties
messages_en_US.properties
messages_ja_JP.properties
...


内容如下:
person.name="你好"
person.age=1
weclome="欢迎"

3.配置国际化文件路径

在application.yml 配置国际化文件所在位置

spring:
    messages:
        encoding: UTF-8  
        cache-seconds: 1  
        basename: static/i18n/messages //配置路径和名字,前面不可以加斜杠

4.前端页面调用国际化

在Thymeleaf模板中通过 th:text#{国际化文件的KEY} 即可使用国际化
前端需要传的语言参数为lang示例如下:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="?lang=zh_CN">简体中文</a>
    <a href="?lang=en_US">English(US)</a><br>
    <h2 th:text="#{person.age}"></h2>
    <h2 th:text="#{person.name}"></h2>
    <h2 th:text="#{welcome}"></h2>
</body>
</html>

5.效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XQfVqilt-1605520762132)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201110094600978.png)]

}">

```

5.效果

[外链图片转存中…(img-XQfVqilt-1605520762132)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fsxq8NYl-1605520762133)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201110094609121.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值