# Vue: Configuración de gt-vue
URL: https://generaltranslation.com/es/docs/vue/guides/configuring.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Cómo crear un plugin de traducción para Vue, cargar catálogos y configurar el renderizado en el navegador o el servidor.

Crea un plugin para cada aplicación de Vue independiente. El plugin mantiene su configuración regional activa, los catálogos cargados y el estado de traducción reactivo.

Usa [`createGT()`](/docs/vue/reference/functions/create-gt) para aplicaciones de Vue convencionales, incluidas las que cambian de configuración regional sin recargar y las que se renderizan en el servidor. Las SPA que se ejecutan solo en el navegador y necesitan [`t()`](/docs/vue/reference/functions/t) a nivel de módulo usan una ruta de inicio distinta, descrita en [Desarrollo con traducciones para SPA](/docs/vue/guides/developing-spa-translations).

## Crea el plugin [#create]

Pasa la configuración regional de origen y una función de callback [`loadTranslations`](/docs/vue/reference/types/load-translations) a [`createGT()`](/docs/vue/reference/functions/create-gt) y, a continuación, instala el plugin resultante con `app.use()`:

```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');
```

Instala ese plugin una sola vez. Crear otra instancia le asigna una configuración regional y una caché de catálogo independientes.

## Resolver la configuración regional inicial [#initial-locale]

[`createGT()`](/docs/vue/reference/functions/create-gt) resuelve la configuración regional inicial en este orden:

1. Una opción `locale` explícita.
2. El valor en el navegador de la cookie de configuración regional configurada.
3. `defaultLocale`.

Una configuración regional explícita prevalece durante el renderizado en el servidor y la hidratación. En el navegador, reemplaza una cookie desactualizada para que el cliente se inicie con la misma configuración regional que el servidor.

```ts
const gt = createGT({
  defaultLocale: 'en',
  locale: serverLocale,
  localeCookieName: 'my-app.locale',
  loadTranslations,
});
```

El nombre de la cookie predeterminado es `generaltranslation.locale`. Cambia `localeCookieName` solo si el enrutador o el servidor necesitan compartir una cookie diferente.

## Cargar catálogos de traducciones [#load]

La configuración regional predeterminada se procesa directamente a partir del contenido de origen, por lo que nunca se llama a su cargador. Las demás configuraciones regionales se cargan mediante [`loadTranslations`](/docs/vue/reference/types/load-translations):

```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;
```

Los catálogos cargados correctamente se almacenan en caché durante la vida útil del plugin, y las solicitudes simultáneas para la misma configuración regional comparten una única carga. En el cliente, la aplicación puede montarse con el contenido fuente mientras se carga el primer catálogo; los componentes traducidos se vuelven a renderizar cuando este llega.

Devolver un objeto vacío usa el contenido fuente como contenido alternativo. Si el callback devuelve una promesa rechazada, los cambios de configuración regional se rechazan y la configuración regional actual permanece activa.

## Mantén alineadas las configuraciones de la CLI y del entorno de ejecución [#shared-config]

Usa `gt.config.json` como registro compartido de la configuración regional de origen, las configuraciones regionales de destino y la ubicación de los archivos generados:

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "fr"],
  "files": {
    "gt": {
      "output": "src/_gt/[locale].json"
    }
  }
}
```

La CLI lee este archivo directamente. [`createGT()`](/docs/vue/reference/functions/create-gt) acepta sus propias opciones de ejecución, así que pásale explícitamente `defaultLocale` y tu cargador. La lista `locales` sigue siendo útil para el selector de idioma y la CLI, pero un plugin reactivo no rechaza otros códigos de configuración regional; la interfaz de usuario y el cargador determinan qué configuraciones regionales están disponibles.

Las credenciales de la API de producción pertenecen al proceso de la CLI que genera las traducciones. No expongas `GT_API_KEY` en código que se ejecute en el navegador.

## Configura el renderizado en el servidor [#ssr]

Crea un plugin nuevo para cada solicitud para evitar que el estado de la configuración regional y del catálogo se filtre entre usuarios. Resuelve la configuración regional de la solicitud, pásala explícitamente y precarga su catálogo antes de renderizar:

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

export async function createRequestGT(locale: string) {
  const gt = createGT({
    defaultLocale: 'en',
    locale,
    loadTranslations,
  });

  await gt.loadTranslations(locale);
  return gt;
}
```

Instala el plugin devuelto en la aplicación Vue de la solicitud. Antes de hidratar en el navegador, crea y precarga un plugin de cliente con la misma configuración regional explícita. Si se hidrata antes de que el catálogo de destino esté listo, el contenido de origen შეიძლება mostrarse brevemente y provocar una discrepancia.

## Next steps

- /docs/vue/guides/translating-content
- /docs/vue/guides/translating-strings
- /docs/vue/guides/managing-locales
- /docs/vue/guides/storing-translations

## Sitemap

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