Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP inside jQuery for Wordpress translation with WPML

Is it possible to implement in jQuery the wordpress function ( _e ) to translate string with WPML ? I want to put some text in some div with jQuery and be able to translate this string with WPML.

$('#MyDiv').html(<?php _e('Text to translate', 'woocommerce'); ?>);

It doesn t work, is there any way to do it ?? Thanks in advance

[ANSWER]

@Mukesh Ram, Thanks for your answer but I did not understand pretty well, by the way I have this code ;

$(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>");
  });
});

Can you tel me please how could I implement the code wich you gived to me ?

$translation_array = array( 'some_string' => __( 'Some string to translate' ), 'a_value' => '10' );
 wp_localize_script( 'some_handle', 'object_name', $translation_array );

Thank you for your lightening.

[RESOLVED]

Just put in the order the code into your child function.php as mentionned :

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' );

And call it to the js file like this :

$('#MyDiv').html(count_text.remain_text);

Thanks !

like image 685
colapsnux Avatar asked May 11 '16 14:05

colapsnux


1 Answers

If you want to translate something with jQuery , you need to localize the script.

 $translation_array = array( 'some_string' => __( 'Some string to translate' ), 'a_value' => '10' );
 wp_localize_script( 'some_handle', 'object_name', $translation_array );
like image 92
Mukesh Ram Avatar answered Sep 27 '22 23:09

Mukesh Ram