【问题标题】:Change form language with WtForm and Flask?使用 WtForm 和 Flask 更改表单语言?
【发布时间】:2017-02-26 13:09:50
【问题描述】:

抱歉,我是新手,但我在更改表单语言时遇到了麻烦。我正在使用 wtform 试用 Flask,但我无法将姓名、电子邮件等文本更改为我的母语。

class ContactForm(Form):
name = StringField("Name", [validators.Required("Skriv in ditt namn")])
email = StringField("Email", [validators.Required("Skriv inepostadress"), validators.Email("Är det verkligen din epostadress?")])
subject = StringField("Subject")
message = TextAreaField("Message", [validators.Required("Skriv in ett meddelande")])
recaptcha = RecaptchaField()
submit = SubmitField("Send")

如何更改语言以便可以使用瑞典语字符“ÅÄÖ”?例如,我想将值 StringField("Name") 更改为 StringField("Nåme")

【问题讨论】:

  • 您有错误信息吗?我猜你需要 # -*- coding: utf8 -*- 在你的文件顶部来允许字符
  • 我得到 UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) I am allready using # -- coding: utf8 - i>- 在每个可能的文件中。
  • 您使用的是什么版本的 Python?在字符串前面加上u 会有所不同吗? u"Är det verkligen din epostadress?"
  • Doherty 先生,这解决了我的问题。不知道您可以在字符串之前附加 u 。非常感谢您的帮助,非常感谢!顺便说一句,我使用的是 2.7.2 版本的 Python。
  • 我会写一个包含更多细节的答案。 :)

标签: flask wtforms flask-wtforms


【解决方案1】:

要在源代码中使用特殊字符,最好有:

# -*- coding: utf8 -*-

在文件的顶部。这将允许 Python 正确读取文件。

在您的情况下,您需要将 u 附加到字符串的开头。这会将字符串标记为 Unicode u"Är det verkligen din epostadress?"

这应该只在 Python 2 中需要。在 Python 3 中,字符串默认为 unicode。

【讨论】:

    猜你喜欢
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    相关资源
    最近更新 更多