资源文件的自动翻译
使用您自己的翻译存储来翻译 RESX 文件
问题
在多语言 Microsoft .NET 项目中,通常有很多资源文件,这些文件通常很难保持同步和一致。此外,翻译许多 RESX 文件需要大量工作,并且在许多情况下,文本是冗余的。因此,类似或相同的文本被反复翻译。
解决方案
几年前,我决定编写一个工具,使合并、同步和翻译资源文件更容易。它不支持像标题中可能期望的那样的一键自动翻译,但或多或少是一键。事实上,现代企业翻译管理系统就是这样工作的。
这个想法很简单。每当文本被翻译时,这些文本对就会被存储到数据库中。如果需要翻译新的文本,程序将首先在数据库中查找该文本。通过这种方式,翻译质量得到了保证,因为上下文信息以这种方式包含在存储的翻译中。因此,我认为这种方式比让 Google 翻译完成工作要好得多,其他文章也提出了这种建议。
如果没有匹配的翻译,可以将缺少的文本导出到简单的 Excel 文件中,并在翻译后导入。翻译本身可以由专业翻译人员或您自己完成。
配置数据库
- 下载 RESX Manager。最新版本和更多文档可以在 Codeplex 上找到 这里
- 解压存档并运行 ResxManager.exe
- 通过打开 翻译 -> 配置数据库 来设置数据库。我推荐使用 SQL Server 的 LocalDB,但您可以使用网络中的任何 SQL Server。设置从配置文件 ResxManager.exe.config 中读取。请修改设置以匹配您的配置。
- 单击 配置数据库
准备数据库
- 打开包含良好翻译的解决方案。
- 检查文化映射。文化会自动检测,但您必须注意不变文化。我建议使用英语作为不变文化,在我的项目中,它默认是回退文化。在这种情况下,您应该将英语分配给所有“
Invariant
”资源文件,方法是打开上下文菜单并从下拉列表中选择英语。如果您始终使用相同的语言作为不变文化,则不必注意此设置。 - 单击 翻译 -> 将所有翻译存储到数据库
对每个解决方案重复这些步骤。
翻译新项目
- 打开需要翻译的解决方案。
- 如上所述,检查文化映射。
- 单击工具栏中的翻译。RESX Manager 在数据库中搜索源语言中的任何文本,并将相应的结果存储在目标语言中。
您也可以通过展开作为翻译源语言的语言节点来仅翻译选定的语言。然后通过右键单击目标语言来打开上下文菜单。自动翻译将完成这项工作。 - 对于剩余的文本,单击导出以使用 Excel 翻译它们。
- 翻译后,单击导入并选择已翻译的 Excel 文件。您可以将文件分成不同的部分,供不同的人员进行翻译。
- 不要忘记将新导入的文本存储到您的数据库中。