我将创建一个字符串资源文件,该文件将用于我公司所有未来产品的本地化。让我们称该文件为CAPSStrings.resx,因为它将是它的名称。在C#下的WinForms中,将Localizable属性设置为True的表单具有自己的资源文件。除了字符串资源,这些文件还包含表单中控件的所有非默认设置。
我希望能够将CAPSStrings.resx中的字符串导入到表单资源文件中,以便在使用Microsoft Visual Studio提供的单独翻译工具开发或翻译表单时,可以使用CAPSStrings.resx的翻译。 。不必在运行时甚至在设计时都执行此操作。运行一个单独的独立程序就足够了,该程序可以知道源文件和目标文件的位置。
什么是最好的方法?
答案 0 :(得分:0)
有了Resx
文件,您可以为您的应用程序创建附属程序集。
在本文中,我假设您创建了一个名为ResGenExample
的项目,其中包含一个Form1
,并且您已将Localizable
的{{1}}属性设置为Form1
并且您有一个true
。
这篇文章介绍了如何在不重建应用程序的情况下为具有Resx文件的新语言创建附属程序集。
具有Resx文件而无需重建应用程序的新语言的卫星程序集
要这样,请按照以下步骤操作:
比方说,您已经基于现有的Form1.resx
创建了包含波斯语本地化值的Form1.fa-IR.resx
。
打开Visual Studio开发人员命令提示符,然后使用Form1.resx
命令移至包含CD
的文件夹以运行某些命令。
使用resgen.exe通过以下命令将Form1.fa-IR.resx
文件转换为Form1.fa-IR.resx
:
Form1.fa-IR.resources
使用al.exe生成包含您在上一步中创建的Form1.fa-IR.resx ResGenExample.Form1.fa-IR.resources
文件的附属程序集:
.resources
在应用程序的可执行文件附近创建一个al /embed:ResGenExample.Form1.fa-IR.resources /out:ResGenExample.resources.dll /c:fa-IR
文件夹(例如在Debug文件夹中),然后将生成的附属程序集复制到该文件夹中。
然后在显示fa-IR
之前设置UICulture
就足够了:
Form1
在这里您可以找到有关Creating Satellite Assemblies for Desktop Apps的MSDN帖子