Dictionary Translations

useTranslations

Référence de l’API pour le hook useTranslations

Présentation

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

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

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

useTranslations utilise un dictionary pour stocker tout le 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 sera pas utile.

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 de dictionary imbriquées.

Renvoie

Une fonction de traduction d qui, étant donné un id, retourne 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, nous appelons useTranslations. Cela renvoie une fonction qui prend la clé d’une traduction depuis le dictionary.

Vous devez passer le dictionary au composant GTProvider.

TranslateGreeting.jsx
import { useTranslations } from 'gt-react';
import dictionary from "./dictionary.json"

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

Utiliser des 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 { useTranslations } from 'gt-react';

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

  return (
    <p>
      {greetingAlice} // Bonjour Alice // [!code highlight]
    </p>
  );
}

Utilisation 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 value « prefix1.prefix2 » au hook useTranslations, toutes les clés sont préfixées par « prefix1.prefix2 » :

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

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

Remarques

  • La fonction useTranslations vous permet d’accéder aux traductions du dictionary.
  • Le hook useTranslations ne peut être utilisé qu’à l’intérieur d’un composant englobé par un composant <GTProvider>.

Étapes suivantes

Comment trouvez-vous ce guide ?