1

我们在字段过滤器中的管理生成器中。最清晰的翻译方式是表单字段下的空标签?

我已经通过自己的 setWidgets 和 BaseFormFilterDoctrine 中的 setWidgets 解决了这个问题,通过翻译它是空的(empty_label)来扩展父方法。

  • setWidgets - 翻译表单过滤器中的所有empty_label(用于基本过滤器类)
  • setWidget - 为一个过滤器字段翻译empty_label(用于扩展过滤器类)

它有效,但我认为它很讨厌。我正在寻找更干净的东西

4

3 回答 3

1

现在(Symfony 1.4)你可以通过添加来做到这一点

<trans-unit>
  <source>is empty</source>
  <target>my translation</target>
</trans-unit>

进入messages.xx.xml

于 2010-06-11T08:17:05.743 回答
0

你可以这样做:

$translated_text = $this->widgetSchema->getFormFormatter()->translate('String to translate');
于 2010-03-15T17:29:56.590 回答
0

为什么你认为它很讨厌?我认为破解 BaseFormFilterDoctrine 类是要走的路。我通常会这样做:

abstract class BaseFormFilterDoctrine extends sfFormFilterDoctrine
{
  public function setup()
  {
    parent::setup();
    foreach ($this->widgetSchema->getFields() as $name => $widget) {
      if ($widget->getOption('empty_label')) {
        $widget->setOption('empty_label', 'my internationalized string');
      }
    }
  }
}
于 2009-11-13T12:47:21.033 回答