Cómo traducir el texto de un widget en WordPress utilizando qTranslate

Para traducir el texto de un widget de WordPress utilizando qTranslate tenemos que incluir delante del texto de cada idioma lo siguiente [:XX] siendo XX el idioma elegido (definido con 2 letras).

Por ejemplo, si queremos poner un texto en inglés y español hariamos lo siguiente:

[:en]My English Title[:sv]Mi título en español

Esto vale tanto para títulos como para contenidos de cualquier widget.

Cómo insertar el selector de idiomas de qTranslate en WordPress en cualquier sitio de la plantilla o template

Si tenemos instalado qTranslate en nuestro WordPress es posible que queramos situar el selector de banderas de los idiomas en el header u en otra zona. Si queremos insertarlo en el header tenemos que ir al archivo de la plantilla de WordPress donde se programa en header, generalmente header.php. Ahí insertamos lo siguiente:

<?php if ( function_exists( 'qtrans_generateLanguageSelectCode' ) ) qtrans_generateLanguageSelectCode( 'image' ); ?>

Después vamos al css de la plantilla, generalmente style.css y ponemos lo siguiente:

#qtranslate-chooser { list-style-type:none; float:right }
#qtranslate-chooser li { float : left; margin-right: 5px; margin-top: 10px; }

Podemos cambiar estos valores como queramos para que quede bien ajustado. Yo tuve que cambiar en una plantilla margin-right y margin-top para que quedara como yo quería.

Cómo cambiar según el idioma las imágenes del slideshow del theme Danland

Si estamos utilizando el theme Danland en Drupal 6 o 7 puede que necesitemos que el slideshow de la página inicial cambie según estemos en un idioma u otro. Esto puede ser por muchos motivos, por ejemplo, queremos insertar en la imagen con un texto y necesitamos que se muestre este texto de forma correcta en cada idioma.

Para esto tenemos que ir a la ruta donde hemos instalado el theme Danland en Drupal, es decir:
sites/all/themes/danland

Si vamos a la carpeta images y dentro de slideshows: es decir: /images/slideshows nos encontramos por defecto 3 imagenes: noon.jpg, sea.jpg y snow.jpg. Imaginemos que estas imágenes son para el idioma español y para el idioma inglés ponemos en esta carpeta 3 imágenes más: noon_en.jpg, sea_en.jpg y snow_en.jpg.

Ahora en la raíz de Danland editamos el archivo: page.tpl.php. En la línea 82 en Drupal 7 nos encontramos lo siguiente:

<div class="slideshow">
<img src="<?php print $base_path . $directory; ?>/images/slideshows/sea.jpg" width="950" height="355" alt="slideshow 1"/>
<img src="<?php print $base_path . $directory; ?>/images/slideshows/noon.jpg" width="950" height="355" alt="slideshow 2"/>
<img src="<?php print $base_path . $directory; ?>/images/slideshows/snow.jpg" width="950" height="355" alt="slideshow 3"/>
</div>

Vemos que con este código se muestran siempre las imágenes sea.jpg, noon.jpg y snow.jpg. Si queremos que sólo para el idioma español se muestren estas y para el idioma inglés se muestren: noon_en.jpg, sea_en.jpg y snow_en.jpg tenemos que añadir el siguiente código PHP:

<div class="slideshow">
<?php
  global $language;
  if($language->language == "es"){  //Suponiendo que esta en español
     //Pongo las imagenes que quiero que salgan en español
     ?>
<img src="<?php print $base_path . $directory; ?>/images/slideshows/sea.jpg" width="950" height="355" alt="slideshow 1"/>
<img src="<?php print $base_path . $directory; ?>/images/slideshows/noon.jpg" width="950" height="355" alt="slideshow 2"/>
<img src="<?php print $base_path . $directory; ?>/images/slideshows/snow.jpg" width="950" height="355" alt="slideshow 3"/>
<?php
  }  
  else{
?>
<!-- Pongo las imagenes que quiero que salgan en el otro idioma, en este caso el único que tenemos es el inglés -->
<img src="<?php print $base_path . $directory; ?>/images/slideshows/sea_en.jpg" width="950" height="355" alt="slideshow 1"/>
<img src="<?php print $base_path . $directory; ?>/images/slideshows/noon_en.jpg" width="950" height="355" alt="slideshow 2"/>
<img src="<?php print $base_path . $directory; ?>/images/slideshows/snow_en.jpg" width="950" height="355" alt="slideshow 3"/>
<?php
  }
?>
</div>

Con esto ya se vería un slideshow diferente en cada idioma.