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

Redireccionar a una pagina enfunción del idioma del navegador

Estas en el tema de Redireccionar a una pagina enfunción del idioma del navegador en el foro de ASP Clásico en Foros del Web. Buenos días, tengo una duda que espero que me podáis resolver. Tengo una página llamada index.asp, lo que me gustaría sería que esta página detectara ...
  #1 (permalink)  
Antiguo 25/09/2007, 04:59
 
Fecha de Ingreso: julio-2005
Mensajes: 70
Antigüedad: 19 años, 9 meses
Puntos: 0
Redireccionar a una pagina enfunción del idioma del navegador

Buenos días, tengo una duda que espero que me podáis resolver.

Tengo una página llamada index.asp, lo que me gustaría sería que esta página detectara el idioma del navegador del usuario y en función de si es español o inglés, lo redireccione a una página u otra.

Por ejemplo, si lo tiene configurado en idioma inglés, que se redireccione a eng/inicio.asp y si lo tiene en español que se redireccione a esp/inicio.asp

Yo los ejemplos que he visto han sidocon scripts en php.

Gracias.
  #2 (permalink)  
Antiguo 25/09/2007, 05:16
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Redireccionar a una pagina enfunción del idioma del navegador

Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%

if request("lang") <> "" then 
    ' Evitamos que nos metan basura
    select Case request("lang")
    case "en","eng"
        response.Redirect("eng/inicio.asp")
    case else
        response.Redirect("esp/inicio.asp")
    end select
end if

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Paseando con ASP</title>
</head>

<body>
<a href="<%=request.ServerVariables("SCRIPT_NAME")%>?lang=eng">Inglés</a><br />
<a href="<%=request.ServerVariables("SCRIPT_NAME")%>?lang=esp">Español</a><br />

</body>
</html>
Aunque yo personalmente prefiero cambiar el texto estático usando un archivo con los datos usando variables o XML (ultimamente uso XML para todo )

/idiomas/es.asp
/idiomas/en.asp

Y en el script principal, poner un include o la lectura del archivo XML

Luego no tengo mas que rellenar los textos estáticos

<%=txt_precio%>: <%=rs("total")%>

o con XML

<%=getFromXML("text_precio")%>: <%=rs("total")%>


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 25/09/2007, 05:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 19
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Redireccionar a una pagina enfunción del idioma del navegador

Se me ocurre declarar la variable
idioma = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
y luego preguntarle
if idioma = "en" then
Response.Redirect adonde_sea.asp
aunque no lo he probado
  #4 (permalink)  
Antiguo 25/09/2007, 05:31
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Redireccionar a una pagina enfunción del idioma del navegador

Cierto, jejeje. No habia leido correctamente la pregunta:

if Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") <> "" then
idioma = left(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE "),2)
select case idioma
case "en"
response.redirect("eng/inicio.asp")
case else
response.redirect("esp/inicio.asp")
end select

end if
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 25/09/2007, 05:36
 
Fecha de Ingreso: septiembre-2007
Mensajes: 19
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Redireccionar a una pagina enfunción del idioma del navegador

tammander, mucho más elegante. Tienes además en cuenta cuál es el primer idioma e incluso que no haya ninguno.
  #6 (permalink)  
Antiguo 25/09/2007, 09:26
 
Fecha de Ingreso: julio-2005
Mensajes: 70
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: Redireccionar a una pagina enfunción del idioma del navegador

Hola,

este es el código que he metido al final, pero creo que hay algo mal.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%


if Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") <> "" then
idioma = left(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE "),2)
select case idioma
case "es"
response.redirect("esp/inicio.asp")
case else
response.redirect("eng/inicio.asp")
end select

end if

%>

El tema es que al ejecutarlo, parece que no reconoce el case "es". Me explico.
Si le digo:
select case idioma
case "es"
response.redirect("esp/inicio.asp")
case else
response.redirect("eng/inicio.asp")

al ejecutar, se va siempre hacia eng/inicio.asp

Y si pongo

select case idioma
case "en"
response.redirect("eng/inicio.asp")
case else
response.redirect("esp/inicio.asp")

Se va hacia esp/inicio.asp

Parece que no reconoce el idioma del navegador. Lo he probado tanto con Firefox como con Internet Explorer.

gracias.
  #7 (permalink)  
Antiguo 25/09/2007, 10:54
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Redireccionar a una pagina enfunción del idioma del navegador

has un
response.write dioma
response.end

para ver que trae tu variable y ver si es correcto el dato

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
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 11:09.