我们如何在zend框架上创建翻译验证错误消息?

时间:2010-04-13 04:28:30

标签: php validation zend-framework translate

我们如何在zend框架上创建翻译验证错误消息?

有人可以举个例子吗?

谢谢

2 个答案:

答案 0 :(得分:7)

来自ZF Manual on Zend_Validate Validation Messages

  $validator = new Zend_Validate_GreaterThan();
  $validator->setMessage('Please enter a lower value', 
                         Zend_Validate_GreaterThan::NOT_GREATER);

还有:

  

Zend Framework附带了超过45种不同的验证器,其中包含200多条失败消息。翻译所有这些消息可能是一项艰巨的任务。但为了您的方便,Zend Framework附带已经预先翻译的验证消息。您可以在Zend Framework安装的路径/resources/languages中找到它们。   [...]
  因此,要将所有验证消息转换为德语,您需要做的就是使用这些资源文件将翻译器附加到Zend_Validate

  $translator = new Zend_Translate(
      'array',
      '/resources/languages',
      $language,
      array('scan' => Zend_Locale::LOCALE_DIRECTORY)
  );
  Zend_Validate_Abstract::setDefaultTranslator($translator);

当然,您也可以提供自己的翻译。您所要做的就是加载使它们可供翻译适配器使用。基本上你只需将上面显示的部分换成自定义路径。

答案 1 :(得分:2)

我只想改善戈登的答案: 一个工作的例子是

$translator = new Zend_Translate(
    'array',
    'resources/languages',  // you need to copy the resources folder
                            // (from your Zend Framework installation)
                            // in the application folder 

    'it', // 'it' for italian, 'fr' for french, etc. 
          // Just look at the directories

    // Zend_Translate, NOT Zend_Locale
    array(
        'scan' => Zend_Translate::LOCALE_DIRECTORY
    )
);

Zend_Validate_Abstract::setDefaultTranslator($translator);

干杯! 布鲁诺