_hashify: verallgemeinert, getestet, nach SL::Util verschoben (und das dabei erfunden)
[kivitendo-erp.git] / SL / Locale.pm
index 8fa3780..3216cd2 100644 (file)
@@ -328,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);
@@ -403,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/;
 
@@ -540,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