2009-01-13 46 views
0

我读过关于WinForms应用程序本地化的所有文章都假设我已经翻译了所有的字符串。根据文章,我应该将Localizable属性设置为true并编辑所有控件。如何从表单中获取所有字符串以进行本地化?

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

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

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

回答

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文件之外,上述内容适用。

0

Rob,在Resources.resx文件中,我只有字符串,我在MessageBoxes中手动显示等。字符串可以复制到Excel没有任何问题。

但是,如果我打开属于一个窗体的MyForm.resx,这个文件是空的(事实上,所有窗体的所有resx文件都是空的)。我如何到达表格的字符串表格?

我使用VS2008,如果这有什么区别。

+0

这应该是一条评论。 您应该只需将表单设置为Localizable并保存即可。然后,如果你看着设计器,在IntitializeComponent()方法中,你应该看到这样一行; resources.ApplyResources(this,“$ this”);如果是这样,Resx应该拥有所有的数据。 – 2009-01-13 20:31:14

相关问题