nal*_*zok 2 python django translation internationalization django-i18n
正如本节中提到的翻译 | Django 文档中,函数ugettext_noop是一个用于国际化的实用函数:
ugettext_noop(消息) ¶
标记要翻译的字符串,但现在不翻译它们。这可用于将字符串存储在应保留在基本语言中的全局变量中(因为它们可能在外部使用)并且稍后将被翻译。
此外,此答案提供了其用法示例:
import logging
from django.http import HttpResponse
from django.utils.translation import ugettext as _, ugettext_noop as _noop
def view(request):
msg = _noop("An error has occurred")
logging.error(msg)
return HttpResponse(_(msg))
Run Code Online (Sandbox Code Playgroud)
尽管有这些文档,我仍然不明白为什么要将字符串标记为可提取以进行翻译。对我来说,这似乎ugettext_noop只是一个提醒,即便如此,提醒程序员一些字符串(msg在这种情况下)稍后将被翻译的目的是什么?
小智 7
一旦我有一个任务来制作事件日志并将其消息存储在数据库中。它必须支持 i18n。所以首先我用ugettext_noop函数标记了所有事件日志消息。在这种情况下,它们在添加到数据库之前没有被翻译。但同时它们被添加到 *.po 文件中。
在这个例子中ugettext或ugettext_lazy函数应该只在从数据库中提取消息后使用。
| 归档时间: |
|
| 查看次数: |
1474 次 |
| 最近记录: |