標準 Java ResourceBundles 的空格字元相當不足。 因為執行中的 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;
...
// 沒有引數
message = Messages.getString("key.one"); //$NON-NLS-1$
...
// 連結一個引數
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;
...
// 沒有引數
message = Messages.key_one;
...
// 連結一個引數
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.