[READ-ONLY] A custom installer plugin for Composer to move Jetpack packages out of `vendor/` so WordPress's translation infrastructure will find their strings. This repository is a mirror, for issue tracking and development head to: https://github.com/automattic/jetpack
OTHER License
This is a custom installer plugin for Composer to help with WordPress translation of Composer libraries intended for use as shared code in plugins and themes.
When this plugin is installed, libraries with type
set to jetpack-library
will be installed into jetpack_vendor/
instead of the usual vendor/
.
Also translation text domain information will be collected from such libraries and written to jetpack_vendor/i18n-map.php
.
This plugin needs to be put into the require
section of your composer.json
file in order to be used.
"require": {
"automattic/jetpack-composer-plugin": "*"
},
You'll also want to set extra.wp-plugin-slug
or extra.wp-theme-slug
to the WordPress.org slug, which is also the textdomain for your plugin or theme's translations.
"extra": {
"wp-plugin-slug": "my-plugin"
},
Finally, for the libraries' translations to work, you'll also want to require automattic/jetpack-assets and include something like the following in your initialization code just after you load the autoloader:
\Automattic\Jetpack\Assets::alias_textdomains_from_file( __DIR__ . '/jetpack_vendor/i18n-map.php' );
A library that wants to be used in WordPress plugins or themes needs to set the type
in composer.json
to jetpack-library
. The library package should not itself include a dependency on automattic/jetpack-composer-plugin, although it may suggest it.
All calls to __()
, _x()
, and other WordPress i18n functions should then use a textdomain unique to the library. This textdomain also needs to be declared in composer.json
as extra.textdomain
:
"extra": {
"textdomain": "my-library"
},
composer-plugin is licensed under GNU General Public License v2 (or later)