표준 Java ResourceBundle에는 꽤 비효율적인 공간 특성이 있습니다. Eclipse 실행 시 많은 외부화 메시지가 수반되는 경향이 있으므로 Eclipse에서 새 메시지 번들 스토리가 사용되도록 구현했습니다. 메커니즘은 아주 단순하고 전체적으로 일반적입니다(누구나 사용할 수 있습니다).
messages.properties
- 이 파일은 모든 키가
올바른 Java ID여야 하는 것을 제외하고 이전과 같습니다. public static String
필드가 있습니다.messages.properties
파일의 값으로 설정됩니다.Messages.java
파일에서 필드를 작성하십시오.messages.properties
파일에서 키 이름이 필드 이름과 일치하는
키/값 쌍을 작성하십시오. Messages.my_key
)를
참조하면 됩니다. 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 = This is an {0} of binding with one argument.
key_one = Hello world. key_two = This is an {0} of binding with one argument.