@intlayer/docs 9.3.0 → 9.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +24 -24
  2. package/blog/ar/rag_powered_documentation_assistant.md +1 -1
  3. package/blog/pl/rag_powered_documentation_assistant.md +1 -1
  4. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  5. package/dist/cjs/authors2.cjs +0 -1
  6. package/dist/cjs/common.cjs.map +1 -1
  7. package/dist/cjs/generated/blog.entry.cjs +4 -2
  8. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/docs.entry.cjs +4 -2
  10. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
  12. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  13. package/dist/cjs/generated/legal.entry.cjs +4 -2
  14. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +4 -2
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +4 -2
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +4 -2
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/docs/ar/configuration.md +10 -10
  24. package/docs/ar/interest_of_intlayer.md +24 -22
  25. package/docs/ar/intlayer_with_express.md +1 -1
  26. package/docs/ar/intlayer_with_svelte_kit.md +1 -1
  27. package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
  28. package/docs/ar/intlayer_with_tanstack.md +5 -3
  29. package/docs/ar/lsp.md +114 -175
  30. package/docs/ar/readme.md +25 -25
  31. package/docs/bn/configuration.md +10 -10
  32. package/docs/bn/interest_of_intlayer.md +24 -22
  33. package/docs/cs/configuration.md +10 -10
  34. package/docs/cs/interest_of_intlayer.md +24 -22
  35. package/docs/de/configuration.md +10 -10
  36. package/docs/de/interest_of_intlayer.md +24 -22
  37. package/docs/de/intlayer_with_svelte_kit.md +1 -1
  38. package/docs/de/intlayer_with_tanstack+solid.md +5 -3
  39. package/docs/de/intlayer_with_tanstack.md +5 -3
  40. package/docs/de/lsp.md +111 -172
  41. package/docs/de/readme.md +24 -24
  42. package/docs/en/configuration.md +10 -10
  43. package/docs/en/interest_of_intlayer.md +24 -22
  44. package/docs/en/intlayer_with_svelte_kit.md +1 -1
  45. package/docs/en/intlayer_with_tanstack+solid.md +5 -3
  46. package/docs/en/intlayer_with_tanstack.md +5 -3
  47. package/docs/en/lsp.md +109 -170
  48. package/docs/en/readme.md +24 -24
  49. package/docs/en-GB/configuration.md +10 -10
  50. package/docs/en-GB/interest_of_intlayer.md +24 -22
  51. package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
  52. package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
  53. package/docs/en-GB/intlayer_with_tanstack.md +5 -3
  54. package/docs/en-GB/lsp.md +109 -170
  55. package/docs/en-GB/readme.md +24 -24
  56. package/docs/es/configuration.md +10 -10
  57. package/docs/es/interest_of_intlayer.md +24 -22
  58. package/docs/es/intlayer_with_svelte_kit.md +1 -1
  59. package/docs/es/intlayer_with_tanstack+solid.md +5 -3
  60. package/docs/es/intlayer_with_tanstack.md +5 -3
  61. package/docs/es/lsp.md +114 -175
  62. package/docs/es/readme.md +24 -24
  63. package/docs/fr/configuration.md +10 -10
  64. package/docs/fr/interest_of_intlayer.md +24 -22
  65. package/docs/fr/intlayer_with_svelte_kit.md +1 -1
  66. package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
  67. package/docs/fr/intlayer_with_tanstack.md +5 -3
  68. package/docs/fr/lsp.md +110 -171
  69. package/docs/fr/readme.md +24 -24
  70. package/docs/hi/configuration.md +10 -10
  71. package/docs/hi/interest_of_intlayer.md +24 -22
  72. package/docs/hi/intlayer_with_express.md +1 -1
  73. package/docs/hi/intlayer_with_svelte_kit.md +1 -1
  74. package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
  75. package/docs/hi/intlayer_with_tanstack.md +5 -3
  76. package/docs/hi/lsp.md +113 -174
  77. package/docs/hi/readme.md +24 -24
  78. package/docs/id/configuration.md +10 -10
  79. package/docs/id/interest_of_intlayer.md +24 -22
  80. package/docs/id/intlayer_with_svelte_kit.md +1 -1
  81. package/docs/id/intlayer_with_tanstack+solid.md +5 -3
  82. package/docs/id/intlayer_with_tanstack.md +5 -3
  83. package/docs/id/lsp.md +113 -174
  84. package/docs/id/readme.md +24 -24
  85. package/docs/it/configuration.md +10 -10
  86. package/docs/it/interest_of_intlayer.md +24 -22
  87. package/docs/it/intlayer_with_svelte_kit.md +1 -1
  88. package/docs/it/intlayer_with_tanstack+solid.md +5 -3
  89. package/docs/it/intlayer_with_tanstack.md +5 -3
  90. package/docs/it/lsp.md +115 -176
  91. package/docs/it/readme.md +24 -24
  92. package/docs/ja/configuration.md +10 -10
  93. package/docs/ja/interest_of_intlayer.md +24 -22
  94. package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
  95. package/docs/ja/intlayer_with_tanstack.md +5 -3
  96. package/docs/ja/lsp.md +113 -174
  97. package/docs/ja/readme.md +24 -24
  98. package/docs/ko/configuration.md +10 -10
  99. package/docs/ko/interest_of_intlayer.md +24 -22
  100. package/docs/ko/intlayer_with_svelte_kit.md +1 -1
  101. package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
  102. package/docs/ko/intlayer_with_tanstack.md +5 -3
  103. package/docs/ko/lsp.md +112 -173
  104. package/docs/ko/readme.md +24 -24
  105. package/docs/nl/configuration.md +10 -10
  106. package/docs/nl/interest_of_intlayer.md +24 -22
  107. package/docs/pl/configuration.md +10 -10
  108. package/docs/pl/interest_of_intlayer.md +4 -2
  109. package/docs/pl/intlayer_with_svelte_kit.md +1 -1
  110. package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
  111. package/docs/pl/intlayer_with_tanstack.md +5 -3
  112. package/docs/pl/lsp.md +115 -176
  113. package/docs/pl/readme.md +24 -24
  114. package/docs/pt/configuration.md +10 -10
  115. package/docs/pt/interest_of_intlayer.md +24 -22
  116. package/docs/pt/intlayer_with_svelte_kit.md +1 -1
  117. package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
  118. package/docs/pt/intlayer_with_tanstack.md +5 -3
  119. package/docs/pt/lsp.md +113 -174
  120. package/docs/pt/readme.md +24 -24
  121. package/docs/ru/configuration.md +10 -10
  122. package/docs/ru/interest_of_intlayer.md +24 -22
  123. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  124. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  125. package/docs/ru/intlayer_with_svelte_kit.md +1 -1
  126. package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
  127. package/docs/ru/intlayer_with_tanstack.md +5 -3
  128. package/docs/ru/lsp.md +112 -173
  129. package/docs/ru/readme.md +24 -24
  130. package/docs/tr/configuration.md +10 -10
  131. package/docs/tr/interest_of_intlayer.md +24 -22
  132. package/docs/tr/intlayer_with_svelte_kit.md +1 -1
  133. package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
  134. package/docs/tr/intlayer_with_tanstack.md +5 -3
  135. package/docs/tr/lsp.md +113 -174
  136. package/docs/tr/readme.md +24 -24
  137. package/docs/uk/configuration.md +10 -10
  138. package/docs/uk/interest_of_intlayer.md +4 -2
  139. package/docs/uk/intlayer_with_svelte_kit.md +1 -1
  140. package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
  141. package/docs/uk/intlayer_with_tanstack.md +5 -3
  142. package/docs/uk/lsp.md +113 -174
  143. package/docs/uk/per_locale_file.md +1 -1
  144. package/docs/uk/readme.md +24 -24
  145. package/docs/ur/configuration.md +10 -10
  146. package/docs/ur/interest_of_intlayer.md +24 -22
  147. package/docs/vi/configuration.md +10 -10
  148. package/docs/vi/interest_of_intlayer.md +24 -22
  149. package/docs/vi/intlayer_with_svelte_kit.md +1 -1
  150. package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
  151. package/docs/vi/intlayer_with_tanstack.md +5 -3
  152. package/docs/vi/lsp.md +115 -176
  153. package/docs/vi/readme.md +24 -24
  154. package/docs/zh/configuration.md +10 -10
  155. package/docs/zh/interest_of_intlayer.md +24 -22
  156. package/docs/zh/intlayer_with_svelte_kit.md +1 -1
  157. package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
  158. package/docs/zh/intlayer_with_tanstack.md +5 -3
  159. package/docs/zh/lsp.md +113 -174
  160. package/docs/zh/readme.md +21 -21
  161. package/docs/zh-TW/interest_of_intlayer.md +24 -22
  162. package/package.json +6 -6
package/docs/fr/lsp.md CHANGED
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  createdAt: 2025-06-07
3
- updatedAt: 2026-05-31
3
+ updatedAt: 2026-08-10
4
4
  title: Serveur LSP Intlayer
5
- description: Découvrez comment le serveur de langage Intlayer fournit la fonctionnalité Go-to-Definition et d'autres fonctionnalités de l'EDI pour useIntlayer, getIntlayer et les appels associés dans tous les éditeurs pris en charge.
5
+ description: Découvrez comment le serveur de langage Intlayer apporte Go-to-Definition, la recherche de références, les aperçus au survol, l'autocomplétion des clés et les diagnostics à votre EDI et à votre agent IA.
6
6
  keywords:
7
7
  - LSP
8
8
  - Serveur de langage
9
9
  - Go to Definition
10
+ - Autocomplétion
11
+ - Diagnostics
10
12
  - EDI
11
13
  - Intlayer
12
14
  - VS Code
@@ -16,6 +18,9 @@ slugs:
16
18
  - doc
17
19
  - lsp
18
20
  history:
21
+ - version: 9.1.3
22
+ date: 2026-08-10
23
+ changes: "Ajout de la recherche de références, du survol, de l'autocomplétion et des diagnostics"
19
24
  - version: 8.12.0
20
25
  date: 2026-06-01
21
26
  changes: "Release LSP"
@@ -24,48 +29,47 @@ author: aymericzip
24
29
 
25
30
  # Serveur LSP Intlayer
26
31
 
27
- Le **serveur de langage Intlayer (LSP)** est une implémentation du [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) qui améliore votre EDI avec une intelligence prenant en charge Intlayer. Il fournit actuellement la fonctionnalité **Go to Definition** pour les appels de clés de dictionnaire, vous permettant de passer directement de `useIntlayer("my-key")` dans votre composant au fichier `.content.ts` qui le déclare.
32
+ Le **serveur de langage Intlayer** est une implémentation du [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) qui rend votre EDI et votre agent IA conscient d'Intlayer. Il relie un appel comme `useIntlayer("home")` au fichier `.content.ts` qui le déclare, dans les deux sens.
28
33
 
29
34
  ---
30
35
 
31
- ## Pourquoi utiliser le LSP ?
36
+ ## Fonctionnalités
32
37
 
33
- Lorsque vous utilisez Intlayer, la connexion entre un appel comme `useIntlayer("homepage")` et sa déclaration dans `src/homepage.content.ts` est implicite. Sans outil, vous devez rechercher le fichier manuellement. Le LSP rend ce lien explicite :
38
+ | Fonctionnalité | Raccourci | Description |
39
+ | ------------------------------------ | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
40
+ | **Aller à la définition** | `F12` / `Cmd+Clic` | Passer d'une clé de dictionnaire ou d'une utilisation de champ à sa déclaration dans le fichier de contenu |
41
+ | **Rechercher toutes les références** | `Maj+F12` | Depuis un fichier de contenu, lister tous les sites d'appel qui utilisent cette clé ou ce champ |
42
+ | **Survol** | survoler avec le curseur | Prévisualiser les champs d'un dictionnaire, ou la valeur traduite d'un champ, sans quitter le fichier |
43
+ | **Autocomplétion** | `"` `'` `` ` `` `.` | Suggérer les clés de dictionnaire déclarées dans un getter, et les champs de contenu après `.` ou lors d'une déstructuration |
44
+ | **Diagnostics** | automatique | Avertir lorsqu'une clé n'est déclarée dans aucun fichier de contenu |
34
45
 
35
- **intégration avec les agents IA**
46
+ Deux comportements supplémentaires méritent d'être connus :
36
47
 
37
- Les agents de codage IA (Cursor, Windsurf, GitHub Copilot, Claude Code, Codex) s'appuient sur le serveur de langage pour résoudre les symboles et comprendre les relations entre les fichiers. Avec le LSP Intlayer en cours d'exécution, les agents peuvent suivre `useIntlayer("key")` jusqu'à sa déclaration, leur donnant un contexte précis sur les clés de contenu disponibles, la forme de chaque dictionnaire et les fichiers à lire ou à modifier.
48
+ - **Dictionnaires fusionnés** une clé répartie sur plusieurs fichiers de contenu renvoie un résultat par fichier, ce qui vous permet de naviguer vers chaque déclaration.
49
+ - **Compatible monorepo** — le serveur résout le fichier `intlayer.config.*` le _plus proche_ de chaque fichier, afin que plusieurs projets dans un même espace de travail disposent chacun de leurs propres dictionnaires.
38
50
 
39
- **Aller à la définition**
51
+ ### Appels pris en charge
40
52
 
41
- Placez votre curseur sur n'importe quelle chaîne de clé de dictionnaire dans un appel d'obtention pris en charge et appuyez sur `F12` (ou `Cmd/Ctrl+Clic`). L'éditeur ouvre le fichier de déclaration de contenu et positionne le curseur sur la ligne `key:`.
53
+ La clé est lue soit depuis un argument positionnel de type chaîne, soit depuis un objet d'options (`{ namespace }`, `{ id }`).
42
54
 
43
- **Prise en charge des dictionnaires fusionnés**
55
+ | Bibliothèque | Appels |
56
+ | --------------------------- | -------------------------------------------------------- |
57
+ | **Intlayer** | `useIntlayer`, `getIntlayer` |
58
+ | **i18next / react-i18next** | `useTranslation`, `getFixedT`, `t`, `Trans` |
59
+ | **next-intl / use-intl** | `useTranslations`, `getTranslations`, `createTranslator` |
60
+ | **react-intl** | `formatMessage`, `FormattedMessage` |
61
+ | **Lingui** | `useLingui`, `t`, `Trans`, `_` |
62
+ | **vue-i18n** | `useI18n` |
44
63
 
45
- Une clé peut être répartie sur plusieurs fichiers de contenu (Intlayer les fusionne). Le serveur renvoie un emplacement (`Location`) par fichier source afin que vous puissiez naviguer vers chaque déclaration.
64
+ Cela fonctionne pour tous les packages `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `intlayer`), ainsi que pour les packages d'adaptation compat qui vous permettent de conserver votre syntaxe i18n existante.
46
65
 
47
- **Fonctionne partout**
48
-
49
- Prend en charge tous les packages `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `adonis-intlayer`, `intlayer`).
50
-
51
- ### Appels d'obtention pris en charge
52
-
53
- Le serveur détecte les appels de fonction suivants et extrait le premier argument de type chaîne littérale comme clé de dictionnaire :
54
-
55
- | Fonction | Exemple |
56
- | ------------- | ----------------------------- |
57
- | `useIntlayer` | `useIntlayer("hero")` |
58
- | `getIntlayer` | `getIntlayer("hero", locale)` |
59
-
60
- Les génériques TypeScript et les arguments supplémentaires sont ignorés — seule la chaîne de clé compte.
61
-
62
- > `useDictionary` et `getDictionary` prennent un objet `Dictionary` déjà importé comme premier argument plutôt qu'une clé sous forme de chaîne, de sorte qu'ils ne bénéficient pas de la fonctionnalité Go-to-Definition et ne sont pas suivis par le serveur.
66
+ > Les dictionnaires sont lus depuis la sortie de build : exécutez `npx intlayer build` — ou laissez votre serveur de développement tourner — pour donner au serveur quelque chose à résoudre.
63
67
 
64
68
  ---
65
69
 
66
70
  ## Installation
67
71
 
68
- Le serveur LSP est distribué dans le cadre de `@intlayer/lsp` :
72
+ Le serveur est distribué sous forme du binaire `intlayer-lsp` dans `@intlayer/lsp` :
69
73
 
70
74
  ```bash packageManager="npm"
71
75
  npm install --save-dev @intlayer/lsp
@@ -83,43 +87,43 @@ pnpm add --save-dev @intlayer/lsp
83
87
  bun add --dev @intlayer/lsp
84
88
  ```
85
89
 
86
- Le package expose le binaire `intlayer-lsp`, que les éditeurs utilisent comme exécutable du serveur.
90
+ Installez-le plutôt globalement (`npm install -g @intlayer/lsp`) si votre éditeur a besoin de `intlayer-lsp` dans le `PATH` c'est le cas pour le plugin Claude Code et pour toute configuration ci-dessous qui appelle directement le binaire.
87
91
 
88
92
  ---
89
93
 
90
- ## Configuration en tant que plugin Claude Code
94
+ ## Configuration
91
95
 
92
- Le LSP Intlayer est disponible en tant que **plugin Claude Code** hébergé directement dans le dépôt GitHub Intlayer. L'installer donne à Claude Code une sensibilisation native à la fonctionnalité Go-to-Definition pour tous vos appels `useIntlayer` / `getIntlayer`.
96
+ <Tabs defaultTab="vscode">
97
+ <Tab label="VS Code" value="vscode">
93
98
 
94
- ### 1. Installer le binaire du serveur de langage
99
+ Installez l'[extension VS Code Intlayer](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). Le serveur de langage y est intégré depuis la v8.12.0 et démarre automatiquement — **aucune configuration requise**.
95
100
 
96
- ```bash packageManager="npm"
97
- npm install -g @intlayer/lsp
98
- ```
101
+ Consultez la [documentation de l'extension VS Code](https://intlayer.org/doc/vs-code-extension) pour ses autres fonctionnalités.
99
102
 
100
- ```bash packageManager="yarn"
101
- yarn global add @intlayer/lsp
102
- ```
103
+ </Tab>
104
+ <Tab label="Cursor / Windsurf" value="cursor">
103
105
 
104
- ```bash packageManager="pnpm"
105
- pnpm add -g @intlayer/lsp
106
- ```
106
+ [Cursor](https://www.cursor.com/) et [Windsurf](https://windsurf.com/) sont des forks de VS Code et utilisent le même écosystème d'extensions. Installez l'[extension VS Code Intlayer](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) une fois et le serveur s'active automatiquement — **aucune configuration requise**.
107
+
108
+ </Tab>
109
+ <Tab label="Claude Code" value="claude-code">
107
110
 
108
- Cela place le binaire `intlayer-lsp` dans votre variable d'environnement PATH, ce qui est invoqué par l'entrée `lspServers` du plugin.
111
+ Intlayer fournit un **plugin Claude Code** hébergé dans le dépôt Intlayer. Il donne à Claude Code une véritable résolution des symboles pour vos clés de dictionnaire, au lieu de se rabattre sur `grep`.
109
112
 
110
- ### 2. Enregistrer le marketplace Intlayer et installer le plugin
113
+ Placez le binaire dans votre `PATH`, puis enregistrez la marketplace et installez le plugin :
111
114
 
112
115
  ```bash
116
+ npm install -g @intlayer/lsp
117
+
113
118
  claude plugin marketplace add intlayer@github:aymericzip/intlayer
114
119
  claude plugin install intlayer-lsp@intlayer
115
- claude plugin enable intlayer-lsp@intlayer
116
120
  ```
117
121
 
118
- Claude Code ajoutera `"intlayer-lsp@intlayer": true` à vos `enabledPlugins` et démarrera automatiquement le serveur de langage sur les types de fichiers pris en charge (`.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.svelte`).
122
+ `install` active également le plugin. **Redémarrez Claude Code** les serveurs de langage sont chargés au démarrage, le plugin n'a donc aucun effet avant cela.
119
123
 
120
- ### 3. Activer l'outil LSP (si non déjà actif)
124
+ Claude Code démarre ensuite le serveur sur les fichiers `.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.astro` et `.svelte`, et utilise `goToDefinition`, `findReferences` et `hover` lors de la navigation dans votre code.
121
125
 
122
- Certaines versions de Claude Code nécessitent que le feature flag LSP soit défini. Ajoutez ce qui suit à votre fichier `~/.claude/settings.json` si Go-to-Definition ne fonctionne pas après l'installation :
126
+ Si Go-to-Definition ne fait toujours rien, votre version de Claude Code conditionne peut-être l'outil LSP à un drapeau :
123
127
 
124
128
  ```json fileName="~/.claude/settings.json"
125
129
  {
@@ -129,61 +133,10 @@ Certaines versions de Claude Code nécessitent que le feature flag LSP soit déf
129
133
  }
130
134
  ```
131
135
 
132
- Redémarrez Claude Code — il utilisera désormais `goToDefinition`, `findReferences` et d'autres opérations LSP lors de la navigation dans votre base de code Intlayer au lieu de revenir à `grep`.
133
-
134
- ---
135
-
136
- ## Configuration dans VS Code (via l'extension — recommandé)
137
-
138
- Si l'**extension VS Code Intlayer** est installée, le serveur de langage démarre automatiquement. Aucune configuration supplémentaire n'est requise. Le LSP est directement intégré dans l'extension VSCode depuis la v8.12.0.
139
-
140
- > Voir la [documentation de l'extension VS Code](https://intlayer.org/doc/vs-code-extension) pour l'installation et d'autres fonctionnalités.
141
-
142
- ---
143
-
144
- ## Configuration manuelle dans VS Code
145
-
146
- Si vous n'utilisez pas l'extension Intlayer, vous pouvez connecter le serveur de langage manuellement à l'aide d'une extension cliente LSP générique telle que [**vscode-glspc**](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter) ou en écrivant votre propre petite extension. L'approche recommandée consiste à utiliser l'extension Intlayer.
147
-
148
- Pour référence, le serveur se lance via le binaire `intlayer-lsp` sur stdio :
149
-
150
- ```json fileName=".vscode/settings.json"
151
- {
152
- "intlayer.languageServer.command": "npx",
153
- "intlayer.languageServer.args": ["@intlayer/lsp"]
154
- }
155
- ```
156
-
157
- L'extension Intlayer lit ces paramètres pour lancer le serveur. Si vous comptez uniquement sur l'extension, aucun paramètre manuel n'est nécessaire.
158
-
159
- ---
160
-
161
- ## Configuration dans Cursor
162
-
163
- [Cursor](https://www.cursor.com/) est un fork de VS Code avec des fonctionnalités d'IA intégrées. Il utilise le même écosystème d'extensions, donc l'**extension VS Code Intlayer** fonctionne sans aucune configuration supplémentaire — installez-la une fois et Cursor la récupère automatiquement.
164
-
165
- Si vous préférez une configuration manuelle, Cursor lit également `.vscode/settings.json` depuis la racine de l'espace de travail, donc le snippet VS Code ci-dessus s'applique directement.
166
-
167
- ---
168
-
169
- ## Configuration dans Windsurf
170
-
171
- [Windsurf](https://windsurf.com/) (par Codeium) est un autre éditeur basé sur VS Code. Installez l'extension Intlayer depuis le VS Code Marketplace et le serveur de langage s'active automatiquement, exactement comme dans VS Code et Cursor.
172
-
173
- Pour une configuration manuelle, créez `.vscode/settings.json` à la racine du projet :
174
-
175
- ```json fileName=".vscode/settings.json"
176
- {
177
- "intlayer.languageServer.command": "npx",
178
- "intlayer.languageServer.args": ["@intlayer/lsp"]
179
- }
180
- ```
181
-
182
- ---
183
-
184
- ## Configuration dans Zed
136
+ </Tab>
137
+ <Tab label="Zed" value="zed">
185
138
 
186
- [Zed](https://zed.dev/) prend en charge nativement le LSP via ses paramètres de langage. Ajoutez une entrée dans vos paramètres utilisateur Zed (`~/.config/zed/settings.json`) :
139
+ Zed prend en charge nativement le LSP. Ajoutez le serveur à vos paramètres utilisateur :
187
140
 
188
141
  ```json fileName="~/.config/zed/settings.json"
189
142
  {
@@ -196,47 +149,21 @@ Pour une configuration manuelle, créez `.vscode/settings.json` à la racine du
196
149
  }
197
150
  },
198
151
  "languages": {
199
- "TypeScript": {
200
- "language_servers": ["intlayer-lsp", "..."]
201
- },
202
- "TSX": {
203
- "language_servers": ["intlayer-lsp", "..."]
204
- },
205
- "JavaScript": {
206
- "language_servers": ["intlayer-lsp", "..."]
207
- },
208
- "Vue.js": {
209
- "language_servers": ["intlayer-lsp", "..."]
210
- },
211
- "Svelte": {
212
- "language_servers": ["intlayer-lsp", "..."]
213
- }
152
+ "TypeScript": { "language_servers": ["intlayer-lsp", "..."] },
153
+ "TSX": { "language_servers": ["intlayer-lsp", "..."] },
154
+ "JavaScript": { "language_servers": ["intlayer-lsp", "..."] },
155
+ "Vue.js": { "language_servers": ["intlayer-lsp", "..."] },
156
+ "Svelte": { "language_servers": ["intlayer-lsp", "..."] }
214
157
  }
215
158
  }
216
159
  ```
217
160
 
218
- L'espace réservé `"..."` indique à Zed de conserver ses serveurs de langage par défaut aux côtés de celui d'Intlayer.
219
-
220
- ---
221
-
222
- ## Configuration pour les CLI d'agents IA (Claude Code, Codex, etc.)
223
-
224
- **Claude Code** dispose d'un support de plugin LSP de premier ordre — suivez la [configuration du plugin Claude Code](#configuration-en-tant-que-plugin-claude-code) ci-dessus pour obtenir l'expérience complète de Go-to-Definition directement dans vos sessions de terminal.
225
-
226
- **OpenAI Codex** et les autres outils basés sur le terminal ne fonctionnent pas encore comme des clients LSP — ils lisent et écrivent des fichiers directement plutôt que de maintenir une session de serveur de langage persistante. Pour ces outils, la valeur d'avoir le LSP en cours d'exécution vient indirectement : lorsque le serveur est actif dans un éditeur compagnon (VS Code, Cursor, Windsurf, …), l'index en direct de l'éditeur est disponible pour tout agent IA qui peut l'interroger via le contexte fourni par l'éditeur (par exemple, Cursor Composer, Windsurf Cascade, GitHub Copilot Chat).
227
-
228
- Si vous travaillez uniquement dans un terminal sans éditeur ouvert, vous pouvez démarrer le serveur de langage en arrière-plan afin qu'il soit prêt pour tout éditeur qui se connectera ultérieurement au même espace de travail :
229
-
230
- ```bash
231
- # Garder le serveur actif en arrière-plan
232
- npx @intlayer/lsp &
233
- ```
234
-
235
- ---
161
+ L'espace réservé `"..."` conserve les serveurs de langage par défaut de Zed aux côtés de celui d'Intlayer.
236
162
 
237
- ## Configuration manuelle dans Neovim
163
+ </Tab>
164
+ <Tab label="Neovim" value="neovim">
238
165
 
239
- En utilisant [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), enregistrez une configuration de serveur personnalisée :
166
+ Avec [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig), enregistrez une configuration de serveur personnalisée :
240
167
 
241
168
  ```lua fileName="~/.config/nvim/init.lua"
242
169
  local lspconfig = require('lspconfig')
@@ -267,21 +194,10 @@ end
267
194
  lspconfig.intlayer_lsp.setup({})
268
195
  ```
269
196
 
270
- Après avoir redémarré Neovim, appuyer sur `gd` sur une clé Intlayer invoquera Go to Definition.
271
-
272
- ---
273
-
274
- ## Configuration manuelle dans d'autres éditeurs
275
-
276
- Tout éditeur prenant en charge le Language Server Protocol peut utiliser `@intlayer/lsp`. Le serveur :
277
-
278
- - **Transport** – Node.js IPC / stdio (standard)
279
- - **Exécutable** – `npx @intlayer/lsp` (ou le binaire `intlayer-lsp` installé localement)
280
- - **Capacités** – `definitionProvider: true`, `textDocumentSync: Incremental`
197
+ Après avoir redémarré Neovim, `gd` sur une clé de dictionnaire lance Aller à la définition et `gr` lance Rechercher les références.
281
198
 
282
- Consultez la documentation LSP de votre éditeur pour le format de configuration exact (par exemple, `languageserver.json` pour [coc.nvim](https://github.com/neoclide/coc.nvim), ou les paramètres client LSP dans [Helix](https://helix-editor.com)).
283
-
284
- ### Exemple : coc.nvim
199
+ </Tab>
200
+ <Tab label="coc.nvim" value="coc">
285
201
 
286
202
  ```json fileName="~/.config/nvim/coc-settings.json"
287
203
  {
@@ -307,9 +223,14 @@ Consultez la documentation LSP de votre éditeur pour le format de configuration
307
223
  }
308
224
  ```
309
225
 
310
- ### Exemple : Helix
226
+ </Tab>
227
+ <Tab label="Helix" value="helix">
311
228
 
312
229
  ```toml fileName="~/.config/helix/languages.toml"
230
+ [language-server.intlayer-lsp]
231
+ command = "npx"
232
+ args = ["@intlayer/lsp"]
233
+
313
234
  [[language]]
314
235
  name = "typescript"
315
236
  language-servers = ["intlayer-lsp", "typescript-language-server"]
@@ -317,36 +238,54 @@ language-servers = ["intlayer-lsp", "typescript-language-server"]
317
238
  [[language]]
318
239
  name = "tsx"
319
240
  language-servers = ["intlayer-lsp", "typescript-language-server"]
320
-
321
- [language-server.intlayer-lsp]
322
- command = "npx"
323
- args = ["@intlayer/lsp"]
324
241
  ```
325
242
 
243
+ </Tab>
244
+ <Tab label="Autres éditeurs" value="other">
245
+
246
+ Tout éditeur compatible LSP peut exécuter `@intlayer/lsp`. Pointez-le vers :
247
+
248
+ - **Exécutable** — `npx @intlayer/lsp`, ou le binaire `intlayer-lsp`
249
+ - **Transport** — stdio (standard)
250
+ - **Capacités** — `definitionProvider`, `referencesProvider`, `hoverProvider`, `completionProvider` (caractères déclencheurs `"` `'` `` ` `` `.`), diagnostics poussés, `textDocumentSync: Incremental`
251
+ - **Motifs de racine** — `intlayer.config.ts`, `intlayer.config.js`, `package.json`
252
+
253
+ Consultez la documentation LSP de votre éditeur pour le format de configuration exact.
254
+
255
+ </Tab>
256
+ </Tabs>
257
+
326
258
  ---
327
259
 
328
- ## Comment ça fonctionne
260
+ ## Remarque sur les agents IA en terminal
329
261
 
330
- Lorsque le serveur démarre, il résout la configuration Intlayer à partir de la racine de l'espace de travail en utilisant `getConfiguration()`. Cela lui donne les chemins `build` et `system` nécessaires pour trouver les dictionnaires compilés.
262
+ **Claude Code** agit comme un véritable client LSP voir l'onglet ci-dessus.
331
263
 
332
- Sur chaque requête **Go to Definition** :
264
+ **OpenAI Codex** et la plupart des autres outils en terminal ne sont pas des clients LSP : ils lisent et écrivent les fichiers directement. Lancer le serveur seul ne les aide pas ; l'intérêt vient de son activation dans un éditeur compagnon dont l'agent peut interroger l'index (Cursor Composer, Windsurf Cascade, Copilot Chat).
333
265
 
334
- 1. Le serveur lit le texte complet du document ouvert.
335
- 2. Il recherche les appels d'obtention (`useIntlayer`, `getIntlayer`, etc.) à l'aide d'une expression régulière.
336
- 3. Il vérifie si la position du curseur se situe à l'intérieur de l'un de ces appels.
337
- 4. Si c'est le cas, il extrait la clé de dictionnaire (groupe de capture 3 de la regex) et appelle `getUnmergedDictionaries()` pour localiser chaque fichier de contenu qui déclare cette clé.
338
- 5. Il lit chaque fichier correspondant et trouve la ligne exacte contenant `key: "<key>"` pour positionner le curseur précisément.
339
- 6. Il renvoie un tableau d'objets `Location` — un par fichier source.
266
+ ---
267
+
268
+ ## Fonctionnement
269
+
270
+ Pour chaque fichier, le serveur localise le fichier `intlayer.config.*` le plus proche et charge la configuration de ce projet afin de trouver les dictionnaires compilés. La configuration, les dictionnaires et la liste des fichiers sources sont mis en cache avec de courtes durées de vie, et invalidés dès qu'un fichier de contenu surveillé change.
340
271
 
341
- La configuration est résolue de manière paresseuse et mise en cache par session ; elle se réinitialise à chaque requête `initialize` (par exemple, lorsque vous ouvrez un nouveau dossier d'espace de travail).
272
+ Lors d'une requête, le serveur analyse le document (via [oxc](https://oxc.rs/)) et examine la position du curseur :
273
+
274
+ 1. **Sur une chaîne de clé** (`useIntlayer("home")`) → renvoie tous les fichiers de contenu déclarant cette clé, positionnés sur leur ligne `key:`.
275
+ 2. **Sur l'utilisation d'un champ** (`content.title`, une propriété déstructurée, `t('path.to.field')`, `<Trans>`, …) → remonte la variable jusqu'à son dictionnaire et renvoie le champ correspondant dans les fichiers de contenu.
276
+ 3. **Depuis un fichier de contenu** → effectue la recherche inverse, en parcourant les sources du projet à la recherche des sites d'appel de cette clé ou de ce champ.
342
277
 
343
278
  ---
344
279
 
345
280
  ## Dépannage
346
281
 
347
- | Symptôme | Cause probable | Solution |
348
- | -------------------------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------- |
349
- | Go to Definition ne fait rien | Le serveur ne tourne pas | Vérifiez que `@intlayer/lsp` est installé et que l'éditeur le lance |
350
- | Mauvaise racine d'espace de travail détectée | Plusieurs dossiers d'espace de travail | Assurez-vous que le dossier contenant `intlayer.config.ts` est le premier dossier d'espace de travail |
351
- | Définitions introuvables pour une clé | Configuration non résolue | Vérifiez que `intlayer.config.ts` (ou `.js`) existe à la racine de l'espace de travail |
352
- | Le serveur plante au démarrage | Version de Node.js trop ancienne | Nécessite Node.js 14.18 |
282
+ | Symptôme | Cause probable | Solution |
283
+ | ----------------------------------------------- | ----------------------------------- | --------------------------------------------------------------------------------- |
284
+ | Rien ne se passe du tout | Le serveur ne tourne pas | Vérifiez que `@intlayer/lsp` est installé et que votre éditeur le lance |
285
+ | Fonctionne dans l'éditeur, pas dans Claude Code | Plugin installé en cours de session | Redémarrez Claude Code les serveurs de langage se chargent au démarrage |
286
+ | Aucune définition trouvée pour une clé | Dictionnaires non construits | Exécutez `npx intlayer build`, ou démarrez votre serveur de développement |
287
+ | Toutes les clés signalées comme non déclarées | Configuration non résolue | Vérifiez qu'un `intlayer.config.ts` (ou `.js`) existe à la racine de votre projet |
288
+ | Mauvais projet utilisé dans un monorepo | Configuration par package manquante | Ajoutez un `intlayer.config.*` à chaque package qui déclare son propre contenu |
289
+ | Le serveur plante au démarrage | Version de Node.js trop ancienne | Nécessite Node.js ≥ 14.18 |
290
+
291
+ Dans VS Code, le serveur écrit ses journaux dans **Affichage → Sortie → « Intlayer LSP »** — utile pour confirmer quelle configuration a été résolue et combien de dictionnaires ont été trouvés.
package/docs/fr/readme.md CHANGED
@@ -46,27 +46,27 @@ Avec des **fichiers de contenu par locale**, l'**autocomplétion TypeScript**, d
46
46
 
47
47
  ## Principaux avantages d'Intlayer :
48
48
 
49
- | Fonctionnalité | Description |
50
- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Support Multi-Frameworks**<br><br>Intlayer est compatible avec tous les principaux frameworks et bibliothèques, notamment Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, et plus encore. |
52
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **Gestion de contenu propulsée par JavaScript**<br><br>Exploitez la flexibilité de JavaScript pour définir et gérer votre contenu efficacement. <br><br> - [Déclaration de contenu](https://intlayer.org/doc/concept/content) |
53
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **Fichier de déclaration de contenu par locale**<br><br>Accélérez votre développement en déclarant votre contenu une seule fois, avant la génération automatique.<br><br> - [Fichier de déclaration de contenu par locale](https://intlayer.org/doc/concept/per-locale-file) |
54
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compilateur**<br><br>Le compilateur Intlayer extrait automatiquement le contenu des composants et génère les fichiers de dictionnaire.<br><br> - [Compilateur](https://intlayer.org/doc/compiler) |
55
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Environnement typé sécurisé**<br><br>Utilisez TypeScript pour garantir que vos définitions de contenu et votre code sont sans erreur, tout en bénéficiant de l'autocomplétion de l'IDE.<br><br> - [Configuration TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Configuration simplifiée**<br><br>Démarrez rapidement avec une configuration minimale. Ajustez facilement les paramètres d'internationalisation, de routage, d'IA, de build et de gestion du contenu. <br><br> - [Explorer l'intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
57
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Récupération simplifiée du contenu**<br><br>Pas besoin d'appeler votre fonction `t` pour chaque élément de contenu. Récupérez tout votre contenu directement à l'aide d'un seul hook.<br><br> - [Intégration React](https://intlayer.org/doc/environment/create-react-app) |
58
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Implémentation cohérente des composants serveur**<br><br>Parfaitement adapté aux composants serveur Next.js, utilisez la même implémentation pour les composants client et serveur, pas besoin de passer votre fonction `t` à travers chaque composant serveur. <br><br> - [Composants Serveur](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Base de code organisée**<br><br>Gardez votre base de code plus organisée : 1 composant = 1 dictionnaire dans le même dossier. Les traductions proches de leurs composants respectifs améliorent la maintenabilité et la clarté. <br><br> - [Comment fonctionne Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Routage amélioré**<br><br>Prise en charge complète du routage d'application, s'adaptant parfaitement aux structures d'applications complexes, pour Next.js, React, Vite, Vue.js, etc.<br><br> - [Explorer l'intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
61
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Support Markdown**<br><br>Importez et interprétez les fichiers locaux et le Markdown distant pour du contenu multilingue comme les politiques de confidentialité, la documentation, etc. Interprétez et rendez les métadonnées Markdown accessibles dans votre code.<br><br> - [Fichiers de contenu](https://intlayer.org/doc/concept/content/file) |
62
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Éditeur visuel et CMS gratuits**<br><br>Un éditeur visuel et un CMS gratuits sont disponibles pour les rédacteurs de contenu, éliminant ainsi le besoin d'une plateforme de localisation. Gardez votre contenu synchronisé à l'aide de Git, ou externalisez-le totalement ou partiellement avec le CMS.<br><br> - [Éditeur Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Contenu tree-shakable**<br><br>Contenu tree-shakable, réduisant la taille du bundle final. Charge le contenu par composant, excluant tout contenu inutilisé de votre bundle. Supporte le chargement dynamique (lazy-loading) pour améliorer l'efficacité du chargement de l'application. <br><br> - [Optimisation du build](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Rendu statique**<br><br>Ne bloque pas le rendu statique. <br><br> - [Intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
65
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Traduction propulsée par l'IA**<br><br>Transformez votre site web en 231 langues en un seul clic grâce aux outils de traduction avancés d'Intlayer utilisant votre propre fournisseur d'IA / clé API. <br><br> - [Intégration CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Auto-remplissage](https://intlayer.org/doc/concept/auto-fill) |
66
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Intégration du serveur MCP**<br><br>Fournit un serveur MCP (Model Context Protocol) pour l'automatisation de l'IDE, permettant une gestion du contenu et des flux de travail i18n fluides directement dans votre environnement de développement. <br><br> - [Serveur MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/mcp_server.md) |
67
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Extension VSCode**<br><br>Intlayer propose une extension VSCode pour vous aider à gérer votre contenu et vos traductions, à construire vos dictionnaires, à traduire votre contenu, et plus encore. <br><br> - [Extension VSCode](https://intlayer.org/doc/vs-code-extension) |
68
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Interopérabilité**<br><br>Permet l'interopérabilité avec react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer et react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer et next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer et next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer et vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
69
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Performances & Benchmark**<br><br>Utilise le tree-shaking avancé et le chargement dynamique pour booster les performances et garder la solution la plus légère possible. <br><br> - [Performances & Benchmark](https://intlayer.org/doc/benchmark) |
49
+ | Fonctionnalité | Description |
50
+ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Support Multi-Frameworks**<br><br>Intlayer est compatible avec tous les principaux frameworks et bibliothèques, notamment Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, et plus encore. |
52
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **Gestion de contenu propulsée par JavaScript**<br><br>Exploitez la flexibilité de JavaScript pour définir et gérer votre contenu efficacement. <br><br> - [Déclaration de contenu](https://intlayer.org/doc/concept/content) |
53
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **Fichier de déclaration de contenu par locale**<br><br>Accélérez votre développement en déclarant votre contenu une seule fois, avant la génération automatique.<br><br> - [Fichier de déclaration de contenu par locale](https://intlayer.org/doc/concept/per-locale-file) |
54
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compilateur**<br><br>Le compilateur Intlayer extrait automatiquement le contenu des composants et génère les fichiers de dictionnaire.<br><br> - [Compilateur](https://intlayer.org/doc/compiler) |
55
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Environnement typé sécurisé**<br><br>Utilisez TypeScript pour garantir que vos définitions de contenu et votre code sont sans erreur, tout en bénéficiant de l'autocomplétion de l'IDE.<br><br> - [Configuration TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Configuration simplifiée**<br><br>Démarrez rapidement avec une configuration minimale. Ajustez facilement les paramètres d'internationalisation, de routage, d'IA, de build et de gestion du contenu. <br><br> - [Explorer l'intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
57
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Récupération simplifiée du contenu**<br><br>Pas besoin d'appeler votre fonction `t` pour chaque élément de contenu. Récupérez tout votre contenu directement à l'aide d'un seul hook.<br><br> - [Intégration React](https://intlayer.org/doc/environment/create-react-app) |
58
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Implémentation cohérente des composants serveur**<br><br>Parfaitement adapté aux composants serveur Next.js, utilisez la même implémentation pour les composants client et serveur, pas besoin de passer votre fonction `t` à travers chaque composant serveur. <br><br> - [Composants Serveur](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Base de code organisée**<br><br>Gardez votre base de code plus organisée : 1 composant = 1 dictionnaire dans le même dossier. Les traductions proches de leurs composants respectifs améliorent la maintenabilité et la clarté. <br><br> - [Comment fonctionne Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
60
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Routage amélioré**<br><br>Prise en charge complète du routage d'application, s'adaptant parfaitement aux structures d'applications complexes, pour Next.js, React, Vite, Vue.js, etc.<br><br> - [Explorer l'intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
61
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Support Markdown**<br><br>Importez et interprétez les fichiers locaux et le Markdown distant pour du contenu multilingue comme les politiques de confidentialité, la documentation, etc. Interprétez et rendez les métadonnées Markdown accessibles dans votre code.<br><br> - [Fichiers de contenu](https://intlayer.org/doc/concept/content/file) |
62
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Éditeur visuel et CMS gratuits**<br><br>Un éditeur visuel et un CMS gratuits sont disponibles pour les rédacteurs de contenu, éliminant ainsi le besoin d'une plateforme de localisation. Gardez votre contenu synchronisé à l'aide de Git, ou externalisez-le totalement ou partiellement avec le CMS.<br><br> - [Éditeur Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
63
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Contenu tree-shakable**<br><br>Contenu tree-shakable, réduisant la taille du bundle final. Charge le contenu par composant, excluant tout contenu inutilisé de votre bundle. Supporte le chargement dynamique (lazy-loading) pour améliorer l'efficacité du chargement de l'application. <br><br> - [Optimisation du build](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Rendu statique**<br><br>Ne bloque pas le rendu statique. <br><br> - [Intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
65
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **Traduction propulsée par l'IA**<br><br>Transformez votre site web en 231 langues en un seul clic grâce aux outils de traduction avancés d'Intlayer utilisant votre propre fournisseur d'IA / clé API. <br><br> - [Intégration CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Auto-remplissage](https://intlayer.org/doc/concept/auto-fill) |
66
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **Intégration du serveur MCP**<br><br>Fournit un serveur MCP (Model Context Protocol) pour l'automatisation de l'IDE, permettant une gestion du contenu et des flux de travail i18n fluides directement dans votre environnement de développement. <br><br> - [Serveur MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/mcp_server.md) |
67
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **Extension VSCode**<br><br>Intlayer propose une extension VSCode pour vous aider à gérer votre contenu et vos traductions, à construire vos dictionnaires, à traduire votre contenu, et plus encore. <br><br> - [Extension VSCode](https://intlayer.org/doc/vs-code-extension) |
68
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Interopérabilité**<br><br>Permet l'interopérabilité avec react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer et react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer et next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer et next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer et vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) <br> - [Adaptateurs de compatibilité Intlayer](https://intlayer.org/doc/compatibility) |
69
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **Performances & Benchmark**<br><br>Utilise le tree-shaking avancé et le chargement dynamique pour booster les performances et garder la solution la plus légère possible. <br><br> - [Performances & Benchmark](https://intlayer.org/doc/benchmark) |
70
70
 
71
71
  ---
72
72
 
@@ -173,7 +173,7 @@ Explorez notre documentation exhaustive pour commencer avec Intlayer et apprendr
173
173
  <li><a href="https://intlayer.org/doc/concept/cms" rel=''>CMS Intlayer</a></li>
174
174
  <li><a href="https://intlayer.org/doc/concept/content" rel=''>Dictionnaire</a>
175
175
  <ul>
176
- <li><a href="https://intlayer.org/doc/concept/content/per-locale-file" rel=''>Fichier de déclaration de contenu par locale</a></li>
176
+ <li><a href="https://intlayer.org/doc/concept/per-locale-file" rel=''>Fichier de déclaration de contenu par locale</a></li>
177
177
  <li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>Traduction</a></li>
178
178
  <li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>Énumération</a></li>
179
179
  <li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>Condition</a></li>
@@ -194,7 +194,7 @@ Explorez notre documentation exhaustive pour commencer avec Intlayer et apprendr
194
194
  <ul>
195
195
  <li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
196
196
  <li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
197
- <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router" rel=''>Next.js Page Router</a></li>
197
+ <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-page-router" rel=''>Next.js Page Router</a></li>
198
198
  <li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>Next.js utilisant le compilateur</a></li>
199
199
  </ul>
200
200
  </li>
@@ -223,7 +223,7 @@ Explorez notre documentation exhaustive pour commencer avec Intlayer et apprendr
223
223
  <li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
224
224
  <li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
225
225
  <li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
226
- <li><a href="https://intlayer.org/doc/environment/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
226
+ <li><a href="https://intlayer.org/doc/environment/nuxt-and-vue" rel=''>Vite + Nuxt</a></li>
227
227
  <li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
228
228
  <li><a href="https://intlayer.org/doc/environment/angular" rel=''>Angular</a></li>
229
229
  <li>