Dictionary Translations

useTranslations

Referencia de API del hook useTranslations

Descripción general

useTranslations se usa para acceder a traducciones de cadenas desde el diccionario de traducción.

Debe utilizarse dentro de un componente envuelto por un <GTProvider>.

const d = useTranslations(); // Obtiene la función de traducción
d('greeting.hello'); // pasa el id para obtener una traducción

Para componentes asíncronos, consulta getTranslations.

getTranslations y useTranslations utilizan un diccionario para almacenar todo el contenido que se va a traducir. Esto es diferente de usar el componente <T> para traducir. Si solo te interesa usar componentes <T> para traducir, este documento no es relevante.

Referencia

Parámetros

Prop

Type

Descripción

PropDescripción
idPrefijo opcional que se antepone a todas las claves de traducción. Es útil para trabajar con valores de diccionario anidados.

Devuelve

Una función de traducción d que, dado un id, devuelve la versión traducida de la entrada correspondiente

(id: string, options?: DictionaryTranslationOptions) => React.ReactNode
NombreTipoDescripción
idstringEl id de la Entry que se va a traducir
options?DictionaryTranslationOptionsoptions de traducción para personalizar el comportamiento de d.

Ejemplos

Uso básico del diccionario

Cada Entry de tu diccionario se translate.

dictionary.jsx
const diccionario = {
  greeting: "Hola, Bob", 
};
export default diccionario;

Cuando queremos acceder a estas entradas (en el cliente), llamamos a useTranslations. Esto devuelve una función que recibe la clave de una traducción del diccionario.

TranslateGreeting.jsx
import { useTranslations } from 'gt-next';

export default async function TranslateGreeting() {
  const d = useTranslations(); 
  return (
    <p>
      {d('greeting')} // Hola, Alice // [!code highlight]
    </p>
  );
}

Uso de variables

Para pasar value, debes (1) asignar un identificador y (2) hacer referencia al identificador al llamar a la función d.

En este ejemplo, usamos {} para pasar variables a las traducciones. En el diccionario, asignamos el identificador {userName}.

dictionary.jsx
const dictionary = {
  greeting: "¡Hola, {userName}!", 
};
export default dictionary;
src/server/TranslateGreeting.jsx
import { useTranslations } from 'gt-next';

export default async function TranslateGreeting() {
  const d = useTranslations();
  
  // ¡Hola, Alice!
  const greetingAlice = d('greeting', { userName: "Alice" }); 

  return (
    <p>
      {greetingAlice}
    </p>
  );
}

Uso de prefijos

Podemos usar prefijos para traducir únicamente un subconjunto del diccionario.

dictionary.jsx
const dictionary = {
  prefix1: { 
    prefix2: { 
      greeting: "Hola, Bob",
    }
  }
};
export default dictionary;

Como agregamos el value 'prefix1.prefix2' al hook useTranslations, todas las claves se prefijan con prefix1.prefix2:

UserDetails.jsx
import { useTranslations } from 'gt-next';

export default function UserDetails() {
  const d = useTranslations('prefix1.prefix2'); 
  return (
    <div>
      <p>{d('greeting')}</p> // greeting => prefix1.prefix2.greeting // [!code highlight]
    </div>
  );
}

Notas

  • La función useTranslations te permite acceder a las traducciones del diccionario en el cliente.
  • El hook useTranslations solo puede utilizarse dentro de un componente envuelto por un componente <GTProvider>.

Próximos pasos

¿Qué te parece esta guía?