0Pricing
React Academy · Leçon

Utiliser le hook useTranslation

Remplacez les chaînes codées en dur par des appels t() et organisez les fichiers JSON de traduction.

Utiliser le hook useTranslation est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Bienvenue

Dans cette leçon, vous utiliserez le crochet useTranslation pour accéder à la fonction t(), traduire les chaînes dans les composants et organiser les fichiers JSON de traduction par espace de noms.

Le crochet useTranslation

Appelez useTranslation() dans un composant pour obtenir la fonction de traduction `t` et l’instance `i18n`. Transmettez le nom de l’espace de noms si vous utilisez des traductions organisées par espace de noms.
import { useTranslation } from 'react-i18next';

function Header() {
  const { t } = useTranslation('common');
  return <h1>{t('app_title')}</h1>;
}

Clés de traduction de base

Créez un fichier JSON pour chaque langue et chaque espace de noms. Les clés sont des chaînes accessibles avec la notation par points. Les clés plates sont simples ; les clés imbriquées utilisent la notation par points.
// public/locales/en/common.json
{
  "app_title": "My App",
  "nav": {
    "home": "Home",
    "about": "About"
  }
}

Clés avec notation par points

Accédez aux clés imbriquées avec la notation par points dans la fonction t() : `t('nav.home')` lit `nav -> home` dans le fichier JSON.
const { t } = useTranslation('common');
return <a href="/">{t('nav.home')}</a>;

Espace de noms par défaut

Configurez un `defaultNS` dans l’initialisation de i18n afin de pouvoir appeler useTranslation() sans argument ; les clés seront alors automatiquement résolues dans l’espace de noms par défaut.
i18n.init({ defaultNS: 'common', ... });

// No namespace argument needed
const { t } = useTranslation();
t('app_title'); // resolves in 'common'

Accéder à plusieurs espaces de noms

Transmettez un tableau à useTranslation pour accéder à plusieurs espaces de noms. Préfixez les clés avec l’espace de noms, suivi de deux-points.
const { t } = useTranslation(['common', 'auth']);

t('common:app_title');
t('auth:login');

Composant Trans pour le contenu JSX

Lorsqu’une chaîne traduite contient du HTML ou des composants React, utilisez le composant Trans. Il prend en charge des espaces réservés associés à des composants React.
import { Trans } from 'react-i18next';

// JSON: "tos": "Read our <1>Terms</1>"
<Trans i18nKey="tos">
  Read our <a href="/terms">Terms</a>
</Trans>

Structure des fichiers de traduction

Organisez les fichiers JSON selon le modèle `public/locales/{lang}/{ns}.json`. Donnez aux clés des noms sémantiques et regroupez-les par fonctionnalité. Évitez les clés trop profondément imbriquées : 2 niveaux suffisent généralement.
public/
  locales/
    en/
      common.json
      auth.json
      dashboard.json
    tr/
      common.json
      auth.json

Changer de langue à l’exécution

Utilisez `i18n.changeLanguage(lng)` pour changer la langue active par programmation. Les composants React qui utilisent useTranslation sont automatiquement réaffichés.
const { i18n } = useTranslation();

<button onClick={() => i18n.changeLanguage('tr')}>Turkish</button>

Détecter la langue active

Lisez `i18n.language` pour obtenir le paramètre régional actuellement actif. Utilisez-le pour afficher un drapeau ou mettre en évidence le bouton de la langue active.
const { i18n } = useTranslation();
return <p>Current lang: {i18n.language}</p>;

Vérification rapide

Comment accéder à la clé de traduction imbriquée « nav.home » dans l’espace de noms « common » ?

Récapitulatif

useTranslation vous fournit la fonction t(). Organisez les clés dans des fichiers JSON par espace de noms. Utilisez la notation par points pour les clés imbriquées. Changez de langue avec i18n.changeLanguage. Utilisez le composant Trans pour les chaînes contenant du JSX.

À suivre

Prochaine leçon : **Pluriels et interpolation** — vous gérerez les formes plurielles selon une quantité et insérerez des valeurs dynamiques dans les chaînes traduites.

Questions Fréquemment Posées

La leçon « Utiliser le hook useTranslation » est-elle gratuite ?

Oui — le texte complet de « Utiliser le hook useTranslation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Utiliser le hook useTranslation » ?

Remplacez les chaînes codées en dur par des appels t() et organisez les fichiers JSON de traduction. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Utiliser le hook useTranslation » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Configurer react-i18next
  2. Utiliser le hook useTranslation
  3. Pluralisation et interpolation
  4. Sélecteur de langue et chargement différé des traductions
← Retour à React Academy