From 0f6093ed99338c0d40de910fc59a590211d7e0be Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Fri, 6 May 2022 19:27:28 -0300 Subject: [PATCH] Bug 28707: Translate RECEIPT notice There is a badly crafted regex used when extracting strings in multiline fields in yaml files The regex is my own, introduced in Bug 24262, sorry. This patch correct it a little. Better eyes are welcome. To test: 1) go to misc translator, update some language ./translate update fr-CA 2) check missing strings egrep "Total out|Operator ID|August 31" po/fr-CA-installer.po first two are from sample notices, third from sample creator data 3) apply the patch, repeat 1) 4) repeat 2), verify the strings are present in the translation file 5) translate some of the new strings, install the language, verify strings are present in the translated files ./translate install fr-CA check fr-CA/optional/sample_creator_data.yml and fr-CA/mandatory/sample_notices.yml There are some 60+ new strings. Signed-off-by: Katrin Fischer Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 160d96e176331f8ac8eef4942bcc0af1868017c5) Signed-off-by: Lucas Gass (cherry picked from commit 577eed32b5dca9bc0dccb5de05a587b2f1debf68) Signed-off-by: Arthur Suzuki --- misc/translator/LangInstaller.pm | 2 +- misc/translator/xgettext-installer | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/translator/LangInstaller.pm b/misc/translator/LangInstaller.pm index df0da27e27..ef6a5b154a 100644 --- a/misc/translator/LangInstaller.pm +++ b/misc/translator/LangInstaller.pm @@ -317,7 +317,7 @@ sub translate_yaml { for my $field ( @translatable ) { # each translatable field if ( @multiline and grep { $_ eq $field } @multiline ) { # multiline fields, only notices ATM foreach my $line ( @{$row->{$field}} ) { - next if ( $line =~ /^(\s*<.*?>\s*$|^\s*\[.*?\]\s*|\s*)$/ ); # discard pure html, TT, empty + next if ( $line =~ /^(\s*<\/*\w+\s*>|\s*\[.*\]|\s*<.*\[.*\].*>|\s*)$/ ); # discard pure html, TT, empty my @ttvar; while ( $line =~ s/(<<.*?>>|\[\%.*?\%\]|<.*?>)/\%s/ ) { # put placeholders, save matches my $var = $1; diff --git a/misc/translator/xgettext-installer b/misc/translator/xgettext-installer index 5fa23faaba..ecb134b14a 100755 --- a/misc/translator/xgettext-installer +++ b/misc/translator/xgettext-installer @@ -111,7 +111,7 @@ for my $file (@files) { $mulc++; # discard pure html, TT, empty - next if ( $line =~ /^(\s*<.*?>\s*$|^\s*\[.*?\]\s*|\s*)$/ ); + next if ( $line =~ /^(\s*<\/*\w+\s*>|\s*\[.*\]|\s*<.*\[.*\].*>|\s*)$/ ); # put placeholders $line =~ s/(<<.*?>>|\[\%.*?\%\]|<.*?>)/\%s/g; -- 2.39.2