将现有 RESX 文件导入 C#/WPF 项目的正确过程

Posted

技术标签:

【中文标题】将现有 RESX 文件导入 C#/WPF 项目的正确过程【英文标题】:Proper procedure to import existing RESX files into a C#/WPF project 【发布时间】:2014-06-03 02:31:15 【问题描述】:

我用键和字符串设置了我的自动生成的 Resource.resx 文件。我还从翻译人员那里获得了另外三个德语、法语和西班牙语的 resx 文件。我无法使本地化功能正常运行,并且我怀疑 resx 文件没有被正确调用。我通过将它们拖到“属性”下的解决方案资源管理器中来将它们添加到项目中。我有一个挥之不去的怀疑,只是将它们拖进来并不能在幕后建立适当的联系。

现在我的问题完全有可能出在其他地方。如果有人能告诉我这种方式添加资源文件是否可以,正确的方式是什么,它将节省我大量的时间花在追逐我的尾巴上。谢谢!

【问题讨论】:

【参考方案1】:

Visual Studio 中的 Resx 文件包含一个特殊工具,该工具在构建时运行并将它们转换为嵌入式资源。右键单击原始 VS 创建的 resx 文件,然后单击属性。您应该看到构建工具或类似的东西。还要注意资源类型(嵌入式等)。确保您与手动添加的文件的这些设置相匹配。

设置完成后,您需要使用CurrentUICulture 属性告诉.NET 获取适当的资源。您可以选择在安装时或运行时更改文化/语言。这是一个全面的教程,描述了可供您使用的各种选项:

WPF Localization Using RESX Files

也就是说,作为最佳实践,翻译后的 Resx 文件通常部署为卫星程序集。主应用程序 DLL/EXE 仅包含语言中性资源文件。其他资源文件被编译成单独的程序集,并与特定的命名约定并排部署。这允许您在部署应用程序之后动态添加翻译、本地化等。介绍如下:Packaging and Deploying Resources in Desktop Apps

【讨论】:

以上是关于将现有 RESX 文件导入 C#/WPF 项目的正确过程的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更改语言就像英语到法语 wpf

WPF 访问 Resources.resx 资源文件

WPF 中.XAML文件如何读取资源文件?

如何将现有表单添加到新项目?

VS2012 - 将WPF现有用户控件添加到项目中

循环遍历 .resx 文件中的所有资源