Symfony - admin - FormFilter - пусто - i18n - PullRequest
1 голос
/ 12 ноября 2009

мы в админ-генераторе в фильтрах в поле. Какой самый простой способ перевода - пустая метка в полях формы?

Я решил это с помощью собственных setWidgets и setWidgets в BaseFormFilterDoctrine, которые расширяют родительские методы, переводя пустой (empty_label)

  • setWidgets - перевести все empty_label s в фильтр формы (для базового класса фильтра)
  • setWidget - перевести empty_label для одного поля фильтра (для расширяемого класса фильтра)

Это работает, но я думаю, что это противно. Я ищу что-то более чистое

Ответы [ 3 ]

1 голос
/ 11 июня 2010

Теперь (Symfony 1.4) вы можете сделать это, просто добавив

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

в messages.xx.xml

0 голосов
/ 15 марта 2010

Вы можете сделать это так:

$translated_text = $this->widgetSchema->getFormFormatter()->translate('String to translate');
0 голосов
/ 13 ноября 2009

почему вы думаете, что это противно? Я думаю, что взлом класса 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');
      }
    }
  }
}
...