【发布时间】:2012-09-01 06:27:53
【问题描述】:
似乎 gettext 无法正确识别带有替换字段的 Python 格式字符串,因此不会将它们标记为“python-format”。例如
ugettext("This is a sample format string with a {kwarg}").format(kwarg='key word argument')
但是,gettext 可以正确识别带有格式说明符的 Python 字符串,并使用“python-format”标记此类源字符串,例如,
ugettext("This is a sample string with a %(format_spec).") % {'format_spec': 'format specifier'}
我曾尝试使用 xgettext 和 Django 的 manage.py makemessages 工具为 Python 格式字符串生成 PO 文件,但没有看到 Python 格式字符串被标记为“python-format”。
另外,http://www.gnu.org/software/gettext/manual/html_node/Python.html 没有指定任何关于新 Python 格式字符串的内容。
请帮我找到解决此问题的方法。
【问题讨论】:
-
不确定字符串格式的表现如何,但您是否看过Babel?提取字符串肯定比xgettext和friends好,而且是可插拔的。
-
@MartijnPieters 感谢您的回复。我尝试了 Babel。它也无法将 Python 格式字符串检测为 Python 字符串:\
-
很抱歉听到这个消息;它需要一些自定义开发,然后才能将这样的解析器添加到 Babel。
-
也许你可以试试 C# 解析器?不确定是否可以处理命名参数。
标签: python internationalization gettext format-string