有没有办法生成像Django makemessage这样的tornado本地化CSV文件?

2024-09-30 16:28:27 发布

您现在位置:Python中文网/ 问答频道 /正文

Django makemessage可以生成i18n文件,并使其更易于翻译。在

如我所见,tornado同时支持CSV格式和gettext格式,但我只能使用CSV版本,因为我将在appengine使用它。在

所以,我正在寻找一种方法来生成这些CSV文件为龙卷风扫描我的代码和模板。在


Tags: 文件csvdjango方法代码版本模板格式
2条回答

为此,我编写了一个名为tornado-babel的新模块,其中包括一个用于babel从tornado模板中提取可翻译字符串的提取器。它不会为您创建CSV文件,而是创建标准pot文件。在

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

from django.utils.translation import gettext as _ 

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

^{pr2}$

该命令将从当前目录中的*.html获取所有i18n'ed字符串,并将它们放在我的项目.pot. 您可以初始化该文件并将其转换为./it\u-it/我的项目.po使用任何商业或开源工具(我建议使用poeditpootle),并且一旦您翻译了所有字符串,就可以使用Translate Toolkit's po2csv将文件转换成CVS,这也是用python编写的:

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

格式是location:codeLine,source,target,非常简单,很容易转换成您需要的任何其他格式(我不熟悉appengine的i18ncv格式),您可以不带-o参数调用po2csv并从STDOUT输出输出。在

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

相关问题 更多 >