Crear cadenas JavaScript traducibles en WordPress

En WordPress, las cadenas de texto que utilizamos en archivos JavaScript no podemos hacerlas traducibles en la forma que lo hacemos en archivos PHP, es decir, mediante __( 'Cadena traducible', 'text-domain' ) o _e( 'Cadena traducible', 'text-domain' ).

No obstante, como se vio en otra entrada, en WordPress pueden pasarse variables PHP a archivos JavaScript utilizando la función wp_localize_script(). Mediante esta función, que invocaremos en la misma función de puesta en cola de nuestro script, pasaremos en una matriz las cadenas (ya traducibles) que necesitemos en el script. Para esto utilizaremos el siguiente código:

<?php
// Conector para poner en cola los scripts
add_action( 'wp_enqueue_scripts', 'jgc_enqueue_scripts');
// Función de puesta en cola de scripts
function jgc_enqueue_scripts(){
    
    // Array conteniendo las cadenas que pasaremos al archivo JavaScript	
    $traducciones = array (
			'solicitud_nombre' => __('Escribe tu nombre', 'text-domain'),
			'solicitud_pass' => __('Por favor, introduce tu password', 'text-domain'),
			);
						
    wp_enqueue_script( 'ejemplo-js-traducible', get_template_directory_uri() . '/js/script-traducible.js', array( 'jquery' ), false, true );
    wp_localize_script( 'ejemplo-js-traducible', 'traduccion', $traducciones);
}
?>

En el código anterior, el primer parámetro de la función wp_localize_script() debe coincidir con el primer parámetro de la función wp_enqueue_script() ya que este es el nombre del gestor de nuestro archivo JavaScript (a través del cual se ‘localiza’ y que debe ser único). El segundo parámetro de la función wp_localize_script() es el nombre del objeto que se crea para contener los valores que le vamos a pasar al archivo JavaScript, y el tercer parámetro, los valores en si, en este caso una matriz ($traducciones) con cadenas que ya son traducibles.

Finalmente, en nuestro archivo JavaScript, las variables conteniendo las cadenas traducibles las recogeremos en la forma traduccion.solicitud_nombre y traduccion.solicitud_pass.

One thought on “Crear cadenas JavaScript traducibles en WordPress

Leave a Reply

Your email address will not be published. Required fields are marked *