La traducción de cadenas de WPML le permite traducir textos incluidos en Temas y plugins.

No obstante ello, para que las traducciones se reflejen en el sitio web, son imprescindibles ciertas condiciones:

  • Los textos deben estar dentro de las llamadas a GetText.
  • Debe existir el argumento textdomain.

Todos aquellos textos que se encuentren incluidos en el código de PHP y no lo estén en las llamadas a GetText con un textdomain, no será traducidos por WPML.

Ejemplos

Texto estático no incluido en GetText

<h2>Links</h2>

Problema: la palabra ‘Links’ no está comprendida en la llamada a GetText. No se puede traducir.

Solución: incluya el texto en la llamada a GetText Echo:

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

Hemos incluido la palabra ‘Links’ en la llamada a gettext _e() (se traduce en la salida). Ahora, WPML puede traducirla.

Texto de función no incluida en la llamada a GetText

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

Problema: la oración no se puede traducir.

Solución: esta oración contiene un texto estático y otro dinámico. Todo necesita ser incluido en una sola llamada a GetText, con argumentos.

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

El texto que llegará al traductor es ‘by %s’. Esto es bueno porque le permite al traductor intercambiar el orden de los vocablos, lo que se utiliza en varios idiomas.

Advierta que, en este caso, hemos utilizado la llamada __() GetText. Esta llamada es similar a _e() pero no imprime la salida en pantalla (tal como lo hace echo). La llamada printf realiza la salida.

El argumento Text-domain no está presente

<?php _e('Roadmap') ?>

Problema: no hay argumento textdomain en la llamada a GetText.

Solución: agregar un text-domain.

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

Un argumento text-domain le indica a GetText (y a WPML) a qué pertenece el texto. Es una cadena que no significa nada, excepto para usted. Puede elegir cualquier cadena, siempre y cuando sea consistente. El valor de text-domain agrupará cadenas relacionadas.

Obviamente, ‘theme-text-domain’ no es un nombre bueno ni único. Por ejemplo: si ha denominado a su Tema con la cadena ‘star-geeks’, esta puede representar un valor mejor para text-domain.