springboot配置i18n国际化

SpringBoot -> 国际化(i18n) 文章目录上结果1.准备工作配置文件编写配置文件生效探究配置页面国际化值配置国际化解析总结:我可能骗了你们,这个看了我都总结不出什么东西 上结果 1.准备工作 先在IDEA中统一设置properties的编码问题! 编写国际化配置文件,抽取页面需要显示的国际化页面消息。我们可以去登录页面查看一下,哪些内容我们需要编写国际化的配置! 配置文件编写 1、我们在resources资源文件下新建一个i18n目录,存放国际化配置文件 **为什么是i18n的目录:**英语单词中i后面有18个字母最后一个是n,所以是i 阅读详情

springboot实现i18n国际化,无需引入其他jar包,springboot已经内置了,只需要配置即可。

国际化主要是根据不同的国际语言来决定返回数据的语言。

添加properties文件,作为返回数据的具体内容,key-value形式,key为代码中的返回值,value为实际返回值

messages.properties(默认,必须有,内容可以为空)

messages_zh_CN.properties(中文的数据)

 messages_en_US.properties(英文的数据)

 结构为:

在 application.properties/application.yml中添加i18n文件路径:

spring.messages.basename=i18n/messages (messages为文件前缀,这样写就行)

接下来就是写配置类来根据每次request请求header里面的Accept-Language来设置返回语言

import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

@Configuration
public class LanguageLocalConfig implements LocaleResolver {

    @Override
    public Locale resolveLocale(HttpServletRequest request) {
        Locale locale = Locale.CHINA;
        String language = request.getHeader("Accept-Language");
        if (StringUtils.isNotBlank(language)) {
            String[] splitLanguage = language.split("_");
            if (splitLanguage.length > 1) {
                locale = new Locale(splitLanguage[0], splitLanguage[1]);
            }
        }
        return locale;
    }

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

    @Bean
    public LocaleResolver localeResolver() {
        return new LanguageLocalConfig();
    }
}

最后写个工具类来调用,获取对应语言的返回值

import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;

@Component
public class MessageUtils {
    private static MessageSource messageSource;

    public MessageUtils(MessageSource messageSource) {
        MessageUtils.messageSource = messageSource;
    }

    public static String getMessage(String key) {
        try {
            return messageSource.getMessage(
                    key,
                    null,
                    LocaleContextHolder.getLocale());
        } catch (Exception e) {
            return key;
        }
    }
}

至此,i18n的配置就全部完成了,通过修改header里面的Accept-Language即可完成语言切换。

下面是测试截图

SpringBoot实现i18n国际化配置(超详细之跟着走就会系列) 一、新增国际化资源文件 在resources文件下新建i18n文件,并新建国际化资源文件。如图: 点击新增Resource Bundle文件。 我们在Resource bundle base name处填写国际化文件的名称,笔者此处填“messages”。并点击中间偏右的“+”号,新增国际化语言,此处新增两个语言“zh_CN”,“en_US”。 点击ok保存,看到这样的文件结构,就表示创建成功了: 分别在两个文件中添加 zh_CN: A00001=你好,世界 A00002=你好,JAVA en_US: 阅读详情

相关推荐

SpringBoot 后端 i18n 国际化实现

本文介绍前后端分析项目实现国际化的方案。并详细介绍了在前后端混合实现国际化方案中,Spring Boot 后端是如何实现异常消息的国际化。

trl_jdi的博客 6571

JAVA (Springboot) i18n 国际化语言配置

在 Spring Boot 应用中,国际化(i18n)是一项重要功能,它允许应用根据用户的区域设置(Locale),动态地提供不同语言的内容。这使得应用能够轻松适应全球范围内不同语言和地区用户的需求,增强用户体验。Spring Boot 对国际化的支持基于 Spring 框架的 i18n 功能,并进行了简化配置,使其在 Spring Boot 项目中更易于实现。

weixin_47054648的博客 1万+

JAVA (Springboot) i18n国际化语言配置

在Java中,国际化(Internationalization,通常简称为i18n)是一个过程,它允许应用程序适应不同的语言和地区设置,从而能够支持全球用户。Java平台为国际化提供了强大的支持,包括Locale类、ResourceBundle类以及用于格式化日期、数字和货币的类。

begei的博客 1666

[中级]Springboot thymeleaf 配置i18n国际化

Springboot thymeleaf 配置i18n国际化

私信可回答各种问题~ 4376

【保姆级】SpringBoot项目中的i18n国际化

值得一提的是下面这行这行的作用把(第1个参数)中的名为(第2个参数)的参数用(第3个参数)对象替换掉, 第4个参数是一个布尔类型,表示是否使用方法打破范围限制。

aqin1012的博客 2163

AD7920实战:从咪头到ADC的音频信号采集电路设计全解析(附电路图)

本文详细解析了基于AD7920 ADC芯片的音频信号采集电路设计全流程。从驻极体咪头的驱动、AD8542运放的两级增益与偏置设计,到关键的抗混叠滤波器配置,以及ADC接口的驱动缓冲与PCB布局要点,提供了完整的实战指南与电路图,帮助开发者实现高质量音频信号采集。

red88的博客 803
上一篇: springcloud整合Hystrix,实现接口服务降级
下一篇: 接口方法较少时,优雅写法
摒除杂念
博客等级 码龄9年 193粉丝 123原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值