Per anni le procedure di internazionalizzazione (i18n) sono state ben supportate da WordPress, lato PHP. In questo ambiente infatti, WordPress fornisce tutti gli strumenti necessari per localizzare il suo Core, i plug-in ed i temi. Nella versione 5.0 del CMS abbiamo ora a disposizione la stessa funzionalità anche nell'ambiente Javascript.
Quando si registrano gli script, è possibile aggiungere il pacchetto
come dipendenza per permette l'aggiunta di stringhe "traducibili" come accade normalmente in ambiente PHP:
wp_register_script( 'my-handle', plugins_url( '/js/my-file.js', MY_PLUGIN ), array( 'wp-i18n' ) );
Mentre all'interno degli script sarà possibile utilizzare wp-18n come segue:
const { __, _x, _n, _nx } = wp.i18n;
__( '__', 'my-domain' );
_x( '_x', '_x_context', 'my-domain' );
_n( '_n_single', '_n_plural', number, 'my-domain' );
_nx( '_nx_single', '_nx_plural', number, '_nx_context', 'my-domain' );
Queste funzioni riflettono le loro controparti PHP e possono essere utilizzate nella stessa maniera. Lo step finale sarà quello di notificare a WordPress che gli script JavaScript contengono le traduzioni, e a quale tipo di dominio appartengono, per permettere allo stesso CMS di selezionare e caricare solo traduzioni necessarie al contento corrente. Questo con lo scopo di rendere l'applicazione il più performante possibile:
wp_set_script_translations( 'my-handle', 'my-domain' );
Al momento è possibile veicolare le proprie traduzioni utilizzando la funzione load_textdomain
wp_set_script_translations
wp_set_script_translations( 'my-handle', 'my-domain', plugins_url( '/languages', MY_PLUGIN ) );
WordPress si accerta prima di tutto che il file ${domain}-${locale}-${handle}.json
E' possibile veicolare i file delle proprie traduzioni nel formato JED 1.x (.json
).
sarà in grado di produrre questo tipo di file in collaborazione con strumenti come
.