6

我正在寻找一种方法来翻译我的 Django 项目。Django 提供的内置机制很棒,但有几个弱点让我去寻找替代方案。

项目所有者必须能够编辑包括英语在内的所有翻译(原始翻译)。使用 gettext 可以使用诸如Pootle之类的工具来编辑翻译,但原始字符串仍然硬编码在文件源或模板中。产品所有者无法更改它们。

可能的解决方案是让 gettext 翻译一些唯一标识符,并将它们翻译成包括英语在内的所有语言,如下所示:

_('form_sumbit_button')

但这使得 pootle 之类的工具几乎无法用于翻译人员。

问题:有没有适合我需要的 Django 项目翻译工具?

4

3 回答 3

4

如果您使用某些消息 ID,它们要么难以理解(“message_2215”),要么您将被迫将消息 ID 与实际消息同步(“请按任意键”=“please_press_any_key”=>“任意键继续" = "any_key_to_continue")。无论哪种方式,真正的字符串对程序员和工具来说都更好。

但是,如果您为字符串使用单独的校对器,则可以执行以下操作:

  1. 创建一个英文“翻译”文件(是的,这有效)
  2. 让您的校对员使用 Pootle 或任何其他工具将英语“翻译”成英语
  3. 确保您的程序员通过更新代码中的字符串来保持该翻译文件未翻译。
  4. (可选)创建一种独立于主代码部署翻译的方法,以便您可以快速修复拼写错误。
于 2010-12-30T13:15:57.123 回答
1

您可能可以将 Pootle 与 _("message_id") 方法一起使用,具体取决于定制 Pootle 的难易程度(我不知道内部结构,所以我不能说,但 IIUC 它使用模板更改通常是的 Django直截了当)。

例如,Pootle 的翻译屏幕有“原始”和“翻译”部分;您也许可以调整模板以在“原始”部分下显示“参考”部分,该部分显示使用特定参考语言(例如英语)的一些规范翻译。

或者您可以使用 Pootle 的替代源语言功能,而无需自定义 Pootle。您可以使用未使用的语言代码(或虚构的语言代码)存储翻译的规范版本。

于 2010-12-29T16:25:25.313 回答
0

使用 Gettext 绝对可以使用标识符,并且有支持这一点的工具。然而,对于一些翻译人员来说,这可能是不寻常的,因为他们习惯于仅下载 .po 文件进行离线翻译,而这不适用于单语翻译。

例如Weblate支持单语 Gettext 文件就好了(我是这个工具的作者):https ://docs.weblate.org/en/latest/formats.html#monolingual-gettext

于 2015-06-30T05:30:02.647 回答