SL::Locale::language_join: Arrays menschenlesbar ausgeben
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 8 Mar 2013 14:08:04 +0000 (15:08 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 8 Mar 2013 14:30:14 +0000 (15:30 +0100)
z.B. für @ary = qw(links rechts oben): "links, rechts und oben"

SL/Locale.pm
locale/de/all

index 5503c1b..3216cd2 100644 (file)
@@ -539,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
index 7b56114..08ed56a 100644 (file)
@@ -2344,6 +2344,7 @@ $self->{texts} = {
   'action= not defined!'        => 'action= nicht definiert!',
   'active'                      => 'aktiv',
   'all entries'                 => 'alle Einträge',
+  'and'                         => 'und',
   'ap_aging_list'               => 'liste_offene_verbindlichkeiten',
   'ar_aging_list'               => 'liste_offene_forderungen',
   'as at'                       => 'zum Stand',