Dictionary Translations

useTranslations

Référence de l’API du hook useTranslations

Aperçu

useTranslations permet d’accéder aux traductions de chaînes depuis le dictionary de traduction.

Il doit être utilisé dans un composant enveloppé par un <GTProvider>.

const d = useTranslations(); // Récupérer la fonction de traduction
d('greeting.hello'); // Passer l’id pour obtenir la traduction

Pour les composants asynchrones, consultez getTranslations.

getTranslations et useTranslations utilisent un dictionary pour stocker l’ensemble du contenu à traduire. Cela diffère de l’utilisation du composant <T> pour la traduction. Si vous envisagez d’utiliser uniquement des composants <T> pour la traduction, ce document ne vous concerne pas.

Références

Paramètres

Prop

Type

Description

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

Renvoie

Une fonction de traduction d qui, étant donné un id, renvoie la version traduite de l’Entry correspondante

(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 Bob", 
};
export default dictionary;

Lorsque nous voulons accéder à ces entrées (côté client), nous appelons useTranslations. Cela renvoie une fonction qui prend la clé d’une traduction dans le dictionary.

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

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

Utilisation des variables

Pour transmettre des valeurs, vous devez (1) attribuer un identifiant et (2) faire référence à 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;
src/server/TranslateGreeting.jsx
import { useTranslations } from 'gt-next';

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

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

Utiliser des préfixes

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

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

Comme nous avons ajouté la valeur 'prefix1.prefix2' au hook useTranslations, toutes les clés sont préfixées par 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>
  );
}

Notes

  • La fonction useTranslations permet d’accéder aux traductions du dictionary côté client.
  • Le hook useTranslations ne peut être utilisé que dans un composant enveloppé par un composant <GTProvider>.

Prochaines étapes

Que pensez-vous de ce guide ?

useTranslations