> Manuales > Librería virtual en ASP

Presentamos el código y comentamos el funcionamiento y utilidad del script testlengua.inc

El tratamiento de la lengua que hemos introducido en esta librería esta compuesto de tres archivos que son incluidos en el seno de nuestros scripts por medio de la instrucción Include File.

El primero de ellos, testlengua.inc, se encarga de decidir en función de lo que el internauta prefiera o de la lengua preferida del navegador, qué lengua será empleada para visualizar la página. Este archivo está completamente escrito en ASP y en él se pone en práctica lo que hemos visto para las cookies, además, se realiza una petición de una variable de servidor por medio del objeto Request. Pasemos a ver el código para explicarlo:

<%
'Tratamiento de la lengua

'Damos fecha de caducidad a las galletas
Response.Cookies("lengua").Expires=#1/1/2002#

'Asignamos a la Session el valor de las cookies
Session("lengua")=Request.Cookies("lengua")

'Miramos si se ha seleccionado una nuevalengua y la asigno como lengua oficial en las cookies y en las session

nuevalengua=Request.Querystring("nuevalengua")
If nuevalengua="es" Then
   Response.Cookies("lengua")="es"
   Session("lengua")="es"
Elseif nuevalengua="en" Then
   Response.Cookies("lengua")="en"
   Session("lengua")="en"
End If

'Ahora miramos si no ha seleccionado lengua y no tiene nada en las cookies para mirar la lengua de su navegador
'La lengua por defecto es el ingles

If Request.Cookies("lengua")="" and nuevalengua="" Then
   lengua=left(Request.ServerVariables("http_accept_language"),2)
   If lengua<>"es" Then
      Response.Cookies("lengua")="en"
      Session("lengua")="en"
   Else
      Session("lengua")="es"
      Response.Cookies("lengua")="es"
   End If
End If
%>


El primer paso ha sido definir la fecha de expiración de la cookie "lengua" tras lo cual solicitamos ver la lengua que ha sido almacenada en las cookies en visitas anteriores y la guardamos en una variable tipo Session.

A continuación se ha introducido una petición de variable enviada por URL (Request.Querystring) que tendrá un valor no nulo en el caso en que el usuario haya decidido hacer un cambio de una lengua a la otra. Una vez la variable "nuevalengua" recogida, pasamos a evaluarla y, en función de su contenido, definimos la lengua empleada como una variable Session al mismo tiempo que la inscribimos en las Cookies para futuras visitas en las que el internauta podrá ver la página directamente en la lengua que ha elegido.

Puede ser que el navegante no haya solicitado un cambio de lengua y que esta sea su primera visita. En este caso, el programa saltara esta primera condición y caerá en la siguiente condición anidada en la cual se hará una lectura de la lengua aceptada por su navegador a partir de la instrucción Request.ServerVariables("http_accept_language"). En realidad, lo hemos visto en capítulos del primer manual, lo que hace es recoger las 2 primeras letras empezando por la izquierda (left) del la ServerVariable("http_accept_language") y las almacena en otra variable que llamaremos lengua.

En función del valor de "lengua" la página podrá ser visualizada en castellano si el valor es "es" o bien en inglés si el valor es cualquier otro. Para ello, como antes, almacenaremos el valor de la lengua en una variable Session que podrá ser utilizada en el resto de nuestras páginas y en una cookie para próximas visitas.

Es interesante comentar que este script tiene en cuenta a las personas que no aceptan cookies en su funcionamiento. Dejamos para vosotros el ejercicio mental de ponerse en la situación de un navegante que no acepta cookies para ver lo que el programa haría en ese caso.

Volvemos a recordar que para cambiar la lengua del navegador hay que remitirse al menú de opciones del navegador.

Ir la librería

Rubén Alvarez

Rubén es doctor en química y programador principalmente en sus ratos libres con...

Manual