public abstract class TranslationBundle extends Object
The usage pattern is shown with the following example. First define a new translation bundle:
public class TransportText extends TranslationBundle { public static TransportText get() { return NLS.getBundleFor(TransportText.class); } public String repositoryNotFound; public String transportError; }Second, define one or more resource bundle property files.
TransportText_en_US.properties: repositoryNotFound=repository {0} not found transportError=unknown error talking to {0} TransportText_de.properties: repositoryNotFound=repository {0} nicht gefunden transportError=unbekannter Fehler während der Kommunikation mit {0} ...Then make use of it:
NLS.setLocale(Locale.GERMAN); // or skip this call to stick to the JVM default locale ... throw new TransportException(uri, TransportText.get().transportError);The translated text is automatically injected into the public String fields according to the locale set with
NLS.setLocale(Locale)
. However, the
NLS.setLocale(Locale)
method defines only prefered locale which will
be honored only if it is supported by the provided resource bundle property
files. Basically, this class will use
ResourceBundle.getBundle(String, Locale)
method to load a resource
bundle. See the documentation of this method for a detailed explanation of
resource bundle loading strategy. After a bundle is created the
effectiveLocale()
method can be used to determine whether the bundle
really corresponds to the requested locale or is a fallback.
To load a String from a resource bundle property file this class uses the
ResourceBundle.getString(String)
. This method can throw the
MissingResourceException
and this class is not making any effort to
catch and/or translate this exception.
To define a concrete translation bundle one has to:
Constructor and Description |
---|
TranslationBundle() |
public Locale effectiveLocale()
public ResourceBundle resourceBundle()
Copyright © 2016 Eclipse JGit Project. All rights reserved.