Class LocalizationSetterImpl
java.lang.Object
org.apache.tapestry5.internal.services.LocalizationSetterImpl
- All Implemented Interfaces:
LocalizationSetter
Given a set of supported locales, for a specified desired locale, sets the current thread's locale to a supported
locale that is closest to the desired.
-
Constructor Summary
ConstructorsConstructorDescriptionLocalizationSetterImpl
(Request request, PersistentLocale persistentLocale, ThreadLocale threadLocale, String localeNames) -
Method Summary
Modifier and TypeMethodDescriptionReturns a list of supported locales, as per theSymbolConstants.SUPPORTED_LOCALES
symbol.Returns the supported locales packaged as a model.boolean
isSupportedLocaleName
(String localeName) Checks to see if the indicated locale name is a supported locale name (that may have been incorporated into a request path).boolean
setLocaleFromLocaleName
(String localeName) Determines if the provided potential locale name (presumably, extracted from a request URL) is a supported locale name.void
setNonPersistentLocaleFromLocaleName
(String localeName) Allows the locale to be set from a specified locale name (which may be narrowed or defaulted to a support locale).void
setNonPersistentLocaleFromRequest
(Request request) Allows the locale to be set from the locale of the client as determined from the request headers (which may be narrowed or defaulted to a supported locale).Converts a locale name into a Locale.
-
Constructor Details
-
LocalizationSetterImpl
public LocalizationSetterImpl(Request request, PersistentLocale persistentLocale, ThreadLocale threadLocale, @Symbol("tapestry.supported-locales") String localeNames)
-
-
Method Details
-
toLocale
Description copied from interface:LocalizationSetter
Converts a locale name into a Locale. The result is cached.- Specified by:
toLocale
in interfaceLocalizationSetter
-
setLocaleFromLocaleName
Description copied from interface:LocalizationSetter
Determines if the provided potential locale name (presumably, extracted from a request URL) is a supported locale name. A call to this method will always set theThreadLocale
(either to the provided locale, if supported, or to the default locale). If the locale name is supported, it will also set thePersistentLocale
(which may affect how page and event links are generated, to persist the selected locale across requests). Note that locale names are case sensitive.- Specified by:
setLocaleFromLocaleName
in interfaceLocalizationSetter
- Parameters:
localeName
- name of locale to check (which may be blank or not a locale name)- Returns:
- true if the locale name is supported and the
PersistentLocale
was set
-
setNonPersistentLocaleFromLocaleName
Description copied from interface:LocalizationSetter
Allows the locale to be set from a specified locale name (which may be narrowed or defaulted to a support locale). Does not set the persistent locale.- Specified by:
setNonPersistentLocaleFromLocaleName
in interfaceLocalizationSetter
- Parameters:
localeName
- locale in effect for this request
-
setNonPersistentLocaleFromRequest
Description copied from interface:LocalizationSetter
Allows the locale to be set from the locale of the client as determined from the request headers (which may be narrowed or defaulted to a supported locale). Does not set the persistent locale.- Specified by:
setNonPersistentLocaleFromRequest
in interfaceLocalizationSetter
- Parameters:
request
- incoming request
-
getSupportedLocales
Description copied from interface:LocalizationSetter
Returns a list of supported locales, as per theSymbolConstants.SUPPORTED_LOCALES
symbol.- Specified by:
getSupportedLocales
in interfaceLocalizationSetter
-
isSupportedLocaleName
Description copied from interface:LocalizationSetter
Checks to see if the indicated locale name is a supported locale name (that may have been incorporated into a request path). This is an important part of decoding a request.- Specified by:
isSupportedLocaleName
in interfaceLocalizationSetter
-
getSupportedLocalesModel
Description copied from interface:LocalizationSetter
Returns the supported locales packaged as a model. The label for each locale comes fromLocale.getDisplayName(Locale)
(in that locale).- Specified by:
getSupportedLocalesModel
in interfaceLocalizationSetter
-