C# 将所有winforms资源文件合并为单个资源文件

C# 将所有winforms资源文件合并为单个资源文件,c#,winforms,localization,C#,Winforms,Localization,一段时间以来,我一直在尝试本地化WinForms应用程序。我使用的方法是将窗体的Localizable属性设置为true,更改了语言并更改了控件的文本属性。问题是我的应用程序有多个窗体,我不希望每个窗体都有一个资源文件,我希望使用一个通用的单资源文件对应用程序进行本地化。我应该合并这些资源文件还是有其他方法?感谢您的帮助。(注意:为了充分披露,我是Visual Studio第三方本地化程序的开发人员)。我以前去过这条大街,虽然我再也记不起细节了(我得再把它们挖出来),但你不太可能真的想这么做。这

一段时间以来,我一直在尝试本地化WinForms应用程序。我使用的方法是将窗体的Localizable属性设置为true,更改了语言并更改了控件的文本属性。问题是我的应用程序有多个窗体,我不希望每个窗体都有一个资源文件,我希望使用一个通用的单资源文件对应用程序进行本地化。我应该合并这些资源文件还是有其他方法?感谢您的帮助。

(注意:为了充分披露,我是Visual Studio第三方本地化程序的开发人员)。我以前去过这条大街,虽然我再也记不起细节了(我得再把它们挖出来),但你不太可能真的想这么做。这不是微不足道的,所以无论你从中得到什么好处,都可能被缺点所压倒。以这种方式实施和维护您的程序要困难得多。如果您想这样做是因为它比处理一堆用于翻译目的的“.resx”文件更简单(我同意,而且MSFT的翻译“.resx”文件的系统非常差,IMHO),那么最好使用第三方翻译工具(因为Visual Studio没有提供更好的工具)。我不是建议推广我自己的产品(将所有字符串移动到一个文件中进行外部翻译),而是因为坚持使用MSFT的本地系统(无论您选择使用哪种第三方工具)是合理的更容易的。

我认为,您应该为所有winforms使用一个单独的resx文件,还有一个与resx和winforms交互的包装器类。不清楚您想要什么。还不清楚设计师应该如何本地化表单(如果不是每种语言,那么它应该在哪里保留不同的值,例如,
Label
s)。但是,您始终可以自由地实现自己的本地化管理器,这与designer无关。为什么每个表单有多个resx文件是问题?您的实际问题是否与附属程序集的存在有关(near exe文件中有多个文件夹和DLL)?事实上,我每种语言和每种表单都有一个资源文件。我想通过单个/全局资源文件对表单进行本地化,问题不在于DLL。@Rohit,我遵循您提到的方法,但我想知道是否还有其他方法。