|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opencms.i18n.CmsLocaleManager
public class CmsLocaleManager
Manages the locales configured for this OpenCms installation.
Locale configuration is done in opencms.xml
.
Field Summary | |
---|---|
static java.lang.String |
LOCALE_HANDLER
Runtime property name for locale handler. |
static java.lang.String |
PARAMETER_ENCODING
Request parameter to force encoding selection. |
static java.lang.String |
PARAMETER_LOCALE
Request parameter to force locale selection. |
Constructor Summary | |
---|---|
CmsLocaleManager()
Initializes a new CmsLocaleManager, called from the configuration. |
|
CmsLocaleManager(java.util.Locale defaultLocale)
Initializes a new CmsLocaleManager, used for OpenCms runlevel 1 (unit tests) only. |
Method Summary | |
---|---|
void |
addAvailableLocale(java.lang.String localeName)
Adds a locale to the list of available locales. |
void |
addDefaultLocale(java.lang.String localeName)
Adds a locale to the list of default locales. |
void |
cmsEvent(CmsEvent event)
Implements the CmsEvent interface, the locale manager the events to clear the list of cached keys . |
java.util.List |
getAvailableLocales()
Returns the list of available locales configured in. |
java.util.List |
getAvailableLocales(CmsObject cms,
java.lang.String resourceName)
Returns an array of available locale names for the given resource. |
java.util.List |
getAvailableLocales(java.lang.String names)
Returns a List of available locales from a comma separated string of locale names. |
java.util.Locale |
getBestMatchingLocale(java.util.Locale requestedLocale,
java.util.List defaults,
java.util.Collection available)
Tries to find the given requested locale (eventually simplified) in the collection of available locales, if the requested locale is not found it will return the first match from the given list of default locales. |
static java.util.Locale |
getDefaultLocale()
Returns the default locale configured in opencms-system.xml . |
java.util.Locale |
getDefaultLocale(CmsObject cms,
java.lang.String resourceName)
Returns the "best" default locale for the given resource. |
java.util.List |
getDefaultLocales()
Returns the list of default locale names configured in opencms.properties . |
java.util.List |
getDefaultLocales(CmsObject cms,
java.lang.String resourceName)
Returns an array of default locales for the given resource. |
java.util.Locale |
getFirstMatchingLocale(java.util.List locales,
java.util.Collection available)
Returns the first matching locale (eventually simplified) from the available locales. |
CmsI18nInfo |
getI18nInfo(javax.servlet.http.HttpServletRequest req,
CmsUser user,
CmsProject project,
java.lang.String resource)
Returns the the appropriate locale/encoding for a request, using the "right" locale handler for the given resource. |
static java.util.Locale |
getLocale(java.lang.String localeName)
Returns a locale created from the given full name. |
I_CmsLocaleHandler |
getLocaleHandler()
Returns the configured locale handler. |
static java.lang.String |
getLocaleNames(java.util.List localeNames)
Returns the locale names from the given List of locales as a comma separated String. |
static java.util.List |
getLocales(java.util.List localeNames)
Returns a List of locales from an array of locale names. |
static java.util.List |
getLocales(java.lang.String localeNames)
Returns a List of locales from a comma-separated string of locale names. |
static java.lang.String |
getResourceEncoding(CmsObject cms,
CmsResource res)
Returns the content encoding set for the given resource. |
void |
initialize(CmsObject cms)
Initializes this locale manager with the OpenCms system configuration. |
boolean |
isInitialized()
Returns true if this locale manager is fully initialized. |
void |
setLocaleHandler(I_CmsLocaleHandler localeHandler)
Sets the configured locale handler. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String LOCALE_HANDLER
public static final java.lang.String PARAMETER_ENCODING
public static final java.lang.String PARAMETER_LOCALE
Constructor Detail |
---|
public CmsLocaleManager()
public CmsLocaleManager(java.util.Locale defaultLocale)
defaultLocale
- the default locale to useMethod Detail |
---|
public static java.util.Locale getDefaultLocale()
opencms-system.xml
.The default locale is the first locale int the list of configured default locales.
public static java.util.Locale getLocale(java.lang.String localeName)
The full name must consist of language code, country code(optional), variant(optional) separated by "_".
This method will always return a valid Locale! If the provided locale name is not valid (i.e. leads to an Exception when trying to create the Locale, then the configured default Locale is returned.
localeName
- the full locale name
null
if not availablepublic static java.lang.String getLocaleNames(java.util.List localeNames)
For example, if the input List contains
and
Locale.ENGLISH
, the result will be Locale.GERMANY
"en, de_DE"
.
An empty String is returned if the input is null
, or contains no elements.
localeNames
- the locale names to generate a String from
public static java.util.List getLocales(java.util.List localeNames)
localeNames
- array of locale names
public static java.util.List getLocales(java.lang.String localeNames)
localeNames
- a comma-separated string of locale names
public static final java.lang.String getResourceEncoding(CmsObject cms, CmsResource res)
The content encoding is controlled by the property CmsPropertyDefinition.PROPERTY_CONTENT_ENCODING
,
which can be set on the resource or on a parent folder for all resources in this folder.
In case no encoding has been set, the default encoding from
CmsSystemInfo.getDefaultEncoding()
is returned.
cms
- the current OpenCms user contextres
- the resource to read the encoding for
public void addAvailableLocale(java.lang.String localeName)
localeName
- the locale to addpublic void addDefaultLocale(java.lang.String localeName)
localeName
- the locale to addpublic void cmsEvent(CmsEvent event)
cmsEvent
in interface I_CmsEventListener
event
- CmsEvent that has occurredpublic java.util.List getAvailableLocales()
en, de
public java.util.List getAvailableLocales(CmsObject cms, java.lang.String resourceName)
cms
- the current cms permission objectresourceName
- the name of the resource
public java.util.List getAvailableLocales(java.lang.String names)
All names are filtered against the allowed available locales
configured in opencms.properties
.
names
- a comma-separated String of locale names
public java.util.Locale getBestMatchingLocale(java.util.Locale requestedLocale, java.util.List defaults, java.util.Collection available)
requestedLocale
- the requested locale, if this (or a simplified version of it) is available it will be returneddefaults
- a list of default locales to use in case the requested locale is not availableavailable
- the available locales to find a match in
public java.util.Locale getDefaultLocale(CmsObject cms, java.lang.String resourceName)
cms
- the current cms permission objectresourceName
- the name of the resource
getDefaultLocales(CmsObject, String)
public java.util.List getDefaultLocales()
opencms.properties
.
en, de
public java.util.List getDefaultLocales(CmsObject cms, java.lang.String resourceName)
Use this method in case you need to get all available default options for a resource,
if you just need the "best" default locale for a resource,
use
.getDefaultLocale(CmsObject, String)
cms
- the current cms permission objectresourceName
- the name of the resource
getDefaultLocale(CmsObject, String)
public java.util.Locale getFirstMatchingLocale(java.util.List locales, java.util.Collection available)
locales
- must be an ascending sorted list of locales in order of preferenceavailable
- the available locales to find a match in
public CmsI18nInfo getI18nInfo(javax.servlet.http.HttpServletRequest req, CmsUser user, CmsProject project, java.lang.String resource)
Certain system folders (like the Workplace) require a special locale handler different from the configured handler. Use this method if you want to resolve locales exactly like the system does for a request.
req
- the current http requestuser
- the current userproject
- the current projectresource
- the URI of the requested resource (with full site root added)
public I_CmsLocaleHandler getLocaleHandler()
This handler is used to derive the appropriate locale/encoding for a request.
public void initialize(CmsObject cms)
cms
- an OpenCms context object that must have been initialized with "Admin" permissionspublic boolean isInitialized()
true
if this locale manager is fully initialized.This is required to prevent errors during unit tests, simple unit tests will usually not have a fully initialized locale manager available.
public void setLocaleHandler(I_CmsLocaleHandler localeHandler)
localeHandler
- the locale handler to set
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |