| 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 | ||
| GIT URL: | Initiative type: | --- | |
| Sponsorship status: | --- | Comma delimited list of Sponsors: | |
| Crowdfunding goal: | 0 | 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 |
||
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! |
This piece of TT code in intranet-tmpl/prog/en/includes/authorities-search-results.inc: [% 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: #. %7$s: SWITCH lang #. %8$s: ERROR #. %9$s: ERROR ... #. %17$s: CASE #. %18$s: lang #. %19$s: END All the "CASE [ ... ]" codes are shown as "ERROR". This happens if any TT statement contains a ']' in it.