第09篇:MessageSource国际化

西魏陶渊明 ... 2022-9-4 Spring Framework 小于 1 分钟

公众号: 西魏陶渊明
CSDN: https://springlearn.blog.csdn.net (opens new window)

天下代码一大抄, 抄来抄去有提高, 看你会抄不会抄!

# 一、前言

# 1.1 i18n

12

# 二、API

# 2.1 Locale

# 2.2 文件命名规范

AcceptLanguage en_US 语言解析器

LanguageTag.parse Locale#forLanguageTag en_US 要转成 en-US 中划线

# LocaleResolver#resolveLocale

@Override
	public Locale resolveLocale(HttpServletRequest request) {
		Locale defaultLocale = getDefaultLocale();
		if (defaultLocale != null && request.getHeader("Accept-Language") == null) {
			return defaultLocale;
		}
		Locale requestLocale = request.getLocale();
		List<Locale> supportedLocales = getSupportedLocales();
		if (supportedLocales.isEmpty() || supportedLocales.contains(requestLocale)) {
			return requestLocale;
		}
		Locale supportedLocale = findSupportedLocale(request, supportedLocales);
		if (supportedLocale != null) {
			return supportedLocale;
		}
		return (defaultLocale != null ? defaultLocale : requestLocale);
	}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 2.3 Spring中体系

  • MessageSource

  • HierarchicalMessageSource

  • MessageSourceSupport

  • AbstractMessageSource

  • StaticMessageSource

  • AbstractResourceBasedMessageSource

  • ResourceBundleMessageSource

  • ReloadableResourceBundleMessageSource

# 三、使用

# 后端渲染页面场景

# 前后端分离

# 3.1 spring实现原理

# 3.2 springboot中使用

spring.mvc.locale-resolver=accept_header
spring.messages.basename=message
1
2

本文由西魏陶渊明版权所有。如若转载,请注明出处:西魏陶渊明