有没有办法生成龙卷风本地化CSV文件,如django makemessage?

gui*_* 桂林 5 python csv localization tornado internationalization

Django makemessage可以生成i18n文件,并使其更容易翻译.

正如我所见,龙卷风支持CSV格式和gettext格式,但我只能使用CSV版本,因为我会在appengine中使用它.

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

小智 6

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

from django.utils.translation import gettext as _ 
Run Code Online (Sandbox Code Playgroud)

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

 xgettext -L Python -o myproject.pot  *.html
Run Code Online (Sandbox Code Playgroud)

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

po2csv -i it_IT/myproject.po -o it_IT/myproject.csv 
Run Code Online (Sandbox Code Playgroud)

格式location:codeLine,source,target非常简单易于转换为您需要的其他格式(我不熟悉appengine的i18n CSV格式),您可以使用no -o参数调用po2csv并从STDOUT输出输出.

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