主题检查:缺少文本域

时间:2015-08-24 作者:jay

我使用以下代码显示注释数:

printf(_n(\'1 comment\', \'%1$s comments\', get_comments_number()), number_format_i18n( get_comments_number() ), \'text-domain\' );
有什么问题吗?

主题检查插件发出警告:

WARNING: Found a translation function that is missing a text-domain. Function _n, with the arguments \'1 comment\',\'%1$s comments\'
我不明白它在暗示什么,也不知道哪个文件是错误的,所以我假设是上面的代码。

我怎样才能解决这个问题?

1 个回复
SO网友:kraftner

让我们看看相关的行。我正在重新格式化它,以便更容易理解正在发生的事情:

printf(
    _n(\'1 comment\', \'%1$s comments\', get_comments_number() ),
    number_format_i18n( get_comments_number() ),
    \'text-domain\'
);
所以你要做的是打电话printf 有三个参数,当我格式化它时,每个参数现在都在单独的一行上。

但这真的没有意义,尤其是第三个参数text-domain 没有任何意义。

您可能想要的是使用_n 使用输入的数字进行翻译number_format_i18n.

所以我想这就是你真正想要的:

printf(
    _n( \'1 comment\',
        \'%1$s comments\',
        number_format_i18n( get_comments_number() ),
        \'text-domain\'
      )
);

结束

相关推荐

为什么LOAD_TextDOMAIN有效,而LOAD_PLUGIN_TextDOMAIN无效?

在我的插件中init 作用 load_textdomain( \'myplugin\', ABS_PATH_TO_MO_FILE ); // OK load_plugin_textdomain( \'myplugin\', false, ABS_PATH_TO_LANGS_DIR); // No effect echo( __(\'Test\', \'myplugin\') ); 在上面的代码中,load\\u textdomain可以