【发布时间】:2019-03-06 22:00:13
【问题描述】:
如何在我的 Eclipse 插件的 plugin.xml 中外部化字符串?
右键单击插件项目 > PDE 工具 > 外部化字符串不会显示我的插件。
我现在正在尝试手动执行此操作。我在 plugin.properties 中添加了条目,并用 % 符号后跟字符串键替换了 plugin.xml 中的等效字符串。但这似乎不起作用。我在这里错过了什么?
【问题讨论】:
如何在我的 Eclipse 插件的 plugin.xml 中外部化字符串?
右键单击插件项目 > PDE 工具 > 外部化字符串不会显示我的插件。
我现在正在尝试手动执行此操作。我在 plugin.properties 中添加了条目,并用 % 符号后跟字符串键替换了 plugin.xml 中的等效字符串。但这似乎不起作用。我在这里错过了什么?
【问题讨论】:
我终于想出了如何手动将插件外部化。
事实证明,Eclipse 以这种方式将 plugin.xml 外部化:
在插件清单 (META-INF/MANIFEST.MF) 中,添加以下行
Bundle-Localization: plugin
您打算将外部化字符串存储在名为“plugin.properties”的文件中(原来这是缺少的部分)。
在 plugin.properties 中添加外部化字符串键值对。
将 plugin.xml 中的实际字符串替换为 plugin.properties 中的键(以 % 为前缀)。
【讨论】:
如果您的工作集中有插件项目,则应该可以使用 Externalize Strings wizard 来帮助将 Manifest 和 plugin.xml 文件中的字符串外部化。
外部化清单文件提取可翻译的字符串并将它们存储在属性文件中以支持多语言。
该向导位于PDE 项目的 MANIFEST.MF 或 plugin.xml 文件的上下文菜单中的 PDE 工具菜单下。
(来源:eclipse.org)
请注意,存在一些与 detecting all non-externalized attributes/values of the <extension-point> and <extension> elements 或 showing up un-externalized names of extension(-point) 相关的错误,这些错误仅在 3.4 或最近的 3.5M4 中解决。
但是,如果“Externalize Strings”菜单根本没有出现在您的插件项目中,可能是它的“project nature”以某种方式损坏,可能是您以前的 Java 项目是 @ 987654327@?
所以有两个建议:
然后告诉我们该菜单是否仍然不可用。
正如你提到的in your own answer,外部化过程是由字符串声明的
Bundle-Localization: plugin
在 MANIFEST.MF 文件中,如 this message 中所述。
一个bug has been created,但是:
该行并不总是在清单中:
在 3.3 之前,我们通过创建 plugin.xml 来创建所有清单,然后 转换它。转换器总是将“Bundle-Localization:plugin”添加到 清单,因为如果插件没有清单,这是默认位置。
如果插件没有翻译文件,则此标头是不必要的膨胀。
在3.3中,我们通过直接创建Manifest来创建插件项目,也就是说我们 决定只创建项目创建所需的标头。
对于那些使用 外化
【讨论】: