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 )