springboot国际化多语言配置方式

 更新时间:2024年04月03日 11:06:39   作者:寂寞旅行  
这篇文章主要介绍了springboot国际化多语言配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

概要

项目中有时候会用到多语言的业务场景;

一般来说都是通过后端实现的,将先有内容替换为适用的环境语言;

springboot项目为例

1 新建路径/文件

  • 新建路径static/i18n
  • 新建文件: messages.properties messages_en_US.properties messages_zh_CN.properties

效果图

内容

文件内容如下:

demo=登录demo=login

2 新建两个配置类

LocalConfig 配置默认语言解析, 指定获取参数名

@Configuration
public class LocalConfig {

    /**
     * 默认解析器 其中locale表示默认语言
     */
    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver localeResolver = new SessionLocaleResolver();
        localeResolver.setDefaultLocale(Locale.CHINA);
        return localeResolver;
    }

    /**
     * 默认拦截器 其中lang表示切换语言的参数名
     */
    @Bean
    public WebMvcConfigurer localeInterceptor() {
        return new WebMvcConfigurer() {
            @Override
            public void addInterceptors(InterceptorRegistry registry) {
                LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor();
                localeInterceptor.setParamName("lang");  //拦截lang参数
                registry.addInterceptor(localeInterceptor);
            }
        };
    }

}

LocalUtil 将springbean获取并用于静态方法,方便后续调用

@Component
public class LocalUtil {

    private static MessageSource messageSource;

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

    /**
     * 获取单个国际化翻译值
     */
    public static String get(String msgKey) {
        try {
            return messageSource.getMessage(msgKey, null, LocaleContextHolder.getLocale());
        } catch (Exception e) {
            return msgKey;
        }
    }
}

搞一个控制器测试

@RestController
@RequestMapping("lang")
public class LangController {

    @RequestMapping("get")
    public String get(){
        return LocalUtil.get("demo");
    }
}

咱们直接访问这个接口看效果

  • 直接访问,返回登录(默认解析)
  • 传参数en_US,返回 login (英文)
  • 传参数zh_CN,返回登录(中文)

三种效果图

总结

如此做之后,就可以实现,多语言了,不过要做的事情还很多,相当于你所有页面要展示的词汇,都需要放到这里三个配置文件中搞一遍,才可以

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring数据源及配置文件数据加密实现过程详解

    Spring数据源及配置文件数据加密实现过程详解

    这篇文章主要介绍了Spring数据源及配置文件数据加密实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • spring  mybatis多数据源实例详解

    spring mybatis多数据源实例详解

    本文主要介绍sping mybatis多数据源处理,在开发过程中经常会遇到多个数据库,这里给大家举例说明如何处理,希望能帮助有需要的小伙伴
    2016-07-07
  • Java 实现判定顺序表中是否包含某个元素(思路详解)

    Java 实现判定顺序表中是否包含某个元素(思路详解)

    这篇文章主要介绍了Java 实现判定顺序表中是否包含某个元素,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 关于JAVA11中图片与BASE64相互转换的实现

    关于JAVA11中图片与BASE64相互转换的实现

    这篇文章主要介绍了关于JAVA11中图片与BASE64相互转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 如何在 Spring Boot 中使用 OpenAI ChatGPT API

    如何在 Spring Boot 中使用 OpenAI ChatGPT API

    这篇文章主要介绍了如何在Spring Boot中使用OpenAI ChatGPT API,我们探索了 OpenAI ChatGPT API 以生成对提示的响应,我们创建了一个 Spring Boot 应用程序,它调用 API 来生成对提示的响应,需要的朋友可以参考下
    2023-08-08
  • 使用Java构造和解析Json数据的两种方法(详解一)

    使用Java构造和解析Json数据的两种方法(详解一)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。接下来通过本文给大家介绍使用Java构造和解析Json数据的两种方法,需要的朋友参考下吧
    2016-03-03
  • java7改善后的异常处理

    java7改善后的异常处理

    在本篇文章里小编给大家整理的是关于java7改善后的异常处理知识点总结,有需要的朋友们参考下。
    2019-11-11
  • Spring Boot实现热部署的实例方法

    Spring Boot实现热部署的实例方法

    在本篇文章里小编给大家整理的是关于Spring Boot实现热部署的实例方法和实例,需要的朋友们可以参考下。
    2020-02-02
  • SpringBoot如何使用redis

    SpringBoot如何使用redis

    文章主要介绍了如何在Spring Boot项目中配置Redis并解决乱码问题,同时提供了使用Redis操作不同类型数据(如String、List、Hash、Set、ZSet和Bitmap)的代码示例
    2025-03-03
  • 解析HikariCP一百行代码轻松掌握多线程

    解析HikariCP一百行代码轻松掌握多线程

    这篇文章主要为大家介绍了HikariCP一百行代码解析,轻松掌握多线程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论