Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从表单中获取所有字符串以进行本地化?_.net_Winforms_Localization - Fatal编程技术网

.net 如何从表单中获取所有字符串以进行本地化?

.net 如何从表单中获取所有字符串以进行本地化?,.net,winforms,localization,.net,Winforms,Localization,我读过的所有关于WinForms应用程序本地化的文章都假设我已经翻译了所有字符串。根据文章,我应该将Localizable属性设置为true并编辑所有控件 但是如何从表单中获取所有原始(英语)字符串?假设我有一个完整的应用程序,到目前为止还没有本地化。我应该手动解析设计器文件中的字符串,还是有其他更简单的方法 我需要用Excel或Word将字符串发送给翻译人员。由于翻译人员对资源没有任何经验,我最终会将所有翻译的字符串移回我的表单,并在需要时更改控件的大小、位置等 编辑:感谢Rob的回答和评论,

我读过的所有关于WinForms应用程序本地化的文章都假设我已经翻译了所有字符串。根据文章,我应该将Localizable属性设置为true并编辑所有控件

但是如何从表单中获取所有原始(英语)字符串?假设我有一个完整的应用程序,到目前为止还没有本地化。我应该手动解析设计器文件中的字符串,还是有其他更简单的方法

我需要用Excel或Word将字符串发送给翻译人员。由于翻译人员对资源没有任何经验,我最终会将所有翻译的字符串移回我的表单,并在需要时更改控件的大小、位置等


编辑:感谢Rob的回答和评论,解决方案是首先将Localizable属性设置为true。然后,我可以很容易地从属于表单的resx文件中复制所有字符串。

如果您使用与我相同的方式进行本地化,只需进入项目的属性目录,并在文本编辑器中打开Resources.resx文件。其中,字符串位于如下所示的XML节点中

<data name="ErrorLaunching" xml:space="preserve">
  <value>Error launching Ivara</value>
  <comment>MessageBox text in LogonForm</comment>
</data>

启动Ivara时出错
LogonForm中的MessageBox文本
一旦你把它们翻译出来,它们就会进入类似的命名文件,比如法语的Resources.fr.resx

您还可以在Visual Studio中打开Resources.resx,选择字符串并复制/粘贴到Excel中


或者,根据您的描述,您可能正在按表单进行本地化。在这种情况下,除您感兴趣的是表单的Resx文件外,上述内容适用。

Rob,在Resources.Resx文件中,我只有手动显示在MessageBox等中的字符串。这些字符串可以复制到Excel中,不会出现任何问题

但是,如果我打开属于某个表单的MyForm.resx,则该文件是空的(实际上,所有表单的所有resx文件都是空的)。如何进入表格的字符串表


如果有什么不同,我会使用VS2008。

这应该是一个注释。您只需将表单设置为可本地化并保存即可。然后,如果您查看设计器中的initializeComponent()方法,您应该会看到这样一行:;资源。ApplyResources(此,“$this”);如果是这样的话,Resx应该包含您的所有数据。我刚刚在VS2008团队系统中通过一个简单的测试项目完成了这项工作,它按照预期工作。