WordPress: Guía de configuración y uso qTranslate

WordPress: Guía qTranslate

qTranslate es un plugin traductor de idiomas para WordPress, como principal ventaja ante otras herramientas similares podemos decir que es Open Source, y configurándolo correctamente puede ser una herramienta muy útil a la hora de traducir una web. Como desventaja en cambio observamos que qTranslate no genera nuevos nombre de URls por cada idioma, si no que monta la misma URL en directorios diferentes o en un subdominio (depende de la configuración que tengas creada), ejemplo:

qTrnaslate
miweb.com/hola-caracola
miweb.com/en/hola-caracola
en.miweb.com/hola-caracola

Otros plugins como WPML
miweb.com/hola-caracola
miweb.com/en/bye-bye-snail

ventajas del plugin qTranslate

  • Es gratuito
  • Gran cantidad de idiomas en su colección para agregar a tu wordpress.
  • Mientras generas contenido en tu wordpress, como páginas o posts, te aparecerán las pestañas correspondientes para cada idioma, lo que resulta de gran ayuda.
  • Nos da la posibilidad de seleccionar el idioma que deseamos que aparezca para el panel de administración.
  • Posibilidad de escoger entre las siguientes estructuras de URLs para las traducciones:
    • http://laweb.com/?lang=en
    • http://laweb.com/en
    • http://en.laweb.com

Instalar qTranslate

*Antes de nada, como recomendación al actualizar el core de WordPress, asegúrate que qtranslate funciona en esta versión, ya que suele dar problemas.*
Una vez tengamos instalado y activado el plugin, en el panel lateral accedemos a Ajustes/Idiomas:

ajustes qtranslate

Vamos a configurar qTranslate:

El idioma por defecto:
idioma por decto qtranslate

Lenguajes disponibles o que queramos añadir:
agregar idiomas qtranslate

A la derecha podemos visionar los idiomas instalados por defecto. Para activar o desactivar entre cualquiera de ellos debemos pulsas sobre “Habilitar” o “Deshabilitar”.

Instalar un idioma que no viene incluido en qtranslate por defecto
Para instalar un idioma que no está por defecto, primero debemos realizar una copia del archivo .mo del idioma en el directorio:

wp-content > languages

Lo más rápido quizás pueda ser hacer una instalación limpia de wordpress en el idioma correspondiente, y a partir de ahí extraer el fichero .mo para después copiarlo en el nuevo wordpress bajo el que estamos trabajando.

Si queréis encontrar directamente el fichero .mo de vuestro idioma sin necesidad de realizar este paso podéis encontrar información para ello aquí: http://codex.wordpress.org/WordPress_in_Your_Language

Una vez aquí, nos dirigimos a Ajustes -> Idiomas. Y a la izquierda podemos observar que aparecen las banderas, es aquí donde qtranslate nos da la opción de agregar un nuevo idioma.
Lo que vemos es lo siguiente:

El código del idioma es el código ISO. En el caso del castellano, es ES. Si no lo conoces qtranslate facilita un link con información al respecto en este mismo apartado del panel de control. Aquí podremos escoger el idioma predefinido para el panel y el resto del site web.

El código local se refiere a la especificación del idioma. Debe coincidir con el nombre del archivo .mo. Por ejemplo, en el caso del castellano el archivo es “es.mo”. Para que los cambios tengan efecto el archivo .mo debe estar ubicado en wp-content>languages.

Una vez hecho esto, ya tenemos corriendo qTranslate.
Observar que tenemos un widget disponible para seleccionar:

widget qtranslate

Traducir los contenidos con qTranslate
Existen tres métodos para añadir las traducciones en qTranslate, cada una corresponde a un uso específico del mismo.
Dentro del editor de texto de wordpress, ya aparecen las pestañas que te permiten insertar el texto en su respectivo idioma:
entrada con qtranslate

Para traducir artículos, páginas, categorías y etiquetas utilizaremos este método:

<!--:en--><!--:-->

Este es el código fuente que utiliza el plugin qTranslate cuando traduce un artículo, categoría, o una etiqueta. Destacamos como importante que no lo podemos utilizar directamente en archivos php. De los tres métodos, este es el menos usado, ya que viene automatizado dentro del panel de administración.

[:en]

Este fragmento de código se utiliza para insertar dentro de los widgets y en el título del blog, esto está en: Ajustes > Generales > Título. De este modo, en un widget pondremos, por ejemplo:

[:en]texto en castellano[:en]english text

Y también podemos utilizar:

<?php _e("<!--:en-->english text<!--:--><!--:de-->german text<!--:-->"); ?>

Esta línea de código podemos insertarla dentro de los archivos .php que queramos traducir.

Cambiar la imagen del logo según el idioma que tengamos seleccionado: (
Suponiendo que las imágenes están en el directorio del tema dentro del directorio “images”.)

 <?php 
  if(qtrans_getLanguage() == "es") {
echo    "<img src=\"" .  get_bloginfo('stylesheet_directory') . "/images/nombre_de_la_imagen_es.jpg" />"   ;
}
?>


 <?php 
  if(qtrans_getLanguage() == "en") {
echo    "<img src=\"" .  get_bloginfo('stylesheet_directory') . "/images/nombre_de_la_imagen_en.jpg" />"     ;
}
?>

Activar archivo JavaScript según el idioma seleccionado
Si tenemos que validar un formulario con javascript, es posible que necesitemos dos archivos JavaScript. Para utilizar uno u otro según el idioma necesitaremos este código:

 <?php 
  if(qtrans_getLanguage() == "en") {
echo    "<script src=\"" .  get_bloginfo('stylesheet_directory') . "/js/jquery.validate_en.js\" type=\"text/javascript\"></script>"   ;
}
?>

 <?php 
  if(qtrans_getLanguage() == "de") {
echo    "<script src=\"" .  get_bloginfo('stylesheet_directory') . "/js/jquery.validate_de.js\" type=\"text/javascript\"></script>"   ;
}
?>

Desinstalar qTranslate

Uno de los principales problemas de qTranslate ocurre cuando decides desinstalarlo, ya que tu wordpress puede quedar bastante tocado, con bastante código residual lleno de tags de traducciones y posibles títulos duplicados en varios idiomas. En este paso muchos usuarios se suelen tirar de pelos, pero tranquilos porque existe una solución para este “pequeño” inconveniente, y conseguir eliminar qTranslate de forma sencilla.

1) Lo primero yo recomiendo hacer un backup.
2) Instalamos un plugin qTranslate Cleanup and WPML Import, que lo podemos encontrar en los repositorios de wordpress.
3) Acudir a la configuración del plugin Cleanup and WPML Import y donde aparecen estos checkbox, seleccionamos el idioma que queramos mantener y marcamos las dos opciones que aparecen para eliminar todo el código residual de nuestra web:
qtranslate cleanup

Configurar SEO Yoast y qTranslate

Y ya para completar la guía explicar que el plugin SEO Yoast para wordpress no se lleva demasiado bien con qTranslate, ya que por defecto no reconoce ninguno de los métodos anteriores cuando ingresamos los campos título seo, descripción y keywords.

Eso nos obligaría a tener la misma descripción y título seo para todos los idiomas, es decir, un problema enorme de etiquetas y títulos duplicados que google no nos va a dejar pasar pasar tan facilmente.
Para solucionar esto añadimos a nuestro fichero functions.php lo siguiente:

// Enable qTranslate for WordPress SEO
// qTranslate y WordPress SEO
function qtranslate_filter($text){
return __($text);
}

add_filter('wpseo_title', 'qtranslate_filter', 10, 1);
add_filter('wpseo_metadesc', 'qtranslate_filter', 10, 1);
add_filter('wpseo_metakey', 'qtranslate_filter', 10, 1);

Una vez hecho esto, podremos escribir títulos y descripciones en la caja de entrada de datos del SEO Yoast de la siguiente manera [:en]descripción o título en ingles[:es]desc o título en castellano

Si te gustó este artículo o te sirvió de ayuda por favor compártelo.

Un saludo,
Óscar / DevService
Por Óscar Carrillo