qTranslate es un buen plugin para idiomas en WordPress como ya os contaba anteriormente en QTranslate, plugin de idiomas para WordPress. Para mí sigue siendo el más cómodo.

Cuando instalamos qTranslate en nuestro tema WordPress lo que hacemos intuitivamente es obtener los enlaces a cada idioma mediante un widget. Sin embargo no suele ser lo más efectivo, dado que el widget ha de ser colocado en un sidebar o similar. Ya sea por usabilidad o por convención, normalmente lo que nos apetece es tener los enlaces de idiomas en el header (cabecera) de nuestra web.

Podemos hacerlo copiando el siguiente código en nuestro header.php (la plantilla que escribe el código de la cabecera)

<?php echo qtrans_generateLanguageSelectCode('image'); ?>

Con el código anterior conseguiríamos mostrar las banderitas de los idiomas que hayamos seleccionado. Si queremos que muestre el icono de la bandera y el texto debemos entonces poner el siguiente código:

<?php echo qtrans_generateLanguageSelectCode('both'); ?>

Si preferimos sólo el texto, sin iconos:

<?php echo qtrans_generateLanguageSelectCode('text'); ?>

Y ya si queremos que se muestre un desplegable:

<?php echo qtrans_generateLanguageSelectCode('dropdown'); ?>

Si te apetece profundizar más sobre este tema pásate por las FAQS de la documentación de qTranslate

23

  • Hay alguna posibilidad de variar el código para que los iconos salgan en horizontal ???. Cualquiera de las opciones me salen en cabecera pero en vertical y no me queda bonito.

    Gracias por la ayuda con este artículo.

    • Hola Jesús Alonso,
      pues con CSS lo puedes conseguir, modificando la hoja de estilos.
      Normalmente los idiomas están en un UL (una lista no numerada)y cada idioma está en un LI, así que deberías poner algo así. De padding pon lo que quieras para separar los elementos.

      #qtranslate-chooser li {
          display: inline-block;
          padding-right: 10px;}
      
  • Los links solo me funciona en la pagina de inicio pero en las demás páginas no. Alguna idea?

    • Si en la plantilla donde tengas el menú (la parte superior de la página) colocas el siguiente código

      <?php echo qtrans_generateLanguageSelectCode('text'); ?
      

      deberías tener el menú de idiomas visible en todas las páginas.

  • puse el codigo en el css pero no cambia sigue vertical

    • en contre otra forma solo colocando .qtrans_language_chooser li {
      float:left;
      margin-right:3px ;
      }

  • Buenas tardes,
    he colocado el codigo en header.php pero no pasa absolutamente nada. hay que hacer algo mas? hay que poner esa linea de codigo en un sitio concreto?
    muchas gracias

  • Hola,
    hay que poner alguna de las opciones que señalo en el post (según como quieras que aparezcan los enlaces de idiomas) y ya estaría. Hay que tener instalado el plugin de qTranslate. También revisa la CSS, no vaya a ser que tengas algo que te lo esté ocultando.

    • revisare todo de nuevo, pero no me aparece nada. tengo la plantilla avada, no si eso tiene algo que ver… pone que es complatible con qtranslate.
      documentos css tengo un monton… :-P

      • Ya encontré mi fallo. estaba modificando el header.php de wordpress en lugar del de la plantilla en cuestion… en cuanto lo puse en el documento correcto aparecieron. muchas gracias, un saludo.

        • ¿Era eso? Ha sido un despiste. Pues genial que ahora ya funcione todo. ¡Me alegro!

  • Buenas noches. He estado intentando encontrar la plantilla del header.php y nada. Estoy usando wordpress.com no wordpress.org. aun así aplica esta técnica? Muchas Gracias

  • Gracias por el post! Me has salvado de una web ;) Genial!

    • De nada, me alegro un montón!

  • Hola.
    Tengo instalado qtranslate y me funciona bien.
    Mi pregunta es si qtranslate es incompatible con proteger una página con contraseña, me estoy volviendo loco y no consigo q funcione, pongo la contraseña correcta y me dvuelve a la página para poner la contraseña, pero nop consigo ver la página.
    Gracias.

    • Hola el qTranslate sólo es para traducciones. Normalmente es compatible con la mayoría de los plugins. Revisa si el plugin que utilizas para la protección por contraseña tiene alguna incompatibilidad con él. Dudo que el tema que te sucede sea por culpa de qTranslate. Lo único que revises si el qTranslate te ha cambiado alguna ruta relacionada con el login.

      • Muchas gracías por la respuesta, lo miro a ver si consigo que funcione.

  • Muchas gracias, funcionando perfectamente. Solo una última cosa, tengo el español por defecto sin embargo las banderas muestran un orden diferente sindo el primero el francés, es como si estuvieran en orden inverso a como yo lo he puesto. ¿Alguna idea?

    Muchas gracias,
    Buen hilo

    • Ahora no tengo instalado este plugin en ningunos de las webs que administro. Creo recordar que en la parte de control del plugin qTranslate había unos radiobuttons en los que los «idiomas» se podían ordenar. ¿Es así? Si no hay ningún modo a través del panel de control tendrás que hacerlo mediante código (PHP) indicando en la plantilla el orden de llamada de esos enlaces a idiomas.

  • Hola, me ha funcionado todo el problema es que me queda muy arriba del margen superior y no se pueden pulsar, sale solo la imagen. Un saludo y gracias

  • Hola, a mi se me olocan las banderas pero no son un link, la imagen sale pero no se puede utilizar, porque debe ser, alguien me puede ayudar porfavor, saludos y gracias.

    • Hola, para tener banderas y el enlace hay que utilizar
      Si aún así no funciona, utilizando Mozilla Firefox para navegar tu web y la extensión Firebug (https://addons.mozilla.org/es/firefox/addon/firebug/) te recomiendo analizar el trozo de código html donde están dichas banderas para que veas si en el código están los links pero por cualquier tema del CSS estos no se estén mostrando.

  • Hola. Espero alguien pueda ayudarme. Cómo podría hacer esto mismo pero con el pluging polylan?
    Gracias de antemano por vuestra ayuda.

volver arriba ↑