我們從我們的數據庫中加載我們的翻譯。要檢索捆綁我們有一個自定義java.util.ResourceBundle.Control。Eclipse-RCP:使用自定義ResourceBundle.Control獲取ResourceBundles
把我們E4 RCP應用程序,我已經創建了一個TranslationService,我添加到使用的插件根上下文。這是沒有問題的(只有我不得不復制BundleTranslationProvider的95%,因爲我沒有看到任何其他方式)。
現在我想用new Message Extension(與Eclipse月神推出)的休息翻譯。據我可以看到從默認MessageFactoryServiceImpl來源,似乎並沒有一個簡單的方法注入我的ResourceBundle.Control那裏。
在linked blog series,從數據庫中獲取該資源束的使用情況進行了說明,但解決了通過使用基於類資源包。這是沒有選擇的,因爲我無法爲每個資源包和每個區域設置實現一個類。從數據庫加載資源包的原因是能夠在不重新部署應用程序的情況下將翻譯部署到新的語言中。
通過複製99%的默認MessageFactoryServiceImpl來創建我自己的IMessageFactoryService來實現這一點,只是爲了將我們的控制權傳遞給對ResourceBundleHelper的調用?
啊,我不知道BundleTranslationProvider是導出的。我以爲是因爲它是在一個內部的包中,它是私人的。延長該課程是否存在?但太糟糕了,getBundle方法是私有的,所以我仍然需要複製它。 –
似乎在ResourceBundleHelper和BundleTranslationProvider中有一些重複的代碼用於從contributionUri中檢索Bundle。 –
工程就像一個魅力。非常感謝你。雖然我沒有使用LifecycleManager,但使用插件將我的BundleLocalisation和TranslationService設置爲IEclipseContext。你看到這個問題嗎? https://gist.github.com/tschulte/9003397 –