gt-react@10.8.0
概览
在 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。