@intlayer/docs 6.1.6-canary.0 → 6.1.6

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 (242) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +71 -80
  2. package/dist/cjs/generated/docs.entry.cjs +16 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +16 -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_angular.md +2 -2
  9. package/docs/ar/intlayer_with_astro.md +246 -0
  10. package/docs/ar/intlayer_with_create_react_app.md +3 -2
  11. package/docs/ar/intlayer_with_express.md +2 -2
  12. package/docs/ar/intlayer_with_nestjs.md +2 -2
  13. package/docs/ar/intlayer_with_nextjs_14.md +2 -2
  14. package/docs/ar/intlayer_with_nextjs_15.md +2 -2
  15. package/docs/ar/intlayer_with_nextjs_page_router.md +2 -2
  16. package/docs/ar/intlayer_with_nuxt.md +2 -2
  17. package/docs/ar/intlayer_with_react_native+expo.md +11 -20
  18. package/docs/ar/intlayer_with_react_router_v7.md +195 -241
  19. package/docs/ar/intlayer_with_tanstack.md +198 -272
  20. package/docs/ar/intlayer_with_vite+preact.md +9 -9
  21. package/docs/ar/intlayer_with_vite+react.md +7 -7
  22. package/docs/ar/intlayer_with_vite+vue.md +9 -9
  23. package/docs/de/intlayer_with_angular.md +2 -2
  24. package/docs/de/intlayer_with_astro.md +246 -0
  25. package/docs/de/intlayer_with_create_react_app.md +2 -2
  26. package/docs/de/intlayer_with_express.md +2 -2
  27. package/docs/de/intlayer_with_nestjs.md +2 -2
  28. package/docs/de/intlayer_with_nextjs_14.md +2 -2
  29. package/docs/de/intlayer_with_nextjs_15.md +2 -2
  30. package/docs/de/intlayer_with_nextjs_page_router.md +2 -2
  31. package/docs/de/intlayer_with_nuxt.md +2 -2
  32. package/docs/de/intlayer_with_react_native+expo.md +11 -20
  33. package/docs/de/intlayer_with_react_router_v7.md +193 -242
  34. package/docs/de/intlayer_with_tanstack.md +194 -266
  35. package/docs/de/intlayer_with_vite+preact.md +9 -9
  36. package/docs/de/intlayer_with_vite+react.md +9 -9
  37. package/docs/de/intlayer_with_vite+vue.md +11 -11
  38. package/docs/de/packages/vite-intlayer/index.md +3 -3
  39. package/docs/en/how_works_intlayer.md +1 -1
  40. package/docs/en/index.md +1 -1
  41. package/docs/en/intlayer_cli.md +1 -1
  42. package/docs/en/intlayer_with_angular.md +4 -4
  43. package/docs/en/intlayer_with_astro.md +246 -0
  44. package/docs/en/intlayer_with_create_react_app.md +4 -4
  45. package/docs/en/intlayer_with_express.md +3 -3
  46. package/docs/en/intlayer_with_lynx+react.md +1 -1
  47. package/docs/en/intlayer_with_nestjs.md +2 -2
  48. package/docs/en/intlayer_with_nextjs_14.md +13 -4
  49. package/docs/en/intlayer_with_nextjs_15.md +13 -4
  50. package/docs/en/intlayer_with_nextjs_page_router.md +5 -5
  51. package/docs/en/intlayer_with_nuxt.md +4 -4
  52. package/docs/en/intlayer_with_react_native+expo.md +46 -24
  53. package/docs/en/intlayer_with_react_router_v7.md +164 -211
  54. package/docs/en/intlayer_with_tanstack.md +166 -241
  55. package/docs/en/intlayer_with_vite+preact.md +12 -12
  56. package/docs/en/intlayer_with_vite+react.md +12 -12
  57. package/docs/en/intlayer_with_vite+solid.md +2 -2
  58. package/docs/en/intlayer_with_vite+svelte.md +2 -2
  59. package/docs/en/intlayer_with_vite+vue.md +12 -12
  60. package/docs/en/introduction.md +1 -1
  61. package/docs/en/packages/next-intlayer/useDictionary.md +1 -1
  62. package/docs/en/packages/next-intlayer/useIntlayer.md +1 -1
  63. package/docs/en/packages/react-intlayer/useDictionary.md +1 -1
  64. package/docs/en/packages/react-intlayer/useI18n.md +1 -1
  65. package/docs/en/packages/react-intlayer/useIntlayer.md +1 -1
  66. package/docs/en/releases/v6.md +1 -0
  67. package/docs/en/roadmap.md +1 -1
  68. package/docs/en-GB/intlayer_with_angular.md +3 -3
  69. package/docs/en-GB/intlayer_with_astro.md +246 -0
  70. package/docs/en-GB/intlayer_with_create_react_app.md +5 -4
  71. package/docs/en-GB/intlayer_with_express.md +2 -2
  72. package/docs/en-GB/intlayer_with_nestjs.md +2 -2
  73. package/docs/en-GB/intlayer_with_nextjs_14.md +4 -4
  74. package/docs/en-GB/intlayer_with_nextjs_15.md +2 -2
  75. package/docs/en-GB/intlayer_with_nextjs_page_router.md +2 -2
  76. package/docs/en-GB/intlayer_with_nuxt.md +2 -2
  77. package/docs/en-GB/intlayer_with_react_native+expo.md +11 -20
  78. package/docs/en-GB/intlayer_with_react_router_v7.md +171 -220
  79. package/docs/en-GB/intlayer_with_tanstack.md +174 -248
  80. package/docs/en-GB/intlayer_with_vite+preact.md +9 -9
  81. package/docs/en-GB/intlayer_with_vite+react.md +9 -9
  82. package/docs/en-GB/intlayer_with_vite+vue.md +11 -11
  83. package/docs/en-GB/packages/next-intlayer/useIntlayer.md +1 -1
  84. package/docs/en-GB/packages/react-intlayer/useIntlayer.md +1 -1
  85. package/docs/es/intlayer_with_angular.md +2 -2
  86. package/docs/es/intlayer_with_astro.md +246 -0
  87. package/docs/es/intlayer_with_create_react_app.md +3 -2
  88. package/docs/es/intlayer_with_express.md +2 -2
  89. package/docs/es/intlayer_with_nextjs_14.md +2 -2
  90. package/docs/es/intlayer_with_nextjs_15.md +2 -2
  91. package/docs/es/intlayer_with_react_native+expo.md +11 -20
  92. package/docs/es/intlayer_with_react_router_v7.md +188 -232
  93. package/docs/es/intlayer_with_tanstack.md +203 -273
  94. package/docs/es/intlayer_with_vite+preact.md +7 -7
  95. package/docs/es/intlayer_with_vite+react.md +7 -7
  96. package/docs/es/intlayer_with_vite+vue.md +9 -9
  97. package/docs/fr/intlayer_with_angular.md +2 -2
  98. package/docs/fr/intlayer_with_astro.md +246 -0
  99. package/docs/fr/intlayer_with_create_react_app.md +3 -2
  100. package/docs/fr/intlayer_with_express.md +2 -2
  101. package/docs/fr/intlayer_with_nestjs.md +2 -2
  102. package/docs/fr/intlayer_with_nextjs_14.md +2 -2
  103. package/docs/fr/intlayer_with_react_native+expo.md +11 -20
  104. package/docs/fr/intlayer_with_react_router_v7.md +188 -248
  105. package/docs/fr/intlayer_with_tanstack.md +192 -265
  106. package/docs/fr/intlayer_with_vite+preact.md +7 -7
  107. package/docs/fr/intlayer_with_vite+react.md +7 -7
  108. package/docs/fr/intlayer_with_vite+vue.md +9 -9
  109. package/docs/hi/intlayer_cli.md +1 -4
  110. package/docs/hi/intlayer_with_angular.md +2 -2
  111. package/docs/hi/intlayer_with_astro.md +246 -0
  112. package/docs/hi/intlayer_with_create_react_app.md +2 -2
  113. package/docs/hi/intlayer_with_express.md +2 -2
  114. package/docs/hi/intlayer_with_nestjs.md +2 -2
  115. package/docs/hi/intlayer_with_nextjs_14.md +2 -2
  116. package/docs/hi/intlayer_with_nextjs_15.md +2 -2
  117. package/docs/hi/intlayer_with_nextjs_page_router.md +2 -2
  118. package/docs/hi/intlayer_with_nuxt.md +2 -2
  119. package/docs/hi/intlayer_with_react_native+expo.md +11 -20
  120. package/docs/hi/intlayer_with_react_router_v7.md +199 -243
  121. package/docs/hi/intlayer_with_tanstack.md +210 -285
  122. package/docs/hi/intlayer_with_vite+preact.md +9 -9
  123. package/docs/hi/intlayer_with_vite+react.md +9 -9
  124. package/docs/hi/intlayer_with_vite+solid.md +1 -1
  125. package/docs/hi/intlayer_with_vite+vue.md +11 -11
  126. package/docs/it/intlayer_with_angular.md +2 -2
  127. package/docs/it/intlayer_with_astro.md +246 -0
  128. package/docs/it/intlayer_with_create_react_app.md +3 -2
  129. package/docs/it/intlayer_with_express.md +2 -2
  130. package/docs/it/intlayer_with_nestjs.md +2 -2
  131. package/docs/it/intlayer_with_nextjs_14.md +2 -2
  132. package/docs/it/intlayer_with_nextjs_15.md +2 -2
  133. package/docs/it/intlayer_with_nextjs_page_router.md +2 -2
  134. package/docs/it/intlayer_with_nuxt.md +2 -2
  135. package/docs/it/intlayer_with_react_native+expo.md +11 -21
  136. package/docs/it/intlayer_with_react_router_v7.md +195 -242
  137. package/docs/it/intlayer_with_tanstack.md +203 -267
  138. package/docs/it/intlayer_with_vite+preact.md +9 -9
  139. package/docs/it/intlayer_with_vite+react.md +13 -11
  140. package/docs/it/intlayer_with_vite+vue.md +11 -11
  141. package/docs/ja/intlayer_with_angular.md +2 -2
  142. package/docs/ja/intlayer_with_astro.md +246 -0
  143. package/docs/ja/intlayer_with_create_react_app.md +3 -2
  144. package/docs/ja/intlayer_with_express.md +2 -2
  145. package/docs/ja/intlayer_with_nestjs.md +2 -2
  146. package/docs/ja/intlayer_with_nextjs_14.md +2 -2
  147. package/docs/ja/intlayer_with_nextjs_15.md +2 -2
  148. package/docs/ja/intlayer_with_nextjs_page_router.md +2 -2
  149. package/docs/ja/intlayer_with_nuxt.md +2 -2
  150. package/docs/ja/intlayer_with_react_native+expo.md +18 -29
  151. package/docs/ja/intlayer_with_react_router_v7.md +204 -250
  152. package/docs/ja/intlayer_with_tanstack.md +218 -286
  153. package/docs/ja/intlayer_with_vite+preact.md +9 -9
  154. package/docs/ja/intlayer_with_vite+react.md +11 -11
  155. package/docs/ja/intlayer_with_vite+vue.md +11 -11
  156. package/docs/ko/intlayer_with_angular.md +2 -2
  157. package/docs/ko/intlayer_with_astro.md +246 -0
  158. package/docs/ko/intlayer_with_create_react_app.md +3 -2
  159. package/docs/ko/intlayer_with_express.md +2 -2
  160. package/docs/ko/intlayer_with_nestjs.md +2 -2
  161. package/docs/ko/intlayer_with_nextjs_14.md +2 -2
  162. package/docs/ko/intlayer_with_nextjs_15.md +2 -2
  163. package/docs/ko/intlayer_with_nextjs_page_router.md +2 -2
  164. package/docs/ko/intlayer_with_nuxt.md +2 -2
  165. package/docs/ko/intlayer_with_react_native+expo.md +19 -28
  166. package/docs/ko/intlayer_with_react_router_v7.md +190 -244
  167. package/docs/ko/intlayer_with_tanstack.md +200 -270
  168. package/docs/ko/intlayer_with_vite+preact.md +9 -9
  169. package/docs/ko/intlayer_with_vite+react.md +9 -9
  170. package/docs/ko/intlayer_with_vite+vue.md +11 -11
  171. package/docs/pt/intlayer_with_angular.md +2 -2
  172. package/docs/pt/intlayer_with_astro.md +246 -0
  173. package/docs/pt/intlayer_with_create_react_app.md +3 -2
  174. package/docs/pt/intlayer_with_express.md +2 -2
  175. package/docs/pt/intlayer_with_nestjs.md +2 -2
  176. package/docs/pt/intlayer_with_nextjs_14.md +2 -2
  177. package/docs/pt/intlayer_with_nextjs_15.md +2 -2
  178. package/docs/pt/intlayer_with_nextjs_page_router.md +2 -2
  179. package/docs/pt/intlayer_with_nuxt.md +2 -2
  180. package/docs/pt/intlayer_with_react_native+expo.md +11 -20
  181. package/docs/pt/intlayer_with_react_router_v7.md +7 -13
  182. package/docs/pt/intlayer_with_tanstack.md +183 -258
  183. package/docs/pt/intlayer_with_vite+preact.md +9 -9
  184. package/docs/pt/intlayer_with_vite+react.md +9 -9
  185. package/docs/pt/intlayer_with_vite+vue.md +9 -9
  186. package/docs/ru/intlayer_with_angular.md +2 -2
  187. package/docs/ru/intlayer_with_astro.md +246 -0
  188. package/docs/ru/intlayer_with_create_react_app.md +3 -2
  189. package/docs/ru/intlayer_with_express.md +2 -2
  190. package/docs/ru/intlayer_with_nestjs.md +2 -2
  191. package/docs/ru/intlayer_with_nextjs_14.md +2 -2
  192. package/docs/ru/intlayer_with_nextjs_15.md +2 -2
  193. package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
  194. package/docs/ru/intlayer_with_nuxt.md +2 -2
  195. package/docs/ru/intlayer_with_react_native+expo.md +11 -20
  196. package/docs/ru/intlayer_with_react_router_v7.md +192 -238
  197. package/docs/ru/intlayer_with_tanstack.md +197 -269
  198. package/docs/ru/intlayer_with_vite+preact.md +9 -9
  199. package/docs/ru/intlayer_with_vite+react.md +9 -9
  200. package/docs/ru/intlayer_with_vite+vue.md +11 -11
  201. package/docs/tr/how_works_intlayer.md +1 -1
  202. package/docs/tr/index.md +1 -1
  203. package/docs/tr/intlayer_cli.md +1 -1
  204. package/docs/tr/intlayer_with_angular.md +4 -4
  205. package/docs/tr/intlayer_with_astro.md +246 -0
  206. package/docs/tr/intlayer_with_create_react_app.md +4 -4
  207. package/docs/tr/intlayer_with_express.md +3 -3
  208. package/docs/tr/intlayer_with_lynx+react.md +1 -1
  209. package/docs/tr/intlayer_with_nestjs.md +2 -2
  210. package/docs/tr/intlayer_with_nextjs_14.md +2 -2
  211. package/docs/tr/intlayer_with_nextjs_15.md +4 -4
  212. package/docs/tr/intlayer_with_nextjs_page_router.md +5 -5
  213. package/docs/tr/intlayer_with_nuxt.md +4 -4
  214. package/docs/tr/intlayer_with_react_native+expo.md +12 -21
  215. package/docs/tr/intlayer_with_react_router_v7.md +222 -267
  216. package/docs/tr/intlayer_with_tanstack.md +400 -303
  217. package/docs/tr/intlayer_with_vite+preact.md +12 -12
  218. package/docs/tr/intlayer_with_vite+react.md +12 -12
  219. package/docs/tr/intlayer_with_vite+solid.md +2 -2
  220. package/docs/tr/intlayer_with_vite+svelte.md +2 -2
  221. package/docs/tr/intlayer_with_vite+vue.md +12 -12
  222. package/docs/tr/introduction.md +1 -1
  223. package/docs/tr/packages/react-intlayer/useDictionary.md +1 -1
  224. package/docs/tr/packages/react-intlayer/useI18n.md +1 -1
  225. package/docs/tr/roadmap.md +1 -1
  226. package/docs/zh/intlayer_with_angular.md +2 -2
  227. package/docs/zh/intlayer_with_astro.md +246 -0
  228. package/docs/zh/intlayer_with_create_react_app.md +3 -2
  229. package/docs/zh/intlayer_with_express.md +2 -2
  230. package/docs/zh/intlayer_with_nestjs.md +2 -2
  231. package/docs/zh/intlayer_with_nextjs_14.md +2 -2
  232. package/docs/zh/intlayer_with_nextjs_15.md +2 -2
  233. package/docs/zh/intlayer_with_nextjs_page_router.md +2 -2
  234. package/docs/zh/intlayer_with_nuxt.md +2 -2
  235. package/docs/zh/intlayer_with_react_native+expo.md +19 -28
  236. package/docs/zh/intlayer_with_react_router_v7.md +200 -248
  237. package/docs/zh/intlayer_with_tanstack.md +208 -283
  238. package/docs/zh/intlayer_with_vite+preact.md +9 -9
  239. package/docs/zh/intlayer_with_vite+react.md +9 -9
  240. package/docs/zh/intlayer_with_vite+vue.md +9 -9
  241. package/package.json +11 -11
  242. package/src/generated/docs.entry.ts +16 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-09-09
