在plugin.xml中为Eclipse插件外化字符串

时间:2009-03-13 22:32:05

标签: eclipse eclipse-plugin

如何在Eclipse插件的plugin.xml中外化字符串?

右键单击插件项目> PDE工具> Externalize Strings不会显示我的插件。

我正在尝试手动执行此操作。我在plugin.properties中添加了条目,并使用%符号后跟字符串键替换了plugin.xml中的等效字符串。但这似乎不起作用。我在这里缺少什么?

2 个答案:

答案 0 :(得分:18)

我终于想出了如何手动外化插件。

事实证明,Eclipse以这种方式外化了plugin.xml:

  • 在插件清单(META-INF / MANIFEST.MF)中,添加以下行

    Bundle-Localization: plugin
    

    您打算将外化字符串存储在名为“plugin.properties”的文件中(原来这是丢失的部分)。

  • 在plugin.properties中添加外化字符串键值对。

  • 将plugin.xml中的实际字符串替换为plugin.properties中的键(前缀为%)。

答案 1 :(得分:3)

如果您的工作集中包含插件项目,则应提供Externalize Strings wizard来帮助外部化Manifest和plugin.xml文件中的字符串。
外化清单文件可提取可翻译字符串并将其存储在属性文件中以支持多语言。

该向导在PDE项目的MANIFEST.MF或plugin.xml文件的上下文菜单中的PDE工具菜单下可用

alt text
(来源:eclipse.org

请注意,有一些与detecting all non-externalized attributes/values of the <extension-point> and <extension> elementsshowing up un-externalized names of extension(-point)相关的错误,这些错误仅在3.4或最近的3.5M4中解决。

但是,如果您的插件项目中没有显示“Externalize Strings”菜单,可能是它的“ project nature ”已损坏,可能是您以前的Java项目是not properly converted to a PDE project

所以有两个建议:

  • 尝试全新安装eclipse3.5M4
  • 导入您的插件项目并检查其性质

然后告诉我们该菜单是否仍然不可用。


当你提到in your own answer时,外化过程由字符串

声明
Bundle-Localization: plugin
MANIFEST.MF文件中的

,如this message中所述。

A bug has been created,但是:

  • 本地化不是PDE特有的东西,而是OSGI规范
  • 该行并不总是在MANIFEST中:

      

    在3.3之前,我们通过创建plugin.xml然后创建了所有清单   转换它。转换器总是添加“Bundle-Localization:plugin”到   清单,因为如果插件没有清单,那么这是默认位置   如果一个插件没有翻译文件,那么这个标题是不必要的臃肿   在3.3中,我们通过直接创建Manifest来创建插件项目,这意味着我们   决定只创建项目创建所需的标题。

  • 对于那些创建了捆绑包的人来说,这可能是一个问题 外化&lt; 3.2,然后在3.3中运行时无法看到它们。