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']) %]
[% l('messages.hello.catalyst') %]
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;
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.
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
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.
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>
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.