我們已經創建了一個帶有一些WinForms的類庫項目。 我們通過在VS設計器中構建(設置Localizable = true)來翻譯窗體。本地化將從3方應用程序中使用的WinForms
VS將爲包含衛星資源文件的每種語言創建程序集和不同的文件夾。
該程序集將由3方應用程序加載。
現在我們遇到了這個問題,即如果我們通過三方應用程序啓動表單,我們的表單將不會被本地化。 看來,我們的程序集無法從語言子目錄加載資源文件。
是否有可能通過代碼加載此資源文件,所以WinForms的默認本地化機制將工作?
編輯
如果我複製語言文件夾(DE,EN,...)到主3方應用程序的文件夾,一切都將工作就像一個魅力。
我已經試過了,但它似乎不是問題所在。 我測試了創建一個資源文件並使用自動生成的ResourceManager與'ResourceManager.GetString()'並提供不同的CultureInfos,但沒有成功。 所以我認爲,我的程序集無法自動找到衛星資源文件並加載它。 – Markus
@Markus:我使用WinForms本地化功能,從.NET 1.0開始,沒有這樣的問題。你的應用程序目標目錄中有衛星程序集嗎?例如。 MyForms.dll並行於「de」子目錄中的MyApp.exe和German MyForms.resources.dll? – KBO
是的。 我認爲問題是,3方應用程序加載我的程序集,而我現在執行的程序集找不到衛星資源。 如果我將包含資源文件的語言文件夾(de,en,...)複製到三方應用程序的主文件夾中,它將像魅力一樣工作。 所以我需要通過代碼手動加載資源,但我不知道如何。 – Markus