我正在尝试翻译“有优惠券吗?”使用以下代码在Woocommerce结帐页面中输入文字:
function custom_strings_translation( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'HAVE A COUPON?' :
$translated_text = __( 'TIENES UN CUPÓN?', '__x__' );
break;
}
return $translated_text;
}
add_filter('gettext', 'custom_strings_translation', 20, 3);
但是它不起作用。
请有人告诉我为什么?
答案 0 :(得分:0)
它不起作用,因为文本不是大写并且您没有使用正确的变量。
有两种方法可以更改此文本(第二种方法似乎最好):
1)以这种方式使用gettext
过滤器挂钩:
add_filter('gettext', 'custom_strings_translation', 20, 3);
function custom_strings_translation( $translated_text, $text, $domain ) {
if( $text == 'Have a coupon?' ){
$translated_text = __( 'Tienes un cupón?', $domain );
}
return $translated_text;
}
代码进入活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
2)使用woocommerce_checkout_coupon_message
过滤器挂钩,可以进行更多更改:
add_filter( 'woocommerce_checkout_coupon_message', 'custom_checkout_coupon_message', 20, 1 );
function custom_checkout_coupon_message( $notice ) {
return __( 'Tienes un cupón?', 'woocommerce' ) . ' <a href="#" class="showcoupon">' . __( 'Haga clic aquí para ingresar su código', 'woocommerce' ) . '</a>'
}
代码进入活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
相关: