como hago un site en dos idiomas?

03/06/2004 - 23:44 por Juan Carlos Pulido Suarez | Informe spam
Hola a todos.
Necesito crear un sitio en dos idiomas y quisiera saber si alguie tiene algo
a la mano, rapido y facil para esto. He pensado utilizar archivos de texto
que se carguen en la session dependiedo de lo que seleccione el usuario,
ubicar los textos en un vector e ir ubicando variables para reemplazar
textos y algo por el estilo. También he pensado e la posibilidad de usar XML
pero no manejo bien el objeto en asp. Lo que pasa es que estoy de afán con
esto y no tengo tiempo de crearlo.
Alguien me puede dar una manita.
Gracias...
 

Leer las respuestas

#1 Carlos Rojas
04/06/2004 - 01:24 | Informe spam
Busca el hilo que inició Veronica el 14/05/2004 con el asunto: Traducción
Aplicación ASP, con la colaboración de Carlos Bladinieres pues escribí lo
siguiente:

Espero te sirva y si crees que se pueda mejorar, o tengas alguna nueva idea
pues dinosla y a ver como sacamos la segunda versión..

Saludos
Carlos Rojas
www.ProgramoTuWeb.com


-

ok, la solucion la veo en normalizar los datos ... bueno terminé de
normalizarlos ahi va:

Tabla:Idioma
Campos:
-IdIdioma*
-Nombre

Tabla:Mensaje
Campos:
-IdMensaje*
-Texto

Tabla:Traduccion
Campos:
-IdIdioma* (f)
-IdMensaje* (f)
-Texto

Tabla:PaginaMensaje
Campos:
-IdPagina*
-IdMensaje* (f)

Leyenda:
* = miembro de la llave primaria
(*) = llave foranea


En un diagrama ER seria así

Idioma +<Traduccion>--+Mensaje+-<PaginaMensaje

Leyenda:
+ = uno
< = muchos
= muchos



mas o menos la interpretacion sería asi:
Un idioma tiene varios mensajes traducidos, este mensaje traducido proviene
de un mensaje (en español) y este mensaje es utilizado en muchas páginas.

un ejemplo con algo de datos:

idioma
IdIdioma Nombre
IN Ingles
FR Frances
... y asi (Español no va por que los mensajes en español van en la tabla
mensaje)

Mensaje
IdMensaje Texto
1 Bienvenido
2 Enviar
3 Salir
el texto puede ser muy muy largo


Traduccion
IdIdioma IdMensaje Texto
IN 1 Welcome
IN 2 Send
IN 3 Quit
FR 1 Bienvenue
FR 2 Envoyer
FR 3 Partir
Gracias a google por la herramienta de traduccion :-)

PaginaMensaje
IdPagina IdMensaje
index 1
index 2
Salida 3


ahora el codigo :
babilonia.asp
<%
'asumo que existe una conexion a la base de datos y que se llama con, ademas
que
'en la variable session("idioma") esta el id del idioma que ha seleccionado
el visitante
dim tex()
function bab(pagina)
if session("idioma")="ES" then
sCadena= _
"select Mensaje.IdMensaje, mensaje.Texto " & _
"from Mensaje, PaginaMensaje " & _
"where PaginaMensaje.IdMensaje=Mensaje.IdMensaje "& _
" and PaginaMensaje.idPagina='"&pagina&"' "& _
"order by Mensaje.IdMensaje;"
else
sCadena= _
"select traduccion.idmensaje, traduccion.texto " & _
" from Traduccion, PaginaMensaje " & _
"where PaginaMensaje.IdMensaje=Traduccion.IdMensaje and " & _
" PaginaMensaje.IdPagina='"&pagina&"' and " & _
" Traduccion.IdIdioma='"&session("idioma")&"' " & _
"order by traduccion.idmensaje;"
end if
set rs=con.execute(sCadena)
i=1
do until rs.eof
redim txt(i) preserve
txt(i)=rs("Texto")
i=i+1
rs.movenext
loop
rs.close
set rs=nothing
end function
%>

Una pagina de ejemplo index.asp:
<%@ Language=VBScript %>
<!--#include file="babilonia.asp"-->
<%
bab
session("idioma")="IN"
%>
<form action="otrapag.asp">
<input type="submit" value="<%=tex(2)%>">
</form>

Listo.
espero alguien lo use y lo depure, disculpas por algun error de sintaxis lo
he escrito de memoria.

Saludos
Carlos Rojas

"Juan Carlos Pulido Suarez" escribió en el mensaje
news:%
Hola a todos.
Necesito crear un sitio en dos idiomas y quisiera saber si alguie tiene


algo
a la mano, rapido y facil para esto. He pensado utilizar archivos de texto
que se carguen en la session dependiedo de lo que seleccione el usuario,
ubicar los textos en un vector e ir ubicando variables para reemplazar
textos y algo por el estilo. También he pensado e la posibilidad de usar


XML
pero no manejo bien el objeto en asp. Lo que pasa es que estoy de afán con
esto y no tengo tiempo de crearlo.
Alguien me puede dar una manita.
Gracias...


Preguntas similares