i18n过滤器

i18n函数(__(),_x(),_n()_nx())提供字符串的翻译以便在代码中使用。如果需要使用以下筛选器覆盖这些函数返回的值,则可以对其进行筛选:

  • i18n.获取文本
  • i18n.gettext包含上下文
  • i18n.ngettext公司
  • i18n.ngettext_with_context(带上下文)

筛选器参数

过滤器被传递给以下参数,与它们的PHP等价物一致。

i18n.获取文本

函数i18nGettextCallback(翻译、文本、域){返回翻译;}

i18n.gettext包含上下文

函数i18nGettextWithContextCallback(翻译、文本、上下文、域){回流翻译;}

i18n.ngettext公司

函数i18nGettextCallback(翻译、单数、复数、数字、域){返回翻译;}

i18n.ngettext_with_context(带上下文)

函数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