【发布时间】:2017-02-12 15:57:24
【问题描述】:
我使用的是 python 2.7,但遇到以下问题:
LOG.warning(_("text"))
这不起作用,因为 LOG.warning 需要一个字符串 (str),而 ugettext_lazy 只知道如何呈现 unicode。
现在我找到的解决方案是在调用记录器之前强制进行 unicode 渲染:
text = 'Test trans'
LOG.warning(u"%s" % _(text))
但是,我惊讶地发现这段代码也可以工作:
LOG.warning(_(Test trans %(test)s.') % {'test': 1})
LOG.warning(_('Test trans %s.') % 1)
有人可以解释为什么吗?
% 操作符在替换变量之前是否调用了 unicode 渲染?
提前致谢。
【问题讨论】:
标签: python django python-2.7 unicode translation