From 6cf065da5e6ef431f266359aaa3737b85f330e93 Mon Sep 17 00:00:00 2001 From: Bernardo Gonzalez Kriegel Date: Wed, 4 Dec 2013 20:44:36 -0300 Subject: [PATCH] Bug 7934: generate separate PO files for help pages MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This patch modifies LangInstaller.pm to enable separation of translation for Staff UI and Staff Help files. It's a move that make sense, Help strings accounts for 44% of total word count for Staff, and as stated on Comment #1, it could enable a different workflow on translation work. It's more a hack than an elegant solution, but it works. Feel free to suggest another approach. To test: We need to test complete functionality, i.e. create and update translation files and install translation, and verify that no string is missing. 1) Before applying the patch, we need some data from staff file. Pick your language, say de_DE, and cd misc/translator/ perl translate update de-DE msginit -i po/de-DE-i-staff-t-prog-v-3006000.po -o de-old.po --no-translator --no-wrap --locale=de_DE egrep ^msgid de-old.po | sort | tee s-old | wc -l > number-old We have the file s-old with all strings, and the number of strings on number-old 2) Apply the patch 3) New help file is called de-DE-staff-help.po, so create one cp'ing old staff on new help cp po/de-DE-i-staff-t-prog-v-3006000.po po/de-DE-staff-help.po 4) Make a new update, and analize perl translate update de-DE msginit -i po/de-DE-i-staff-t-prog-v-3006000.po -o de-new.po --no-translator --no-wrap --locale=de_DE msginit -i po/de-DE-staff-help.po -o de-help.po --no-translator --no-wrap --locale=de_DE egrep ^msgid de-new.po | sort | tee s-new | wc -l > number-new egrep ^msgid de-help.po | sort | tee s-help | wc -l > number-help cat s-new s-help | sort | uniq | tee s-all | wc -l > number-all cat s-new s-help | sort | uniq -d | tee s-dup | wc -l > number-dup Ideally what we need to found is: diff s-old s-all = zero lines (old strings vs new strings) In my test I got one line, but it's a false positive (the string "• " is present on new staff) On numbers, number-old - number-new - nummber-help + number-dup = 0 or number-old - number-all = 0 (in my test again I have 1 as result, same string. Also there are 137 repeated lines between new staff and help) All this tells me that all string to translate are preserved 5) Install translation perl translate install de-DE Enable language on staff, and check that help files are translated 6) Finally, create translation files rm po/de-DE-* perl translate create de-DE verify that all files are created. Tests of 4) can be repeated. 7) Verify that no strings from help are present on staff UI file egrep help po/de-DE-i-staff-t-prog-v-3006000.po Only results came from help-top and bottom, and a few "help" on staff strings Signed-off-by: Fridolyn SOMERS Signed-off-by: Katrin Fischer Tested according to test plan. Checked various pages in OPAC, staff and intranet, translation was ok. Passes QA script and tests. Signed-off-by: Galen Charlton --- misc/translator/LangInstaller.pm | 36 ++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/misc/translator/LangInstaller.pm b/misc/translator/LangInstaller.pm index f3525f88ec..50ba308eba 100644 --- a/misc/translator/LangInstaller.pm +++ b/misc/translator/LangInstaller.pm @@ -89,10 +89,15 @@ sub new { suffix => '-i-opac-t-prog-v-3006000.po', }, { - name => 'Intranet prog', + name => 'Intranet prog UI', dir => $context->config('intrahtdocs') . '/prog', suffix => '-i-staff-t-prog-v-3006000.po', }, + { + name => 'Intranet prog help', + dir => $context->config('intrahtdocs') . '/prog/en/modules/help', + suffix => '-staff-help.po', + }, ]; # Alternate opac themes @@ -330,13 +335,18 @@ sub install_tmpl { " To : $trans->{dir}/$self->{lang}\n", " With: $self->{path_po}/$self->{lang}$trans->{suffix}\n" if $self->{verbose}; - my $lang_dir = "$trans->{dir}/$self->{lang}"; + + my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/en/"; + my $lang_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/$self->{lang}"; + $lang_dir =~ s|/en/|/$self->{lang}/|; mkdir $lang_dir unless -d $lang_dir; + my $excludes = ( $trans->{name} =~ /UI/ )?"-x 'help'":""; + system "$self->{process} install " . - "-i $trans->{dir}/en/ " . - "-o $trans->{dir}/$self->{lang} ". - "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " . + "-i $trans_dir " . + "-o $lang_dir ". + "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r $excludes" . ( @$files ? '-f ' . join ' -f ', @$files @@ -358,10 +368,14 @@ sub update_tmpl { if $self->{verbose}; my $lang_dir = "$trans->{dir}/$self->{lang}"; mkdir $lang_dir unless -d $lang_dir; + + my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/en/"; + my $excludes = ( $trans->{name} =~ /UI/ )?"-x 'help'":""; + system "$self->{process} update " . - "-i $trans->{dir}/en/ " . - "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " . + "-i $trans_dir " . + "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r $excludes" . ( @$files ? '-f ' . join ' -f ', @$files @@ -393,10 +407,14 @@ sub create_tmpl { " From: $trans->{dir}/en/\n", " To : $self->{path_po}/$self->{lang}$trans->{suffix}\n" if $self->{verbose}; + + my $trans_dir = ( $trans->{name} =~ /help/ )?"$trans->{dir}":"$trans->{dir}/en/"; + my $excludes = ( $trans->{name} =~ /UI/ )?"-x 'help'":""; + system "$self->{process} create " . - "-i $trans->{dir}/en/ " . - "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r " . + "-i $trans_dir " . + "-s $self->{path_po}/$self->{lang}$trans->{suffix} -r $excludes" . ( @$files ? '-f ' . join ' -f ', @$files -- 2.39.5