【问题标题】:Externalizing strings in plugin.xml for Eclipse plugin在 Eclipse 插件的 plugin.xml 中外部化字符串
【发布时间】:2019-03-06 22:00:13
【问题描述】:

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

右键单击插件项目 > PDE 工具 > 外部化字符串不会显示我的插件。

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

【问题讨论】:

    标签: eclipse eclipse-plugin


    【解决方案1】:

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

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

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

      Bundle-Localization: plugin
      

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

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

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

    【讨论】:

    • 感谢您的反馈。 +1。我在下面的回答中添加了一些与“捆绑本地化”问题相关的链接。
    【解决方案2】:

    如果您的工作集中有插件项目,则应该可以使用 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> elementsshowing up un-externalized names of extension(-point) 相关的错误,这些错误仅在 3.4 或最近的 3.5M4 中解决。

    但是,如果“Externalize Strings”菜单根本没有出现在您的插件项目中,可能是它的“project nature”以某种方式损坏,可能是您以前的 Java 项目是 @ 987654327@?

    所以有两个建议:

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

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


    正如你提到的in your own answer,外部化过程是由字符串声明的

    Bundle-Localization: plugin
    

    在 MANIFEST.MF 文件中,如 this message 中所述。

    一个bug has been created,但是:

    • 本地化不是特定于 PDE 的,而是 OSGI 规范
    • 该行并不总是在清单中:

      在 3.3 之前,我们通过创建 plugin.xml 来创建所有清单,然后 转换它。转换器总是将“Bundle-Localization:plugin”添加到 清单,因为如果插件没有清单,这是默认位置。
      如果插件没有翻译文件,则此标头是不必要的膨胀。
      在3.3中,我们通过直接创建Manifest来创建插件项目,也就是说我们 决定只创建项目创建所需的标头。

    • 对于那些使用 外化

    【讨论】:

    • 出于某种原因,Externalize String 向导显示了其他插件,但没有显示所需的插件。我确实设法解决了这个问题。我已将其添加为此处的新答案。
    • +1 对于我不知道存在的完整解决方案。我通常手动将所有这些字符串国际化。
    • 感谢夜曲的帖子。除了您在帖子中提到的更改外,我还想再添加一行。导出插件jar时,一定要在build.properties文件中填写plugin.properties的入口。
    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 2011-10-20
    • 2011-02-16
    • 1970-01-01
    • 2010-12-23
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多