# Vue: useGT
URL: https://generaltranslation.com/es/docs/vue/reference/composables/use-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Obtén una función para traducir cadenas inline. Referencia de la API de useGT.

El composable `useGT` devuelve una función síncrona de consulta del catálogo que devuelve cadenas de texto sin formato. Úsalo para etiquetas, marcadores de posición y otras cadenas independientes dentro de un componente de Vue.

## Descripción general [#overview]

Llama a `useGT` durante la configuración del componente y luego a la función que devuelve desde la plantilla u otro efecto reactivo:

```vue
<script setup lang="ts">
import { useGT } from 'gt-vue';

const gt = useGT();
</script>

<template>
  <input :placeholder="gt('Search products')" />
</template>
```

Usa [`<T>`](/docs/vue/reference/components/t) cuando el texto y el marcado anidado deban formar una única traducción enriquecida. Usa [`t()`](/docs/vue/reference/functions/t) para cadenas de nivel de módulo en una SPA que se ejecuta exclusivamente en el navegador.

## Cómo funciona [#how-it-works]

* **Búsqueda síncrona.** La función devuelta calcula el hash de la cadena de origen y el contexto opcional, y después lee el catálogo cargado del plugin activo.
* **Alternativa de la fuente.** Si falta una entrada o si su estructura de catálogo es incorrecta, se devuelve la cadena original.
* **Solo cadenas simples.** Las llaves se interpretan literalmente. La función no admite sintaxis ICU, variables de interpolación, `$id`, `$maxChars` ni `$format`.
* **Ámbito del plugin.** Llama al composable desde un componente incluido en el plugin devuelto por [`createGT()`](/docs/vue/reference/functions/create-gt) o [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa). Si se llama sin un plugin instalado, se genera un error. Un plugin [`createGT()`](/docs/vue/reference/functions/create-gt) con ámbito de solicitud también admite componentes renderizados en el servidor.

El extractor requiere una cadena analizable estáticamente, como un literal de cadena, un literal de plantilla sin expresiones o un identificador inmutable que se resuelva en uno de ellos. El contexto también debe ser estático para que el catálogo generado y el hash en tiempo de ejecución coincidan.

## Parámetros [#parameters]

`useGT` no acepta parámetros.

## Devuelve [#returns]

**Tipo** `(message: string, options?: GTStringOptions) => string`

Función síncrona con los siguientes parámetros:

| Parámetro             | Descripción                                             | Tipo                                                             | Opcional | Predeterminado |
| --------------------- | ------------------------------------------------------- | ---------------------------------------------------------------- | -------- | -------------- |
| [`message`](#message) | Cadena de origen estática que se va a traducir.         | `string`                                                         | No       | —              |
| [`options`](#options) | Contexto utilizado para desambiguar el texto de origen. | [`GTStringOptions`](/docs/vue/reference/types/gt-string-options) | Sí       | `{}`           |

### `message`

**Tipo** `string` · **Obligatorio**

La cadena de origen estática registrada por el extractor y consultada en tiempo de ejecución.

### `options`

**Tipo** [`GTStringOptions`](/docs/vue/reference/types/gt-string-options) · **Opcional** · **Predeterminado** `{}`

El único campo admitido es `$context?: string`. Modifica la identidad del catálogo para que cadenas de origen idénticas puedan tener traducciones diferentes.

```vue
<button>{{ gt('Open', { $context: 'Verb: open the settings panel' }) }}</button>
```

## Reactividad [#reactivity]

La función devuelta lee el estado reactivo del catálogo y de la configuración regional al invocarla. Una expresión de plantilla se vuelve a ejecutar automáticamente:

```vue
<p>{{ gt('Hello World') }}</p>
```

Para un valor creado en setup, encapsula la llamada en `computed`:

```ts
import { computed } from 'vue';

const gt = useGT();
const message = computed(() => gt('Hello World'));
```

Al llamarla una vez, se crea una instantánea de cadena simple:

```ts
const gt = useGT();
const message = gt('Hello World');
```

Con un plugin [`createGT()`](/docs/vue/reference/functions/create-gt), ese snapshot no se actualiza cuando termina de cargarse el catálogo inicial o cambia la configuración regional. Una SPA en el navegador inicializada con [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa) realiza la precarga antes de que se ejecuten los componentes y recarga la página al cambiar la configuración regional, por lo que los snapshots creados durante la configuración se recrean con la configuración regional cargada.

## Ejemplo [#example]

```vue title="SearchForm.vue"
<script setup lang="ts">
import { computed } from 'vue';
import { useGT } from 'gt-vue';

const gt = useGT();
const emptyMessage = computed(() =>
  gt('No results', { $context: 'Empty search results' })
);
</script>

<template>
  <form>
    <input :placeholder="gt('Search products')" />
    <p>{{ emptyMessage }}</p>
  </form>
</template>
```

## Sitemap

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