Koha/misc/translator
Jonathan Druart 6757cd5f86
Bug 35043: Use Locale::PO->quote
We have our own "quote_po" sub that is stating that Locale::PO::quote
is buggy because it does not deal with quoting new lines correctly.
However it seems that it is fixed now.

Ideally we could use Locale::PO::quote everywhere, but it does not
escape tab characters:
  $string =~ s/\\(?!t)/\\\\/g;           # \t is a tab

This means the following:
msgid "Tabulation (\\t)"
msgstr "Tabulation (\\t)"
become:
-msgid "Tabulation (\t)"
-msgstr "Tabulation (\t)"

And we are seeing the following on Weblate:
https://snipboard.io/BjQmDC.jpg

Note that Locale::PO has not been updated since 2014...

The real problem behind this is that we have 2 methods to quote strings.
At first glance it seems that Locale::PO::quote was not used before, but
with the introduction of the koha-i18n project we will have scripts that
will use Locale::PO->save_file_fromarray, which uses Locale::PO->quote
=> Those scripts will be used on the translation server for post
processing (security reason, marking potential XSS strings as fuzzy).

Test plan:
0. Do not apply the patch
1. gulp po:update --lang LANG # Replace LANG with your favorite language
   code
2. git commit -a -m"init PO files"
3. Apply this patch
4. Repeate 1.
5. git diff
   => The change is about the "Tabulation" and "New line" strings from
      tools/csv-profiles.tt
6. Translate them (replace the \t and \n with %s) and remove the fuzzy
   flag
7. install the template: cd misc/translator && perl translate install
   LANG
8. Enable the language, use it and go to the "Nouveau profil CSV" view
   => Notice that the \t and \n are correctly displayed.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
2023-10-27 16:45:52 -03:00
..
po Translation fixes 2023-05-31 16:10:07 -03:00
LangInstaller.pm Bug 31640: Fuzzy translations of preferences can cause missing sections and inaccurate translations 2023-04-06 09:29:27 -03:00
po2json Bug 34983: Force a sort order in JSON output of po2json 2023-10-24 10:05:27 -03:00
tmpl_process3.pl Bug 35043: Use Locale::PO->quote 2023-10-27 16:45:52 -03:00
TmplTokenizer.pm Bug 35043: Use Locale::PO->quote 2023-10-27 16:45:52 -03:00
translate Bug 25067: Move PO file manipulation code into gulp tasks 2020-11-06 09:46:11 +01:00
VerboseWarnings.pm Bug 17600: Fix tests 2021-07-16 09:47:01 +02:00
xgettext-installer Bug 31292: Untranslatable string in sample_notices.yaml 2022-08-08 13:10:56 -03:00
xgettext-pref Bug 28154: Fix encoding issues on Koha-pref.pot 2021-04-16 13:53:54 +02:00
xgettext-tt2 Bug 25067: Move PO file manipulation code into gulp tasks 2020-11-06 09:46:11 +01:00
xgettext.pl Bug 35043: Use Locale::PO->quote 2023-10-27 16:45:52 -03:00