4
我在使用django.utils.translations
翻譯Django中的格式化字符串時遇到問題。只有沒有格式的字符串(%s
或{}
)正在工作。在Django中翻譯格式化的字符串不起作用
我locale/en/LC_MESSAGES/django.po
文件:
msgid "foo"
msgstr "bar"
#, python-format
msgid "foo %s"
msgstr "bar %s"
#, python-format
msgid "foo %(baz)s"
msgstr "bar %(baz)s "
#, python-brace-format
msgid "foo {}"
msgstr "bar {}"
#, python-brace-format
msgid "foo {baz}"
msgstr "bar {baz}"
第一個字符串是工作:
>>> from django.utils import translation
>>> translation.activate('en')
>>> translation.ugettext('foo')
'bar'
但不休息:
>>> translation.ugettext('foo %s' % 'bax')
'foo bax'
>>> translation.ugettext('foo %(baz)s' % {'baz': 'bax'})
'foo bax'
>>> translation.ugettext('foo {}'.format('bax'))
'foo bax'
>>> translation.ugettext('foo {baz}'.format(baz='bax'))
'foo bax'
沒有,如果我使用ugettext_lazy
,gettext
或gettext_lazy
母校 - 同樣的故事,沒有翻譯輸出。
任何想法爲什麼格式化的字符串不工作?
- 的Django 1.11.3
- 的Python 3.5.3
謝謝你。我看不到樹林裏的樹林。 – Moritz