Fino ad ora abbiamo visto come tradurre temi e plugin WordPress ma senza tirare in ballo Javascript, che oggi più che mai è componente fondamentale delle applicazioni web.

In questa guida vedremo come applicare i file di traduzione WordPress anche per gli script Javascript. Per farlo utilizzeremo la funzione wp_localize_script. La funzione ha successo solo ed esclusivamente con script precedentemente registrati mediante wp_register_script. Essa infatti accetta tre parametri:

  1. Handle: l’handle dello script registrato mediante wp_register_script;
  2. Name: nome dell’oggetto Javascript che conterrà le stringhe tradotte;
  3. Data: l’array associativo che contiene le stringhe da tradurre.

Come per i sorgenti PHP, le stringhe presenti nell’array associativo dovranno essere racchiuse dalle funzioni gettext di WordPress. Di seguito un esempio completo:

// Registro lo script
wp_register_script( 'mioscript_js', get_template_directory_uri() . 'assets/js/mioscript.js', array('jquery') );
 
// Associo le traduzioni allo script
$array_traduzioni = array(
  'nome'    => __( 'Name', 'text-domain-qui' ),
  'cognome' => __( 'Surname', 'text-domain-qui' )
);
 
wp_localize_script( 'mioscript_js', 'TraduzioniObj', $array_traduzioni );
 
// Carico lo script con i dati tradotti
wp_enqueue_script( 'mioscript_js' );

Naturalmente dovremmo rilanciare Poedit in modo che possa caricare le nuove stringhe da tradurre per creare i rispettivi file .mo, esattamente come fatto per i sorgenti PHP.

A questo punto non rimane che utilizzare le frasi tradotte direttamente nel codice Javascript, facendo semplicemente riferimento all’oggetto TraduzioneObj:

alert("Frase tradotta per Nome: "+TraduzioniObj.nome);
alert("Frase tradotta per Cognome: "+TraduzioniObj.cognome);