Multiidioma en WordPress

[forCode]

WordPress es un CMS muy completo y flexible, y aunque se le pueden añadir muchísimas funcionalidades, de base lleva pocas. Y una de ellas es el multiidioma.

La mejor manera de añadir esta funcionalidad es con un plugin. Ahora mismo hay dos plugins que son los mas usados, WordPress Multilingual Plugin, WPML, o QTranslate.

El primero es de pago, mientras que el segundo es gratuito, así que nos centraremos en éste. Concretamente nos centraremos en un fork que ha nacido de QTranslate (QT), llamado MQTranslate (MQT). Porque? Porque QT hace algún tiempo que dejó de ser actualizado por su autor, y la comunidad tenia que ir haciendo modificaciones por aquí y por ahí para que funcionara con las versiones que iban saliendo de WordPress. Hace poco sacaron el MQT, que es poco mas que QT pero con los arreglos que necesita para que siga funcionando en WordPress 4.0 y actualizado (por ahora).

/*INSTALACION?*/

Una vez instalado el plugin, veremos que aparecerá una secciona en el apartado Herramientas del panel de administración llamado Idiomas. Ahí podremos gestionar los idiomas activos, inactivos, y si queremos añadir algún idioma que no esté definido de base.

Vamos a explicar el ejemplo cómo si quisiéramos añadir el Catalán como idioma disponible.

  • Código de Idioma: Sera el código con el que el plugin identificara el idioma para con el PHP. En Catalán seria ca.
  • Bandera: Debes seleccionar la bandera correspondiente al idioma que vayas a añadir. Ésta bandera es la que se mostrará en el selector de idioma, si lo añades a tu web.
  • Nombre: Nombre del idioma, que se mostrará en el selector de idioma.
  • Local: Código locale del idioma. Éste código es muy importante que se defina bien, ya que MQT usa éste código para buscar ficheros de traducción de este idioma, y lo busca con éste código. Por ejemplo, en Catalán seria ca_ES y MQT buscaría ficheros de traducción del formato ca_ES.po.
  • Formato de Fecha y Formato de Tiempo: Puede ser que por región, el formato de fecha y/o hora cambie. Si no lo hace, no hace falta que lo definas.
  • Mensaje no disponible: Si de define así en la configuración del plugin, el contenido que no esté disponible en un idioma, no se mostrará (la otra opción es que se muestre en el idioma por defecto de la web). En vez de eso, se mostrará el mensaje que se defina en este campo.

Una vez definidos los idiomas habilitados, y el idioma por defecto, verás que en los campos de título y contenido de las entradas y las páginas, ahora tienes opciones para rellenar el contenido en los diferentes idiomas.

Si quieres que el usuario pueda cambiar el idioma mientras navega por la web, recuerda añadir el widget de selector de idioma en alguna zona de tu web.

Y truco muy interesante. Puede ser que te encuentres que algunos campos de algunos plugins o temas, no se puede definir en varios idiomas. En ese caso, hay un truco que puedes intentar usar. Escribe el contenido que quieras traducir así:

<!–:es–>Texto en español<!–:–><!–:ca–>Text en catalá<!–:–><!–:en–>English text<!–:–>

O bien así:

[:es]Texto en español[:ca]Text en catalá[:en]English text

Y en la mayoría de casos se debería ver bien. Si no es así, es que el tema o plugin no es localizable, es decir, que no es traducible. Si tienes acceso a modificar el fichero en el que se muestra el contenido, te recomiendo encarecidamente que mires como se usan las funciones __(), _e() y _x().

Espero que se hayan aclarado las posible dudas que pudieras tener.