翻译不起作用-django无法翻译包含多个变量的字符串

翻译不起作用-django无法翻译包含多个变量的字符串,django,translation,django-i18n,Django,Translation,Django I18n,我的一个翻译不起作用,即使: 1) 它在传输文件中: #: core/permissions/decorators.py:138 #, python-format msgid "" "You are missing permission(s) \"%(permstring)s\" for %(modelname)s %(obj)s" msgstr "" "Sul puudub (puuduvad) õigus(ed) \"%(permstring)s\" %(modelname)s %(obj)

我的一个翻译不起作用,即使: 1) 它在传输文件中:

#: core/permissions/decorators.py:138
#, python-format
msgid ""
"You are missing permission(s) \"%(permstring)s\" for %(modelname)s %(obj)s"
msgstr ""
"Sul puudub (puuduvad) õigus(ed) \"%(permstring)s\" %(modelname)s %(obj)s "
"suhtes"
2) 这并不模糊,翻译文件已编译,apache已重新启动

3) 事实上,在翻译此字符串时选择了正确的语言-包括
request.language\u code
translation.get\u language\u from\u request(request)
打印出相同、正确、预期的语言代码

4) 即使是经过测试的代码也会以正确的语言打印一个字符串,但不会以第二个语言打印:

my_string = u"%s" % _("Time array")
logger.debug(my_string)
打印出:

DEBUG 2013-07-04 12:17:28,554 Jada aegadest


mystring = u"%s" %_('You are missing permission(s) "%(permstring)s" for %(modelname)s %(obj)s' % d)
logger.debug(mystring)
DEBUG 2013-07-04 12:22:53,522 You are missing permission(s) "User can access this object" for Obj <idcode>
打印出:

DEBUG 2013-07-04 12:17:28,554 Jada aegadest


mystring = u"%s" %_('You are missing permission(s) "%(permstring)s" for %(modelname)s %(obj)s' % d)
logger.debug(mystring)
DEBUG 2013-07-04 12:22:53,522 You are missing permission(s) "User can access this object" for Obj <idcode>
已编译并重新启动apache,但仍不工作

编辑2: 这似乎是一个更大的、反复出现的问题。这些情况下的公共属性是字符串包含多个变量

替换:

mystring = u"%s" %_('You are missing permission(s) "%(permstring)s" for %(modelname)s (obj)s' % d)
logger.debug(mystring)
与:

在执行插值/格式化之前,您需要获得翻译,否则需要将插值字符串放入翻译中(不推荐):

msgid“您缺少权限\”用户可以访问此对象\“用于Obj”
msgstr“Sul puudub(puuduvad)õigus(ed)%(permstring)s%(modelname)s%(obj)s suhtes”

就是这样。谢谢我不是这样想的。
msgid "You are missing permission(s) \"User can access this object\" for Obj <idcode>"
msgstr "Sul puudub (puuduvad) õigus(ed) %(permstring)s %(modelname)s %(obj)s suhtes"