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 traductionuseTranslations 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
| Prop | Description |
|---|---|
id | Un 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| Nom | Type | Description |
|---|---|---|
id | string | L’id de l’Entry à traduire |
options? | DictionaryTranslationOptions | Options de traduction pour personnaliser le comportement de d. |
Exemples
Utilisation de base du dictionary
Chaque Entry de votre dictionary est traduite.
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.
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}.
const dictionary = {
greeting: "Bonjour {userName} !",
};
export default dictionary;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.
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 » :
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
useTranslationsvous permet d’accéder aux traductions du dictionary. - Le hook
useTranslationsne peut être utilisé qu’à l’intérieur d’un composant englobé par un composant<GTProvider>.
Étapes suivantes
Comment trouvez-vous ce guide ?