Quiero detectar la configuración regional de un usuario (no su ubicación). El problema es que ninguno de los métodos parece confiable.¿Cuál es la mejor forma de detectar la configuración regional de un navegador en 2012?
encabezado Accept-Language
Pros
- Usted está destinado a obtener una lista de valores que pueden revelar la verdadera configuración regional si el navegador ha sido alterado por defecto a otra cosa.
- ¿Parece exacto en IE por defecto?
- Preciso en IE por defecto significa preciso en FF en Windows por defecto? (es decir, descarga la versión correcta de mozilla.org)
- ¿Igual que el n.º 3 para Opera en Windows?
Contras
- lado del servidor de arriba y de interferencia con el almacenamiento en caché (o un XHR adicional).
- El valor predeterminado es "en-us" en Chrome en todos los sistemas para inglés a menos que instale su diccionario local y lo arrastre hacia la parte superior.
- No enviado por Safari?
- Incorrecto de forma predeterminada en Safari y Chrome significa que http://mozilla.org y http://opera.com dirigen al usuario a las descargas incorrectas y también instalarán las versiones "en-us" de ellos mismos.
Conclusión
- completamente fiable en OSX ya que cada navegador será un error por defecto. Sin embargo, debe ser preciso en IE y FF en Windows.
window.navigator.language/UserLanguage
Pros
- la mejor parte de esto es que es agradable solución del lado del cliente ligero.
- ¿Parece exacto en IE por defecto?
- ¿Parece exacto en FF en Windows de manera predeterminada?
Contras
- siempre "en-us" por defecto en Safari en todos los sistemas.
- El valor predeterminado es "en-us" en Chrome en todos los sistemas para inglés a menos que instale su diccionario local y lo arrastre hacia la parte superior.
- Always just "en" in Opera.
Conclusión
- Aún más fiable que Accept-Language.
Geolocalización IP
Pros
- funciona independientemente de la configuración del navegador y el idioma del sistema operativo.
Contras
- funciona independientemente de la configuración del navegador y el idioma del sistema operativo.
- Todo lo habitual sobre el rendimiento, precios, manteniéndola hasta la fecha, etc.
Conclusión
- Si esto funciona realmente depende de qué que está tratando de detectar la configuración regional del usuario . Este método le proporciona la localidad de un usuario que no es lo mismo que la configuración regional en un sentido i18n.
HTML5 Geolocation
Pros
- Generalmente tan precisa como geolocalización IP sin la sobrecarga del servidor.
Contras
- requiere que el usuario para permitir el acceso a su ubicación.
- Compatibilidad con el navegador (en realidad, el soporte parece bastante bueno).
Conclusión
- tener que pedir permiso es generalmente un factor decisivo. También la misma conclusión que la geolocalización IP.
Resumen
Ahora parece que la detección de la configuración regional del usuario es más difícil que nunca, mientras que la detección de su ubicación física se ha convertido en más fácil. El gran delincuente es Safari, que al menos debería reflejar la configuración del sistema operativo por defecto en OSX, pero Chrome tampoco está dando ningún ejemplo. Incluso si las personas instalan su diccionario local en Chrome, realmente dudo que también lo arrastren al principio de la lista.
No puedo culpar a Mozilla y Opera por ser arrastrado por otros navegadores que informan incorrectamente a sus páginas de descarga. Sin embargo, mitigaría el problema si cambiaran sus páginas de descarga para usar la geolocalización en lugar de presumiblemente mirar Aceptar Idioma.
Pero, en realidad, ¿qué opciones quedan para detectar la configuración regional de un usuario ahora que IE ya no es dominante? ¿Queda algo?
A partir de octubre de 2013, parece que Accept-Language Header funciona en Mobile Safari. – nthonygreen