quadmenu/vendor/automattic/jetpack-composer-plugin/README.md
2025-01-20 16:38:41 +05:30

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)