Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 7148080c

Von Bernd Bleßmann vor mehr als 1 Jahr hinzugefügt

  • ID 7148080cb46d70a26e2710f22e7970b8bb12a05d
  • Vorgänger 29f7a565
  • Nachfolger 083d32e5

S:D:Unit: Methode, um Übersetzung der Einheit zu bekommen

Unterschiede anzeigen:

SL/DB/Unit.pm
1 1
package SL::DB::Unit;
2 2

  
3 3
use List::MoreUtils qw(any);
4

  
4
use List::Util qw(first);
5 5

  
6 6
use strict;
7 7

  
......
15 15
    class        => 'SL::DB::Unit',
16 16
    column_map   => { base_unit => 'name' },
17 17
  },
18
  translations => {
19
    type         => 'one to many',
20
    class        => 'SL::DB::UnitsLanguage',
21
    column_map   => { name => 'unit' },
22
  },
18 23
);
19 24

  
20 25
__PACKAGE__->meta->initialize;
......
66 71
  return any { $_->id == $self->id } @{ SL::DB::Manager::Unit->time_based_units };
67 72
}
68 73

  
74
sub get_translation_obj {
75
  my ($self, $language) = @_;
76

  
77
  my $language_id = (ref($language) eq 'SL::DB::Language' ? $language->id : $language) || undef;
78

  
79
  return first { $_->language_id => $language_id } @{ $self->translations || [] };
80
}
81

  
82
sub get_translation {
83
  my ($self, $language, $qty) = @_;
84

  
85
  my $translation     = $self->name; # fallback, if no translation found
86
  my $translation_obj = $self->get_translation_obj(language => $language);
87
  if ($translation_obj) {
88
    $translation = (($qty // 0) > 1 || ($qty // 0) == 0) ? $translation_obj->localized_plural : $translation_obj->localized;
89
  }
90
  return $translation;
91
}
92

  
69 93
1;

Auch abrufbar als: Unified diff