# vue: Быстрый старт URL: https://generaltranslation.com/ru/docs/vue/quickstart.mdx --- title: Быстрый старт description: Добавьте несколько языков в приложение Vue с помощью General Translation менее чем за 10 минут. related: links: - /docs/vue/guides/translating-content - /docs/vue/guides/translating-strings - /docs/vue/guides/managing-locales - /docs/vue/guides/storing-translations --- К концу этого руководства ваше приложение Vue будет отображать контент на нескольких языках, а пользователи смогут менять активную локаль без перезагрузки страницы. `gt-vue` работает как плагин Vue. Плагин однократно загружает и кэширует каждый каталог переводов, а также реактивно повторно отображает переведённый контент при смене локали. **Предварительные требования:** * Приложение на Vue 3 версии 3.3 или выше * Node.js 18+ ## Быстрый старт [#quickstart] ### 1. Установите пакеты `gt-vue` обеспечивает переводы в вашем приложении. [`gt`](/docs/cli/quickstart) извлекает исходный контент и создаёт каталоги переводов. ```bash npm install gt-vue npm install --save-dev gt ``` ```bash yarn add gt-vue yarn add --dev gt ``` ```bash bun add gt-vue bun add --dev gt ``` ```bash pnpm add gt-vue pnpm add --save-dev gt ``` ### 2. Создайте файл конфигурации перевода Создайте файл `gt.config.json` в корне проекта. Укажите локаль исходного текста, целевые локали и путь для сохранения сгенерированных каталогов. ```json title="gt.config.json" { "defaultLocale": "en", "locales": ["es", "fr", "ja"], "files": { "gt": { "output": "src/_gt/[locale].json" } } } ``` * `defaultLocale` — язык исходного контента. * `locales` содержит список целевых языков. Выберите любую локаль из [списка поддерживаемых локалей](/docs/platform/dashboard/reference/supported-locales). * `files.gt.output` указывает CLI, куда сохранять каждый catalog. Не удаляйте placeholder `[locale]` из пути. ### 3. Создайте загрузчик переводов Создайте загрузчик, возвращающий сгенерированный каталог для указанной локали: ```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 { return {}; } }; export default loadTranslations; ``` Загрузчик не вызывается для локали по умолчанию, так как исходный контент уже служит её каталогом. Возврат пустого объекта позволяет приложению отображать исходный контент, если целевой каталог недоступен. ### 4. Зарегистрируйте плагин Создайте плагин с помощью [`createGT()`](/docs/vue/reference/functions/create-gt) и установите его перед монтированием приложения: ```ts title="src/main.ts" import { createApp } from 'vue'; import { createGT } from 'gt-vue'; import App from './App.vue'; import gtConfig from '../gt.config.json'; import loadTranslations from './loadTranslations'; const gt = createGT({ defaultLocale: gtConfig.defaultLocale, loadTranslations, }); createApp(App).use(gt).mount('#app'); ``` Плагин использует сохранённый cookie-файл локали, если он есть; в противном случае используется `defaultLocale`. Он сразу монтируется с исходным контентом, а затем автоматически обновляется после загрузки запрошенного каталога. ### 5. Пометьте контент для перевода Используйте [``](/docs/vue/reference/components/t) для форматированного содержимого шаблонов, а [`useGT()`](/docs/vue/reference/composables/use-gt) — для автономных строк, например значений атрибутов полей ввода: ```vue title="src/App.vue" ``` Содержимое внутри [``](/docs/vue/reference/components/t) должно быть статичным. Для значений, определяемых во время выполнения, и условных вариантов используйте [компоненты переменных и ветвления](/docs/vue/guides/formatting-variables). ### 6. Добавьте переключатель языка Получите текущую локаль с помощью [`useLocale()`](/docs/vue/reference/composables/use-locale) и изменяйте её с помощью [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale): ```vue title="src/App.vue" ``` [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale) загружает отсутствующий каталог перед сохранением cookie-файла локали и повторным рендерингом реактивных компонентов. При использовании загрузчика выше отсутствие файла приводит к возврату пустого каталога, смене локали и отображению исходного контента. Если же загрузчик завершается с ошибкой, текущая локаль остаётся активной. ### 7. Аутентификация и перевод Войдите в General Translation: ```bash npx gt auth ``` Команда поможет вам войти в систему и создать учётные данные. Храните созданный production API key в файле локального окружения; не включайте его в клиентский код и не добавляйте в систему контроля версий. Затем сгенерируйте каталоги переводов: ```bash npx gt translate ``` CLI сканирует исходный код Vue, переводит извлечённое содержимое и записывает в `src/_gt/` по одному JSON-файлу для каждой целевой локали. Повторно запускайте команду при каждом изменении исходного контента. ## Устранение неполадок [#troubleshooting] Текущая локаль хранится в cookie-файле `generaltranslation.locale`. Удалите устаревший cookie-файл, затем снова выберите целевую локаль. Также убедитесь, что её JSON-файл существует в `src/_gt/` и что загрузчик возвращает его экспорт по умолчанию. Вызывайте функцию, возвращаемую [`useGT()`](/docs/vue/reference/composables/use-gt), из шаблона или вычисляемого свойства Vue. Строка, переведённая один раз во время setup, представляет собой снимок и не обновляется при изменении реактивного состояния локали. ## Next steps - /docs/vue/guides/translating-content - /docs/vue/guides/translating-strings - /docs/vue/guides/managing-locales - /docs/vue/guides/storing-translations