3
3
  updatedAt: 2025-09-09
4
- title: Prise en main de l'internationalisation avec Intlayer dans Tanstack Start
5
- description: Apprenez comment ajouter l'internationalisation (i18n) à votre application Tanstack Start en utilisant Intlayer. Suivez ce guide complet pour rendre votre application multilingue avec un routage sensible à la locale.
4
+ title: Prise en main d'Intlayer avec Tanstack Start
5
+ description: Apprenez à ajouter l'internationalisation (i18n) à votre application Tanstack Start en utilisant Intlayer. Suivez ce guide complet pour rendre votre application multilingue avec un routage sensible à la locale.
6
6
  keywords:
7
7
  - Internationalisation
8
8
  - Documentation
@@ -15,15 +15,13 @@ keywords:
15
15
  slugs:
16
16
  - doc
17
17
  - environment
18
- - vite-and-react
19
18
  - tanstack-start
20
- applicationTemplate: https://github.com/AydinTheFirst/tanstack-start-intlayer
21
- author: AydinTheFirst
19
+ applicationTemplate: https://github.com/aymericzip/intlayer-tanstack-start-template
22
20
  ---
23
21
 
24
22
  # Prise en main de l'internationalisation (i18n) avec Intlayer et Tanstack Start
25
23
 
26
- Ce guide montre comment intégrer **Intlayer** pour une internationalisation fluide dans les projets Tanstack Start avec un routage sensible à la locale, la prise en charge de TypeScript, et des pratiques de développement modernes.
24
+ Ce guide montre comment intégrer **Intlayer** pour une internationalisation fluide dans les projets Tanstack Start avec un routage sensible à la locale, la prise en charge de TypeScript et des pratiques de développement modernes.
27
25
 
