我在看django的django.contrib.auth.forms的表单,看到一个字典是这么写的,请问这里出现的下划线是什么意思?我
error_messages = dict(SetPasswordForm.error_messages, **{
'password_incorrect': _("Your old password was entered incorrectly. "
"Please enter it again."),
我在python下试了一下类似的语法,但是出错了:
>>> dict(onw=1, **{"a": "1", "b": _("123")})
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'dict' object is not callable
^_^
_()
函数是gettext()
函数的别名。(php的叫法。可能其他语言中名字略有差异)这个函数广泛用于国际化和本地化(i18n & l10n)。其作用是在翻译表中查找源语言文本(一般是英语)所对应的目标语言文本,找不到则返回本身。
你可以参考:SOF的这个答案;Django官方文档——翻译指南。
不光Django,在其他程序中也有类似实践。例如WordPress的官方主题。