【问题标题】:How to translate labels in generator.yaml file (Symfony)如何翻译 generator.yaml 文件中的标签 (Symfony)
【发布时间】:2011-10-23 15:15:57
【问题描述】:

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

例如:

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

如何使“姓名”可翻译?

提前致谢和波兰的良好祝愿:)

皮奥特雷克

【问题讨论】:

    标签: php symfony1 yaml


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您需要监听 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 . ' :');
            }
      
          }
        }
      
      }
      

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

      【讨论】:

        猜你喜欢
        • 2021-05-07
        • 2022-06-25
        • 1970-01-01
        • 2015-04-09
        • 2017-02-11
        • 1970-01-01
        • 1970-01-01
        • 2014-12-19
        相关资源
        最近更新 更多