The translation message catalogs contain a lot of Template Toolkit statements in the messages. They bloat the message lengths, and add unnecessary complications for translators, making errors far more likely. For example, there's no need to have "INCLUDE 'opac-bottom.inc'" show up as a placeholder in the messages. Using the following incantation: grep -E '^#\. %[0-9]+\$s: ' po/xx-YY-*.po | cut -d':' -f 3- | sed -e 's/^ *\(IF\|ELSIF\|CASE\|SWITCH\|INCLUDE\|USE\|SET\|PROCESS\|BLOCK\|FOREACH\|UNLESS\) *.*$/ \1 /g' | sort | uniq -c | sort -rn we get a list of all placeholders, sorted by # of uses. The top-5 is: 1750 END 1429 IF 647 ELSE 263 ELSIF 252 INCLUDE
Created attachment 28122 [details] [review] Remove TT statement placeholders from translatable strings The translation message catalogs contain a lot of Template Toolkit statements in the messages. They bloat the message lengths, and add unnecessary complications for translators, making errors far more likely. For example, there's no need to have "INCLUDE 'opac-bottom.inc'" show up as a placeholder in the messages. Before this patch, the top 5 placeholders in the catalogs are: 1750 END 1429 IF 647 ELSE 263 ELSIF 252 INCLUDE After this patch, the placeholders are only variables. The top 5 is: 32 total 22 searchfield 20 bibliotitle 19 surname 19 OPACBaseURL Use the following incantation to get the stats: grep -E '^#\. %[0-9]+\$s: ' po/xx-YY-*.po | cut -d':' -f 3- | sed -e 's/^ *\(IF\|ELSIF\|CASE\|SWITCH\|INCLUDE\|USE\|SET\|PROCESS\|BLOCK\|FOREACH\|UNLESS\) *.*$/ \1 /g' | sort | uniq -c | sort -rn The number of separate msgid's does not change very much: 19430 before the patch, 19995 afterwards.
Yes, I know, this needs a test plan. Suggestions on what and how to test would be appreciated.