Standardowe pakunki zasobów Java cechują się mało wydajną charakterystyką pod względem przestrzeni. Ponieważ działanie platformy Eclipse jest związane z obecnością wielu eksternalizowanych komunikatów, zaimplementowano nową składnicę pakunków komunikatów w celu użycia na tej platformie. Mechanizm ten jest dość prosty i ogólny, przez co może być użyty w dowolnym miejscu.
messages.properties
- plik ten jest identyczny jak wcześniej, ale wszystkie klucze
muszą być poprawnymi identyfikatorami Java.public static String
, którego
nazwa jest identyczna jak klucz komunikatu.messages.properties
.Messages.java
.messages.properties
, gdzie nazwa klucza
jest zgodna z nazwą pola.Messages.mój_klucz
)
zamiast wykonywać standardowe wyszukiwanie.public class MyClass {
public void myMethod() {
String message;
...
// brak argumentów
message = Messages.getString("key.one"); //$NON-NLS-1$
...
// powiązanie jednego argumentu
message = MessageFormat.format(Messages.getString("key.two"), new Object[] {"przykład użycia"}); //$NON-NLS-1$ //$NON-NLS-2$
...
}
}
public class MyClass {
public void myMethod() {
String message;
...
// brak argumentów
message = Messages.key_one;
...
// powiązanie jednego argumentu
message = NLS.bind(Messages.key_two, "przykład użycia"); //$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 = Witaj świecie. key.two = Jest to {0} powiązania z jednym argumentem.
key_one = Witaj świecie. key_two = Jest to {0} powiązania z jednym argumentem.