| java.lang.Object org.opencms.i18n.CmsLocaleManager
CmsLocaleManager | public class CmsLocaleManager implements I_CmsEventListener(Code) | | Manages the locales configured for this OpenCms installation.
Locale configuration is done in the configuration file opencms-system.xml
in the opencms/system/internationalization node and it's sub-nodes.
author: Carsten Weinholz author: Alexander Kandzior version: $Revision: 1.56 $ since: 6.0.0 |
Method Summary | |
public void | addAvailableLocale(String localeName) | public void | addDefaultLocale(String localeName) | public void | cmsEvent(CmsEvent event) | public List | getAvailableLocales() Returns the list of available
Locale s configured in opencms-system.xml ,
in the opencms/system/internationalization/localesconfigured node.
The list of configured available locales contains all locales that are allowed to be used in the VFS,
for example as languages in XML content files.
The available locales are a superset of the default locales, see
CmsLocaleManager.getDefaultLocales() .
It's possible to reduce the system default by setting the propery
CmsPropertyDefinition.PROPERTY_AVAILABLE_LOCALES
to a comma separated list of locale names. | public List | getAvailableLocales(CmsObject cms, String resourceName) | public List | getAvailableLocales(String names) | public Locale | getBestMatchingLocale(Locale requestedLocale, List defaults, Collection available) | public static Locale | getDefaultLocale() | public Locale | getDefaultLocale(CmsObject cms, String resourceName) Returns the "the" default locale for the given resource.
It's possible to override the system default (see
CmsLocaleManager.getDefaultLocale() ) by setting the property
CmsPropertyDefinition.PROPERTY_LOCALE to a comma separated list of locale names. | public List | getDefaultLocales() Returns the list of default
Locale s configured in opencms-system.xml ,
in the opencms/system/internationalization/localesdefault node.
Since the default locale is always available, the result list will always contain at least one Locale.
It's possible to override the system default by setting the property
CmsPropertyDefinition.PROPERTY_LOCALE to a comma separated list of locale names.
This property is inherited from the parent folders.
The default locales must be a subset of the configured available locales, see
CmsLocaleManager.getAvailableLocales() .
In case an invalid locale has been set with the property, this locale is ignored.
The default locale names are used as a fallback mechanism in case a locale is requested
that can not be found, for example when delivering content form an XML content.
There is a list of default locales (instead of just one default locale) since there
are scenarios when one default is not enough. | public List | getDefaultLocales(CmsObject cms, CmsResource resource) Returns an array of default locales for the given resource.
Since the default locale is always available, the result list will always contain at least one Locale.
It's possible to override the system default (see
CmsLocaleManager.getDefaultLocales() ) by setting the property
CmsPropertyDefinition.PROPERTY_LOCALE to a comma separated list of locale names. | public List | getDefaultLocales(CmsObject cms, String resourceName) Returns an array of default locales for the given resource.
Since the default locale is always available, the result list will always contain at least one Locale.
It's possible to override the system default (see
CmsLocaleManager.getDefaultLocales() ) by setting the property
CmsPropertyDefinition.PROPERTY_LOCALE to a comma separated list of locale names. | public Locale | getFirstMatchingLocale(List locales, Collection available) | public CmsI18nInfo | getI18nInfo(HttpServletRequest req, CmsUser user, CmsProject project, String resource) Returns the the appropriate locale/encoding for a request,
using the "right" locale handler for the given resource.
Certain system folders (like the Workplace) require a special
locale handler different from the configured handler. | public static Locale | getLocale(String localeName) Returns a locale created from the given full name.
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. | public I_CmsLocaleHandler | getLocaleHandler() | public static String | getLocaleNames(List localeNames) | public static List | getLocales(List localeNames) | public static List | getLocales(String localeNames) | final public static String | getResourceEncoding(CmsObject cms, CmsResource res) | public void | initialize(CmsObject cms) | public boolean | isInitialized() | public void | setLocaleHandler(I_CmsLocaleHandler localeHandler) |
LOCALE_HANDLER | final public static String LOCALE_HANDLER(Code) | | Runtime property name for locale handler.
|
PARAMETER_ENCODING | final public static String PARAMETER_ENCODING(Code) | | Request parameter to force encoding selection.
|
PARAMETER_LOCALE | final public static String PARAMETER_LOCALE(Code) | | Request parameter to force locale selection.
|
CmsLocaleManager | public CmsLocaleManager()(Code) | | Initializes a new CmsLocaleManager, called from the configuration.
|
CmsLocaleManager | public CmsLocaleManager(Locale defaultLocale)(Code) | | Initializes a new CmsLocaleManager, used for OpenCms runlevel 1 (unit tests) only.
Parameters: defaultLocale - the default locale to use |
addAvailableLocale | public void addAvailableLocale(String localeName)(Code) | | Adds a locale to the list of available locales.
Parameters: localeName - the locale to add |
addDefaultLocale | public void addDefaultLocale(String localeName)(Code) | | Adds a locale to the list of default locales.
Parameters: localeName - the locale to add |
cmsEvent | public void cmsEvent(CmsEvent event)(Code) | | Implements the CmsEvent interface,
the locale manager the events to clear
the list of cached keys .
Parameters: event - CmsEvent that has occurred |
getAvailableLocales | public List getAvailableLocales()(Code) | | Returns the list of available
Locale s configured in opencms-system.xml ,
in the opencms/system/internationalization/localesconfigured node.
The list of configured available locales contains all locales that are allowed to be used in the VFS,
for example as languages in XML content files.
The available locales are a superset of the default locales, see
CmsLocaleManager.getDefaultLocales() .
It's possible to reduce the system default by setting the propery
CmsPropertyDefinition.PROPERTY_AVAILABLE_LOCALES
to a comma separated list of locale names. However, you can not add new available locales,
only remove from the configured list.
the list of available locale names, e.g. en, de See Also: CmsLocaleManager.getDefaultLocales() |
getAvailableLocales | public List getAvailableLocales(CmsObject cms, String resourceName)(Code) | | Returns an array of available locale names for the given resource.
Parameters: cms - the current cms permission object Parameters: resourceName - the name of the resource an array of available locale names See Also: CmsLocaleManager.getAvailableLocales() |
getAvailableLocales | public List getAvailableLocales(String names)(Code) | | Returns a List of available locales from a comma separated string of locale names.
All names are filtered against the allowed available locales
configured in opencms-system.xml .
Parameters: names - a comma-separated String of locale names List of locales created from the given locale names See Also: CmsLocaleManager.getAvailableLocales() |
getBestMatchingLocale | public Locale getBestMatchingLocale(Locale requestedLocale, List defaults, Collection available)(Code) | | 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.
Parameters: requestedLocale - the requested locale, if this (or a simplified version of it) is available it will be returned Parameters: defaults - a list of default locales to use in case the requested locale is not available Parameters: available - the available locales to find a match in the best matching locale name or null if no name matches |
getDefaultLocale | public static Locale getDefaultLocale()(Code) | | Returns the default locale configured in opencms-system.xml ,
that is the first locale from the list provided
in the opencms/system/internationalization/localesdefault node.
the default locale configured in opencms-system.xml |
getDefaultLocales | public List getDefaultLocales()(Code) | | Returns the list of default
Locale s configured in opencms-system.xml ,
in the opencms/system/internationalization/localesdefault node.
Since the default locale is always available, the result list will always contain at least one Locale.
It's possible to override the system default by setting the property
CmsPropertyDefinition.PROPERTY_LOCALE to a comma separated list of locale names.
This property is inherited from the parent folders.
The default locales must be a subset of the configured available locales, see
CmsLocaleManager.getAvailableLocales() .
In case an invalid locale has been set with the property, this locale is ignored.
The default locale names are used as a fallback mechanism in case a locale is requested
that can not be found, for example when delivering content form an XML content.
There is a list of default locales (instead of just one default locale) since there
are scenarios when one default is not enough. Consider the following example:
The main default locale is set to "en". An example XML content file contains just one language,
in this case "de" and not "en". Now a request is made to the file for the locale "fr". If
there would be only one default locale ("en"), we would have to give up. But since we allow more then
one default, we can deliver the "de" content instead of a blank page.
the list of default locale names, e.g. en, de See Also: CmsLocaleManager.getAvailableLocales() |
getDefaultLocales | public List getDefaultLocales(CmsObject cms, CmsResource resource)(Code) | | Returns an array of default locales for the given resource.
Since the default locale is always available, the result list will always contain at least one Locale.
It's possible to override the system default (see
CmsLocaleManager.getDefaultLocales() ) by setting the property
CmsPropertyDefinition.PROPERTY_LOCALE to a comma separated list of locale names.
This property is inherited from the parent folders.
The default locales must be a subset of the configured available locales, see
CmsLocaleManager.getAvailableLocales() .
In case an invalid locale has been set with the property, this locale is ignored.
In case the property
CmsPropertyDefinition.PROPERTY_LOCALE has not been set
on the resource or a parent folder,
this method returns the same result as
CmsLocaleManager.getDefaultLocales() .
Use this method in case you need to get all configured default options for a resource,
if you just need the "the" default locale for a resource,
use
CmsLocaleManager.getDefaultLocale(CmsObject,String) .
Parameters: cms - the current cms permission object Parameters: resource - the resource to read the default locale properties for an array of default locale names See Also: CmsLocaleManager.getDefaultLocales() See Also: CmsLocaleManager.getDefaultLocale(CmsObject,String) See Also: CmsLocaleManager.getDefaultLocales(CmsObject,String) since: 7.0.2 |
getDefaultLocales | public List getDefaultLocales(CmsObject cms, String resourceName)(Code) | | Returns an array of default locales for the given resource.
Since the default locale is always available, the result list will always contain at least one Locale.
It's possible to override the system default (see
CmsLocaleManager.getDefaultLocales() ) by setting the property
CmsPropertyDefinition.PROPERTY_LOCALE to a comma separated list of locale names.
This property is inherited from the parent folders.
The default locales must be a subset of the configured available locales, see
CmsLocaleManager.getAvailableLocales() .
In case an invalid locale has been set with the property, this locale is ignored.
In case the property
CmsPropertyDefinition.PROPERTY_LOCALE has not been set
on the resource or a parent folder,
this method returns the same result as
CmsLocaleManager.getDefaultLocales() .
Use this method in case you need to get all configured default options for a resource,
if you just need the "the" default locale for a resource,
use
CmsLocaleManager.getDefaultLocale(CmsObject,String) .
Parameters: cms - the current cms permission object Parameters: resourceName - the name of the resource an array of default locale names See Also: CmsLocaleManager.getDefaultLocales() See Also: CmsLocaleManager.getDefaultLocale(CmsObject,String) See Also: CmsLocaleManager.getDefaultLocales(CmsObject,CmsResource) See Also: |
getFirstMatchingLocale | public Locale getFirstMatchingLocale(List locales, Collection available)(Code) | | Returns the first matching locale (eventually simplified) from the available locales.
In case no match is found, code null is returned.
Parameters: locales - must be an ascending sorted list of locales in order of preference Parameters: available - the available locales to find a match in the first precise or simplified match, or null in case no match is found |
getI18nInfo | public CmsI18nInfo getI18nInfo(HttpServletRequest req, CmsUser user, CmsProject project, String resource)(Code) | | Returns the the appropriate locale/encoding for a request,
using the "right" locale handler for the given 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.
Parameters: req - the current http request Parameters: user - the current user Parameters: project - the current project Parameters: resource - the URI of the requested resource (with full site root added) the i18n information to use for the given request context |
getLocale | public static Locale getLocale(String localeName)(Code) | | Returns a locale created from the given full name.
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.
Parameters: localeName - the full locale name the locale or null if not available |
getLocaleHandler | public I_CmsLocaleHandler getLocaleHandler()(Code) | | Returns the configured locale handler.
This handler is used to derive the appropriate locale/encoding for a request.
the locale handler |
getLocaleNames | public static String getLocaleNames(List localeNames)(Code) | | Returns the locale names from the given List of locales as a comma separated String.
For example, if the input List contains
Locale.ENGLISH and
Locale.GERMANY , the result will be "en, de_DE" .
An empty String is returned if the input is null , or contains no elements.
Parameters: localeNames - the locale names to generate a String from the locale names from the given List of locales as a comma separated String |
getLocales | public static List getLocales(List localeNames)(Code) | | Returns a List of locales from an array of locale names.
Parameters: localeNames - array of locale names a List of locales derived from the given locale names |
getLocales | public static List getLocales(String localeNames)(Code) | | Returns a List of locales from a comma-separated string of locale names.
Parameters: localeNames - a comma-separated string of locale names a List of locales derived from the given locale names |
initialize | public void initialize(CmsObject cms)(Code) | | Initializes this locale manager with the OpenCms system configuration.
Parameters: cms - an OpenCms context object that must have been initialized with "Admin" permissions |
isInitialized | public boolean isInitialized()(Code) | | Returns 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.
true if the locale manager is fully initialized |
setLocaleHandler | public void setLocaleHandler(I_CmsLocaleHandler localeHandler)(Code) | | Sets the configured locale handler.
Parameters: localeHandler - the locale handler to set |
|
|