Qtranslate. Logo y link Home del menú, apuntan al idioma por defecto. Como solucionarlo

En esta ocasión, os damos un pequeño pero útil truco para hacer que vuestro logo y enlace del item de menú “home” de la web apunte a la página principal en su correspondiente idioma gracias a Qtranslate.

Cuando insertas Qtransalte en tu web para tener multiidioma, te encuentras que no enlazan correctamente el ítem de menú “Inicio” y logo. Éstos deberian apuntar a la URL de la página principal de cada idioma pero cuando haces clic siempre vuelve a la página principal del idioma por defecto. Para solucionar este pequeño problemilla os detallamos los puntos a sustituir.

Primero, teneis que editar el fichero de header.php de vuestro template y sustituir el código que genera el enlace por el siguiente código donde se inserta el logo.
Aqui os mostramos un ejemplo donde se encuentra el código…

....
<div id="header" class="<?php echo $headerstyle; ?>">
     <div class="container">
          <div class="one-fourth column alpha">
             <a id="logo" href="<?php echo site_url(); ?>"><img src="<?php get_option_tree('logo', '', true); ?>" alt="<?php bloginfo('name'); ?>"/></a>
          </div><!-- End Header Grid 2 -->
....

Deberás sustituir el echo site_url(); por este otro echo esc_url(home_url());
Graba el fichero

Ya para finalizar edita el fichero qtransalte_hooks.php del plugin Qtranslate e inserta estas lineas al final del código (justo antes del cierre de php ?> )

add_filter('walker_nav_menu_start_el', 'qtrans_in_nav_el', 10, 4);
function qtrans_in_nav_el($item_output, $item, $depth, $args){
    $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
    $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
    $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';

   // Determine integration with qTranslate Plugin
   if (function_exists('qtrans_convertURL')) {
      $attributes .= ! empty( $item->url ) ? ' href="' . qtrans_convertURL(esc_attr( $item->url )) .'"' : '';
   } else {
      $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';
   }

   $item_output = $args->before;
   $item_output .= '<a'. $attributes .'>';
   $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
   $item_output .= '</a>';
   $item_output .= $args->after;

   return $item_output;
}

add_filter('home_url','qtrans_convertURL');

Grabáis el fichero y ahora vereis como vuestro enlace de HOME y LOGO apunta a la página principal de cada idioma.

Guia para activar un idioma no listado en Qtranslate

En otro de nuestros post, hablámos de este plugin Qtranslate para WordPress que permite añadir contenidos en diferentes lenguas a nuestra web o blog.

Una vez instalado, y a pesar de que viene con mas de una docena de idiomas preconfigurados, puede que no este disponible en la lista el idioma que necesitas por lo que no puedes activarlo, salvo que añadas ese nuevo idioma.

Para ello, accede a tu panel de administración del WordPress, en Ajustes -> Idiomas y verás unos campos donde solamente tendrás que introducir los siguientes datos (haz clic en cada pestaña para ver las insturcciones de estos dos idiomas Catalán y Ruso):

[tabs slidertype=”left tabs” fx=”slide”] [tabcontainer] [tabtext]Como añadir el “Català”[/tabtext][tabtext]Como añadir el Ruso[/tabtext] [/tabcontainer][tabcontent] [tab]

      • Código del idioma: ca
      • Bandera: ca.alt.png
      • Nombre: Català
      • Local: es_CA
      • Formato de fecha: %A %d de %B de %Y
      • Formato de tiempo :%H:%M
      • Mensaje no disponible: Ho sentim, aquest contingut només està disponible en %LANG:, : i %.

Una vez introducidos, si todo ha ido bien, entra en “configuraciones avanzadas” -> “Conversión de Fecha / Tiempo” marca la opción “Use strftime en lugar de fecha.”

Ahora solo quedará descargar y subir los ficheros del idioma (catalán) en la carpeta donde WordPress los almacena (wp-content/languages). Podrás descargar los ficheros de languages en Catalán de la web http://ca.wordpress.org/. Solamente deberás copiar los archivos que esten dentro de esa carpeta en el direcotiro indicado.

Por último, deberás cambiar el nombre del fichero que acaba en “ca” por “es_CA” que es el mismo nombre que hemos dado en el campo “Local”. Es importante que coincidan la terminación del archivo, con el valor que hemos introducido en Local ya que de lo contrario, no funcionará.

A partir de este momento ya tendrás el idioma Catalán disponible para activar en tu espacio de administración de WordPress.[/tab] [tab]

      • Código de idioma: ru
      • Bandera: ru.png
      • Nombre: Русский
      • Configuración regional: ru_RU
      • Formato de fecha:.% D% M.% Y
      • Formato de hora:% I.% M.% p
      • No Disponible Mensaje: Извините, данная страница доступна только на %LANG:, : и %.

Ahora en “configuraciones avanzadas” -> “Conversión de Fecha / Tiempo” marca la opción “Use strftime en lugar de fecha.”

Al igual que el ejemplo en Catalán, solo quedará descargar y subir los ficheros del idioma (ruso) en la carpeta donde WordPress los almacena (wp-content/languages). Podrás descargar los ficheros de languages en Ruso de la web http://ru.wordpress.org/. Solamente deberás copiar los archivos que esten dentro de esa carpeta en el direcotiro indicado.

A partir de este momento ya tendrás el idioma disponible para activar en tu espacio de administración de WordPress
[/tab] [/tabcontent] [/tabs]

Si durante la instalación de un nuevo idioma ha aparecido algún problema de “Gettext” o bien no te deja activar el nuevo idioma por que sale un mensaje indicándo que ya esta activo, mira en este otro artículo nuestras soluciones a estos errores.