# vue: GTPlugin URL: https://generaltranslation.com/ru/docs/vue/reference/types/gt-plugin.mdx --- title: GTPlugin description: Императивная установка состояния перевода Vue и управление локалью и кэшем каталога. Справочник API GTPlugin. --- [`createGT()`](/docs/vue/reference/functions/create-gt) и [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) возвращают этот плагин Vue. Его состояние и поведение определяются функцией, которая его создала. ## Обзор [#overview] ```ts type GTPlugin = { getLocale(): string; install(app: App): void; loadTranslations(locale: string): Promise; setLocale(locale: string): Promise; }; ``` | Метод | Описание | Тип возвращаемого значения | | ------------------------------------------------ | ----------------------------------------------------------------------------------- | ----------------------------- | | [`getLocale()`](#get-locale) | Возвращает локаль, используемую плагином в данный момент. | `string` | | [`install(app)`](#install) | Предоставляет состояние плагина приложению Vue. | `void` | | [`loadTranslations(locale)`](#load-translations) | Предварительно загружает и кэширует локаль без изменения активной локали. | `Promise` | | [`setLocale(locale)`](#set-locale) | Изменяет или сохраняет активную локаль в соответствии с режимом выполнения плагина. | `Promise` | ## `getLocale()` [#get-locale] **Тип** `() => string` · **Обязательно** Для плагина [`createGT()`](/docs/vue/reference/functions/create-gt) в браузере этот метод считывает значение текущей настроенной cookie-файла локали и, если оно недоступно, использует явно заданную локаль плагина или локаль по умолчанию. На сервере он возвращает значение, локальное для экземпляра. Для плагина [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) он возвращает локаль, закреплённую при инициализации страницы. Прямое изменение cookie-файла не изменяет смонтированное SPA до следующей перезагрузки и запуска загрузочного модуля. ## `install(app)` [#install] **Тип** `(app: App) => void` · **Обязательно** Предоставляет компонентам, форматтерам и composables состояние перевода через механизм внедрения зависимостей Vue. Вызов `app.use(plugin)` вызывает этот метод. При установке начинается загрузка активной локали. Плагин [`createGT()`](/docs/vue/reference/functions/create-gt) можно сразу смонтировать с исходным контентом; после успешной загрузки он выполнит повторный рендеринг. Плагин [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) к моменту возврата уже предварительно загружен. Устанавливайте именно SPA-плагин, возвращённый инициализацией. Создание и установка второго плагина разделяет поиск в компонентах и поиск [`t()`](/docs/vue/reference/functions/t) на уровне модуля. Composable, используемый без установленного плагина, выбрасывает диагностическое исключение. ## `loadTranslations()` [#load-translations] **Тип** `(locale: string) => Promise<`[`TranslationCatalog`](/docs/vue/reference/types/translation-catalog)`>` · **Обязательно** Загружает и кэширует целевой каталог, не изменяя активную локаль. Для локали по умолчанию возвращает существующий пустой каталог без вызова настроенного загрузчика. Успешно загруженные результаты кэшируются для этого плагина, а параллельные вызовы для одной и той же разрешаемой локали используют один и тот же промис. В SPA-плагине перед загрузкой применяются алиасы локалей и резервный вариант для поддерживаемых локалей. Отклонённый промис загрузчика записывается в журнал и повторно выбрасывается как исключение. Сбой не кэшируется, поэтому последующий вызов может повторить попытку. ## `setLocale()` [#set-locale] **Тип** `(locale: string) => Promise` · **Обязательно** Поведение зависит от способа создания плагина: * **Плагин [`createGT()`](/docs/vue/reference/functions/create-gt):** загружает каталог, отсутствующий в кэше, затем обновляет cookie-файл и реактивные потребители. Если загрузка завершается ошибкой, текущие локаль и cookie-файл остаются без изменений. Если вызовы перекрываются, применяется только самый последний запрос. * **Плагин [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa):** разрешает запрошенную локаль, записывает cookie-файл и перезагружает документ. Перед перезагрузкой он не загружает целевой каталог и не изменяет закреплённую локаль на текущей странице. [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale) предоставляет это поведение через установленный плагин. ## Пример [#example] ```ts import { createApp } from 'vue'; import { createGT } from 'gt-vue'; import App from './App.vue'; const gt = createGT({ defaultLocale: 'en', loadTranslations }); await gt.loadTranslations('fr'); createApp(App).use(gt).mount('#app'); await gt.setLocale('fr'); console.log(gt.getLocale()); // "fr" ```