Class AcceptHeaderLocaleResolver
- All Implemented Interfaces:
LocaleResolver
LocaleResolver
implementation that looks for a match between locales
in the Accept-Language
header and a list of configured supported
locales.
See setSupportedLocales(List)
for further details on how
supported and requested locales are matched.
Note: This implementation does not support setLocale(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, java.util.Locale)
since the
Accept-Language
header can only be changed by changing the client's
locale settings.
- Since:
- 27.02.2003
- Author:
- Juergen Hoeller, Rossen Stoyanchev
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionGet the configured list of supported locales.resolveLocale
(HttpServletRequest request) Resolve the current locale via the given request.void
setLocale
(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable Locale locale) Set the current locale to the given one.void
setSupportedLocales
(List<Locale> locales) Configure the list of supported locales to compare and match againstrequested locales
.Methods inherited from class org.springframework.web.servlet.i18n.AbstractLocaleResolver
getDefaultLocale, setDefaultLocale
-
Constructor Details
-
AcceptHeaderLocaleResolver
public AcceptHeaderLocaleResolver()
-
-
Method Details
-
setSupportedLocales
Configure the list of supported locales to compare and match againstrequested locales
.In order for a supported locale to be considered a match, it must match on both country and language. If you want to support a language-only match as a fallback, you must configure the language explicitly as a supported locale.
For example, if the supported locales are
["de-DE","en-US"]
, then a request for"en-GB"
will not match, and neither will a request for"en"
. If you want to support additional locales for a given language such as"en"
, then you must add it to the list of supported locales.If there is no match, then the
defaultLocale
is used, if configured, or otherwise falling back onServletRequest.getLocale()
.- Parameters:
locales
- the supported locales- Since:
- 4.3
-
getSupportedLocales
Get the configured list of supported locales.- Since:
- 4.3
-
resolveLocale
Description copied from interface:LocaleResolver
Resolve the current locale via the given request.Can return a default locale as fallback in any case.
- Parameters:
request
- the request to resolve the locale for- Returns:
- the current locale (never
null
)
-
setLocale
public void setLocale(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable Locale locale) Description copied from interface:LocaleResolver
Set the current locale to the given one.- Parameters:
request
- the request to be used for locale modificationresponse
- the response to be used for locale modificationlocale
- the new locale, ornull
to clear the locale
-