@@ -, +, @@ --- C4/TTParser.pm | 10 ++++++++++ misc/translator/xgettext.pl | 1 + 2 files changed, 11 insertions(+) --- a/C4/TTParser.pm +++ a/C4/TTParser.pm @@ -60,6 +60,7 @@ sub build_tokens{ $self->handler(end => "end", "self, line, tag, attr, text"); #signature is end( self, linenumber, tagename, original text ) $self->handler(declaration => "declaration", "self, line, text, is_cdata"); # declaration $self->handler(comment => "comment", "self, line, text, is_cdata"); # comments + $self->handler(process => "process", "self, line, text, is_cdata"); # processing statement # $self->handler(default => "default", "self, line, text, is_cdata"); # anything else $self->marked_sections(1); #treat anything inside CDATA tags as text, should really make it a C4::TmplTokenType::CDATA $self->unbroken_text(1); #make contiguous whitespace into a single token (can span multiple lines) @@ -116,6 +117,15 @@ sub comment { push @tokens, $t; } +sub process { + my $self = shift; + my $line = shift; + my $work = shift; #original text + my $is_cdata = shift; + my $t = C4::TmplToken->new( $work, ($is_cdata? C4::TmplTokenType::CDATA : C4::TmplTokenType::TEXT), $line, $self->{filename} ); + push @tokens, $t; +} + sub default { my $self = shift; my $line = shift; --- a/misc/translator/xgettext.pl +++ a/misc/translator/xgettext.pl @@ -44,6 +44,7 @@ sub string_negligible_p { || $t =~ /^[A-Za-z]$/ # single letters || $t =~ /^(&[a-z]+;|&#\d+;|&#x[0-9a-fA-F]+;|%%|%s|\s|[[:punct:]])*$/ # html entities,placeholder,punct, ... || ( $t =~ /^\[\%.*\%\]$/ and $t !~ /\%\].*\[\%/ ) # pure TT entities + || $t =~ /^\s*<\?.*\?>/ # ignore xml prolog ) } --