# General Translation React SDKs (gt-react, gt-next, gt-react-native): getTranslationsSnapshot
URL: https://generaltranslation.com/ru/docs/react/reference/functions/get-translations-snapshot.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Загружает переводы локали для `<GTProvider>`. Справочник API для getTranslationsSnapshot.

Функция `getTranslationsSnapshot` загружает переводы для локали в формате, который [`<GTProvider>`](/docs/react/reference/components/gt-provider) ожидает в пропе `translations`. Вызывайте её после инициализации, чтобы получить снимок, который провайдер использует синхронно.

*Доступно в `gt-react`, `gt-next`, `gt-tanstack-start` и `gt-react-native`.*

В `gt-next` используйте эту функцию с Pages Router. Экспорт для React Server Component в App Router выбрасывает исключение; настройкой серверных переводов там занимается сам `gt-next`.

## Обзор [#overview]

После [инициализации](/docs/react/reference/config#initialization) `gt-react` дождитесь, пока `getTranslationsSnapshot` вернёт снимок переводов для активной локали, и передайте результат в провайдер.

```tsx
const translations = await getTranslationsSnapshot(locale);
```

*Примечание: вызывайте `getTranslationsSnapshot` после [`initializeGT`](/docs/react/reference/config#initialize) или [`initializeGTSPA`](/docs/react/reference/config#initialize-spa), которые создают кэш переводов, используемый ею.*

## Как это работает [#how-it-works]

`getTranslationsSnapshot` вызывает настроенную функцию [`loadTranslations`](/docs/react/reference/functions/load-translations), чтобы загрузить локаль через кэш переводов, а затем возвращает сериализуемый снимок. Если передать этот снимок в [`<GTProvider>`](/docs/react/reference/components/gt-provider), переведённый контент будет отображаться синхронно, без мерцания при загрузке.

## Параметры [#parameters]

| Параметр            | Описание                                      | Тип      | Необязателен | По умолчанию |
| ------------------- | --------------------------------------------- | -------- | ------------ | ------------ |
| [`locale`](#locale) | Локаль, для которой нужно загрузить переводы. | `string` | Нет          | —            |

### `locale` [#locale]

**Тип** `string` · **Обязательно**

Локаль, для которой нужно загрузить переводы, в формате кода BCP 47.

## Возвращает [#returns]

**Тип** `Promise<Record<Locale, Record<Hash, Translation>>>`

Промис, который возвращает снимок переводов для локали в формате, ожидаемом [`<GTProvider>`](/docs/react/reference/components/gt-provider) для пропа `translations`.

## Ошибки [#errors]

В режиме разработки, если промис [`loadTranslations`](/docs/react/reference/functions/load-translations) отклоняется, `getTranslationsSnapshot` выводит предупреждение и разрешается значением `{}`. Локаль с ошибкой пропускается, поэтому передача снимка в провайдер не создаёт пустую запись.

В production кэш переводов записывает в журнал ошибку загрузчика и возвращает пустой каталог, поэтому снимок содержит `{ [locale]: {} }`. Неудачная загрузка не кэшируется в исходном кэше, и её можно повторить позже, однако передача такого снимка в другой провайдер может создать пустой каталог уже там.

Если ваш загрузчик перехватывает ошибку и возвращает `{}`, кэш считает этот пустой объект успешной загрузкой и хранит его до истечения `cacheExpiryTime`.

## Примеры [#examples]

*В примерах импортируется `gt-react`; вместо него импортируйте пакет своего фреймворка.*

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

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

initializeGT({ ...gtConfig, loadTranslations });

export async function loadRoot(request: Request) {
  const locale = parseLocale(request);
  return {
    locale,
    translations: await getTranslationsSnapshot(locale), // [!code highlight]
  };
}

export function Root({ locale, translations, children }) {
  return (
    <GTProvider locale={locale} translations={translations}>
      {children}
    </GTProvider>
  );
}
```

## Заметки [#notes]

* Вызовите `getTranslationsSnapshot` после инициализации.
* Передайте результат в проп `translations` компонента [`<GTProvider>`](/docs/react/reference/components/gt-provider).

## Sitemap

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