无需登录 数据私有 本地保存

浏览器语言检测 - 列出偏好语言

15
0
0
0

浏览器语言检测

检测浏览器的语言偏好设置,查看详细的语言信息

🌐
首选语言
--
-- --
偏好语言列表 (按优先级排序)
# 语言代码 语言名称 地区 方向 格式示例
检测中...
Accept-Language 请求头 (模拟值,基于 navigator.languages)
检测中...

浏览器在请求网页时会自动发送此信息,服务器可据此返回对应语言版本的内容。

Navigator 语言相关属性
常见问题与知识点 FAQ

浏览器语言偏好是用户在浏览器设置中配置的语言优先级列表。当用户访问网站时,浏览器通过 Accept-Language 请求头将这些偏好发送给服务器,服务器可据此返回匹配的语言版本。在 JavaScript 中,可以通过 navigator.language(首选语言)和 navigator.languages(完整偏好列表)来读取这些设置。这是实现网站国际化和多语言支持的关键机制。

navigator.language 返回用户的首选语言(一个字符串),通常是用户在浏览器中设置的第一语言。
navigator.languages 返回一个数组,包含用户的所有偏好语言,按优先级从高到低排列。这个数组直接反映了浏览器 Accept-Language 请求头的内容。

例如,如果用户的语言偏好是:中文(中国)→ 英文(美国)→ 日文,那么 navigator.language 返回 "zh-CN",而 navigator.languages 返回 ["zh-CN", "en-US", "ja"]

Chrome / Edge:设置 → 语言 → 添加语言并拖拽排序,将首选语言拖到顶部。
Firefox:选项 → 常规 → 语言 → 选择首选语言或添加新语言。
Safari (macOS):系统偏好设置 → 语言与地区 → 添加语言并拖拽排序。Safari 使用系统级语言设置。
移动端 Chrome:设置 → 语言 → 添加/排序语言。
iOS Safari:设置 → 通用 → 语言与地区 → 调整语言顺序。iOS 上所有浏览器共用系统语言设置。

BCP 47(Best Current Practice 47)是互联网语言标签的标准格式,由 IETF 定义。格式为:
语言[-脚本][-地区][-变体]

语言:2-3 个小写字母的 ISO 639 代码(如 zh 中文、en 英语、ja 日语)。
脚本:4 个字母,首字母大写(如 Hans 简体中文、Hant 繁体中文、Latn 拉丁字母)。
地区:2 个大写字母的 ISO 3166-1 代码(如 CN 中国、US 美国、TW 台湾)。

示例:zh-Hans-CN = 中文-简体-中国,en-US = 英语-美国,ja = 日语。

网站实现多语言的常见方法:
1. 服务端检测:读取 Accept-Language 请求头,返回匹配的语言页面或重定向到对应 URL。
2. 前端检测:使用 navigator.language 动态加载对应的翻译资源文件。
3. URL 策略:使用不同域名(如 example.cn)、子目录(/zh/)或查询参数(?lang=zh)区分语言版本。
4. SEO 优化:使用 hreflang 标签告诉搜索引擎页面的语言版本关系,避免重复内容惩罚。
5. 用户选择:提供语言切换器,并用 Cookie 或 localStorage 记住用户选择。

常见的 RTL 语言包括:阿拉伯语 (ar)希伯来语 (he)波斯语 (fa)乌尔都语 (ur)意第绪语 (yi)普什图语 (ps)叙利亚语 (syr) 等。

在 JavaScript 中,可以使用 new Intl.Locale(langCode).textInfo 来检测文字方向(现代浏览器支持),返回 "ltr""rtl"。CSS 中可使用 :dir(rtl) 伪类或 direction 属性来处理 RTL 布局。

语言检测对 SEO 至关重要:
hreflang 标签:正确配置可避免多语言页面被搜索引擎视为重复内容,确保用户在搜索结果中看到正确的语言版本。
用户体验:Google 会考虑页面的语言匹配度,正确展示用户能理解的内容可提高点击率和停留时间。
地理定位:语言标签常与地区关联(如 en-GB vs en-US),有助于区域化 SEO。
避免自动重定向:Google 建议不要仅根据 IP 或语言偏好自动重定向,应让搜索引擎能抓取所有语言版本。

可能有以下原因:
1. 网站使用 IP 地理定位而非语言偏好,根据用户 IP 所在国家返回对应语言。
2. Cookie 缓存:之前手动选择的语言被保存在 Cookie 中,覆盖了浏览器偏好。
3. 浏览器隐私设置可能限制了语言信息的传递。
4. Accept-Language 质量值 (q):浏览器可能为不同语言设置了不同的权重(q 值 0-1),网站可能选择了权重较高但非首位的语言。
5. 网站语言覆盖不全:如果网站不支持您的首选语言,会自动回退到其默认语言(通常是英语)。
已复制到剪贴板