【问题标题】:Translate Zend Form Validation Error Messages?翻译 Zend 表单验证错误消息?
【发布时间】:2015-10-06 21:03:22
【问题描述】:

我有使用不同语言运行的应用程序。自定义标签,标题$this->translate('message') 可以完美解决任何问题。我只是在翻译 zend 错误消息表单时遇到问题。这是我在module.config.php 中添加的内容。谁能帮我用不同的语言显示错误消息表单。

'translator' => array(
    'locale' => 'pl',
    'translation_file_patterns' => array(
        array(
            'type'     => 'gettext',
            'base_dir' => __DIR__ . '/../language',
            'pattern'  => '%s.mo',
        ),
        array(
            'type' => 'phpArray',
            'base_dir' => 'vendor/zendframework/zend-i18n-resources/languages',
            'pattern' => '%s/Zend_Captcha.php',
            'text_domain' => 'formvalidation',
        ),
        array(
            'type' => 'phpArray',
            'base_dir' => 'vendor/zendframework/zend-i18n-resources/languages',
            'pattern' => '%s/Zend_Validate.php',
            'text_domain' => 'formvalidation',
        ),
    ),
),

【问题讨论】:

    标签: php zend-framework2


    【解决方案1】:

    这就是我在 getInputFilter 表单函数中的做法。这样我就可以在 Poedit 中检索字符串并继续翻译:

    public function getInputFilter() {
    if (!$this->filter) {
        $inputFilter = new InputFilter();
        $factory = new InputFactory ();
    
        $inputFilter->add($factory->createInput(array(
            'name' => 'email',
            'filters' => array(
                array(
                    'name' => 'StripTags'
                    ),
                array(
                    'name' => 'StringTrim'
                    )
                ),
            'validators' => array(
                array(
                    'name' => 'EmailAddress',
                    'options' => array(
                        'messages' => array(
                            'emailAddressInvalidFormat' => _('Email address format is not invalid')
                            )
                        )
                    ),
                array(
                    'name' => 'NotEmpty',
                    'options' => array(
                        'messages' => array(
                            'isEmpty' => _('Email address is required')
                            )
                        )
                    ),
                array(
                    'name' => 'StringLength',
                    'options' => array(
                        'min'=>6,
                        'max'=>128,
                        'messages' => array(
                            \Zend\Validator\StringLength::TOO_LONG => _('Invalid length for this field')
                            )
                        )
                    )
                )
            )));
            $this->filter = $inputFilter;
    }
    return $this->filter;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      相关资源
      最近更新 更多