28
26
  ## Qu'est-ce qu'Intlayer ?
29
27
 
@@ -33,9 +31,9 @@ Avec Intlayer, vous pouvez :
33
31
 
34
32
  - **Gérer facilement les traductions** en utilisant des dictionnaires déclaratifs au niveau des composants.
35
33
  - **Localiser dynamiquement les métadonnées**, les routes et le contenu.
36
- - **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.
37
- - **Bénéficier de fonctionnalités avancées**, comme la détection dynamique de la locale et son changement.
38
- - **Activer le routage sensible à la locale** avec le système de routage basé sur les fichiers de Tanstack Start.
34
+ - **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.
35
+ - **Bénéficier de fonctionnalités avancées**, telles que la détection et le changement dynamique de la locale.
36
+ - **Activer un routage sensible à la locale** avec le système de routage basé sur les fichiers de Tanstack Start.
39
37
 
40
38
  ---
41
39
 
@@ -61,19 +59,21 @@ pnpm add vite-intlayer --save-dev
61
59
 
62
60
  - **intlayer**
63
61
 
64
- 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/get_started.md), la transpilation, et les [commandes CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_cli.md).
62
+ - **intlayer**
63
+
64
+ 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/get_started.md), la transpilation, et les [commandes CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_cli.md).
65
65
 
