Creation:2026-09-19Last update:2026-09-19
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "初始文档"v9.5.52026/9/19
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本编辑此文档
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接Copy
复制文档 Markdown 到剪贴板
useLocale 钩子文档
astro-intlayer 的 useLocale 钩子提供对 Astro 应用程序中当前请求语言环境、配置的默认语言环境以及所有可用语言环境的访问权限。
它在服务器渲染的 .astro frontmatter 和客户端 <script> 块中表现一致。
使用方法
在组件 Frontmatter 中(服务端渲染)
src/layouts/Layout.astro
复制代码
复制代码到剪贴板
在客户端 <script> 中(交互式)
src/components/LocaleSwitcher.astro
复制代码
复制代码到剪贴板
返回值
该钩子返回一个 UseLocaleResult 类型的对象:
显示表格的所有内容
在弹窗中打开表格以清晰地查看所有数据
| 属性 | 类型 | 描述 |
|---|---|---|
locale | DeclaredLocales | 活动语言环境。 |
defaultLocale | DeclaredLocales | 在 intlayer.config.ts 中配置的默认回退语言环境。 |
availableLocales | DeclaredLocales[] | 为项目配置的所有受支持语言环境的数组。 |
setLocale | (locale: LocalesValues) => void | 更新语言环境的函数。(在客户端 <script> 中可交互,在 SSR 期间发出警告)。 |
subscribe | (callback: () => void) => () => void | 订阅客户端语言环境更改。 |
服务端与客户端行为
- 在 SSR / 服务端渲染期间:请求使用固定参数渲染一次。在服务端渲染期间调用
setLocale()没有效果并会发出警告;语言环境切换应在客户端执行或通过导航到目标语言环境 URL 执行。 - 在客户端脚本中:
setLocale更新客户端 store 并根据您的 Intlayer 配置更新持久化的 Cookie 或本地存储。
