cvsuser     02/06/07 15:00:35

  Modified:    P5EEx/Blue/P5EEx/Blue Widget.pm
  Log:
  cleaned up the production of labels to support internationalization
  
  Revision  Changes    Path
  1.17      +35 -32    p5ee/P5EEx/Blue/P5EEx/Blue/Widget.pm
  
  Index: Widget.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Widget.pm,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -w -r1.16 -r1.17
  --- Widget.pm 21 May 2002 13:46:23 -0000      1.16
  +++ Widget.pm 7 Jun 2002 22:00:35 -0000       1.17
  @@ -1,6 +1,6 @@
   
   #############################################################################
  -## $Id: Widget.pm,v 1.16 2002/05/21 13:46:23 spadkins Exp $
  +## $Id: Widget.pm,v 1.17 2002/06/07 22:00:35 spadkins Exp $
   #############################################################################
   
   package P5EEx::Blue::Widget;
  @@ -474,20 +474,20 @@
   
   sub label {
       my ($self, $attrib, $lang) = @_;
  -    my ($label, $langlabel);
  -    $attrib = "label" if (!defined $attrib || $attrib eq "");  #"label" is the 
default attribute to translate
  -    $langlabel = $self->{"lang_${attrib}"};
  -    return $langlabel if (defined $langlabel);
  -    $label = $self->get("label");
  -    if (defined $lang && $lang ne "") {
  -        $langlabel = $self->translate($label,$lang);
  -    }
  -    else {
  -        $lang = $self->get("lang");
  -        $langlabel = $self->translate($label,$lang);
  -        $self->{"lang_${attrib}"} = $langlabel;      # cache it for later use
  -    }
  -    return $langlabel;
  +    my ($label);
  +    #print "label($attrib, $lang) [$self]\n";
  +    $attrib = "label" if (!$attrib && $self->{label});
  +    $attrib = "name"  if (!$attrib && $self->{name});
  +    $lang   = $self->{lang} if (!$lang);
  +
  +    $label  = $self->{"${attrib}__${lang}"};
  +    return $label if (defined $label);
  +
  +    $label = $self->{$attrib};
  +    $label = $self->translate($label,$lang) if ($lang);
  +    $self->{"${attrib}__${lang}"} = $label;      # cache it for later use
  +    #print "label($attrib, $lang) => $label\n";
  +    return $label;
   }
   
   #############################################################################
  @@ -693,23 +693,26 @@
   sub translate {
       my ($self, $label, $lang) = @_;
   
  -    return $label if (!defined $label || $label eq "");   # can't translate a null 
label
  -
  -    my ($dict, $langlabel);
  -    $dict = $self->get("dict");
  -    return $label if (!defined $dict);                    # $dict is reqd for 
translation
  -
  -    if (defined $lang && $lang ne "") {
  -        $langlabel = $dict->{$lang}{$label};
  -        if (!defined $langlabel && $lang =~ s/_.*$//) {   # trim the trailing 
modifier (en_us => en)
  -            $langlabel = $dict->{$lang}{$label};
  -        }
  -        if (!defined $langlabel) {
  -            $langlabel = $dict->{default}{$label};
  -        }
  -    }
  -    return $label if (!defined $langlabel);
  -    return $langlabel;
  +    #print "translate($label, $lang)\n";
  +    return $label if (!$label);                # can't translate a null label
  +    $label = $self->{lang} if (!$lang);
  +    return $label if (!$lang);           # can't translate without a language
  +
  +    my ($dict, $trans_label);
  +    $dict = $self->{dict};
  +    return $label if (!defined $dict); # can't translate without a dictionary
  +
  +    $trans_label = $dict->{$lang}{$label};
  +    if (!defined $trans_label && $lang =~ s/_.*$//) {   # trim the trailing 
modifier (en_us => en)
  +        $trans_label = $dict->{$lang}{$label};
  +    }
  +    if (!defined $trans_label) {
  +        $trans_label = $dict->{default}{$label};
  +    }
  +
  +    return $label if (!defined $trans_label);
  +    #print "translate($label, $lang) => $trans_label\n";
  +    return $trans_label;
   }
   
   #############################################################################
  
  
  


Reply via email to