标题: 再次呼救:FORM的提示怎么显示中文?
lony
新手上路
Rank: 1



UID 1450
精华 1
积分 10
帖子 21
翻译 0
原创 1
阅读权限 10
注册 2008-7-2
状态 离线
发表于 2008-10-13 15:53  资料  短消息  加为好友 
再次呼救:FORM的提示怎么显示中文?

再次呼救:FORM的提示怎么显示中文?



 附件: 您所在的用户组无法下载或查看附件
顶部
haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 288
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2008-10-13 17:03  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈
实际上Zend_Form对表单中的数据进行验证时,调用的是Zend_Validate

你可以自己调用validator的setMessage()自定义出错信息就可以了。

比如
$validator = new Zend_Validate_NotEmpty();
$validator->setMessage('内容为空!', 'isEmpty');

$username = new Zend_Form_Element_Text('username');

// Passing a Zend_Validate_* object:
$username->addValidator($validator);





互助共享,共同成长。
顶部
lony
新手上路
Rank: 1



UID 1450
精华 1
积分 10
帖子 21
翻译 0
原创 1
阅读权限 10
注册 2008-7-2
状态 离线
发表于 2008-10-14 12:17  资料  短消息  加为好友 
谢谢 haoHappy 的解答,十分有用哦

我的form改成如下:

PHP代码如下:
public function init()
    {
        
// set the method for the display form to POST
        
$this->setMethod('post');

        
        
$validator_isEmpty = new Zend_Validate_NotEmpty();
        
$validator_isEmpty->setMessage('这里不能为空哦','isEmpty');
        
        
$validator_isEmpty_email = new Zend_Validate_EmailAddress();
        
$validator_isEmpty_email ->setMessages(array(
                            
'emailAddressInvalid'=>'邮箱好像不对哦',
                            
'emailAddressInvalidHostname'=>'邮箱好像不对哦',
                            
'emailAddressInvalidMxRecord'=>'邮箱好像不对哦',
                            
'emailAddressDotAtom'=>'邮箱好像不对哦',
                            
'emailAddressQuotedString'=>'邮箱好像不对哦',
                            
'emailAddressInvalidLocalPart'=>'邮箱好像不对哦',
                        ));
                  
$username = new Zend_Form_Element_Text('username');
$username    ->setLabel('你的邮箱:')
            ->
setRequired(true)
            ->
setFilters(array('StringTrim','StringToLower'))
            ->
addValidator($validator_isEmpty)
            ->
addValidator($validator_isEmpty_email)
            ;
$password = new Zend_Form_Element_Password('password');
$password    ->setLabel('密码:')
            ->
setRequired(true)
            ->
setFilters(array('StringTrim','StringToLower'))
            ->
addValidator($validator_isEmpty);
            
$captcha = new    Zend_Form_Element_Captcha('captcha',
                array(
                
'label'        =>    '验证码:',
                
'captcha'    =>    array('captcha'=>'Figlet','wordLen'=>4,'timeout'=>300),
                )
                );
$captcha    ->addValidator($validator_isEmpty);

$submit    =    new Zend_Form_Element_Submit('submit');
$submit        ->setLabel('登陆');
            
$this->addElements(array($username,$password,$captcha,$submit));


    }



这里却无法覆盖 邮箱的全部验证。
验证码的也不行哦。

还请 haoHappy 及高手们 指点一二。

[attach]102[/attach]



 附件: 您所在的用户组无法下载或查看附件
顶部
haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 288
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2008-10-14 20:32  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈
$validator_isEmpty_email ->setMessages(array(
                            'emailAddressInvalid'=>'邮箱好像不对哦',
                            'emailAddressInvalidHostname'=>'邮箱好像不对哦',
                            'emailAddressInvalidMxRecord'=>'邮箱好像不对哦',
                            'emailAddressDotAtom'=>'邮箱好像不对哦',
                            'emailAddressQuotedString'=>'邮箱好像不对哦',
                            'emailAddressInvalidLocalPart'=>'邮箱好像不对哦',
                        ));

'emailAddressInvalidLocalPart'=>'邮箱好像不对哦',
这一行最后多了一个逗号。 奇怪你的代码不会出错吗





互助共享,共同成长。
顶部
lony
新手上路
Rank: 1



UID 1450
精华 1
积分 10
帖子 21
翻译 0
原创 1
阅读权限 10
注册 2008-7-2
状态 离线
发表于 2008-10-15 09:47  资料  短消息  加为好友 
哈。如果是JS,肯定是出错。好像PHP没事吧。我这里没报错。不过还是谢谢haoHappy的提示,支持代码的严谨性。

老大,我上面的验证码那地方才错误还是没有被汉化,还请老大指点。(还有上面的邮箱的提示……)

顶部
kylingood
版主
Rank: 7Rank: 7Rank: 7



UID 104
精华 1
积分 10
帖子 51
翻译 0
原创 0
阅读权限 100
注册 2007-6-22
状态 离线
发表于 2008-11-20 11:08  资料  短消息  加为好友 
改Zend 源码吧...Zend/Validate/EmailAddress.php

顶部
kylingood
版主
Rank: 7Rank: 7Rank: 7



UID 104
精华 1
积分 10
帖子 51
翻译 0
原创 0
阅读权限 100
注册 2007-6-22
状态 离线
发表于 2008-11-20 11:31  资料  短消息  加为好友 
找到一个很好的方法....在我英文站上搞来的...看下面:

PHP代码如下:
$email->setLabel('电子邮件地址')
              ->
addFilter('StringToLower')
              ->
setRequired(false)
              ->
addValidator('NotEmpty')
              ->
addValidator('EmailAddress',true,array('messages' => array(
                        
'emailAddressInvalid' => '这不是一个可用的电子邮件!',
                        
'emailAddressInvalidHostname' => '这不是一个有效的主机名!',
                        
'emailAddressInvalidMxRecord' => '这不是一个有效的电子邮件地址!',
                        
'emailAddressDotAtom' => '这不是一个有效的电子邮件地址!',
                        
'emailAddressQuotedString' => '这不是一个有效的电子邮件地址!',
                        
'emailAddressInvalidLocalPart' => '这不是一个有效的电子邮件地址!',
              )));



这样就可以搞定....

顶部
jusinq
新手上路
Rank: 1



UID 2574
精华 0
积分 0
帖子 7
翻译 0
原创 0
阅读权限 10
注册 2008-11-17
状态 离线
发表于 2008-11-23 14:10  资料  短消息  加为好友 
Zend_Validate_Hostname_Hostname.php

protected $_messageTemplates = array(
        self::IP_ADDRESS_NOT_ALLOWED  => "'%value%' appears to be an IP address, but IP addresses are not allowed",
        self::UNKNOWN_TLD             => "'%value%' appears to be a DNS hostname but cannot match TLD against known list",
        self::INVALID_DASH            => "'%value%' appears to be a DNS hostname but contains a dash (-) in an invalid position",
        self::INVALID_HOSTNAME_SCHEMA => "'%value%' appears to be a DNS hostname but cannot match against hostname schema for TLD '%tld%'",
        self::UNDECIPHERABLE_TLD      => "'%value%' appears to be a DNS hostname but cannot extract TLD part",
        self::INVALID_HOSTNAME        => "'%value%' does not match the expected structure for a DNS hostname",
        self::INVALID_LOCAL_NAME      => "'%value%' does not appear to be a valid local network name",
        self:OCAL_NAME_NOT_ALLOWED  => "'%value%' appears to be a local network name but local network names are not allowed"
    );

顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2010-9-7 19:52

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.027574 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver