Catalyst::Plugin::I18N - I18N for Catalyst
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']) %]
Supports mo/po files and Maketext classes under your applications I18N namespace.
# MyApp/I18N/de.po msgid "Hello Catalyst" msgstr "Hallo Katalysator" #MyApp/I18N/de.pm package MyApp::I18N::de; use base 'MyApp::I18N'; our %Lexicon = ( 'Hello Catalyst' => 'Hallo Katalysator' ); 1;
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 } );
Contains languages.
$c->languages(['de_DE']); print join '', @{ $c->languages };
return selected locale in your locales list.
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
Localize text.
print $c->localize( 'Welcome to Catalyst, [_1]', 'sri' );
Sebastian Riedel <sri@cpan.org>
Brian Cassidy <bricas@cpan.org>
Christian Hansen <chansen@cpan.org>
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.