# Vue: CreateGTOptions
URL: https://generaltranslation.com/ru/docs/vue/reference/types/create-gt-options.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Настройте начальную локаль, cookie-файл и загрузчик каталога для изолированного плагина Vue. Справочник API для CreateGTOptions.

Передайте этот объект в [`createGT()`](/docs/vue/reference/functions/create-gt). Его поля применяются к реактивным клиентским плагинам и серверным плагинам в области действия запроса.

## Обзор [#overview]

```ts
type CreateGTOptions = {
  customMapping?: CustomMapping;
  defaultLocale?: string;
  loadTranslations?: LoadTranslations;
  locale?: string;
  localeCookieName?: string;
};
```

| Вариант                                  | Описание                                                | Тип                                                                   | Необязательно | По умолчанию                  |
| ---------------------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------- | ------------- | ----------------------------- |
| [`customMapping`](#custom-mapping)       | Алиасы локалей для форматирования и выбора формы множественного числа. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Да            | Нет                           |
| [`defaultLocale`](#default-locale)       | Исходная и резервная локаль.                            | `string`                                                              | Да            | `en`                          |
| [`loadTranslations`](#load-translations) | Асинхронный загрузчик целевого каталога.                | [`LoadTranslations`](/docs/vue/reference/types/load-translations)     | Да            | Пустой каталог                |
| [`locale`](#locale)                      | Явно заданная начальная локаль.                         | `string`                                                              | Да            | Cookie, затем `defaultLocale` |
| [`localeCookieName`](#cookie-name)       | Cookie-файл браузера для сохранения выбранной локали.   | `string`                                                              | Да            | `generaltranslation.locale`   |

## `customMapping` [#custom-mapping]

**Тип** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Необязательный** · **По умолчанию** нет

Алиасы локалей, используемые для форматирования с учётом локали и выбора формы множественного числа. Объект с корректным полем `code` изменяет локаль, которая передаётся в форматтеры `Intl` и правила множественного числа.

При загрузке каталога и в cookie-файле локали сохраняется исходный алиас. Например, если указать `pirate: { code: 'fr-FR' }`, будет загружен каталог `pirate` и сохранено значение `pirate`, а значения при этом будут форматироваться по французским правилам.

## `defaultLocale` [#default-locale]

**Тип** `string` · **Необязательно** · **По умолчанию** `en`

Локаль исходного контента и резервная локаль, используемая при отсутствии явно указанной или сохранённой локали. Исходный текст этой локали служит каталогом, поэтому плагин никогда не вызывает [`loadTranslations`](/docs/vue/reference/types/load-translations) для неё.

Значение не канонизируется и не ограничивается функцией [`createGT()`](/docs/vue/reference/functions/create-gt). Используйте одинаковое написание в конфигурации CLI, путях загрузчика и при разрешении локали запроса.

## `loadTranslations` [#load-translations]

**Тип** [`LoadTranslations`](/docs/vue/reference/types/load-translations) · **Необязательно** · **По умолчанию** пустой каталог

Асинхронная функция обратного вызова, возвращающая полный [`TranslationCatalog`](/docs/vue/reference/types/translation-catalog) для целевой локали. Если она не указана, загрузка для любой целевой локали завершается с результатом `{}`, поэтому исходный контент остаётся видимым.

Успешные результаты кэшируются отдельно для каждого плагина, а параллельные вызовы для одной локали используют один и тот же промис. Отклонённые промисы логируются и повторно выбрасываются без кэширования.

## `locale` [#locale]

**Тип** `string` · **Необязательный** · **По умолчанию** cookie-файл браузера, затем `defaultLocale`

Явно задаёт начальную активную локаль. На сервере передайте локаль, определённую для текущего запроса. В браузере явно указанное значение имеет приоритет над устаревшим cookie-файлом локали и записывается в него, обеспечивая согласованность гидратации.

Если в браузере параметр не указан, сохранённый cookie-файл имеет приоритет над `defaultLocale`. Если на сервере параметр не указан, используется `defaultLocale`.

## `localeCookieName` [#cookie-name]

**Тип** `string` · **Необязательно** · **По умолчанию** `generaltranslation.locale`

Задаёт имя session cookie-файла, действующего для всего path и используемого для сохранения и чтения активной локали. Переопределите его, если routing или middleware на сервере использует другое имя cookie-файла.

Прямые изменения cookie-файлов в браузере учитываются `plugin.getLocale()` и при следующем render Vue, однако браузер не генерирует событие, которое запланировало бы этот render. Для реактивных изменений используйте `plugin.setLocale()` или [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale).

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

```ts
import type { CreateGTOptions } from 'gt-vue';

const options: CreateGTOptions = {
  customMapping: {
    pirate: { code: 'fr-FR' },
  },
  defaultLocale: 'en',
  locale: requestLocale,
  localeCookieName: 'my-app.locale',
  loadTranslations: async (locale) =>
    (await import(`./_gt/${locale}.json`)).default,
};
```

Создавайте отдельные объект параметров и плагин для каждого серверного запроса. Совместное использование состояния плагина или изменяемого кэша каталога вне плагина может привести к утечке данных, зависящих от локали, между запросами.

## Sitemap

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