package JWebmail::Plugin::I18N2::Role; use v5.24; use warnings; use utf8; use Role::Tiny; requires qw(translate); sub languages { require List::Util; my $self = shift; my @ret = $self->loaded_languages; if (my $find = shift) { return List::Util::any { $find eq $_ } @ret; } return wantarray ? sort @ret : @ret; } 1 __END__ =encoding utf-8 =head1 DESCRIPTION The translate method is called with self, the language and the word and maybe additional arguments. The languages method shall report all loaded languages when called with no argument and if a language is loaded when given an argument. A default languages method is provided that reads languages form the loaded_language method.