python/django程序的国际化:如何在.po文件中实现占位符?

python/django程序的国际化:如何在.po文件中实现占位符?,django,internationalization,Django,Internationalization,例如,在我的django资料中,我有: {% blocktrans %}You are a member since {{sincewhen}}{% endblocktrans %} .po文件中应该包含哪些内容?(据我所知,django文档没有解释这一部分) 占位符的.po格式是否通用于用不同编程语言编写的程序 编辑:我试过命令 django-admin.py makemessages -l de -e=html,py django-admin.py compilemessages 这不起

例如,在我的django资料中,我有:

{% blocktrans %}You are a member since {{sincewhen}}{% endblocktrans %}
.po文件中应该包含哪些内容?(据我所知,django文档没有解释这一部分)

占位符的.po格式是否通用于用不同编程语言编写的程序

编辑:我试过命令

django-admin.py makemessages -l de -e=html,py
django-admin.py compilemessages
这不起作用,因为我发现并描述了一个bug

修复此问题后,我可以使用上面的命令获取生成的消息文件(如果您有其他文件扩展名-相应地修改-e选项)。

阅读本节:

它解释了如何生成.po文件,并给出了一个示例:

django-admin.py makemessages -l de
确保你阅读了整个章节,了解如何生成/编辑这些文件。此外,如果你正在寻找一个伟大的工具来帮助你管理翻译(甚至使用谷歌翻译作为起点),请查看。

使用:

python manage.py makemessages -l <target_language>
(or makemessages -a for all languages)
这将自动创建采购订单中的所有msgid,您只需填写msgstr即可


.pogettext库使用的标准格式,几乎在所有现代编程语言中都可以使用。

是的。谢谢,我已经阅读了全部内容。在.po文件中没有提到占位符。谢谢您提供有关rosetta工具的提示。当您运行makemessages命令时,它会创建一个指定语言的po文件,您可以手动编辑或使用类似rosetta的内容。什么还不清楚?只有一个.pot文件?嗯…您使用的是什么版本的gettext、django和Python?@superchink.Thank.gettext 0.17 django 1.0.2 Python 2.6.2