Skip to content

Commit

Permalink
Bug 7934: generate separate PO files for help pages
Browse files Browse the repository at this point in the history
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 <fridolyn.somers@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
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 <gmc@esilibrary.com>
  • Loading branch information
bgkriegel authored and gmcharlt committed Dec 17, 2013
1 parent 4e64ea8 commit 6cf065d
Showing 1 changed file with 27 additions and 9 deletions.
36 changes: 27 additions & 9 deletions misc/translator/LangInstaller.pm
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 6cf065d

Please sign in to comment.