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

Idioma del Navegante

Estas en el tema de Idioma del Navegante en el foro de ASP Clásico en Foros del Web. Hola a to@s: Tengo un pequeño problema y espero que podais ayudarme. Hay una pagina en castellano y sus replicas en ingles, frances, aleman. En ...
  #1 (permalink)  
Antiguo 26/11/2002, 14:35
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 23 años, 4 meses
Puntos: 0
Mensaje Idioma del Navegante

Hola a to@s:
Tengo un pequeño problema y espero que podais ayudarme.
Hay una pagina en castellano y sus replicas en ingles, frances, aleman. En alguna ocasion he leido que hay un codigo, rutina , instruccion o lo que sea que detecta el idioma del navegador, de esta forma prodré redireccionar a los visitantes.
Gracias por todo.
Saludos
__________________
Hay tanto que aprender y tan poco tiempo
  #2 (permalink)  
Antiguo 26/11/2002, 14:44
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 23 años, 4 meses
Puntos: 17
Debes leer la cabecera pública HTTP_ACCEPT_LANGUAGE que te devuelve el cliente.

Esta cabecera puede estar vacía, contener un valor, o contener más de un valor.

Con ColdFusion se trata como lista, y con PHP se trata como array. No sé como será el caso en ASP

Experimenta un poco y ya nos contarás.

Ten en cuenta, además, que se pueden definir varios idiomas y que es posible que el primero no te sirva y el segundo sí, así que no te quedes sólo con el primero como hacen en algunas webs.

ADVERTENCIA: No confundir el IDIOMA del visitante con su país de origen. A veces hay quien se basa en el país de la conexión del visitante para "saber" su idioma. Pero eso está totalmente desaconsejado.
Una cosa es el país donde estás en un momento concreto, y otra cosa es la lengua que hables.

__________________
M a l d i t o F r i k i

Última edición por Cain; 26/11/2002 a las 14:49
  #3 (permalink)  
Antiguo 26/11/2002, 16:06
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Cain, no habiamos quedado en otro post en que es casi imposible saber de que pais procede un cliente, porque tendriamos que tener una base de datos inmensa con las IP de la clase C y deducir sobre cada rango de IP´s a que ISP pertenece y de que pais son los ultimos 8 bit de cada rango IP?
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #4 (permalink)  
Antiguo 26/11/2002, 16:22
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 23 años, 4 meses
Puntos: 17
Seguramente es más fácil que todo eso, con PHP hay una función integrada que te resuelve la IP a DNS. Lo malo es que claro, no tenemos la certeza que una persona que se conecta con 123-45-67-89.miconexion.com sea americano
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 26/11/2002, 16:58
Avatar de univercity  
Fecha de Ingreso: noviembre-2002
Mensajes: 681
Antigüedad: 22 años, 6 meses
Puntos: 0
<%
Dim pais, idioma

'Detectamos el pais del usuario
pais = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")

'A partir de los dos primeros caracteres detectamos el idioma
idioma = Left(pais, 2)

select case idioma
case "es"
idioma = "En Español: Bienvenido a Univercity.cl"
case "pt"
idioma = "En Portugués Bem-vindo a Univercity.cl"
case "en"
idioma = "En Inglés: Welcome to Univercity.cl"
end select

response.write idioma
%>
<img src="idioma_<%=pais%>.gif">

O aqui puedes hacer la redireccion


saludos




No sean Ingratos Visiten
__________________
"Lo importante es nunca dejar de hacerse preguntas"
Albert Einstein

Última edición por univercity; 26/11/2002 a las 17:29
  #6 (permalink)  
Antiguo 26/11/2002, 16:59
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Espera, espera, aunque tengamos resolucion inversa no veo en que varia el saber que una maquina:

Por ejemplo
IP 217.126.202.33
DNS: ttd.telefonica.net

Seguimos teniendo que tener una base de datos inmensa con los nombres de los proovedores de internet ,sus nombres DNS y su pais
¿No?

DNS ------------------ Pais
telefonica.net -- España
yahoo.com ------ EEUU
etc
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #7 (permalink)  
Antiguo 26/11/2002, 17:07
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 23 años, 4 meses
Puntos: 17
Teoricamente, en una Internet ideal, el dns1 equivale al país del usuario, por lo que ttd.telefonica.net sería del país Networks

Eso es lo malo de resolver el país.

De todos modos, aquí se trata de resolver el idioma, que es algo totalmente distinto.

El código de univercity está muy bien para alguien que:

1. Sólo haya definido un idioma
2. Ha definido varios idiomas, pero el primero es válido.

Sin embargo, imaginemos un usuario con:
HTTP_ACCEPT_LANGUAGE = "ca, es;q=0.66, en;q=0.33"

Que visita una web en español, inglés, francés y alemán, con inglés como idioma por defecto.

Según el código de univercity, ese usuario iría a la web en inglés porque "ca" no tiene una web en su idioma.

Lo ideal sería convertir HTTP_ACCEPT_LANGUAGE en una lista o un array que contuviera (ca,es,en) y entonces recorrerla del modo:

ca -> No válido, seguimos
es -> Válido, mostramos página en español
__________________
M a l d i t o F r i k i
  #8 (permalink)  
Antiguo 26/11/2002, 17:53
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Hombre lo realmente perfecto seria recuperar el lenguaje del navegador y la DNS /IP del usuario.

Asi si una persona con lenguaje esy ademas proviende de un dominio ttd.telefonica.net, podriamos asegurar casi sin riesgo a equivocarnos que es un español y que esta en españa, del mismo modo un lenguaje us y un DNS users.aol.com nos diria que en un norteamericano.

De todas formas seria un paliza programar una base de datos con todos esos DNS.
¿Existira en alguna parte algo parecido, algun script?

Yo conozco un programa llamado NEOTRACE que a traves de las funciones TRACERT permite saber fisicamente donde esta el usuario.
Ademas TRACERT es un comando externo del DOS/WIN (tracert.exe) y me imagino que UNIX/LINUX tambien disponga de el.
Quizas eso nos daria alguna solucion para hacer un script
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #9 (permalink)  
Antiguo 27/11/2002, 02:10
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 23 años, 4 meses
Puntos: 17
Pero no quiero ni imaginar como sería el script para proporcionar la versión idiomática (que no regional) de la web que proceda

Creo que lo ideal es dejar siempre a la vista los enlaces a las diferentes versiones, e intentar aproximarse a la realidad basándose en lo que el usuario ha definido voluntariamente en su navegador, no en los datos de la conexión que usa.
__________________
M a l d i t o F r i k i
  #10 (permalink)  
Antiguo 27/11/2002, 04:59
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 23 años, 4 meses
Puntos: 0
Agradezco vuestro interés, aunque o me cosque mucho de lo que comentáis.
Me vale el código de univercity ya sé que según Caín y maestro no es lo ideal pero de momento salgo del paso.
Tengo que agradeceros de corazón vuestro interés por buscar una solución cuasi perfecta para alguien que tiene un problema.
Seguiré vuestros comentarios con deleite.
Ojalá Todo el foro respondiese de esta forma.
1.000.000 de Gracias
__________________
Hay tanto que aprender y tan poco tiempo
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 14:38.