i18n函数(__()
,_x()
,_n()
和_nx()
)提供字符串的翻译以便在代码中使用。如果需要使用以下筛选器覆盖这些函数返回的值,则可以对其进行筛选:
i18n.获取文本
i18n.gettext包含上下文
i18n.ngettext公司
i18n.ngettext_with_context(带上下文)
过滤器被传递给以下参数,与它们的PHP等价物一致。
函数i18nGettextCallback(翻译、文本、域){返回翻译;}
函数i18nGettextWithContextCallback(翻译、文本、上下文、域){回流翻译;}
函数i18nGettextCallback(翻译、单数、复数、数字、域){返回翻译;}
函数i18nGettextWithContextCallback(翻译,单身,复数,数字,上下文,领域) {返回翻译;}
下面是一个简单的示例,使用i18n.获取文本
筛选以覆盖特定翻译。
//定义过滤器回调。函数myPluginGettextFilter(翻译、文本、域){if(text===“创建可重用块”){return'保存到MyOrg块库';}返回翻译;}//添加筛选器wp.hooks.add过滤器(“i18n.gettext”,“my-plugin/overrivere-add-to-reusable-blocks-label”,myPluginGettext过滤器);
出于性能原因,通常首选特定于您正在操作的文本域的过滤器(因为您的回调将只针对相关文本域中的字符串运行)。
要附加到特定于文本域的筛选器,请在标准筛选器名称后附加下划线和文本域。例如,如果筛选文本域为“woocommerce”的字符串,您将使用以下筛选器之一:
i18n.gettext_woocommerce公司
i18n.gettext与context_woocommerce
i18n.ngettext_woocommerce公司
i18n.ngettext与context_woocommerce
例如:
//定义过滤器回调。函数myPluginGettextFilter(翻译、文本、域){if(text===“您完成了所有订单”){return“打包好准备出发”。干得好!”;}返回翻译;}//添加过滤器wp.hooks.addFilter(wp.hooks.addFilter)(“i18n.gettext_woocommerce”,“my-plugin/override-fulified-all-orders-text”,myPluginGettext过滤器);
注释:在文本域为未定义
(例如WordPress核心字符串),然后使用名称“default”来构造过滤器名称。
i18n.获取文本默认值
i18n.gettext包含context_default
i18n.ngettext默认
i18n.带context_default的ngettext