我在Eclipse RCP应用程序一个贡献视图。这种观点有一个本地化名称%view.name,对一个plugin.properties文件翻译,以“我的观点部分。”

我要寻找到Eclipse的源代码,了解国际化的工作方式。到目前为止,从属性文件中的值读什么点和指定为视图的名字我一直没能找到的。

如果我从资源阅读部分开始,我看到类ManifestLocalization读取属性文件,但我不能找到它被使用。

如果我从名称转让开始,我看到TableReader类获取视图部分的名称,但它已经本地化。我也看到了Eclipse这个plugin.xml中转换成在某些时候一些序列化对象。也许是出于性能的考虑呢?

所以我的问题是,在什么时候被这个“%view.name”字符串转换成“我的观点部分”

有帮助吗?

解决方案

有至少两种机制在蚀支撑定位:NLS,和org.eclipse.core.runtime.registry.IConfigurationElement。你感兴趣的部分发生在IConfigurationElement

当的IConfigurationElement.getAttribute(String key)被调用时,ResourceTranslator.getResourceString()方法使用清单找到的属性正确的属性文件(通常这是plugin${locale}.properties)和进入了OSGi捆位置的头文件。

您可以通过调用getAttributeAsIs(String key)方法,而不是得到什么实际上是在plugin.xml文件。

其他提示

此可以根据基于Eclipse的特定版本不同而不同,但是看起来该翻译是在ResourceTranslator.getResourceString(捆绑,字符串的ResourceBundle)

发生

有关的视图部分的贡献,当插件清单被加载为ExtensionRegistry.addContribution的一部分发生这种情况()。

你是正确的翻译版本进行缓存。如果设置在我提到的方法断点,你会发现,当第一次初始化工作区,他们只火。为了让他们再次开火,你必须清除工作区的配置区域。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top