Symfony - admin - FormFilter - 是空的 - i18n

时间:2009-11-12 10:13:59

标签: symfony1 filter internationalization admin

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

我通过自己的setWidgets和BaseFormFilterDoctrine中的setWidgets解决它,通过翻译为空(empty_label)来扩展父方法。

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

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

3 个答案:

答案 0 :(得分:1)

现在(Symfony 1.4)你可以通过添加

来做到这一点
<trans-unit>
  <source>is empty</source>
  <target>my translation</target>
</trans-unit>

进入messages.xx.xml

答案 1 :(得分: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');
      }
    }
  }
}

答案 2 :(得分:0)

你可以这样做:

$translated_text = $this->widgetSchema->getFormFormatter()->translate('String to translate');