为c# App添加新的语言资源文件

本文关键字:语言 资源 源文件 App 添加 | 更新日期: 2023-09-27 18:18:46

我有一个多语言c# WinForms应用程序,它使用资源文件作为多语言文本。是否有可能在不重新编译应用程序的情况下添加包含其他语言的新资源文件?

最终的目标是让客户有可能将他的应用程序翻译成各种语言,并部署新的语言/资源文件,而不需要我们重新编译整个应用程序。

为c# App添加新的语言资源文件

您正在寻找"卫星组件"。在MSDN网站上有一个很好的解释和教程:创建卫星程序集

当然,只需创建您的resx文件并使用resgen独立编译即可。

"资源文件生成器(Resgen.exe)将文本(.txt或.restext)文件和基于xml的资源格式(.resx)文件转换为公共语言运行时二进制(.resources)文件,这些文件可以嵌入到运行时二进制可执行文件或附属程序集中。(参见为桌面应用程序创建资源文件。)"

http://msdn.microsoft.com/en-us/library/ccec7sz1.aspx

资源文件是嵌入式资源;因此,不进行编译就不可能添加和使用新的资源文件。可以选择使用附属组件。

另一方面,您可以只使用xml文件来存储必要的数据,然后使用基于区域性的命名约定,应用程序可以从相关的xml文件中读取资源。

为每个GUI组件创建一个XML文档因此,如果您修复了语言,您的应用程序将反序列化xml文档并填充新值