Search code examples
javascriptwordpresswpml

How to add translatable string in function parameter?


I have a javascript function in a wordpress script, I need it to be compatible with WPML chain translation

ubp_show_error("<p>Inutile de l'ajouter plusieurs fois</p>");

How can I make this chain to be something like this :

ubp_show_error(_e('<p>Inutile de l'ajouter plusieurs fois</p>','mytheme'));

I've tryed :

$error = _('<p>Inutile de l'ajouter plusieurs fois</p>','mytheme');
ubp_show_error($error); 

but in javascript, this doesn't work


Solution

  • You need to localize your script.

    PHP

    function custom_load_scripts() {
        wp_enqueue_script('your-script', '/your-script.js');
        wp_localize_script('your-script', 'your_js_obj_name', array(
                'error' => __("<p>Inutile de l'ajouter plusieurs fois</p>",'mytheme')
            )
        );
    }
    add_action('wp_enqueue_scripts', 'custom_load_scripts');
    

    Now you have access to that data in your javascript file like:

    JS

    your_js_obj_name.error // --> '<p>Inutile de l'ajouter plusieurs fois</p>'