X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLocale.pm;h=3216cd2704a5351ab9a043b86166ac8526e8fb90;hb=5c4833d72ee69bdbbc4aefe469caf2913801c96a;hp=5016900fe29bce569057d5e3d4c95d08173c93d3;hpb=dd70b2b0ab95ac40943e8562589a5542c815e4f4;p=kivitendo-erp.git diff --git a/SL/Locale.pm b/SL/Locale.pm index 5016900fe..3216cd270 100644 --- a/SL/Locale.pm +++ b/SL/Locale.pm @@ -214,6 +214,8 @@ sub text { my $self = shift; my $text = shift; + return $text->translated if (ref($text) || '') eq 'SL::Locale::String'; + if ($self->{texts}->{$text}) { $text = $self->{iconv}->convert($self->{texts}->{$text}); } else { @@ -326,7 +328,7 @@ sub date { } elsif ($myconfig->{dateformat} eq "yyyy-mm-dd") { # Use German syntax with the ISO date style "yyyy-mm-dd" because - # Lx-Office is mainly used in Germany or German speaking countries. + # kivitendo is mainly used in Germany or German speaking countries. if (defined $longformat && $longformat == 0) { $mm++; $dd = "0$dd" if ($dd < 10); @@ -401,8 +403,7 @@ sub format_date_object { my ($self, $datetime, %params) = @_; my $format = $::myconfig{dateformat} || 'yyyy-mm-dd'; - $format =~ s/yyyy/\%Y/; - $format =~ s/yy/\%y/; + $format =~ s/yy(?:yy)?/\%Y/; $format =~ s/mm/\%m/; $format =~ s/dd/\%d/; @@ -538,7 +539,20 @@ sub get_local_time_zone { return $self->{local_time_zone}; } +sub language_join { + my ($self, $items, %params) = @_; + + $items ||= []; + $params{conjunction} ||= $::locale->text('and'); + my $num = scalar @{ $items }; + + return 0 == $num ? '' + : 1 == $num ? $items->[0] + : join(', ', @{ $items }[0..$num - 2]) . ' ' . $params{conjunction} . ' ' . $items->[$num - 1]; +} + 1; + __END__ =pod