# General Translation React SDKs (gt-react, gt-next): Быстрый старт с TanStack Start
URL: https://generaltranslation.com/ru/docs/react/tanstack-start-quickstart.mdx
---
title: Быстрый старт с TanStack Start
description: Добавьте General Translation в приложение TanStack Start с помощью gt-tanstack-start и переведите свой первый текст.
related:
links:
- /docs/react/guides/translating-jsx
- /docs/react/guides/translating-strings
- /docs/react/guides/managing-locales
- /docs/react/guides/formatting-variables
---
`gt-tanstack-start` добавляет в приложения TanStack Start автоматическую интернационализацию. Вы инициализируете General Translation в корневом маршруте, определяете локаль запроса и гидратируете `GTProvider` из загрузчика маршрута.
Используйте этот Быстрый старт для приложений TanStack Start. Для обычного React SPA используйте [Быстрый старт для React](/docs/react/react-quickstart).
`gt-tanstack-start` — экспериментальный пакет, в котором возможны обратно несовместимые изменения. Пока он не рекомендуется для использования в production.
## Быстрый старт [#quickstart]
Установите пакеты, создайте файл конфигурации и загрузчик переводов, настройте корневой маршрут, пометьте содержимое для перевода и сгенерируйте переводы.
### 1. Установите `gt-tanstack-start`
Установите `gt-tanstack-start` и `gt-react` как зависимости, а [`gt` CLI](/docs/cli/quickstart) — как зависимость для разработки. `gt-react` нужно установить напрямую, чтобы CLI мог обнаруживать компоненты [``](/docs/react/reference/components/t) в исходном коде.
```bash
npm install gt-tanstack-start gt-react && npm install gt --save-dev
```
```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
```
### 2. Создайте `gt.config.json`
Создайте файл `gt.config.json` в корне проекта. В нём задаются исходный язык, целевые локали и путь, по которому сохраняются файлы перевода.
```json title="gt.config.json"
{
"defaultLocale": "en",
"locales": ["es", "ja"],
"files": {
"gt": {
"output": "src/_gt/[locale].json"
}
}
}
```
* `defaultLocale` — язык, на котором написано ваше приложение.
* `locales` — языки, на которые нужно переводить. Выберите их из [поддерживаемых локалей](/docs/platform/dashboard/reference/supported-locales).
* `files.gt.output` — путь, куда CLI записывает файлы перевода. Храните их в `src/`, чтобы Vite мог их импортировать; файлы в `public/` не будут резолвиться.
### 3. Создайте загрузчик переводов
Создайте файл `loadTranslations.ts`, который импортирует файл перевода для локали при выполнении приложения.
```ts title="loadTranslations.ts"
export default async function loadTranslations(locale: string) {
const translations = await import(`./src/_gt/${locale}.json`);
return translations.default;
}
```
### 4. Настройте корневой маршрут
В `src/routes/__root.tsx` вызовите [`initializeGT`](/docs/node/reference/functions/initialize-gt) на уровне модуля, определите локаль с помощью `parseLocale` и загрузите снимок переводов в загрузчике маршрута. Передайте `locale` и `translations` в `GTProvider`.
```tsx title="src/routes/__root.tsx"
import {
HeadContent,
Scripts,
createRootRoute,
} from '@tanstack/react-router';
import {
initializeGT,
GTProvider,
parseLocale,
getTranslationsSnapshot,
LocaleSelector,
} from 'gt-tanstack-start';
import gtConfig from '../../gt.config.json';
import loadTranslations from '../../loadTranslations';
// Инициализируем General Translation один раз на уровне модуля
initializeGT({ ...gtConfig, loadTranslations });
export const Route = createRootRoute({
loader: async () => {
const locale = parseLocale();
return {
locale,
translations: await getTranslationsSnapshot(locale),
};
},
shellComponent: RootDocument,
});
function RootDocument({ children }: { children: React.ReactNode }) {
const { locale, translations } = Route.useLoaderData();
return (
{children}
);
}
```
`parseLocale` считывает локаль из cookie-файла запроса и заголовков на сервере, а в браузере — из cookie-файла. `GTProvider` требует оба параметра: `locale` и `translations`.
### 5. Пометьте содержимое для перевода
Оберните JSX в компонент ``, чтобы переводить его на месте. Импортируйте `` и [`useGT`](/docs/react/reference/hooks/use-gt) из `gt-react`, чтобы CLI обнаруживал их при сканировании исходного кода.
```tsx title="src/routes/index.tsx"
import { createFileRoute } from '@tanstack/react-router';
import { T, useGT } from 'gt-react';
export const Route = createFileRoute('/')({ component: Home });
function Home() {
const gt = useGT();
return (
Welcome to my app
This content is translated automatically.
);
}
```
`useGT()` сразу возвращает функцию перевода, поэтому вызывайте её так: `const gt = useGT();`.
### 6. Сгенерируйте переводы
Запустите CLI, чтобы перевести проект с помощью API General Translation.
```bash
npx gt translate
```
Добавьте команду в скрипт сборки, чтобы production-сборки всегда содержали актуальные переводы:
```json title="package.json"
{
"scripts": {
"build": "npx gt translate && vite build"
}
}
```
*Примечание: для `npx gt translate` требуются идентификатор проекта и production API key, заданные в переменных окружения `GT_PROJECT_ID` и `GT_API_KEY`. Выполните `npx gt auth` или перейдите в [Dashboard](/docs/platform/dashboard/get-started), чтобы получить их.*
## Next steps
- /docs/react/guides/translating-jsx
- /docs/react/guides/translating-strings
- /docs/react/guides/managing-locales
- /docs/react/guides/formatting-variables