Helpers

getLocale

getLocale 服务端方法的 API 参考

概述

getLocale 函数会在服务端渲染期间获取用户的当前 locale。 返回的 locale 将以字符串形式表示,例如:'en-US'

getLocale 是服务端方法,只能用于服务端组件。

如需在客户端使用,请参阅 useLocale

参考资料

返回值

一个 Promise,解析后得到一个字符串,表示用户当前的 locale,例如:'en-US'


回退行为

当请求不受支持的 locale 时,将会选择一个回退 locale。

例如,在遇到不受支持的 locale 时, 如果 (1) 用户在浏览器设置中配置了多个首选 locale, 且 (2) 其中有一个被你的应用支持, 则会回退到最合适的语言。

另外,如果不存在可用的回退 locale, 但有两个 locale 共享相同的语言(例如 en-USen-GB), 则会回退到共享该语言的受支持 locale。

如果以上条件均不满足,则会使用默认 locale。

有关配置受支持 locales 的信息,请参见 gt.config.json 文档。


示例

基本用法

在服务端渲染时获取用户的 locale。

GetUserLocale.jsx
import { getLocale } from 'gt-next/server';

export default async function GetUserLocale() {
    const locale = await getLocale(); 
    return <p>用户的语言区域(locale):{locale}</p>;
}

注意事项

  • getLocale 函数是异步的,必须使用 await 才能获取 locale。
  • 它专为服务端使用而设计。面向客户端的组件请参见 useLocale
  • 返回的 locale 符合语言环境代码字符串的格式。

下一步

这份指南怎么样?

getLocale