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

时间:2009-01-13 20:11:04

标签: .net winforms localization

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

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

我需要将字符串发送到Excel或Word中的翻译器。由于翻译人员没有任何资源经验,我最终会将所有翻译过的字符串移回我的表格,并根据需要更改控件的大小,位置等。

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

2 个答案:

答案 0 :(得分:1)

我以与我相同的方式进行本地化,您只需进入项目的Properties目录并在文本编辑器中打开 Resources.resx 文件。在那里,字符串在XML节点中,看起来像这样;

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

一旦你翻译了它们,它们会进入类似命名的文件,例如法语的 Resources.fr.resx

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

或者,根据您的描述,您可能会在每个表单的基础上进行本地化。在这种情况下,上述情况适用,但它是您感兴趣的表单的Resx文件。

答案 1 :(得分:0)

Rob,在Resources.resx文件中,我只有我在MessageBoxes中手动显示的字符串等。这些字符串可以毫无问题地复制到Excel。

但是如果我打开属于表单的MyForm.resx,则此文件为空(事实上,所有表单的所有resx文件都是空的)。如何访问表单的字符串表?

如果有任何不同,我会使用VS2008。