Captive-Portal
view release on metacpan or search on metacpan
lib/Captive/Portal/Role/I18N.pm view on Meta::CPAN
next;
}
}
# sort in descending quantification order
my @accept_languages_sorted =
sort { $languages{$b} <=> $languages{$a} } keys %languages;
DEBUG( 'language prefered order is: '
. join( ' > ', @accept_languages_sorted ) );
DEBUG( 'configured languages: '
. join( ' ', @{ $self->cfg->{I18N_LANGUAGES} } ) );
# look for accepted language in configured languages
my $choosen_language;
foreach my $lang (@accept_languages_sorted) {
if ( grep m/\A\Q$lang\E\Z/, @{ $self->cfg->{I18N_LANGUAGES} } ) {
DEBUG "prefered language is: $lang";
return $lang;
}
}
DEBUG 'take fallback language';
return $self->cfg->{I18N_FALLBACK_LANG};
}
=item $capo->gettext($msg_nr)
Poor mans gettext. Retrieve i18n system message from message catalog in config file. The default mesage catalog looks like:
I18N_MSG_CATALOG => {
msg_001 => {
en => 'last session state was:',
de => 'Status der letzten Sitzung war:',
},
msg_002 => {
en => 'username or password is missing',
de => 'Username oder Passwort fehlt',
},
msg_003 => {
en => 'username or password is wrong',
de => 'Username oder Passwort ist falsch',
},
msg_004 => {
en => 'successfull logout',
de => 'erfolgreich abgemeldet',
},
msg_005 => {
en => 'admin_secret is wrong',
de => 'Admin-Passwort ist falsch',
},
msg_006 => {
en => 'Idle-session reestablished due to valid cookie.',
de => 'Abgelaufene Sitzung durch gueltiges Cookie erneuert.',
},
},
Add your own translation to the conig hash.
=cut
sub gettext {
my $self = shift;
my $text = shift
or LOGDIE 'missing param text';
my $i18n_text =
$self->cfg->{I18N_MSG_CATALOG}{$text}{ $self->{CTX}{LANG} };
unless ($i18n_text) {
ERROR "missing I18N text for '$text' in lang: $self->{CTX}{LANG}";
$i18n_text = "missing '$text' for lang '$self->{CTX}{LANG}'";
}
return $i18n_text;
}
1;
=back
=head1 AUTHOR
Karl Gaissmaier, C<< <gaissmai at cpan.org> >>
=head1 LICENSE AND COPYRIGHT
Copyright 2010-2013 Karl Gaissmaier, all rights reserved.
This distribution is free software; you can redistribute it and/or modify it
under the terms of either:
a) the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version, or
b) the Artistic License version 2.0.
=cut
# vim: sw=4
( run in 2.316 seconds using v1.01-cache-2.11-cpan-524268b4103 )