Die Java-Standardelemente "ResourceBundle" haben relativ ineffiziente Platzmerkmale. Da bei der Ausführung von Eclipse in der Regel viele Nachrichten ausgelagert werden müssen, wurde für die Verwendung in Eclipse ein neues System für Nachrichtenpakete implementiert. Dieser Mechanismus ist ziemlich einfach und vollständig generisch - er kann überall eingesetzt werden.
messages.properties
: Diese Datei bleibt unverändert. Allerdings muss es sich bei allen Schlüsseln um gültige Java-Kennungen handeln.public static String
, dessen Name mit dem des Nachrichtenschlüssels übereinstimmt.messages.properties
gesetzt.Messages.java
.messages.properties
, wobei der Schlüsselname mit dem Feldnamen übereinstimmt.Messages.my_key
)
anstatt auf die Standardsuchfunktion.public class MyClass {
public void myMethod() {
String message;
...
// keine Argumente
message = Messages.getString("key.one"); //$NON-NLS-1$
...
// ein Argument binden
message = MessageFormat.format(Messages.getString("key.two"), new Object[] {"Verwendungsbeispiel"}); //$NON-NLS-1$ //$NON-NLS-2$
...
}
}
public class MyClass {
public void myMethod() {
String message;
...
// keine Argumente
message = Messages.key_one;
...
// ein Argument binden
message = NLS.bind(Messages.key_two, "example usage"); //$NON-NLS-1$
...
}
}
public class Messages {
private static final String BUNDLE_NAME = "org.eclipse.core.utils.messages"; //$NON-NLS-1$
private static final ResourceBundle bundle = ResourceBundle.getBundle(BUNDLE_NAME);
public static String getString(String key) {
try {
return bundle.getString(key);
} catch (MissingResourceException e) {
return key;
}
}
}
import org.eclipse.osgi.util.NLS;
public class Messages extends NLS {
private static final String BUNDLE_NAME = "org.eclipse.core.utils.messages"; //$NON-NLS-1$
public static String key_one;
public static String key_two;
...
static {
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
}
key.one = Hello world. key.two = Dies ist ein {0} einer Bindung mit einem Argument.
key_one = Hello world. key_two = Dies ist ein {0} einer Bindung mit einem Argument.