代码之家  ›  专栏  ›  技术社区  ›  Debajit

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

  •  9
  • Debajit  · 技术社区  · 15 年前

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

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

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

    2 回复  |  直到 15 年前
        1
  •  18
  •   Debajit    15 年前

    我终于找到了如何手动将插件外部化的方法。

    事实证明,Eclipse通过以下方式将plugin.xml外部化:

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

      Bundle-Localization: plugin
      

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

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

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

        2
  •  3
  •   Community Egal    7 年前

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

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

    alt text http://help.eclipse.org/stable/topic/org.eclipse.pde.doc.user/guide/images/pde_actions/externalize_strings_selection.png

    请注意,有一些错误与 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项目 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规范。
    • 该行并不总是出现在清单中:

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

    • 对于那些使用 外部化<3.2,然后在3.3中运行时看不到它们。