我们从我们的数据库中加载我们的翻译。要检索捆绑包,我们有一个自定义java.util.ResourceBundle.Control。
为了翻译我们的 e4 RCP 应用程序,我已经创建了一个TranslationService,我使用插件将它添加到根上下文中。那没问题(只是我不得不复制 95% 的BundleTranslationProvider,因为我没有看到任何其他方式)。
现在我想使用新的消息扩展(Eclipse Luna 附带)来翻译其余部分。据我从默认MessageFactoryServiceImpl的来源可以看出,似乎也没有一种简单的方法可以在那里注入我的 ResourceBundle.Control 。
在链接的博客系列中,描述了从数据库获取资源包的用例,但通过使用基于类的资源包来解决。这是没有选择的,因为我不能为每个资源包和每个语言环境实现一个类。从数据库加载资源包的原因是能够将翻译部署为新语言,而无需重新部署应用程序。
是通过复制 99% 的默认MessageFactoryServiceImpl创建我自己的 IMessageFactoryService 来实现这一点的唯一方法,只是将我们的控制权传递给对 ResourceBundleHelper 的调用?