Skip to content
  • Julian Maurice's avatar
    Bug 25067: Move PO file manipulation code into gulp tasks · 3cfc2ec7
    Julian Maurice authored and joubu's avatar joubu committed
    
    
    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: default avatarBernardo Gonzalez Kriegel <bgkriegel@gmail.com>
    Need to install yarn & gulp, no errors
    
    Signed-off-by: default avatarKatrin Fischer <katrin.fischer.83@web.de>
    
    Signed-off-by: default avatarJonathan Druart <jonathan.druart@bugs.koha-community.org>
    3cfc2ec7