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
org.eclipse.jgit.nls.NLS#setLocale(Locale) . However, the
org.eclipse.jgit.nls.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
java.util.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
java.. This method can throw the
java. and this class is not making any
effort to catch and/or translate this exception.
To define a concrete translation bundle one has to:
| Modifier and Type | Field and Description |
|---|---|
| private Locale | |
| private ResourceBundle |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public Locale | Returns: the locale used for loading the resource bundle from which the field values were taken.Get the locale used for loading the resource bundle from which the field values were taken. |
| pack-priv void | |
| public ResourceBundle | Returns: the resource bundle on which this translation bundle is based.Get the resource bundle on which this translation bundle is based. |
| effectiveLocale | back to summary |
|---|---|
| private Locale effectiveLocale | |
| resourceBundle | back to summary |
|---|---|
| private ResourceBundle resourceBundle | |
| TranslationBundle | back to summary |
|---|---|
| public TranslationBundle() | |
| effectiveLocale | back to summary |
|---|---|
| public Locale effectiveLocale() Get the locale used for loading the resource bundle from which the field values were taken.
| |
| load | back to summary |
|---|---|
| pack-priv void load(Locale locale) throws TranslationBundleLoadingException Injects locale specific text in all instance fields of this instance.
Only public instance fields of type
The name of this (sub)class plus the given
| |
| resourceBundle | back to summary |
|---|---|
| public ResourceBundle resourceBundle() Get the resource bundle on which this translation bundle is based.
| |