Locale::TextDomain::OO::Lexicon::Role::File - Helper role to add lexicon from file
$Id: File.pm 722 2018-12-21 12:24:14Z steffenw $
$HeadURL: svn+ssh://steffenw@svn.code.sf.net/p/perl-gettext-oo/code/module/trunk/lib/Locale/TextDomain/OO/Lexicon/Role/File.pm $
1.034
This module provides methods to inplmement lexicon from file easy.
with qw( Locale::TextDomain::OO::Lexicon::Role::File );
Allows to implement your own way of decode messages. Add a code ref in constructor.
decode_code => sub { my ($charset, $text) = @_; defined $text or return $text; return decode( $charset, $text ); },
$self->lexicon_ref({ # required search_dirs => [ qw( ./my_dir ./my_other_dir ) ], # optional gettext_to_maketext => $boolean, # optional decode => $boolean, # required data => [ # e.g. de.mo, en.mo read from: # search_dir/de.mo # search_dir/en.mo '*::' => '*.mo', # e.g. de.mo en.mo read from: # search_dir/subdir/de/LC_MESSAGES/domain.mo # search_dir/subdir/en/LC_MESSAGES/domain.mo '*:LC_MESSAGES:domain' => 'subdir/*/LC_MESSAGES/domain.mo', # Merge a region lexicon: # Take the header and messages of the "de::" lexicon, # overwrite the header and messages of the "de-at::" lexicon # and store that as "de-at::" lexicon with all messages now. merge_lexicon => 'de::', 'de-at::' => 'de-at::', # Copy a lexicon into another domain and/or category: copy_lexicon => 'i-default::' => 'i-default:LC_MESSAGES:domain', # Move a lexicon into another domain and/or category: move_lexicon => 'i-default::' => 'i-default:LC_MESSAGES:domain', # Delete a lexicon: delete_lexicon => 'i-default::', ], });
Set the logger and get back them
$lexicon_hash->logger( sub { my ($message, $arg_ref) = @_; my $type = $arg_ref->{type}; $log->$type($message); return; }, ); $logger = $lexicon_hash->logger;
$arg_ref contains
object => $lexicon_hash, # the object itself type => 'debug', event => 'lexicon,load', # The logger will be copied to # Locale::TextDomain::OO::Singleton::Lexicon # so more events are possible.
Inside of this distribution is a directory named example. Run this *.pl files.
confess
none
Carp
Encode
English
Locale::TextDomain::OO::Singleton::Lexicon
Locale::TextDomain::OO::Util::ExtractHeader
Locale::TextDomain::OO::Util::JoinSplitLexiconKeys
Moo::Role
MooX::Types::MooseLike::Base
Path::Tiny
namespace::autoclean
Locale::TextDomain::OO::Lexicon::Role::GettextToMaketext
Locale::TextDomain::OO::Role::Logger
not known
Locale::TextDoamin::OO
Steffen Winkler
Copyright (c) 2013 - 2018, Steffen Winkler <steffenw at cpan.org>. All rights reserved.
<steffenw at cpan.org>
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Locale::TextDomain::OO, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Locale::TextDomain::OO
CPAN shell
perl -MCPAN -e shell install Locale::TextDomain::OO
For more information on module installation, please visit the detailed CPAN module installation guide.