Python 2.7中使用
这些字符串位于
format
格式化字符串是一种推荐的新方式,这种方式会导致在Django中无法翻译字符串吗?这些字符串位于
.po
文件中,并已被翻译,但在网站上不会被翻译。例如:from django.utils.translation import ugettext as _
website_name = "Stackoverflow"
title = _(u"{sitename} is a good website".format(sitename=website_name))
翻译完字符串后,.po
文件的内容如下:
#: path/to/file.py:4
msgid "{sitename} is a good website"
msgstr "{sitename} ist eine gute Website"
在运行django-admin.py compilemessages
并重新启动Web服务器后,在处理过的HTML页面中,它仍然是英文,而所有其他字符串都被翻译了。 此外,使用format
的所有字符串都没有被翻译,而使用%
操作符格式化的字符串按预期被翻译。 这也不是一个gettext/ugettext问题,因为两个函数都存在相同的问题。
_(u"{sitename}是一个不错的网站").format...
吗? - jfsformat
的注意事项:当 format_string 或任何 str.format() 参数包含惰性翻译对象时,Python 的 str.format() 方法将无法工作。https://docs.djangoproject.com/en/1.11/topics/i18n/translation/#formatting-strings-format-lazy - User