如何翻译generator.yaml文件中的标签(Symfony)

时间:2011-08-09 22:09:50

标签: php symfony1 yaml

我想问你,如何翻译generator.yaml文件中的字段标签。一般来说,如何翻译yaml文件的内容?

例如:

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

如何让'name'可翻译?

提前Thx&来自波兰的祝福:)

Piotrek

2 个答案:

答案 0 :(得分:2)

你真的不需要做任何事情。无论您的标签来自generator.yml还是来自您的ModelForm类,最后您的标签字符串都会通过处理翻译的sfWidgetFormSchemaFormatter :: translate方法。

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

    }
  }

}

这会在所需标签上附加一个星号,并翻译标签。希望它对你也有用。