这个translate_user_role
函数只是translate_with_gettext_context
, 定义上下文“用户角色”。
在最后一个函数中,有一个过滤器挂钩gettext_with_context
, 它提供了上下文以及当前使用的域。
所以我们可以这样做:
function wpdev_141551_translate_user_roles( $translations, $text, $context, $domain ) {
$plugin_domain = \'plugin-text-domain\';
$roles = array(
\'Someone\',
\'Nobody\',
// ...
);
if (
$context === \'User role\'
&& in_array( $text, $roles )
&& $domain !== $plugin_domain
) {
return translate_with_gettext_context( $text, $context, $plugin_domain );
}
return $translations;
}
add_filter( \'gettext_with_context\', \'wpdev_141551_translate_user_roles\', 10, 4 );
为了实现这一点,我们必须执行一个伪gettext调用,如下所示:
_x( \'Someone\', \'User role\', \'plugin-text-domain\' );
我们可以把这个放在后面
add_role
.
这是可行的,但它似乎不是一种有效的方法,因为每个具有上下文的gettext调用都必须传递我们的函数。