A la hora de traducir los widgets mediante el plugin WPML, es muy importante contar con la posibilidad de decidir si un widget determinado (o un conjunto de widgets), ha de aparecer en todos los idiomas del sitio, o solo en alguno de ellos. A este respecto, conviene saber que el plugin WPML dispone de una constante que permite identificar el idioma en que está escrito un elemento determinado: ICL_LANGUAGE_CODE
. Esta constante puede utilizarse con un parámetro identificador de la lengua del elemento, de la siguiente manera:
ICL_LANGUAGE_CODE == 'es'
: español.ICL_LANGUAGE_CODE == 'eu'
: euskera.ICL_LANGUAGE_CODE == 'en'
: inglés.ICL_LANGUAGE_CODE == 'fr'
: francés.ICL_LANGUAGE_CODE == 'de'
: alemán.- etc.
La constante ICL_LANGUAGE_CODE
puede incluirse dentro de una función, dentro de las plantillas de los temas, lo cual requiere cierto nivel de dominio de las técnicas de programación en PHP. Sin embargo, su uso más habitual está asociado con las áreas de widgets, en las cuales se puede utilizar siempre que se haya instalado algún plugin que permita definir etiquetas condicionales de WordPress. Hay varios plugins para este propósito, pero probablemente el más potente, y el que se suele utilizar en las instalaciones del PNTE, es Widget Logic. Este plugin añade al interfaz de gestión de los widgets de WordPress un cuadro de texto que permite definir una condición o incluso un grupo de condiciones, tal como muestra la imagen que aparece bajo estas líneas:
Para obtener más información sobre las funciones de selección de idiomas de WPML, véase la página WPML Coding API. En cuanto a las instrucciones necesarias para añadir esta función a los widgets de WordPress, véase el tutorial Howto Display Different Widgets Per Language; también es recomendable consultar las páginas de FAQ y Other Notes del plugin Widget Logic. Un tutorial muy recomendable y en español para aprender a utilizar la combinación de WPML y Widget Logic puede leerse en Tutorial WordPress: cómo traducir widgets en 4 pasos sencillos.
Una alternativa más fácil (aunque no tan potente) para identificar el idioma de un widget es utilizar el plugin WPML Widgets. Sobre el uso de este plugin véase el tutorial Display different widgets per language with WPML Widgets.
Algunos ejemplos de condiciones lingüísticas
1) Supongamos que tenemos un sitio trilingüe, en español, euskera e inglés, y queremos que un widget solo aparezca en la versión en español del sitio. En tal caso, se debería utilizar la siguiente expresión en el cuadro de condiciones de Widget Logic:
ICL_LANGUAGE_CODE == 'es'
2) Si lo que queremos es que el widget aparezca en las versiones en español o en euskera, pero no en la versión inglesa, la condición sería esta:
ICL_LANGUAGE_CODE == 'es' || ICL_LANGUAGE_CODE == 'eu'
En este caso hemos utilizado el operador ||
, que establece dos condiciones alternativas: «o en castellano o en euskera».
3) Si lo que queremos es que el widget aparezca en euskera o en inglés, pero no en español, podemos utilizar dos condiciones alternativas (como en el caso anterior), o una negativa; por ejemplo:
ICL_LANGUAGE_CODE !== 'es'
En este caso hemos utilizado el operador !==
, que equivale a una negación. Lo que estamos diciendo, en lenguaje ordinario es: «quiero que el widget aparezca en todos los idiomas, menos en español».
Deja una respuesta