org.springframework.web.server.i18n

## Class AcceptHeaderLocaleContextResolver

- java.lang.Object
- - org.springframework.web.server.i18n.AcceptHeaderLocaleContextResolver

- All Implemented Interfaces:
    LocaleContextResolver

      public class AcceptHeaderLocaleContextResolver
      extends Object
      implements LocaleContextResolver

  `LocaleContextResolver` implementation that simply uses the primary locale specified in the "Accept-Language" header of the HTTP request (that is, the locale sent by the client browser, normally that of the client's OS).

  Note: Does not support `setLocaleContext(org.springframework.web.server.ServerWebExchange, org.springframework.context.i18n.LocaleContext)`, since the accept header can only be changed through changing the client's locale settings.

  Since:
    5.0
  Author:
    Sebastien Deleuze, Juergen Hoeller
  See Also:
    `HttpHeaders.getAcceptLanguageAsLocales()`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AcceptHeaderLocaleContextResolver()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Locale` | `getDefaultLocale()` The configured default locale, if any.
    `List<Locale>` | `getSupportedLocales()` Return the configured list of supported locales.
    `LocaleContext` | `resolveLocaleContext(ServerWebExchange exchange)` Resolve the current locale context via the given exchange.
    `void` | `setDefaultLocale(Locale defaultLocale)` Configure a fixed default locale to fall back on if the request does not have an "Accept-Language" header (not set by default).
    `void` | `setLocaleContext(ServerWebExchange exchange, LocaleContext locale)` Set the current locale context to the given one, potentially including a locale with associated time zone information.
    `void` | `setSupportedLocales(List<Locale> locales)` Configure supported locales to check against the requested locales determined via `HttpHeaders.getAcceptLanguageAsLocales()`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AcceptHeaderLocaleContextResolver

          public AcceptHeaderLocaleContextResolver()

  - ### Method Detail

    - #### setSupportedLocales

          public void setSupportedLocales(List<Locale> locales)

      Configure supported locales to check against the requested locales determined via `HttpHeaders.getAcceptLanguageAsLocales()`.
      Parameters:
        `locales` - the supported locales

    - #### getSupportedLocales

          public List<Locale> getSupportedLocales()

      Return the configured list of supported locales.

    - #### setDefaultLocale

          public void setDefaultLocale(@Nullable
                                       Locale defaultLocale)

      Configure a fixed default locale to fall back on if the request does not have an "Accept-Language" header (not set by default).
      Parameters:
        `defaultLocale` - the default locale to use

    - #### getDefaultLocale

          @Nullable
          public Locale getDefaultLocale()

      The configured default locale, if any.

      This method may be overridden in subclasses.

    - #### resolveLocaleContext

          public LocaleContext resolveLocaleContext(ServerWebExchange exchange)

      Description copied from interface: `LocaleContextResolver`
      Resolve the current locale context via the given exchange.

      The returned context may be a `TimeZoneAwareLocaleContext`, containing a locale with associated time zone information. Simply apply an `instanceof` check and downcast accordingly.

      Custom resolver implementations may also return extra settings in the returned context, which again can be accessed through downcasting.

      Specified by:
        `resolveLocaleContext` in interface `LocaleContextResolver`
      Parameters:
        `exchange` - current server exchange
      Returns:
        the current locale context (never `null`)

    - #### setLocaleContext

          public void setLocaleContext(ServerWebExchange exchange,
                                       @Nullable
                                       LocaleContext locale)

      Description copied from interface: `LocaleContextResolver`
      Set the current locale context to the given one, potentially including a locale with associated time zone information.
      Specified by:
        `setLocaleContext` in interface `LocaleContextResolver`
      Parameters:
        `exchange` - current server exchange
        `locale` - the new locale context, or `null` to clear the locale
      See Also:
        `SimpleLocaleContext`, `SimpleTimeZoneAwareLocaleContext`