Les caractéristiques d'espace des ResourceBundles Java classiques sont assez peu intéressantes. Dans la mesure où l'exécution d'Eclipse génère de nombreux messages externalisés, nous avons implémenté un nouveau scénario pour l'utilisation des groupes de messages dans Eclipse. Son fonctionnement est très simple et générique : il peut être utilisé partout.
messages.properties
- ce fichier est identique mais toutes les clés doivent être des identifiants Java valides.chaîne statique publique
dont le nom est identique à la clé du message.messages.properties
.Messages.java
.messages.properties
. Le nom de la clé doit correspondre au nom du champ.Messages.my_key
) au lieu de procéder à la recherche habituelle.public class MyClass {
public void myMethod() {
String message;
...
// no args
message = Messages.getString("key.one"); //$NON-NLS-1$
...
// bind one arg
message = MessageFormat.format(Messages.getString("key.two"), new Object[] {"example usage"}); //$NON-NLS-1$ //$NON-NLS-2$
...
}
}
public class MyClass {
public void myMethod() {
String message;
...
// no args
message = Messages.key_one;
...
// bind one arg
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 = liaison avec un argument : {0}.
key_one = Hello world. key_two = liaison avec un arguement : {0}.