【发布时间】:2016-05-11 14:11:33
【问题描述】:
是否可以在 jQuery 中实现 wordpress 函数 (_e) 以使用 WPML 翻译字符串?
我想用 jQuery 将一些文本放在一些 div 中,并能够用 WPML 翻译这个字符串。
$('#MyDiv').html(<?php _e('Text to translate', 'woocommerce'); ?>);
这不行,有什么办法吗?? 提前致谢
[回答]
@Mukesh Ram,谢谢你的回答,但我不太明白,顺便说一句,我有这段代码;
$(function() {
var left = 35,
$engraved = $('#MyDiv');
$engraved.closest('li').append('<span id="engraved_counter"></span>');
$('#engraved_counter').html("<?php __('Text to translate', 'woocommerce'); ?> <strong>" + left + "</strong>");
$engraved.keyup(function () {
left = 35 - $(this).val().length;
if(left < 0){
$('#engraved_counter').addClass("overlimit");
left = 0;
}if(left >= 0){
$('#engraved_counter').removeClass("overlimit");
}
$('#engraved_counter').html("<?php __('Text to translate', 'woocommerce'); ?> <strong>" + left + "</strong>");
});
});
你能告诉我如何实现你给我的代码吗?
$translation_array = array( 'some_string' => __( 'Some string to translate' ), 'a_value' => '10' );
wp_localize_script( 'some_handle', 'object_name', $translation_array );
感谢您的启发。
[已解决]
只需按照提到的顺序将代码按顺序放入您的子 function.php 中:
function add_scripts_to_head() {
wp_enqueue_script( 'custom-js', 'www.mysite.com/js/custom.js' );
$translation_array = array(
'remain_text' => __( 'Maximum number of characters : ', 'woocommerce' )
);
wp_localize_script( 'custom-js', 'count_text', $translation_array );
}
add_action( 'wp_enqueue_scripts', 'add_scripts_to_head' );
然后像这样调用 js 文件:
$('#MyDiv').html(count_text.remain_text);
谢谢!
【问题讨论】:
-
只要把本地化放到你的
functions.php,把它和你的句柄放在你设置js代码的地方。因此,如果您使用句柄'my_custom_script'将名为custom.js的脚本排入队列,那么您将使用此句柄来本地化您的脚本wp_localize_script('my_custom_script', ...)。