De standaard Java-resourcebundels hebben geen efficiënte ruimtekenmerken. Als Eclipse wordt uitgevoerd, bevat het meestal vele geëxternaliseerde berichten. Daarom is een nieuw berichtbundelsysteem geïmplementeerd voor gebruik in Eclipse. Het mechanisme is eenvoudig en volledig generiek, het kan overal worden gebruikt.
messages.properties
: dit bestand is hetzelfde gebleven, behalve dat alle sleutels geldige Java-ID's moeten zijn. public static String
waarvan de naam hetzelfde is als de berichtsleutel. messages.properties
-bestanden. Messages.java
. messages.properties
waarvan de sleutelnaam overeenkomt met de veldnaam. Messages.my_key
), in plaats van dat u een standaardzoekopdracht gebruikt. public class MyClass {
public void myMethod() {
String message;
...
// geen argumenten
message = Messages.getString("key.one"); //$NON-NLS-1$
...
// één argument binden
message = MessageFormat.format(Messages.getString("key.two"), new Object[] {"voorbeeld"}); //$NON-NLS-1$ //$NON-NLS-2$
...
}
}
public class MyClass {
public void myMethod() {
String message;
...
// geen argumenten
message = Messages.key_one;
...
// één argument binden
message = NLS.bind(Messages.key_two, "voorbeeld"); //$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 = Hallo wereld. key.two = Dit is een {0} van het maken van een binding met één argument.
key_one = Hallo wereld. key_two = Dit is een {0} van het maken van een binding met één argument.