@intlayer/docs 7.1.8 → 7.2.0

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 (44) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/generated/docs.entry.cjs +19 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +19 -0
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +1 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/intlayer_with_svelte_kit.md +730 -0
  9. package/docs/ar/intlayer_with_vite+svelte.md +288 -104
  10. package/docs/de/intlayer_with_svelte_kit.md +730 -0
  11. package/docs/de/intlayer_with_vite+svelte.md +302 -101
  12. package/docs/en/intlayer_with_svelte_kit.md +560 -0
  13. package/docs/en/intlayer_with_vite+svelte.md +153 -15
  14. package/docs/en/introduction.md +2 -0
  15. package/docs/en-GB/intlayer_with_svelte_kit.md +730 -0
  16. package/docs/en-GB/intlayer_with_vite+svelte.md +262 -84
  17. package/docs/es/intlayer_with_svelte_kit.md +730 -0
  18. package/docs/es/intlayer_with_vite+svelte.md +300 -107
  19. package/docs/fr/intlayer_with_svelte_kit.md +762 -0
  20. package/docs/fr/intlayer_with_vite+svelte.md +297 -101
  21. package/docs/hi/intlayer_with_svelte_kit.md +730 -0
  22. package/docs/hi/intlayer_with_vite+svelte.md +298 -108
  23. package/docs/id/intlayer_with_svelte_kit.md +730 -0
  24. package/docs/id/intlayer_with_vite+svelte.md +277 -99
  25. package/docs/it/intlayer_with_svelte_kit.md +762 -0
  26. package/docs/it/intlayer_with_vite+svelte.md +275 -99
  27. package/docs/ja/intlayer_with_svelte_kit.md +730 -0
  28. package/docs/ja/intlayer_with_vite+svelte.md +295 -110
  29. package/docs/ko/intlayer_with_svelte_kit.md +730 -0
  30. package/docs/ko/intlayer_with_vite+svelte.md +286 -199
  31. package/docs/pl/intlayer_with_svelte_kit.md +732 -0
  32. package/docs/pl/intlayer_with_vite+svelte.md +273 -101
  33. package/docs/pt/intlayer_with_svelte_kit.md +764 -0
  34. package/docs/pt/intlayer_with_vite+svelte.md +290 -96
  35. package/docs/ru/intlayer_with_svelte_kit.md +730 -0
  36. package/docs/ru/intlayer_with_vite+svelte.md +275 -99
  37. package/docs/tr/intlayer_with_svelte_kit.md +730 -0
  38. package/docs/tr/intlayer_with_vite+svelte.md +297 -119
  39. package/docs/vi/intlayer_with_svelte_kit.md +730 -0
  40. package/docs/vi/intlayer_with_vite+svelte.md +275 -102
  41. package/docs/zh/intlayer_with_svelte_kit.md +730 -0
  42. package/docs/zh/intlayer_with_vite+svelte.md +309 -107
  43. package/package.json +6 -6
  44. package/src/generated/docs.entry.ts +19 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2025-06-29
4
- title: Comment traduire votre Vite and Svelte – guide i18n 2025
5
- description: Découvrez comment rendre votre site Vite et Svelte multilingue. Suivez la documentation pour internationaliser (i18n) et traduire votre site.
3
+ updatedAt: 2025-11-19
4
+ title: Comment traduire votre application Vite et Svelte – guide i18n 2025
5
+ description: Découvrez comment rendre votre site web Vite et Svelte multilingue. Suivez la documentation pour internationaliser (i18n) et traduire votre site.
6
6
  keywords:
7
7
  - Internationalisation
8
8
  - Documentation
@@ -14,20 +14,23 @@ slugs:
14
14
  - doc
15
15
  - environment
16
16
  - vite-and-svelte
17
- # applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
18
18
  history:
19
+ - version: 5.5.11
20
+ date: 2025-11-19
21
+ changes: Mise à jour de la doc
19
22
  - version: 5.5.10
20
23
  date: 2025-06-29
21
24
  changes: Historique initial
22
25
  ---
23
26
 
24
- # Traduire votre Vite and Svelte avec Intlayer | Internationalisation (i18n)
27
+ # Traduisez votre site Vite et Svelte avec Intlayer | Internationalisation (i18n)
25
28
 
26
- > Ce package est en cours de développement. Consultez le [problème](https://github.com/aymericzip/intlayer/issues/114) pour plus d'informations. Montrez votre intérêt pour Intlayer pour Svelte en aimant ce problème.
29
+ ## Table des matières
27
30
 
28
- <!-- Voir le [Modèle d'application](https://github.com/aymericzip/intlayer-solid-template) sur GitHub. -->
31
+ <TOC/>
29
32
 
30
- ## Qu'est-ce qu'Intlayer ?
33
+ ## Qu'est-ce que Intlayer ?
31
34
 
32
35
  **Intlayer** est une bibliothèque d'internationalisation (i18n) innovante et open-source conçue pour simplifier la prise en charge multilingue dans les applications web modernes.
33
36
 
@@ -35,16 +38,26 @@ Avec Intlayer, vous pouvez :
35
38
 
36
39
  - **Gérer facilement les traductions** en utilisant des dictionnaires déclaratifs au niveau des composants.
37
40
  - **Localiser dynamiquement les métadonnées**, les routes et le contenu.
38
- - **Assurer la prise en charge de TypeScript** avec des types générés automatiquement, améliorant l'autocomplétion et la détection des erreurs.
39
- - **Bénéficiez de fonctionnalités avancées**, comme la détection dynamique de la langue et le changement de locale.
41
+ - **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.
42
+ - **Bénéficier de fonctionnalités avancées**, comme la détection et le changement dynamiques de la locale.
40
43
 
41
44
  ---
42
45
 
43
46
  ## Guide étape par étape pour configurer Intlayer dans une application Vite et Svelte
44
47
 
48
+ <iframe
49
+ src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
50
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
51
+ title="Demo CodeSandbox - Comment internationaliser votre application avec Intlayer"
52
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
53
+ loading="lazy"
54
+ />
55
+
56
+ Voir le [Modèle d'application](https://github.com/aymericzip/intlayer-vite-svelte-template) sur GitHub.
57
+
45
58
  ### Étape 1 : Installer les dépendances
46
59
 
47
- Installez les paquets nécessaires avec npm :
60
+ Installez les paquets nécessaires en utilisant npm :
48
61
 
49
62
  ```bash packageManager="npm"
50
63
  npm install intlayer svelte-intlayer
@@ -61,23 +74,26 @@ yarn add intlayer svelte-intlayer
61
74
  yarn add vite-intlayer --save-dev
62
75
  ```
63
76
 
64
- - **intlayer**
77
+ ```bash packageManager="bun"
78
+ bun add intlayer svelte-intlayer
79
+ bun add vite-intlayer --save-dev
80
+ ```
65
81
 
66
82
  - **intlayer**
67
83
 
68
- 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).
84
+ 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/intlayer_cli.md).
69
85
 
70
86
  - **svelte-intlayer**
71
- Le paquet qui intègre Intlayer avec une application Svelte. Il fournit des fournisseurs de contexte et des hooks pour l'internationalisation dans Svelte.
87
+ Le package qui intègre Intlayer avec une application Svelte. Il fournit des context providers et des hooks pour l'internationalisation dans Svelte.
72
88
 
73
89
  - **vite-intlayer**
74
- Inclut le plugin Vite pour intégrer Intlayer avec le [bundler Vite](https://vite.dev/guide/why.html#why-bundle-for-production), ainsi que des middlewares pour détecter la locale préférée de l'utilisateur, gérer les cookies, et gérer la redirection des URL.
90
+ Inclut le plugin Vite pour intégrer Intlayer avec le [bundler Vite](https://vite.dev/guide/why.html#why-bundle-for-production), ainsi qu'un middleware pour détecter la locale préférée de l'utilisateur, gérer les cookies, et gérer la redirection des URL.
75
91
 
76
92
  ### Étape 2 : Configuration de votre projet
77
93
 
78
94
  Créez un fichier de configuration pour configurer les langues de votre application :
79
95
 
80
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
+ ```typescript fileName="intlayer.config.ts"
81
97
  import { Locales, type IntlayerConfig } from "intlayer";
82
98
 
83
99
  const config: IntlayerConfig = {
@@ -86,26 +102,7 @@ const config: IntlayerConfig = {
86
102
  Locales.ENGLISH,
87
103
  Locales.FRENCH,
88
104
  Locales.SPANISH,
89
- // Vos autres langues
90
- ],
91
- defaultLocale: Locales.ENGLISH,
92
- },
93
- };
94
-
95
- export default config;
96
- ```
97
-
98
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
99
- import { Locales } from "intlayer";
100
-
101
- /** @type {import('intlayer').IntlayerConfig} */
102
- const config = {
103
- internationalization: {
104
- locales: [
105
- Locales.ENGLISH,
106
- Locales.FRENCH,
107
- Locales.SPANISH,
108
- // Vos autres langues
105
+ // Vos autres locales
109
106
  ],
110
107
  defaultLocale: Locales.ENGLISH,
111
108
  },
@@ -114,43 +111,13 @@ const config = {
114
111
  export default config;
115
112
  ```
116
113
 
117
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
118
- const { Locales } = require("intlayer");
119
-
120
- /** @type {import('intlayer').IntlayerConfig} */
121
- const config = {
122
- internationalization: {
123
- locales: [
124
- Locales.ENGLISH,
125
- Locales.FRENCH,
126
- Locales.SPANISH,
127
- // Vos autres langues
128
- ],
129
- defaultLocale: Locales.ENGLISH,
130
- },
131
- };
132
-
133
- module.exports = config;
134
- ```
135
-
136
- > Grâce à ce fichier de configuration, vous pouvez configurer des URL 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).
114
+ > Grâce à ce fichier de configuration, vous pouvez configurer les URL 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 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).
137
115
 
138
116
  ### Étape 3 : Intégrer Intlayer dans votre configuration Vite
139
117
 
140
118
  Ajoutez le plugin intlayer dans votre configuration.
141
119
 
142
- ```typescript fileName="vite.config.ts" codeFormat="typescript"
143
- import { defineConfig } from "vite";
144
- import { svelte } from "@sveltejs/vite-plugin-svelte";
145
- import { intlayer } from "vite-intlayer";
146
-
147
- // https://vitejs.dev/config/
148
- export default defineConfig({
149
- plugins: [svelte(), intlayer()],
150
- });
151
- ```
152
-
153
- ```javascript fileName="vite.config.mjs" codeFormat="esm"
120
+ ```typescript fileName="vite.config.ts"
154
121
  import { defineConfig } from "vite";
155
122
  import { svelte } from "@sveltejs/vite-plugin-svelte";
156
123
  import { intlayer } from "vite-intlayer";
@@ -161,20 +128,9 @@ export default defineConfig({
161
128
  });
162
129
  ```
163
130
 
164
- ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
165
- const { defineConfig } = require("vite");
166
- const react = require("@vitejs/plugin-react-swc");
167
- const { intlayer } = require("vite-intlayer");
168
-
169
- // https://vitejs.dev/config/
170
- module.exports = defineConfig({
171
- plugins: [react(), intlayer()],
172
- });
173
- ```
174
-
175
- > Le plugin Vite `intlayer()` est utilisé pour intégrer Intlayer avec Vite. Il assure la construction des fichiers de déclaration de contenu et les surveille en mode développement. Il définit les variables d'environnement Intlayer au sein de l'application Vite. De plus, il fournit des alias pour optimiser les performances.
131
+ > Le plugin Vite `intlayer()` est utilisé pour intégrer Intlayer avec Vite. Il assure la génération des fichiers de déclaration de contenu et les surveille en mode développement. Il définit les variables d'environnement Intlayer au sein de l'application Vite. De plus, il fournit des alias pour optimiser les performances.
176
132
 
177
- ### Étape 4 : Déclarez Votre Contenu
133
+ ### Étape 4 : Déclarez votre contenu
178
134
 
179
135
  Créez et gérez vos déclarations de contenu pour stocker les traductions :
180
136
 
@@ -199,6 +155,7 @@ export default appContent;
199
155
  import { t } from "intlayer";
200
156
 
201
157
  /** @type {import('intlayer').Dictionary} */
158
+ // Déclaration du contenu de l'application
202
159
  const appContent = {
203
160
  key: "app",
204
161
  content: {
@@ -249,39 +206,280 @@ module.exports = appContent;
249
206
  }
250
207
  ```
251
208
 
252
- > Vos déclarations de contenu peuvent être définies n'importe où dans votre application dès lors qu'elles sont incluses dans le répertoire `contentDir` (par défaut, `./src`). Et qu'elles correspondent à l'extension des fichiers de déclaration de contenu (par défaut, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
209
+ > Vos déclarations de contenu peuvent être définies n'importe où dans votre application dès 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}`).
253
210
 
254
- > 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/get_started.md).
211
+ > 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).
255
212
 
256
213
  ### Étape 5 : Utiliser Intlayer dans votre code
257
214
 
258
- compléter]
215
+ ```svelte fileName="src/App.svelte"
216
+ <script>
217
+ import { useIntlayer } from "svelte-intlayer";
218
+
219
+ const content = useIntlayer("app");
220
+ </script>
221
+
222
+ <div>
223
+
224
+
225
+ <!-- Afficher le contenu comme contenu simple -->
226
+ <h1>{$content.title}</h1>
227
+ <!-- Pour afficher le contenu éditable via l'éditeur -->
228
+ <h1><svelte:component this={$content.title} /></h1>
229
+ <!-- Pour afficher le contenu en tant que chaîne de caractères -->
230
+ <div aria-label={$content.title.value}></div>
231
+ ```
259
232
 
260
233
  ### (Optionnel) Étape 6 : Changer la langue de votre contenu
261
234
 
262
- compléter]
235
+ ```svelte fileName="src/App.svelte"
236
+ <script lang="ts">
237
+ import { getLocaleName } from 'intlayer';
238
+ import { useLocale } from 'svelte-intlayer';
239
+
240
+ // Obtenir les informations de locale et la fonction setLocale
241
+ const { locale, availableLocales, setLocale } = useLocale();
242
+
243
+ // Gérer le changement de locale
244
+ const changeLocale = (event: Event) => {
245
+ const target = event.target as HTMLSelectElement;
246
+ const newLocale = target.value;
247
+ setLocale(newLocale);
248
+ };
249
+ </script>
250
+
251
+ <div>
252
+ <select value={$locale} on:change={changeLocale}>
253
+ {#each availableLocales ?? [] as loc}
254
+ <option value={loc}>
255
+ {getLocaleName(loc)}
256
+ </option>
257
+ {/each}
258
+ </select>
259
+ </div>
260
+ ```
261
+
262
+ ### (Optionnel) Étape 7 : Rendre du Markdown
263
+
264
+ Intlayer prend en charge le rendu du contenu Markdown directement dans votre application Svelte. Par défaut, le Markdown est traité comme du texte brut. Pour convertir le Markdown en HTML enrichi, vous pouvez intégrer `@humanspeak/svelte-markdown` ou un autre parseur Markdown.
265
+
266
+ > Pour voir comment déclarer du contenu markdown en utilisant le package `intlayer`, consultez la [documentation markdown](https://github.com/aymericzip/intlayer/tree/main/docs/docs/fr/dictionary/markdown.md).
267
+
268
+ ```svelte fileName="src/App.svelte"
269
+ <script>
270
+ import { setIntlayerMarkdown } from "svelte-intlayer";
271
+
272
+ setIntlayerMarkdown((markdown) =>
273
+ // rendre le contenu markdown sous forme de chaîne
274
+ return markdown;
275
+ );
276
+ </script>
277
+
278
+ <h1>{$content.markdownContent}</h1>
279
+ ```
280
+
281
+ > Vous pouvez également accéder aux données front-matter de votre markdown en utilisant la propriété `content.markdownContent.metadata.xxx`.
282
+
283
+ ### (Optionnel) Étape 8 : Configurer l’éditeur / CMS intlayer
284
+
285
+ Pour configurer l’éditeur intlayer, vous devez suivre la [documentation de l’éditeur intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_visual_editor.md).
286
+
287
+ Pour configurer le CMS intlayer, vous devez suivre la [documentation du CMS intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_CMS.md).
288
+
289
+ En parallèle, dans votre application Svelte, vous devez ajouter la ligne suivante dans un layout, ou à la racine de votre application :
263
290
 
264
- ### (Optionnel) Étape 7 : Ajouter un routage localisé à votre application
291
+ ```svelte fileName="src/layout.svelte"
292
+ import { useIntlayerEditor } from "svelte-intlayer";
265
293
 
266
- [à compléter]
294
+ useIntlayerEditor();
295
+ ```
296
+
297
+ ### (Optionnel) Étape 7 : Ajouter le routage localisé à votre application
298
+
299
+ Pour gérer le routage localisé dans votre application Svelte, vous pouvez utiliser `svelte-spa-router` avec `localeFlatMap` d'Intlayer pour générer les routes pour chaque locale.
300
+
301
+ Tout d'abord, installez `svelte-spa-router` :
302
+
303
+ ```bash packageManager="npm"
304
+ npm install svelte-spa-router
305
+ ```
306
+
307
+ ```bash packageManager="pnpm"
308
+ pnpm add svelte-spa-router
309
+ ```
310
+
311
+ ```bash packageManager="yarn"
312
+ yarn add svelte-spa-router
313
+ ```
314
+
315
+ ```bash packageManager="bun"
316
+ bun add svelte-spa-router
317
+ ```
318
+
319
+ Ensuite, créez un fichier `Router.svelte` pour définir vos routes :
320
+
321
+ ```svelte fileName="src/Router.svelte"
322
+ <script lang="ts">
323
+ import { localeFlatMap } from "intlayer";
324
+ import Router from "svelte-spa-router";
325
+ import { wrap } from "svelte-spa-router/wrap";
326
+ import App from "./App.svelte";
327
+
328
+ const routes = Object.fromEntries(
329
+ localeFlatMap(({locale, urlPrefix}) => [
330
+ [
331
+ urlPrefix || '/',
332
+ wrap({
333
+ component: App as any,
334
+ props: {
335
+ locale,
336
+ },
337
+ }),
338
+ ],
339
+ ])
340
+ );
341
+ </script>
342
+
343
+ <Router {routes} />
344
+ ```
345
+
346
+ Mettez à jour votre `main.ts` pour monter le composant `Router` au lieu de `App` :
347
+
348
+ ```typescript fileName="src/main.ts"
349
+ import { mount } from "svelte";
350
+ import Router from "./Router.svelte";
351
+
352
+ const app = mount(Router, {
353
+ target: document.getElementById("app")!,
354
+ });
355
+
356
+ export default app;
357
+ ```
358
+
359
+ Enfin, mettez à jour votre `App.svelte` pour recevoir la propriété `locale` et l'utiliser avec `useIntlayer` :
360
+
361
+ ```svelte fileName="src/App.svelte"
362
+ <script lang="ts">
363
+ import type { Locale } from 'intlayer';
364
+ import { useIntlayer } from 'svelte-intlayer';
365
+ import Counter from './lib/Counter.svelte';
366
+ import LocaleSwitcher from './lib/LocaleSwitcher.svelte';
367
+
368
+ export let locale: Locale;
369
+
370
+ $: content = useIntlayer('app', locale);
371
+ </script>
372
+
373
+ <main>
374
+ <div class="locale-switcher-container">
375
+ <LocaleSwitcher currentLocale={locale} />
376
+ </div>
377
+
378
+ <!-- ... reste de votre application ... -->
379
+ </main>
380
+ ```
381
+
382
+ #### Configurer le routage côté serveur (optionnel)
383
+
384
+ En parallèle, vous pouvez également utiliser le `intlayerProxy` pour ajouter un routage côté serveur à votre application. Ce plugin détectera automatiquement la locale actuelle en fonction de l'URL et définira le cookie de locale approprié. Si aucune locale n'est spécifiée, le plugin déterminera la locale la plus appropriée en fonction des préférences linguistiques du navigateur de l'utilisateur. Si aucune locale n'est détectée, il redirigera vers la locale par défaut.
385
+
386
+ > Notez que pour utiliser le `intlayerProxy` en production, vous devez déplacer le paquet `vite-intlayer` de `devDependencies` vers `dependencies`.
267
387
 
268
- ### (Optionnel) Étape 8 : Modifier l’URL lorsque la locale change
388
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
389
+ import { defineConfig } from "vite";
390
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
391
+ import { intlayer, intlayerProxy } from "vite-intlayer";
269
392
 
270
- compléter]
393
+ // https://vitejs.dev/config/
394
+ export default defineConfig({
395
+ plugins: [svelte(), intlayer(), intlayerProxy()],
396
+ });
397
+ ```
398
+
399
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
400
+ import { defineConfig } from "vite";
401
+ import { svelte } from "@sveltejs/vite-plugin-svelte";
402
+ import { intlayer, intlayerProxy } from "vite-intlayer";
271
403
 
272
- ### (Optionnel) Étape 9 : Modifier les attributs de langue et de direction HTML
404
+ // https://vitejs.dev/config/
405
+ export default defineConfig({
406
+ plugins: [svelte(), intlayer(), intlayerProxy()],
407
+ });
408
+ ```
273
409
 
274
- compléter]
410
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
411
+ const { defineConfig } = require("vite");
412
+ const { svelte } = require("@sveltejs/vite-plugin-svelte");
413
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
275
414
 
276
- ### (Optionnel) Étape 10 : Créer un composant de lien localisé
415
+ // https://vitejs.dev/config/
416
+ module.exports = defineConfig({
417
+ plugins: [svelte(), intlayer(), intlayerProxy()],
418
+ });
419
+ ```
277
420
 
278
- compléter]
421
+ ### (Optionnel) Étape 8 : Modifier l'URL lorsque la locale change
422
+
423
+ Pour permettre aux utilisateurs de changer de langue et de mettre à jour l'URL en conséquence, vous pouvez créer un composant `LocaleSwitcher`. Ce composant utilisera `getLocalizedUrl` de `intlayer` et `push` de `svelte-spa-router`.
424
+
425
+ ```svelte fileName="src/lib/LocaleSwitcher.svelte"
426
+ <script lang="ts">
427
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
428
+ import { useLocale } from "svelte-intlayer";
429
+ import { push } from "svelte-spa-router";
430
+
431
+ export let currentLocale: string | undefined = undefined;
432
+
433
+ // Obtenir les informations de la locale
434
+ const { locale, availableLocales } = useLocale();
435
+
436
+ // Gérer le changement de locale
437
+ const changeLocale = (event: Event) => {
438
+ plugins: [svelte(), intlayer(), intlayerProxy()],
439
+ });
440
+ ```
441
+
442
+ ### (Optionnel) Étape 8 : Modifier l’URL lors du changement de langue
443
+
444
+ Pour permettre aux utilisateurs de changer de langue et de mettre à jour l’URL en conséquence, vous pouvez créer un composant `LocaleSwitcher`. Ce composant utilisera `getLocalizedUrl` de `intlayer` et `push` de `svelte-spa-router`.
445
+
446
+ ```svelte fileName="src/lib/LocaleSwitcher.svelte"
447
+ <script lang="ts">
448
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
449
+ import { useLocale } from "svelte-intlayer";
450
+ import { push } from "svelte-spa-router";
451
+
452
+ export let currentLocale: string | undefined = undefined;
453
+
454
+ // Récupérer les informations de la locale
455
+ const { locale, availableLocales } = useLocale();
456
+
457
+ // Gérer le changement de langue
458
+ const changeLocale = (event: Event) => {
459
+ const target = event.target as HTMLSelectElement;
460
+ const newLocale = target.value;
461
+ const currentUrl = window.location.pathname;
462
+ const url = getLocalizedUrl(currentUrl, newLocale);
463
+ push(url);
464
+ };
465
+ </script>
466
+
467
+ <div class="locale-switcher">
468
+ <select value={currentLocale ?? $locale} onchange={changeLocale}>
469
+ {#each availableLocales ?? [] as loc}
470
+ <option value={loc}>
471
+ {getLocaleName(loc)}
472
+ </option>
473
+ {/each}
474
+ </select>
475
+ </div>
476
+ ```
279
477
 
280
478
  ### Configuration Git
281
479
 
282
- 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.
480
+ 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.
283
481
 
284
- Pour ce faire, vous pouvez ajouter les instructions suivantes à votre fichier `.gitignore` :
482
+ Pour ce faire, vous pouvez ajouter les instructions suivantes dans votre fichier `.gitignore` :
285
483
 
286
484
  ```plaintext
287
485
  # Ignorer les fichiers générés par Intlayer
@@ -290,23 +488,21 @@ Pour ce faire, vous pouvez ajouter les instructions suivantes à votre fichier `
290
488
 
291
489
  ### Extension VS Code
292
490
 
293
- Pour améliorer votre expérience de développement avec Intlayer, vous pouvez installer l'extension officielle **Intlayer VS Code Extension**.
491
+ Pour améliorer votre expérience de développement avec Intlayer, vous pouvez installer lextension officielle **Intlayer VS Code Extension**.
294
492
 
295
- [Installer depuis le Marketplace VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
493
+ [Installer depuis le VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
296
494
 
297
495
  Cette extension offre :
298
496
 
299
497
  - **Autocomplétion** pour les clés de traduction.
300
- - **Détection d'erreurs en temps réel** pour les traductions manquantes.
498
+ - **Détection derreurs en temps réel** pour les traductions manquantes.
301
499
  - **Aperçus en ligne** du contenu traduit.
302
500
  - **Actions rapides** pour créer et mettre à jour facilement les traductions.
303
501
 
304
- Pour plus de détails sur l'utilisation de l'extension, consultez la [documentation de l'extension Intlayer VS Code](https://intlayer.org/doc/vs-code-extension).
502
+ Pour plus de détails sur lutilisation de lextension, consultez la [documentation de lextension Intlayer VS Code](https://intlayer.org/doc/vs-code-extension).
305
503
 
306
504
  ---
307
505
 
308
506
  ### Aller plus loin
309
507
 
310
508
  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).
311
-
312
- ---