用于JAVA资源包字符串竞争的Eclipse插件

时间:2012-06-07 12:27:11

标签: java eclipse localization eclipse-plugin

是否有任何eclipse插件,它允许我从我的本地化资源包中自动完成(CTRL + SPACE)一个字符串?

或者还有其他良好的做法可以轻松进行本地化吗?

我目前的状态。它正在发挥作用,但我认为可能有一种更简单的方法。

这是我的本地化课程:

/**
 * Singelton class to provide localization Strings
 * 
 * @author Andreas Freitag
 * 
 */
public class Localization {
  private static Localization instance = null;
  private Options options;
  private ResourceBundle captions;

  private Localization() {
    options = Options.getInstance();
    Locale locale = new Locale(options.getLanguage());
    Locale.setDefault(new Locale(options.getLanguage()));
    captions = ResourceBundle.getBundle("res.localization.localizationMessages", locale);
  }

  /**
   * Getter for the singelton localization (thread-safe)
   * */
  public synchronized static Localization getInstance() {
    if (instance == null) {
      synchronized (Localization.class) {
        instance = new Localization();
      }
    }
    return instance;
  }

  /**
   * A little convenience for getting the Localized strings
   * 
   * @param name
   *          of the element to search for
   * @return the localized String
   */
  public String getString(String name) {
    return captions.getString(name);
  }

}

我通过Localization.getInstance.getString("Infoframe.Example");

访问的本地化字符串

1 个答案:

答案 0 :(得分:0)

我认为它不会为你提供自动完成功能,但是对于一个java项目,你可以运行Source > Externalize Strings...来获得一个向导,它会将你想要的任何字符串收集到资源包中并替换它们调用加载ResourceBundle属性键的事件。

对于eclipse插件,他们使用org.eclipse.osgi.util.NLS的工具和子类来提供公共字段与资源键匹配的类(因此您可以自动完成)。