NireBlog: مدونة Blocs Bitacoles Weblogs Bitácoras Blogak Blogues Blogs Блог

Inicio >>Desarrollo >>Proceso de creación de un gestor de contenidos (CMS) bilingue (o multilingue)

 

Proceso de creación de un gestor de contenidos (CMS) bilingue (o multilingue)


En nuestro caso queríamos crear un Portal tanto Euskera como en Castellano.

Antes de nada hay que avisarle al cliente que mantener un Portal totalmente bilingue exige un dedicación importante, ya que hay que duplicar toda la información, puede ser percibido por el visitante como falta de seriedad o de respeto hacía su lengua, si no están traducidas todas las partes del sitio web.

A la hora de crear un sistema totalmente bilingue se nos presentan varios problemas, cómo organizar la información, metodos para determinar el lenguaje en el que se mostrará la página, estructura de la Base de Datos, ....

Decidir que partes van a estar en los 2 idiomas.

Primero de todo tuvimos que decidir que partes de sistema ibamos a traducir, solo los contenidos, también las direcciones URL, etc... decidimos que la traducción iba a ser completa.

Ejemplo de traducción de la URL:
En vez de
http://www.dominio.com/es/foros/musica
http://www.dominio.com/eu/foros/musica
Nos decidimos por traducirla completamente
http://www.dominio.com/eu/foroak/musika

Es decir, no sólo ibamos a cambiar la variable de idioma es/eu sino toda la URL, ésto añadía una complejidad al sistema.

Elección del Sistema para Desarrollar la aplicación

En nuestro caso ibamos a crear un sistema en Php y con los contenidos almacenados en una Base de Datos MySql.

Php

Las variables las recibiríamos via GET de la URL, es o eu, utilizamos el mod_rewrite para hacer más amigable la dirección:

En vez de index.php?lang=es
Saldría es/

MySQL

A la hora de diseñar la base de datos había 2 posibilidades:

  1. Crear 1 sóla tabla con todos los datos y los campos que iban a ser traducidos duplicarlos poniéndo el prefijo del idioma delante.
    Ejemplo:
    • contenido (id, es_titulo, eu_titulo, es_contenido, eu_contenido, fecha, ...) y así sucesivamente.
      • Ventajas: En una sola tabla tendriamos toda la información
      • Inconvenientes: la tablas son más grandes con lo que ralentiza las consultas, es más dificil añadir un idioma.
  2. Crear 3 tablas una con el contenido común a los 2 idiomas y otra por cada idioma.
    Ejemplo:
    • Tabla comun contenido (id, fecha)
      tabla idioma Español es_contenido(id, contenido_id, titulo, contenido)
      tabla idioma Euskara eu_contenido(id, contenido_id, titulo, contenido)
      • Ventejas: Tablas más pequeñas, facilidad para añadir un nuevo idioma
      • Inconvenientes: Hay que hacer 2 consultas cada vez que se quiera mostrar el contenido de una página.

Nos decidimos por la primera opción por un tema de rendimiento en la segunda opción había que realizar 2 consultas, sabiendo que la segunda opción es más correcta pero en un desarrollo web es más importante la rapidez, para una base de datos con pocos accesos el segundo caso sería mejor.

A las sentencias SQL habría que añadirles la variable del idioma y un guión bajo antes de los campos que estuvieran en los 2 idiomas:

Ejemplo:
$idioma = $_GET($lang);
$resultado = mysql_query("select id, ". $idioma ."_titulo, ". $idioma ."_contenido, fecha from contenido");

También teníamos que decidir si al cambiar de idioma iría a la página principal o mentendría la página en la que estabas actualmente

Decidir cómo se elige el idioma

Por último había que decidir que criterios utilizar para decidir en que lenguaje se le mostraría al visitante la primera vez, había 3 opciones:

  1. En función de el idioma del Navegador:
    • Ventajas: Facil de implementar.
    • Inconvenientes: Con determinados idiomas puede dar problemas, muy poca gente tiene su navegados en Euskera.
  2. Un idioma por defecto y la posibilidad de cambiar de idioma:
    • Ventajas: Aunque el idioma por defecto no sea el tuyo te haces una pequeña idea de los contenidos.
    • Inconvenientes: Tienes que decidir que idioma tiene que ir por defecto esto puede provocar rechazo por parte la gente que habñla el idioma que no está por defecto.
  3. Una pantalla de acceso sólo para elegir el idioma
    • Ventajas: Tratas a los 2 idiomas por igual.
    • Inconvenientes: Haces la página menos accesible para los buscadores y puede hacer desitir de continuar a deteriandos usuarios.

En este caso nos decidimos por la segunda opción, la consideramos la menos mala aunque no es la ideal.

Una vez que el usuario se decanta por un idioma el sistema grabará una cookie con el idioma de usuario, y siempre que vuelva al sitio le respetará el idioma elegido.

Conclusión

Por supuesto que el sistema puede ser mejorable, lo hemos intentado contar de una manera rápida y esperamos que le pueda servir a alguien, naturalmente se admiten comentarios.


Autor: ketari.com | Publicado el 15-02-2005 | Lecturas: 4489

Debate

Comentario Escribe tu comentario (2238 Comentario[s])

Otras Páginas

Ketari es un homenaje a Jorge Oteiza

Software Libre no significa Gratis es Libertad para Crear, Modificar y Distribuir