X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FHelper%2FTranslatedAttributes.pm;h=2c3857c7acc97e9ccb3c6aa62d2db935ed8071fa;hb=3123d6f881b77d0d08874b2fa5356a81710fc930;hp=b0b1c2e6cfb1f9a1f11b05262ceb0436b6ac80d8;hpb=76da5bf5bf6929e4cc11a8eb48a53e078ff6e167;p=kivitendo-erp.git diff --git a/SL/DB/Helper/TranslatedAttributes.pm b/SL/DB/Helper/TranslatedAttributes.pm index b0b1c2e6c..2c3857c7a 100644 --- a/SL/DB/Helper/TranslatedAttributes.pm +++ b/SL/DB/Helper/TranslatedAttributes.pm @@ -12,13 +12,16 @@ use Carp; sub translated_attribute { my ($self, $attribute, $language_id, $verbatim) = @_; - $language_id = _check($self, $attribute, $language_id, $verbatim); - my $translation = _find_translation($self, $attribute, $language_id, 0); - $translation ||= _find_translation($self, $attribute, undef, 0) unless $verbatim; + $language_id = _check($self, $attribute, $language_id, $verbatim); + my $translation_obj = _find_translation($self, $attribute, $language_id, 0); + my $translation = $translation_obj ? $translation_obj->translation : ''; - return $translation ? $translation->translation - : $verbatim ? undef - : $self->$attribute; + return $translation if $verbatim || $translation; + + $translation_obj = _find_translation($self, $attribute, undef, 0); + $translation = $translation_obj ? $translation_obj->translation : ''; + + return $translation || $self->$attribute; } sub save_attribute_translation { @@ -35,7 +38,7 @@ sub _check { croak "Invalid attribute '${attribute}'" unless $self->can($attribute); croak "Object has not been saved yet" unless $self->id || $verbatim; - return ref($language_id) eq 'SL::DB::Language' ? $language_id->id : $language_id; + return (ref($language_id) eq 'SL::DB::Language' ? $language_id->id : $language_id) || undef; } sub _find_translation {