66
- - **react-intlayer**
66
+ - **react-intlayer**
67
67
  Le package qui intègre Intlayer avec une application React. Il fournit des fournisseurs de contexte et des hooks pour l'internationalisation dans React.
68
68
 
69
- - **vite-intlayer**
70
- 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.
69
+ - **vite-intlayer**
70
+ Comprend 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.
71
71
 
72
72
  ### Étape 3 : Configuration de votre projet
73
73
 
74
74
  Créez un fichier de configuration pour configurer les langues de votre application :
75
75
 
76
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
76
+ ```typescript fileName="intlayer.config.ts"
77
77
  import type { IntlayerConfig } from "intlayer";
78
78
 
79
79
  import { Locales } from "intlayer";
@@ -81,75 +81,27 @@ import { Locales } from "intlayer";
81
81
  const config: IntlayerConfig = {
82
82
  internationalization: {
83
83
  defaultLocale: Locales.ENGLISH,
84
- locales: [
85
- Locales.ENGLISH,
86
- Locales.FRENCH,
87
- Locales.SPANISH,
88
- // Vos autres langues
89
- ],
84
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
90
85
  },
91
86
  };
92
87
 
93
88
  export default config;
94
89
  ```
95
90
 
96
- ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
97
- import { Locales } from "intlayer";
98
-
99
- /** @type {import('intlayer').IntlayerConfig} */
100
- const config = {
101
- internationalization: {
102
- defaultLocale: Locales.ENGLISH,
103
- locales: [
104
- Locales.ENGLISH,
105
- Locales.FRENCH,
106
- Locales.SPANISH,
107
- // Vos autres locales
108
- ],
109
- },
110
- };
111
-
112
- export default config;
113
- ```
114
-
115
- ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
116
- const { Locales } = require("intlayer");
117
-
118
- /** @type {import('intlayer').IntlayerConfig} */
119
- const config = {
120
- internationalization: {
121
- defaultLocale: Locales.ENGLISH,
122
- locales: [
123
- Locales.ENGLISH,
124
- Locales.FRENCH,
125
- Locales.SPANISH,
126
- // Vos autres locales
127
- ],
128
- },
129
- };
130
-
131
- module.exports = config;
132
- ```
133
-
134
- > 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, référez-vous à la [documentation de configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md).
91
+ > 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 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).
135
92
 
136
93
  ### Étape 4 : Intégrer Intlayer dans votre configuration Vite
137
94
 
138
95
  Ajoutez le plugin intlayer dans votre configuration :
139
96
 
140
- ```typescript fileName="vite.config.ts" codeFormat="typescript"
97
+ ```typescript fileName="vite.config.ts"
141
98
  import { reactRouter } from "@react-router/dev/vite";
142
99
  import { defineConfig } from "vite";
143
- import { intlayerMiddlewarePlugin, intlayer } from "vite-intlayer";
100
+ import { intlayer } from "vite-intlayer";
144
101
  import tsconfigPaths from "vite-tsconfig-paths";
145
102
 
146
103
  export default defineConfig({
147
- plugins: [
148
- reactRouter(),
149
- tsconfigPaths(),
150
- intlayer(),
151
- intlayerMiddlewarePlugin(),
152
- ],
104
+ plugins: [reactRouter(), tsconfigPaths(), intlayer()],
153
105
  });
