Java EclipseRCP-使用片段提供翻译

Java EclipseRCP-使用片段提供翻译,java,eclipse-rcp,osgi-fragment,Java,Eclipse Rcp,Osgi Fragment,我有一个关于在EclipseRCP中使用片段的简短问题。目前我正在使用消息机制来翻译字符串。Messages.java和*.properties文件位于我的插件中,一切正常。现在我想为不同的客户使用不同的字符串/翻译。据我所知,插件片段在这里是一个可能的解决方案。我已经读到,不可能使用片段覆盖主机插件中的文件。所以我想我必须使用两个不同的片段来提供正确的*.properties文件。下图显示了我认为必须使用的模式 在配置片段项目之后(设置了主机插件,*.properties文件位于与主机中相同

我有一个关于在EclipseRCP中使用片段的简短问题。目前我正在使用消息机制来翻译字符串。Messages.java和*.properties文件位于我的插件中,一切正常。现在我想为不同的客户使用不同的字符串/翻译。据我所知,插件片段在这里是一个可能的解决方案。我已经读到,不可能使用片段覆盖主机插件中的文件。所以我想我必须使用两个不同的片段来提供正确的*.properties文件。下图显示了我认为必须使用的模式

在配置片段项目之后(设置了主机插件,*.properties文件位于与主机中相同名称的包中),我想通过EclipseIDE启动我的RCP应用程序。还配置了2个运行配置。当使用OSGI控制台时,我看到我的片段存在并已解析

但我的问题是,没有使用片段中提供的字符串/翻译。每次启动应用程序时,都会使用一些旧字符串/翻译(将属性文件移动到片段之前使用的字符串/翻译)

有人知道我做错了什么吗?我的解决方案是否正确


提前感谢:)

您必须使用正确的配置运行eclipse产品-如果您想查看(并测试)您的语言支持,您必须使用正确的信息启动eclipse

尝试直接设置语言


-os${target.os}-ws${target.ws}-arch${target.arch}-nl de_de-consoleLog

您必须使用正确的配置运行eclipse产品-如果您想查看(并测试)您的语言支持,您必须使用正确的信息启动eclipse

尝试直接设置语言


-os${target.os}-ws${target.ws}-arch${target.arch}-nl de_de-consoleLog

是否提供清单的标题

Bundle-Localization: plugin

您是否提供清单的标题

Bundle-Localization: plugin


我不确定,但看起来您使用的是两个相同的片段-可能只是复制和粘贴,但您不能在两个片段中提供两个de语言包(Deutschland)…您通常创建一个片段用于德语支持,另一个片段用于(可能)意大利语支持…我通过新向导创建了两个插件-无需复制和粘贴。我有两种不同的产品和两种不同的运行配置。根据配置,我添加Fragment1或Fragment2,但不能同时添加两者。每个产品都应该有自己的messages.properties和德语翻译。主机插件本身不提供任何messages.properties或德语翻译。听起来很合理-您有两个配置不同的产品。。。这就是碎片的用途!。。。所以您的问题是,在任何配置中都没有使用fragment1和fragment2?是的,没有使用片段,即使它们在查看OSGI控制台时出现:31 ACTIVE _2.0.0.qualifier Fragments=32 32 RESOLVED _2.0.0.qualifier Master=31我不确定,但看起来您使用的是两个相同的片段-可能只是复制和粘贴,但您无法提供两个de语言包(Deutschland)在两个片段中…您通常创建一个用于德语支持的片段,另一个用于(可能)意大利语支持的片段…我通过新向导创建了两个插件-无需复制和粘贴。我有两种不同的产品和两种不同的运行配置。根据配置,我添加Fragment1或Fragment2,但不能同时添加两者。每个产品都应该有自己的messages.properties和德语翻译。主机插件本身不提供任何messages.properties或德语翻译。听起来很合理-您有两个配置不同的产品。。。这就是碎片的用途!。。。因此,您的问题是,在任何配置中都没有使用fragment1和fragment2?是的,即使在查看OSGI控制台时片段存在,也没有使用片段:31活动的_2.0.0.qualifier片段=32已解决的_2.0.0.qualifier Master=31不幸的是,这也不起作用。我想知道这些字符串/翻译是不是在我将它们移动到片段之前放在主机插件中的。即使我更改了片段中的属性,字符串也不会被使用。也许Eclipse使用了一些缓存机制?如果启动Eclipse应用程序,您看到安装了什么内容了吗?帮助->关于->安装详细信息->插件?你的片段应该列在那里…主机插件和片段已经安装好了。你能展示一下你的Messages.java是什么样子吗?问题可能出在thereimport org.eclipse.osgi.util.NLS中;公共类消息扩展NLS{private static final String BUNDLE_NAME=“.ui.internal.Messages”;/$NON-NLS-1$public static String LoginAgent_loginservernotavaliabeaberrortext1;公共静态字符串…;静态{//初始化资源束NLS.initializeMessages(BUNDLE_NAME,Messages.class)}私有消息(){}不幸的是,这也不起作用。我想知道这些字符串/翻译是不是在我将它们移动到片段之前放在主机插件中的。即使我更改了片段中的属性,字符串也不会被使用。也许Eclipse使用了一些缓存机制?如果启动Eclipse应用程序,您看到安装了什么内容了吗?帮助->关于->安装详细信息->插件?你的片段应该列在那里…主机插件和片段已经安装好了。你能展示一下你的Messages.java是什么样子吗?问题可能出在thereimport org.eclipse.osgi.util.NLS中;公共类消息扩展了NLS{private static final String BUNDLE_NAME=“.ui.internal.Messages”;/$NON-NLS-1$public static String LoginAgent_loginservernotavaliabeaberrortext1;公共静态字符串。