ResourceBundles Java estándar tienen características de espacio totalmente ineficaces. Dado que un Eclipse en ejecución tiende a tener muchos mensajes externalizados, hemos implementado una nueva historia de paquetes de mensajes que se utilizará en Eclipse. El mecanismo es muy simple y completamente genérico, y puede utilizarse en cualquier lugar.
messages.properties
: este archivo es el mismo que antes,
excepto que todas las claves tienen que ser identificadores Java válidos.
Serie estática
pública
cuyo nombre es el mismo que el de la clave de mensaje.
messages.properties
.Messages.java
.messages.properties
, donde el nombre de clave coincide con el nombre de campo
Messages.my_key
) en lugar de hacerlo a la búsqueda
estándar.
public class MyClass {
public void myMethod() {
String message;
...
// sin arg
message = Messages.getString("key.one"); //$NON-NLS-1$
...
// enlazar un 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;
...
// sin arg
message = Messages.key_one;
...
// enlazar un 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 = This is an {0} of binding with one argument.
key_one = Hello world. key_two = This is an {0} of binding with one argument.