X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FLocale.pm;h=3216cd2704a5351ab9a043b86166ac8526e8fb90;hb=3ce4cab393c398fe802d4d5cef08b7ad64773294;hp=8a2caa2c0bfb7e335b046f88eb94a075ea4508e5;hpb=a1a9bb961ab49ee053cb208ea01e17430d0ca836;p=kivitendo-erp.git diff --git a/SL/Locale.pm b/SL/Locale.pm index 8a2caa2c0..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 @@ -547,7 +561,7 @@ __END__ =head1 NAME -Locale - Functions for dealing with locale-dependant information +Locale - Functions for dealing with locale-dependent information =head1 SYNOPSIS