# vue: Inicio rápido
URL: https://generaltranslation.com/es/docs/vue/quickstart.mdx
---
title: Inicio rápido
description: Añade varios idiomas a una aplicación Vue con General Translation en menos de 10 minutos.
related:
links:
- /docs/vue/guides/translating-content
- /docs/vue/guides/translating-strings
- /docs/vue/guides/managing-locales
- /docs/vue/guides/storing-translations
---
Al final de esta guía, tu aplicación de Vue mostrará contenido en varios idiomas y permitirá a los usuarios cambiar la configuración regional activa sin recargar la página.
`gt-vue` funciona como un plugin de Vue. El plugin carga cada catálogo de traducciones una vez, lo almacena en caché y vuelve a renderizar de forma reactiva el contenido traducido cuando cambia la configuración regional.
**Requisitos previos:**
* Una aplicación de Vue 3, versión 3.3 o posterior
* Node.js 18+
## Inicio rápido [#quickstart]
### 1. Instala los paquetes
`gt-vue` habilita las traducciones en tu aplicación. [`gt`](/docs/cli/quickstart) extrae el contenido de origen y genera catálogos de traducción.
```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. Crea un archivo de configuración de traducción
Crea `gt.config.json` en la raíz de tu proyecto. Configura el idioma en el que está escrito el contenido fuente, las configuraciones regionales a las que se traducirá y la ruta de salida de los catálogos generados.
```json title="gt.config.json"
{
"defaultLocale": "en",
"locales": ["es", "fr", "ja"],
"files": {
"gt": {
"output": "src/_gt/[locale].json"
}
}
}
```
* `defaultLocale` es el idioma de tu contenido de origen.
* `locales` enumera los idiomas de destino. Elige cualquier configuración regional de la [lista de configuraciones regionales compatibles](/docs/platform/dashboard/reference/supported-locales).
* `files.gt.output` indica a la CLI dónde guardar cada catálogo. Mantén el marcador de posición `[locale]` en la ruta.
### 3. Crea un cargador de traducciones
Crea un cargador que devuelva el catálogo generado para la configuración regional solicitada:
```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;
```
El loader no se invoca para la configuración regional predeterminada porque el contenido de origen ya es su catálogo. Devolver un objeto vacío permite que la aplicación renderice el contenido de origen cuando no hay disponible un catálogo de destino.
### 4. Registra el plugin
Crea un plugin con [`createGT()`](/docs/vue/reference/functions/create-gt) e instálalo antes de montar tu aplicación:
```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');
```
El plugin usa la cookie de configuración regional guardada si existe; de lo contrario, comienza con `defaultLocale`. Se monta de inmediato con el contenido de origen y luego se actualiza de forma reactiva cuando termina de cargarse el catálogo solicitado.
### 5. Marcar contenido para traducir
Usa [``](/docs/vue/reference/components/t) para contenido enriquecido en plantillas y [`useGT()`](/docs/vue/reference/composables/use-gt) para cadenas independientes, como los atributos de entrada:
```vue title="src/App.vue"
Welcome to my app
This content will be translated automatically.
```
Mantén estático el contenido dentro de [``](/docs/vue/reference/components/t). Usa [componentes de variables y ramificación](/docs/vue/guides/formatting-variables) para valores en tiempo de ejecución y alternativas condicionales.
### 6. Agrega un selector de idioma
Obtén la configuración regional actual con [`useLocale()`](/docs/vue/reference/composables/use-locale) y cámbiala con [`useSetLocale()`](/docs/vue/reference/composables/use-set-locale):
```vue title="src/App.vue"
Welcome to my app
This content will be translated automatically.
```
[`useSetLocale()`](/docs/vue/reference/composables/use-set-locale) carga un catálogo que falta antes de guardar la cookie de configuración regional y volver a renderizar los consumidores reactivos. Con el loader anterior, si falta un archivo, se devuelve un catálogo vacío, se cambia la configuración regional y se renderiza el contenido de origen. Si, en cambio, un loader genera un rechazo, la configuración regional actual permanece activa.
### 7. Autentícate y traduce
Autentícate en General Translation:
```bash
npx gt auth
```
El comando te guiará para iniciar sesión y crear credenciales. Guarda la clave de API de producción generada en tu archivo de entorno local, fuera del código del navegador y del control de versiones.
A continuación, genera los catálogos de traducción:
```bash
npx gt translate
```
La CLI analiza tu código fuente de Vue, traduce el contenido extraído y genera un archivo JSON por cada configuración regional de destino en `src/_gt/`. Vuelve a ejecutar el comando cada vez que cambie el contenido de origen.
## Solución de problemas [#troubleshooting]
La configuración regional activa se almacena en la cookie `generaltranslation.locale`. Elimina cualquier cookie obsoleta y vuelve a seleccionar la configuración regional de destino. Confirma también que el archivo JSON correspondiente exista en `src/_gt/` y que el loader devuelva su exportación predeterminada.
Llama a la función que devuelve [`useGT()`](/docs/vue/reference/composables/use-gt) desde el template o desde un valor calculado de Vue. Una cadena traducida una vez durante la configuración es una instantánea y no se vuelve a ejecutar cuando cambia el estado reactivo de la configuración regional.
## Next steps
- /docs/vue/guides/translating-content
- /docs/vue/guides/translating-strings
- /docs/vue/guides/managing-locales
- /docs/vue/guides/storing-translations