Install&Update wordpress languages with composer


#41

@marcelgro It works just fine for me.

Here’s the example steps you can follow:

# Create temporary folder for testing
$ mkdir /tmp/composer-test
$ cd /tmp/composer-test

# Download the example composer.json
$ curl -O https://gist.githubusercontent.com/onnimonni/154cd5988cb93f2490c5/raw/d80fecd50bcb191e19ea1f4b1607a16dc41a7321/composer.json

# Install packages with composer
$ composer install

# List all files
$ tree
.
├── composer.json
├── composer.lock
├── htdocs
│   ├── wordpress
│   │   ├── composer.json
│   │   ├── index.php
│   │   ├── license.txt
│   │   ├── readme.html
│   │   ├── wp-activate.php
│   │   ├── wp-admin
│   │   └── ...
│   └── wp-content
│       ├── languages
│       │   ├── admin-az.mo
│       │   ├── admin-az.po
│       │   ├── admin-ca.mo
│       │   ├── admin-ca.po
│       │   ├── admin-en_AU.mo
│       │   ├── admin-en_AU.po
│       │   ├── admin-en_GB.mo
│       │   ├── admin-en_GB.po
│       │   ├── admin-fi.mo
│       │   ├── admin-fi.po
│       │   ├── admin-fr_FR.mo
│       │   ├── admin-fr_FR.po
│       │   ├── admin-network-az.mo
│       │   ├── admin-network-az.po
│       │   ├── admin-network-ca.mo
│       │   ├── admin-network-ca.po
│       │   ├── admin-network-en_AU.mo
│       │   ├── admin-network-en_AU.po
│       │   ├── admin-network-en_GB.mo
│       │   ├── admin-network-en_GB.po
│       │   ├── admin-network-fi.mo
│       │   ├── admin-network-fi.po
│       │   ├── admin-network-fr_FR.mo
│       │   ├── admin-network-fr_FR.po
│       │   ├── admin-network-nl_NL.mo
│       │   ├── admin-network-nl_NL.po
│       │   ├── admin-network-ru_RU.mo
│       │   ├── admin-network-ru_RU.po
│       │   ├── admin-nl_NL.mo
│       │   ├── admin-nl_NL.po
│       │   ├── admin-ru_RU.mo
│       │   ├── admin-ru_RU.po
│       │   ├── az.mo
│       │   ├── az.po
│       │   ├── ca.mo
│       │   ├── ca.po
│       │   ├── continents-cities-az.mo
│       │   ├── continents-cities-az.po
│       │   ├── continents-cities-ca.mo
│       │   ├── continents-cities-ca.po
│       │   ├── continents-cities-fi.mo
│       │   ├── continents-cities-fi.po
│       │   ├── continents-cities-fr_FR.mo
│       │   ├── continents-cities-fr_FR.po
│       │   ├── continents-cities-nl_NL.mo
│       │   ├── continents-cities-nl_NL.po
│       │   ├── continents-cities-ru_RU.mo
│       │   ├── continents-cities-ru_RU.po
│       │   ├── en_AU.mo
│       │   ├── en_AU.po
│       │   ├── en_GB.mo
│       │   ├── en_GB.po
│       │   ├── fi.mo
│       │   ├── fi.po
│       │   ├── fr_FR.mo
│       │   ├── fr_FR.po
│       │   ├── nl_NL.mo
│       │   ├── nl_NL.po
│       │   ├── plugins
│       │   │   ├── akismet-az.mo
│       │   │   ├── akismet-az.po
│       │   │   ├── akismet-ca.mo
│       │   │   ├── akismet-ca.po
│       │   │   ├── akismet-en_AU.mo
│       │   │   ├── akismet-en_AU.po
│       │   │   ├── akismet-en_GB.mo
│       │   │   ├── akismet-en_GB.po
│       │   │   ├── akismet-fi.mo
│       │   │   ├── akismet-fi.po
│       │   │   ├── akismet-fr_FR.mo
│       │   │   ├── akismet-fr_FR.po
│       │   │   ├── akismet-nl_NL.mo
│       │   │   ├── akismet-nl_NL.po
│       │   │   ├── akismet-ru_RU.mo
│       │   │   ├── akismet-ru_RU.po
│       │   │   ├── bbpress-ca.mo
│       │   │   ├── bbpress-ca.po
│       │   │   ├── bbpress-en_AU.mo
│       │   │   ├── bbpress-en_AU.po
│       │   │   ├── bbpress-en_GB.mo
│       │   │   ├── bbpress-en_GB.po
│       │   │   ├── bbpress-fi.mo
│       │   │   ├── bbpress-fi.po
│       │   │   ├── bbpress-fr_FR.mo
│       │   │   ├── bbpress-fr_FR.po
│       │   │   ├── bbpress-nl_NL.mo
│       │   │   ├── bbpress-nl_NL.po
│       │   │   ├── bbpress-ru_RU.mo
│       │   │   ├── bbpress-ru_RU.po
│       │   │   ├── woocommerce-ca.mo
│       │   │   ├── woocommerce-ca.po
│       │   │   ├── woocommerce-en_AU.mo
│       │   │   ├── woocommerce-en_AU.po
│       │   │   ├── woocommerce-en_GB.mo
│       │   │   ├── woocommerce-en_GB.po
│       │   │   ├── woocommerce-fi.mo
│       │   │   ├── woocommerce-fi.po
│       │   │   ├── woocommerce-fr_FR.mo
│       │   │   ├── woocommerce-fr_FR.po
│       │   │   ├── woocommerce-nl_NL.mo
│       │   │   ├── woocommerce-nl_NL.po
│       │   │   ├── woocommerce-ru_RU.mo
│       │   │   ├── woocommerce-ru_RU.po
│       │   │   ├── wordpress-importer-az.mo
│       │   │   ├── wordpress-importer-az.po
│       │   │   ├── wordpress-importer-ca.mo
│       │   │   ├── wordpress-importer-ca.po
│       │   │   ├── wordpress-importer-en_AU.mo
│       │   │   ├── wordpress-importer-en_AU.po
│       │   │   ├── wordpress-importer-en_GB.mo
│       │   │   ├── wordpress-importer-en_GB.po
│       │   │   ├── wordpress-importer-fi.mo
│       │   │   ├── wordpress-importer-fi.po
│       │   │   ├── wordpress-importer-fr_FR.mo
│       │   │   ├── wordpress-importer-fr_FR.po
│       │   │   ├── wordpress-importer-nl_NL.mo
│       │   │   ├── wordpress-importer-nl_NL.po
│       │   │   ├── wordpress-importer-ru_RU.mo
│       │   │   └── wordpress-importer-ru_RU.po
│       │   ├── ru_RU.mo
│       │   ├── ru_RU.po
│       │   └── themes
│       │       ├── twentyeleven-az.mo
│       │       ├── twentyeleven-az.po
│       │       ├── twentyeleven-ca.mo
│       │       ├── twentyeleven-ca.po
│       │       ├── twentyeleven-en_AU.mo
│       │       ├── twentyeleven-en_AU.po
│       │       ├── twentyeleven-en_GB.mo
│       │       ├── twentyeleven-en_GB.po
│       │       ├── twentyeleven-fi.mo
│       │       ├── twentyeleven-fi.po
│       │       ├── twentyeleven-fr_FR.mo
│       │       ├── twentyeleven-fr_FR.po
│       │       ├── twentyeleven-nl_NL.mo
│       │       ├── twentyeleven-nl_NL.po
│       │       ├── twentyeleven-ru_RU.mo
│       │       ├── twentyeleven-ru_RU.po
│       │       ├── twentyfifteen-az.mo
│       │       ├── twentyfifteen-az.po
│       │       ├── twentyfifteen-ca.mo
│       │       ├── twentyfifteen-ca.po
│       │       ├── twentyfifteen-en_AU.mo
│       │       ├── twentyfifteen-en_AU.po
│       │       ├── twentyfifteen-en_GB.mo
│       │       ├── twentyfifteen-en_GB.po
│       │       ├── twentyfifteen-fi.mo
│       │       ├── twentyfifteen-fi.po
│       │       ├── twentyfifteen-fr_FR.mo
│       │       ├── twentyfifteen-fr_FR.po
│       │       ├── twentyfifteen-nl_NL.mo
│       │       ├── twentyfifteen-nl_NL.po
│       │       ├── twentyfifteen-ru_RU.mo
│       │       ├── twentyfifteen-ru_RU.po
│       │       ├── twentyfourteen-az.mo
│       │       ├── twentyfourteen-az.po
│       │       ├── twentyfourteen-ca.mo
│       │       ├── twentyfourteen-ca.po
│       │       ├── twentyfourteen-en_AU.mo
│       │       ├── twentyfourteen-en_AU.po
│       │       ├── twentyfourteen-en_GB.mo
│       │       ├── twentyfourteen-en_GB.po
│       │       ├── twentyfourteen-fi.mo
│       │       ├── twentyfourteen-fi.po
│       │       ├── twentyfourteen-fr_FR.mo
│       │       ├── twentyfourteen-fr_FR.po
│       │       ├── twentyfourteen-nl_NL.mo
│       │       ├── twentyfourteen-nl_NL.po
│       │       ├── twentyfourteen-ru_RU.mo
│       │       ├── twentyfourteen-ru_RU.po
│       │       ├── twentysixteen-az.mo
│       │       ├── twentysixteen-az.po
│       │       ├── twentysixteen-ca.mo
│       │       ├── twentysixteen-ca.po
│       │       ├── twentysixteen-en_AU.mo
│       │       ├── twentysixteen-en_AU.po
│       │       ├── twentysixteen-en_GB.mo
│       │       ├── twentysixteen-en_GB.po
│       │       ├── twentysixteen-fi.mo
│       │       ├── twentysixteen-fi.po
│       │       ├── twentysixteen-fr_FR.mo
│       │       ├── twentysixteen-fr_FR.po
│       │       ├── twentysixteen-nl_NL.mo
│       │       ├── twentysixteen-nl_NL.po
│       │       ├── twentysixteen-ru_RU.mo
│       │       ├── twentysixteen-ru_RU.po
│       │       ├── twentyten-az.mo
│       │       ├── twentyten-az.po
│       │       ├── twentyten-ca.mo
│       │       ├── twentyten-ca.po
│       │       ├── twentyten-en_AU.mo
│       │       ├── twentyten-en_AU.po
│       │       ├── twentyten-en_GB.mo
│       │       ├── twentyten-en_GB.po
│       │       ├── twentyten-fi.mo
│       │       ├── twentyten-fi.po
│       │       ├── twentyten-fr_FR.mo
│       │       ├── twentyten-fr_FR.po
│       │       ├── twentyten-nl_NL.mo
│       │       ├── twentyten-nl_NL.po
│       │       ├── twentyten-ru_RU.mo
│       │       ├── twentyten-ru_RU.po
│       │       ├── twentythirteen-az.mo
│       │       ├── twentythirteen-az.po
│       │       ├── twentythirteen-ca.mo
│       │       ├── twentythirteen-ca.po
│       │       ├── twentythirteen-en_AU.mo
│       │       ├── twentythirteen-en_AU.po
│       │       ├── twentythirteen-en_GB.mo
│       │       ├── twentythirteen-en_GB.po
│       │       ├── twentythirteen-fi.mo
│       │       ├── twentythirteen-fi.po
│       │       ├── twentythirteen-fr_FR.mo
│       │       ├── twentythirteen-fr_FR.po
│       │       ├── twentythirteen-nl_NL.mo
│       │       ├── twentythirteen-nl_NL.po
│       │       ├── twentythirteen-ru_RU.mo
│       │       ├── twentythirteen-ru_RU.po
│       │       ├── twentytwelve-az.mo
│       │       ├── twentytwelve-az.po
│       │       ├── twentytwelve-ca.mo
│       │       ├── twentytwelve-ca.po
│       │       ├── twentytwelve-en_AU.mo
│       │       ├── twentytwelve-en_AU.po
│       │       ├── twentytwelve-en_GB.mo
│       │       ├── twentytwelve-en_GB.po
│       │       ├── twentytwelve-fi.mo
│       │       ├── twentytwelve-fi.po
│       │       ├── twentytwelve-fr_FR.mo
│       │       ├── twentytwelve-fr_FR.po
│       │       ├── twentytwelve-nl_NL.mo
│       │       ├── twentytwelve-nl_NL.po
│       │       ├── twentytwelve-ru_RU.mo
│       │       └── twentytwelve-ru_RU.po
│       ├── object-cache.php
│       ├── plugins
│       │   └── wp-redis
│       │       ├── ...
│       └── themes
│           └── twentyfifteen
│               ├── ...
└── vendor
    ├── autoload.php
    ├─...