Package org.springframework.web.servlet

# Interface LocaleResolver

All Known Subinterfaces:
  `LocaleContextResolver`

All Known Implementing Classes:
  `AbstractLocaleContextResolver`, `AbstractLocaleResolver`, `AcceptHeaderLocaleResolver`, `CookieLocaleResolver`, `FixedLocaleResolver`, `SessionLocaleResolver`

public interface LocaleResolver
Interface for web-based locale resolution strategies that allows for both locale resolution via the request and locale modification via request and response.

This interface allows for implementations based on request, session, cookies, etc. The default implementation is `AcceptHeaderLocaleResolver`, simply using the request's locale provided by the respective HTTP header.

Use `RequestContext.getLocale()` to retrieve the current locale in controllers or views, independent of the actual resolution strategy.

Note: As of Spring 4.0, there is an extended strategy interface called `LocaleContextResolver`, allowing for resolution of a `LocaleContext` object, potentially including associated time zone information. Spring's provided resolver implementations implement the extended `LocaleContextResolver` interface wherever appropriate.

Since:
  27.02.2003
Author:
  Juergen Hoeller
See Also:
  - `LocaleContextResolver`
  - `LocaleContextHolder`
  - `RequestContext.getLocale()`
  - `RequestContextUtils.getLocale(jakarta.servlet.http.HttpServletRequest)`

## Method Summary

Modifier and Type
Method
Description
`Locale`
`resolveLocale(HttpServletRequest request)`
Resolve the current locale via the given request.
`void`
`setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale)`
Set the current locale to the given one.

## Method Details

### resolveLocale

Locale resolveLocale(HttpServletRequest request)
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

void setLocale(HttpServletRequest request, @Nullable HttpServletResponse response, @Nullable Locale locale)
Set the current locale to the given one.

Parameters:
  `request` - the request to be used for locale modification
  `response` - the response to be used for locale modification
  `locale` - the new locale, or `null` to clear the locale
Throws:
  `UnsupportedOperationException` - if the LocaleResolver implementation does not support dynamic changing of the locale