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>
Without this patch, the -f param (for the translate script) add the
modified line in the po file BUT comment all lines from others files.
This patch concat the generated file with the previous one and merge
them. This way produce a pretty po file with all our strings :)
+ Modification in LangInstaller.pm to fix a bug when the -f param was not
given.
Test plan:
1/ Update your po file :
cd misc/translator
perl translate update fr-FR
git commit -a -m"TMP PO"
2/ Modification on 2 files:
ie.
catalogue/advsearch.tt:32 <h1>Advanced search Foo</h1>
catalogue/issuehistory.tt:38 <th>Patron Bar</th>
3/ Update your po file with only the first file:
perl translate update fr-FR -f advsearch.tt
4/ Edit your po file and check that only the foo string is present (or
git diff).
5/ Update your po file with only the second file:
perl translate update fr-FR -f issuehistory
6/ Edit your po file and check that 2 strings are present (or git diff).
7/ Change the translation for these 2 strings and delete the fuzzy
lines.
8/ Install the first file for your language:
perl translate install fr-FR -f advsearch.tt
9/ Edit your translated file and verify the string is translated. Check
that the issuehistory.tt file is not changed.
10/ Same for issuehistory:
perl translate install fr-FR -f issuehistory
11/ stash your modification in your tt files (or reset --hard):
git stash
12/ Check in your po file that the 2 strings are commented (git diff).
13/ To finish, install all template files and check that they are
replaced correctly:
perl translate install fr-FR
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
I have squashed the both follow-up patches.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
The previous version of tmpl_process3.pl says in the pod:
-i, --input=SOURCE Get or update strings from SOURCE file.
SOURCE is a directory if -r is also specified.
But is was not possible to specify one or more files.
This patch allows us to give one or more specific file with the -f
parameter.
for eg.:
perl tmpl_process3.pl install -i /home/koha/koha-tmpl/opac-tmpl/prog/en/modules/
-o /home/koha/koha-tmpl/opac-tmpl/prog/fr-FR/modules/
-s /home/koha/misc/translator/po/fr-FR-i-opac-t-prog-v-3006000.po
-r
-f opac-account.tt
-f opac-main.tt
You can specify:
-f advsearch.tt => translate all files with a filename containing
'advsearch.tt'
or
-f search => will translate acqui/histsearch.tt, acqui/z3950_search.tt, etc.
Bug 9161: Followup: Add a -f param for the translate script
Now you can directly call the translate script
(misc/translator/translate) with the -f parameter
eg.:
./translate install|create|update -f search.tt -f main.tt
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
I've squashed the 3 patches, and reported doc into 'translate' script.
It works as advertised.
Side note: It would be great to extend this functionnality in order to
be able to apply the translation to XSL files stored outside Koha
directories hierarchy. Useful to translate site-specific XSLs defined
with XSLTResultsDisplay, and other sysprefs.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
With this patch, header is created when creating a new syspref .po file
for a new language (translate create), and is added if it doesn't
already exist when updating an existing language (translate update).
To test:
(1) Create a new language syspref file:
./translate create -p xx-XX
Check that there is an header
(2) Update an existing syspref file without header:
./translate update fr-FR
Check that fr-FR-pref.po has a header
(3) Update an existing syspref file with header:
Modify fr-FR-pref.po. Add an email, or whatever.
./translate update fr-FR
Check that fr-FR-pref.po has a header with the manual modification
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: Work as described. No errors.
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
All tests and QA script pass.
Also tested that updated pref files can still be installed correctly.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Modify /misc/translator/translate script in order to manage properly alternate
OPAC templates.
To test it with new 'ccsr' template:
- Create the .po file:
./translate create fr-FR
Result: existing .po files are not modified. A new fr-FR-opac-ccsr.po file is
available.
- Install all templates :
./translate install fr-FR
Result: A new koha-tmpl/opac-tmpl/ccsr/fr-FR directory contains translated
templates.
- Update .po files:
./translate update fr-FR
Result: fr-FR .po files are update, include fr-FR-opac-ccsr.po
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
This patch deal with the -v flag that you can put on translate script.
If you run without -v, the process should be silent
if you run with -v, the process should be verbose
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
I've refactored your patch to handle verbosity directly via a translator
attribute, rather than with parameter which has to be send to each object call
method.
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
[1] Update all .po files in once with this command:
translate update
[2] For sysprefs, quoted text wasn't properly retrieved from .po file and so
quoted strings wasn't translatable.
[3] The install process (translate -p install de-DE) was rewriting syspref
.po file which isn't required anymore.
MUST be applied to [3.2] to get all syspref proper translation.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>