Redirección automática en función del idioma del navegador del usuario
February 2nd, 2005Es habitual que necesitemos redirigir a partir de una página a otra en función del idioma del navegador. Para hacer esto de forma sencilla con .NET podemos utilizar algo similar a lo siguiente.
<%@ Page language="c#" %>
<%@ import Namespace="System.Globalization" %>
<script runat="server" language="c#">
private void Page_Load(){
string lang = (new CultureInfo(Request.UserLanguages[0])).TwoLetterISOLanguageName;
if(lang == "es" || lang == "en")
Response.Redirect("/"+ lang);
else
Response.Redirect("/en");
}
</script>
Con este código si el navegador del usuario tiene como idioma por defecto el castellano o el inglés, se redirige a la carpeta /es o /en respectivamente. Si tiene algún otro idioma, se le redirige al inglés por defecto.
Para obtener el idioma en el que navega el usuario lo hacemos mediante el objeto Request, pidiéndole a la lista de UserLanguages recibida como soportadas por el navegador, el idioma por defecto.
A partir de aquí, lo más correcto sería hacer que se intentará hacer que si no hay una página específica en el idioma en el que navega el usuario, se mirase en los idiomas secundarios hasta encontrar un idioma disponible, o como último recurso devolver el inglés. Esto es realmente sencillo, y únicamente sería necesario recorrer el Request.UserLanguages de principio a fin, realizando la comprobación.
delicious
menéame
fresqui
