返回

gt-react@10.8.0

Ernest McCarter avatarErnest McCarter
gt-react10.8.0feature flagsi18ntranslation

概览

gt-react 10.8.0 中,我们通过 enableI18n 字段加入了功能开关支持。借助它,你可以按需关闭国际化,并且同时支持同步和异步的加载模式。


同步行为

enableI18n 设置为 false 时,会通过以下方式禁用 i18n 功能:

  • 将 locale 列表设置为仅包含默认 locale
  • 将用户的 locale 设置为默认 locale
<GTProvider enableI18n={false}>
  {/* i18n 已禁用 - 仅默认语言可用 */}
</GTProvider>

异步行为

对于动态功能开关,请使用 enableI18nLoaded 来标记加载状态:

<GTProvider 
  enableI18n={featureFlag} 
  enableI18nLoaded={isLoaded}
>
  {/* 内容 */}
</GTProvider>

enableI18nLoaded 不为 undefined 时:

  • false:功能开关正在加载(使用默认的 enableI18n 值)
  • true:功能开关已加载完成

在加载过程中,库会检查 generaltranslation.enable-i18n cookie 以确定当前状态。加载完成后,显式指定的 enableI18n 值将优先生效。


SSG/SSR 注意事项

在使用 SSG 时,如果默认的 enableI18n 值为 false,则会牺牲首次渲染周期,因为静态生成无法获知运行时的功能开关状态。

当前 SSR 的行为类似,不过我们计划在未来版本中为 Next.js Pages Router 提供完善的 SSR 支持。对于 Next.js App Router,请改用 gt-next