Dictionary Translations

getTranslations

Referencia de API de la función de traducción getTranslations del lado del servidor

Descripción general

getTranslations se usa para obtener traducciones de cadenas del diccionario de traducción en componentes server-side.

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

getTranslations admite:

  • Traducción de contenido de cadenas y JSX.
    • Inserción de variables y lógica condicional dentro de las traducciones.
    • Prefijado opcional de id.

Para traducciones del lado del cliente, consulta useTranslations.

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

Referencias

Props

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 promesa de una función de traducción d que, dado un id, devolverá la versión traducida de la entrada correspondiente

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

Ejemplos

Uso básico del diccionario

Cada Entry en tu diccionario se translate.

dictionary.jsx
const dictionary = {
  greeting: <>¡Hola, Alice!</>, 
};
export default dictionary;

Cuando queremos acceder a estas entradas (en el lado del servidor), llamamos a getTranslations. Esto devuelve una función que acepta la clave de una traducción del diccionario.

TranslateGreeting.jsx
import { getTranslations } from 'gt-next/server';

export default async function TranslateGreeting() {
  
  const d = await getTranslations(); 

  return (
    <p>
      {d('greeting')} // Hola, Alice // [!code highlight]
    </p>
  );
}

Uso de variables

Para pasar valores, debes (1) asignar un identificador y (2) hacer referencia a ese 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;
TranslateGreeting.jsx
import { getTranslations } from 'gt-next/server';

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

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

Uso de prefijos

Podemos utilizar prefijos para obtener solo un subconjunto del diccionario.

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

Como agregamos el value 'prefix1.prefix2' al método getTranslations, todas las claves quedan con el prefijo prefix1.prefix2:

UserDetails.jsx
import { getTranslations } from 'gt-next/server';

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

Notas

  • La función getTranslations te permite acceder a las traducciones del diccionario en el lado del servidor.

Próximos pasos

  • Consulta useTranslations para la versión del lado del cliente de getTranslations.

¿Qué te parece esta guía?