Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
En intégrant le serveur MCP Intlayer à votre assistant AI, vous pouvez récupérer tous les documents directement depuis ChatGPT, DeepSeek, Cursor, VSCode, etc.
Voir la documentation du serveur MCPLe contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi 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 documentationCopier le Markdown du doc dans le presse-papiers
Tester votre contenu
Ce guide montre comment vérifier automatiquement que vos dictionnaires sont complets, détecter les traductions manquantes avant la mise en production, et tester l’interface localisée dans votre application.
Ce que vous pouvez tester
- Traductions manquantes : échouer le CI si des locales requises manquent dans un dictionnaire.
- Rendu de l’interface localisée : afficher des composants avec un fournisseur de locale spécifique et vérifier le texte/attributs visibles.
- Audits au moment de la compilation : exécuter un audit rapide localement via la CLI.
Démarrage rapide : audit via CLI
Lancez l’audit depuis la racine de votre projet :
Copier le code dans le presse-papiers
npx intlayer content test
Options utiles :
- --env-file [path] : charger les variables d’environnement depuis un fichier.
- -e, --env [name] : sélectionner un profil d’environnement.
- --base-dir [path] : définir le répertoire de base de l’application pour la résolution.
- --verbose : afficher les logs détaillés.
- --prefix [label] : préfixer les lignes de log.
Note : la CLI affiche un rapport détaillé mais ne retourne pas un code d’erreur en cas d’échec. Pour un contrôle en CI, ajoutez un test unitaire (ci-dessous) qui vérifie qu’aucune locale requise n’est manquante.
Test programmatique (Vitest/Jest)
Utilisez l’API CLI d’Intlayer pour vérifier qu’il n’y a pas de traductions manquantes pour vos locales requises.
Copier le code dans le presse-papiers
/* @vitest-environment node */import { listMissingTranslations } from "intlayer/cli";import { describe, expect, it } from "vitest";describe("traductions", () => { it("n’a pas de locales requises manquantes", () => { const result = listMissingTranslations(); if (result.missingRequiredLocales.length > 0) { // Utile lorsque le test échoue localement ou en CI console.log(result.missingTranslations); } expect(result.missingRequiredLocales).toHaveLength(0); });});
Équivalent Jest :
Copier le code dans le presse-papiers
import { listMissingTranslations } from "intlayer/cli";test("n’a pas de locales requises manquantes", () => { const result = listMissingTranslations(); if (result.missingRequiredLocales.length > 0) { // eslint-disable-next-line no-console console.log(result.missingTranslations); } expect(result.missingRequiredLocales).toHaveLength(0);});
Comment ça fonctionne :
- Intlayer lit votre configuration (locales, requiredLocales) et les dictionnaires déclarés, puis rapporte :
- missingTranslations : pour chaque clé, quelles locales sont manquantes et dans quel fichier.
- missingLocales : l’union de toutes les locales manquantes.
- missingRequiredLocales : sous-ensemble limité aux requiredLocales (ou toutes les locales si requiredLocales n’est pas défini).
Tester une interface localisée (React / Next.js)
Rendez les composants sous un fournisseur Intlayer et vérifiez le contenu visible.
Exemple React (Testing Library) :
Copier le code dans le presse-papiers
import { IntlayerProvider } from "react-intlayer/client";import { render, screen } from "@testing-library/react";import { MyComponent } from "./MyComponent";test("renders localized title in English", () => { render( <IntlayerProvider locale="en-US"> <MyComponent /> </IntlayerProvider> ); expect(screen.getByText("Titre anglais attendu")).toBeInTheDocument();});
Exemple Next.js (App Router) : utilisez le wrapper du framework :
Copier le code dans le presse-papiers
import { IntlayerClientProvider } from "next-intlayer/client";import { render, screen } from "@testing-library/react";import { MyPage } from "./MyPage";test("affiche le titre localisé en français", () => { render( <IntlayerClientProvider locale="fr-FR"> <MyPage /> </IntlayerClientProvider> ); expect( screen.getByRole("heading", { name: "Titre attendu" }) ).toBeInTheDocument();});
Conseils :
- Lorsque vous avez besoin des valeurs brutes des chaînes pour des attributs (par exemple, aria-label), accédez au champ .value retourné par useIntlayer dans React.
- Gardez les dictionnaires proches des composants pour faciliter les tests unitaires et le nettoyage.
Intégration Continue
Ajoutez un test qui fait échouer la compilation lorsque des traductions requises sont manquantes.
package.json :
Copier le code dans le presse-papiers
{ "scripts": { "test:i18n": "vitest run -c" }}
Exemple GitHub Actions :
Copier le code dans le presse-papiers
name: CIon: [push, pull_request]jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci - run: npm run test:i18n
Optionnel : lancez l'audit CLI pour un résumé lisible par un humain en parallèle des tests :
Copier le code dans le presse-papiers
npx intlayer content test --verbose
Dépannage
- Assurez-vous que votre configuration Intlayer définit locales et (optionnellement) requiredLocales.
- Si votre application utilise des dictionnaires dynamiques ou distants, exécutez les tests dans un environnement où les dictionnaires sont disponibles.
- Pour les monorepos mixtes, utilisez --base-dir pour indiquer au CLI la racine correcte de l'application.
Historique du document
Version | Date | Modifications |
---|---|---|
6.0.0 | 2025-09-20 | Introduction des tests |