WordPress主题签入COMMENT_FORM函数时的翻译问题

时间:2020-04-01 作者:Aslan

我结束了我的wordpress主题,它被称为\\u mdttheme。

我试着检查它,在中得到了两个翻译错误comment_form().

我不明白怎么了,有人能帮我吗?以下是两个警告:

警告:发现翻译函数缺少文本域。函数\\u x,参数为“Comment”,“the\\u mdttheme”

警告:发现翻译函数缺少文本域。函数\\u x,参数为“Comment*”,“the\\u mdttheme”

这是我的代码,里面有警告\'comment_field\':

$args = array(
    \'comment_field\' => \'<p class="comment-form-comment"><label class="hidden" for="comment">\' . _x( \'Comment\', \'the_mdttheme\' ) . \'</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true" required="required" placeholder="\' . _x( \'Comment *\', \'the_mdttheme\' ) . \'"></textarea></p>\',
    \'submit_button\' => \'<div class="form-submit-wrapper"><input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" /></div>\',
    \'label_submit\'  => __( \'comment\', \'the_mdttheme\' ),
);
comment_form($args);
提前感谢!

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

这个_x() 函数用于具有两个或多个不同含义/上下文的相同字符串/文本,例如,“read”可以是动词(I can read music.) 或名词(It\'s a good read.).

当你使用_x(), 上下文是第二个参数,文本域是第三个参数,但在代码中,您使用了错误的_x(), 如果缺少上下文:

_x( \'Comment\', \'the_mdttheme\' )
_x( \'Comment *\', \'the_mdttheme\' )
但这实际上会被视为缺少文本域,因为它应该是第三个参数。

因此,要么提供上下文(也可以在POT文件中提供上下文),要么您打算使用__()? :)