Cómo tener los enlaces de idiomas en cabecera usando qTranslate

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 comentarios

Comentarios del blog original. Los comentarios están cerrados.

  • Jesús Alonso

    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.

  • admin

    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;}

  • Pep

    Los links solo me funciona en la pagina de inicio pero en las demás páginas no. Alguna idea?

  • admin

    Si en la plantilla donde tengas el menú (la parte superior de la página) colocas el siguiente código deberías tener el menú de idiomas visible en todas las páginas.

  • brenda

    puse el codigo en el css pero no cambia sigue vertical

  • brenda

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

  • Iban

    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

  • María Rey

    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.

  • Iban

    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

  • Iban

    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.

  • María Rey

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

  • Glenyi

    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

  • Uri

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

  • María Rey

    De nada, me alegro un montón!

  • Javi

    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.

  • María Rey

    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.

  • Javi

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

  • Jesús Alonso

    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

  • María Rey

    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.

  • Alex

    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

  • Alex

    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.

  • María Rey

    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.

  • Angel

    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 ↑