@intlayer/docs 7.3.11 → 7.3.13

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 (90) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +19 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +19 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +1 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/intlayer_with_nuxt.md +294 -438
  8. package/docs/ar/intlayer_with_react_router_v7.md +33 -4
  9. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +516 -0
  10. package/docs/ar/intlayer_with_tanstack.md +2 -12
  11. package/docs/ar/intlayer_with_vite+vue.md +1 -0
  12. package/docs/de/intlayer_with_nuxt.md +284 -410
  13. package/docs/de/intlayer_with_react_router_v7.md +33 -4
  14. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +573 -0
  15. package/docs/de/intlayer_with_tanstack.md +1 -0
  16. package/docs/de/intlayer_with_vite+vue.md +1 -0
  17. package/docs/en/intlayer_with_nuxt.md +237 -341
  18. package/docs/en/intlayer_with_react_router_v7.md +24 -0
  19. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +570 -0
  20. package/docs/en/intlayer_with_tanstack.md +2 -12
  21. package/docs/en/intlayer_with_vite+vue.md +49 -48
  22. package/docs/en-GB/intlayer_with_nuxt.md +254 -378
  23. package/docs/en-GB/intlayer_with_react_router_v7.md +33 -4
  24. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +513 -0
  25. package/docs/en-GB/intlayer_with_tanstack.md +2 -12
  26. package/docs/en-GB/intlayer_with_vite+vue.md +1 -0
  27. package/docs/es/intlayer_with_nuxt.md +271 -390
  28. package/docs/es/intlayer_with_react_router_v7.md +33 -4
  29. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +575 -0
  30. package/docs/es/intlayer_with_tanstack.md +1 -0
  31. package/docs/es/intlayer_with_vite+vue.md +1 -2
  32. package/docs/fr/intlayer_with_nuxt.md +278 -405
  33. package/docs/fr/intlayer_with_react_router_v7.md +34 -5
  34. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +574 -0
  35. package/docs/fr/intlayer_with_tanstack.md +1 -0
  36. package/docs/fr/intlayer_with_vite+vue.md +1 -0
  37. package/docs/hi/intlayer_with_nuxt.md +303 -447
  38. package/docs/hi/intlayer_with_react_router_v7.md +33 -4
  39. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +518 -0
  40. package/docs/hi/intlayer_with_tanstack.md +2 -12
  41. package/docs/hi/intlayer_with_vite+vue.md +1 -0
  42. package/docs/id/intlayer_with_nuxt.md +266 -395
  43. package/docs/id/intlayer_with_react_router_v7.md +29 -4
  44. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +521 -0
  45. package/docs/id/intlayer_with_tanstack.md +2 -12
  46. package/docs/id/intlayer_with_vite+vue.md +1 -0
  47. package/docs/it/intlayer_with_nuxt.md +299 -423
  48. package/docs/it/intlayer_with_react_router_v7.md +33 -4
  49. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +574 -0
  50. package/docs/it/intlayer_with_tanstack.md +1 -0
  51. package/docs/ja/intlayer_with_nuxt.md +309 -432
  52. package/docs/ja/intlayer_with_react_router_v7.md +33 -4
  53. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +574 -0
  54. package/docs/ja/intlayer_with_tanstack.md +2 -12
  55. package/docs/ja/intlayer_with_vite+vue.md +1 -0
  56. package/docs/ko/intlayer_with_nuxt.md +295 -422
  57. package/docs/ko/intlayer_with_react_router_v7.md +33 -4
  58. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +515 -0
  59. package/docs/ko/intlayer_with_tanstack.md +2 -12
  60. package/docs/ko/intlayer_with_vite+vue.md +1 -0
  61. package/docs/pl/intlayer_with_nuxt.md +273 -476
  62. package/docs/pl/intlayer_with_react_router_v7.md +32 -5
  63. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +615 -0
  64. package/docs/pl/intlayer_with_tanstack.md +2 -12
  65. package/docs/pl/intlayer_with_vite+vue.md +1 -0
  66. package/docs/pt/intlayer_with_nuxt.md +277 -420
  67. package/docs/pt/intlayer_with_react_router_v7.md +28 -0
  68. package/docs/pt/intlayer_with_tanstack.md +1 -0
  69. package/docs/ru/intlayer_with_nuxt.md +287 -425
  70. package/docs/ru/intlayer_with_react_router_v7.md +33 -4
  71. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +574 -0
  72. package/docs/ru/intlayer_with_tanstack.md +1 -0
  73. package/docs/ru/intlayer_with_vite+vue.md +1 -0
  74. package/docs/tr/intlayer_with_nuxt.md +313 -406
  75. package/docs/tr/intlayer_with_react_router_v7.md +33 -4
  76. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +572 -0
  77. package/docs/tr/intlayer_with_tanstack.md +2 -12
  78. package/docs/tr/intlayer_with_vite+vue.md +1 -0
  79. package/docs/vi/intlayer_with_nuxt.md +273 -418
  80. package/docs/vi/intlayer_with_react_router_v7.md +29 -4
  81. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +523 -0
  82. package/docs/vi/intlayer_with_tanstack.md +2 -12
  83. package/docs/vi/intlayer_with_vite+vue.md +1 -0
  84. package/docs/zh/intlayer_with_nuxt.md +300 -461
  85. package/docs/zh/intlayer_with_react_router_v7.md +33 -4
  86. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +516 -0
  87. package/docs/zh/intlayer_with_tanstack.md +2 -12
  88. package/docs/zh/intlayer_with_vite+vue.md +1 -0
  89. package/package.json +10 -11
  90. package/src/generated/docs.entry.ts +19 -0
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  createdAt: 2025-06-18
3
- updatedAt: 2025-06-29
4
- title: Comment traduire votre Nuxt and Vue – guide i18n 2025
3
+ updatedAt: 2025-12-07
4
+ title: Comment traduire votre application Nuxt et Vue – guide i18n 2025
5
5
  description: Découvrez comment rendre votre site Nuxt et Vue multilingue. Suivez la documentation pour internationaliser (i18n) et traduire votre site.
6
6
  keywords:
7
7
  - Internationalisation
@@ -14,16 +14,22 @@ slugs:
14
14
  - doc
15
15
  - environment
16
16
  - nuxt-and-vue
17
- applicationTemplate: https://github.com/aymericzip/intlayer-nuxt-template
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-nuxt-4-template
18
+ youtubeVideo: https://www.youtube.com/watch?v=nhUcUAVQ6eQ
18
19
  history:
20
+ - version: 7.3.11
21
+ date: 2025-12-07
22
+ changes: Mise à jour de LocaleSwitcher, SEO, métadonnées
19
23
  - version: 5.5.10
20
24
  date: 2025-06-29
21
25
  changes: Historique initial
22
26
  ---
23
27
 
24
- # Traduire votre Nuxt and Vue avec Intlayer | Internationalisation (i18n)
28
+ # Traduisez votre site Nuxt et Vue avec Intlayer | Internationalisation (i18n)
25
29
 
26
- Voir [Modèle d'application](https://github.com/aymericzip/intlayer-nuxt-template) sur GitHub.
30
+ ## Table des matières
31
+
32
+ <TOC/>
27
33
 
28
34
  ## Qu'est-ce qu'Intlayer ?
29
35
 
@@ -34,12 +40,33 @@ Avec Intlayer, vous pouvez :
34
40
  - **Gérer facilement les traductions** en utilisant des dictionnaires déclaratifs au niveau des composants.
35
41
  - **Localiser dynamiquement les métadonnées**, les routes et le contenu.
36
42
  - **Assurer la prise en charge de TypeScript** avec des types générés automatiquement, améliorant l'autocomplétion et la détection d'erreurs.
37
- - **Bénéficier de fonctionnalités avancées**, comme la détection et le changement dynamique de la langue.
43
+ - **Bénéficier de fonctionnalités avancées**, comme la détection et le changement dynamique de la locale.
38
44
 
39
45
  ---
40
46
 
41
47
  ## Guide étape par étape pour configurer Intlayer dans une application Nuxt
42
48
 
49
+ <Tab defaultTab="video">
50
+ <TabItem label="Vidéo" value="video">
51
+
52
+ <iframe title="Comment traduire votre application Nuxt et Vue avec Intlayer ? Découvrez Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/nhUcUAVQ6eQ?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
53
+
54
+ </TabItem>
55
+ <TabItem label="Code" value="code">
56
+
57
+ <iframe
58
+ src="https://stackblitz.com/github/aymericzip/intlayer-nuxt-4-template?embed=1&ctl=1&file=intlayer.config.ts"
59
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
60
+ title="Démo CodeSandbox - Comment internationaliser votre application avec Intlayer"
61
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
62
+ loading="lazy"
63
+ />
64
+
65
+ </TabItem>
66
+ </Tab>
67
+
68
+ Voir le [Modèle d'application](https://github.com/aymericzip/intlayer-nuxt-4-template) sur GitHub.
69
+
43
70
  ### Étape 1 : Installer les dépendances
44
71
 
45
72
  Installez les paquets nécessaires avec npm :
@@ -61,13 +88,13 @@ yarn add --save-dev nuxt-intlayer
61
88
 
62
89
  - **intlayer**
63
90
 
64
- Le paquet principal qui fournit des outils d'internationalisation pour la gestion de la configuration, la traduction, la [déclaration de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md), la transpilation, et les [commandes CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_cli.md).
91
+ Le package principal qui fournit des outils d'internationalisation pour la gestion de la configuration, la traduction, la [déclaration de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/content_file.md), la transpilation, et les [commandes CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/cli/index.md).
65
92
 
66
93
  - **vue-intlayer**
67
- Le paquet qui intègre Intlayer avec une application Vue. Il fournit les composables pour les composants Vue.
94
+ Le package qui intègre Intlayer avec l'application Vue. Il fournit les composables pour les composants Vue.
68
95
 
69
96
  - **nuxt-intlayer**
70
- Le module Nuxt qui intègre Intlayer avec les applications Nuxt. Il fournit une configuration automatique, un middleware pour la détection de la langue, la gestion des cookies et la redirection des URL.
97
+ Le module Nuxt qui intègre Intlayer avec les applications Nuxt. Il fournit une configuration automatique, un middleware pour la détection de la locale, la gestion des cookies, et la redirection des URL.
71
98
 
72
99
  ### Étape 2 : Configuration de votre projet
73
100
 
@@ -82,13 +109,10 @@ const config: IntlayerConfig = {
82
109
  Locales.ENGLISH,
83
110
  Locales.FRENCH,
84
111
  Locales.SPANISH,
85
- // Vos autres langues
112
+ // Vos autres locales
86
113
  ],
87
114
  defaultLocale: Locales.ENGLISH,
88
115
  },
89
- content: {
90
- contentDir: ["."], // Parce que par défaut Intlayer surveillera les fichiers de déclaration de contenu depuis le répertoire `./src`
91
- },
92
116
  };
93
117
 
94
118
  export default config;
@@ -98,20 +122,16 @@ export default config;
98
122
  import { Locales } from "intlayer";
99
123
 
100
124
  /** @type {import('intlayer').IntlayerConfig} */
101
- // Configuration de l'internationalisation et du contenu
102
125
  const config = {
103
126
  internationalization: {
104
127
  locales: [
105
128
  Locales.ENGLISH,
106
129
  Locales.FRENCH,
107
130
  Locales.SPANISH,
108
- // Vos autres langues
131
+ // Vos autres locales
109
132
  ],
110
133
  defaultLocale: Locales.ENGLISH,
111
134
  },
112
- content: {
113
- contentDir: ["."], // Répertoire de contenu à surveiller
114
- },
115
135
  };
116
136
 
117
137
  export default config;
@@ -121,26 +141,22 @@ export default config;
121
141
  const { Locales } = require("intlayer");
122
142
 
123
143
  /** @type {import('intlayer').IntlayerConfig} */
124
- // Configuration de l'internationalisation et du contenu
125
144
  const config = {
126
145
  internationalization: {
127
146
  locales: [
128
147
  Locales.ENGLISH,
129
148
  Locales.FRENCH,
130
149
  Locales.SPANISH,
131
- // Vos autres langues
150
+ // Vos autres locales
132
151
  ],
133
152
  defaultLocale: Locales.ENGLISH,
134
153
  },
135
- content: {
136
- contentDir: ["."],
137
- },
138
154
  };
139
155
 
140
156
  module.exports = config;
141
157
  ```
142
158
 
143
- > Grâce à ce fichier de configuration, vous pouvez configurer des URLs localisées, la redirection via middleware, les noms des cookies, l'emplacement et l'extension de vos déclarations de contenu, désactiver les logs d'Intlayer dans la console, et bien plus encore. Pour une liste complète des paramètres disponibles, consultez la [documentation de configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md).
159
+ > Grâce à ce fichier de configuration, vous pouvez configurer des URLs localisées, la redirection via middleware, les noms des cookies, l'emplacement et l'extension de vos déclarations de contenu, désactiver les logs Intlayer dans la console, et bien plus encore. Pour une liste complète des paramètres disponibles, consultez la [documentation de configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md).
144
160
 
145
161
  ### Étape 3 : Intégrer Intlayer dans votre configuration Nuxt
146
162
 
@@ -161,221 +177,36 @@ export default defineNuxtConfig({
161
177
 
162
178
  Créez et gérez vos déclarations de contenu pour stocker les traductions :
163
179
 
164
- ```tsx fileName="components/helloWorld.content.ts" contentDeclarationFormat="typescript"
165
- import { t, type Dictionary } from "intlayer";
180
+ ```tsx fileName="content/home-page.content.ts" contentDeclarationFormat="typescript"
181
+ import { type Dictionary, t } from "intlayer";
166
182
 
167
- const helloWorldContent = {
168
- key: "helloworld",
183
+ const content = {
184
+ key: "home-page",
169
185
  content: {
170
- count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
171
- edit: t({
172
- en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
173
- fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
174
- es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
175
- }),
176
- checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
177
- nuxtIntlayer: t({
178
- en: "Nuxt Intlayer documentation",
179
- fr: "Documentation de Nuxt Intlayer",
180
- es: "Documentación de Nuxt Intlayer",
181
- }),
182
- learnMore: t({
183
- en: "Learn more about Nuxt in the ",
184
- fr: "En savoir plus sur Nuxt dans la ",
185
- es: "Aprenda más sobre Nuxt en la ",
186
+ title: t({
187
+ en: "Hello world",
188
+ fr: "Bonjour le monde",
189
+ es: "Hola mundo",
186
190
  }),
187
- nuxtDocs: t({
188
- en: "Nuxt Documentation",
189
- fr: "Documentation Nuxt",
190
- es: "Documentación de Nuxt",
191
+ metaTitle: t({
192
+ en: "Welcome | My Application",
193
+ fr: "Bienvenue | Mon Application",
194
+ es: "Bienvenido | Mi Aplicación",
191
195
  }),
192
- readTheDocs: t({
193
- en: "Click on the Nuxt logo to learn more",
194
- fr: "Cliquez sur le logo Nuxt pour en savoir plus",
195
- es: "Haga clic en el logotipo de Nuxt para obtener más información",
196
+ metaDescription: t({
197
+ en: "Discover your multilingual Nuxt app homepage powered by Intlayer.",
198
+ fr: "Découvrez la page d'accueil multilingue de votre application Nuxt propulsée par Intlayer.",
199
+ es: "Descubre la página de inicio multilingüe de tu aplicación Nuxt impulsada por Intlayer.",
196
200
  }),
197
201
  },
198
202
  } satisfies Dictionary;
199
203
 
200
- export default helloWorldContent;
201
- fr: "Cliquez sur le logo Nuxt pour en savoir plus",
202
- es: "Haga clic en el logotipo de Nuxt para obtener más información",
203
- }),
204
- },
205
- } satisfies Dictionary;
206
-
207
- export default helloWorldContent;
208
- ```
209
-
210
- ```javascript fileName="components/helloWorld.content.mjs" contentDeclarationFormat="esm"
211
- import { t } from "intlayer";
212
-
213
- /** @type {import('intlayer').Dictionary} */
214
- const helloWorldContent = {
215
- key: "helloworld",
216
- content: {
217
- count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
218
- edit: t({
219
- en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
220
- fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
221
- es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
222
- }),
223
- checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
224
- nuxtIntlayer: t({
225
- en: "Nuxt Intlayer documentation",
226
- fr: "Documentation de Nuxt Intlayer",
227
- es: "Documentación de Nuxt Intlayer",
228
- }),
229
- learnMore: t({
230
- en: "Learn more about Nuxt in the ",
231
- fr: "En savoir plus sur Nuxt dans la ",
232
- es: "Aprenda más sobre Nuxt en la ",
233
- }),
234
- nuxtDocs: t({
235
- en: "Nuxt Documentation",
236
- fr: "Documentation Nuxt",
237
- es: "Documentación de Nuxt",
238
- }),
239
- readTheDocs: t({
240
- en: "Click on the Nuxt logo to learn more",
241
- fr: "Cliquez sur le logo Nuxt pour en savoir plus",
242
- es: "Haga clic en el logotipo de Nuxt para obtener más información",
243
- }),
244
- },
245
- };
246
-
247
- export default helloWorldContent;
248
- ```
249
-
250
- ```javascript fileName="components/helloWorld.content.cjs" contentDeclarationFormat="commonjs"
251
- const { t } = require("intlayer");
252
-
253
- /** @type {import('intlayer').Dictionary} */
254
- const helloWorldContent = {
255
- key: "helloworld",
256
- content: {
257
- count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
258
- edit: t({
259
- en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
260
- fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
261
- es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
262
- }),
263
- checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
264
- nuxtIntlayer: t({
265
- en: "Nuxt Intlayer documentation",
266
- fr: "Documentation de Nuxt Intlayer",
267
- es: "Documentación de Nuxt Intlayer",
268
- }),
269
- learnMore: t({
270
- en: "Learn more about Nuxt in the ",
271
- fr: "En savoir plus sur Nuxt dans la ",
272
- es: "Aprenda más sobre Nuxt en la ",
273
- }),
274
- nuxtDocs: t({
275
- en: "Nuxt Documentation",
276
- fr: "Documentation Nuxt",
277
- es: "Documentación de Nuxt",
278
- }),
279
- readTheDocs: t({
280
- en: "Click on the Nuxt logo to learn more",
281
- fr: "Cliquez sur le logo Nuxt pour en savoir plus",
282
- es: "Haga clic en el logotipo de Nuxt para obtener más información",
283
- }),
284
- },
285
- };
286
-
287
- module.exports = helloWorldContent;
288
- es: "Documentación de Nuxt Intlayer",
289
- }),
290
- learnMore: t({
291
- en: "Learn more about Nuxt in the ",
292
- fr: "En savoir plus sur Nuxt dans la ",
293
- es: "Aprenda más sobre Nuxt en la ",
294
- }),
295
- nuxtDocs: t({
296
- en: "Nuxt Documentation",
297
- fr: "Documentation Nuxt",
298
- es: "Documentación de Nuxt",
299
- }),
300
- readTheDocs: t({
301
- en: "Click on the Nuxt logo to learn more",
302
- fr: "Cliquez sur le logo Nuxt pour en savoir plus",
303
- es: "Haga clic en el logotipo de Nuxt para obtener más información",
304
- }),
305
- },
306
- };
307
-
308
- module.exports = helloWorldContent;
204
+ export default content;
309
205
  ```
310
206
 
311
- ```json fileName="components/helloWorld.content.json" contentDeclarationFormat="json"
312
- {
313
- "$schema": "https://intlayer.org/schema.json",
314
- "key": "helloworld",
315
- "content": {
316
- "count": {
317
- "nodeType": "translation",
318
- "translation": {
319
- "en": "count is ",
320
- "fr": "le compte est ",
321
- "es": "el recuento es "
322
- }
323
- },
324
- "edit": {
325
- "nodeType": "translation",
326
- "translation": {
327
- "en": "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
328
- "fr": "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
329
- "es": "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR"
330
- }
331
- },
332
- "checkOut": {
333
- "nodeType": "translation",
334
- "translation": {
335
- "en": "Check out ",
336
- "fr": "Vérifiez ",
337
- "es": "Compruebe "
338
- }
339
- },
340
- "nuxtIntlayer": {
341
- "nodeType": "translation",
342
- "translation": {
343
- "en": "Documentation de Nuxt Intlayer",
344
- "fr": "Documentation de Nuxt Intlayer",
345
- "es": "Documentación de Nuxt Intlayer"
346
- }
347
- },
348
- "learnMore": {
349
- "nodeType": "translation",
350
- "translation": {
351
- "en": "En savoir plus sur Nuxt dans la ",
352
- "fr": "En savoir plus sur Nuxt dans la ",
353
- "es": "Aprenda más sobre Nuxt en la "
354
- }
355
- },
356
- "nuxtDocs": {
357
- "nodeType": "translation",
358
- "translation": {
359
- "en": "Documentation Nuxt",
360
- "fr": "Documentation Nuxt",
361
- "es": "Documentación de Nuxt"
362
- }
363
- },
364
- "readTheDocs": {
365
- "nodeType": "translation",
366
- "translation": {
367
- "en": "Cliquez sur le logo Nuxt pour en savoir plus",
368
- "fr": "Cliquez sur le logo Nuxt pour en savoir plus",
369
- "es": "Haga clic en el logotipo de Nuxt para obtener más información"
370
- }
371
- }
372
- }
373
- }
374
- ```
375
-
376
- > Vos déclarations de contenu peuvent être définies n'importe où dans votre application tant qu'elles sont incluses dans le répertoire `contentDir` (par défaut, `./src`). Et correspondent à l'extension de fichier de déclaration de contenu (par défaut, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
207
+ > Vos déclarations de contenu peuvent être définies n'importe où dans votre application tant qu'elles sont incluses dans le répertoire `contentDir` (par défaut, `./src`). Et correspondent à l'extension des fichiers de déclaration de contenu (par défaut, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
377
208
 
378
- > Pour plus de détails, référez-vous à la [documentation sur la déclaration de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md).
209
+ > Pour plus de détails, consultez la [documentation sur la déclaration de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/content_file.md).
379
210
 
380
211
  ### Étape 5 : Utilisez Intlayer dans votre code
381
212
 
@@ -428,86 +259,76 @@ const countRef = ref(0);
428
259
  </template>
429
260
  ```
430
261
 
431
- #### Accéder au contenu dans Intlayer
262
+ #### Accès au contenu dans Intlayer
432
263
 
433
264
  Intlayer propose différentes API pour accéder à votre contenu :
434
265
 
435
- - **Syntaxe basée sur les composants** (recommandée) :
436
- Utilisez la syntaxe `<myContent />` ou `<Component :is="myContent" />` pour rendre le contenu en tant que nœud Intlayer. Cela s'intègre parfaitement avec l'[Éditeur Visuel](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md) et le [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_CMS.md).
266
+ - **Syntaxe basée sur les composants** (recommandée) :
267
+ Utilisez la syntaxe `<myContent />`, ou `<Component :is="myContent" />` pour rendre le contenu en tant que nœud Intlayer. Cela s'intègre parfaitement avec l'[Éditeur Visuel](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md) et le [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_CMS.md).
437
268
 
438
- - **Syntaxe basée sur les chaînes** :
269
+ - **Syntaxe basée sur les chaînes** :
439
270
  Utilisez `{{ myContent }}` pour afficher le contenu en texte brut, sans support de l'Éditeur Visuel.
440
271
 
441
- - **Syntaxe HTML brute** :
272
+ - **Syntaxe HTML brute** :
442
273
  Utilisez `<div v-html="myContent" />` pour afficher le contenu en HTML brut, sans support de l'Éditeur Visuel.
443
274
 
444
- - **Syntaxe de déstructuration** :
445
- Le composable `useIntlayer` retourne un Proxy avec le contenu. Ce proxy peut être déstructuré pour accéder au contenu tout en conservant la réactivité.
446
- - Utilisez `const content = useIntlayer("myContent");` et `{{ content.myContent }}` / `<content.myContent />`.
447
- - Ou utilisez `const { myContent } = useIntlayer("myContent");` et `{{ myContent}}` / `<myContent/>` pour déstructurer le contenu.
275
+ - **Syntaxe de déstructuration** :
276
+ Le composable `useIntlayer` retourne un Proxy contenant le contenu. Ce proxy peut être déstructuré pour accéder au contenu tout en conservant la réactivité.
277
+ - Utilisez `const content = useIntlayer("myContent");` et `{{ content.myContent }}` / `<content.myContent />`.
278
+ - Ou utilisez `const { myContent } = useIntlayer("myContent");` et `{{ myContent}}` / `<myContent/>` pour déstructurer le contenu.
448
279
 
449
280
  ### (Optionnel) Étape 6 : Changer la langue de votre contenu
450
281
 
451
282
  Pour changer la langue de votre contenu, vous pouvez utiliser la fonction `setLocale` fournie par le composable `useLocale`. Cette fonction vous permet de définir la locale de l'application et de mettre à jour le contenu en conséquence.
452
283
 
453
- Créez un composant pour basculer entre les langues :
284
+ Créez un composant pour basculer entre les langues en utilisant `NuxtLink`. **Utiliser des liens plutôt que des boutons pour le changement de locale est une bonne pratique pour le SEO et la découvrabilité des pages**, car cela permet aux moteurs de recherche d'explorer et d'indexer toutes les versions localisées de vos pages :
454
285
 
455
286
  ```vue fileName="components/LocaleSwitcher.vue"
456
- <template>
457
- <div class="locale-switcher">
458
- <select v-model="selectedLocale" @change="changeLocale">
459
- <option v-for="loc in availableLocales" :key="loc" :value="loc">
460
- {{ getLocaleName(loc) }}
461
- </option>
462
- </select>
463
- </div>
464
- </template>
465
-
466
287
  <script setup lang="ts">
467
- import { ref, watch } from "vue";
468
- import { getLocaleName } from "intlayer";
288
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
469
289
  import { useLocale } from "vue-intlayer";
470
290
 
471
- // Obtenir les informations de locale et la fonction setLocale
291
+ // Nuxt importe automatiquement useRoute
292
+ const route = useRoute();
472
293
  const { locale, availableLocales, setLocale } = useLocale();
473
-
474
- // Suivre la locale sélectionnée avec un ref
475
- const selectedLocale = ref(locale.value);
476
-
477
- // Mettre à jour la locale lorsque la sélection change
478
- const changeLocale = () => setLocale(selectedLocale.value);
479
-
480
- // Garder selectedLocale synchronisé avec la locale globale
481
- watch(
482
- () => locale.value,
483
- (newLocale) => {
484
- selectedLocale.value = newLocale;
485
- }
486
- );
487
294
  </script>
295
+
296
+ <template>
297
+ <nav class="locale-switcher">
298
+ <NuxtLink
299
+ v-for="localeEl in availableLocales"
300
+ :key="localeEl"
301
+ :to="getLocalizedUrl(route.fullPath, localeEl)"
302
+ class="locale-link"
303
+ :class="{ 'active-locale': localeEl === locale }"
304
+ @click="setLocale(localeEl)"
305
+ >
306
+ {{ getLocaleName(localeEl) }}
307
+ </NuxtLink>
308
+ </nav>
488
309
  </template>
310
+ ```
489
311
 
490
- <style scoped>
491
- .locale-switcher {
492
- margin: 1rem 0;
493
- }
312
+ > Utiliser `NuxtLink` avec des attributs `href` appropriés (via `getLocalizedUrl`) garantit que les moteurs de recherche peuvent découvrir toutes les variantes linguistiques de vos pages. Cela est préférable au changement de langue uniquement via JavaScript, que les robots des moteurs de recherche peuvent ne pas suivre.
494
313
 
495
- select {
496
- padding: 0.5rem;
497
- border-radius: 0.25rem;
498
- border: 1px solid #ccc;
499
- }
500
- </style>
314
+ Ensuite, configurez votre `app.vue` pour utiliser des layouts :
315
+
316
+ ```vue fileName="app.vue"
317
+ <template>
318
+ <NuxtLayout>
319
+ <NuxtPage />
320
+ </NuxtLayout>
321
+ </template>
501
322
  ```
502
323
 
503
- Ensuite, utilisez ce composant dans vos pages ou votre mise en page :
324
+ ### (Optionnel) Étape 6b : Créer un layout avec navigation
504
325
 
505
- ```vue fileName="app.vue"
326
+ Les layouts Nuxt vous permettent de définir une structure commune pour vos pages. Créez un layout par défaut qui inclut le sélecteur de langue et la navigation :
327
+
328
+ ```vue fileName="layouts/default.vue"
506
329
  <script setup lang="ts">
507
- import { useIntlayer } from "vue-intlayer";
330
+ import Links from "~/components/Links.vue";
508
331
  import LocaleSwitcher from "~/components/LocaleSwitcher.vue";
509
-
510
- const content = useIntlayer("app"); // Créez le fichier de déclaration intlayer associé
511
332
  </script>
512
333
 
513
334
  <template>
@@ -516,15 +337,20 @@ const content = useIntlayer("app"); // Créez le fichier de déclaration intlaye
516
337
  <LocaleSwitcher />
517
338
  </header>
518
339
  <main>
519
- <NuxtPage />
340
+ <slot />
520
341
  </main>
342
+
343
+ <Links href="/">Accueil</Links>
344
+ <Links href="/about">À propos</Links>
521
345
  </div>
522
346
  </template>
523
347
  ```
524
348
 
525
- ### (Optionnel) Étape 7 : Ajoutez le routage localisé à votre application
349
+ Le composant `Links` (montré ci-dessous) garantit que les liens de navigation internes sont automatiquement localisés.
350
+
351
+ ### (Optionnel) Étape 7 : Ajouter le routage localisé à votre application
526
352
 
527
- Nuxt gère automatiquement le routage localisé lorsqu'on utilise le module `nuxt-intlayer`. Cela crée des routes pour chaque langue automatiquement en fonction de la structure de votre répertoire de pages.
353
+ Nuxt gère automatiquement le routage localisé lorsqu'on utilise le module `nuxt-intlayer`. Cela crée des routes pour chaque langue automatiquement en fonction de la structure de votre répertoire pages.
528
354
 
529
355
  Exemple :
530
356
 
@@ -536,242 +362,291 @@ pages/
536
362
  └── index.vue → /contact, /fr/contact, /es/contact
537
363
  ```
538
364
 
539
- Pour créer une page localisée, il suffit de créer vos fichiers Vue dans le répertoire `pages/` :
365
+ Pour créer des pages localisées, il suffit de créer vos fichiers Vue dans le répertoire `pages/`. Voici deux exemples de pages :
366
+
367
+ **Page d'accueil (`pages/index.vue`) :**
368
+
369
+ ```vue fileName="pages/index.vue"
370
+ <script setup lang="ts">
371
+ import { useIntlayer } from "vue-intlayer";
372
+
373
+ const content = useIntlayer("home-page");
374
+
375
+ useHead({
376
+ title: content.metaTitle.value,
377
+ meta: [
378
+ {
379
+ name: "description",
380
+ content: content.metaDescription.value,
381
+ },
382
+ ],
383
+ });
384
+ </script>
385
+
386
+ <template>
387
+ <h1><content.title /></h1>
388
+ </template>
389
+ ```
390
+
391
+ **Page À propos (`pages/about.vue`) :**
540
392
 
541
393
  ```vue fileName="pages/about.vue"
542
394
  <script setup lang="ts">
543
395
  import { useIntlayer } from "vue-intlayer";
544
396
 
545
- const content = useIntlayer("about");
397
+ const content = useIntlayer("about-page");
398
+
399
+ useHead({
400
+ title: content.metaTitle.raw, // Utiliser .raw pour accéder à la chaîne primitive
401
+ meta: [
402
+ {
403
+ name: "description",
404
+ content: content.metaDescription.raw, // Utilisez .raw pour accéder à la chaîne primitive
405
+ },
406
+ ],
407
+ });
546
408
  </script>
547
409
 
548
410
  <template>
549
- <div>
550
- <h1>{{ content.title }}</h1>
551
- <p>{{ content.description }}</p>
552
- </div>
411
+ <h1><content.title /></h1>
553
412
  </template>
554
413
  ```
555
414
 
556
- Le module `nuxt-intlayer` va automatiquement :
415
+ > Remarque : `useHead` est importé automatiquement dans Nuxt. Vous pouvez accéder aux valeurs du contenu en utilisant soit `.value` (réactif) soit `.raw` (chaîne primitive) selon vos besoins.
557
416
 
558
- - Détecter la langue préférée de l'utilisateur
559
- - Gérer le changement de langue via l'URL
417
+ Le module `nuxt-intlayer` fera automatiquement :
418
+
419
+ - Détecter la locale préférée de l'utilisateur
420
+ - Gérer le changement de locale via l'URL
560
421
  - Définir l'attribut `<html lang="">` approprié
561
- - Gérer les cookies de langue
422
+ - Gérer les cookies de locale
562
423
  - Rediriger les utilisateurs vers l'URL localisée appropriée
563
424
 
564
425
  ### (Optionnel) Étape 8 : Création d'un composant de lien localisé
565
426
 
566
- Pour garantir que la navigation de votre application respecte la langue actuelle, vous pouvez créer un composant personnalisé `LocalizedLink`. Ce composant préfixe automatiquement les URL internes avec la langue courante.
567
-
568
- ```vue fileName="components/LocalizedLink.vue"
569
- <template>
570
- <NuxtLink :to="localizedHref" v-bind="$attrs">
571
- <slot />
572
- </NuxtLink>
573
- </template>
427
+ Pour garantir que la navigation de votre application respecte la locale actuelle, vous pouvez créer un composant personnalisé `Links`. Ce composant préfixe automatiquement les URLs internes avec la langue courante, ce qui est essentiel pour le **SEO et la découvrabilité des pages**.
574
428
 
429
+ ```vue fileName="components/Links.vue"
575
430
  <script setup lang="ts">
576
- import { computed } from "vue";
577
431
  import { getLocalizedUrl } from "intlayer";
578
432
  import { useLocale } from "vue-intlayer";
579
433
 
580
- const props = defineProps({
581
- to: {
582
- type: String,
583
- required: true,
584
- },
585
- });
434
+ interface Props {
435
+ href: string;
436
+ locale?: string;
437
+ }
438
+
439
+ const props = defineProps<Props>();
440
+
441
+ const { locale: currentLocale } = useLocale();
586
442
 
587
- const { locale } = useLocale();
443
+ // Calculer le chemin final
444
+ const finalPath = computed(() => {
445
+ // 1. Vérifier si le lien est externe
446
+ const isExternal = /^https?:\/\//.test(props.href || "");
588
447
 
589
- // Vérifie si le lien est externe
590
- const isExternalLink = computed(() => /^https?:\/\//.test(props.to || ""));
448
+ // 2. Si externe, retourner tel quel (NuxtLink gère la génération de la balise <a>)
449
+ if (isExternal) return props.href;
591
450
 
592
- // Crée un href localisé pour les liens internes
593
- const localizedHref = computed(() =>
594
- isExternalLink.value ? props.to : getLocalizedUrl(props.to, locale.value)
595
- );
451
+ // 3. Si le lien est interne, localiser l'URL
452
+ const targetLocale = props.locale || currentLocale.value;
453
+ return getLocalizedUrl(props.href, targetLocale);
454
+ });
596
455
  </script>
456
+
457
+ <template>
458
+ <NuxtLink :to="finalPath" v-bind="$attrs">
459
+ <slot />
460
+ </NuxtLink>
461
+ </template>
597
462
  ```
598
463
 
599
464
  Ensuite, utilisez ce composant dans toute votre application :
600
465
 
601
- ```vue fileName="pages/index.vue"
466
+ ```vue fileName="layouts/default.vue"
467
+ <script setup lang="ts">
468
+ import Links from "~/components/Links.vue";
469
+ import LocaleSwitcher from "~/components/LocaleSwitcher.vue";
470
+ </script>
471
+
602
472
  <template>
603
473
  <div>
604
- <LocalizedLink to="/about">
605
- {{ content.aboutLink }}
606
- </LocalizedLink>
607
- <LocalizedLink to="/contact">
608
- {{ content.contactLink }}
609
- </LocalizedLink>
474
+ <header>
475
+ <LocaleSwitcher />
476
+ </header>
477
+ <main>
478
+ <slot />
479
+ </main>
480
+
481
+ <Links href="/">Accueil</Links>
482
+ <Links href="/about">À propos</Links>
610
483
  </div>
611
484
  </template>
612
-
613
- <script setup lang="ts">
614
- import { useIntlayer } from "vue-intlayer";
615
- import LocalizedLink from "~/components/LocalizedLink.vue";
616
-
617
- const content = useIntlayer("home");
618
- </script>
619
485
  ```
620
486
 
487
+ > En utilisant `NuxtLink` avec des chemins localisés, vous vous assurez que :
488
+ >
489
+ > - Les moteurs de recherche peuvent explorer et indexer toutes les versions linguistiques de vos pages
490
+ > - Les utilisateurs peuvent partager directement des URLs localisées
491
+ > - L'historique du navigateur fonctionne correctement avec des URLs préfixées par la locale
492
+
621
493
  ### (Optionnel) Étape 9 : Gérer les métadonnées et le SEO
622
494
 
623
- Nuxt offre d'excellentes capacités SEO. Vous pouvez utiliser Intlayer pour gérer les métadonnées localisées :
495
+ Nuxt offre d'excellentes capacités SEO via le composable `useHead` (auto-importé). Vous pouvez utiliser Intlayer pour gérer les métadonnées localisées en utilisant l'accesseur `.raw` ou `.value` pour obtenir la valeur primitive de chaîne :
624
496
 
625
497
  ```vue fileName="pages/about.vue"
626
498
  <script setup lang="ts">
627
- import { useSeoMeta } from "nuxt/app";
628
- import { getIntlayer } from "intlayer";
629
- import { useLocale } from "vue-intlayer";
499
+ import { useIntlayer } from "vue-intlayer";
630
500
 
631
- const { locale } = useLocale();
632
- const content = getIntlayer("about-meta", locale.value);
501
+ // useHead est auto-importé dans Nuxt
502
+ const content = useIntlayer("about-page");
633
503
 
634
- useSeoMeta({
635
- title: content.title,
636
- description: content.description,
504
+ useHead({
505
+ title: content.metaTitle.raw, // Utilisez .raw pour accéder à la chaîne primitive
506
+ meta: [
507
+ {
508
+ name: "description",
509
+ content: content.metaDescription.raw, // Utilisez .raw pour accéder à la chaîne primitive
510
+ },
511
+ ],
637
512
  });
638
513
  </script>
639
514
 
640
515
  <template>
641
- <div>
642
- <h1>{{ content.pageTitle }}</h1>
643
- <p>{{ content.pageContent }}</p>
644
- </div>
516
+ <h1><content.title /></h1>
645
517
  </template>
646
518
  ```
647
519
 
520
+ > Alternativement, vous pouvez utiliser la fonction `import { getIntlayer } from "intlayer"` pour obtenir le contenu sans la réactivité de Vue.
521
+
522
+ > **Accéder aux valeurs du contenu :**
523
+ >
524
+ > - Utilisez `.raw` pour obtenir la valeur primitive de la chaîne (non réactive)
525
+ > - Utilisez `.value` pour obtenir la valeur réactive
526
+ > - Utilisez la syntaxe composant `<content.key />` pour le support de l'éditeur visuel
527
+
648
528
  Créez la déclaration de contenu correspondante :
649
529
 
650
- ```ts fileName="pages/about-meta.content.ts"
530
+ ```ts fileName="pages/about-page.content.ts" contentDeclarationFormat="typescript"
651
531
  import { t, type Dictionary } from "intlayer";
652
- import type { useSeoMeta } from "nuxt/app";
653
532
 
654
- const aboutMetaContent = {
655
- key: "about-meta",
533
+ const aboutPageContent = {
534
+ key: "about-page",
656
535
  content: {
657
- title: t({
536
+ metaTitle: t({
658
537
  en: "About Us - My Company",
659
538
  fr: "À Propos - Ma Société",
660
539
  es: "Acerca de Nosotros - Mi Empresa",
661
540
  }),
662
- description: t({
541
+ metaDescription: t({
663
542
  en: "Learn more about our company and our mission",
664
543
  fr: "En savoir plus sur notre société et notre mission",
665
544
  es: "Conozca más sobre nuestra empresa y nuestra misión",
666
545
  }),
546
+ title: t({
547
+ en: "About Us",
548
+ fr: "À Propos",
549
+ es: "Acerca de Nosotros",
550
+ }),
667
551
  },
668
- } satisfies Dictionary<Parameters<typeof useSeoMeta>[0]>;
552
+ } satisfies Dictionary;
669
553
 
670
- export default aboutMetaContent;
554
+ export default aboutPageContent;
671
555
  ```
672
556
 
673
- ```typescript fileName="pages/about-meta.content.mjs" contentDeclarationFormat="esm"
557
+ ```javascript fileName="pages/about-page.content.mjs" contentDeclarationFormat="esm"
674
558
  import { t } from "intlayer";
675
559
 
676
560
  /** @type {import('intlayer').Dictionary} */
677
- const aboutMetaContent = {
678
- key: "about-meta",
561
+ const aboutPageContent = {
562
+ key: "about-page",
679
563
  content: {
680
- title: t({
681
- zh: "关于我们 - 我的公司",
564
+ metaTitle: t({
682
565
  en: "About Us - My Company",
683
566
  fr: "À Propos - Ma Société",
567
+ fr: "À Propos - Ma Société",
684
568
  es: "Acerca de Nosotros - Mi Empresa",
685
569
  }),
686
- description: t({
687
- zh: "了解更多关于我们公司和我们的使命",
570
+ metaDescription: t({
688
571
  en: "Learn more about our company and our mission",
689
572
  fr: "En savoir plus sur notre société et notre mission",
690
573
  es: "Conozca más sobre nuestra empresa y nuestra misión",
691
574
  }),
575
+ title: t({
576
+ en: "About Us",
577
+ fr: "À Propos",
578
+ es: "Acerca de Nosotros",
579
+ }),
692
580
  },
693
581
  };
694
582
 
695
- export default aboutMetaContent;
583
+ export default aboutPageContent;
696
584
  ```
697
585
 
698
- ```typescript fileName="pages/about-meta.content.js" contentDeclarationFormat="cjs"
586
+ ```javascript fileName="pages/about-page.content.cjs" contentDeclarationFormat="commonjs"
699
587
  const { t } = require("intlayer");
700
588
 
701
589
  /** @type {import('intlayer').Dictionary} */
702
- const aboutMetaContent = {
703
- key: "about-meta",
590
+ const aboutPageContent = {
591
+ key: "about-page",
704
592
  content: {
705
- title: t({
706
- zh: "关于我们 - 我的公司",
593
+ metaTitle: t({
707
594
  en: "About Us - My Company",
708
595
  fr: "À Propos - Ma Société",
709
596
  es: "Acerca de Nosotros - Mi Empresa",
710
597
  }),
711
- fr: "À Propos - Ma Société",
712
- es: "Acerca de Nosotros - Mi Empresa",
713
- }),
714
- description: t({
715
- zh: "了解更多关于我们公司和我们的使命",
598
+ metaDescription: t({
716
599
  en: "Learn more about our company and our mission",
717
600
  fr: "En savoir plus sur notre société et notre mission",
718
601
  es: "Conozca más sobre nuestra empresa y nuestra misión",
719
602
  }),
603
+ title: t({
604
+ en: "About Us",
605
+ fr: "À Propos",
606
+ es: "Acerca de Nosotros",
607
+ }),
720
608
  },
721
609
  };
722
610
 
723
- module.exports = aboutMetaContent;
611
+ module.exports = aboutPageContent;
724
612
  ```
725
613
 
726
- ```json fileName="pages/about-meta.content.json" contentDeclarationFormat="json"
614
+ ```json fileName="pages/about-page.content.json" contentDeclarationFormat="json"
727
615
  {
728
- "key": "about-meta",
616
+ "$schema": "https://intlayer.org/schema.json",
617
+ "key": "about-page",
729
618
  "content": {
730
- "title": {
619
+ "metaTitle": {
731
620
  "nodeType": "translation",
732
- "translations": {
733
- "zh": "关于我们 - 我的公司",
621
+ "translation": {
734
622
  "en": "About Us - My Company",
735
623
  "fr": "À Propos - Ma Société",
736
624
  "es": "Acerca de Nosotros - Mi Empresa"
737
625
  }
738
626
  },
739
- "description": {
627
+ "metaDescription": {
740
628
  "nodeType": "translation",
741
- "translations": {
742
- "zh": "了解更多关于我们公司和我们的使命",
629
+ "translation": {
743
630
  "en": "Learn more about our company and our mission",
744
631
  "fr": "En savoir plus sur notre société et notre mission",
745
632
  "es": "Conozca más sobre nuestra empresa y nuestra misión"
746
633
  }
634
+ },
635
+ "title": {
636
+ "nodeType": "translation",
637
+ "translation": {
638
+ "en": "About Us",
639
+ "fr": "À Propos",
640
+ "es": "Acerca de Nosotros"
641
+ }
747
642
  }
748
643
  }
749
644
  }
750
645
  ```
751
646
 
752
- ### Configurer TypeScript
753
-
754
- Intlayer utilise l'augmentation de module pour bénéficier de TypeScript et renforcer votre base de code.
755
-
756
- ![texte alternatif](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
757
-
758
- ![texte alternatif](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
759
-
760
- Assurez-vous que votre configuration TypeScript inclut les types générés automatiquement.
761
-
762
- ```json5 fileName="tsconfig.json"
763
- {
764
- // ... Vos configurations TypeScript existantes
765
- "include": [
766
- // ... Vos configurations TypeScript existantes
767
- ".intlayer/**/*.ts", // Inclure les types générés automatiquement
768
- ],
769
- }
770
- ```
771
-
772
647
  ### Configuration Git
773
648
 
774
- Il est recommandé d'ignorer les fichiers générés par Intlayer. Cela vous permet d'éviter de les commettre dans votre dépôt Git.
649
+ Il est recommandé d'ignorer les fichiers générés par Intlayer. Cela vous permet d'éviter de les committer dans votre dépôt Git.
775
650
 
776
651
  Pour ce faire, vous pouvez ajouter les instructions suivantes dans votre fichier `.gitignore` :
777
652
 
@@ -782,23 +657,21 @@ Pour ce faire, vous pouvez ajouter les instructions suivantes dans votre fichier
782
657
 
783
658
  ### Extension VS Code
784
659
 
785
- Pour améliorer votre expérience de développement avec Intlayer, vous pouvez installer l'extension officielle **Intlayer VS Code Extension**.
660
+ Pour améliorer votre expérience de développement avec Intlayer, vous pouvez installer l’**extension officielle Intlayer pour VS Code**.
786
661
 
787
662
  [Installer depuis le Marketplace VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
788
663
 
789
- Cette extension fournit :
664
+ Cette extension offre :
790
665
 
791
666
  - **Autocomplétion** pour les clés de traduction.
792
- - **Détection d'erreurs en temps réel** pour les traductions manquantes.
667
+ - **Détection derreurs en temps réel** pour les traductions manquantes.
793
668
  - **Aperçus en ligne** du contenu traduit.
794
669
  - **Actions rapides** pour créer et mettre à jour facilement les traductions.
795
670
 
796
- Pour plus de détails sur l'utilisation de l'extension, consultez la [documentation de l'extension Intlayer pour VS Code](https://intlayer.org/doc/vs-code-extension).
671
+ Pour plus de détails sur lutilisation de lextension, consultez la [documentation de lextension Intlayer pour VS Code](https://intlayer.org/doc/vs-code-extension).
797
672
 
798
673
  ---
799
674
 
800
675
  ### Aller plus loin
801
676
 
802
- Pour aller plus loin, vous pouvez implémenter l'[éditeur visuel](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md) ou externaliser votre contenu en utilisant le [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_CMS.md).
803
-
804
- ---
677
+ Pour aller plus loin, vous pouvez implémenter l[éditeur visuel](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md) ou externaliser votre contenu en utilisant le [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_CMS.md).