HTML-Template-Compiled-Plugin-I18N
view release on metacpan or search on metacpan
lib/HTML/Template/Compiled/Plugin/I18N.pm view on Meta::CPAN
$string = $escape_sub_of{$_}->($string);
}
return $string;
}
# class method
sub escape {
my (undef, $string, $escapes) = @_;
return _escape($string, split m{,}xms, $escapes);
}
# class method
sub expand_unescaped {
my (undef, $string, $arg_ref) = @_;
my $regex = join q{|}, map { quotemeta $_ } keys %{$arg_ref};
$string =~ s{
\{ ($regex) \}
}{
lib/HTML/Template/Compiled/Plugin/I18N.pm view on Meta::CPAN
sub _parse_attributes { ## no critic (ExcessComplexity)
my ($attr_ref, $filename, $data_ref) = @_;
my $package = __PACKAGE__;
ATTRIBUTE:
for my $name ( keys %{$attr_ref} ) {
# parse ESCAPE
if ($name eq 'ESCAPE') {
if ( length $attr_ref->{$name} ) {
$data_ref->{escape}->{array}
= [ split m{\|}xms, "0|$attr_ref->{$name}" ];
}
}
if ( $init{allow_maketext} ) {
# parse maketext placeholders
# as string constant _1 .. _n
# as variable _1_VAR .. _n_VAR
my $is_maketext
= my ($position, $is_variable)
= $name =~ m{\A _ (\d+) (_VAR)? \z}xms;
if ($is_maketext) {
lib/HTML/Template/Compiled/Plugin/I18N.pm view on Meta::CPAN
}
if ( $init{allow_formatter} ) {
# parse FORMATTER
if ( $name eq 'FORMATTER' ) {
if ( exists $data_ref->{formatter}->{array} ) {
_throw( qq{Error in template $filename, plugin $package. Can not use FORMATTER twice. $name="$attr_ref->{$name}"} );
}
$data_ref->{formatter}->{array} = [
map {
{value => $_};
} split m{\|}xms, $attr_ref->{$name}
];
next ATTRIBUTE;
}
}
if ( $init{allow_unescaped} ) {
# parse unescaped placeholders
# as string constant UNESCAPED_name_1 .. UNESCAPED_name_n
# as variable UNESCAPED_name_1_VAR .. UNESCAPED_name_n_VAR
my $is_unescaped
= my ($key, $is_variable)
lib/HTML/Template/Compiled/Plugin/I18N.pm view on Meta::CPAN
return;
}
sub _check_escape {
my ($data_ref, $htc, $filename) = @_;
my $package = __PACKAGE__;
my $unknown_escapes = _calculate_escape({
escapes => [
(
split m{\|}xms, $htc->get_default_escape()
),
(
exists $data_ref->{escape}
? @{ $data_ref->{escape}->{array} }
: ()
),
],
escape_ref => \$data_ref->{escape}->{array},
});
if ($unknown_escapes) {
for my $file_name (sort @list) {
my @lines;
{
open my $file, '< :raw', $file_name
or die "Cannnot open file $file_name";
local $/ = ();
my $text = <$file>;
# repair last line without \n
$text =~ s{[^\x0D\x0A] \z}{\x0D\x0A}xms;
@lines = split m{\x0A}, $text;
}
my $find_line_numbers = sub {
my ($test_description, $test_reason, $regex, $regex_negation) = @_;
my $line_number = 0;
my @line_numbers = map {
++$line_number;
($regex_negation xor $_ =~ $regex)
? $line_number
: ();
( run in 1.713 second using v1.01-cache-2.11-cpan-71847e10f99 )