web-dev-qa-db-ja.com

PHPCS:文字列は翻訳可能なコンテンツを持つべきです

私はそれをWPCSと互換性があるようにするためにプラグインを検証しています。 gettextコマンドを実行したときにエラーを返すphpcsプレースホルダーを含む関数。参考のためにエラーのソースコードとスクリーンショットが添付されています。多分私は何かが足りないか間違った方法でそれをやっていますか?

/**
 * Add Error.
 *
 * @package Mypackage
 * @since 0.1.0
 *
 * @param string $code Error Code.
 * @param string $message Error Message.
 * @return object WP_Error Returns Error Object.
 */
function mypackage_add_error( $code, $message ) {

    /* translators: %s: Error Message */
    return new WP_Error( $code, sprintf( esc_html__( '%s', 'mypackage' ), $message ) );
}

エラーのスクリーンショット。enter image description here

1
Anwer AR

翻訳可能なコンテンツではないプレースホルダー%sを翻訳しようとしていますが、後で変数に置き換えられます。翻訳可能な$messageの代わりに翻訳された$messageを渡すのが最善です。

このように関数定義を書くべきです

function mypackage_add_error( $code, $message ) {
    return new WP_Error( $code, $message );
}

そして関数mypackage_add_error()はこのように使われるべきです

mypackage_add_error( 'test-error', esc_html__( 'Test error message', 'text-domain' ) );
3
obiPlabon