Localization 检测浏览器用户的最佳方法是什么';2012年是什么地方?
我想检测用户的区域设置(而不是他们的位置)。问题是这些方法似乎都不可靠 接受语言标题 专业人士Localization 检测浏览器用户的最佳方法是什么';2012年是什么地方?,localization,internationalization,locale,Localization,Internationalization,Locale,我想检测用户的区域设置(而不是他们的位置)。问题是这些方法似乎都不可靠 接受语言标题 专业人士 如果浏览器已被更改为默认设置为其他内容,您将获得一个值列表,该列表可以显示真实的语言环境 默认情况下在IE中似乎是准确的 默认情况下IE中的精确是指默认情况下Windows上FF中的精确?(即从mozilla.org下载正确的版本) 与Windows上Opera的#3相同 缺点 服务器端开销和对缓存的干扰(或额外的XHR) 在所有英语系统的Chrome中,默认为“en-us”,除非您安装本地词典并将其
- 在OSX上完全不可靠,因为默认情况下每个浏览器都会出错。然而,在IE和FF中,Windows应该是准确的
- 甚至比接受语言更不可靠
- 这是否真的有效取决于您为什么试图检测用户的区域设置。此方法提供的用户位置与i18n意义上的区域设置不同
- 不得不请求许可通常是交易的破坏者。与IP地理定位的结论相同
但实际上,在IE不再占主导地位的情况下,还剩下什么选项来检测用户的区域设置呢?还剩下什么吗?这取决于您所说的“用户的区域设置”是什么意思。问题中列出的可能性反映了“用户所在地”的不同含义。它们都没有反映现代本地化中的适当含义,即用户偏好的一套文化习俗(包括按偏好顺序排列的人类语言列表)。找到它们的方法是询问用户
当然,您只需要询问在上下文中真正重要的约定,您可以考虑将首选项存储在cookie、HTML5存储、用户数据库或其他地方。
浏览器通常允许用户指定首选语言列表,以
Accept Language
标题发送。然而,这仅与区域设置概念的一个方面有关,大多数用户都不知道,并且已知其默认值经常不正确。截至2013年10月,似乎Accept Language Header在Mobile Safari中起作用。