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

问题描述 投票:9回答:2

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

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

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

eclipse eclipse-plugin
2个回答
18
投票

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

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

  • 在插件清单(META-INF / MANIFEST.MF)中,添加以下行 Bundle-Localization: plugin 您打算将外化字符串存储在名为“plugin.properties”的文件中(原来这是缺失的部分)。
  • 在plugin.properties中添加外化字符串键值对。
  • 使用plugin.properties中的键替换plugin.xml中的实际字符串(前缀为%)。

3
投票

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

该向导位于PDE项目的MANIFEST.MF或plugin.xml文件的上下文菜单中的PDE Tools菜单下。

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中所述。

一个bug has been created,但是:

  • 本地化不是PDE特有的,而是OSGI规范
  • 该行并不总是在MANIFEST中: 在3.3之前,我们通过创建plugin.xml然后转换它来创建所有清单。转换器总是向Manifest添加“Bundle-Localization:plugin”,因为如果插件没有Manifest,那么这是默认位置。 如果插件没有翻译文件,则此标头是不必要的膨胀。 在3.3中,我们通过直接创建Manifest来创建插件项目,这意味着我们决定只创建项目创建所需的头。
  • 对于那些创建了外部化<3.2的捆绑包,然后在3.3中运行时无法看到它们的人来说,这可能是一个问题。
© www.soinside.com 2019 - 2024. All rights reserved.