Web de traducciones

Hola.
Tengo que desarrollar un web (Apache + PHP + mySQL) para una empresa de traducciones que debe estar disponible en varios idiomas.
Estoy partiendo de la versión en inglés y quiero que tanto los textos como las imágenes sean dinámicos, de manera que cuando un usuario seleccione, por ejemplo, el idioma francés, recoja los textos y las imágenes en francés de la base de datos correspondiente.
Es mi primer trabajo en PHP y tengo varias dudas:
- ¿Estoy pretendiendo algo descabellado?
- ¿Cómo puedo estructurar más o menos la base de datos?
- Cuál puede ser el mejor modo de llamar a los distintos idiomas, ¿Una variable, una cookie?
- ¿Ralentizará mucho la carga de las páginas?
Le agradeceré también cualquier consejo que crea conveniente darme.
Muchas gracias.
Un saludo.

1 Respuesta

Respuesta
1
La propuesta no es descabellada, es viable.
La BBDD la puedes estructurar de 2 formas:
Supongamos que tenemos una tabla de contenidos para los textos y la llamamos "textos".
1- Podemos crear tantas tablas como idiomas tengamos: textos_es, textos_in, textos_fr, etc.
2- Solo usuamos una misma tabla, con los mismos campos, pero añadimos uno nuevo que sera el que nos indique el idioma. Por ejemplo:
La tabla textos posee los siguientes campos:
ID titulo entrada descripción imagen
Si tenemos 2 idiomas hacemos lo siguiente:
Creamos uno nuevo (idioma) que será el que nos indique el idioma en el que estamos:
ID titulo entrada descripción imagen idioma
Una instancia para esta tabla seria:
1 ## La noche ## En la ciudad ## El coche es verde ## coche.jpg ## esp
1 ## The night ## In the city ## The car is green ## car.jpg ## ing
Puedes ver que la clave primaria ahora es múltiple: ID Idioma
Cuando estés en una página viéndola en español, por ejemplo, debes pasar la variable idioma=esp
Si en esa misma página tienes un icono para verla en ingles debes pasar al pinchar en dicho icono la variable idioma=ing
De esta manera con incluir en el WHERE del Mysql la condicion idioma='$idioma' valdria.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas