Changeset 14083

Show
Ignore:
Timestamp:
06/15/08 23:02:27 (5 years ago)
Author:
tomyhero
Message:

lang/perl/FormValidator::LazyWay? : add Message::JA|EN

Location:
lang/perl/FormValidator-LazyWay/branches/rebuild
Files:
4 added
3 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/FormValidator-LazyWay/branches/rebuild/lib/FormValidator/LazyWay.pm

    r13946 r14083  
    6161        sub { $self->_validation_block(@_) }, 
    6262 
    63         # エラーメッセージセット 
    64         sub { $self->_set_error_message(@_) }, 
    6563    ); 
    6664 
     
    7270} 
    7371 
    74 sub _set_error_message { 
     72sub _set_error_message_for_display { 
     73    my $self           = shift; 
     74    my $storage        = shift; 
     75    my $error_messages = shift; 
     76    my $lang           = shift || 'ja';    #TODO 
     77 
     78    foreach my $field ( keys %{$error_messages} ) { 
     79 
     80        local $" = ','; 
     81        my $tmp = "@{$error_messages->{$field}}"; 
     82 
     83        # TODO 
     84        my $mes = '__field__は__rule__だよ'; 
     85        $mes =~ s/__rule__/$tmp/g; 
     86 
     87        # TODO 
     88        my $label = $field; 
     89        $mes =~ s/__field__/$label/g; 
     90        $error_messages->{$field} = $mes; 
     91    } 
     92 
     93    # setting missing error message 
     94    if ( scalar @{ $storage->{missings} } ) { 
     95        for my $missing ( @{ $storage->{missings} } ) { 
     96            # missing. 
     97            $error_messages->{$missing} = $missing . ' is missing.'; 
     98        } 
     99    } 
     100 
     101    $storage->{error_message} = $error_messages; 
    75102 
    76103} 
    77104 
    78105sub _append_error_message { 
    79     my $self          = shift; 
    80     my $lang          = shift; 
    81     my $level         = shift; 
    82     my $field         = shift; 
    83     my $storage       = shift; 
    84     my $label         = shift; 
     106    my $self           = shift; 
     107    my $lang           = shift; 
     108    my $level          = shift; 
     109    my $field          = shift; 
     110    my $storage        = shift; 
     111    my $label          = shift; 
    85112    my $error_messages = shift; 
    86113 
    87     $storage->{invalid}{$field}{ $label } = 1; 
    88  
    89     unless( exists $error_messages->{$field} ) { 
     114    $storage->{invalid}{$field}{$label} = 1; 
     115 
     116    unless ( exists $error_messages->{$field} ) { 
    90117        $error_messages->{$field} = []; 
    91     }  
    92     push @{ $error_messages->{$field} }, $self->message->get( { lang => $lang , field => $field, label => $label , level => $level } ); 
     118    } 
     119    push @{ $error_messages->{$field} }, 
     120        $self->message->get( 
     121        { lang => $lang, field => $field, label => $label, level => $level } 
     122        ); 
    93123 
    94124} 
     
    109139        next unless exists $storage->{valid}{$field}; 
    110140 
    111         # TODO : level 
    112141        my $validators = $self->_get_validator_methods( $field, $level ); 
    113142 
     
    118147            CHECK_ARRAYS: 
    119148                for my $v ( @{ $storage->{valid}{$field} } ) { 
    120                     if ( $validators->{$field}{method}->( $storage->{valid}{$field} ) ) { 
     149                    if ( $validators->{$field}{method} 
     150                        ->( $storage->{valid}{$field} ) ) 
     151                    { 
     152 
    121153                        # OK 
    122154                        next CHECK_ARRAYS; 
    123155                    } 
    124156                    else { 
    125                         $self->_append_error_message( $profile->{lang} , $level , $field , $storage , $validators->{$field}{label} , $error_messages); 
     157                        $self->_append_error_message( $profile->{lang}, 
     158                            $level, $field, $storage, 
     159                            $validators->{$field}{label}, 
     160                            $error_messages ); 
    126161                        $is_invalid++; 
    127162                        last CHECK_ARRAYS; 
     
    129164                } 
    130165 
    131                 # 配列にする。 
    132                 # TODO : ループの中でやったほうがいいんじゃね? 
     166            # 配列にする。 
     167            # TODO : ループの中でやったほうがいいんじゃね? 
    133168                if ( none( @{ $profile->{want_array} } ) eq $field ) { 
    134169                    $storage->{valid}{$field} = $storage->{valid}{$field}[0]; 
     
    138173            } 
    139174            else { 
    140                 if ( $validators->{$field}{method}->( $storage->{valid}{$field} ) ) { 
     175                if ( $validators->{$field}{method} 
     176                    ->( $storage->{valid}{$field} ) ) 
     177                { 
     178 
    141179                    # return alwasy array ref when want_array is seted. 
    142180                    if ( any( @{ $profile->{want_array} } ) eq $field ) { 
    143181                        my $value = $storage->{valid}{$field}; 
    144182                        $storage->{valid}{$field} = []; 
    145                         push @{ $storage->{valid}{$field} } , $value ; 
     183                        push @{ $storage->{valid}{$field} }, $value; 
    146184 
    147185                    } 
    148186                    else { 
    149                         $self->_append_error_message( $profile->{lang} , $level , $field , $storage , $validators->{$field}{label} , $error_messages); 
     187                        $self->_append_error_message( $profile->{lang}, 
     188                            $level, $field, $storage, 
     189                            $validators->{$field}{label}, 
     190                            $error_messages ); 
    150191                        $is_invalid++; 
    151192                    } 
     
    157198    } 
    158199 
     200    $self->_set_error_message_for_display( $storage, $error_messages ); 
    159201} 
    160202 
     
    202244 
    203245sub _set_lang { 
    204     my $self        = shift; 
    205     my $storage     = shift; 
    206     my $profile     = shift; 
     246    my $self    = shift; 
     247    my $storage = shift; 
     248    my $profile = shift; 
    207249 
    208250    $profile->{lang} = $profile->{lang} || $self->message->lang; 
     
    283325=cut 
    284326 
    285  
  • lang/perl/FormValidator-LazyWay/branches/rebuild/lib/FormValidator/LazyWay/Message.pm

    r13946 r14083  
    1212has langs        => ( is => 'ro', isa => 'ArrayRef' ); 
    1313has rule_message => ( is => 'ro', isa => 'HashRef' ); 
     14has base_message => ( is => 'ro', isa => 'HashRef' ); 
    1415 
    1516sub BUILD { 
     
    5253    $self->{lang}  = $self->config->{lang}  || 'en'; 
    5354    $self->{langs} = $self->config->{langs} || [ $self->lang ]; 
     55 
     56    for my $lang ( @{$self->{langs}} ) { 
     57        my $pkg = __PACKAGE__ . '::' . uc $lang ; 
     58        $pkg->require; 
     59        $self->{base_message}{ $lang } = { 
     60            invalid => $self->config->{messages}{$lang}{invalid} || $pkg->invalid(), 
     61            missing  => $self->config->{messages}{$lang}{missing} || $pkg->missing(), 
     62        }; 
     63    } 
    5464} 
    5565 
  • lang/perl/FormValidator-LazyWay/branches/rebuild/t/message.t

    r13760 r14083  
    9090        custom_invalid  :  
    9191            foo_error : フーエラー 
    92         rule_message : __field__には__rule__が使用できます。 
     92        invalid : __field__には__rule__が使用できます。 
     93        missing : 値が入力されていません。 
    9394        rule : 
    9495            email::email : メールアドレス 
    9596            oppai::name : ぼいん 
    9697# この配下は考え中段階 
    97         missing : 
    98             default : 値が入力されていません。 
    9998--- rule_message eval 
    10099{