Foros del Web » Programando para Internet » ASP Clásico »

Varios idiomas sobre BD

Estas en el tema de Varios idiomas sobre BD en el foro de ASP Clásico en Foros del Web. Hola a tod@s, anteriormente ya he hecho varios proyectos multilenguage, en estos proyectos he utilizado un include para gestionar los idiomas. A la hora de ...
  #1 (permalink)  
Antiguo 06/03/2006, 03:20
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Varios idiomas sobre BD

Hola a tod@s,

anteriormente ya he hecho varios proyectos multilenguage, en estos proyectos he utilizado un include para gestionar los idiomas. A la hora de actualizar datos es un poco engorroso por lo ke he decidido hacerlo sobre una BD. El problema es ke no se como organizarlo, me explico:

- tengo una tabla con los siguientes campos: Etiketa | E | G | I | F (la letra corresponden a un idioma cada una)

El problema es ke solo en el index tengo unas 50 etiketas, tengo ke hacer 50 SELECTs?

No consigo encontrar el planteamiento adecuado...
__________________
SOS Palestina
  #2 (permalink)  
Antiguo 06/03/2006, 04:06
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Y porque no lo planteas al reves? Quiero decir, tal y como se hace con los archivos (aunque para cuestiones de frontend prefiero los archivos y las constantes) Creas una tabla donde los campos son las constantes y los registros los idiomas:

Código:
CREATE TABLE index (
    idioma char(2) NOT NULL PRIMARY KEY,
    nombrepagina varchar(80),
    campo2 varchar(80),
    campo3 varchar(80),
   etc...
)
Asi solo tendras que hacer un select para toda la página: SELECT * FROM index WHERE idioma='ES'



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 06/03/2006, 06:45
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Muchas gracias, tambien lo había pensado, pero debo hacerlo en Access (para mi desgracia) y creo que tiene un limite de campos (unos 200 creo)... y creeo que voy a necesitar mas...
__________________
SOS Palestina
  #4 (permalink)  
Antiguo 07/03/2006, 06:39
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Si implemento la BD en SQL Server tendré el mismo problema con el limite de campos para un registro? En SQL Server es ilimitado?
__________________
SOS Palestina
  #5 (permalink)  
Antiguo 07/03/2006, 07:04
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
y si aplicamos un poco de normalización?

es decir, en vez de mil campos....mil registros relacionados a la página en una tabla aparte
  #6 (permalink)  
Antiguo 07/03/2006, 07:17
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Lo siento, pero no te entiendo...
__________________
SOS Palestina
  #7 (permalink)  
Antiguo 07/03/2006, 07:27
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
Código:
TABLA 1 TABLA 2
id_pagina---------->id_pagina
idioma              id_campo
nombrepagina        texto
  #8 (permalink)  
Antiguo 07/03/2006, 07:29
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Pero entonces, para cada etiqueta tendré ke hacer una SELECT no?
__________________
SOS Palestina
  #9 (permalink)  
Antiguo 07/03/2006, 07:46
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
prueba asi

Código:
TABLA 1 TABLA 2
id_pagina---------->id_pagina
idioma              etiqueta
nombrepagina        texto
Código:
select tabla_1.idioma,tabla_2.etiqueta,tabla_2.texto from tabla_1 inner join tabla_2 on tabla_1.id_pagina=tabla_2.id_pagina where idioma='loquesea' and nombrepagina='loquesea'
'o WHERE id_pagina=numero si es que sabes ese número
después
Código:
rs.find "tabla_2.etiqueta='loquesea'"
response.write rs("texto")
  #10 (permalink)  
Antiguo 07/03/2006, 07:58
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Muchas gracias trasgukabi!

Me pongo a probarlo y te kuento mañana!
__________________
SOS Palestina
  #11 (permalink)  
Antiguo 08/03/2006, 02:13
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Solucionado!

Lo he hecho mas sencillo de lo ke me komentabas aún:

la tabla:
Código:
Idiomas
Etiketa
EU
ES
IN
FR
el codigo en cada página:
Código:
<%
idioma = Request.QueryString("idioma")
If idioma = "" Then
idioma = "EU"
End If

Set rs_idioma = Server.CreateObject("ADODB.recordset")
STRSQL_idioma = "SELECT Etiketa, " & idioma & " FROM Idiomas"
rs_idioma.Open STRSQL_idioma, cnn, 2, 3 
%>
y para cada etiketa:
Código:
<%rs_idioma.find "Etiketa = 'Etik_1'"%>
<%=rs_idioma(idioma)%>
yo cro ke me a kedado un codigo limpio , verdad?

Muchas garcias!!!
__________________
SOS Palestina
  #12 (permalink)  
Antiguo 08/03/2006, 03:09
Nax
 
Fecha de Ingreso: enero-2002
Ubicación: Euskal Herria
Mensajes: 129
Antigüedad: 23 años, 4 meses
Puntos: 0
Akabo de enkkontrar otro problema... al final de cada

<%rs_idioma.find "Etiketa = 'Etik_1'"%>
<%=rs_idioma(idioma)%>

tengo ke poner un

<%=rs_idioma.MoveFirst()%>

sino, falla... algun otro modo de abrir el recordset?
__________________
SOS Palestina
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:28.