【发布时间】:2012-06-05 21:33:37
【问题描述】:
我成功地获得了 trans 和 blocktrans 来翻译文本。
不过……
我在 utils.py 中定义了一个函数,它返回一个字典,其中包含我需要将其中一些字符串转换为当前语言的字符串。 编辑:*这是我在项目目录中创建的 utils.py,视图调用它来对字典执行某些辅助功能,然后返回更新后的字典
我做过这样的事情:
try:
path = default_storage.save(customercode + '/' + file.name, ContentFile(file.read()))
results['status'] = 'success'
results['message'] = _(u'Your file has been successfully uploaded')
except Exception as e:
results['status'] = 'error'
results['message'] = _(u'There was an error uploading your file: ') + str(e)
return results
我也加了from django.utils.translation import ugettext_lazy as _ to the top of this utils.py file..
这个“结果”字典用于我的一个视图中,其中整个字典经过进一步处理后作为上下文变量传递给模板。
我已经在 .po 文件中正确设置了翻译。所有其他模板标签都可以完美翻译。只有上面提到的字符串不翻译。
任何帮助将不胜感激。
更新:我在表单提交标签中尝试了相同的过程,它翻译得很好。只有前面提到的地方不会翻译!
PS:这是我关于 stackoverflow 的第一个问题。如果我在问这个问题时犯了错误,我提前道歉。
【问题讨论】:
-
你说你的结果字典被进一步处理。这个处理看起来如何?您还说“所有其他模板标签”都会翻译。您是否在某个模板标签中使用了结果字典?
-
好吧,结果字典中的其他一些键已更新,或者可能会添加一个新键。我的意思是..我使用 {{ value }} 方法在模板标签中使用 results dict 中的值。
标签: python django internationalization