NAME
    Catalyst::Plugin::I18N - I18N for Catalyst

SYNOPSIS
        use Catalyst 'I18N';

        print join ' ', @{ $c->languages };
        $c->languages( ['de'] );
        print $c->localize('Hello Catalyst');

    Use a macro if you're lazy:

       [% MACRO l(text, args) BLOCK;
           c.localize(text, args);
       END; %]

       [% l('Hello Catalyst') %]
       [% l('Hello [_1]', 'Catalyst') %]
       [% l('lalala[_1]lalala[_2]', ['test', 'foo']) %]
       [% l('messages.hello.catalyst') %]

DESCRIPTION
    Supports mo/po files and Maketext classes under your application's I18N
    namespace.

       # MyApp/I18N/de.po
       msgid "Hello Catalyst"
       msgstr "Hallo Katalysator"

       # MyApp/I18N/i_default.po
       msgid "messages.hello.catalyst"
       msgstr "Hello Catalyst - fallback translation"

       # MyApp/I18N/de.pm
       package MyApp::I18N::de;
       use base 'MyApp::I18N';
       our %Lexicon = ( 'Hello Catalyst' => 'Hallo Katalysator' );
       1;

  CONFIGURATION
    You can override any parameter sent to Locale::Maketext::Simple by
    specifying a "maketext_options" hashref to the "Plugin::I18N" config
    section. For example, the following configuration will override the
    "Decode" parameter which normally defaults to 1:

        __PACKAGE__->config(
            'Plugin::I18N' =>
                maketext_options => {
                    Decode => 0
                }
        );

    All languages fallback to MyApp::I18N which is mapped onto the i-default
    language tag. If you use arbitrary message keys, use i_default.po to
    translate into English, otherwise the message key itself is returned.

  EXTENDED METHODS
   setup
  METHODS
   languages
    Contains languages.

       $c->languages(['de_DE']);
       print join '', @{ $c->languages };

   language
    return selected locale in your locales list.

   language_tag
    return language tag for current locale. The most notable difference from
    this method in comparison to "language()" is typically that languages
    and regions are joined with a dash and not an underscore.

        $c->language(); # en_us
        $c->language_tag(); # en-us

   installed_languages
    Returns a hash of { langtag => "descriptive name for language" } based
    on language files in your application's I18N directory. The descriptive
    name is based on I18N::LangTags::List information. If the descriptive
    name is not available, will be undef.

   loc
   localize
    Localize text.

        print $c->localize( 'Welcome to Catalyst, [_1]', 'sri' );

SEE ALSO
    Catalyst

AUTHORS
    Sebastian Riedel <sri@cpan.org>

    Brian Cassidy <bricas@cpan.org>

    Christian Hansen <chansen@cpan.org>

COPYRIGHT AND LICENSE
    Copyright (c) 2005 - 2009 the Catalyst::Plugin::I18N "AUTHORS" as listed
    above.

    This program is free software, you can redistribute it and/or modify it
    under the same terms as Perl itself.