Web应用程序的免部署gettext转换

时间:2012-08-03 10:32:11

标签: django internationalization gettext po

我正在研究的基于Django的Web应用程序被翻译成几种不同的语言。到目前为止,我们已经使用gettext / PO文件来翻译静态文件(代码和模板中的文本,静态页面);存储在数据库中的CMS页面和文本通过管理界面进行翻译。

这种常见设置适用于我们的开发人员,但我们的译员并不喜欢使用他们的翻译工具(使用PO文件)而不是使用管理界面。

现在越来越多的内容从代码迁移到我们尝试使用gettext for texts stored in the DB的数据库。虽然这个想法听起来不错,但围绕它的工作流程非常麻烦:

  1. 编辑器更改管理界面中的英文文本
  2. 开发人员运行命令以在连接到生产数据库的主机上提取消息
  3. PO文件发送给翻译
  4. 翻译员在完成翻译后将文件发回给开发人员
  5. 开发人员编译mo文件,在代码库中检查并部署
  6. 虽然可以使用像Transifex这样的服务自动执行某些步骤,但我看不到如何绕过最后一步。由于数据库更改而必须进行部署听起来不对。

    是否有人能够为不需要部署的Web应用程序提供基于gettext的基于gettext的翻译工作流程?

1 个答案:

答案 0 :(得分:1)

我们使用Django-rosetta(其中有一个额外的好处是不关心PO条目的来源)来管理我们的大部分i18n需求。关于你在这里问的是我们最终得到的工作流程:

  1. 翻译使用自己的管理界面登录rosetta
  2. Rosetta解析所有po文件并呈现页面以编辑翻译
  3. 每次用户点击保存时,rosetta会自动重启django并且所有更改现在都已生效并已应用
  4. 如果翻译人员回到django,他们会看到他们的新字符串是什么样的
  5. 如果翻译人员更喜欢使用他们自己的PO编辑软件,那么他们必须向我们提供我们不鼓励的新版本
  6. 我们编写了一些脚本来帮助我们完成其他自动化步骤,但是这种设置非常好用。我们甚至已将(基于rosetta代码的一些自定义修改)集成到rosetta中,以便于翻译。