@intlayer/docs 8.3.0-canary.4 → 8.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.
- package/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + React i18n - Comment traduire une application React en 2026
|
|
5
5
|
description: Apprenez à ajouter l'internationalisation (i18n) à votre application Vite et React en utilisant Intlayer. Suivez ce guide pour rendre votre application multilingue.
|
|
6
6
|
keywords:
|
|
@@ -48,9 +48,9 @@ Avec Intlayer, vous pouvez :
|
|
|
48
48
|
## Guide étape par étape pour configurer Intlayer dans une application Vite et React
|
|
49
49
|
|
|
50
50
|
<Tabs defaultTab="video">
|
|
51
|
-
<Tab label="
|
|
51
|
+
<Tab label="Vidéo" value="video">
|
|
52
52
|
|
|
53
|
-
<iframe title="
|
|
53
|
+
<iframe title="La meilleure solution i18n pour Vite et React ? 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
54
54
|
|
|
55
55
|
</Tab>
|
|
56
56
|
<Tab label="Code" value="code">
|
|
@@ -58,7 +58,7 @@ Avec Intlayer, vous pouvez :
|
|
|
58
58
|
<iframe
|
|
59
59
|
src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
60
60
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
61
|
-
title="
|
|
61
|
+
title="Démo CodeSandbox - Comment internationaliser votre application avec Intlayer"
|
|
62
62
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
63
63
|
loading="lazy"
|
|
64
64
|
/>
|
|
@@ -97,7 +97,7 @@ bunx intlayer init
|
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
- **intlayer**
|
|
100
|
-
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/
|
|
100
|
+
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/content_file.md), la transpilation, et les [commandes CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/cli/index.md).
|
|
101
101
|
|
|
102
102
|
- **react-intlayer**
|
|
103
103
|
Le paquet qui intègre Intlayer avec une application React. Il fournit des fournisseurs de contexte et des hooks pour l'internationalisation dans React.
|
|
@@ -1357,6 +1357,162 @@ Link.displayName = "Link";
|
|
|
1357
1357
|
|
|
1358
1358
|
En intégrant ce composant `Link` dans toute votre application, vous maintenez une expérience utilisateur cohérente et adaptée à la langue tout en bénéficiant d’une meilleure SEO et d’une meilleure utilisabilité.
|
|
1359
1359
|
|
|
1360
|
+
### (Optionnel) Étape 11 : Extraire le contenu de vos composants
|
|
1361
|
+
|
|
1362
|
+
Si vous avez une base de code existante, transformer des milliers de fichiers peut prendre beaucoup de temps.
|
|
1363
|
+
|
|
1364
|
+
Pour faciliter ce processus, Intlayer propose un [compilateur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/compiler.md) / [extracteur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/cli/extract.md) pour transformer vos composants et extraire le contenu.
|
|
1365
|
+
|
|
1366
|
+
Pour le configurer, vous pouvez ajouter une section `compiler` dans votre fichier `intlayer.config.ts` :
|
|
1367
|
+
|
|
1368
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1369
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1370
|
+
|
|
1371
|
+
const config: IntlayerConfig = {
|
|
1372
|
+
// ... Reste de votre configuration
|
|
1373
|
+
compiler: {
|
|
1374
|
+
/**
|
|
1375
|
+
* Indique si le compilateur doit être activé.
|
|
1376
|
+
*/
|
|
1377
|
+
enabled: true,
|
|
1378
|
+
|
|
1379
|
+
/**
|
|
1380
|
+
* Définit le chemin des fichiers de sortie
|
|
1381
|
+
*/
|
|
1382
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1383
|
+
|
|
1384
|
+
/**
|
|
1385
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
1386
|
+
*/
|
|
1387
|
+
saveComponents: false,
|
|
1388
|
+
|
|
1389
|
+
/**
|
|
1390
|
+
* Préfixe de clé de dictionnaire
|
|
1391
|
+
*/
|
|
1392
|
+
dictionaryKeyPrefix: "",
|
|
1393
|
+
},
|
|
1394
|
+
};
|
|
1395
|
+
|
|
1396
|
+
export default config;
|
|
1397
|
+
```
|
|
1398
|
+
|
|
1399
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1400
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1401
|
+
const config = {
|
|
1402
|
+
// ... Reste de votre configuration
|
|
1403
|
+
compiler: {
|
|
1404
|
+
/**
|
|
1405
|
+
* Indique si le compilateur doit être activé.
|
|
1406
|
+
*/
|
|
1407
|
+
enabled: true,
|
|
1408
|
+
|
|
1409
|
+
/**
|
|
1410
|
+
* Définit le chemin des fichiers de sortie
|
|
1411
|
+
*/
|
|
1412
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1413
|
+
|
|
1414
|
+
/**
|
|
1415
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
1416
|
+
*/
|
|
1417
|
+
saveComponents: false,
|
|
1418
|
+
|
|
1419
|
+
/**
|
|
1420
|
+
* Préfixe de clé de dictionnaire
|
|
1421
|
+
*/
|
|
1422
|
+
dictionaryKeyPrefix: "",
|
|
1423
|
+
},
|
|
1424
|
+
};
|
|
1425
|
+
|
|
1426
|
+
export default config;
|
|
1427
|
+
```
|
|
1428
|
+
|
|
1429
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1430
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1431
|
+
const config = {
|
|
1432
|
+
// ... Reste de votre configuration
|
|
1433
|
+
compiler: {
|
|
1434
|
+
/**
|
|
1435
|
+
* Indique si le compilateur doit être activé.
|
|
1436
|
+
*/
|
|
1437
|
+
enabled: true,
|
|
1438
|
+
|
|
1439
|
+
/**
|
|
1440
|
+
* Définit le chemin des fichiers de sortie
|
|
1441
|
+
*/
|
|
1442
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1443
|
+
|
|
1444
|
+
/**
|
|
1445
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
1446
|
+
*/
|
|
1447
|
+
saveComponents: false,
|
|
1448
|
+
|
|
1449
|
+
/**
|
|
1450
|
+
* Préfixe de clé de dictionnaire
|
|
1451
|
+
*/
|
|
1452
|
+
dictionaryKeyPrefix: "",
|
|
1453
|
+
},
|
|
1454
|
+
};
|
|
1455
|
+
|
|
1456
|
+
module.exports = config;
|
|
1457
|
+
```
|
|
1458
|
+
|
|
1459
|
+
<Tabs>
|
|
1460
|
+
<Tab value='Commande d'extraction'>
|
|
1461
|
+
|
|
1462
|
+
Exécutez l'extracteur pour transformer vos composants et extraire le contenu
|
|
1463
|
+
|
|
1464
|
+
```bash packageManager="npm"
|
|
1465
|
+
npx intlayer extract
|
|
1466
|
+
```
|
|
1467
|
+
|
|
1468
|
+
```bash packageManager="pnpm"
|
|
1469
|
+
pnpm intlayer extract
|
|
1470
|
+
```
|
|
1471
|
+
|
|
1472
|
+
```bash packageManager="yarn"
|
|
1473
|
+
yarn intlayer extract
|
|
1474
|
+
```
|
|
1475
|
+
|
|
1476
|
+
```bash packageManager="bun"
|
|
1477
|
+
bunx intlayer extract
|
|
1478
|
+
```
|
|
1479
|
+
|
|
1480
|
+
</Tab>
|
|
1481
|
+
<Tab value='Compilateur Babel'>
|
|
1482
|
+
|
|
1483
|
+
Mettez à jour votre fichier `vite.config.ts` pour inclure le plugin `intlayerCompiler` :
|
|
1484
|
+
|
|
1485
|
+
```ts fileName="vite.config.ts"
|
|
1486
|
+
import { defineConfig } from "vite";
|
|
1487
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
1488
|
+
|
|
1489
|
+
export default defineConfig({
|
|
1490
|
+
plugins: [
|
|
1491
|
+
intlayer(),
|
|
1492
|
+
intlayerCompiler(), // Ajoute le plugin du compilateur
|
|
1493
|
+
],
|
|
1494
|
+
});
|
|
1495
|
+
```
|
|
1496
|
+
|
|
1497
|
+
```bash packageManager="npm"
|
|
1498
|
+
npm run build # Ou npm run dev
|
|
1499
|
+
```
|
|
1500
|
+
|
|
1501
|
+
```bash packageManager="pnpm"
|
|
1502
|
+
pnpm run build # Ou pnpm run dev
|
|
1503
|
+
```
|
|
1504
|
+
|
|
1505
|
+
```bash packageManager="yarn"
|
|
1506
|
+
yarn build # Ou yarn dev
|
|
1507
|
+
```
|
|
1508
|
+
|
|
1509
|
+
```bash packageManager="bun"
|
|
1510
|
+
bun run build # Ou bun run dev
|
|
1511
|
+
```
|
|
1512
|
+
|
|
1513
|
+
</Tab>
|
|
1514
|
+
</Tabs>
|
|
1515
|
+
|
|
1360
1516
|
### Configurer TypeScript
|
|
1361
1517
|
|
|
1362
1518
|
Intlayer utilise l’augmentation de module pour tirer parti de TypeScript et renforcer votre base de code.
|
|
@@ -1384,7 +1540,7 @@ Il est recommandé d'ignorer les fichiers générés par Intlayer. Cela vous per
|
|
|
1384
1540
|
Pour ce faire, vous pouvez ajouter les instructions suivantes dans votre fichier `.gitignore` :
|
|
1385
1541
|
|
|
1386
1542
|
```plaintext
|
|
1387
|
-
#
|
|
1543
|
+
# Ignorer les fichiers générés par Intlayer
|
|
1388
1544
|
.intlayer
|
|
1389
1545
|
```
|
|
1390
1546
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + Solid i18n - Comment traduire une application Solid en 2026
|
|
5
5
|
description: Découvrez comment rendre votre site Vite et Solid multilingue. Suivez la documentation pour internationaliser (i18n) et traduire votre site.
|
|
6
6
|
keywords:
|
|
@@ -24,12 +24,12 @@ history:
|
|
|
24
24
|
changes: Historique initial
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
-
# Traduire votre Vite
|
|
27
|
+
# Traduire votre Vite et Solid avec Intlayer | Internationalisation (i18n)
|
|
28
28
|
|
|
29
29
|
<Tabs defaultTab="video">
|
|
30
|
-
<Tab label="
|
|
30
|
+
<Tab label="Vidéo" value="video">
|
|
31
31
|
|
|
32
|
-
<iframe title="The best i18n solution for Vite
|
|
32
|
+
<iframe title="The best i18n solution for Vite et Solid? Discover 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/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
33
33
|
|
|
34
34
|
</Tab>
|
|
35
35
|
<Tab label="Code" value="code">
|
|
@@ -37,7 +37,7 @@ history:
|
|
|
37
37
|
<iframe
|
|
38
38
|
src="https://stackblitz.com/github/aymericzip/intlayer-vite-solid-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
39
39
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
40
|
-
title="
|
|
40
|
+
title="Démo CodeSandbox - Comment internationaliser votre application avec Intlayer"
|
|
41
41
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
42
42
|
loading="lazy"
|
|
43
43
|
/>
|
|
@@ -45,7 +45,7 @@ history:
|
|
|
45
45
|
</Tab>
|
|
46
46
|
</Tabs>
|
|
47
47
|
|
|
48
|
-
## Table
|
|
48
|
+
## Table des matières
|
|
49
49
|
|
|
50
50
|
<TOC/>
|
|
51
51
|
|
|
@@ -68,7 +68,7 @@ Avec Intlayer, vous pouvez :
|
|
|
68
68
|
|
|
69
69
|
## Guide étape par étape pour configurer Intlayer dans une application Vite et Solid
|
|
70
70
|
|
|
71
|
-
## Table
|
|
71
|
+
## Table des matières
|
|
72
72
|
|
|
73
73
|
<TOC/>
|
|
74
74
|
|
|
@@ -537,6 +537,162 @@ const MyComponent = () => {
|
|
|
537
537
|
};
|
|
538
538
|
```
|
|
539
539
|
|
|
540
|
+
### (Optionnel) Étape 12 : Extraire le contenu de vos composants
|
|
541
|
+
|
|
542
|
+
Si vous avez une base de code existante, transformer des milliers de fichiers peut prendre beaucoup de temps.
|
|
543
|
+
|
|
544
|
+
Pour faciliter ce processus, Intlayer propose un [compilateur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/compiler.md) / [extracteur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/cli/extract.md) pour transformer vos composants et extraire le contenu.
|
|
545
|
+
|
|
546
|
+
Pour le configurer, vous pouvez ajouter une section `compiler` dans votre fichier `intlayer.config.ts` :
|
|
547
|
+
|
|
548
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
549
|
+
import { type IntlayerConfig } from "intlayer";
|
|
550
|
+
|
|
551
|
+
const config: IntlayerConfig = {
|
|
552
|
+
// ... Reste de votre configuration
|
|
553
|
+
compiler: {
|
|
554
|
+
/**
|
|
555
|
+
* Indique si le compilateur doit être activé.
|
|
556
|
+
*/
|
|
557
|
+
enabled: true,
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* Définit le chemin des fichiers de sortie
|
|
561
|
+
*/
|
|
562
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
566
|
+
*/
|
|
567
|
+
saveComponents: false,
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Préfixe de clé de dictionnaire
|
|
571
|
+
*/
|
|
572
|
+
dictionaryKeyPrefix: "",
|
|
573
|
+
},
|
|
574
|
+
};
|
|
575
|
+
|
|
576
|
+
export default config;
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
580
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
581
|
+
const config = {
|
|
582
|
+
// ... Reste de votre configuration
|
|
583
|
+
compiler: {
|
|
584
|
+
/**
|
|
585
|
+
* Indique si le compilateur doit être activé.
|
|
586
|
+
*/
|
|
587
|
+
enabled: true,
|
|
588
|
+
|
|
589
|
+
/**
|
|
590
|
+
* Définit le chemin des fichiers de sortie
|
|
591
|
+
*/
|
|
592
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
593
|
+
|
|
594
|
+
/**
|
|
595
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
596
|
+
*/
|
|
597
|
+
saveComponents: false,
|
|
598
|
+
|
|
599
|
+
/**
|
|
600
|
+
* Préfixe de clé de dictionnaire
|
|
601
|
+
*/
|
|
602
|
+
dictionaryKeyPrefix: "",
|
|
603
|
+
},
|
|
604
|
+
};
|
|
605
|
+
|
|
606
|
+
export default config;
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
610
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
611
|
+
const config = {
|
|
612
|
+
// ... Reste de votre configuration
|
|
613
|
+
compiler: {
|
|
614
|
+
/**
|
|
615
|
+
* Indique si le compilateur doit être activé.
|
|
616
|
+
*/
|
|
617
|
+
enabled: true,
|
|
618
|
+
|
|
619
|
+
/**
|
|
620
|
+
* Définit le chemin des fichiers de sortie
|
|
621
|
+
*/
|
|
622
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
626
|
+
*/
|
|
627
|
+
saveComponents: false,
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Préfixe de clé de dictionnaire
|
|
631
|
+
*/
|
|
632
|
+
dictionaryKeyPrefix: "",
|
|
633
|
+
},
|
|
634
|
+
};
|
|
635
|
+
|
|
636
|
+
module.exports = config;
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
<Tabs>
|
|
640
|
+
<Tab value='Commande d'extraction'>
|
|
641
|
+
|
|
642
|
+
Exécutez l'extracteur pour transformer vos composants et extraire le contenu
|
|
643
|
+
|
|
644
|
+
```bash packageManager="npm"
|
|
645
|
+
npx intlayer extract
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
```bash packageManager="pnpm"
|
|
649
|
+
pnpm intlayer extract
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
```bash packageManager="yarn"
|
|
653
|
+
yarn intlayer extract
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
```bash packageManager="bun"
|
|
657
|
+
bunx intlayer extract
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
</Tab>
|
|
661
|
+
<Tab value='Compilateur Babel'>
|
|
662
|
+
|
|
663
|
+
Mettez à jour votre fichier `vite.config.ts` pour inclure le plugin `intlayerCompiler` :
|
|
664
|
+
|
|
665
|
+
```ts fileName="vite.config.ts"
|
|
666
|
+
import { defineConfig } from "vite";
|
|
667
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
668
|
+
|
|
669
|
+
export default defineConfig({
|
|
670
|
+
plugins: [
|
|
671
|
+
intlayer(),
|
|
672
|
+
intlayerCompiler(), // Ajoute le plugin du compilateur
|
|
673
|
+
],
|
|
674
|
+
});
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
```bash packageManager="npm"
|
|
678
|
+
npm run build # Ou npm run dev
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
```bash packageManager="pnpm"
|
|
682
|
+
pnpm run build # Ou pnpm run dev
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
```bash packageManager="yarn"
|
|
686
|
+
yarn build # Ou yarn dev
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
```bash packageManager="bun"
|
|
690
|
+
bun run build # Or bun run dev
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
</Tab>
|
|
694
|
+
</Tabs>
|
|
695
|
+
|
|
540
696
|
### Configure TypeScript
|
|
541
697
|
|
|
542
698
|
Assurez-vous que votre configuration TypeScript inclut les types autogénérés.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + Svelte i18n - Comment traduire une application Svelte en 2026
|
|
5
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:
|
|
@@ -487,6 +487,162 @@ const changeLocale = (event: Event) => {
|
|
|
487
487
|
</div>
|
|
488
488
|
```
|
|
489
489
|
|
|
490
|
+
### (Optionnel) Étape 9 : Extraire le contenu de vos composants
|
|
491
|
+
|
|
492
|
+
Si vous avez une base de code existante, transformer des milliers de fichiers peut prendre beaucoup de temps.
|
|
493
|
+
|
|
494
|
+
Pour faciliter ce processus, Intlayer propose un [compilateur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/compiler.md) / [extracteur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/cli/extract.md) pour transformer vos composants et extraire le contenu.
|
|
495
|
+
|
|
496
|
+
Pour le configurer, vous pouvez ajouter une section `compiler` dans votre fichier `intlayer.config.ts` :
|
|
497
|
+
|
|
498
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
499
|
+
import { type IntlayerConfig } from "intlayer";
|
|
500
|
+
|
|
501
|
+
const config: IntlayerConfig = {
|
|
502
|
+
// ... Reste de votre configuration
|
|
503
|
+
compiler: {
|
|
504
|
+
/**
|
|
505
|
+
* Indique si le compilateur doit être activé.
|
|
506
|
+
*/
|
|
507
|
+
enabled: true,
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Définit le chemin des fichiers de sortie
|
|
511
|
+
*/
|
|
512
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
516
|
+
*/
|
|
517
|
+
saveComponents: false,
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Préfixe de clé de dictionnaire
|
|
521
|
+
*/
|
|
522
|
+
dictionaryKeyPrefix: "",
|
|
523
|
+
},
|
|
524
|
+
};
|
|
525
|
+
|
|
526
|
+
export default config;
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
530
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
531
|
+
const config = {
|
|
532
|
+
// ... Reste de votre configuration
|
|
533
|
+
compiler: {
|
|
534
|
+
/**
|
|
535
|
+
* Indique si le compilateur doit être activé.
|
|
536
|
+
*/
|
|
537
|
+
enabled: true,
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Définit le chemin des fichiers de sortie
|
|
541
|
+
*/
|
|
542
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
543
|
+
|
|
544
|
+
/**
|
|
545
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
546
|
+
*/
|
|
547
|
+
saveComponents: false,
|
|
548
|
+
|
|
549
|
+
/**
|
|
550
|
+
* Préfixe de clé de dictionnaire
|
|
551
|
+
*/
|
|
552
|
+
dictionaryKeyPrefix: "",
|
|
553
|
+
},
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
export default config;
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
560
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
561
|
+
const config = {
|
|
562
|
+
// ... Reste de votre configuration
|
|
563
|
+
compiler: {
|
|
564
|
+
/**
|
|
565
|
+
* Indique si le compilateur doit être activé.
|
|
566
|
+
*/
|
|
567
|
+
enabled: true,
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Définit le chemin des fichiers de sortie
|
|
571
|
+
*/
|
|
572
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
573
|
+
|
|
574
|
+
/**
|
|
575
|
+
* Indique si les composants doivent être sauvegardés après avoir été transformés. De cette façon, le compilateur peut être exécuté une seule fois pour transformer l'application, puis il peut être supprimé.
|
|
576
|
+
*/
|
|
577
|
+
saveComponents: false,
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* Préfixe de clé de dictionnaire
|
|
581
|
+
*/
|
|
582
|
+
dictionaryKeyPrefix: "",
|
|
583
|
+
},
|
|
584
|
+
};
|
|
585
|
+
|
|
586
|
+
module.exports = config;
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
<Tabs>
|
|
590
|
+
<Tab value='Commande d'extraction'>
|
|
591
|
+
|
|
592
|
+
Exécutez l'extracteur pour transformer vos composants et extraire le contenu
|
|
593
|
+
|
|
594
|
+
```bash packageManager="npm"
|
|
595
|
+
npx intlayer extract
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
```bash packageManager="pnpm"
|
|
599
|
+
pnpm intlayer extract
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
```bash packageManager="yarn"
|
|
603
|
+
yarn intlayer extract
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
```bash packageManager="bun"
|
|
607
|
+
bunx intlayer extract
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
</Tab>
|
|
611
|
+
<Tab value='Compilateur Babel'>
|
|
612
|
+
|
|
613
|
+
Mettez à jour votre fichier `vite.config.ts` pour inclure le plugin `intlayerCompiler` :
|
|
614
|
+
|
|
615
|
+
```ts fileName="vite.config.ts"
|
|
616
|
+
import { defineConfig } from "vite";
|
|
617
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
618
|
+
|
|
619
|
+
export default defineConfig({
|
|
620
|
+
plugins: [
|
|
621
|
+
intlayer(),
|
|
622
|
+
intlayerCompiler(), // Ajoute le plugin du compilateur
|
|
623
|
+
],
|
|
624
|
+
});
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
```bash packageManager="npm"
|
|
628
|
+
npm run build # Ou npm run dev
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
```bash packageManager="pnpm"
|
|
632
|
+
pnpm run build # Ou pnpm run dev
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
```bash packageManager="yarn"
|
|
636
|
+
yarn build # Ou yarn dev
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
```bash packageManager="bun"
|
|
640
|
+
bun run build # Or bun run dev
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
</Tab>
|
|
644
|
+
</Tabs>
|
|
645
|
+
|
|
490
646
|
### Configuration Git
|
|
491
647
|
|
|
492
648
|
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.
|