X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/76da5bf5bf6929e4cc11a8eb48a53e078ff6e167..28d69bb85e934088a56e6e8458cd08d3794e1f8b:/SL/DB/Helper/TranslatedAttributes.pm 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 {