Iod*_*nas 17 python django translation
在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))
Run Code Online (Sandbox Code Playgroud)
.po翻译字符串后的文件如下所示:
#: path/to/file.py:4
msgid "{sitename} is a good website"
msgstr "{sitename} ist eine gute Website"
Run Code Online (Sandbox Code Playgroud)
运行django-admin.py compilemessages并重新启动Web服务器后,在已处理的HTML页面上,它仍然是英语,而所有其他字符串都正在翻译.此外,虽然所有使用format的字符串都未翻译,但使用%运算符格式化的字符串将按预期进行翻译.它也不是gettext/ugettext问题,因为两个函数的问题都是一样的.
compilemessages看到字符串为"{sitename}是一个很好的网站",但当应用程序运行时,字符串实际上是例如"MySite是一个很好的网站",当然没有翻译.您必须首先翻译裸字符串,然后才能对其执行模板操作.