在 Polylang 中翻译字符串

问题描述

我向我的 woocommerce 网站添加一个自定义片段,现在我无法将字符串翻译成 polylang。

我需要使用代码段在付款方式上方添加文本,而且效果很好,它是通过代码插件 (https://wordpress.org/plugins/code-snippets/) 添加

       add_action( 'woocommerce_review_order_before_payment','wc_privacy_message_below_checkout_button' );
 
function wc_privacy_message_below_checkout_button() {
    echo __('<h3>Metodo di pagamento</h3>','text-domain');
}

现在我插入了一个额外的片段来将字符串添加polylang,但是一旦更新了翻译,什么也没有发生

add_action('init',function() {
  pll_register_string('Metodo di pagamento','Metodo di pagamento');
});

我该如何解决?还有其他方法吗? 谢谢

解决方法

你可以尝试使用 "pll_e(' " 而不是 "__(' "

喜欢:

function wc_privacy_message_below_checkout_button() {
    pll_e('<h3>Metodo di pagamento</h3>');
}

此外,如果我没记错的话,字符串内容必须与回显的内容相同:

pll_register_string('the_string_name','<h3>Metodo di pagamento</h3>');

然后更改 Polylang 管理页面中的字符串。

如果这与“h3”标题标签相呼应,您可以删除它们并在 Polylang 中设置注册字符串的样式。

您也可以尝试保留函数原样(您如何编写它)并更正注册代码中的字符串内容,将其更改如下:

pll_register_string('the_string_name','<h3>Metodo di pagamento</h3>');

我自己还没有在函数内部做过这件事,希望这对你有用,但如果不是,我仍然认为“pll_e()”可能是你需要的。