我正在多语言环境中构建 C++/MFC 程序。我有一种主要(国家)语言和三种国际语言。每次我向程序添加功能时,我都必须使国际语言与国内语言保持同步。Visual Studio 中的资源编辑器不是很有帮助,因为我经常会留下未翻译的字符串、对话框等。
我想知道你们是否知道可以编辑资源(.rc)文件和
- 构建一个文件,其中仅包含要翻译的字符串及其各自的 ID,并接受另一种语言的相同(或相似)文件(这将很有帮助,因为通常翻译是由其他人完成的),或者
- 处理翻译本身,允许同时查看不同语言的相同字符串。
我正在多语言环境中构建 C++/MFC 程序。我有一种主要(国家)语言和三种国际语言。每次我向程序添加功能时,我都必须使国际语言与国内语言保持同步。Visual Studio 中的资源编辑器不是很有帮助,因为我经常会留下未翻译的字符串、对话框等。
我想知道你们是否知道可以编辑资源(.rc)文件和
你可以看看 Sisulizer http://www.sisulizer.com。虽然很贵。我们正在评估它是否可以在我的公司使用,以管理正在进行的翻译的头痛。我在他们的关于页面上读到该公司是由离开 Multilizer 和其他类似公司的人创立的。
查看appTranslator,它相对便宜且效果很好。开发它的人对增强请求和错误报告非常敏感,所以你得到了很好的支持。
这是我用来生成资源文件以进行不同语言测试的脚本。它只是解析来自 babelfish 的响应,因此翻译的质量与醉酒猴子所做的一样高,但它对于测试等很有用
for i in $trfile
do
key=`echo $i | sed 's/^\(.*\)=\(.*\)$/\1/g'`
value=`echo $i | sed 's/^\(.*\)=\(.*\)$/\2/g'`
url="http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&lp=$langs&btnTrTxt=Translate&trtext=$value"
wget -O foo.html -A "$agent" "$url" *&> /dev/null
tx=`grep "<td bgcolor=white class=s><div style=padding:10px;>" foo.html`
tx=`echo $tx | iconv -f latin1 -t utf-8 | sed 's/<td bgcolor=white class=s><div style=padding:10px;>\(.*\)<\/div><\/td>/\1/g'`
echo $key=$tx
done
rm foo.html
查看Lingobit Localizer。昂贵,但非常值得。
根据我的经验,国际化需要的不仅仅是翻译字符串。许多字符串在翻译时需要更多的对话框空间。因此,能够为每种语言自定义对话框很有用。否则,您必须为翻译后的字符串创建带有额外空间的对话框,这样在以英语显示时看起来不太理想。
很久以前,我正在为 MFC 应用程序使用翻译工具,但生产该软件的公司停止销售它。当我试图找到价格合理的替代品时,我没有找到。
我们正在使用 Multilizer ( http://www.multilizer.com/ ),虽然有时使用起来有点棘手,但最后有点耐心,它工作得很好。
我们甚至有一个翻译网站,翻译人员可以下载我们的项目,然后使用 Multilizer 命令行功能上传翻译。
如果没有,则很容易遍历资源中的所有字符串并将它们与国际资源进行比较。你可以用一个简单的网格来做到这一点。
最后,我们最终构建了自己的外部工具来管理它。我们的开发人员在英语字符串表中工作,每个自动构建都会将我们添加/更改和删除的字符串发送给翻译管理器。他还可以随时从旧版本运行报告,以确定翻译所需的内容。
查看RC-WinTrans。它是我公司使用的商业工具。它基本上将我们的 .RC 文件(或 .resx 文件)导入数据库,然后我们将其发送到不同的办公室进行翻译。然后,该工具可以从数据库中为每种语言导出翻译的 .RC 文件(或 .resx 文件)。它甚至有一个基本的对话框编辑器,因此翻译人员可以调整对话框中各种控件的大小,以确保翻译的文本适合。
它还接受许多命令行参数并具有 COM 自动化接口,因此您可以更轻松地将其集成到构建过程中。它对我们来说效果很好,我们实际上有成千上万的字符串和对话框等。
(我们目前有版本 7,所以我所说的可能与他们最新的版本 8 有点不同。)
也可以试试 AppTranslator: http: //www.apptranslator.com/。它有一个内置的资源编辑器,例如,翻译人员可以在需要时放大一个文本框。它为开发人员和翻译人员提供单独的版本等等。
使用 .rc 文件和 Visual Studio 管理本地化和翻译并不是一个好主意。通过 exe 开始本地化要聪明得多(尽管违反直觉)。在这里阅读原因: http: //www.apptranslator.com/misconceptions.html
我最近写了这个,它集成到 VS 中:
https://github.com/ekkis/Powershell/blob/master/MT.ps1
主要是因为我对那里的解决方案不满意。您需要从 M$ 获取客户 ID(但他们免费为您提供 200 万字/月的翻译 - 还不错)
ResxCrunch即将推出,它将在一个表中编辑多种语言的多个资源文件。