# General Translation React SDKs (gt-react, gt-next, gt-react-native): Локальное хранение переводов
URL: https://generaltranslation.com/ru/docs/react/guides/storing-translations.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Как локально встроить переводы General Translation в приложение вместо загрузки из CDN.

По умолчанию General Translation загружает переводы из своего CDN во время выполнения. Вместо этого вы можете сгенерировать файлы перевода, включить их в приложение и загружать самостоятельно. Это избавляет от зависимости от CDN во время выполнения, но для обновления переводов потребуется повторный деплой.

## Настройте локальный путь вывода [#configure]

В `gt.config.json` укажите путь для вывода файла `gt` в исходном коде, используя заполнитель `[locale]`. Это одинаково для всех фреймворков.

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "fr"],
  "files": { "gt": { "output": "src/_gt/[locale].json" } }
}
```

## Сгенерируйте файлы [#generate]

Запустите CLI, чтобы перевести ваше содержимое и сохранить по одному файлу для каждой локали по этому пути.

```bash
npx gt translate
```

Добавьте это в процесс сборки, чтобы файлы оставались актуальными — например, `"build": "npx gt translate && vite build"` (или `next build`, `expo export` и так далее).

## Загрузите их в приложение [#load]

Добавьте колбэк [`loadTranslations`](/docs/react/reference/functions/load-translations), который импортирует файл для локали. Способ его регистрации зависит от фреймворка.

<Tabs items={['React', 'Next.js', 'TanStack Start', 'React Native']}>
  <Tab value="React">
    Передайте [`loadTranslations`](/docs/react/reference/functions/load-translations) в вызов инициализации.

    ```tsx title="src/routes/root.tsx"
    import { initializeGT } from 'gt-react';
    import gtConfig from '../../gt.config.json';

    const loadTranslations = (locale: string) =>
      import(`../_gt/${locale}.json`).then((m) => m.default);

    initializeGT({ ...gtConfig, loadTranslations });
    ```
  </Tab>

  <Tab value="Next.js">
    Создайте файл `loadTranslations.ts` в корне проекта. Плагин [`withGTConfig`](/docs/react/nextjs/config) автоматически его обнаружит или явно задайте [`loadTranslationsPath`](/docs/react/nextjs/config#load-translations-path).

    ```ts title="loadTranslations.ts"
    export default async function loadTranslations(locale: string) {
      const t = await import(`./_gt/${locale}.json`);
      return t.default;
    }
    ```

    ```ts title="next.config.ts"
    import { withGTConfig } from 'gt-next/config';

    export default withGTConfig(nextConfig, { loadTranslationsPath: './loadTranslations.ts' });
    ```
  </Tab>

  <Tab value="TanStack Start">
    Передайте [`loadTranslations`](/docs/react/reference/functions/load-translations) в вызов инициализации.

    ```tsx
    import { initializeGT } from 'gt-tanstack-start';
    import gtConfig from '../gt.config.json';

    const loadTranslations = (locale: string) =>
      import(`./_gt/${locale}.json`).then((m) => m.default);

    initializeGT({ ...gtConfig, loadTranslations });
    ```
  </Tab>

  <Tab value="React Native">
    Передайте [`loadTranslations`](/docs/react/reference/functions/load-translations) в вызов инициализации.

    ```tsx
    import { initializeGT } from 'gt-react-native';
    import gtConfig from '../gt.config.json';

    const loadTranslations = (locale: string) =>
      import(`./_gt/${locale}.json`).then((m) => m.default);

    initializeGT({ ...gtConfig, loadTranslations });
    ```
  </Tab>
</Tabs>

Если у вас настроен локальный loader, переводы читаются из вашего бандла, и запросы к CDN не выполняются. Чтобы снова использовать перевод из CDN, удалите loader и вместо этого укажите [`projectId`](/docs/react/reference/config#project-id) (см. [Настройка General Translation](/docs/react/guides/configuring#delivery)).

## Next steps

- /docs/react/guides/configuring
- /docs/react/guides/developing-spa-translations
- /docs/react/guides/managing-locales
- /docs/react/guides/translating-jsx

## Sitemap

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