【问题标题】:Do you know of a good program for editing/translating resource (.rc) files?你知道编辑/翻译资源(.rc)文件的好程序吗?
【发布时间】:2010-09-08 07:02:23
【问题描述】:

我正在多语言环境中构建 C++/MFC 程序。我有一种主要(国家)语言和三种国际语言。每次我向程序添加一项功能时,我都必须使国际语言与国内语言保持同步。 Visual Studio 中的资源编辑器不是很有帮助,因为我经常会留下未翻译的字符串、对话框等。

我想知道你们是否知道可以编辑资源(.rc)文件和

  • 构建一个文件,其中仅包含要翻译的字符串及其各自的 ID,并接受其他语言的相同(或相似)文件(这会很有帮助,因为通常翻译是由其他人完成的),或者
  • 自行处理翻译,允许同时查看不同语言的相同字符串。

【问题讨论】:

  • 我无法在我的 100 点代表级别重新标记,但我们应该在这个问题中添加 I18N 和 Windows(可能是 Win32?)。

标签: c++ windows visual-studio mfc internationalization


【解决方案1】:

查看Lingobit Localizer。贵,但物有所值。

【讨论】:

    【解决方案2】:

    这是我用来生成资源文件以进行不同语言测试的脚本。它只是解析来自 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
    

    【讨论】:

      【解决方案3】:

      查看appTranslator,它相对便宜且效果很好。开发它的人对增强请求和错误报告非常敏感,所以你得到了很好的支持。

      【讨论】:

        【解决方案4】:

        您可以看看 Sisulizer http://www.sisulizer.com。虽然很贵。我们正在评估它是否可以在我的公司使用,以解决正在进行的翻译的难题。我在他们的关于页面上读到该公司是由离开 Multilizer 和其他类似公司的人创立的。

        【讨论】:

          【解决方案5】:

          根据我的经验,国际化需要的不仅仅是翻译字符串。许多字符串在翻译时需要更多的对话框空间。因此,能够为每种语言自定义对话框很有用。否则,您必须为翻译后的字符串创建带有额外空间的对话框,这样在以英文显示时看起来不太理想。

          很久以前,我正在为 MFC 应用程序使用翻译工具,但生产该软件的公司停止销售它。当我试图找到价格合理的替代品时,我没有找到。

          【讨论】:

            【解决方案6】:

            如果没有,则很容易遍历资源中的所有字符串并将它们与国际资源进行比较。你可以用一个简单的网格来做到这一点。

            【讨论】:

              【解决方案7】:

              最终,我们构建了自己的外部工具来管理它。我们的开发人员在英语字符串表中工作,每个自动构建都会将我们添加/更改和删除的字符串发送给翻译管理器。他还可以随时从旧版本生成报告,以确定需要翻译的内容。

              【讨论】:

                【解决方案8】:

                查看RC-WinTrans。它是我公司使用的商业工具。它基本上将我们的 .RC 文件(或 .resx 文件)导入到我们发送到不同办公室进行翻译的数据库中。然后,该工具可以从数据库中为每种语言导出翻译的 .RC 文件(或 .resx 文件)。它甚至有一个基本的对话框编辑器,因此翻译者可以调整对话框中各种控件的大小,以确保翻译的文本适合。

                它还接受许多命令行参数并具有 COM 自动化接口,因此您可以更轻松地将其集成到构建过程中。它对我们来说效果很好,我们实际上有成千上万的字符串和对话框等。

                (我们目前有版本 7,所以我所说的可能与他们最新的版本 8 有点不同。)

                【讨论】:

                  【解决方案9】:

                  也可以试试 AppTranslator:http://www.apptranslator.com/。它有一个内置的资源编辑器,例如,翻译人员可以在需要时放大一个文本框。它为开发人员和翻译人员提供单独的版本等等。

                  【讨论】:

                    【解决方案10】:

                    我们正在使用 Multilizer (http://www.multilizer.com/),虽然有时使用起来有点棘手,但最后只要有一点耐心,它就可以很好地工作。

                    我们甚至有一个翻译网站,翻译人员可以下载我们的项目,然后使用 Multilizer 命令行功能上传翻译。

                    【讨论】:

                      【解决方案11】:

                      使用 .rc 文件和 Visual Studio 管理本地化和翻译并不是一个好主意。通过 exe 开始本地化要聪明得多(尽管违反直觉)。在这里阅读原因:http://www.apptranslator.com/misconceptions.html

                      【讨论】:

                        【解决方案12】:

                        我最近写了这个,集成到VS中:

                        https://github.com/ekkis/Powershell/blob/master/MT.ps1

                        主要是因为我对现有的解决方案不满意。您需要从 M$ 获取客户 ID(但他们每月免费为您提供 200 万字的翻译 - 不错)

                        【讨论】:

                        • 嗨,ekkis,这听起来不错,但它似乎只适用于 ResX 文件,而不适用于 RC 文件。我说的对吗?
                        【解决方案13】:

                        ResxCrunch即将推出,它将在一个表格中编辑多种语言的多个资源文件。

                        【讨论】:

                          猜你喜欢
                          • 2013-01-21
                          • 2010-09-27
                          • 2011-03-09
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2014-06-19
                          • 2010-10-21
                          相关资源
                          最近更新 更多