plugin-check icon indicating copy to clipboard operation
plugin-check copied to clipboard

Single file plugin text domain check yields mixed and incorrect expected strings

Open ironprogrammer opened this issue 1 year ago • 4 comments

For a single file plugin with a text domain set, the WordPress.WP.I18n.TextDomainMismatch check relies on a plugin directory slug (non-existent in this context) and shows different results between the UI and CLI. It has been suggested that this check be bypassed for single-file plugins (hat tip @ernilambar).

To test this, I added the hello-dolly text domain to the hello.php plugin that ships with WP core (required to avoid an error with the WordPress.WP.I18n.MissingArgDomain check):

__( 'Quote from Hello Dolly song, by Jerry Herman:', 'hello-dolly' ),

Running PCP, the admin shows Mismatched text domain. Expected 'plugins' but got 'hello-dolly'. whereas the CLI returns Mismatched text domain. Expected 'hello.php' but got 'hello-dolly'.

Originally reported at https://github.com/WordPress/plugin-check/issues/713#issuecomment-2408257109.

ironprogrammer avatar Oct 24 '24 18:10 ironprogrammer

May be if we bail the runner in Abstract_PHP_CodeSniffer_Check if $this->get_args( $result ) is empty array. This way we can pass args based on single file plugin or multiple file plugin.

CC @swissspidy

ernilambar avatar Oct 25 '24 04:10 ernilambar

Sorry, why is that array empty for single-file plugins?

We do have special handling for single-file plugins in many places, I suppose this is just one more place we‘d need to fix.

swissspidy avatar Oct 25 '24 07:10 swissspidy

For check extended from Abstract_PHP_CodeSniffer_Check, only get_args() method is exposed. I could not find place to add is_single_file_plugin() conditional for such check like I18n_Usage_Check.

ernilambar avatar Oct 25 '24 07:10 ernilambar

Trying to solve this in I18n_Usage_Check is the wrong place. The big issue is that admin & CLI expect a different plugin slug. And both of them are incorrect.

swissspidy avatar Oct 25 '24 08:10 swissspidy