Bien démarrer avec Intlayer et React Create App

    Configurer Intlayer dans une application Create React App est simple :

    Étape 1 : Installer les dépendances

    Installez les packages nécessaires en utilisant npm :

    npm install intlayer react-intlayer
    yarn add intlayer react-intlayer
    pnpm add intlayer react-intlayer

    Étape 2 : Configuration de votre projet

    Créez un fichier de configuration pour configurer les langues de votre application :

    // intlayer.config.ts import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Vos autres langues ], defaultLocale: Locales.ENGLISH, }, }; export default config;

    Pour voir tous les paramètres disponibles, consultez la documentation de configuration ici.

    Étape 3 : Intégrer Intlayer dans votre configuration CRA

    Modifiez vos scripts pour utiliser react-intlayer

    "scripts": { "build": "react-intlayer build", "start": "react-intlayer start", "transpile": "intlayer build" },

    Note : les scripts react-intlayer sont basés sur craco. Vous pouvez également implémenter votre propre configuration basée sur le plugin intlayer craco. Voir un exemple ici.

    Étape 4 : Déclarer votre contenu

    Créez et gérez vos dictionnaires de contenu :

    // src/app.content.tsx import { t, type DeclarationContent } from "intlayer"; import { type ReactNode } from "react"; const appContent = { key: "app", content: { getStarted: t<ReactNode>({ // N'oubliez pas d'importer React si vous utilisez un React node dans votre contenu en: ( <> Edit <code>src/App.tsx</code> and save to reload </> ), fr: ( <> Éditez <code>src/App.tsx</code> et enregistrez pour recharger </> ), es: ( <> Edita <code>src/App.tsx</code> y guarda para recargar </> ), }), reactLink: { href: "https://reactjs.org", content: t({ en: "Learn React", fr: "Apprendre React", es: "Aprender React", }), }, }, } satisfies DeclarationContent; export default appContent;

    Voir comment déclarer vos fichiers de déclaration Intlayer.

    Étape 5 : Utiliser Intlayer dans votre code

    Accédez à vos dictionnaires de contenu dans toute votre application :

    import logo from "./logo.svg"; import "./App.css"; import { IntlayerProvider, useIntlayer } from "react-intlayer"; import { LocaleSwitcher } from "./components/LangSwitcherDropDown"; function AppContent() { const content = useIntlayer("app"); return ( <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> {content.getStarted} <a className="App-link" href={content.reactLink.href.value} target="_blank" rel="noopener noreferrer" > {content.reactLink.content} </a> </header> ); } function App() { return ( <IntlayerProvider> <div className="App"> {/* Pour utiliser correctement le hook useIntlayer, vous devez accéder à vos données dans un composant enfant */} <AppContent /> </div> <div className="absolute bottom-5 right-5 z-50"> <LocaleSwitcher /> </div> </IntlayerProvider> ); } export default App;

    Note : Si vous souhaitez utiliser un votre contenu dans un attribut de type string, tel que alt, title, href, aria-label, etc., vous devez appeler la valeur de la fonction, tel que :

    <img src={content.image.src.value} alt={content.image.value} />

    (Optionnel) Étape 6: Changer la langue de votre contenu

    Pour changer la langue de votre contenu, vous pouvez utiliser la fonction setLocale fournie par le useLocale hook. Cette fonction vous permet de définir la langue de l'application et de mettre à jour le contenu en conséquence.

    import { Locales } from "intlayer"; import { useLocale } from "react-intlayer"; const MyComponent = () => { const { setLocale } = useLocale(); return ( <button onClick={() => setLocale(Locales.English)}> Change Language to English </button> ); };

    Configurer TypeScript

    Intlayer utilise l'augmentation de module pour bénéficier de TypeScript et renforcer votre base de code.

    texte alternatif

    texte alternatif

    Assurez-vous que votre configuration TypeScript inclut les types autogénérés.

    // tsconfig.json { // votre configuration personnalisée include: [ "src", "types", // <- Inclure les types autogénérés ], }

    Configuration Git

    Il est recommandé d'ignorer les fichiers générés automatiquement par Intlayer. Cela permet de ne pas les commiter dans le dépôt Git.

    Pour cela, vous pouvez d'ajouter les instructions suivantes dans votre fichier .gitignore :

    # Ignorer les fichiers générés par Intlayer .intlayer

    Dans cette page