net.sf.mmm.util.nls.api
Interface NlsResourceLocator

All Known Implementing Classes:
DefaultNlsResourceLocator

public interface NlsResourceLocator

A NlsResourceLocator is used to find a localized resource.
The lookup algorithm is analog to the one used by ResourceBundle.

Since:
2.0.0
Author:
Joerg Hohwiller (hohwille at users.sourceforge.net)

Field Summary
static char SEPARATOR
          The separator used for locale-infixes.
 
Method Summary
 DataResource findResource(Class<?> type, String extension, Locale locale)
          Like findResource(String, String, Locale) but using a Class as pathAndBasicName.
 DataResource findResource(String pathAndBasicName, String extension, Locale locale)
          This method finds a localized resource.
 Locale getLocaleForInfix(String localeInfix)
          This method gets the Locale for the given locale-infix.
 String[] getLocaleInfixes(Locale locale)
          This method determines the infix-strings for localization lookup ordered from most specific to least specific (empty string representing Locale.ROOT).
 

Field Detail

SEPARATOR

static final char SEPARATOR
The separator used for locale-infixes.

See Also:
Constant Field Values
Method Detail

getLocaleInfixes

String[] getLocaleInfixes(Locale locale)
This method determines the infix-strings for localization lookup ordered from most specific to least specific (empty string representing Locale.ROOT). Each infix is defined as:
[_<language>[_<country>[_<variant>]]]
Please note that if a segment is empty but a following segment is present, multiple underscores ('_') will occur.
Examples:
locale result
Locale.GERMANY {"_de_DE", "_de", ""}
new Locale("", "CM") {"__CM", ""}
new Locale("", "", "variant") {"___variant", ""}

Parameters:
locale - is the Locale.
Returns:
the localization-infixes ordered from most specific to least specific. The returned array will always contain the empty string as last entry.

getLocaleForInfix

Locale getLocaleForInfix(String localeInfix)
This method gets the Locale for the given locale-infix.

Parameters:
localeInfix - is the locale-infix (e.g. "en_US").
Returns:
the Locale for the given localeInfix. Locale.ROOT if the given localeInfix is invalid.

findResource

DataResource findResource(Class<?> type,
                          String extension,
                          Locale locale)
Like findResource(String, String, Locale) but using a Class as pathAndBasicName.

Parameters:
type - is the Class identifying the path of the resource including the filename without locale-part (infix) or extension.
extension - is the final suffix of the requested DataResource. Typically ".properties" or ".xml".
locale - is the locale for which the resource is requested.
Returns:
the most specific resource for the given Locale.

findResource

DataResource findResource(String pathAndBasicName,
                          String extension,
                          Locale locale)
                          throws ResourceNotAvailableException
This method finds a localized resource. It returns the most specific resource for the given path:
<pathAndBasicName><infix><extension>
with
<infix> = [_<locale.getLanguage()>[_<locale.getCountry()>[_<locale.getVariant()>]]]
If a locale-specific part is NOT defined, the according part of the path is omitted. E.g. for Locale.GERMANY the following values are tried for <infix>:
"de_DE", "de", ""

Parameters:
pathAndBasicName - is the path of the resource including the filename without locale-part or extension. Folders (or packages) need to be separated with '/' and NOT with '.'. E.g. "net/sf/mmm/util/nls/text/Hypenator".
extension - is the suffix of the requested DataResource. Typically ".properties" or ".xml". May be the empty string.
locale - is the locale for which the resource is requested.
Returns:
the most specific resource for the given Locale.
Throws:
ResourceNotAvailableException - if no such resource including the un-localized one is available.


Copyright © 2001-2010 mmm-Team. All Rights Reserved.