【发布时间】:2015-12-08 07:39:31
【问题描述】:
我有一个关于在 Eclipse RCP 中使用 Fragments 的简短问题。目前我正在使用消息机制来翻译我的字符串。 Messages.java 和 *.properties 文件位于我的插件中,一切正常。现在我想为不同的客户使用不同的字符串/翻译。据我所知,插件片段是一个可能的解决方案。我读过无法使用片段覆盖主机插件中的文件。所以我想我必须使用 2 个不同的片段来提供正确的 *.properties 文件。下图显示了我认为必须使用的架构。
配置片段项目后(设置了主机插件并且 *.properties 文件位于与主机中的同名包中),我想通过 Eclipse IDE 启动我的 RCP 应用程序。 2 个运行配置也已配置。使用 OSGI 控制台时,我看到我的片段存在并且已解决。
但我的问题是未使用片段中提供的字符串/翻译。每次我启动应用程序时都会使用一些旧的字符串/翻译(在将属性文件移动到片段之前使用的那个)。
是否有人知道我做错了什么以及我的解决方案是否正确?
提前致谢:)
【问题讨论】:
-
我不确定,但看起来您使用的是两个相同的片段 - 也许它只是复制和粘贴,但您不能在两个片段中提供两个去语言包(德国)......
-
您通常会创建一个用于德语支持的片段和另一个用于(可能)意大利语支持的片段...
-
我通过新建向导创建了这两个插件 - 没有复制和粘贴。我有 2 种不同的产品和 2 种不同的运行配置。根据配置,我添加 Fragment1 或 Fragment2 - 不是同时添加。每个产品都应该有自己的messages.properties 和德语翻译。主机插件本身不提供任何 messages.properties 或德语翻译。
-
听起来很合理-您有两种具有不同配置的产品...这就是片段的用途!...所以您的问题是片段1和片段2都没有用于任何配置?
-
是的,片段没有被使用,即使在查看 OSGI 控制台时它们存在:31 ACTIVE
_2.0.0.qualifier Fragments=32 32 RESOLVED _2.0.0.qualifier Master=31
标签: java eclipse-rcp osgi-fragment