7

我有一个免费的科学应用程序,被近 100 个国家/地区的数千人使用。许多人提出免费翻译。现在 D2009 使这变得更容易(通过集成和外部本地化工具,加上原生 Unicode 支持),我想为几种语言实现这一点,并稳步添加尽可能多的用户精力支持。

我想我会分发一个包含要翻译的字符串列表(数十个但不是数百个)的电子表格,让他们返回它,并比较 2-3 个用户以相同语言提交的内容,然后通过协商一致解决差异. 然后,我将使用集成翻译环境合并本地化,并分发本地化更新。

有人将翻译委托给用户吗?任何陷阱,特定于 D2009 还是其他?

编辑:有没有人将 D2009 内置的本地化支持与 dxgettext 进行比较?

4

5 回答 5

6

我从来都不是免费软件或开源应用程序的专有本地化工具的朋友。使用dxgettextGNU gettext的 Delphi 端口对我来说似乎是一个更好的选择:

  • 集成到程序中(甚至比它的开发晚得多)很容易。
  • 可翻译字符串的提取可以通过命令行程序完成,因此很容易引入到自动构建中。
  • 只需创建一个具有正确结构的新目录,将空的翻译文件复制到其中,然后开始翻译字符串,就可以添加新的翻译。这是每个用户都可以自己做的事情,不需要原作者参与创建新的翻译。这个过程也有即时的满足感——一旦程序重新启动,新的翻译就会立即显示出来。
  • 更改现有翻译比创建新翻译更容易。因此,如果用户发现拼写或其他错误或需要改进翻译,他们可以轻松地更正它们并将更改发送给作者。
  • 新的程序版本与旧的翻译一起工作,系统非常优雅地降级 - 新的和未翻译的字符串简单地显示为未修改。
  • 只能使用记事本进行翻译,但也有一些免费工具可用于创建和管理翻译文件;请参阅 dxgettext 页面上的链接。它们本身是本地化的,并且与电子表格相比也有一些优势:
    • 可以显示源代码中字符串的位置(当然,仅对开源应用程序有意义)。
    • 显示已翻译字符串的百分比。
    • 对已翻译字符串的修改也会突出显示。
  • 整个系统成熟且面向未来——我在 Delphi 4 程序中使用了 dxgettext,甚至对于 Delphi 2009 也不应该进行任何更改——翻译文件一直是 UTF-8 编码的。

一旦您拥有多种语言,使用电子表格进行翻译对我来说似乎不是一个可行的解决方案。假设一个新的程序版本添加了 2 个新字符串并仅稍微更改了 10 个字符串 - 您是否不需要在所有几十个电子表格文件中添加新字符串并突出显示更改的字符串,然后再次将它们发送给您的翻译人员?使用 dxgettext 您只需将更改后的 po 文件邮寄给所有人。

编辑:

关于 dxgettext 和库可能存在的问题,有一个有趣的评论。我从来没有遇到过这种情况,因为我已经完全停止使用资源字符串了。我们的课程大部分是德语,只有少数是英语或翻译成多种语言。

我们的内部库在所有可翻译字符串周围使用“_(...)”。有定义ENGLISH,并且USEGETTEXT是在每个项目的基础上设置的。如果定义ENGLISHUSEGETTEXT,则将英文文本编译到 DCU 中,否则将德语文本编译到 DCU 中。如果USEGETTEXT未定义“_()”被编译为按原样返回其参数的函数,否则使用 dxgettext 翻译查找。

于 2009-06-20T05:25:07.153 回答
4

我有......可能会有一些挑战。

  • 字符串本身并没有多大意义,它需要一个上下文。
  • 推论,同一个字符串可能需要有多个翻译。
  • 屏幕空间:注意不同语言的长度,例如,法语往往比英语更冗长。
  • 除非您精通给定语言,否则您将无法评估差异。
于 2009-06-19T22:16:07.023 回答
2

我使用TsiLang Translation Suite使最终用户能够进行翻译。我修改了代码以允许加密,这样如果有人做得很好,他们可以保护他们的名字免受翻译文件的影响,但总的来说,这个想法是人们可以分享他们的翻译,并添加/编辑他们想要的任何小部分。鉴于这一切都发生在应用程序中,并且具有即时可见性,因此它运行得非常好。

于 2009-06-20T08:40:41.730 回答
2

正如您所提到的,D2009 带有本地化工具。为什么不简单地使用它们?AFAIK 您可以分发外部翻译管理器(etm.exe)。你还需要什么别的吗?

此外,本地化不仅仅是翻译文本。ETM 还支持 .dfm 资源的翻译。

于 2009-06-20T08:51:10.150 回答
1

为了完整起见,这是我最近发现的另一个名为Delphi Localizer的 Delphi 本地化工具,它看起来设计和完善。该工具可免费用于商业用途,但政府项目除外(不完全确定为什么会例外)。

FWIW 我过去使用过 TsiLang Translation Suite,目前正在使用 DevExpress VCL 附带的本地化工具进行另一个项目。后者与他们的组件以及第三方组件很好地集成。

于 2009-06-23T05:49:08.457 回答