每个表单/其他字符串仅使用1个资源文件而不是1个资源文件

时间:2011-06-03 23:21:02

标签: c# resources localization

我们正在将项目中的表单和字符串本地化并遇到问题;将Localizable设置为true时,Visual Studio会为每个表单创建一个资源文件。

这只不过是将所有资源文件发送给翻译人员的小麻烦,但是有可能让VS使用全局资源文件吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

像尤达一样会说,可能是。

加载对话框时必须动态转换对话框。我在几个项目上做了这个,我想说它比拥有本地化的资源文件要好得多。

答案 1 :(得分:1)

正如其他人已经说过的那样,可以手动使用全局资源文件 。我认为它实际上更有问题,更难维护,但仍有可能。

现在为什么MS决定每个表单的一个资源文件。那么,从国际化的角度来看,这个解决方案是 更好 。一方面,它为译者提供了一件重要的事情:背景。另一方面,项目的增长是典型的。您不太可能同时对所有表单进行更改。你知道吗?根据您与翻译供应商的交易,如果只有少数字符串会发生变化,您通常可以在本地化上花费更少。这只是因为他们可以使用Translation Memory(TM)软件 使用一个全局资源文件,通常没有上下文,也没有办法合理使用TM。结果是,翻译不太准确并且需要更长时间(需要实际读取大块文本以确保所有内容都被正确翻译)。

顺便说一句,您不需要发送单个资源文件。相反,您可以使用某种翻译工具包生成器(或翻译管理器软件)来创建对翻译人员有用的内容(例如翻译记忆库友好文件)。可悲的是,我不能给你这些工具的名称(虽然我知道它们很少),因为我的雇主正在使用自定义系统而且我没有机会使用其他工具。

答案 2 :(得分:0)

WinFrom不支持在VS中自动为Forms生成全局资源。 您必须自己分配字符串。例如:

  1. 将Resources.designer.cs的Resources.resx添加到您的项目中;
  2. 在Resources.resx中定义字符串。
  3. 在form.cs代码中,在构造函数中指定字符串,如:

    Label1.Text = Resources.Label1Text;