47 lines
1.9 KiB
Markdown
47 lines
1.9 KiB
Markdown
# composer-plugin
|
|
|
|
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`.
|
|
|
|
## Use in a WordPress plugin or theme
|
|
|
|
This plugin needs to be put into the `require` section of your `composer.json` file in order to be used.
|
|
|
|
```json
|
|
"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.
|
|
|
|
```json
|
|
"extra": {
|
|
"wp-plugin-slug": "my-plugin"
|
|
},
|
|
```
|
|
|
|
Finally, for the libraries' translations to work, you'll also want to require [automattic/jetpack-assets](https://packagist.org/packages/automattic/jetpack-assets)
|
|
and include something like the following in your initialization code just after you load the autoloader:
|
|
```php
|
|
\Automattic\Jetpack\Assets::alias_textdomains_from_file( __DIR__ . '/jetpack_vendor/i18n-map.php' );
|
|
```
|
|
|
|
## Use by a library
|
|
|
|
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](https://getcomposer.org/doc/04-schema.md#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`:
|
|
```json
|
|
"extra": {
|
|
"textdomain": "my-library"
|
|
},
|
|
```
|
|
|
|
## License
|
|
|
|
composer-plugin is licensed under [GNU General Public License v2 (or later)](./LICENSE.txt)
|
|
|