史上最佳springboot Locale 国际化方案

网友投稿 621 2022-12-20

史上最佳springboot Locale 国际化方案

史上最佳springboot Locale 国际化方案

目录1、国际化资源2、编写配置3、用法详解4、测试

1、国际化资源

使用IDEA创建资源组

2、编写配置

applhttp://ication.yml 增加国际化目录配置

增加配置类 从请求头获取多语言关键字

/**

* 国际化配置

*

* @author Lion Li

*/

@Configuration

public class I18nConfig {

@Bean

public LocaleResolver localeResolver() {

return new I18nLocaleResolver();

}

/**

* 获取请求zSVykIu头国际化信息

*/

static class I18nLocaleResolver implements LocaleResolver {

@NotNull

@Override

public Locale resolveLocale(HttpServletRequest httpServletRequest) {

String language = httpServletRequest.getHeader("content-language");

Locale locale = Locale.getDefault();

if (StrUtil.isNotBlank(language)) {

String[] split = language.split("_");

locale = new Locale(split[0], split[1]);

}

return locale;

}

@Override

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

}

}

}

3、用法详解

在 Header 请求头 增加上下文语言参数 content-language

参数需与国际化配置文件后缀对应

如 zh_CN en_US 等

4、测试

编写测试类

/**

* 测试国际化

*

* @author Lion Li

*/

@RestController

@Rehttp://questMapping("/demo/i18n")

public class TestI18nController {

@Autowired

private MessageSource messageSource;

/**

* 通过code获取国际化内容

* code为 messages.properties 中的 key

*

* 测试使用 user.register.success

*/

@GetMapping()

public String get(String code) {

return messageSource.getMessage(code, new Object[]{}, LocaleContextHolder.getLocale());

}

}

测试接口

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:车联网物联网政策(车联网物联网政策研究)
下一篇:车联网物联网云计算股票(云车物联网科技有限公司)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~