java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot国际化多语言配置

springboot国际化多语言配置方式

作者:寂寞旅行

这篇文章主要介绍了springboot国际化多语言配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

概要

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

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

springboot项目为例

1 新建路径/文件

效果图

内容

文件内容如下:

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");
    }
}

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

三种效果图

总结

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

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

您可能感兴趣的文章:
阅读全文