如何将字符串资源文件导入到表单的资源文件中?

时间:2018-06-25 14:05:32

标签: c# .net winforms localization

我将创建一个字符串资源文件,该文件将用于我公司所有未来产品的本地化。让我们称该文件为CAPSStrings.resx,因为它将是它的名称。在C#下的WinForms中,将Localizable属性设置为True的表单具有自己的资源文件。除了字符串资源,这些文件还包含表单中控件的所有非默认设置。

我希望能够将CAPSStrings.resx中的字符串导入到表单资源文件中,以便在使用Microsoft Visual Studio提供的单独翻译工具开发或翻译表单时,可以使用CAPSStrings.resx的翻译。 。不必在运行时甚至在设计时都执行此操作。运行一个单独的独立程序就足够了,该程序可以知道源文件和目标文件的位置。

什么是最好的方法?

1 个答案:

答案 0 :(得分:0)

有了Resx文件,您可以为您的应用程序创建附属程序集。

在本文中,我假设您创建了一个名为ResGenExample的项目,其中包含一个Form1,并且您已将Localizable的{​​{1}}属性设置为Form1并且您有一个true

这篇文章介绍了如何在不重建应用程序的情况下为具有Resx文件的新语言创建附属程序集。

具有Resx文件而无需重建应用程序的新语言的卫星程序集

要这样,请按照以下步骤操作:

  1. 比方说,您已经基于现有的Form1.resx创建了包含波斯语本地化值的Form1.fa-IR.resx

  2. 打开Visual Studio开发人员命令提示符,然后使用Form1.resx命令移至包含CD的文件夹以运行某些命令。

  3. 使用resgen.exe通过以下命令将Form1.fa-IR.resx文件转换为Form1.fa-IR.resx

    Form1.fa-IR.resources
  4. 使用al.exe生成包含您在上一步中创建的Form1.fa-IR.resx ResGenExample.Form1.fa-IR.resources 文件的附属程序集:

    .resources
  5. 在应用程序的可执行文件附近创建一个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帖子