# tanstack-start: TanStack Start 快速入门 URL: https://generaltranslation.com/zh/docs/tanstack-start.mdx --- title: TanStack Start 快速入门 description: 使用 gt-tanstack-start 为你的 TanStack Start 应用添加国际化支持 --- **前提条件:** 使用 React 16.8+ 的 TanStack Start 项目 **实验性:** `gt-tanstack-start` 仍在积极开发中,暂不建议用于生产环境。 ## 安装 安装 `gt-tanstack-start`、`gt-react` 和 `gt` CLI: ```bash npm i gt-tanstack-start gt-react npm i -D gt ``` ```bash yarn add gt-tanstack-start gt-react yarn add --dev gt ``` ```bash bun add gt-tanstack-start gt-react bun add --dev gt ``` ```bash pnpm add gt-tanstack-start gt-react pnpm add --save-dev gt ``` 必须将 `gt-react` 作为直接依赖安装,这样 `gt` CLI 才能在源代码中检测到 `` 组件。 ## 配置 ### `gt.config.json` 在项目 root 目录中创建一个 `gt.config.json`: ```json title="gt.config.json" { "defaultLocale": "en", "locales": ["es", "ja"], "files": { "gt": { "output": "src/_gt/[locale].json" } } } ``` 翻译文件**必须**放在 `src/` 目录下,Vite 的动态导入才能正常工作。使用 `public/` 不会生效。 ### 翻译加载器 在项目 root 目录中创建一个 `loadTranslations.ts` 文件: ```ts title="loadTranslations.ts" export default async function loadTranslations(locale: string) { const translations = await import(`./src/_gt/${locale}.json`); return translations.default; } ``` ### Root 路由 setup 更新 `src/routes/__root.tsx`,以初始化 GT 并提供译文: ```tsx title="src/routes/__root.tsx" import { HeadContent, Scripts, createRootRoute, } from '@tanstack/react-router' import { initializeGT, GTProvider, getTranslations, getLocale, LocaleSelector, } from 'gt-tanstack-start' import gtConfig from '../../gt.config.json' import loadTranslations from '../../loadTranslations' // 在模块级别初始化 GT initializeGT({ ...gtConfig, loadTranslations, }) export const Route = createRootRoute({ head: () => ({ meta: [ { charSet: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, ], }), loader: async () => { return { translations: await getTranslations(), locale: getLocale(), } }, shellComponent: RootDocument, }) function RootDocument({ children }: { children: React.ReactNode }) { const { translations, locale } = Route.useLoaderData() return ( {children} ) } ``` ## 用法 使用 `` 包裹内容即可进行翻译。从 `gt-react` 导入 ``: ```tsx title="src/routes/index.tsx" import { createFileRoute } from '@tanstack/react-router' import { T } from 'gt-react' export const Route = createFileRoute('/')({ component: Home }) function Home() { return (

Welcome to our app!

This content is automatically translated.

) } ``` 请从 `gt-react` 导入 `` (不要从 `gt-tanstack-start` 导入) 。`gt` CLI 会扫描从 `gt-react` 的导入,以查找可翻译的内容。 ## 生成译文 ### 使用 General Translation (推荐) 运行 `gt translate` 命令来生成译文: ```bash npx gt translate ``` 这会将你的内容发送到 General Translation API,并将翻译后的 JSON 文件下载到 `src/_gt/`。 你需要为该 API 设置环境变量: ```bash title=".env" GT_API_KEY="your-api-key" GT_PROJECT_ID="your-project-id" ``` 前往 [dash.generaltranslation.com](https://dash.generaltranslation.com/signup) 免费获取 API 密钥,或运行: ```bash npx gt auth ``` ### 手动翻译 如果你希望自行管理译文: 1. 生成源语言文件: ```bash npx gt generate ``` 2. 手动翻译生成的 JSON 文件 3. 将其放在 `src/_gt/{locale}.json` ## 测试 启动开发服务器: ```bash npm run dev ``` ```bash yarn dev ``` ```bash bun run dev ``` ```bash pnpm dev ``` 访问 [localhost:3000](http://localhost:3000),使用区域设置选择器切换语言。译文从本地 JSON 文件加载,因此语言切换会立即生效。 ## 部署 将翻译步骤添加到 build 脚本中: ```json title="package.json" { "scripts": { "build": "npx gt translate && vite build" } } ``` ## 示例应用 查看完整的可运行示例:[tanstack-start-basic](https://github.com/generaltranslation/gt/tree/main/examples/tanstack-start-basic) *** ## 下一步 * 阅读[概览](/docs/tanstack-start/introduction),更深入地了解 API * 了解 ``、`` 和 `` 等[变量组件](/docs/react/guides/variables) * 查阅 [`` 组件](/docs/react/api/components/t) 的 API 参考