String Translation di WPML vi consente di tradurre i testi del vostro tema e dei vostri plug-in.

Tuttavia, per far comparire queste traduzioni sul sito, devono essere soddisfatte alcune condizioni:

  • I testi devono essere racchiusi in chiamate GetText.
  • Deve essere presente un argomento dominio di testo.

Tutti i testi hardcoded in PHP non racchiusi in chiamate GetText con un dominio di testo non potranno essere tradotti da WPML.

Esempi

Testo statico non racchiuso in GetText

<h2>Links</h2>

Problema: il termine “links” non è racchiuso in una chiamata GetText. Non può essere tradotto.

Soluzione: racchiudete il testo nella chiamata GetText Echo:

<h2><?php _e('Links','theme-text-domain'); ?></h2>

Abbiamo racchiuso “Links” nella chiamata gettext _e() (echo traducibile). Ora WPML può tradurlo.

Testo nella funzione non racchiuso con GetText

by <?php echo(the_author('', false)); ?>

Problema: l’espressione non può essere tradotta.

Soluzione: questa espressione include del testo statico e del testo dinamico. Deve essere racchiusa in una chiamata GetText e utilizzare gli argomenti.

<?php printf( __( 'by %s', 'theme-text-domain' ), the_author('', false) ); ?>

Il testo che il traduttore otterrà è “by %s”. È ottimale, perché consente al traduttore di cambiare l’ordine delle parole, operazione necessaria in alcune lingue.

Nota: in questo caso abbiamo usato la chiamata GetText __(). Questa chiamata è simile a _e(), ma non scrive l’output (come fa echo). La chiamata printf effettua l’output.

Argomento dominio di testo mancante

<?php _e('Roadmap') ?>

Problema: nella chiamata GetText non è presente l’argomento dominio di testo.

Soluzione: aggiungete un dominio di testo.

<?php _e('Roadmap','theme-text-domain') ?>

Un dominio di testo indica a GetText (e a WPML) a cosa appartiene il testo. È una stringa che non significa nulla per gli altri, serve solamente a voi. Potete scegliere una stringa a piacere, ma dovete mantenere la coerenza. Il valore del dominio di testo raggrupperà le stringhe collegate.

Ovviamente, “theme-text-domain” non è un nome unico e non va bene. Ad esempio, se avete chiamato il vostro tema “star-geeks“, questo termine potrà essere un valore migliore per il dominio di testo.