Démarrer avec Intlayer vitejs + react

    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 Vite

    Ajoutez le plugin intlayer dans votre configuration.

    import { defineConfig } from "vite"; import react from "@vitejs/plugin-react-swc"; import { intLayerPlugin } from "react-intlayer/vite-plugin"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [react(), intLayerPlugin()], });

    Étape 4 : Déclarez 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: { viteLogo: t({ en: "Vite logo", fr: "Logo Vite", es: "Logo Vite", }), reactLogo: t({ en: "React logo", fr: "Logo React", es: "Logo React", }), title: "Vite + React", count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es ", }), edit: t<ReactNode>({ // No olvides importar React si usas un React node en tu contenido en: ( <> Edit <code>src/App.tsx</code> and save to test HMR </> ), fr: ( <> Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR </> ), es: ( <> Edita <code>src/App.tsx</code> y guarda para probar HMR </> ), }), readTheDocs: t({ en: "Click on the Vite and React logos to learn more", fr: "Cliquez sur les logos Vite et React pour en savoir plus", es: "Haga clic en los logotipos de Vite y React para obtener más información", }), }, } satisfies DeclarationContent; export default appContent;

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

    Étape 5 : Utilisez Intlayer dans votre code

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

    import { useState } from "react"; import reactLogo from "./assets/react.svg"; import viteLogo from "/vite.svg"; import "./App.css"; import { LocaleSwitcher } from "./components/LangSwitcherDropDown"; import { IntlayerProvider, useIntlayer } from "react-intlayer"; function AppContent() { const [count, setCount] = useState(0); const content = useIntlayer("app"); return ( <> <div> <a href="https://vitejs.dev" target="_blank"> <img src={viteLogo} className="logo" alt={content.viteLogo.value} /> </a> <a href="https://react.dev" target="_blank"> <img src={reactLogo} className="logo react" alt={content.reactLogo.value} /> </a> </div> <h1>{content.title}</h1> <div className="card"> <button onClick={() => setCount((count) => count + 1)}> {content.count} {count} </button> <p>{content.edit}</p> </div> <p className="read-the-docs">{content.readTheDocs}</p> <div className="absolute bottom-5 right-5 z-50"> <LocaleSwitcher /> </div> </> ); } function App() { return ( <IntlayerProvider> <AppContent /> </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 tirer parti de TypeScript et renforcer votre code.

    texte alternatif

    texte alternatif

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

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

    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