看板 Python 關於我們 聯絡資訊
小的在trace前人遺留下來的程式碼 看到Django forms.py的地方 程式碼如下 我有一個地方不解的是下面這一行code mail = forms.EmailField(label=_("Email")) 我的問題是label=_("Email") 這裏不是只要用label="Email"就好了 前人為啥要寫成label=_("Email")? 然後我一般的python shell try一下label=_("Email") 得到如下的結果 >>> label=_("Email") Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name '_' is not defined label=_("Email")到底在Django的form裡面是表示啥啊? class ResetPasswordForm(forms.Form): mail = forms.EmailField(label=_("Email")) def clean_mail(self): mail = self.cleaned_data['mail'] if mail: try: user = User.objects.get(email=mail) except User.DoesNotExist: raise forms.ValidationError("此電子信箱不存在") return self.cleaned_data['mail'] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.20.56.157 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1503284127.A.B08.html
petitbleu: 這看起來是 gettext, i18n 用 08/21 11:13
djshen: 看import 08/21 11:19
billy0131: 未看先猜 from django.utils.translation \ 08/21 12:41
billy0131: import ugettext_lazy as _ 08/21 12:41
frank910138: I18n 08/21 12:47
left: 應該是大家所說的,不過這要怎麼使用啊?有範例嗎? 08/21 14:19
left: 如果我用的是中文 那麼 'Email'會變成'信箱'的意思嗎? 08/21 14:20
Falldog: https://goo.gl/yiErCr # Django Doc: Translation 08/21 22:28
Falldog: 基本上就是GNU gettext的用法 只是Django有包裝一下 08/21 22:29