1

私たちは、フィールドのフィルターの管理ジェネレーターにいます。翻訳する最も明確な方法は、フォームフィールドの下の空のラベルです。

BaseFormFilterDoctrineの独自のsetWidgetsとsetWidgetsで解決しましたが、empty(empty_label)を変換して親メソッドを拡張します。

  • setWidgets-フォームfilter(基本フィルタークラスの場合)のすべてのempty_labelを変換します
  • setWidget- 1つのフィルターフィールドの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

なぜそれは厄介だと思いますか?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 に答える
0

あなたはこのようにそれを行うことができます:

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