public class Localize
extends java.lang.Object
In a class like MyPanel.java you might have lines like this: double value = 3.14; String msg = "The value "+value+" is too large"; Instead, in the same package as MyPanel.java, create a file MyPanel.properties, with this line: too_large = The value %g is too large. Then you can replace the original lines by this. private static Localize local = new Localize(MyPanel.class); ... double value = 3.14; String msg = local.format("too_large", value); If you create an additional file called MyPanel_es.properties, then that file will be used automatically in Spanish-speaking locales.
Constructor and Description |
---|
Localize(java.lang.Class<?> clazz)
Construct for localized messages.
|
Localize(java.lang.Class<?> clazz,
java.lang.String resourceBundleName)
Construct for localized messages.
|
Localize(java.lang.Class<?> clazz,
java.lang.String resourceBundleName,
java.util.Locale locale)
Construct for localized messages.
|
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
filter(java.lang.String message,
java.lang.Class<?> resourceClass)
Deprecated.
Prefer other methods for standard localization.
|
static java.lang.String |
filter(java.lang.String message,
java.util.ResourceBundle catalog)
Filter the specified string with the specified resource bundle.
|
java.lang.String |
format(java.lang.String key,
java.lang.Object... args)
Format a localized message, with java.util.Formatter and the appropriate resource.
|
static java.lang.String |
getMessage(java.lang.Throwable throwable)
Get the best localized message from a Throwable that may contain other Throwables as a cause.
|
static java.util.ResourceBundle |
getResourceBundle(java.lang.Class<?> clazz,
java.lang.String resourceBundleName,
java.util.Locale locale)
Get a resource bundle associated with a class.
|
static java.lang.String |
timeWords(long seconds)
Convert a number of seconds into words
|
java.lang.String |
toString() |
public Localize(java.lang.Class<?> clazz)
clazz
- Name of client class that requires localization Classpublic Localize(java.lang.Class<?> clazz, java.lang.String resourceBundleName)
clazz
- Name of client class that requires localizationresourceBundleName
- Name of ResourceBundle to be used for localizing messages. If null, then Classpublic Localize(java.lang.Class<?> clazz, java.lang.String resourceBundleName, java.util.Locale locale)
clazz
- Name of client class that requires localizationresourceBundleName
- Name of ResourceBundle to be used for localizing messages. If null, then Classlocale
- Locale to use for localization. If null, then will use default Locale.public java.lang.String format(java.lang.String key, java.lang.Object... args)
key
- used to specify format string in properties file. If not found, then will be used as the format.args
- Optional arguments to be passed to Formatter.format method.public static java.util.ResourceBundle getResourceBundle(java.lang.Class<?> clazz, java.lang.String resourceBundleName, java.util.Locale locale)
clazz
- Name of client class that requires resource bundle.resourceBundleName
- Name of ResourceBundle to be used for localizing messages. If null, then Classlocale
- Locale to use for localization. If null, then will use default Locale.public static java.lang.String getMessage(java.lang.Throwable throwable)
throwable
- a Throwable that may contain other Throwables as a cause.public java.lang.String toString()
toString
in class java.lang.Object
public static java.lang.String filter(java.lang.String message, java.util.ResourceBundle catalog)
message
- Filter this stringcatalog
- Get keys and values from this.@Deprecated public static java.lang.String filter(java.lang.String message, java.lang.Class<?> resourceClass)
message
- Filter this stringresourceClass
- Use the class loader for this class
and load a localized PropertyResourceBundle with the same
name as the class. For example, a class Foo has
a Foo.properties and a Foo_ch.properties file in the same
directory as the compiled Foo.class.
Test with java -Duser.language=chpublic static java.lang.String timeWords(long seconds)
seconds
- Number of seconds