154
106
  ```
155
107
 
@@ -157,14 +109,12 @@ export default defineConfig({
157
109
 
158
110
  ### Étape 5 : Créez les composants de mise en page
159
111
 
160
- Configurez votre mise en page racine et les mises en page spécifiques à chaque locale :
112
+ Configurez votre mise en page racine et les mises en page spécifiques aux locales :
161
113
 
162
114
  #### Mise en page racine
163
115
 
164
- ```tsx fileName="src/routes/{-$locale}/route.tsx" codeFormat="typescript"
165
- // src/routes/{-$locale}/route.tsx
116
+ ```tsx fileName="src/routes/{-$locale}/route.tsx"
166
117
  import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
167
- import { configuration } from "intlayer";
168
118
  import { IntlayerProvider, useLocale } from "react-intlayer";
169
119
 
170
120
  import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes";
@@ -174,10 +124,11 @@ export const Route = createFileRoute("/{-$locale}")({
174
124
  });
175
125
 
176
126
  function LayoutComponent() {
127
+ const { defaultLocale } = useLocale();
177
128
  const { locale } = Route.useParams();
178
129
 
179
130
  return (
180
- <IntlayerProvider locale={locale}>
131
+ <IntlayerProvider locale={defaultLocale}>
181
132
  <Outlet />
182
133
  </IntlayerProvider>
183
134
  );
@@ -188,7 +139,7 @@ function LayoutComponent() {
188
139
 
189
140
  Créez et gérez vos déclarations de contenu pour stocker les traductions :
190
141
 
191
- ```tsx fileName="src/contents/page.content.ts" contentDeclarationFormat="typescript"
142
+ ```tsx fileName="src/contents/page.content.ts"
192
143
  import type { Dictionary } from "intlayer";
193
144
 
194
145
  import { t } from "intlayer";
@@ -197,25 +148,26 @@ const appContent = {
197
148
  content: {
198
149
  links: {
199
150
  about: t({
151
+ fr: "À propos",
200
152
  en: "About",
201
153
  es: "Acerca de",
202
- fr: "À propos",
203
154
  }),
204
155
  home: t({
205
- en: "Accueil",
206
- es: "Inicio",
207
156
  fr: "Accueil",
157
+ en: "Home",
158
+ es: "Inicio",
208
159
  }),
209
160
  },
210
161
  meta: {
211
162
  description: t({
212
- en: "Ceci est un exemple d'utilisation d'Intlayer avec TanStack Router",
213
- es: "Este es un ejemplo de uso de Intlayer con TanStack Router",
214
163
  fr: "Ceci est un exemple d'utilisation d'Intlayer avec TanStack Router",
164
+ en: "This is an example of using Intlayer with TanStack Router",
165
+ es: "Este es un ejemplo de uso de Intlayer con TanStack Router",
215
166
  }),
216
167
  },
217
168
  title: t({
218
- en: "Bienvenue à Intlayer + TanStack Router",
169
+ fr: "Bienvenue à Intlayer + TanStack Router",
170
+ en: "Welcome to Intlayer + TanStack Router",
219
171
  es: "Bienvenido a Intlayer + TanStack Router",
220
172
  fr: "Bienvenue à Intlayer + TanStack Router",
221
173
  }),
@@ -226,67 +178,107 @@ const appContent = {
226
178
  export default appContent;
227
179
  ```
228
180
 
229
- > 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, `./app`). Et correspondent à l'extension de fichier de déclaration de contenu (par défaut, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
181
+ > 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, `./app`). Et elles doivent correspondre à l'extension de fichier des déclarations de contenu (par défaut, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
230
182
 
231
- > 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).
183
+ > Pour plus de détails, référez-vous à la [documentation des déclarations de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md).
232
184
 
233
- ### Étape 7 : Créer des composants et hooks sensibles à la locale
185
+ ### Étape 7 : Créez des composants et hooks sensibles à la locale
234
186
 
235
187
  Créez un composant `LocalizedLink` pour une navigation sensible à la locale :
236
188
 
237
- ```tsx fileName="src/components/localized-link.tsx" codeFormat="typescript"
238
- // src/components/localized-link.tsx
239
- // eslint-disable-next-line no-restricted-imports
240
- import { Link, type LinkProps } from "@tanstack/react-router";
241
- import { getLocalizedUrl } from "intlayer";
189
+ ```tsx fileName="src/components/localized-link.tsx"
190
+ import type { FC } from "react";
191
+
192
+ import { Link, type LinkComponentProps } from "@tanstack/react-router";
242
193
  import { useLocale } from "react-intlayer";
243
194
 
195
+ export const LOCALE_ROUTE = "{-$locale}" as const;
196
+
197
+ // Utilitaire principal
198
+ export type RemoveLocaleParam<T> = T extends string
199
+ ? RemoveLocaleFromString<T>
200
+ : T;
201
+
202
+ export type To = RemoveLocaleParam<LinkComponentProps["to"]>;
203
+
204
+ type CollapseDoubleSlashes<S extends string> =
205
+ S extends `${infer H}//${infer T}` ? CollapseDoubleSlashes<`${H}/${T}`> : S;
206
+
244
207
  type LocalizedLinkProps = {
245
- to: string;
246
- } & Omit<LinkProps, "to">;
208
+ to?: To;
209
+ } & Omit<LinkComponentProps, "to">;
247
210
 
248
- export function LocalizedLink(props: LocalizedLinkProps) {
249
- const { locale } = useLocale();
211
+ // Helpers
212
+ type RemoveAll<
213
+ S extends string,
214
+ Sub extends string,
215
+ > = S extends `${infer H}${Sub}${infer T}` ? RemoveAll<`${H}${T}`, Sub> : S;
250
216
 
251
- const isExternal = (to: string) => {
252
- return /^(https?:)?\/\//.test(to);
253
- };
217
+ type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
218
+ RemoveAll<S, typeof LOCALE_ROUTE>
219
+ >;
254
220
 
255
- const to = isExternal(props.to)
256
- ? props.to
257
- : getLocalizedUrl(props.to, locale);
221
+ export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
222
+ const { locale } = useLocale();
258
223
 
259
- return <Link {...props} to={to as LinkProps["to"]} />;
260
- }
224
+ return (
225
+ <Link
226
+ {...props}
227
+ params={{
228
+ locale,
229
+ ...(typeof props?.params === "object" ? props?.params : {}),
230
+ }}
231
+ to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
232
+ />
233
+ );
234
+ };
261
235
  ```
262
236
 
263
- Créez un hook `useLocalizedNavigate` pour la navigation programmatique :
237
+ Ce composant a deux objectifs :
264
238
 
265
- ```tsx fileName="src/hooks/useLocalizedNavigate.tsx" codeFormat="typescript"
266
- // src/hooks/useLocalizedNavigate.tsx
267
- // eslint-disable-next-line no-restricted-imports
268
- import { NavigateOptions, useNavigate } from "@tanstack/react-router";
269
- import { getLocalizedUrl } from "intlayer";
270
- import { useLocale } from "react-intlayer";
239
+ - Supprimer le préfixe `{-$locale}` inutile de l'URL.
240
+ - Injecter le paramètre de locale dans l'URL pour garantir que l'utilisateur est directement redirigé vers la route localisée.
271
241
 
272
- type LocalizedNavigateOptions = {
273
- to: string;
274
- } & Omit<NavigateOptions, "to">;
242
+ Ensuite, nous pouvons créer un hook `useLocalizedNavigate` pour la navigation programmatique :
243
+
244
+ ```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
245
+ import { useLocale } from "react-intlayer";
246
+ import { useNavigate } from "@tanstack/react-router";
247
+ import { LOCALE_ROUTE } from "@/components/localized-link";
248
+ import type { FileRouteTypes } from "@/routeTree.gen";
275
249
 
276
250
  export const useLocalizedNavigate = () => {
277
251
  const navigate = useNavigate();
252
+
278
253
  const { locale } = useLocale();
279
254
 
280
- const isExternal = (to: string) => {
281
- return /^(https?:)?\/\//.test(to);
282
- };
255
+ type StripLocalePrefix<T extends string> = T extends
256
+ | `/${typeof LOCALE_ROUTE}`
257
+ | `/${typeof LOCALE_ROUTE}/`
258
+ ? "/"
259
+ : T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
260
+ ? `/${Rest}`
261
+ : never;
262
+
263
+ type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
264
+
265
+ interface LocalizedNavigate {
266
+ (to: LocalizedTo): ReturnType<typeof navigate>;
267
+ (
268
+ opts: { to: LocalizedTo } & Record<string, unknown>
269
+ ): ReturnType<typeof navigate>;
270
+ }
283
271
 
284
- const localizedNavigate = (options: LocalizedNavigateOptions) => {
285
- const to = isExternal(options.to)
286
- ? options.to
287
- : getLocalizedUrl(options.to, locale);
272
+ const localizedNavigate: LocalizedNavigate = (args: any) => {
273
+ if (typeof args === "string") {
274
+ return navigate({ to: `/${LOCALE_ROUTE}${args}`, params: { locale } });
275
+ }
288
276
 
289
- navigate({ ...options, to: to as NavigateOptions["to"] });
277
+ const { to, ...rest } = args;
278
+
279
+ const localedTo = `/${LOCALE_ROUTE}${to}` as any;
280
+
281
+ return navigate({ to: localedTo, params: { locale, ...rest } as any });
290
282
  };
291
283
 
292
284
  return localizedNavigate;
@@ -297,23 +289,9 @@ export const useLocalizedNavigate = () => {
297
289
 
298
290
  Accédez à vos dictionnaires de contenu dans toute votre application :
299
291
 
300
- #### Page de redirection racine
301
-
302
- ```tsx fileName="src/routes/page.tsx" codeFormat="typescript"
303
- // src/routes/page.tsx
304
- import { useLocale } from "react-intlayer";
305
- import { Navigate } from "react-router";
306
-
307
- export default function Page() {
308
- const { locale } = useLocale();
309
-
310
- return <Navigate replace to={locale} />;
311
- }
312
- ```
313
-
314
292
  #### Page d'accueil localisée
315
293
 
316
- ```tsx fileName="src/routes/{-$locale}/index.tsx" codeFormat="typescript"
294
+ ```tsx fileName="src/routes/{-$locale}/index.tsx"
317
295
  import { createFileRoute } from "@tanstack/react-router";
318
296
  import { getIntlayer } from "intlayer";
319
297
  import { useIntlayer } from "react-intlayer";
@@ -342,16 +320,15 @@ function RouteComponent() {
342
320
  const navigate = useLocalizedNavigate();
343
321
 
344
322
  return (
345
- <div className="grid place-items-center h-screen">
346
- <div className="flex flex-col gap-4 items-center text-center">
323
+ <div>
324
+ <div>
347
325
  {content.title}
348
326
  <LocaleSwitcher />
349
- <div className="flex gap-4">
350
- <a href="/">Index</a>
327
+ <div>
351
328
  <LocalizedLink to="/">{content.links.home}</LocalizedLink>
352
329
  <LocalizedLink to="/about">{content.links.about}</LocalizedLink>
353
330
  </div>
354
- <div className="flex gap-4">
331
+ <div>
355
332
  <button onClick={() => navigate({ to: "/" })}>
356
333
  {content.links.home}
357
334
  </button>
@@ -371,57 +348,65 @@ function RouteComponent() {
371
348
 
372
349
  Créez un composant pour permettre aux utilisateurs de changer de langue :
373
350
 
374
- ```tsx fileName="src/components/locale-switcher.tsx" codeFormat="typescript"
351
+ ```tsx fileName="src/components/locale-switcher.tsx"
352
+ import type { FC } from "react";
353
+
375
354
  import { useLocation } from "@tanstack/react-router";
376
- import {
377
- getHTMLTextDir,
378
- getLocaleName,
379
- getLocalizedUrl,
380
- Locales,
381
- } from "intlayer";
382
- import { useIntlayer, useLocale } from "react-intlayer";
383
-
384
- export default function LocaleSwitcher() {
385
- const { pathname, searchStr } = useLocation();
386
- const content = useIntlayer("locale-switcher");
387
-
388
- const { availableLocales, locale, setLocale } = useLocale({
389
- onLocaleChange: (newLocale) => {
390
- const pathWithLocale = getLocalizedUrl(pathname + searchStr, newLocale);
391
- location.replace(pathWithLocale);
392
- },
393
- });
355
+ import { getHTMLTextDir, getLocaleName, getPathWithoutLocale } from "intlayer";
356
+ import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
357
+
358
+ import { LocalizedLink, To } from "./localized-link";
359
+
360
+ export const LocaleSwitcher: FC = () => {
361
+ const { localeSwitcherLabel } = useIntlayer("locale-switcher");
362
+ const { pathname } = useLocation();
363
+
364
+ const { availableLocales, locale } = useLocale();
365
+
366
+ const pathWithoutLocale = getPathWithoutLocale(pathname);
394
367
 
395
368
  return (
396
- <select
397
- aria-label={content.label.toString()}
398
- onChange={(e) => setLocale(e.target.value)}
399
- value={locale}
400
- >
401
- {availableLocales.map((localeItem) => (
402
- <option
403
- dir={getHTMLTextDir(localeItem)}
404
- key={localeItem}
405
- lang={localeItem}
406
- value={localeItem}
407
- >
408
- {/* Exemple : Français (French) */}
409
- {getLocaleName(localeItem, locale)} (
410
- {getLocaleName(localeItem, Locales.ENGLISH)})
411
- </option>
369
+ <ol>
370
+ {availableLocales.map((localeEl) => (
371
+ <li key={localeEl}>
372
+ <LocalizedLink
373
+ aria-current={localeEl === locale ? "page" : undefined}
374
+ aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
375
+ onClick={() => setLocaleCookie(localeEl)}
376
+ params={{ locale: localeEl }}
377
+ to={pathWithoutLocale as To}
378
+ >
379
+ <span>
380
+ {/* Locale - ex. FR */}
381
+ {localeItem}
382
+ </span>
383
+ <span>
384
+ {/* Langue dans sa propre locale - ex. Français */}
385
+ {getLocaleName(localeItem, locale)}
386
+ </span>
387
+ <span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
388
+ {/* Langue dans la locale courante - ex. Francés avec la locale courante définie sur Locales.SPANISH */}
389
+ {getLocaleName(localeItem)}
390
+ </span>
391
+ <span dir="ltr" lang={Locales.ENGLISH}>
392
+ {/* Langue en anglais - ex. French */}
393
+ {getLocaleName(localeItem, Locales.ENGLISH)}
394
+ </span>
395
+ </LocalizedLink>
396
+ </li>
412
397
  ))}
413
- </select>
398
+ </ol>
414
399
  );
415
- }
400
+ };
416
401
  ```
