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;
}
#############################################################################