|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.motorola.iden.resourcebundle.ResourceBundle
Resource bundles contain locale-specific objects.
When your program needs a locale-specific resource,
a String
for example, your program can load it
from the resource bundle that is appropriate for the
current user's locale. In this way, you can write
program code that is largely independent of the user's
locale isolating most, if not all, of the locale-specific
information in resource bundles.
This allows you to write programs that can be easily localized, or translated, into different languages, can handle multiple locales at once, and can be easily modified later to support even more locales.
Resource bundles belong to families whose members share a common base name, but whose names also have additional components that identify their locales. For example, the base name of a family of resource bundles might be "MyResources". The family should have a default resource bundle which simply has the same name as its family - "MyResources" - and will be used as the bundle of last resort if a specific locale is not supported. The family can then provide as many locale-specific members as needed, for example a German one named "MyResources_de".
Each resource bundle in a family contains the same items, but the items have
been translated for the locale represented by that resource bundle.
For example, both "MyResources" and "MyResources_de" may have a
String
that's used on a button for canceling operations.
In "MyResources" the String
may contain "Cancel" and in
"MyResources_de" it may contain "Abbrechen".
If there are different resources for different countries, you can make specializations: for example, "MyResources_de_CH" contains objects for the German language (de) in Switzerland (CH). If you want to only modify some of the resources in the specialization, you can do so.
When your program needs a locale-specific object, it loads
the ResourceBundle
class using the
getBundle
method:
ResourceBundle myResources = ResourceBundle.getBundle("MyResources", currentLocale);
Resource bundles contain key/value pairs. The keys uniquely
identify a locale-specific object in the bundle. Keys are
always String
s. The values can be any type of object.
You retrieve an object from resource bundle using the appropriate
getter method. The getter methods all require the key as an argument
and return the object if found. If the object is not found, the
getter method throws a MissingResourceException
.
The J2ME platform provides two subclasses of ResourceBundle
,
ListResourceBundle
and PropertyResourceBundle
,
that provide a fairly simple way to create resources.
ListResourceBundle
manages its resource as a List of
key/value pairs. PropertyResourceBundle
uses a properties
file to manage its resources.
If ListResourceBundle
or PropertyResourceBundle
do not suit your needs, you can write your own ResourceBundle
subclass. Your subclasses must override two methods: handleGetObject
and getKeys()
.
ListResourceBundle
,
PropertyResourceBundle
,
MissingResourceException
Constructor Summary | |
ResourceBundle()
Sole constructor. |
Method Summary | |
static ResourceBundle |
getBundle(String baseName)
Gets a resource bundle using the specified base name, the default locale. |
static ResourceBundle |
getBundle(String baseName,
Locale locale)
Gets a resource bundle using the specified base name and locale. |
abstract Enumeration |
getKeys()
Returns an enumeration of the keys. |
Locale |
getLocale()
Returns the locale of this resource bundle. |
Object |
getObject(String key)
Gets an object for the given key from this resource bundle or one of its parents. |
String |
getString(String key)
Gets a string for the given key from this resource bundle or one of its parents. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ResourceBundle()
Method Detail |
public final String getString(String key)
(String) getObject
(key)
.
key
- the key for the desired string
NullPointerException
- if key
is null
MissingResourceException
- if no object for the given key can be foundpublic final Object getObject(String key)
handleGetObject
.
If not successful, and the parent resource bundle is not null,
it calls the parent's getObject
method.
If still not successful, it throws a MissingResourceException.
key
- the key for the desired object
NullPointerException
- if key
is null
MissingResourceException
- if no object for the given key can be foundpublic Locale getLocale()
public static final ResourceBundle getBundle(String baseName)
getBundle(baseName, Locale.getDefault())
.
See getBundle
for a complete description of the search and instantiation strategy.
baseName
- the base name of the resource bundle, a fully qualified class name
NullPointerException
- if baseName is null
MissingResourceException
- if no resource bundle for the specified base name can be foundpublic static final ResourceBundle getBundle(String baseName, Locale locale)
getBundle(baseName, locale)
.
See getBundle
for a complete description of the search and instantiation strategy.
baseName
- the base name of the resource bundle, a fully qualified class namelocale
- the locale for which a resource bundle is desired
NullPointerException
- if baseName
or locale
is null
MissingResourceException
- if no resource bundle for the specified base name can be foundpublic abstract Enumeration getKeys()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |