@intlayer/docs 5.7.8 → 5.8.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 (297) hide show
  1. package/blog/ar/intlayer_with_next-i18next.md +5 -6
  2. package/blog/ar/intlayer_with_next-intl.md +3 -4
  3. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  4. package/blog/ar/intlayer_with_react-intl.md +1 -1
  5. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +96 -219
  6. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +88 -129
  7. package/blog/ar/vue-i18n_vs_intlayer.md +268 -0
  8. package/blog/de/intlayer_with_next-i18next.md +5 -6
  9. package/blog/de/intlayer_with_react-intl.md +1 -1
  10. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  11. package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  12. package/blog/de/vue-i18n_vs_intlayer.md +268 -0
  13. package/blog/en/intlayer_with_next-i18next.md +5 -6
  14. package/blog/en/intlayer_with_next-intl.md +3 -4
  15. package/blog/en/intlayer_with_react-i18next.md +1 -1
  16. package/blog/en/intlayer_with_react-intl.md +1 -1
  17. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +89 -220
  18. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +85 -123
  19. package/blog/en/vue-i18n_vs_intlayer.md +268 -0
  20. package/blog/en-GB/intlayer_with_next-i18next.md +5 -6
  21. package/blog/en-GB/intlayer_with_next-intl.md +3 -4
  22. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  23. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  24. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +85 -218
  25. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +80 -130
  26. package/blog/en-GB/vue-i18n_vs_intlayer.md +258 -0
  27. package/blog/es/intlayer_with_next-i18next.md +5 -6
  28. package/blog/es/intlayer_with_next-intl.md +3 -4
  29. package/blog/es/intlayer_with_react-i18next.md +1 -1
  30. package/blog/es/intlayer_with_react-intl.md +1 -1
  31. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  32. package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  33. package/blog/es/vue-i18n_vs_intlayer.md +268 -0
  34. package/blog/fr/intlayer_with_next-i18next.md +5 -6
  35. package/blog/fr/intlayer_with_next-intl.md +3 -4
  36. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  37. package/blog/fr/intlayer_with_react-intl.md +1 -1
  38. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  39. package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  40. package/blog/fr/vue-i18n_vs_intlayer.md +269 -0
  41. package/blog/hi/intlayer_with_next-i18next.md +5 -6
  42. package/blog/hi/intlayer_with_next-intl.md +3 -4
  43. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  44. package/blog/hi/intlayer_with_react-intl.md +1 -1
  45. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +97 -220
  46. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  47. package/blog/hi/vue-i18n_vs_intlayer.md +268 -0
  48. package/blog/it/intlayer_with_next-i18next.md +5 -6
  49. package/blog/it/intlayer_with_next-intl.md +3 -4
  50. package/blog/it/intlayer_with_react-i18next.md +1 -1
  51. package/blog/it/intlayer_with_react-intl.md +1 -1
  52. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  53. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  54. package/blog/it/vue-i18n_vs_intlayer.md +268 -0
  55. package/blog/ja/intlayer_with_next-i18next.md +5 -6
  56. package/blog/ja/intlayer_with_next-intl.md +3 -4
  57. package/blog/ja/intlayer_with_react-intl.md +1 -1
  58. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  59. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  60. package/blog/ja/vue-i18n_vs_intlayer.md +268 -0
  61. package/blog/ko/intlayer_with_next-i18next.md +5 -6
  62. package/blog/ko/intlayer_with_next-intl.md +3 -4
  63. package/blog/ko/intlayer_with_react-intl.md +1 -1
  64. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +95 -217
  65. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  66. package/blog/ko/vue-i18n_vs_intlayer.md +268 -0
  67. package/blog/pt/intlayer_with_next-i18next.md +5 -6
  68. package/blog/pt/intlayer_with_next-intl.md +3 -4
  69. package/blog/pt/intlayer_with_react-intl.md +1 -1
  70. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  71. package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  72. package/blog/pt/vue-i18n_vs_intlayer.md +268 -0
  73. package/blog/ru/intlayer_with_next-i18next.md +5 -6
  74. package/blog/ru/intlayer_with_next-intl.md +3 -4
  75. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  76. package/blog/ru/intlayer_with_react-intl.md +1 -1
  77. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +94 -217
  78. package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  79. package/blog/ru/vue-i18n_vs_intlayer.md +268 -0
  80. package/blog/zh/intlayer_with_next-i18next.md +5 -6
  81. package/blog/zh/intlayer_with_next-intl.md +3 -4
  82. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  83. package/blog/zh/intlayer_with_react-intl.md +1 -1
  84. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  85. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  86. package/blog/zh/vue-i18n_vs_intlayer.md +269 -0
  87. package/dist/cjs/generated/blog.entry.cjs +41 -0
  88. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  89. package/dist/cjs/generated/docs.entry.cjs +41 -0
  90. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  91. package/dist/esm/generated/blog.entry.mjs +41 -0
  92. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  93. package/dist/esm/generated/docs.entry.mjs +41 -0
  94. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  95. package/dist/types/generated/blog.entry.d.ts +1 -0
  96. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  97. package/dist/types/generated/docs.entry.d.ts +1 -0
  98. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  99. package/docs/ar/formatters.md +625 -0
  100. package/docs/ar/how_works_intlayer.md +2 -4
  101. package/docs/ar/interest_of_intlayer.md +159 -49
  102. package/docs/ar/intlayer_CMS.md +2 -3
  103. package/docs/ar/intlayer_visual_editor.md +2 -3
  104. package/docs/ar/intlayer_with_tanstack.md +1 -1
  105. package/docs/ar/introduction.md +7 -7
  106. package/docs/ar/packages/intlayer/index.md +3 -3
  107. package/docs/ar/packages/next-intlayer/index.md +3 -3
  108. package/docs/de/formatters.md +649 -0
  109. package/docs/de/interest_of_intlayer.md +161 -47
  110. package/docs/de/introduction.md +5 -5
  111. package/docs/de/packages/intlayer/index.md +3 -3
  112. package/docs/de/packages/next-intlayer/index.md +3 -3
  113. package/docs/de/packages/react-intlayer/index.md +3 -3
  114. package/docs/en/dictionary/enumeration.md +2 -2
  115. package/docs/en/dictionary/function_fetching.md +2 -2
  116. package/docs/en/dictionary/get_started.md +2 -2
  117. package/docs/en/dictionary/translation.md +2 -2
  118. package/docs/en/formatters.md +618 -0
  119. package/docs/en/how_works_intlayer.md +2 -4
  120. package/docs/en/interest_of_intlayer.md +170 -46
  121. package/docs/en/intlayer_CMS.md +2 -3
  122. package/docs/en/intlayer_visual_editor.md +2 -3
  123. package/docs/en/intlayer_with_create_react_app.md +2 -2
  124. package/docs/en/intlayer_with_express.md +2 -2
  125. package/docs/en/intlayer_with_tanstack.md +1 -1
  126. package/docs/en/introduction.md +7 -7
  127. package/docs/en/packages/express-intlayer/index.md +2 -2
  128. package/docs/en/packages/intlayer/getConfiguration.md +2 -3
  129. package/docs/en/packages/intlayer/getEnumeration.md +2 -7
  130. package/docs/en/packages/intlayer/getHTMLTextDir.md +2 -4
  131. package/docs/en/packages/intlayer/getLocaleLang.md +2 -4
  132. package/docs/en/packages/intlayer/getLocaleName.md +2 -3
  133. package/docs/en/packages/intlayer/getLocalizedUrl.md +2 -8
  134. package/docs/en/packages/intlayer/getMultilingualUrls.md +2 -7
  135. package/docs/en/packages/intlayer/getPathWithoutLocale.md +2 -3
  136. package/docs/en/packages/intlayer/getTranslation.md +2 -4
  137. package/docs/en/packages/intlayer/index.md +5 -5
  138. package/docs/en/packages/next-intlayer/index.md +5 -5
  139. package/docs/en/packages/next-intlayer/t.md +2 -2
  140. package/docs/en/packages/next-intlayer/useDictionary.md +2 -2
  141. package/docs/en/packages/next-intlayer/useIntlayer.md +2 -2
  142. package/docs/en/packages/next-intlayer/useLocale.md +2 -2
  143. package/docs/en/packages/react-intlayer/index.md +5 -5
  144. package/docs/en/packages/react-intlayer/t.md +2 -2
  145. package/docs/en/packages/react-intlayer/useI18n.md +2 -2
  146. package/docs/en/packages/react-intlayer/useIntlayer.md +2 -2
  147. package/docs/en/packages/react-intlayer/useLocale.md +2 -2
  148. package/docs/en/packages/react-scripts-intlayer/index.md +2 -2
  149. package/docs/en/packages/solid-intlayer/index.md +2 -2
  150. package/docs/en/packages/vite-intlayer/index.md +2 -2
  151. package/docs/en-GB/formatters.md +625 -0
  152. package/docs/en-GB/how_works_intlayer.md +2 -4
  153. package/docs/en-GB/interest_of_intlayer.md +157 -53
  154. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  155. package/docs/en-GB/introduction.md +2 -2
  156. package/docs/en-GB/packages/intlayer/index.md +3 -3
  157. package/docs/en-GB/packages/next-intlayer/index.md +3 -3
  158. package/docs/en-GB/packages/react-intlayer/index.md +3 -3
  159. package/docs/es/formatters.md +649 -0
  160. package/docs/es/how_works_intlayer.md +2 -4
  161. package/docs/es/interest_of_intlayer.md +156 -47
  162. package/docs/es/intlayer_with_tanstack.md +1 -1
  163. package/docs/es/introduction.md +5 -5
  164. package/docs/es/packages/intlayer/index.md +3 -3
  165. package/docs/es/packages/next-intlayer/index.md +3 -3
  166. package/docs/fr/formatters.md +649 -0
  167. package/docs/fr/how_works_intlayer.md +2 -4
  168. package/docs/fr/interest_of_intlayer.md +157 -46
  169. package/docs/fr/intlayer_with_tanstack.md +1 -1
  170. package/docs/fr/introduction.md +5 -5
  171. package/docs/fr/packages/intlayer/index.md +3 -3
  172. package/docs/fr/packages/next-intlayer/index.md +3 -3
  173. package/docs/fr/packages/react-intlayer/index.md +3 -3
  174. package/docs/hi/formatters.md +630 -0
  175. package/docs/hi/how_works_intlayer.md +2 -4
  176. package/docs/hi/interest_of_intlayer.md +155 -42
  177. package/docs/hi/intlayer_with_tanstack.md +1 -1
  178. package/docs/hi/introduction.md +5 -5
  179. package/docs/hi/packages/intlayer/index.md +3 -3
  180. package/docs/hi/packages/next-intlayer/index.md +3 -3
  181. package/docs/hi/packages/react-intlayer/index.md +3 -3
  182. package/docs/it/formatters.md +647 -0
  183. package/docs/it/how_works_intlayer.md +2 -4
  184. package/docs/it/interest_of_intlayer.md +157 -46
  185. package/docs/it/intlayer_with_tanstack.md +1 -1
  186. package/docs/it/introduction.md +5 -5
  187. package/docs/it/packages/intlayer/index.md +3 -3
  188. package/docs/it/packages/next-intlayer/index.md +3 -3
  189. package/docs/it/packages/react-intlayer/index.md +3 -3
  190. package/docs/ja/formatters.md +649 -0
  191. package/docs/ja/how_works_intlayer.md +2 -4
  192. package/docs/ja/interest_of_intlayer.md +154 -48
  193. package/docs/ja/intlayer_with_tanstack.md +1 -1
  194. package/docs/ja/introduction.md +5 -5
  195. package/docs/ja/packages/intlayer/index.md +3 -3
  196. package/docs/ja/packages/next-intlayer/index.md +3 -3
  197. package/docs/ja/packages/react-intlayer/index.md +3 -3
  198. package/docs/ko/formatters.md +649 -0
  199. package/docs/ko/how_works_intlayer.md +2 -4
  200. package/docs/ko/interest_of_intlayer.md +157 -48
  201. package/docs/ko/intlayer_with_tanstack.md +1 -1
  202. package/docs/ko/introduction.md +5 -5
  203. package/docs/ko/packages/intlayer/index.md +3 -3
  204. package/docs/ko/packages/next-intlayer/index.md +3 -3
  205. package/docs/ko/packages/react-intlayer/index.md +3 -3
  206. package/docs/pt/formatters.md +625 -0
  207. package/docs/pt/how_works_intlayer.md +2 -4
  208. package/docs/pt/interest_of_intlayer.md +162 -47
  209. package/docs/pt/intlayer_with_tanstack.md +1 -1
  210. package/docs/pt/introduction.md +5 -5
  211. package/docs/pt/packages/intlayer/index.md +3 -3
  212. package/docs/pt/packages/next-intlayer/index.md +3 -3
  213. package/docs/pt/packages/react-intlayer/index.md +3 -3
  214. package/docs/ru/autoFill.md +2 -2
  215. package/docs/ru/configuration.md +1 -40
  216. package/docs/ru/formatters.md +649 -0
  217. package/docs/ru/how_works_intlayer.md +5 -7
  218. package/docs/ru/index.md +1 -1
  219. package/docs/ru/interest_of_intlayer.md +165 -50
  220. package/docs/ru/intlayer_CMS.md +7 -8
  221. package/docs/ru/intlayer_cli.md +4 -7
  222. package/docs/ru/intlayer_visual_editor.md +5 -6
  223. package/docs/ru/intlayer_with_angular.md +1 -1
  224. package/docs/ru/intlayer_with_create_react_app.md +5 -5
  225. package/docs/ru/intlayer_with_lynx+react.md +1 -1
  226. package/docs/ru/intlayer_with_nextjs_15.md +3 -3
  227. package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
  228. package/docs/ru/intlayer_with_nuxt.md +1 -1
  229. package/docs/ru/intlayer_with_react_native+expo.md +2 -2
  230. package/docs/ru/intlayer_with_tanstack.md +3 -3
  231. package/docs/ru/intlayer_with_vite+preact.md +3 -3
  232. package/docs/ru/intlayer_with_vite+react.md +3 -3
  233. package/docs/ru/intlayer_with_vite+solid.md +1 -1
  234. package/docs/ru/intlayer_with_vite+svelte.md +1 -1
  235. package/docs/ru/intlayer_with_vite+vue.md +2 -2
  236. package/docs/ru/introduction.md +8 -8
  237. package/docs/ru/locale_mapper.md +1 -1
  238. package/docs/ru/packages/@intlayer/api/index.md +2 -2
  239. package/docs/ru/packages/@intlayer/chokidar/index.md +1 -1
  240. package/docs/ru/packages/@intlayer/cli/index.md +2 -2
  241. package/docs/ru/packages/@intlayer/config/index.md +2 -2
  242. package/docs/ru/packages/@intlayer/core/index.md +2 -2
  243. package/docs/ru/packages/@intlayer/design-system/index.md +2 -2
  244. package/docs/ru/packages/@intlayer/dictionary-entry/index.md +2 -2
  245. package/docs/ru/packages/@intlayer/editor/index.md +1 -1
  246. package/docs/ru/packages/@intlayer/editor-react/index.md +1 -1
  247. package/docs/ru/packages/@intlayer/webpack/index.md +1 -1
  248. package/docs/ru/packages/angular-intlayer/index.md +1 -1
  249. package/docs/ru/packages/express-intlayer/index.md +3 -3
  250. package/docs/ru/packages/express-intlayer/t.md +1 -1
  251. package/docs/ru/packages/intlayer/getEnumeration.md +3 -8
  252. package/docs/ru/packages/intlayer/getTranslation.md +3 -5
  253. package/docs/ru/packages/intlayer/getTranslationContent.md +1 -3
  254. package/docs/ru/packages/intlayer/index.md +6 -6
  255. package/docs/ru/packages/intlayer-cli/index.md +1 -1
  256. package/docs/ru/packages/intlayer-editor/index.md +2 -2
  257. package/docs/ru/packages/lynx-intlayer/index.md +1 -1
  258. package/docs/ru/packages/next-intlayer/index.md +7 -7
  259. package/docs/ru/packages/next-intlayer/t.md +4 -4
  260. package/docs/ru/packages/next-intlayer/useLocale.md +3 -3
  261. package/docs/ru/packages/nuxt-intlayer/index.md +1 -1
  262. package/docs/ru/packages/preact-intlayer/index.md +1 -1
  263. package/docs/ru/packages/react-intlayer/index.md +7 -7
  264. package/docs/ru/packages/react-intlayer/t.md +4 -4
  265. package/docs/ru/packages/react-native-intlayer/index.md +1 -1
  266. package/docs/ru/packages/react-scripts-intlayer/index.md +3 -3
  267. package/docs/ru/packages/solid-intlayer/index.md +3 -3
  268. package/docs/ru/packages/svelte-intlayer/index.md +1 -1
  269. package/docs/ru/packages/vite-intlayer/index.md +3 -3
  270. package/docs/ru/packages/vue-intlayer/index.md +1 -1
  271. package/docs/ru/per_locale_file.md +1 -1
  272. package/docs/ru/roadmap.md +3 -5
  273. package/docs/ru/vs_code_extension.md +1 -1
  274. package/docs/zh/formatters.md +647 -0
  275. package/docs/zh/how_works_intlayer.md +2 -4
  276. package/docs/zh/interest_of_intlayer.md +155 -48
  277. package/docs/zh/intlayer_with_tanstack.md +1 -1
  278. package/docs/zh/introduction.md +5 -5
  279. package/docs/zh/packages/intlayer/index.md +3 -3
  280. package/docs/zh/packages/next-intlayer/index.md +3 -3
  281. package/docs/zh/packages/react-intlayer/index.md +3 -3
  282. package/frequent_questions/ar/domain_routing.md +1 -1
  283. package/frequent_questions/en/domain_routing.md +1 -1
  284. package/frequent_questions/en-GB/domain_routing.md +1 -1
  285. package/frequent_questions/es/domain_routing.md +1 -1
  286. package/frequent_questions/fr/domain_routing.md +1 -1
  287. package/frequent_questions/hi/domain_routing.md +1 -1
  288. package/frequent_questions/it/domain_routing.md +1 -1
  289. package/frequent_questions/ko/domain_routing.md +1 -1
  290. package/frequent_questions/pt/domain_routing.md +1 -1
  291. package/frequent_questions/ru/domain_routing.md +1 -1
  292. package/frequent_questions/ru/get_locale_cookie.md +4 -4
  293. package/frequent_questions/ru/static_rendering.md +1 -2
  294. package/frequent_questions/zh/domain_routing.md +1 -1
  295. package/package.json +11 -11
  296. package/src/generated/blog.entry.ts +41 -0
  297. package/src/generated/docs.entry.ts +41 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-14
3
- updatedAt: 2025-06-29
3
+ updatedAt: 2025-08-20
4
4
  title: Intérêt d'Intlayer
5
5
  description: Découvrez les bénéfices et avantages d'utiliser Intlayer dans vos projets. Comprenez pourquoi Intlayer se démarque parmi les autres frameworks.
6
6
  keywords:
@@ -11,41 +11,104 @@ keywords:
11
11
  - Comparaison
12
12
  slugs:
13
13
  - doc
14
- - concept
15
- - interest
14
+ - why
16
15
  ---
17
16
 
18
- # Intlayer : Une méthode sur mesure pour traduire votre site web
17
+ # Pourquoi devriez-vous envisager Intlayer ?
19
18
 
20
- **Intlayer** est une bibliothèque d'internationalisation conçue spécifiquement pour les développeurs JavaScript. Elle permet la déclaration de votre contenu partout dans votre code. Elle convertit la déclaration de contenu multilingue en dictionnaires structurés pour une intégration facile dans votre code. En utilisant TypeScript, **Intlayer** rend votre développement plus robuste et plus efficace.
19
+ ## Qu'est-ce qu'Intlayer ?
21
20
 
22
- ## Exemple d'utilisation
21
+ **Intlayer** est une bibliothèque d'internationalisation conçue spécifiquement pour les développeurs JavaScript. Elle permet la déclaration de votre contenu partout dans votre code. Elle convertit les déclarations de contenu multilingue en dictionnaires structurés pour une intégration facile dans votre code. En utilisant TypeScript, **Intlayer** rend votre développement plus robuste et plus efficace.
22
+
23
+ ## Pourquoi Intlayer a-t-il été créé ?
24
+
25
+ Intlayer a été créé pour résoudre un problème courant qui affecte toutes les bibliothèques i18n classiques telles que `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl` et `vue-i18n`.
26
+
27
+ Toutes ces solutions adoptent une approche centralisée pour lister et gérer votre contenu. Par exemple :
28
+
29
+ ```bash
30
+ .
31
+ ├── locales
32
+ │ ├── en.json
33
+ │ ├── fr.json
34
+ │ └── es.json
35
+ ├── i18n.ts
36
+ └── src
37
+ └── components
38
+ └── MyComponent
39
+ └── index.tsx
40
+ ```
41
+
42
+ Ou ici en utilisant des namespaces :
43
+
44
+ ```bash
45
+ .
46
+ ├── locales
47
+ │ ├── en
48
+ │ │ ├── footer.json
49
+ │ │ └── navbar.json
50
+ │ ├── fr
51
+ │ │ ├── footer.json
52
+ │ │ └── navbar.json
53
+ │ └── es
54
+ │ ├── footer.json
55
+ │ └── navbar.json
56
+ ├── i18n.ts
57
+ └── src
58
+ └── components
59
+ └── MyComponent
60
+ └── index.tsx
61
+ ```
62
+
63
+ Ce type d'architecture ralentit le processus de développement et rend la base de code plus complexe à maintenir pour plusieurs raisons :
64
+
65
+ 1. **Pour chaque nouveau composant créé, vous devez :**
66
+ - Créer la nouvelle ressource/namespace dans le dossier `locales`
67
+ - Penser à importer le nouveau namespace dans votre page
68
+ - Traduire votre contenu (souvent fait manuellement par copier/coller depuis des fournisseurs d'IA)
69
+
70
+ 2. **Pour chaque modification apportée à vos composants, vous devez :**
71
+ - Rechercher la ressource/namespace concernée (loin du composant)
72
+ - Traduire votre contenu
73
+ - S'assurer que votre contenu est à jour pour chaque locale
74
+ - Vérifier que votre namespace ne contient pas de clés/valeurs inutilisées
75
+ - S'assurer que la structure de vos fichiers JSON est la même pour toutes les locales
76
+
77
+ Sur les projets professionnels utilisant ces solutions, des plateformes de localisation sont souvent utilisées pour aider à gérer la traduction de votre contenu. Cependant, cela peut rapidement devenir coûteux pour les grands projets.
78
+
79
+ Pour résoudre ce problème, Intlayer adopte une approche qui scope votre contenu par composant et garde votre contenu proche de votre composant, comme nous le faisons souvent avec le CSS (`styled-components`), les types, la documentation (`storybook`), ou les tests unitaires (`jest`).
23
80
 
24
81
  ```bash codeFormat="typescript"
25
82
  .
26
- └── Components
83
+ └── components
27
84
  └── MyComponent
28
85
  ├── index.content.ts
86
+ ├── index.test.tsx
87
+ ├── index.stories.tsx
29
88
  └── index.tsx
30
89
  ```
31
90
 
32
91
  ```bash codeFormat="commonjs"
33
92
  .
34
- └── Components
93
+ └── components
35
94
  └── MyComponent
36
95
  ├── index.content.cjs
37
- └── index.mjs
96
+ ├── index.test.mjs
97
+ ├── index.stories.mjs
98
+ └── index.tsx
38
99
  ```
39
100
 
40
101
  ```bash codeFormat="esm"
41
102
  .
42
- └── Components
103
+ └── components
43
104
  └── MyComponent
44
105
  ├── index.content.mjs
45
- └── index.js
106
+ ├── index.test.mjs
107
+ ├── index.stories.mjs
108
+ └── index.tsx
46
109
  ```
47
110
 
48
- ```tsx fileName="./Components/MyComponent/index.content.ts" codeFormat="typescript"
111
+ ```tsx fileName="./components/MyComponent/index.content.ts" codeFormat="typescript"
49
112
  import { t, type Dictionary } from "intlayer";
50
113
 
51
114
  const componentExampleContent = {
@@ -53,8 +116,8 @@ const componentExampleContent = {
53
116
  content: {
54
117
  myTranslatedContent: t({
55
118
  en: "Hello World",
56
- fr: "Bonjour le monde",
57
119
  es: "Hola Mundo",
120
+ fr: "Bonjour le monde",
58
121
  }),
59
122
  },
60
123
  } satisfies Dictionary;
@@ -62,18 +125,17 @@ const componentExampleContent = {
62
125
  export default componentExampleContent;
63
126
  ```
64
127
 
65
- ```jsx fileName="./Components/MyComponent/index.mjx" codeFormat="esm"
128
+ ```jsx fileName="./components/MyComponent/index.mjx" codeFormat="esm"
66
129
  import { t } from "intlayer";
67
130
 
68
131
  /** @type {import('intlayer').Dictionary} */
69
- // Déclaration du contenu d'exemple pour le composant
70
132
  const componentExampleContent = {
71
133
  key: "component-example",
72
134
  content: {
73
135
  myTranslatedContent: t({
74
136
  en: "Hello World",
75
- fr: "Bonjour le monde",
76
137
  es: "Hola Mundo",
138
+ fr: "Bonjour le monde",
77
139
  }),
78
140
  },
79
141
  };
@@ -81,18 +143,18 @@ const componentExampleContent = {
81
143
  export default componentExampleContent;
82
144
  ```
83
145
 
84
- ```jsx fileName="./Components/MyComponent/index.csx" codeFormat="commonjs"
146
+ ```jsx fileName="./components/MyComponent/index.csx" codeFormat="commonjs"
85
147
  const { t } = require("intlayer");
86
148
 
87
149
  /** @type {import('intlayer').Dictionary} */
88
- // Déclaration du contenu d'exemple pour le composant
150
+ // Contenu d'exemple du composant avec traductions
89
151
  const componentExampleContent = {
90
152
  key: "component-example",
91
153
  content: {
92
154
  myTranslatedContent: t({
93
155
  en: "Hello World",
94
- fr: "Bonjour le monde",
95
156
  es: "Hola Mundo",
157
+ fr: "Bonjour le monde",
96
158
  }),
97
159
  },
98
160
  };
@@ -100,7 +162,7 @@ const componentExampleContent = {
100
162
  module.exports = componentExampleContent;
101
163
  ```
102
164
 
103
- ```tsx fileName="./Components/MyComponent/index.tsx" codeFormat="typescript"
165
+ ```tsx fileName="./components/MyComponent/index.tsx" codeFormat="typescript"
104
166
  import { useIntlayer } from "react-intlayer";
105
167
 
106
168
  export const ComponentExample = () => {
@@ -110,7 +172,7 @@ export const ComponentExample = () => {
110
172
  };
111
173
  ```
112
174
 
113
- ```jsx fileName="./Components/MyComponent/index.mjx" codeFormat="esm"
175
+ ```jsx fileName="./components/MyComponent/index.mjx" codeFormat="esm"
114
176
  import { useIntlayer } from "react-intlayer";
115
177
 
116
178
  const ComponentExample = () => {
@@ -120,7 +182,7 @@ const ComponentExample = () => {
120
182
  };
121
183
  ```
122
184
 
123
- ```jsx fileName="./Components/MyComponent/index.csx" codeFormat="commonjs"
185
+ ```jsx fileName="./components/MyComponent/index.csx" codeFormat="commonjs"
124
186
  const { useIntlayer } = require("react-intlayer");
125
187
 
126
188
  const ComponentExample = () => {
@@ -130,27 +192,76 @@ const ComponentExample = () => {
130
192
  };
131
193
  ```
132
194
 
133
- ## Pourquoi choisir Intlayer ?
134
-
135
- | Fonctionnalité | Description |
136
- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
137
- | **Gestion de contenu propulsée par JavaScript** | Exploitez la flexibilité de JavaScript pour définir et gérer efficacement votre contenu. |
138
- | **Environnement à typage sécurisé** | Exploitez TypeScript pour garantir que toutes vos définitions de contenu soient précises et sans erreur. |
139
- | **Fichiers de contenu intégrés** | Gardez vos traductions proches de leurs composants respectifs, améliorant ainsi la maintenabilité et la clarté. |
140
- | **Configuration Simplifiée** | Démarrez rapidement avec une configuration minimale, spécialement optimisée pour les projets Next.js. |
141
- | **Support des composants serveur** | Parfaitement adapté aux composants serveur Next.js, garantissant un rendu côté serveur fluide. |
142
- | **Routage Amélioré** | Prise en charge complète du routage des applications Next.js, s'adaptant parfaitement aux structures d'application complexes. |
143
- | **Base de code organisée** | Gardez votre base de code plus organisée : 1 composant = 1 dictionnaire dans le même dossier. |
144
- | **Traduction automatique CI** | Remplissez automatiquement vos traductions dans votre CI en utilisant votre propre clé API OpenAI, éliminant ainsi le besoin d'une plateforme de localisation (L10n). |
145
- | **Intégration du serveur MCP** | Fournit un serveur MCP (Model Context Protocol) pour l'automatisation dans l'IDE, permettant une gestion fluide du contenu et des flux de travail i18n directement au sein de votre environnement de développement. [En savoir plus](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/mcp_server.md). |
146
- | **Support Markdown** | Importer et interpréter des fichiers markdown pour du contenu multilingue comme les politiques de confidentialité. |
147
- | **Éditeur Visuel Gratuit & CMS** | Un éditeur visuel gratuit et un CMS sont disponibles si vous devez travailler avec des rédacteurs de contenu pour vos traductions, supprimant ainsi à nouveau le besoin d'une plateforme de localisation et permettant l'externalisation du contenu hors de la base de code. |
148
- | **Récupération Simplifiée du Contenu** | Plus besoin d'appeler votre fonction `t` pour chaque élément de contenu ; récupérez tout votre contenu directement en utilisant un seul hook. |
149
- | **Implémentation cohérente** | La même implémentation pour les composants client et serveur, pas besoin de passer votre fonction `t` à travers chaque composant serveur. |
150
- | **Contenu Tree-shakable** | Le contenu est tree-shakable, ce qui allège le bundle final. |
151
- | **Rendu statique non bloquant** | Intlayer ne bloque pas le rendu statique contrairement à `next-intl`. |
152
- | **Interopérabilité** | Permet l'interopérabilité avec [react-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_react-i18next.md), [next-i18next](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_next-i18next.md), [next-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_next-intl.md), et [react-intl](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_with_react-intl.md). |
153
-
154
- ## Historique de la documentation
155
-
156
- - 5.5.10 - 2025-06-29 : Historique initial
195
+ Cette approche vous permet de :
196
+
197
+ 1. **Augmenter la vitesse de développement**
198
+ - Les fichiers `.content.{{ts|mjs|cjs|json}}` peuvent être créés à l'aide d'une extension VSCode
199
+ - Les outils d'autocomplétion IA dans votre IDE (comme GitHub Copilot) peuvent vous aider à déclarer votre contenu, réduisant ainsi le copier/coller
200
+
201
+ 2. **Nettoyer votre base de code**
202
+ - Réduire la complexité
203
+ - Augmenter la maintenabilité
204
+
205
+ 3. **Dupliquer plus facilement vos composants et leur contenu associé (Exemple : composants de connexion/inscription, etc.)**
206
+ - En limitant le risque d'impacter le contenu d'autres composants
207
+ - En copiant/collant votre contenu d'une application à une autre sans dépendances externes
208
+
209
+ 4. **Éviter de polluer votre base de code avec des clés/valeurs inutilisées pour des composants non utilisés**
210
+ - Si vous ne utilisez pas un composant, Intlayer ne l'importera pas
211
+ - Si vous supprimez un composant, vous vous souviendrez plus facilement de supprimer son contenu associé puisqu'il sera présent dans le même dossier
212
+
213
+ 5. **Réduire le coût de raisonnement pour les agents IA afin de déclarer votre contenu multilingue**
214
+ - L'agent IA n'aura pas à scanner l'ensemble de votre base de code pour savoir où implémenter votre contenu
215
+ - Les traductions peuvent facilement être réalisées par des outils d'autocomplétion IA dans votre IDE (comme GitHub Copilot)
216
+
217
+ ## Fonctionnalités supplémentaires d'Intlayer
218
+
219
+ | Fonctionnalité | Description |
220
+ | ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
221
+ | ![Fonctionnalité](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Support Multi-Frameworks**<br><br>Intlayer est compatible avec tous les principaux frameworks et bibliothèques, y compris Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, et bien d'autres. |
222
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.png?raw=true) | **Gestion de contenu propulsée par JavaScript**<br><br>Exploitez la flexibilité de JavaScript pour définir et gérer votre contenu efficacement. <br><br> - [Déclaration de contenu](https://intlayer.org/doc/concept/content) |
223
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Fichier de Déclaration de Contenu par Langue**<br><br>Accélérez votre développement en déclarant votre contenu une seule fois, avant la génération automatique.<br><br> - [Fichier de Déclaration de Contenu par Langue](https://intlayer.org/doc/concept/per-locale-file) |
224
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Environnement Typé**<br><br>Exploitez TypeScript pour garantir que vos définitions de contenu et votre code sont sans erreur, tout en bénéficiant de l'autocomplétion dans votre IDE.<br><br> - [Configuration TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
225
+ | ![Fonctionnalité](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Configuration Simplifiée**<br><br>Démarrez rapidement avec une configuration minimale. Ajustez facilement les paramètres pour l’internationalisation, le routage, l’IA, la compilation et la gestion du contenu.<br><br> - [Explorer l’intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
226
+ | ![Fonctionnalité](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Récupération de contenu simplifiée**<br><br>Pas besoin d'appeler votre fonction `t` pour chaque contenu. Récupérez tout votre contenu directement en utilisant un seul hook.<br><br> - [Intégration React](https://intlayer.org/doc/environment/create-react-app) |
227
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Implémentation cohérente des composants serveur**<br><br>Parfaitement adapté aux composants serveur Next.js, utilisez la même implémentation pour les composants client et serveur, sans avoir besoin de passer votre fonction `t` à travers chaque composant serveur. <br><br> - [Composants Serveur](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
228
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Base de code organisée**<br><br>Gardez votre base de code plus organisée : 1 composant = 1 dictionnaire dans le même dossier. Les traductions proches de leurs composants respectifs améliorent la maintenabilité et la clarté. <br><br> - [Comment fonctionne Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
229
+ | ![Fonctionnalité](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Routage Amélioré**<br><br>Prise en charge complète du routage d’application, s’adaptant parfaitement aux structures d’applications complexes, pour Next.js, React, Vite, Vue.js, etc.<br><br> - [Explorer l’intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
230
+ | ![Fonctionnalité](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Support Markdown**<br><br>Importer et interpréter les fichiers de localisation et le Markdown distant pour du contenu multilingue comme les politiques de confidentialité, la documentation, etc. Interpréter et rendre les métadonnées Markdown accessibles dans votre code.<br><br> - [Fichiers de contenu](https://intlayer.org/doc/concept/content/file) |
231
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Éditeur Visuel Gratuit & CMS**<br><br>Un éditeur visuel gratuit et un CMS sont disponibles pour les rédacteurs de contenu, supprimant le besoin d'une plateforme de localisation. Gardez votre contenu synchronisé en utilisant Git, ou externalisez-le totalement ou partiellement avec le CMS.<br><br> - [Éditeur Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
232
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Contenu Tree-shakable**<br><br>Contenu tree-shakable, réduisant la taille du bundle final. Charge le contenu par composant, excluant tout contenu inutilisé de votre bundle. Supporte le chargement paresseux pour améliorer l'efficacité du chargement de l'application. <br><br> - [Optimisation de la construction de l'application](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
233
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Rendu Statique**<br><br>Ne bloque pas le rendu statique. <br><br> - [Intégration Next.js](https://intlayer.org/doc/environment/nextjs) |
234
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **Traduction alimentée par l'IA**<br><br>Transformez votre site web en 231 langues en un seul clic grâce aux outils avancés de traduction alimentés par l'IA d'Intlayer utilisant votre propre fournisseur d'IA/clé API. <br><br> - [Intégration CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Remplissage automatique](https://intlayer.org/doc/concept/auto-fill) |
235
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **Intégration du serveur MCP**<br><br>Fournit un serveur MCP (Model Context Protocol) pour l'automatisation dans l'IDE, permettant une gestion fluide du contenu et des flux de travail i18n directement dans votre environnement de développement. <br><br> - [Serveur MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/mcp_server.md) |
236
+ | ![Fonctionnalité](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **Extension VSCode**<br><br>Intlayer propose une extension VSCode pour vous aider à gérer votre contenu et vos traductions, construire vos dictionnaires, traduire votre contenu, et plus encore. <br><br> - [Extension VSCode](https://intlayer.org/doc/vs-code-extension) |
237
+ | ![Fonctionnalité](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interopérabilité**<br><br>Permet l'interopérabilité avec react-i18next, next-i18next, next-intl et react-intl. <br><br> - [Intlayer et react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer et next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer et next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
238
+
239
+ ## Comparaison d'Intlayer avec d'autres solutions
240
+
241
+ | Fonctionnalité | Intlayer | React-i18next / i18next | React-Intl (FormatJS) | LinguiJS | next-intl | next-i18next | vue-i18n |
242
+ | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------ |
243
+ | **Traductions Près des Composants** | Oui, contenu collé avec chaque composant | Non | Non | Non | Non | Non | Oui - utilisant les `Single File Components` (SFCs) |
244
+ | **Intégration TypeScript** | Avancée, types stricts auto-générés | Basique ; configuration supplémentaire pour la sécurité | Bonne, mais moins stricte | Typages, nécessite une configuration | Bonne | Basique | Bonne (types disponibles ; configuration nécessaire pour la sécurité des clés) |
245
+ | **Détection des traductions manquantes** | Erreur/avertissement à la compilation | Principalement des chaînes de secours à l'exécution | Chaînes de secours | Nécessite une configuration supplémentaire | Chaînes de secours à l'exécution | Chaînes de secours à l'exécution | Chaînes de secours/avertissements à l'exécution (configurable) |
246
+ | **Contenu riche (JSX/Markdown/composants)** | Support direct, même pour les nœuds React | Limité / interpolation uniquement | Syntaxe ICU, pas de vrai JSX | Limité | Non conçu pour les nœuds riches | Limité | Limité (composants via `<i18n-t>`, Markdown via plugins) |
247
+ | **Traduction assistée par IA** | Oui, prend en charge plusieurs fournisseurs d'IA. Utilisable avec vos propres clés API. Prend en compte le contexte de votre application et la portée du contenu | Non | Non | Non | Non | Non | Non |
248
+ | **Éditeur Visuel** | Oui, éditeur visuel local + CMS optionnel ; peut externaliser le contenu de la base de code ; intégrable | Non / disponible via des plateformes de localisation externes | Non / disponible via des plateformes de localisation externes | Non / disponible via des plateformes de localisation externes | Non / disponible via des plateformes de localisation externes | Non / disponible via des plateformes de localisation externes | Non / disponible via des plateformes de localisation externes |
249
+ | **Routage localisé** | Intégré, support middleware | Plugins ou configuration manuelle | Non intégré | Plugin/configuration manuelle | Intégré | Intégré | Manuel via Vue Router (géré par Nuxt i18n) |
250
+ | **Génération dynamique des routes** | Oui | Plugin/écosystème ou configuration manuelle | Non fourni | Plugin/manuelle | Oui | Oui | Non fourni (Nuxt i18n le fournit) |
251
+ | **Pluriel** | Modèles basés sur l'énumération ; voir la documentation | Configurable (plugins comme i18next-icu) | Avancé (ICU) | Avancé (ICU/messageformat) | Bon | Bon | Avancé (règles de pluriel intégrées) |
252
+ | **Formatage (dates, nombres, devises)** | Formatteurs optimisés (Intl en interne) | Via des plugins ou usage personnalisé d’Intl | Formatteurs ICU avancés | Aides ICU/CLI | Bon (aides Intl) | Bon (aides Intl) | Formatteurs intégrés pour dates/nombres (Intl) |
253
+ | **Format de contenu** | .tsx, .ts, .js, .json, .md, .txt | .json | .json, .js | .po, .json | .json, .js, .ts | .json | .json, .js |
254
+ | **Support ICU** | En cours (ICU natif) | Via plugin (i18next-icu) | Oui | Oui | Oui | Via plugin (i18next-icu) | Via un formateur/compilateur personnalisé |
255
+ | **Aides SEO (hreflang, sitemap)** | Outils intégrés : aides pour sitemap, **robots.txt**, métadonnées | Plugins communautaires / manuel | Pas au cœur | Pas au cœur | Bon | Bon | Pas au cœur (Nuxt i18n fournit des aides) |
256
+ | **Écosystème / Communauté** | Plus petit mais en croissance rapide et réactif | Le plus grand et le plus mature | Grand, entreprise | En croissance, plus petit | Taille moyenne, axé sur Next.js | Taille moyenne, axé sur Next.js | Important dans l'écosystème Vue |
257
+ | **Rendu côté serveur & Composants Serveur** | Oui, optimisé pour le SSR / Composants Serveur React | Pris en charge, configuration nécessaire | Pris en charge dans Next.js | Pris en charge | Support complet | Support complet | SSR via Nuxt/Vue SSR (pas de RSC) |
258
+ | **Élimination des codes morts (chargement uniquement du contenu utilisé)** | Oui, par composant au moment de la compilation via les plugins Babel/SWC | Charge généralement tout (peut être amélioré avec des espaces de noms/découpage de code) | Charge généralement tout | Pas par défaut | Partiel | Partiel | Partiel (avec découpage de code/configuration manuelle) |
259
+ | **Chargement paresseux** | Oui, par locale/par composant | Oui (par exemple, backends/namespaces à la demande) | Oui (bundles de locale fractionnés) | Oui (importations dynamiques de catalogues) | Oui (par route/par locale) | Oui (par route/par locale) | Oui (messages de locale asynchrones) |
260
+ | **Gestion des grands projets** | Encourage la modularité, adapté aux design-systems | Nécessite une bonne discipline des fichiers | Les catalogues centraux peuvent devenir volumineux | Peut devenir complexe | Modulaire avec configuration | Modulaire avec configuration | Modulaire avec configuration Vue Router/Nuxt i18n |
261
+
262
+ ## Historique du document
263
+
264
+ | Version | Date | Modifications |
265
+ | ------- | ---------- | --------------------------------- |
266
+ | 5.8.0 | 2025-08-19 | Mise à jour du tableau comparatif |
267
+ | 5.5.10 | 2025-06-29 | Historique initial |
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-08-11
3
3
  updatedAt: 2025-08-11
4
4
  title: Prise en main d'Intlayer avec TanStack Start (React)
5
- description: Ajoutez l'internationalisation à votre application TanStack Start avec Intlayer dictionnaires au niveau des composants, URLs localisées et métadonnées optimisées pour le SEO.
5
+ description: Ajoutez l'internationalisation à votre application TanStack Start avec Intlayer - dictionnaires au niveau des composants, URLs localisées et métadonnées optimisées pour le SEO.
6
6
  keywords:
7
7
  - Internationalisation
8
8
  - Documentation
@@ -32,8 +32,8 @@ Intlayer propose également un éditeur visuel optionnel qui vous permet de modi
32
32
  .
33
33
  └── Components
34
34
  └── MyComponent
35
- ├── index.content.cjs
36
- └── index.mjs
35
+ ├── index.content.ts
36
+ └── index.tsx
37
37
  ```
38
38
 
39
39
  ```tsx fileName="src/components/MyComponent/index.content.ts" contentDeclarationFormat="typescript"
@@ -44,8 +44,8 @@ const componentContent = {
44
44
  content: {
45
45
  myTranslatedContent: t({
46
46
  en: "Hello World",
47
- fr: "Bonjour le monde",
48
47
  es: "Hola Mundo",
48
+ fr: "Bonjour le monde",
49
49
  }),
50
50
  },
51
51
  } satisfies Dictionary;
@@ -63,8 +63,8 @@ const componentContent = {
63
63
  content: {
64
64
  myTranslatedContent: t({
65
65
  en: "Hello World",
66
- fr: "Bonjour le monde",
67
66
  es: "Hola Mundo",
67
+ fr: "Bonjour le monde",
68
68
  }),
69
69
  },
70
70
  };
@@ -82,8 +82,8 @@ const componentContent = {
82
82
  content: {
83
83
  myTranslatedContent: t({
84
84
  en: "Hello World",
85
- fr: "Bonjour le monde",
86
85
  es: "Hola Mundo",
86
+ fr: "Bonjour le monde",
87
87
  }),
88
88
  },
89
89
  };
@@ -149,8 +149,8 @@ const clientComponentContent = {
149
149
  content: {
150
150
  myTranslatedContent: t({
151
151
  en: "Hello World",
152
- fr: "Bonjour le monde",
153
152
  es: "Hola Mundo",
153
+ fr: "Bonjour le monde",
154
154
  }),
155
155
  numberOfCar: enu({
156
156
  "<-1": "Less than minus one car",
@@ -175,8 +175,8 @@ const clientComponentContent = {
175
175
  content: {
176
176
  myTranslatedContent: t({
177
177
  en: "Hello World",
178
- fr: "Bonjour le monde",
179
178
  es: "Hola Mundo",
179
+ fr: "Bonjour le monde",
180
180
  }),
181
181
  numberOfCar: enu({
182
182
  "<-1": "Moins d'une voiture en moins",
@@ -201,8 +201,8 @@ const clientComponentContent = {
201
201
  content: {
202
202
  myTranslatedContent: t({
203
203
  en: "Hello World",
204
- fr: "Bonjour le monde",
205
204
  es: "Hola Mundo",
205
+ fr: "Bonjour le monde",
206
206
  }),
207
207
  numberOfCar: enu({
208
208
  "<-1": "Moins d'une voiture en dessous de moins un",
@@ -110,8 +110,8 @@ const clientComponentContent = {
110
110
  content: {
111
111
  myTranslatedContent: t({
112
112
  en: "Hello World",
113
- fr: "Bonjour le monde",
114
113
  es: "Hola Mundo",
114
+ fr: "Bonjour le monde",
115
115
  }),
116
116
  numberOfCar: enu({
117
117
  "<-1": "Less than minus one car",
@@ -136,8 +136,8 @@ const clientComponentContent = {
136
136
  content: {
137
137
  myTranslatedContent: t({
138
138
  en: "Hello World",
139
- fr: "Bonjour le monde",
140
139
  es: "Hola Mundo",
140
+ fr: "Bonjour le monde",
141
141
  }),
142
142
  numberOfCar: enu({
143
143
  "<-1": "Moins qu'une voiture en moins",
@@ -162,8 +162,8 @@ const clientComponentContent = {
162
162
  content: {
163
163
  myTranslatedContent: t({
164
164
  en: "Hello World",
165
- fr: "Bonjour le monde",
166
165
  es: "Hola Mundo",
166
+ fr: "Bonjour le monde",
167
167
  }),
168
168
  numberOfCar: enu({
169
169
  "<-1": "Moins d'une voiture en moins",
@@ -110,8 +110,8 @@ const component1Content = {
110
110
  content: {
111
111
  myTranslatedContent: t({
112
112
  en: "Hello World",
113
- fr: "Bonjour le monde",
114
113
  es: "Hola Mundo",
114
+ fr: "Bonjour le monde",
115
115
  }),
116
116
  numberOfCar: enu({
117
117
  "<-1": "Moins d'une voiture en moins",
@@ -136,8 +136,8 @@ const component1Content = {
136
136
  content: {
137
137
  myTranslatedContent: t({
138
138
  en: "Hello World",
139
- fr: "Bonjour le monde",
140
139
  es: "Hola Mundo",
140
+ fr: "Bonjour le monde",
141
141
  }),
142
142
  numberOfCar: enu({
143
143
  "<-1": "Moins d'une voiture en moins",
@@ -162,8 +162,8 @@ const component1Content = {
162
162
  content: {
163
163
  myTranslatedContent: t({
164
164
  en: "Hello World",
165
- fr: "Bonjour le monde",
166
165
  es: "Hola Mundo",
166
+ fr: "Bonjour le monde",
167
167
  }),
168
168
  numberOfCar: enu({
169
169
  "<-1": "Moins d'une voiture en moins",