# General Translation Changelog: gt-react 11.0.0: 跨 React 框架共享的运行时
URL: https://generaltranslation.com/zh/blog/gt-react_v11_0_0.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Ernest McCarter
Published: 2026-07-03

## 概览

`gt-react` 11 是我们 React 库中一次协同推进的 General Translation 版本发布的核心。`gt-react`、`gt-next`、`@generaltranslation/react-core`、`gt-react-native` 和 `gt-tanstack-start` 都已升级到 11 版，同时 `gt-i18n` 升级到了 1.0，`generaltranslation` 升级到了 9.0。

此次发布有两个目标：让 i18n 运行时更容易扩展到更多框架，并减少随产品一同交付给用户的 General Translation 代码量。最终形成的是一套共享基础，同时为纯浏览器应用和服务器端渲染应用提供了更清晰的设置流程。

## 原生支持 Pages Router

v11 中面向用户的最大变化是，`gt-next` 现在直接支持 Next.js Pages Router。此前，Pages Router 应用必须使用 `gt-react`。现在，它们可以使用 [`withGTServerSideProps()`](/docs/react/nextjs-pages-router-quickstart) 加载区域设置和翻译快照，然后在 `_app.tsx` 中将这两者传递给 [`<GTProvider>`](/docs/react/reference/components/gt-provider)。

v11 系列版本还新增了用于静态生成的 [`withGTStaticProps()`](/docs/react/nextjs/pages-router-static-site-generation)。11.1.3 版本将推荐的路由设置从 `gt-next` middleware 改为 [Next.js 国际化路由](/docs/react/nextjs/pages-router-middleware)。

## 更新后的设置流程

* **React SPA** - 在应用加载前，使用 [`initializeGTSPA()`](/docs/react/reference/config#initialize-spa) 初始化 `gt-react`。初始化器会预先解析区域设置和翻译，因此 SPA 不再需要 provider。请参阅 [React SPA Quickstart](/docs/react/react-spa-quickstart)。
* **服务器端渲染 React** - 先初始化一次运行时，然后在服务器上解析请求区域设置和翻译快照。将 `locale` 和 `translations` 一并传递给 [`<GTProvider>`](/docs/react/reference/components/gt-provider)，以实现同步 hydration。请参阅 [server-rendered React Quickstart](/docs/react/react-quickstart)。
* **TanStack Start** - 在根加载器中解析区域设置和翻译快照，然后将两者传递给 [`<GTProvider>`](/docs/react/reference/components/gt-provider)。所选区域设置也会通过已配置的区域设置 cookie 持久保存。请参阅 [TanStack Start Quickstart](/docs/react/tanstack-start-quickstart)。

## 更小、更易扩展的运行时

Version 11 移除了客户端应用不需要的代码，并让这些包更容易被打包工具进行 tree-shaking。仅用于开发的翻译路径也可以从生产构建中剔除。

在我们的生产 Next.js 基准测试中，归因于 GT 的客户端 JavaScript 大小从约 251 KB 降至 108 KB：**减少了 57.1%**。这里衡量的是客户端 bundle 中属于 General Translation 的部分，而不是整个应用程序的 bundle。你可以在 [Odysseus Bundle Size Tracker](https://odysseus-bundlesize.vercel.app/) 中查看包和入口点数据。

这次重构也为支持更多框架奠定了统一的基础。

## 后续计划

我们计划继续缩减客户端 bundle。接下来，我们希望将 dictionary 翻译和开发时 hot reload 等功能模块化，让应用只包含其实际使用的功能。

我们还计划进一步依赖 compiler 驱动的架构。将更多工作放到 build time 而不是运行时，应该能减少客户端 JavaScript 体积和运行时开销，同时也更容易支持更多框架。

## 链接

* [Project Odysseus PR #1439](https://github.com/generaltranslation/gt/pull/1439)
* [版本 11 发布 PR #1837](https://github.com/generaltranslation/gt/pull/1837)

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