417
402
 
418
403
  > Pour en savoir plus sur le hook `useLocale`, consultez la [documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/packages/react-intlayer/useLocale.md).
419
404
 
420
- ### Étape 10 : Ajouter la gestion des attributs HTML (optionnel)
405
+ ### Étape 10 : Ajouter la gestion des attributs HTML (Optionnel)
421
406
 
422
407
  Créez un hook pour gérer les attributs lang et dir du HTML :
423
408
 
424
- ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
409
+ ```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx"
425
410
  // src/hooks/useI18nHTMLAttributes.tsx
426
411
  import { getHTMLTextDir } from "intlayer";
427
412
  import { useEffect } from "react";
@@ -439,9 +424,8 @@ export const useI18nHTMLAttributes = () => {
439
424
 
440
425
  Ensuite, utilisez-le dans votre composant racine :
441
426
 
442
- ```tsx fileName="src/routes/{-$locale}/index.tsx" codeFormat="typescript"
427
+ ```tsx fileName="src/routes/{-$locale}/index.tsx"
443
428
  import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
444
- import { configuration } from "intlayer";
445
429
  import { IntlayerProvider, useLocale } from "react-intlayer";
446
430
 
447
431
  import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes"; // importer le hook
@@ -453,43 +437,44 @@ export const Route = createFileRoute("/{-$locale}")({
453
437
  function LayoutComponent() {
454
438
  useI18nHTMLAttributes(); // ajouter cette ligne
455
439
 
440
+ const { defaultLocale } = useLocale();
456
441
  const { locale } = Route.useParams();
457
442
 
458
443
  return (
459
- <IntlayerProvider locale={locale}>
444
+ <IntlayerProvider locale={locale ?? defaultLocale}>
460
445
  <Outlet />
461
446
  </IntlayerProvider>
462
447
  );
463
448
  }
464
449
  ```
465
450
 
466
- ### Étape 11 : Construisez et lancez votre application
451
+ ---
467
452
 
468
- Construisez les dictionnaires de contenu et lancez votre application :
453
+ ### Étape 11 : Ajouter un middleware (Optionnel)
469
454
 
470
- ```bash packageManager="npm"
471
- # Construire les dictionnaires Intlayer
472
- npm run intlayer:build
455
+ Vous pouvez également utiliser le `intlayerMiddleware` 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.
473
456
 
474
- # Démarrer le serveur de développement
475
- npm run dev
476
- ```
457
+ > Notez que pour utiliser le `intlayerMiddleware` en production, vous devez déplacer le paquet `vite-intlayer` de `devDependencies` vers `dependencies`.
477
458
 
478
- ```bash packageManager="pnpm"
479
- # Construire les dictionnaires Intlayer
480
- pnpm intlayer:build
459
+ ```typescript {3,7} fileName="vite.config.ts"
460
+ import { reactRouter } from "@react-router/dev/vite";
461
+ import tailwindcss from "@tailwindcss/vite";
462
+ import { defineConfig } from "vite";
463
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
464
+ import tsconfigPaths from "vite-tsconfig-paths";
481
465
 
482
- # Démarrer le serveur de développement
483
- pnpm dev
466
+ export default defineConfig({
467
+ plugins: [
468
+ tailwindcss(),
469
+ reactRouter(),
470
+ tsconfigPaths(),
471
+ intlayer(),
472
+ intlayerMiddleware(),
473
+ ],
474
+ });
484
475
  ```
485
476
 
486
- ```bash packageManager="yarn"
487
- # Construire les dictionnaires Intlayer
488
- yarn intlayer:build
489
-
490
- # Démarrer le serveur de développement
491
- yarn dev
492
- ```
477
+ ---
493
478
 
494
479
  ### Étape 12 : Configurer TypeScript (Optionnel)
495
480
 
@@ -499,9 +484,7 @@ Assurez-vous que votre configuration TypeScript inclut les types générés auto
499
484
 
500
485
  ```json5 fileName="tsconfig.json"
501
486
  {
502
- compilerOptions: {
503
- // ... vos configurations TypeScript existantes
504
- },
487
+ // ... vos configurations existantes
505
488
  include: [
506
489
  // ... vos inclusions existantes
507
490
  ".intlayer/**/*.ts", // Inclure les types générés automatiquement
@@ -509,11 +492,13 @@ Assurez-vous que votre configuration TypeScript inclut les types générés auto
509
492
  }
510
493
  ```
511
494
 
495
+ ---
496
+
512
497
  ### Configuration Git
513
498
 
514
- 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.
499
+ 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.
515
500
 
516
- Pour ce faire, vous pouvez ajouter les instructions suivantes dans votre fichier `.gitignore` :
501
+ Pour ce faire, vous pouvez ajouter les instructions suivantes à votre fichier `.gitignore` :
517
502
 
518
503
  ```plaintext fileName=".gitignore"
519
504
  # Ignorer les fichiers générés par Intlayer
@@ -522,67 +507,9 @@ Pour ce faire, vous pouvez ajouter les instructions suivantes dans votre fichier
522
507
 
523
508
  ---
524
509
 
525
- ### Étape 13 : Créer une redirection (Optionnel)
526
-
527
- ```typescript fileName="src/routes/{-$locale}/rotue.tsx" codeFormat="typescript"
528
- function LayoutComponent() {
529
- useI18nHTMLAttributes();
530
-
531
- const { locale } = Route.useParams();
532
- const { locale: selectedLocale } = useLocale();
533
- const { defaultLocale } = configuration.internationalization;
534
- const { prefixDefault } = configuration.middleware;
535
-
536
- // Rediriger vers la locale par défaut si aucune locale n'est présente dans l'URL lorsque prefixDefault est vrai
537
- if (selectedLocale === defaultLocale && !locale && prefixDefault) {
538
- return <Navigate replace to={defaultLocale} />;
539
- }
540
-
541
- // Rediriger vers la locale sélectionnée si la locale dans l'URL ne correspond pas à la locale sélectionnée
542
- if (selectedLocale !== defaultLocale && !locale) {
543
- return <Navigate replace to={selectedLocale} />;
544
- }
545
-
546
- return (
547
- <IntlayerProvider locale={locale}>
548
- <Outlet />
549
- </IntlayerProvider>
550
- );
551
- }
552
- ```
553
-
554
- ## Déploiement en Production
555
-
556
- Lors du déploiement de votre application :
557
-
558
- 1. **Construisez votre application :**
559
-
560
- ```bash
561
- npm run build
562
- ```
563
-
564
- 2. **Générez les dictionnaires Intlayer :**
565
-
566
- ```bash
567
- npm run intlayer:build
568
- ```
569
-
570
- 3. **Déplacez `vite-intlayer` dans les dépendances** si vous utilisez le middleware en production :
571
- ```bash
572
- npm install vite-intlayer --save
573
- ```
574
-
575
- Votre application prendra désormais en charge :
576
-
577
- - **Structure des URL** : `/en`, `/en/about`, `/tr`, `/tr/about`
578
- - **Détection automatique de la langue** basée sur les préférences du navigateur
579
- - **Routage sensible à la langue** avec Tanstack Start
580
- - **Support TypeScript** avec des types générés automatiquement
581
- - **Rendu côté serveur** avec une gestion correcte de la langue
582
-
583
510
  ## Extension VS Code
584
511
 
585
- Pour améliorer votre expérience de développement avec Intlayer, vous pouvez installer lextension officielle **Intlayer VS Code Extension**.
512
+ Pour améliorer votre expérience de développement avec Intlayer, vous pouvez installer l’**extension officielle Intlayer pour VS Code**.
586
513
 
587
514
  [Installer depuis le Marketplace VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
588
515
 
@@ -593,7 +520,7 @@ Cette extension offre :
593
520
  - **Aperçus en ligne** du contenu traduit.
594
521
  - **Actions rapides** pour créer et mettre à jour facilement les traductions.
595
522
 
596
- Pour plus de détails sur lutilisation de lextension, consultez la [documentation de lextension Intlayer VS Code](https://intlayer.org/doc/vs-code-extension).
523
+ Pour plus de détails sur l'utilisation de l'extension, consultez la [documentation de l'extension VS Code Intlayer](https://intlayer.org/doc/vs-code-extension).
597
524
 
598
525
  ---
599
526
 
@@ -612,7 +539,7 @@ Pour aller plus loin, vous pouvez implémenter l’[éditeur visuel](https://git
612
539
  - [Déclaration de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md)
613
540
  - [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md)
614
541
 
615
- Ce guide complet vous fournit tout ce dont vous avez besoin pour intégrer Intlayer avec Tanstack Start afin de créer une application entièrement internationalisée avec un routage sensible à la locale et une prise en charge de TypeScript.
542
+ Ce guide complet fournit tout ce dont vous avez besoin pour intégrer Intlayer avec Tanstack Start afin de créer une application entièrement internationalisée avec un routage sensible à la locale et une prise en charge de TypeScript.
616
543
 
617
544
  ## Historique de la documentation
618
545