Django 对字符串常量的翻译

Django Translation of String Constants

在 Django 中,我有一个字符串常量文件(例如错误消息),我将把它作为用户可见内容传递给模板。我想将它们与 Django 的翻译框架一起使用。执行此操作的最佳方法是什么?

最好的方法是在常量文件中使用 Django 的 lazy translation

from django.utils.translation import ugettext_lazy

STRING_CONSTANT1 = ugettext_lazy("Here is some string")
...

如果使用gettext_lazy,渲染模板时可能运行出现以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\uxxxx' in position 0: ordinal not in range(128)

使用 ugettext_lazy 而不是 gettext_lazy 解决了这个问题。