Django Noop用例

示例

(u)gettext_noop 允许您将字符串标记为可翻译的字符串而无需实际翻译。

一个典型的用例是当您想为开发人员(英文)记录一条消息,但又想以所请求的语言将其显示给客户端时。您可以将变量传递给gettext,但是不会根据可翻译字符串来发现其内容,因为按照定义,它是变量。

# THIS WILL NOT WORK AS EXPECTED
import logging 
fromdjango.contribimport messages

logger = logging.getLogger(__name__)

error_message = "Oops, something went wrong!"
logger.error(error_message)
messages.error(request, _(error_message))

错误消息不会出现在.po文件中,您必须记住它的存在才能手动添加。要解决此问题,可以使用gettext_noop。

error_message = ugettext_noop("Oops, something went wrong!")
logger.error(error_message)
messages.error(request, _(error_message))

现在,该字符串"Oops, something went wrong!"将被发现并在.po生成时在文件中可用。对于开发人员,该错误仍将以英语记录。