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