Eclipse 3.1의 메시지 번들

설명

표준 Java ResourceBundle에는 꽤 비효율적인 공간 특성이 있습니다. Eclipse 실행 시 많은 외부화 메시지가 수반되는 경향이 있으므로 Eclipse에서 새 메시지 번들 스토리가 사용되도록 구현했습니다. 메커니즘은 아주 단순하고 전체적으로 일반적입니다(누구나 사용할 수 있습니다).

새 접근 방식의 요약

새 메시지를 작성할 경우 다음을 수행하십시오.

예제 파일:

클라이언트 코드

이전 코드:

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$
    ...
  }
}

Messages.java

이전 코드:

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);
  }
}

messages.properties

이전 코드:

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.