フィルター引数
フィルターには、PHPの同等物に従って次の引数が渡されます。
i18n.gettext
function i18nGettextCallback( translation, text, domain ) {
return translation;
}
i18n.gettext_with_context
function i18nGettextWithContextCallback( translation, text, context, domain ) {
return translation;
}
i18n.ngettext
function i18nNgettextCallback( translation, single, plural, number, domain ) {
return translation;
}
i18n.ngettext_with_context
function i18nNgettextWithContextCallback(
translation,
single,
plural,
number,
context,
domain
) {
return translation;
}
基本的な例
ここでは、特定の翻訳を上書きするために i18n.gettext
フィルターを使用した簡単な例を示します。
// Define our filter callback.
function myPluginGettextFilter( translation, text, domain ) {
if ( text === 'Create Reusable block' ) {
return 'Save to MyOrg block library';
}
return translation;
}
// Adding the filter
wp.hooks.addFilter(
'i18n.gettext',
'my-plugin/override-add-to-reusable-blocks-label',
myPluginGettextFilter
);
‘テキストドメイン’特有のフィルターの使用
操作しているテキストドメインに特有のフィルターは、パフォーマンスの理由から一般的に好まれます(コールバックは関連するテキストドメイン内の文字列に対してのみ実行されるため)。
テキストドメイン特有のフィルターに接続するには、標準フィルター名にアンダースコアとテキストドメインを追加します。たとえば、テキストドメインが「woocommerce」の文字列をフィルタリングする場合、次のフィルターのいずれかを使用します:
i18n.gettext_woocommerce
i18n.gettext_with_context_woocommerce
i18n.ngettext_woocommerce
i18n.ngettext_with_context_woocommerce
例えば:
// Define our filter callback.
function myPluginGettextFilter( translation, text, domain ) {
if ( text === 'You’ve fulfilled all your orders' ) {
return 'All packed up and ready to go. Good job!';
}
return translation;
}
// Adding the filter
wp.hooks.addFilter(
'i18n.gettext_woocommerce',
'my-plugin/override-fulfilled-all-orders-text',
myPluginGettextFilter
);
注: テキストドメインが undefined
(たとえばWordPressコア文字列)のフィルターを適用するには、フィルター名を構築するために「default」という名前を使用します。
i18n.gettext_default
i18n.gettext_with_context_default
i18n.ngettext_default
i18n.ngettext_with_context_default