Noop 用例
(u)gettext_noop
允許你將字串標記為可翻譯而無需實際翻譯。
一個典型的用例是當你想為開發人員記錄訊息時(英文),但也希望將它顯示給客戶端(以所請求的語言)。你可以將變數傳遞給 gettext
,但其內容不會被發現為可翻譯字串,因為根據定義,它是變數。。
# THIS WILL NOT WORK AS EXPECTED
import logging
from django.contrib import 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
檔案中被發現並可用。對於開發人員,錯誤仍將以英語記錄。