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.
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!