2010-04-13 146 views

回答

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框架附带有超过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); 

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

+0

非常有用,非常感谢。 – 2010-05-28 13:32:26

1

我只是想提高一点点从戈登答案: 工作的例子是

$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); 

干杯! Bruno