Dictionary

useDict()

Référence API pour le hook useDict

Aperçu

useDict() est utilisé pour accéder aux traductions de chaînes à partir du dictionnaire de traduction. Il doit être utilisé dans un composant enveloppé par un <GTProvider>.

const d = useDict(); // Obtenez la fonction de traduction
d('greeting.hello'); // passez l'id pour obtenir une traduction

useDict() utilise un dictionnaire pour stocker tout le contenu à traduire. Cela est différent de l'utilisation du composant <T> pour la traduction. Si vous êtes intéressé uniquement par l'utilisation des composants <T> pour la traduction, alors ce document n'est pas pertinent.

Référence

Paramètres

PropTypeDefault
id??
string
undefined

Description

PropDescription
idUn préfixe optionnel à ajouter à toutes les clés de traduction. Ceci est utile pour travailler avec des valeurs de dictionnaire imbriquées.

Retours

Une fonction de traduction d() qui, étant donné un id, retournera la version traduite de l'entrée correspondante

(id: string, options?: DictionaryTranslationOptions) => React.ReactNode
NomTypeDescription
idstringL'id de l'entrée à traduire
options?DictionaryTranslationOptionsOptions de traduction pour personnaliser le comportement de d().

Exemples

Usages de base

Chaque entrée dans votre dictionnaire est traduite.

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

Lorsque nous voulons accéder à ces entrées, nous appelons useDict(). Cela renvoie une fonction qui accepte la clé d'une traduction du dictionnaire.

Vous devez passer le dictionnaire au composant GTProvider.

TranslateGreeting.jsx
import { useDict } from 'gt-react';
import dictionary from "./dictionary.json"
 
export default async function TranslateGreeting() {
  const d = useDict(); 
  return (
    <GTProvider dictionary={dictionary}>
      <p>
        {d('greeting')} // [!code highlight]
      </p>
    </GTProvider>
  );
}

Utilisation des variables

Afin de passer des valeurs, vous devez (1) attribuer un identifiant et (2) référencer l'identifiant lors de l'appel de la fonction d().

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

dictionary.jsx
const dictionary = {
  greeting: "Hello, {userName}!", 
};
export default dictionary;
TranslateGreeting.jsx
import { useDict } from 'gt-react';
 
export default async function TranslateGreeting() {
  const d = useDict();
  
  // Hello Alice!
  const greetingAlice = d('greeting', { userName: "Alice" }); 
 
  return (
    <p>
      {greetingAlice} // Hello, Alice // [!code highlight]
    </p>
  );
}

Utilisation des préfixes

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

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

Parce que nous avons ajouté la valeur 'prefix1.prefix2' au hook useDict, toutes les clés sont préfixées par prefix1.prefix2 :

UserDetails.jsx
import { useDict } from 'gt-react';
 
export default function UserDetails() {
  const d = useDict('prefix1.prefix2'); 
  return (
    <div>
      <p>{d('greeting')}</p> // greeting => prefix1.prefix2.greeting // [!code highlight]
    </div>
  );
}

Notes

  • La fonction useDict() vous permet d'accéder aux traductions du dictionnaire.
  • Le hook useDict() ne peut être utilisé qu'à l'intérieur d'un composant enveloppé par un composant <GTProvider>.

Prochaines étapes

Sur cette page