2011-08-09 7 views
1

generator.yamlファイルのフィールドのラベルをどのように翻訳するかについてお聞きしたいと思います。一般的に、yamlのファイルの内容をどのように翻訳するのですか?generator.yamlファイル(Symfony)でラベルを翻訳する方法

例: '名前' の翻訳可能にする方法

config: 
    actions: ~ 
    fields: 
    name: 
     label: Name 

? &最高の願いポーランドから事前に

Thxを:)

Piotrek

答えて

0

あなたはform.post_configureイベントを行うリッスンする必要があります。私は通常、次のように私のプロジェクトの設定クラスでこれを持っている:

class ProjectConfiguration extends sfProjectConfiguration 
{ 

    public function setup() 
    { 
     $this->dispatcher->connect('form.post_configure', array($this, 'listenToFormPostConfigure')); 
    } 


    /** 
    * Listens to the command.post_command event. 
    * 
    * @param sfEvent An sfEvent instance 
    * @static 
    */ 
    static function listenToFormPostConfigure(sfEvent $event) 
    { 
    sfProjectConfiguration::getActive()->loadHelpers('I18N'); 

    $form = $event->getSubject(); 
    $widgetSchema = $form->getWidgetSchema(); 
    foreach ($form->getValidatorSchema()->getFields() as $fieldName => $validator) 
    { 
     if (isset($widgetSchema[$fieldName])) 
     { 
     $label = $widgetSchema[$fieldName]->getLabel() ? $widgetSchema[$fieldName]->getLabel() 
      : sfInflector::humanize($fieldName); 
     $label = __($label); 
     $asterisk = $validator->getOption('required') ? ' *' : null; 
     $widgetSchema[$fieldName]->setLabel($label . $asterisk . ' :'); 
     } 

    } 
    } 

} 

これは、必要なラベルにアスタリスクを追加しても、ラベルを変換します。それがあなたにも役立つことを願っています。

2

本当に何もする必要はありません。あなたのラベルがgenerator.ymlかModelFormクラスかにかかわらず、ラベル文字列は翻訳を処理するsfWidgetFormSchemaFormatter :: translateメソッドを経由します。

関連する問題