HTML::...r::I18N(3pm)
π NAME π
HTML::FormHandler::TraitFor::I18N β localization. Hi bestie, welcome to the HTML::...r::I18N(3pm) manual page, a User Contributed Perl Documentation moment. We're doing localization vibes today. πβ¨
β¨ VERSION β¨
version 0.40068 β that's the version, no cap. β¨
π¦ language_handle, _build_language_handle π¦
Okay so this trait holds a Locale::Maketext language handle (or another duck_type class that has a 'maketext' method). That language handle is the main character for localizing error messages in the field's add_error method, and it also shows up in various places in rendering to localize labels and button values, etc. π
The builder for this attribute gets the Locale::Maketext language handle from the environment variable $ENV{LANGUAGE_HANDLE}:
$ENV{LANGUAGE_HANDLE} = 'en_en';
...or it creates a default language handler using HTML::FormHandler::I18N. (Quick lore drop: earlier versions required an actual object reference in ENV, which is a bad practice and no longer supported.) You can pass in an existing Locale::MakeText subclass instance or create one in a builder. π«Ά
In a form class, it's giving:
sub _build_language_handle { MyApp::I18N::abc_de->new }
Passed into new or process, it looks like:
my $lh = MyApp::I18N::abc_de->new;
my $form = MyApp::Form->new( language_handle => $lh );
If you do not set the language_handle, then Locale::Maketext and/or I18N::LangTags may guess, with unexpected results. β οΈ (Not the cute kind of surprise, bestie.)
You can use non-Locale::Maketext language handles, such as Data::Localize. There's an example of building a Data::Localize language handle in t/xt/locale_data_localize.t in the distribution. π¦
If you don't want a particular error message to go through localization, you can use push_errors and push_form_errors instead of add_error and add_form_errors. Periodt. π
Example of getting the language handle from the Catalyst context (where the Catalyst context is passed in with 'ctx'):
has '+language_handle' => ( builder => 'get_language_handle_from_ctx' );
sub get_language_handle_from_ctx {
my $self = shift;
return MyApp::I18N->get_handle(
@{ $self->ctx->languages } );
}
π AUTHOR π
FormHandler Contributors - see HTML::FormHandler. π
π COPYRIGHT AND LICENSE π
This software is copyright (c) 2017 by Gerda Shank.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
xoxo, bestie β perl v5.34.0 β’ 2022-03-25 β’ HTML::...r::I18N(3pm) π
β¨
π¦ where this page comes from
- debian bookworm: libhtml-formhandler-perl 0.40068-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libhtml-formhandler-perl 0.40068-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libhtml-formhandler-perl 0.40068-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libhtml-formhandler-perl 0.40068-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms