Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Historique initial"v5.5.1029/06/2025
Le 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
Documentation de l'Éditeur Visuel Intlayer
L'Éditeur Visuel Intlayer est un outil qui enveloppe votre site web pour interagir avec vos fichiers de déclaration de contenu à l'aide d'un éditeur visuel.

Le package intlayer-editor est basé sur Intlayer et est disponible pour les applications JavaScript, telles que React (Create React App), Vite + React, et Next.js.
Éditeur visuel vs CMS
L'Éditeur Visuel Intlayer est un outil qui vous permet de gérer votre contenu dans un éditeur visuel pour des dictionnaires locaux. Une fois une modification effectuée, le contenu sera remplacé dans la base de code. Cela signifie que l'application sera reconstruite et que la page sera rechargée pour afficher le nouveau contenu.
En revanche, le CMS Intlayer est un outil qui vous permet de gérer votre contenu dans un éditeur visuel pour des dictionnaires distants. Une fois une modification effectuée, le contenu n'affectera pas votre base de code. Et le site web affichera automatiquement le contenu modifié.
Intégrer Intlayer dans votre application
Pour plus de détails sur l'intégration d'Intlayer, consultez la section correspondante ci-dessous :
Intégration avec Next.js
Pour l'intégration avec Next.js, consultez le guide d'installation.
Intégration avec Create React App
Pour l'intégration avec Create React App, consultez le guide d'installation.
Intégration avec Vite + React
Pour l'intégration avec Vite + React, consultez le guide d'installation.
Comment fonctionne l'Éditeur Intlayer
L'éditeur visuel dans une application comprend deux éléments :
Une application frontend qui affichera votre site web dans une iframe. Si votre site web utilise Intlayer, l'éditeur visuel détectera automatiquement votre contenu et vous permettra d'interagir avec lui. Une fois une modification effectuée, vous pourrez télécharger vos changements.
Une fois que vous avez cliqué sur le bouton de téléchargement, l'éditeur visuel enverra une requête au serveur pour remplacer vos fichiers de déclaration de contenu par le nouveau contenu (où que ces fichiers soient déclarés dans votre projet).
Notez que pour l'instant, l'Éditeur Intlayer écrira vos fichiers de déclaration de contenu sous forme de fichiers JSON.
Installation
Une fois Intlayer configuré dans votre projet, installez simplement intlayer-editor en tant que dépendance de développement :
Copier le code dans le presse-papiers
Avec le flag --with, vous pouvez démarrer l'éditeur en parallèle avec une autre commande :
Copier le code dans le presse-papiers
Configuration
Dans votre fichier de configuration Intlayer, vous pouvez personnaliser les paramètres de l'éditeur :
Copier le code dans le presse-papiers
import type { IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
// ... autres paramètres de configuration
editor: {
/**
* Obligatoire
* L'URL de l'application.
* C'est l'URL ciblée par l'éditeur visuel.
* Exemple : 'http://localhost:3000'
*/
applicationURL: process.env.INTLAYER_APPLICATION_URL,
/**
* Optionnel
* Par défaut à `true`. Si `false`, l'éditeur est inactif et ne peut pas être accessible.
* Peut être utilisé pour désactiver l'éditeur pour des environnements spécifiques pour des raisons de sécurité, comme la production.
*/
enabled: process.env.INTLAYER_ENABLED,
/**
* Optionnel
* Par défaut à `8000`.
* Le port du serveur de l'éditeur.
*/
port: process.env.INTLAYER_PORT,
/**
* Optionnel
* Par défaut à "http://localhost:8000"
* L'URL du serveur de l'éditeur.
*/
editorURL: process.env.INTLAYER_EDITOR_URL,
},
};
export default config;
Pour voir tous les paramètres disponibles, consultez la documentation de configuration.
Utilisation de l'Éditeur
Une fois l'éditeur installé, vous pouvez démarrer l'éditeur en utilisant la commande suivante :
bashCopier le codeCopier le code dans le presse-papiers
Notez que vous devez exécuter votre application en parallèle. L'URL de l'application doit correspondre à celle que vous avez définie dans la configuration de l'éditeur (
applicationURL).Notez que la commande est réexportée par le package
intlayer. Vous pouvez utilisernpx intlayer editor startà la place.Ensuite, ouvrez l'URL fournie. Par défaut
http://localhost:8000.Vous pouvez visualiser chaque champ indexé par Intlayer en survolant votre contenu avec votre curseur.

Si votre contenu est encadré, vous pouvez effectuer un appui long pour afficher le tiroir d'édition.
Configuration de l'environnement
L'éditeur peut être configuré pour utiliser un fichier d'environnement spécifique. Cela est utile lorsque vous souhaitez utiliser le même fichier de configuration pour le développement et la production.
Pour utiliser un fichier d'environnement spécifique, vous pouvez utiliser le flag --env-file ou -f lors du démarrage de l'éditeur :
Copier le code dans le presse-papiers
Notez que le fichier d'environnement doit être situé à la racine de votre projet.
Ou vous pouvez utiliser le flag --env ou -e pour spécifier l'environnement :
Copier le code dans le presse-papiers
Débogage
Si vous rencontrez des problèmes avec l'éditeur visuel, vérifiez les points suivants :
L'éditeur visuel et l'application sont en cours d'exécution.
La configuration de l'éditeur est correctement définie dans votre fichier de configuration Intlayer.
- Champs obligatoires :
- L'URL de l'application doit correspondre à celle que vous avez définie dans la configuration de l'éditeur (
applicationURL).
- L'URL de l'application doit correspondre à celle que vous avez définie dans la configuration de l'éditeur (
- Champs obligatoires :
L'éditeur visuel utilise une iframe pour afficher votre site web. Assurez-vous que la politique de sécurité du contenu (CSP) de votre site web autorise l'URL du CMS en tant que
frame-ancestors(http://localhost:8000par défaut). Vérifiez la console de l'éditeur pour toute erreur.
Questions fréquentes
L'éditeur visuel modifie les dictionnaires locaux et réécrit le changement dans votre base de code, si bien qu'il passe par votre relecture et votre déploiement habituels. Le CMS modifie les dictionnaires distants, qui changent sur le site en cours d'exécution sans déploiement. L'éditeur convient au contenu appartenant aux développeurs ; le CMS convient au contenu appartenant à une équipe marketing.
Bien moins qu'une configuration basée sur des espaces de noms, car une page ne télécharge jamais un catalogue qu'elle n'affiche pas. Le balisage rendu côté serveur résout son contenu sur le serveur, et le compilateur au moment du build remplace les appels useIntlayer par les entrées de dictionnaire exactes qu'un composant utilise, si bien que les clés inutilisées et les langues inutilisées sont éliminées. Les dictionnaires dynamiques répartissent le reste par locale. Mesuré face aux alternatives habituelles, Intlayer réduit la taille du bundle et des pages jusqu'à 50 %. Voir l'optimisation du bundle et le benchmark.
Oui, et il existe deux voies. Vous pouvez migrer le contenu progressivement avec le guide de migration i18next ou le guide de migration next-intl. Ou vous pouvez conserver entièrement votre API actuelle : les adaptateurs de compatibilité exposent exactement la même API que i18next, react-i18next, next-intl, next-i18next, react-intl, use-intl, vue-i18n et Lingui, mais servie par des dictionnaires Intlayer : seuls les imports changent, pas le code des composants.
Oui. Le plugin de synchronisation JSON conserve vos fichiers /messages/{locale}/{namespace}.json comme source de vérité et génère les dictionnaires Intlayer à partir d'eux, dans les deux sens. Un plugin de synchronisation PO fait de même pour les catalogues gettext, et les fichiers par locale permettent de séparer le contenu par langue au lieu de regrouper les locales dans un seul fichier.
Non. Lancez npx intlayer extract et Intlayer lit vos fichiers source, en extrait les chaînes destinées aux utilisateurs et écrit un fichier .content à côté de chacun, de sorte que vous relisez un diff plutôt que de copier des chaînes dans un catalogue une par une. Voir la commande extract.
Pour un pipeline entièrement automatisé, le compilateur Intlayer fait la même chose au moment du build sur du code source JSX, TSX, Vue et Svelte, en générant les dictionnaires à chaque changement, de sorte qu'il n'y a aucune clé à maintenir à la main. Il fonctionne par analyse statique : les chaînes qui n'existent qu'à l'exécution restent hors de portée, et il a besoin de quelques annotations pour distinguer le texte destiné aux utilisateurs de la logique applicative.
Cinq éléments, tous optionnels :
- Extension VS Code : passez d'une clé
useIntlayerau fichier de contenu qui la déclare, extrayez du contenu depuis un composant, et lancez build, fill, test, push et pull depuis la palette de commandes ou un onglet Intlayer dédié. - Serveur LSP : la même connaissance dans tout éditeur qui parle LSP, avec aller à la définition, rechercher toutes les références, aperçus au survol d'une valeur traduite, autocomplétion des clés et des champs, et un avertissement lorsqu'une clé n'est déclarée nulle part. Il résout aussi les appels
i18next,react-i18next,next-intletuse-intl, ce qui aide pendant la migration. - Serveur MCP : expose la documentation et la CLI d'Intlayer à Cursor, VS Code, Claude Desktop, Claude Code et ChatGPT, afin qu'un assistant réponde à partir de la documentation actuelle au lieu de deviner, et puisse exécuter lui-même des commandes telles que
intlayer fill. - Compétences d'agent : des compétences ciblées telles que
intlayer-config,intlayer-clietintlayer-content, plus une par framework, qui apprennent à un agent votre configuration de routage et les types de nœuds de contenu. - Plugin ESLint :
no-raw-textsignale les chaînes codées en dur, avec d'autres règles pour les clés de dictionnaire statiques et le contenu inutilisé.
