Dictionary Translations

getTranslations

Référence de l’API pour la fonction de traduction getTranslations côté serveur

Présentation

getTranslations permet de récupérer des chaînes traduites depuis le dictionary de traduction pour les composants côté serveur.

const d = await getTranslations(); // Récupère la fonction de traduction
d('greeting.hello'); // passe l'id pour obtenir une traduction

getTranslations prend en charge :

  • La traduction de contenu texte et JSX.
    • L’insertion de variables et la logique conditionnelle dans les traductions.
    • Le préfixage facultatif des id.

Pour les traductions côté client, voir useTranslations.

getTranslations et useTranslations utilisent un dictionary pour stocker tout le contenu à traduire. Cela diffère de l’utilisation du composant <T> pour la traduction. Si vous souhaitez uniquement utiliser des composants <T> pour la traduction, ce document n’est pas pertinent.

Références

Props

Prop

Type

Description

PropDescription
idUn préfixe facultatif à préfixer à toutes les clés de traduction. Utile pour travailler avec des valeurs de dictionary imbriquées.

Renvoie

Une promesse renvoyant une fonction de traduction d qui, pour un id donné, retourne la version traduite de l’Entry correspondante

Promise<(id: string, options?: DictionaryTranslationOptions) => React.ReactNode>
NomTypeDescription
idstringL’id de l’Entry à traduire
options?DictionaryTranslationOptionsOptions de traduction pour personnaliser le comportement de d.

Exemples

Utilisation de base du dictionary

Chaque Entry de votre dictionary est traduite.

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

Lorsque nous voulons accéder à ces entrées (côté serveur), nous appelons getTranslations. Celle-ci renvoie une fonction qui prend la clé d’une traduction issue du dictionary.

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

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

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

Utilisation de variables

Pour transmettre des valeurs, vous devez (1) attribuer un identifiant et (2) référencer cet identifiant lors de l’appel de la fonction d.

Dans cet exemple, nous utilisons {} pour passer des variables aux traductions. Dans le dictionary, nous attribuons l’identifiant {userName}.

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

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

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

Utiliser des préfixes

Nous pouvons utiliser des préfixes pour ne récupérer qu’un sous-ensemble du dictionary.

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

Comme nous avons ajouté la value 'prefix1.prefix2' à la méthode getTranslations, toutes les clés sont préfixées par 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>
  );
}

Notes

  • La fonction getTranslations vous permet d’accéder aux traductions du dictionary côté serveur.

Prochaines étapes

  • Consultez useTranslations pour l’équivalent côté client de getTranslations.

Comment trouvez-vous ce guide ?