NAME
Locale::TextDomain::OO::Lexicon::Role::File - Helper role to add lexicon from file
$Id: File.pm 617 2015-08-22 05:39:27Z steffenw $
$HeadURL: svn+ssh://steffenw@svn.code.sf.net/p/perl-gettext-oo/code/module/trunk/lib/Locale/TextDomain/OO/Lexicon/Role/File.pm $
VERSION
1.031
DESCRIPTION
This module provides methods to inplmement lexicon from file easy.
SYNOPSIS
with qw(
Locale::TextDomain::OO::Lexicon::Role::File
);
SUBROUTINES/METHODS
attribute decode_code
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 );
},
method lexicon_ref
$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::',
],
});
method logger
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.
EXAMPLE
Inside of this distribution is a directory named example. Run this *.pl files.
DIAGNOSTICS
confess
CONFIGURATION AND ENVIRONMENT
none
DEPENDENCIES
Locale::TextDomain::OO::Singleton::Lexicon
Locale::TextDomain::OO::Util::ExtractHeader
Locale::TextDomain::OO::Util::JoinSplitLexiconKeys
Locale::TextDomain::OO::Lexicon::Role::GettextToMaketext
Locale::TextDomain::OO::Role::Logger
INCOMPATIBILITIES
not known
BUGS AND LIMITATIONS
none
SEE ALSO
AUTHOR
Steffen Winkler
LICENSE AND COPYRIGHT
Copyright (c) 2013 - 2017, Steffen Winkler <steffenw at cpan.org>
. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.