Class JaxoLanguage
- java.lang.Object
-
- net.sf.jaxodraw.util.JaxoLanguage
-
public final class JaxoLanguage extends java.lang.Object
A convenience class to deal with I18N issues.- Since:
- 2.0
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
bundleMessage(java.lang.String key, java.lang.String bundleId, java.lang.Object argument)
Translates the given string into the current default language.static java.lang.String
bundleMessage(java.lang.String key, java.lang.String bundleId, java.lang.Object[] arguments)
Translates the given string.static java.lang.String
bundleMessage(java.lang.String key, java.lang.String bundleId, java.lang.Object argument1, java.lang.Object argument2)
Translates the given string into the current default language.static java.lang.String
bundleTranslate(java.lang.String akey, java.lang.String abundleId)
Translates the given string into the current default language.static java.lang.String
getLanguageFor(int mode)
Returns the language string for the given mode.static java.lang.String[]
knownLanguages()
Returns the languages known by this version of JaxoDraw.static java.lang.String
label(java.lang.String key)
Translate 'key' as a label (typically, by appending ": " to the default translation).static void
languageChanged(java.lang.String language)
Updates the current locale and associated language bundle.static java.util.Locale
locale()
Locale corresponding to the current language.static java.lang.String
message(java.lang.String key, java.lang.Object argument)
Translates the given string into the current default language, interpolating a single argument.static java.lang.String
message(java.lang.String key, java.lang.Object[] arguments)
Translates the given string into the current default language, interpolating arguments.static java.lang.String
message(java.lang.String key, java.lang.Object argument1, java.lang.Object argument2)
Translates the given string into the current default language, interpolating two arguments.static void
registerBundle(java.lang.Class<?> c)
Register a custom bundle for the class c.static void
registerBundle(java.lang.Class<?> c, JaxoDictionary d)
Register a custom bundle for the class c, ('c' may also be in the core).static void
removeBundle(java.lang.Class<?> c)
Removes the previously registered bundle for the class c.static java.lang.String
translate(java.lang.String key)
Translates the given string into the current default language.
-
-
-
Field Detail
-
ENGLISH
public static final java.lang.String ENGLISH
English.- See Also:
- Constant Field Values
-
GERMAN
public static final java.lang.String GERMAN
German.- See Also:
- Constant Field Values
-
FRENCH
public static final java.lang.String FRENCH
French.- See Also:
- Constant Field Values
-
ITALIAN
public static final java.lang.String ITALIAN
Italian.- See Also:
- Constant Field Values
-
SPANISH
public static final java.lang.String SPANISH
Spanish.- See Also:
- Constant Field Values
-
-
Method Detail
-
registerBundle
public static void registerBundle(java.lang.Class<?> c)
Register a custom bundle for the class c. The name of the class, ie c.getName(), is registered as an identifier, which can be used in the methods bundleMessage() and bundleTranslate() to translate messages. The bundle must be named 'language' and will be looked for inc.getName()/resources/properties
(using the class loader of 'c') where dots in the class name are replaced by '/'.- Parameters:
c
- The class for which a bundle should be registered.
-
registerBundle
public static void registerBundle(java.lang.Class<?> c, JaxoDictionary d)
Register a custom bundle for the class c, ('c' may also be in the core). Also setup the dictionary to translate with the given bundle.- Parameters:
c
- The class for which a bundle should be registered.d
- The dictionary to bind to the given class.- See Also:
registerBundle(Class)
-
removeBundle
public static void removeBundle(java.lang.Class<?> c)
Removes the previously registered bundle for the class c. The name of the class, ie c.getName(), is used as the key.- Parameters:
c
- The class for which a bundle should be removed.
-
languageChanged
public static void languageChanged(java.lang.String language)
Updates the current locale and associated language bundle.- Parameters:
language
- The new language.
-
locale
public static java.util.Locale locale()
Locale corresponding to the current language.- Returns:
- The current locale.
-
label
public static java.lang.String label(java.lang.String key)
Translate 'key' as a label (typically, by appending ": " to the default translation).- Parameters:
key
- The key to translate.- Returns:
- The translation.
-
message
public static java.lang.String message(java.lang.String key, java.lang.Object argument)
Translates the given string into the current default language, interpolating a single argument. Equivalent tomessage(String,Object[])
with second argumentnew Object[] { argument }
.- Parameters:
key
- The key to translate.argument
- An object.- Returns:
- The translated string.
-
bundleMessage
public static java.lang.String bundleMessage(java.lang.String key, java.lang.String bundleId, java.lang.Object argument)
Translates the given string into the current default language.- Parameters:
key
- The key to translate.bundleId
- An identifier for an external language bundle, if null, the default JaxoDraw bundle will be used.argument
- An object.- Returns:
- The translated string.
- See Also:
message(String,Object)
-
message
public static java.lang.String message(java.lang.String key, java.lang.Object argument1, java.lang.Object argument2)
Translates the given string into the current default language, interpolating two arguments. Equivalent tomessage(String,Object[])
with second argumentnew Object[] { argument1, argument2 }
.- Parameters:
key
- The key to translate.argument1
- A first object.argument2
- A second object.- Returns:
- The translated string.
-
bundleMessage
public static java.lang.String bundleMessage(java.lang.String key, java.lang.String bundleId, java.lang.Object argument1, java.lang.Object argument2)
Translates the given string into the current default language.- Parameters:
key
- The key to translate.bundleId
- An identifier for an external language bundle, if null, the default JaxoDraw bundle will be used.argument1
- A first object.argument2
- A second object.- Returns:
- The translated string.
- See Also:
message(String,Object,Object)
-
message
public static java.lang.String message(java.lang.String key, java.lang.Object[] arguments)
Translates the given string into the current default language, interpolating arguments.If
arguments
is not empty, the translation ofkey
is used as aMessageFormat
pattern, thearguments
array is then used as the argument forFormat.format(Object)
.See the language.properties for notes on the parsing of MessageFormat patterns.
If however,
arguments
is empty, the key translation is not parsed as MessageFormat pattern (That way, themessage
methods can be used generically.)By convention, the keys for MessageFormat pattern (and only them) contain percentage signs, followed by a number (starting from zero, as MessageFormat), to denote the occurrence of arguments (e.g.
JaxoIO.read%0ReadFailed=File "{0}" could not be read.
). Then:- In the properties file, it is clear from the key whether the value is a MessageFormat pattern or a plain String.
- In the java source, one can see whether the actual number of arguments
matches the expected one (e.g.
message("JaxoIO.read%0ReadFailed", new Object[] { a, b});
can be seen to be incorrect.
- Parameters:
key
- The key to translate.arguments
- An array of objects (arguments for MessageFormat).- Returns:
- The translated string.
-
bundleMessage
public static java.lang.String bundleMessage(java.lang.String key, java.lang.String bundleId, java.lang.Object[] arguments)
Translates the given string.- Parameters:
key
- The key to translate.bundleId
- An identifier for an external language bundle, if null, the default JaxoDraw bundle will be used.arguments
- An array of objects (arguments for MessageFormat).- Returns:
- The translated string.
- See Also:
message(String,Object[])
-
translate
public static java.lang.String translate(java.lang.String key)
Translates the given string into the current default language.- Parameters:
key
- The key to translate.- Returns:
- The translated string, or an empty string if key itself is empty.
-
bundleTranslate
public static java.lang.String bundleTranslate(java.lang.String akey, java.lang.String abundleId)
Translates the given string into the current default language.- Parameters:
akey
- The key to translate.abundleId
- An identifier for an external language bundle, if null, the default JaxoDraw bundle will be used.- Returns:
- The translated string, or an empty string if key itself is empty.
-
getLanguageFor
public static java.lang.String getLanguageFor(int mode)
Returns the language string for the given mode.- Parameters:
mode
- The language mode as defined in JaxoConstants.- Returns:
- The corresponding language string or empty if mode is not a language mode.
-
knownLanguages
public static java.lang.String[] knownLanguages()
Returns the languages known by this version of JaxoDraw.- Returns:
- The known languages.
-
-