(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生成时在文件中可用。对于开发人员,该错误仍将以英语记录。