usePreferredLanguages
usePreferredLanguages 是一个返回用户首选语言的字符串数组的 hook。它使用 navigator.languages。
usePreferredLanguages 响应式地跟踪 navigator.languages,返回按用户偏好排序的 BCP 47 语言标签数组(例如 ["en-US", "en", "fr"])。该 hook 监听 languagechange 事件,当用户修改浏览器或系统语言设置时自动更新。
使用场景
- 基于用户的语言偏好选择最佳可用语言环境用于国际化/本地化
- 显示与语言相关的内容、日期格式或数字格式
- 构建语言选择器 UI,高亮显示用户的首选语言
注意事项
- SSR 安全:接受一个
defaultLanguages参数,在服务端渲染期间返回该值。服务端不会访问navigator。 - 响应式:当用户通过
languagechange事件更改浏览器语言偏好时自动更新。 - 顺序重要:返回的数组按偏好排序。第一个元素是用户最偏好的语言。
Usage
Live Editor
function Demo() { const preferredLanguages = usePreferredLanguages(); return <div>首选语言: {JSON.stringify(preferredLanguages)}</div>; }
Result
API
UsePreferredLanguages
Returns
string[]: 语言偏好
Arguments
| 参数名 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| defaultLanguages | 默认值 | string[] | undefined | - |