Tutorial Drupal: configurar un sitio para que sea internacionalizable en 4 simples pasos

Una de las carácterísticas principales de la mayoria de sitios que desarrollamos es que son internacionalizables.

 

Muy resumidamente, tras esta palabra se esconde el proceso que hace que un sitio pueda estar en más de un idioma. Otra palabreja relacionada es la localización que es el proceso necesario para que un sitio pueda estar en un idioma en concreto. Dicho de otra forma, durante el primer proceso se habilitan las características necesarias para poder traducir textos, fechas, etc. y en el segundo proceso se traducen a un idioma en concreto.

 

Esta claro que ambas palabras son lo suficientemente largas como para que sea difícil pronunciarlas o escribirlas. Por esto se utilizan unas curiosas siglas para ellas: i18n y l10n respectivamente. Su origen, una vez se conoce, es tan evidente como original: cada sigla es la primera y la última letra de la palabra separadas por el numero de las letras que las separan. Por ejemplo, internazionalización es una i, 18 letras y una n.

 

El proceso de i18n es muy sencillo en Drupal si se hace en el momento adecuado y se toman las precauciones necesarias.

 

Un problema del proceso de i18n Drupal es que este considera que los textos que introducimos en los formularios de la Web están en el idioma por defecto del sitio. Si queremos cambiar el idioma por defecto una vez desarrollado un sitio tendremos que repasar todos los textos que hemos introducido para adaptarlos al nuevo idioma. En consecuencia, el momento en que se debe i18n un sitio es justo después de su instalación.

 

Pasemos a describir el proceso de i18n:

 

1. Instalando módulos

 

Drupal incluye en su distribución por defecto dos módulos para i18n sitios: Locale y Content translation. El prímero permite configurar cuales serán los idiomas del site, cual será el idioma por defecto y como se eligirá el idioma a mostrar. El segundo permite que se traduzcan los contenidos, ligando un contenido con sus traducciones para que sea posible cambiar de idioma sin tener que cambiar de página.

 

Ambos son necesarios pero no son suficientes. Es necesario instalar varios módulos que hacen internacionalizables otros elementos de Drupal. Estos módulos se encuentran dentro del paquete i18n (a excepción del que permite i18n views, que hace poco se ha trasladado al módulos i18nviews, con vistas a Drupal 7). Es recomendable habilitarlos todos (a excepción de Poll i18naggregate y Profile translation si no vamos a usar estos módulos).

 

2. Activando idiomas

 

Ha llegado el momento de decirle al sistema qué idiomas estarán disponibles en el sitio.

 

Acudimos a "Site configuration > Languages". En esta pantalla aparece un listado detallando los idiomas activos y sus características y cual de ellos es el idioma por defecto.

 

Hacemos clic en "Add language". En esta pantalla podemos seleccionar el idioma de un listado o introducir nosotros mismos la información sobre el idioma.

 

Seguimos el proceso anterior tantas veces como sea necesario, hasta tener todos los idiomas requeridos activados.

 

3. Configurando que idioma se mostrará en cada momento

 

Todo el trabajo anterior no servirá de nada si no le decimos a Drupal que idioma deberá mostrar en cada momento.

 

Acudimos a la pestaña "Configure" de la pantalla de idiomas. Drupal ofrece varias opciones, pero la más recomendable, y la más sencilla también, es la denominada "Path prefix only".

 

Marcandola el sistema seleccionará el idioma en base a un prefijo en la dirección de las páginas que él mismo se ocupará de insertar. Así, nuestras páginas en castellano serán de la forma "http://ejemplo.com/es/pagina/de/ejemplo".

 

Puede surgir un problema si seleccionamos esta opción y un idioma diferente del inglés como idioma por defecto (como veremos más tarde). Drupal considera que el idioma por defecto no debe tener prefijo. Como el idioma por defecto inicial es el inglés, éste no tiene configurado ningún prefijo. Al cambiar el idioma por defecto se produce un conflicto: ni el idioma por defecto ni el inglés tienen prefijo. La solución es sencilla, acudimos a la página de detalle del idioma inglés  y le colocamos un valor en el campo "Path prefix", normalente "en".

 

4. Últimos detalles

 

El sistema ya está internacionalizado. Pero faltan dos o tres detalles para acabar el proceso.

 

He hablado en puntos anteriores sobre el idioma por defecto. Para seleccionar un idioma por defecto diferente del inglés debemos acudir a Site configuration > Languages, marcar el idioma que queremos que sea nuestro idioma por defecto en la columna "Default" y aceptar el formulario. Como comenté anteriormente, todas las cadenas de texto que se hayan creado en formularios del sistema deberán traducirse manualmente al nuevo idioma por defecto. Algunos ejemplos de estas cadenas son los nombres y las descripciones de los tipos de contenidos o los nombres y descripciones de los menús.

 

Estos módulos incluyen un bloque que permite alternar entre los idiomas de una páginas. Deberemos habilitarlo como normalmente habilitamos bloques y colocarlo en el lugar que le pertoque según nuestro diseño.

 

Aunque hemos habilitado los idiomas no veremos nuestra página más que en inglés. Esto es normal, ya que no hemos importado las traducciones. Aunque existen otras formas de hacerlo, hoy en dia, la forma más rápida y eficiente de hacerlo es instalando el módulo l10n_update, que actualiza automáticamente todas las traducciones de todos los módulos que tengamos en nuestro Drupal.

Hola! tengo una duda y es que al hacer todos estos pasos se ve cómo la página cambia algunas cosas de idioma, pero mi duda es: si quiero que un enlace que antes me llevaba a un artículo o página básica en español, si ahora quiero que me enlace con "la misma página" pero en inglés ¿cómo sería?
un saludo y gracias de antemano

Solucionado!

Hola, tengo un formulario que me manda un correo verificando la suscripción a un sitio web, pero necesito que ese mensaje sea en español, cómo lo puedo hacer??

Los pasos descritos en el artículo no funcionan. Se exige la instalación del módulo Variable.

Para una mejor localización de sitios web interiorizados todos los desarrolladores deben utilizar las herramientas de localización. Esta herramienta en línea funciona muy bien con archivos po y otros formatos también: https://poeditor.com. Los traductores pueden trabajar en hasta 200 idiomas y pueden usar google traducción automática también.

Hola, tengo una web echa con commerce kickstart internacionalizada, todos los menús, taxonomia, productos,... traducibles, pero me encuentro con el problema de que cuando estoy en un producto desde el cual llego a través del menú y cambio el idioma en lugar de salirme el producto con el nuevo idioma sale Error 404, el menú cambia bien el idioma pero la conexión con el producto se pierde.
A mi me gustaria que o todo cambia de idioma o que la página vuelva a la pàgina principal para empezar de nuevo con el nuevo idioma.
Me puedes ayudar con eso? quizás me he perdido en algun paso...
muchas grácias

Hola, yo ya tengo todo bien asociado, y cambia de idioma sin problemas. Muy unico problema con eso ahora esta en la pagina que sale de error, yo quiero tener una puesta para ingles y otra en portugues, pero aun tengo los ficheros en ambos idiomas, asi como los modulos, siempre que intento comprobar sale por defecto la pagina que esta en portugues. Como puedo solucionar este problema? Gracias de antemano

Hola creado un bloque y puesto codigo php con la fecha me sale en ingles. http://hablacajamarca.com/

Añadir nuevo comentario

Plain text

  • No se permiten etiquetas HTML.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.
Enviando este formulario, aceptas las cláusulas de privacidad de Mollom.

Contacto

¿Te interesan nuestros servicios?

Contáctanos