SmarMaker - Documentation
Docs» front» front:traductions

**Ceci est une ancienne révision du document !**

Traductions

Documentation react-i18next
Documenation Intl

Vous souhaitez développer une application traduites en plusieures langues. Aucun problème, react-i18next met à dispoistion un système qui gére des fichiers de traduction. Il permet de traduire directement du texte dans vos composants et de gérer dans des cas plus complexes des formats (date, nombre, …).

Nous vous invitons à consulter également l'objet natif Intl de JavaScript pour gérer tout type de formats.

Stocker un fichier de traduction

Les fichiers de traductions sont des fichiers JSON. Il y a deux moyens de les stocker selon la façon des les charger:

  • Dans le dossier public, ils sont chargés dynamiquement et peuvent être modifiés sans rebuild.
  • Dans le dossier src, ils sont chargés statiquement.

Nous ne traiterons ici la méthode “dynamique”. Pour la méthode “statique”, veuillez référer à la documentation de l'astuce Fichiers de traductions statiques.

Faire un fichier de traduction

Encore une fois, il y a deux méthodes pour organiser ses fichiers de traductions:

  • un fichier par locale (en.json, fr.json, …).
  • un dossier par locale (en, fr, …) contenant des fichiers “namespace” (login-page.json, home-page.json, …)

Nous ne traiterons ici la première méthode. Pour la seconde, veuillez vous référer la documentation de l'astuce Faire des fichiers de traductions “namespace”.

Comme nous avons un fichier par langue qui doit potentiellement gérer plusieures pages, plusieurs composants, il s'agirait de bien s'organiser. Essayons avec notre page Login.

// public/locales/en.json

{
    "loginPage": {
        "emailInput": {
            "label": "Email address",
            "placeholder": "Write your email address here ..."
        },
        "passwordInput": {
            "label": "Password",
            "placeholder": "●●●●●●●●" 
        },
        "button": "Login"
    }
}
// public/locales/fr.json

{
    "loginPage": {
        "emailInput": {
            "label": "Adresse mail",
            "placeholder": "Tapez votre adresse mail ici..."
        },
        "passwordInput": {
            "label": "Mot de passe",
            "placeholder": "●●●●●●●●" 
        },
        "button": "Connexion"
    }
}
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import HttpBackend from "i18next-http-backend";

// import en from "./languages/en.json";
// import fr from "./languages/fr.json";

// const resources = {
//   en,
//   fr,
// };

i18n
  .use(HttpBackend)
  .use(initReactI18next)
  .init({
    // resources,
    ns: ["LoginPage", "homePage", "error404Page"],
    interpolation: {
      escapeValue: false, // react already safes from xss
    },
    backend: {
      loadPath: "/locales/{{lng}}/{{ns}}.json",
    },
  });

export { i18n, resources };
Previous Next

SmarMaker - Documentation
Traductions de cette page:
  • Français
  • Deutsch
  • English
  • Español
  • Italiano
  • Nederlands

Table of Contents

Table des matières

  • Traductions
      • Stocker un fichier de traduction
      • Faire un fichier de traduction


  • SmartMaker
    • SmartAuth
    • Back (PHP)
    • Front (React)
      • Architecture
      • Composants et pages
      • Routage
      • Requêtes Api
      • Stockage de données
      • Traductions
      • Thèmes
      • PWA
      • Astuces
    • SmartCommon
    • HowTo first app
  • Formations
  • Démonstration
  • Afficher le texte source
  • Anciennes révisions
  • Liens de retour
  • Haut de page
  • S'identifier
front/traductions.1759162501.txt.gz · Dernière modification : 2025/09/29 16:15 de paolo