¿Cómo deben los sitios web tratar con la configuración de localización? (de "¿Cuáles son los conceptos erróneos y las molestias comunes de la IU?")

StackOverflow https://stackoverflow.com/questions/1016709

Pregunta

Elegí tomar esto como una pregunta por derecho propio ya que estaba generando mucho debate en los comentarios de publicación original .

Es interesante ver que muchas personas en SO (que son desarrolladores) simplemente no obtienen la localización. Aquí está mi opinión sobre cómo debería funcionar:

En todos los navegadores que he visto (y también para los desarrolladores de .NET) cuando observa las preferencias culturales de un usuario, está en el siguiente formato: lenguaje-cultura.

Entonces tenemos:

  • en-GB - Idioma inglés - Cultura del Reino Unido
  • en-US - Idioma inglés - cultura estadounidense
  • es - Idioma inglés - Cultura invariable.
  • fr-FR & # 8211; Idioma francés & # 8211; Cultura francesa
  • fr-CH & # 8211; Idioma francés & # 8211; Cultura suiza
  • de-CH & # 8211; Idioma alemán & # 8211; Cultura suiza
  • de-DE & # 8211; Idioma alemán & # 8211; Cultura alemana

Ver MSDN para obtener una lista completa que admite .NET Framework.

Cuando voy a un sitio web, sabe que quiero el idioma inglés de parte y sabe que estoy interesado en que esté inclinado hacia el Reino Unido (formato de número, formato de fecha). Entonces, cuando voy a google.com y me lleva a google.de (debido a mi dirección IP), eso está muy bien si google.de me muestra todo en inglés, pero está completamente equivocado ya que google.de está en alemán . Tengo poco control sobre mi dirección IP pero control total sobre mi configuración de idioma y cultura. Si está interesado, el nuevo motor de búsqueda de Microsoft (bing.com) maneja las cosas correctamente. Esperemos que Microsoft pueda aprender a hacer búsquedas, así como Google o Google pueda aprender a localizar, así como a Microsoft;)

MSDN tiene otro buen artículo aquí para obtener más información

¿Cuáles son sus recomendaciones sobre cómo los sitios deben tratar con las localizaciones?

¿Fue útil?

Solución

La solución aquí es tan simple, es molesto que los desarrolladores hagan cualquier otra cosa.

  1. Respeta la configuración del navegador. Si dice inglés, entonces por dios es inglés.

  2. Si es absolutamente necesario, simplemente agregue un botón en la parte superior para elegir otra cosa. Luego, y SOLO entonces, anula el navegador.

  3. Si crees que tu camino es mejor. Detente, que alguien te dé una bofetada. No es. Repita según sea necesario.

  4. Deshágase de esas páginas de bienvenida web que preguntan por el país de alguien. Simplemente muestre su página normal, basada en los valores predeterminados del navegador, y vea el elemento 2 anterior. Todavía tengo que encontrar un sitio donde realmente importa. actualización: unos años más tarde y ahora hay una razón para hacerlo. En 2013, el Reino Unido instituyó políticas relacionadas con las cookies que los operadores de sitios web deben respetar para los sitios ubicados en ese país que sirven páginas a los visitantes de ese país. Por lo tanto, preste atención a las leyes en los países en los que está alojado.

  5. SI tiene un sitio que realmente es servido por múltiples servidores en varios países, entonces probablemente pueda detectar cuál de sus servidores está más cerca de servir. Si no puede, simplemente detenga la locura de redireccionamiento y luego no intente tomar una determinación por ellos.

Otros consejos

Si la configuración de localización está disponible, incluido, entre otros, el encabezado HTTP Accept-Language, entonces los sitios web deberían respetarlos.

El argumento común en contra de esto es que "usuarios promedio" no son lo suficientemente inteligentes como para encontrar la configuración de idioma y configurarla para que coincida con sus propias preferencias, por lo que, en la mayoría de los casos, esta configuración es incorrecta (a menos que el usuario se encuentre dentro de los EE. UU.).

Esa es la solución incorrecta.

Si un segmento sustancial de la población de usuarios no puede encontrar (o no puede molestarse en encontrar) la configuración de idioma de su navegador, entonces la respuesta correcta es facilitar su búsqueda , no para que los sitios ignoren lo que se les ha configurado. Tal vez haga que la configuración de idioma sea directamente accesible desde el menú de nivel superior del programa en lugar de enterrarla dentro de un '' Preferencias '' demasiado complicado diálogo. Quizás solicite preferencias de idioma la primera vez que se ejecuta el programa. Quizás use la configuración de localización del sistema operativo. O tal vez algo completamente diferente, si eso es lo que se necesita para estar casi seguro de que el navegador enviará información correcta sobre las preferencias del usuario. Pero no solo levante las manos, diga "¡es inútil y no se puede arreglar!", E ignórelo.

Otras respuestas se han referido a permitir que el usuario elija un idioma o configuración regional en su perfil en el sitio, que también es importante y absolutamente debería ser estándar, pero eso es solo para proporcionar una anulación específica del sitio a la configuración normal del usuario. Sin embargo, si el usuario no ha anulado esto en el sitio, la acción correcta es establecer el idioma / idioma disponible más preferido según lo especificado en la configuración de su navegador, no basarlo en la geolocalización de su dirección IP.

En un momento de mi carrera, mantuve partes de la pila TCP / IP. Eso me coloca en la posición algo rara de saber muy bien que las direcciones IP no deben usarse como otra cosa que no sean direcciones de capa de red. Cualquier asociación entre una dirección IP y una ubicación es casi una coincidencia: es un artefacto de la forma en que se distribuyen las direcciones, no una parte fundamental de lo que significa una dirección IP.

(Tampoco son útiles como el identificador único de una computadora, pero esa es una historia diferente)

Sugiero dejar la geolocalización fuera de él. El estándar HTTP incluye una forma para que un navegador u otro agente de usuario incluya las preferencias culturales de los usuarios con cada solicitud (y recuerde, es una lista de preferencias ponderadas, no necesariamente solo una cultura). Dado que el navegador está más cerca del usuario que usted, debe cumplir con esta solicitud, al menos por defecto.

Está bien permitir que el usuario cambie su preferencia por su sitio, ya sea temporal o permanentemente. Incluso está bien permitir que el usuario elija ver contenido diferente con diferentes configuraciones culturales. Un ejemplo descabellado sería un sitio que incluye noticias políticas e información técnica. Es bastante razonable que alguien quiera las noticias en su "natural". idioma, pero la información técnica en inglés.

Finalmente, está bien tener un patrón de reserva. Si, por ejemplo, tiene un sitio que atiende a los usuarios en función de su región (revendedores, por ejemplo), entonces es posible que el contenido japonés solo exista en su subsitio regional asiático. Un usuario de habla japonesa que visite su sitio EMEA podría estar atrapado viendo contenido en inglés, lo cual podría ser su última opción.

En los sitios que creo, generalmente sigo este patrón:

  • Cada página tiene una URL única con el idioma en alguna parte, generalmente como / es / page o un (sub) dominio diferente
  • Si el usuario abre una URL con un idioma no especificado como / page , empiezo a adivinar:
    • ¿Está disponible una cookie de una sesión anterior?
    • Si no, ¿está disponible Accept-Language y puedo asignarlo a un idioma disponible en el sitio?
    • Si no, si es una posibilidad, ¿puedo adivinar por IP?
    • Si no, por defecto al idioma predeterminado del sitio.
  • Establezco una cookie con el idioma adivinado y redirijo al usuario a un sitio con la URL apropiada
  • Puse un interruptor de idioma en cada página, por lo que / es / page se puede cambiar fácilmente a / xx / page
    • La cookie se actualiza si el usuario cambia a una página diferente

Idealmente, solo tengo que adivinar una vez y de ahí en adelante usar la cookie del usuario, o el usuario visita la página deseada directamente.

Estoy de acuerdo, brinde al usuario la oportunidad de anularlos con las preferencias del usuario en su aplicación. Esto es especialmente útil para cosas como problemas de localización de zonas horarias que no puede derivar de la configuración del navegador.

Me arriesgo a ser considerado descortés, pero creo que mi publicación sobre este tema tendrá respuestas más informativas, principalmente porque mi publicación es realmente una pregunta. Sin embargo, lamento no haber encontrado esa publicación antes.

Hay una diferencia entre los valores predeterminados inteligentes y la capacidad de los usuarios para anularlos. En las grandes aplicaciones en las que he trabajado, asumí la configuración regional del usuario desde la configuración del navegador, la geolocalización, etc., pero siempre les di a los usuarios una forma de cambiar fácilmente.

No sé cómo se podría hacer eso. No darles a los usuarios la oportunidad de corregir sus suposiciones es muy problemático, porque algunas veces se equivocarán.

ADICION:

Creo que su problema aquí es que, si bien puede editar su configuración regional, si se ven básicamente idénticos a los predeterminados, no hay forma de que un desarrollador de aplicaciones sepa si lo dejó tal como está, o porque no lo hizo ' No sé cómo o por qué cambiarlo.

Sugiero honrar la configuración de localización de los usuarios, excepto si la configuración es la abrumadora configuración predeterminada, que los usuarios no pueden cambiar. Por ejemplo, creo que la gran mayoría (90 +%) de los usuarios con una configuración en-us geolocalizada en Vietnam casi siempre se vería mejor viendo contenido vietnamita, en lugar de contenido en inglés de EE. UU. ya que hay una forma trivial de cambiar locales. Por otro lado, si un usuario geolocalizado en los EE. UU. Tiene una configuración vietnamita, de todos modos dale contenido vietnamita.

¿Esto es irritante para los usuarios de inglés de Estados Unidos en Vietnam? Por supuesto. Pero también es el mayor bien para el mayor número, y ayuda a garantizar que los usuarios no técnicos promedio obtengan la mejor experiencia del mundo real. Hasta que podamos poner un arma en la cabeza de los usuarios y obligarlos a declarar honestamente sus preferencias de idioma / cultura antes de encender una computadora, necesitaremos heurística como esta.

He visto suficientes informes contundentes de errores de clientes que, cuando se investigaron, resultó que uno de sus usuarios tenía una configuración incorrecta de la cultura del navegador, que ahora permitimos que el cliente anule los navegadores con una configuración. La configuración de la cultura del navegador es incorrecta con la frecuencia suficiente, ya que no es muy útil, también es muy difícil para la mayoría de los usuarios finales encontrarla o cambiarla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top