Summary: | TTparser parses certain TT statements wrong | ||
---|---|---|---|
Product: | Koha | Reporter: | paxed <pasi.kallinen> |
Component: | Templates | Assignee: | paxed <pasi.kallinen> |
Status: | CLOSED FIXED | QA Contact: | Testopia <testopia> |
Severity: | minor | ||
Priority: | P5 - low | CC: | bgkriegel, gmcharlt |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
Change sponsored?: | --- | Patch complexity: | --- |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: | Version(s) released in: | ||
Circulation function: | |||
Attachments: |
Fix TT parsing when TT statement contains ]
[SIGNED-OFF] Bug 12207: TTparser parses certain TT statements wrong Bug 12207: TTparser parses certain TT statements wrong |
Description
paxed
2014-05-07 06:48:27 UTC
Created attachment 28005 [details] [review] Fix TT parsing when TT statement contains ] This piece of TT code: [% SWITCH lang %] [% CASE ['en', 'eng'] %]English [% CASE ['fr', 'fre'] %]French [% CASE ['it', 'ita'] %]Italian ... [% CASE %][% lang %] [% END %] is parsed by the TTparser.pm wrong. In the po-files, it shows up as: ... All the "CASE [ ... ]" codes are shown as "ERROR". This happens if any TT statement contains a ']' in it - the TTParser looks for anything that starts with [% and ends with ]. To test: 1) cd misc/translator/ 2) perl translate update xx-YY 3) for x in po/xx-YY-*.po; do cp "$x" "${x/.po/.po.bak}"; done 4) apply patch 5) perl translate update xx-YY 6) for x in po/xx-YY-*.po; do diff -Nurd "$x" "${x/.po/.po.bak}"; done the only changed lines should be those that apply to msgid's with ERROR-parameters. Created attachment 28302 [details] [review] [SIGNED-OFF] Bug 12207: TTparser parses certain TT statements wrong This piece of TT code: [% SWITCH lang %] [% CASE ['en', 'eng'] %]English [% CASE ['fr', 'fre'] %]French [% CASE ['it', 'ita'] %]Italian ... [% CASE %][% lang %] [% END %] is parsed by the TTparser.pm wrong. In the po-files, it shows up as: ... All the "CASE [ ... ]" codes are shown as "ERROR". This happens if any TT statement contains a ']' in it - the TTParser looks for anything that starts with [% and ends with ]. To test: 1) cd misc/translator/ 2) perl translate update xx-YY 3) for x in po/xx-YY-*.po; do cp "$x" "${x/.po/.po.bak}"; done 4) apply patch 5) perl translate update xx-YY 6) for x in po/xx-YY-*.po; do diff -Nurd "$x" "${x/.po/.po.bak}"; done the only changed lines should be those that apply to msgid's with ERROR-parameters. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Work as described. No errors Created attachment 28399 [details] [review] Bug 12207: TTparser parses certain TT statements wrong This piece of TT code: [% SWITCH lang %] [% CASE ['en', 'eng'] %]English [% CASE ['fr', 'fre'] %]French [% CASE ['it', 'ita'] %]Italian ... [% CASE %][% lang %] [% END %] is parsed by the TTparser.pm wrong. In the po-files, it shows up as: ... All the "CASE [ ... ]" codes are shown as "ERROR". This happens if any TT statement contains a ']' in it - the TTParser looks for anything that starts with [% and ends with ]. To test: 1) cd misc/translator/ 2) perl translate update xx-YY 3) for x in po/xx-YY-*.po; do cp "$x" "${x/.po/.po.bak}"; done 4) apply patch 5) perl translate update xx-YY 6) for x in po/xx-YY-*.po; do diff -Nurd "$x" "${x/.po/.po.bak}"; done the only changed lines should be those that apply to msgid's with ERROR-parameters. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Work as described. No errors Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Pushed to master and 3.16.x. Thanks, Pasi! |