Entradas

Events Manager y Qtranslate

En esta ocasión os explicamos otro pequeño truco para hacer que los eventos de vuestro calendario creado a raiz del plugin Events Manager funcionen correctamente con Qtranslate

El problema

En esta ocasión los enlaces o los títulos de los eventos que aparecen al hacer el mouseover por encima de una fecha del calendario, se muestran de manera similar a esto “<!–:es–>Este es el evento en castellano<!–:–><!–:ca–>Aquest es l’esdeveniment en Català<!–:–> …..”  y eso no es correcto para una adecuada indexación.

Solución

Copia el siguiente código al final de tu functions.php (recomendable que tengas un child creado de tu template)

add_filter('em_event_output_placeholder','slw_em_eventlink_mod',1,3);
function slw_em_eventlink_mod($replace, $EM_Event, $result, $target){
        switch ($result) {
                case '#_LINKEDNAME': 
                case '#_EVENTLINK':  //Link de Evento
                case '#_EVENTNAME':  //Nombre del Evento
                        if ( preg_match('~<\!--:([A-Za-z]*?)-->~', $replace) ) {
                                // Esta parte aplica el filtro al título del evento
                                $event_name = apply_filters('the_title', $EM_Event->event_name);
                                $event_link = esc_url($EM_Event->get_permalink());
                                $replace = esc_attr($event_name); // Asignamos el valor a mostrar
                        }
                        break;
                default:
        }
        return $replace;
}

Verás que tu calendario muestra correctamente los títulos de los eventos en el idioma de la página que estas visualizando.

Hasta el próximo consejo!

Qtranslate no soportado en mi versión WordPress?

Despues de actualizar tu versión de WordPress puedes encontrarte que diferentes componentes (plugins) y widgets dejan de funcionar correctamente.

En el caso que nos ocupa Qtranslate, (el conocido sistema para hacer multiidioma tu web en WordPress) no esta exento de estos problemas e incompatibilidades de versiones.

Puede ocurrir que tengas la última versión de Qtranslate y que no haya todavía una versión actualizada para la nueva versión de WordPress que acaban de publicar… Como consecuencia, tu editor de páginas con las pestañas de idioma deja de funcionar y aparece el siguiente mensaje:

“The qTranslate Editor has disabled itself because it hasn’t been tested with your WordPress version yet. This is done to prevent WordPress from malfunctioning. You can reenable it by clicking here (may cause data loss! Use at own risk!). To remove this message permanently, please update qTranslate to the corresponding version”

¿Como solucionar ésto?

Pues una opción “temporal” es editar el fichero qtranslate.php que encontrarás en la carpeta del plugin y donde pone :

// qTranslate Editor will only activated for the given version of WordPress.
// Can be changed to use with other versions but might cause problems and/or data loss!
define('QT_SUPPORTED_WP_VERSION', '3.7.1');

sustituye la versión ‘3.7.1’ por la versión que tengas del WordPress (en nuestro caso fue cambiarla  a la 3.7.2 ya que no habia una versión qtranslate que soportara dicha versión)

Una vez guardados los cambios y publicado de nuevo el archivo, observarás que aparecen nuevamente tus pestañas en el editor de tu WordPress.

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.

Obtén una web mas internacional con Qtranslate. Problemas y soluciones

Qtranslate es un plugin para WordPress que permite añadir soporte multiidioma a nuestra web. Es compatible con bastantes plugins y plantillas aunque no siempre todo es tan sencillo como aparenta. Qtranslate, como otros plugins, es un test&pray (testea y ruega que funcione bien a la primera).

En el caso de que todo te funcione correctamente, tendrás en poco tiempo tu web preparada para poder introducir los contenidos en varios idiomas y sin complicaciones. Si te encuentras en el otro caso, te ponemos algunas soluciones a posibles fallos en la instalación de nuevos idiomas.

  • Problema:

    Error “Could not Write to “[ruta]/wp-content/languages” , Gettext Databases could not be downloaded!
    Solución:
    Cambia los permisos de esa carpeta (languages) y ponlos en   777 (lectura, escritura y ejecución). Normalmente estan en 755, pero dependiendo de los ISP y empresas de servicios de hosting deberás aplicar este cambio.
  • Problema:Si al añadir un idioma que no esta en el Qtranslate aparece el mensaje “Error “Language ya está habilitado o no válida!”.

    Solución:
    El problema esta en la base de datos. Seguramente algunas de las tablas, (wp_otions por ejemplo) donde esta el WordPress, esta en un formato que no es utf8_unicode_ci. Para sustituirlo lo mejor es que sigas los siguientes pasos: (Ojo, si no conoces phpMyAdmin mejor no toques, podrías borrar tu web).

      • Haz un backup de tu base de datos (fichero sql por ejemplo)
      • Reemplaza en ese fichero los literales (por ejemplo latin1 a uft8) tal cual
      • Guardar el archivo (formato .sql)
      • Vacia la base de datos
      • Sube el archivo (via importador de Phpmyadmin) sobre la base de datos
      • Y vuelve a probar con la activación del idioma (seguramente deberás volver a introducir todos los datos de nuevo del idioma que querias añadir.

Estos son algunos de las soluciones a los problemas mas comunes de instalación y activación de idiomas con el plugin Qtranslate.
Esperamos que te sirva de ayuda!