Как перевести метки в файле generator.yaml (Symfony) - PullRequest
1 голос
/ 10 августа 2011

Я хотел бы спросить вас, как переводить метки полей в файле generator.yaml. Вообще, как перевести содержимое файлов yaml?

Ex:

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

как сделать перевод 'name'?

Спасибо заранее и наилучшие пожелания из Польши:)

Piotrek

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Тебе не нужно ничего делать.Независимо от того, является ли ваша метка из generator.yml или из вашего класса ModelForm, в конце ваша строка метки проходит через метод sfWidgetFormSchemaFormatter :: translate, который обрабатывает перевод.

0 голосов
/ 10 августа 2011

Вам необходимо прослушать событие 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 . ' :');
      }

    }
  }

}

Это добавит звездочку к требуемым меткам, а также переведет метки. Надеюсь, это будет полезно и вам.

...