afragen / language-pack-maker
Library that helps create git sourced WordPress Language Packs from po files.
Requires
- php: >=7.0
- afragen/wp-cli-runner: ^0.1
- gettext/gettext: ^4.8
- wp-cli/i18n-command: ^2
This package is auto-updated.
Last update: 2024-12-11 15:33:52 UTC
README
Requires PHP 7.0 or higher.
Uses class Language_Pack_Maker
installed via composer into your local translation repository to create a directory of zip archives of translation .mo/.po/.json files and a language-pack.json
file containing data to pass to Git Updater or Translations Updater library.
Install the package via composer.
Run the composer command: composer require afragen/language-pack-maker:dev-master
Requirements
This library requires all .po files to be in a /languages
directory located in the repository root.
- It will copy all .po files from
/languages
to a temporary directory. - It will create .mo files from the .po files.
- It will create .l10n.php files from the .po files.
- It will create .json translation files for your javascript.
- It will create zipfiles in a
/packages
directory in the repository root. - It will create a
language-pack.json
file in the repository root. - It will cleanup/remove the temporary directory when finished.
The format of the generated JSON file is as follows.
[ { "{language}": [ { "type": "{plugin|theme} from GitHub Updater", "slug": "{$slug}", "language": "en_US", "version": "from GitHub Updater", "updated": "PO-Revision-Date from .po file header", "package": "/packages/github-updater-en_US.zip", "autoupdate": "1" } ] } ]
The update transient expects the $transient->translations
in the following format.
$transient->translations( array( 0 => array( 'type' => 'plugin', 'slug' => 'akismet', 'language' => 'de_CH', 'version' => '3.1.11', 'updated' => '2016-05-12 18:04:38', 'package' => 'https://downloads.wordpress.org/translation/plugin/akismet/3.1.11/de_CH.zip', 'autoupdate' => 1, ), ) );
Git Updater or the Translations Updater library will merge the correlative plugin or theme data with the data retrieved from the language-pack.json
to add data to the update transient. Language updates will appear in the WordPress dashboard.
To utilize the Language Pack Creator, you will need to open and run http://localhost/<my-translation-repo>/vendor/autoload.php
in localhost. This will create the necessary .mo, .l10n.php, .json, zipfiles, and language-pack.json
.
With the following added to your composer.json
file, it will run the sequence described above on composer make-language-packs
.
"scripts": {
"make-language-packs": [
"php ./vendor/autoload.php"
]
}