Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / SL / Locale / String.pm
index 42ceb22..7229743 100644 (file)
@@ -6,20 +6,38 @@ use parent qw(Rose::Object Exporter);
 
 use Rose::Object::MakeMethods::Generic (
   scalar => [ qw(untranslated) ],
+  array  => [ qw(args) ],
 );
 
 our @EXPORT = qw(t8);
 
-use overload '""' => \&translated;
+use overload
+  '""' => \&translated,
+  eq   => \&my_eq,
+  ne   => \&my_ne;
 
 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 => [ @_ ]);
+}
+
+sub my_eq {
+  $_[1] eq $_[0]->translated;
+}
+
+sub my_ne {
+  $_[1] ne $_[0]->translated;
+}
+
+sub TO_JSON {
+  return $_[0]->translated;
 }
 
 1;