# Vue: LoadTranslations
URL: https://generaltranslation.com/ru/docs/vue/reference/types/load-translations.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Загружает полный каталог переводов для запрошенной локали. Справочник API для LoadTranslations.

Передайте эту функцию обратного вызова в [`createGT()`](/docs/vue/reference/functions/create-gt) или [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa), если целевые каталоги хранятся в файлах приложения, базе данных, API или на другом хосте.

## Обзор [#overview]

```ts
type LoadTranslations = (
  locale: string
) => Promise<TranslationCatalog>;
```

Плагин вызывает loader только для целевых локалей, не находящихся в кэше. Для локали по умолчанию используется исходный текст, поэтому loader для неё никогда не вызывается.

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

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

Обычный плагин [`createGT()`](/docs/vue/reference/functions/create-gt) передаёт запрошенную локаль без изменений. Плагин [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) сначала разрешает локаль с учётом настроенных `locales` и `customMapping`, сохраняя заданное написание в путях к файлам.

## Возвращаемое значение [#returns]

**Тип** `Promise<`[`TranslationCatalog`](/docs/vue/reference/types/translation-catalog)`>`

Должен разрешаться в полный каталог с хеш-ключами для `locale`. Если переводы недоступны и приложению следует использовать исходный контент, должен разрешаться в `{}`.

Не возвращайте `null`, `undefined` или частичное значение с другой структурой. Публичный тип функции обратного вызова требует объект каталога.

## Поведение загрузки [#loading-behavior]

* Успешный результат кэшируется на всё время работы этого плагина.
* Одновременные загрузки одной и той же локали используют один promise.
* `plugin.loadTranslations(locale)` предварительно загружает переводы, не изменяя активную локаль.
* Реактивный `plugin.setLocale(locale)` загружает переводы перед переключением.
* [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) загружает начальную целевую локаль до разрешения своего promise.
* Установка плагина [`createGT()`](/docs/vue/reference/functions/create-gt) запускает начальную загрузку целевой локали в фоновом режиме, позволяя сначала отрендерить исходный контент.

## Сбои [#failures]

Если функция обратного вызова завершается с ошибкой, `gt-vue` записывает диагностическое сообщение в журнал, повторно выбрасывает ту же ошибку, удаляет запись о выполняющейся операции и не кэширует результат. Последующий вызов может повторить попытку.

Поэтому императивный вызов `loadTranslations()`, реактивное изменение локали или инициализация SPA завершаются с ошибкой. Фоновая загрузка, запущенная через `app.use(createGT(...))`, после записи в журнал перехватывает ошибку, чтобы приложение могло продолжить работу с исходным контентом.

## Пример [#example]

```ts title="src/loadTranslations.ts"
import type { LoadTranslations } from 'gt-vue';

const loadTranslations: LoadTranslations = async (locale) => {
  try {
    return (await import(`./_gt/${locale}.json`)).default;
  } catch (error) {
    console.error(`No translation catalog for ${locale}`, error);
    return {};
  }
};

export default loadTranslations;
```

Приведённый выше loader при отсутствии файлов возвращает успешно загруженный пустой каталог. Удалите `try`/`catch`, если отсутствующий или недопустимый каталог должен прерывать инициализацию.

## Sitemap

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