next-intlayer : Paquet NPM pour internationaliser (i18n) une application Next.js
Intlayer est une suite de paquets conçue spécifiquement pour les développeurs JavaScript. Elle est compatible avec des frameworks comme React, Next.js et Express.js.
Le paquet next-intlayer vous permet d'internationaliser votre application Next.js. Il fournit des fournisseurs de contexte et des hooks pour l'internationalisation de Next.js. De plus, il inclut le plugin Next.js pour intégrer Intlayer avec Webpack ou Turbopack, ainsi qu'un middleware pour détecter la langue préférée de l'utilisateur, gérer les cookies et gérer la redirection des URL.
Pourquoi internationaliser votre application Next.js ?
Internationaliser votre application Next.js est essentiel pour servir efficacement un public mondial. Cela permet à votre application de fournir du contenu et des messages dans la langue préférée de chaque utilisateur. Cette capacité améliore l'expérience utilisateur et élargit la portée de votre application en la rendant plus accessible et pertinente pour des personnes de différents horizons linguistiques.
Pourquoi intégrer Intlayer ?
- Gestion de contenu propulsée par JavaScript : Exploitez la flexibilité de JavaScript pour définir et gérer efficacement votre contenu.
- Environnement sûr pour les types : Utilisez TypeScript pour garantir que toutes vos définitions de contenu sont précises et sans erreur.
- Fichiers de contenu intégrés : Gardez vos traductions proches de leurs composants respectifs, améliorant ainsi la maintenabilité et la clarté.
Installation
Installez le paquet nécessaire en utilisant votre gestionnaire de paquets préféré :
npm install next-intlayer
Exemple d'utilisation
Avec Intlayer, vous pouvez déclarer votre contenu de manière structurée n'importe où dans votre base de code.
Par défaut, Intlayer recherche les fichiers avec l'extension .content.{ts,tsx,js,jsx,mjs,cjs}.
Vous pouvez modifier l'extension par défaut en définissant la propriété contentDir dans le fichier de configuration.
.├── intlayer.config.ts└── src └── components ├── ClientComponent │ ├── index.content.ts │ └── index.tsx └── ServerComponent ├── index.content.ts └── index.tsx
Déclarez votre contenu
next-intlayer est conçu pour fonctionner avec le paquet intlayer. intlayer est un paquet qui vous permet de déclarer votre contenu n'importe où dans votre code. Il convertit les déclarations de contenu multilingues en dictionnaires structurés qui s'intègrent parfaitement dans votre application.
Voici un exemple de déclaration de contenu :
import { t, type Dictionary } from "intlayer";// Déclaration de contenu pour le composant clientconst clientComponentContent = { key: "client-component", content: { myTranslatedContent: t({ en: "Hello World", fr: "Bonjour le monde", es: "Hola Mundo", }), numberOfCar: enu({ "<-1": "Moins d'une voiture", "-1": "Moins une voiture", "0": "Aucune voiture", "1": "Une voiture", ">5": "Quelques voitures", ">19": "Beaucoup de voitures", }), },} satisfies Dictionary;export default clientComponentContent;
Utilisez le contenu dans votre code
Une fois que vous avez déclaré votre contenu, vous pouvez l'utiliser dans votre code. Voici un exemple d'utilisation du contenu dans un composant React :
"use client";import type { FC } from "react";import { useIntlayer } from "next-intlayer";export const ClientComponentExample: FC = () => { const { myTranslatedContent } = useIntlayer("client-component"); // Créez une déclaration de contenu associée return ( <div> <p>{myTranslatedContent}</p> </div> );};
Maîtriser l'internationalisation de votre application Next.js
Intlayer offre de nombreuses fonctionnalités pour vous aider à internationaliser votre application Next.js. Voici quelques-unes des principales fonctionnalités :
- Internationalisation des composants serveur : Intlayer vous permet d'internationaliser vos composants serveur de la même manière que vos composants client. Cela signifie que vous pouvez utiliser les mêmes déclarations de contenu pour les composants client et serveur.
- Middleware pour la détection de la langue : Intlayer fournit un middleware pour détecter la langue préférée de l'utilisateur. Ce middleware est utilisé pour détecter la langue préférée de l'utilisateur et les rediriger vers l'URL appropriée comme spécifié dans la configuration.
- Internationalisation des métadonnées : Intlayer fournit un moyen d'internationaliser vos métadonnées, comme le titre de votre page, en utilisant la fonction generateMetadata fournie par Next.js. Vous pouvez utiliser la fonction getTranslation pour traduire vos métadonnées.
- Internationalisation des fichiers sitemap.xml et robots.txt : Intlayer vous permet d'internationaliser vos fichiers sitemap.xml et robots.txt. Vous pouvez utiliser la fonction getMultilingualUrls pour générer des URL multilingues pour votre sitemap.
- Internationalisation des URL : Intlayer vous permet d'internationaliser vos URL en utilisant la fonction getMultilingualUrls. Cette fonction génère des URL multilingues pour votre sitemap.
Pour en savoir plus sur ces fonctionnalités, consultez le guide Internationalisation (i18n) de Next.js avec Intlayer et le routeur d'application Next.js 15.
Fonctions fournies par le paquet next-intlayer
Le paquet next-intlayer fournit également des fonctions pour vous aider à internationaliser votre application.
Si vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentation