python - 有什么方法可以像 django makemessage 一样生成 Tornado 本地化 CSV 文件吗?

标签 python localization csv internationalization tornado

Django makemessage 可以生成 i18n 文件,并且更容易翻译。

据我所知,tornado 已经同时支持 CSV 格式和 gettext 格式,但我只能使用 CSV 版本,因为我将在 appengine 中使用它。

因此,我正在寻找一种方法来根据扫描我的代码和模板为 Tornado 生成这些 CSV 文件。

最佳答案

好吧,我觉得你有点困惑。您可以在 appengine 中使用 gettext 和 po/mo 文件,因为 gettext 是从 Google 的 django.util 实现中导出的(对此的讨论可以在 google-appengine google group 中找到):

from django.utils.translation import gettext as _ 

我不熟悉 AppEngine CSV 的 i18n 格式,但有一种非常简单的方法可以使用 xgettext 从 tornado 的代码和模板中提取国际化字符串,基本上只需从命令行强制执行 python。例如:

 xgettext -L Python -o myproject.pot  *.html

该命令将从当前目录中的 *.html 中获取所有国际化字符串,并将它们放在 myproject.pot 中。您可以使用任何商业或开源工具(我会推荐 poeditpootle )初始化该文件并翻译成比方说 ./it_IT/myproject.po ,一旦您翻译了所有字符串,您就可以使用 Translate Toolkit's po2csv 将文件转换为 CVS,这是也是用 python 写的:

po2csv -i it_IT/myproject.po -o it_IT/myproject.csv 

格式是 location:codeLine,source,target 很简单,很容易转换成你需要的任何其他格式(我不熟悉 appengine 的 i18n CSV 格式),你可以调用 po2csv没有 -o 参数并通过管道将输出从 STDOUT 输出。

我不知道这是否能解决您的问题,但基本上我认为您应该采用 code->pot/po->csv 工作流程,因为有许多工具需要 po/pot/mo 并允许您处理您的翻译或使用翻译内存库/拼写检查器等...如果您需要更多帮助,请尝试告诉我。

关于python - 有什么方法可以像 django makemessage 一样生成 Tornado 本地化 CSV 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103088/

相关文章:

python - 在内存中加载大型字典的巨大内存使用量

Java CSV Reader,读取剩余数据

jsp - fmt :message prints key with question marks like so "???login.label.username???"

ios - 阿拉伯语翻译在 iOS 9 上不工作,但在 iOS 10 上工作

ios - 开发面板中的本地化错误

sql-server-2005 - 当某些字段有换行符时,如何从 CSV 批量插入?

powershell - 如何在Powershell中将文本文件转换为CSV?

python - 类型错误 : "list indices must be integers" looping through tuples in python

PHP 相当于 Python 的 struct

python - 未绑定(bind)本地错误 : local variable 'rows' referenced before assignment