SL::Locale::String kann jetzt auch Parameter
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 10 Jan 2013 15:32:35 +0000 (16:32 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 10 Jan 2013 15:36:37 +0000 (16:36 +0100)
t8('The is no cake, at least with id #1', 42)

SL/Locale/String.pm

index 42ceb22..7afcaa4 100644 (file)
@@ -6,6 +6,7 @@ use parent qw(Rose::Object Exporter);
 
 use Rose::Object::MakeMethods::Generic (
   scalar => [ qw(untranslated) ],
+  array  => [ qw(args) ],
 );
 
 our @EXPORT = qw(t8);
@@ -14,12 +15,14 @@ use overload '""' => \&translated;
 
 sub translated {
   my ($self) = @_;
-  return $::locale ? $::locale->text($self->untranslated) : $self->untranslated;
+  return $::locale ? $::locale->text($self->untranslated, $self->args) : $self->untranslated;
 }
 
 sub t8 {
-  my $string = $_[ ref($_[0]) || ($_[0] eq 'SL::Locale::String') ? 1 : 0 ];
-  return SL::Locale::String->new(untranslated => $string);
+  shift if $_[0] eq __PACKAGE__;
+
+  my $string = shift;
+  return SL::Locale::String->new(untranslated => $string, args => \@_);
 }
 
 1;