Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2012, 10:34
Dniel
 
Fecha de Ingreso: diciembre-2009
Mensajes: 51
Antigüedad: 14 años, 4 meses
Puntos: 1
Query para cambiar el idioma a un sitio web.

Buenas tardes:

Partiendo de las dos siguientes tablas:


ID NOMBRE

--- -----------

1 Semana


ID GRUPO_ID IDIOMA_ID TRADUCCION TRADUCCION_BASE

--- ------------- ------------- --------------- ----------------------

1 1 1 Lunes 1

2 1 1 Martes 2

3 1 1 Miércoles 3

4 1 2 Monday 1

5 1 2 Wednesday 3


Donde:

- "NOMBRE" en la primera tabla recoge los grupos de traducciones (por ejemplo, días de la semana, meses del año, etc.).

- "GRUPO_ID" en la segunda tabla es foreign key de "ID" de la primera tabla.

- "IDIOMA_ID" en la segunda tabla es el id de un idioma (por ejemplo, 1 para castellano, 2 para inglés, etc.).

- "TRADUCCION" en la segunda tabla es la traducción de una palabra en el idioma determinado por el campo "IDIOMA_ID".

- "TRADUCCION_BASE" en la segunda tabla indica el "ID" de la traducción en el idioma predeterminado (por ejemplo, si el español es el idioma predeterminado, el valor "Monday" tomaría el valor 1 en el campo "TRADUCCION_BASE" ya que "Lunes" tiene el valor 1 en su campo "ID", el valor "Wednesday" tomaría el valor 3 en el campo "TRADUCCION_BASE" ya que "Miércoles" tiene el valor 3 en su campo "ID", etc.).

Pues bien, necesito implementar una query que, en caso de que no encuentre una palabra en un idioma concreto, devuelva el valor del idioma predeterminado, por ejemplo, en las tablas anteriores, como Tuesday no existe, devuelva Martes, teniendo en cuenta que debe devolver los valores de todas las traducciones de un grupo a la vez (por ejemplo, de "Lunes" a "Domingo"), no sólo de un valor ya que de esta forma ya tengo una query implementada.

He intentado implementar esta query de numerosas formas diferentes, incluso haciendo uso de más campos y tablas, pero nunca daban el resultado esperado.

Agradezco de antemano cualquier ayuda que podáis ofrecer, ya sea con dos query en vez de con una, con más campos en las anteriores tablas o incluso con más tablas.

Un saludo.