Skip to main content
 首页 » 编程设计

python之pyramid wtforms 标签和错误信息翻译(for i18n)

2025年05月04日10qq78292959

在使用pyramid的时候如何翻译wtforms的form label和error message

示例表格:

class RegistrationForm(Form): 
   name = TextField(_(u'Name'), [v.Required(_(u'Please provide your name'))]) 
   age = IntegerField( 
    _(u'Age'), 
    [v.NumberRange(min=12, message=_(u'Must be at least %(min)d years old.'))] 
   ) 

之后我做了:

  1. 消息字符串提取
  2. 翻译.po文件中的字符串
  3. 编译生成.mo文件

我正在使用 jinja2 模板,jinja2 模板的翻译字符串工作正常,但表单元素翻译不起作用。对此有任何想法,我们将不胜感激。

请您参考如下方法:

您的问题可能是因为 _ 是在导入时调用的,而不是在运行时调用的,此时还没有配置翻译。如果您使用的是 pyramid.i18n.TranslationString,这应该不是问题,因为它是惰性的,并且仅在显示时进行翻译,但如果您使用的是其他东西,那可能是您的问题。

那么,您是如何定义 _ 的?