欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

史上最佳springboot Locale 国际化方案

时间:2022-07-16 09:42:41|栏目:JAVA代码|点击:

1、国际化资源

使用IDEA创建资源组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、编写配置

application.yml 增加国际化目录配置

在这里插入图片描述

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

/**
 * 国际化配置
 *
 * @author Lion Li
 */
@Configuration
public class I18nConfig {

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

	/**
	 * 获取请求头国际化信息
	 */
	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
@RequestMapping("/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());
	}
}

测试接口

在这里插入图片描述
在这里插入图片描述

上一篇:Java编程环境搭建和变量基本使用图文教程

栏    目:JAVA代码

下一篇:springboot实现maven多模块和打包部署

本文标题:史上最佳springboot Locale 国际化方案

本文地址:http://www.codeinn.net/misctech/208002.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有