Koha/misc
Julian Maurice 3cfc2ec7bd Bug 25067: Move PO file manipulation code into gulp tasks
misc/translator/translate was doing three different things:
- extract translatable strings
- create or update PO files
- install translated templates

This patch separates responsibilities by moving the string extraction
code into several 'xgettext-like' scripts and adds gulp tasks to
automate string extraction and PO files update

This has several benefits:

- gulp runs tasks in parallel, so it's a lot faster (updating all PO
  files is at least 10 times faster with my 4-cores CPU)

- there is no need for $KOHA_CONF to be defined
  LangInstaller.pm relied on $KOHA_CONF to get the different paths
  needed. I'm not sure why, since string extraction and PO update should
  work on source files, not installed files

- string extraction code can be more easily tested

This patch also brings a couple of fixes and improvements:

- TT string extraction (strings wrapped in [% t(...) %]) was done with
  Template::Parser and PPI, which was extremely slow, and had some
  problems (see bug 24797).
  This is now done with Locale::XGettext::TT2 (new dependency) which is
  a lot faster, and fixes bug 24797

- Fix header in 4 PO files

For backward compatibility, 'create' and 'update' commands of
misc/translator/translate can still be used and will execute the
corresponding gulp task

Test plan:
1. Run `yarn install` and install Locale::XGettext::TT2
2. Run `gulp po:update`
3. Verify the contents of updated PO files
4. Run `cd misc/translator && ./translate install <lang>`
5. Verify that all (templates, sysprefs, xslt, installer files) is
   correctly translated
6. Run `gulp po:create --lang <lang>` and verify that it created all PO
   files for that language
7. Run `prove t/misc/translator`

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Need to install yarn & gulp, no errors

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2020-11-06 09:46:11 +01:00
..
admin Bug 23816: (follow-up) Fix many things 2020-09-09 15:39:52 +02:00
bin Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
cronjobs Bug 14708: Enforce restriction in delete_patrons.pl 2020-11-06 09:40:25 +01:00
devel Bug 25549: Remove plugin methods for broken plugins 2020-10-22 10:04:30 +02:00
interface_customization Bug 23148: Replace Bridge icons with transparent PNG files 2020-07-20 16:16:37 +02:00
load_testing Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
maintenance Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
migration_tools Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
release_notes Bug 25642: Fix description of new feature in update_dbix_class_files.pl 2020-06-15 10:30:01 +02:00
search_tools Bug 26180: Add descending option to rebuild_elasticsearch.pl 2020-11-04 12:59:33 +01:00
translator Bug 25067: Move PO file manipulation code into gulp tasks 2020-11-06 09:46:11 +01:00
add_date_fields_to_marc_records.pl Bug 22509: (RM follow-up) Add use of Koha::Script base class 2019-06-24 15:08:33 +01:00
background_jobs_worker.pl Bug 22417: Process the jobs even if the message broker is not reachable 2020-10-05 15:26:36 +02:00
batchCompareMARCvsFrameworks.pl Bug 22600: Set 'commandline' interface appropriately 2019-04-10 19:43:11 +00:00
batchdeletebiblios.pl Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
batchDeleteUnusedSubfields.pl Bug 22600: Set 'commandline' interface appropriately 2019-04-10 19:43:11 +00:00
batchImportMARCWithBiblionumbers.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
batchRebuildBiblioTables.pl Bug 24827: Standardise on 'UTF-8' as the encoding name 2020-03-16 14:45:39 +00:00
batchRebuildItemsTables.pl Bug 22721: Remove frameworkcode parameter in GetMarcFromKohaField calls 2019-07-15 11:28:08 +01:00
batchRepairMissingBiblionumbers.pl Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
check_sysprefs.pl Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
commit_file.pl Bug 17845: Adjust few other occurrences 2020-03-10 15:18:28 +00:00
export_borrowers.pl Bug 22600: Set 'commandline' interface appropriately 2019-04-10 19:43:11 +00:00
export_records.pl Bug 26175: Remove warn if undefined barcode in misc/export_records.pl 2020-08-26 15:21:41 +02:00
exportauth.pl Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
import_patrons.pl Bug 23473: Allow overwrite of passwords during import 2020-03-27 12:21:59 +00:00
koha-install-log Bug 17851: Add Elasticsearch config to koha-conf.xml - Add missing entries to koha-install-log 2019-10-07 14:09:10 +01:00
kohalib.pl
link_bibs_to_authorities.pl Bug 26641: Optimize CatalogModuleRelink lookup 2020-11-04 12:59:34 +01:00
load_yaml.pl Bug 24883: (RM follow-up) Use Koha::Script 2020-03-27 12:12:31 +00:00
mod_zebraqueue.pl Bug 22600: Set 'commandline' interface appropriately 2019-04-10 19:43:11 +00:00
perlmodule_ls.pl
perlmodule_rm.pl Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
recreateIssueStatistics.pl Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
sax_parser_print.pl
sax_parser_test.pl
sip_cli_emulator.pl Bug 22540: (QA follow-up) fixes 2019-10-08 14:33:34 +01:00
stage_file.pl Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
z3950_responder.pl Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00