@intlayer/docs 7.5.6 → 7.5.8

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 (534) hide show
  1. package/blog/ar/intlayer_with_i18next.md +8 -4
  2. package/blog/ar/intlayer_with_next-i18next.md +8 -4
  3. package/blog/ar/intlayer_with_next-intl.md +8 -4
  4. package/blog/ar/intlayer_with_react-i18next.md +8 -4
  5. package/blog/ar/intlayer_with_react-intl.md +8 -4
  6. package/blog/ar/intlayer_with_vue-i18n.md +8 -4
  7. package/blog/de/intlayer_with_i18next.md +8 -4
  8. package/blog/de/intlayer_with_next-i18next.md +8 -4
  9. package/blog/de/intlayer_with_next-intl.md +8 -4
  10. package/blog/de/intlayer_with_react-i18next.md +8 -4
  11. package/blog/de/intlayer_with_react-intl.md +8 -4
  12. package/blog/de/intlayer_with_vue-i18n.md +8 -4
  13. package/blog/en/intlayer_with_i18next.md +8 -4
  14. package/blog/en/intlayer_with_next-i18next.md +8 -4
  15. package/blog/en/intlayer_with_next-intl.md +8 -4
  16. package/blog/en/intlayer_with_react-i18next.md +8 -4
  17. package/blog/en/intlayer_with_react-intl.md +8 -4
  18. package/blog/en/intlayer_with_vue-i18n.md +8 -4
  19. package/blog/en-GB/intlayer_with_i18next.md +8 -4
  20. package/blog/en-GB/intlayer_with_next-i18next.md +8 -4
  21. package/blog/en-GB/intlayer_with_next-intl.md +8 -4
  22. package/blog/en-GB/intlayer_with_react-i18next.md +8 -4
  23. package/blog/en-GB/intlayer_with_react-intl.md +8 -4
  24. package/blog/en-GB/intlayer_with_vue-i18n.md +8 -4
  25. package/blog/es/intlayer_with_i18next.md +8 -4
  26. package/blog/es/intlayer_with_next-i18next.md +8 -4
  27. package/blog/es/intlayer_with_next-intl.md +8 -4
  28. package/blog/es/intlayer_with_react-i18next.md +8 -4
  29. package/blog/es/intlayer_with_react-intl.md +8 -4
  30. package/blog/es/intlayer_with_vue-i18n.md +8 -4
  31. package/blog/fr/intlayer_with_i18next.md +8 -4
  32. package/blog/fr/intlayer_with_next-i18next.md +8 -4
  33. package/blog/fr/intlayer_with_next-intl.md +8 -4
  34. package/blog/fr/intlayer_with_react-i18next.md +8 -4
  35. package/blog/fr/intlayer_with_react-intl.md +8 -4
  36. package/blog/fr/intlayer_with_vue-i18n.md +8 -4
  37. package/blog/hi/intlayer_with_i18next.md +8 -4
  38. package/blog/hi/intlayer_with_next-i18next.md +8 -4
  39. package/blog/hi/intlayer_with_next-intl.md +8 -4
  40. package/blog/hi/intlayer_with_react-i18next.md +8 -4
  41. package/blog/hi/intlayer_with_react-intl.md +8 -4
  42. package/blog/hi/intlayer_with_vue-i18n.md +8 -4
  43. package/blog/id/intlayer_with_i18next.md +8 -4
  44. package/blog/id/intlayer_with_next-i18next.md +8 -4
  45. package/blog/id/intlayer_with_next-intl.md +8 -4
  46. package/blog/id/intlayer_with_react-i18next.md +8 -4
  47. package/blog/id/intlayer_with_react-intl.md +8 -4
  48. package/blog/id/intlayer_with_vue-i18n.md +8 -4
  49. package/blog/it/intlayer_with_i18next.md +8 -4
  50. package/blog/it/intlayer_with_next-i18next.md +8 -4
  51. package/blog/it/intlayer_with_next-intl.md +8 -4
  52. package/blog/it/intlayer_with_react-i18next.md +8 -4
  53. package/blog/it/intlayer_with_react-intl.md +8 -4
  54. package/blog/it/intlayer_with_vue-i18n.md +8 -4
  55. package/blog/ja/intlayer_with_i18next.md +8 -4
  56. package/blog/ja/intlayer_with_next-i18next.md +8 -4
  57. package/blog/ja/intlayer_with_next-intl.md +8 -4
  58. package/blog/ja/intlayer_with_react-i18next.md +8 -4
  59. package/blog/ja/intlayer_with_react-intl.md +8 -4
  60. package/blog/ja/intlayer_with_vue-i18n.md +8 -4
  61. package/blog/ko/intlayer_with_i18next.md +8 -4
  62. package/blog/ko/intlayer_with_next-i18next.md +8 -4
  63. package/blog/ko/intlayer_with_next-intl.md +8 -4
  64. package/blog/ko/intlayer_with_react-i18next.md +8 -4
  65. package/blog/ko/intlayer_with_react-intl.md +8 -4
  66. package/blog/ko/intlayer_with_vue-i18n.md +8 -4
  67. package/blog/pl/intlayer_with_i18next.md +8 -4
  68. package/blog/pl/intlayer_with_next-i18next.md +8 -4
  69. package/blog/pl/intlayer_with_next-intl.md +8 -4
  70. package/blog/pl/intlayer_with_react-i18next.md +8 -4
  71. package/blog/pl/intlayer_with_react-intl.md +8 -4
  72. package/blog/pl/intlayer_with_vue-i18n.md +8 -4
  73. package/blog/pt/intlayer_with_i18next.md +8 -4
  74. package/blog/pt/intlayer_with_next-i18next.md +8 -4
  75. package/blog/pt/intlayer_with_next-intl.md +8 -4
  76. package/blog/pt/intlayer_with_react-i18next.md +8 -4
  77. package/blog/pt/intlayer_with_react-intl.md +8 -4
  78. package/blog/pt/intlayer_with_vue-i18n.md +8 -4
  79. package/blog/ru/intlayer_with_i18next.md +8 -4
  80. package/blog/ru/intlayer_with_next-i18next.md +8 -4
  81. package/blog/ru/intlayer_with_next-intl.md +8 -4
  82. package/blog/ru/intlayer_with_react-i18next.md +8 -4
  83. package/blog/ru/intlayer_with_react-intl.md +8 -4
  84. package/blog/ru/intlayer_with_vue-i18n.md +8 -4
  85. package/blog/tr/intlayer_with_i18next.md +8 -4
  86. package/blog/tr/intlayer_with_next-i18next.md +8 -4
  87. package/blog/tr/intlayer_with_next-intl.md +8 -4
  88. package/blog/tr/intlayer_with_react-i18next.md +8 -4
  89. package/blog/tr/intlayer_with_react-intl.md +8 -4
  90. package/blog/tr/intlayer_with_vue-i18n.md +8 -4
  91. package/blog/vi/intlayer_with_i18next.md +8 -4
  92. package/blog/vi/intlayer_with_next-i18next.md +8 -4
  93. package/blog/vi/intlayer_with_next-intl.md +8 -4
  94. package/blog/vi/intlayer_with_react-i18next.md +8 -4
  95. package/blog/vi/intlayer_with_react-intl.md +8 -4
  96. package/blog/vi/intlayer_with_vue-i18n.md +8 -4
  97. package/blog/zh/intlayer_with_i18next.md +8 -4
  98. package/blog/zh/intlayer_with_next-i18next.md +8 -4
  99. package/blog/zh/intlayer_with_next-intl.md +8 -4
  100. package/blog/zh/intlayer_with_react-i18next.md +8 -4
  101. package/blog/zh/intlayer_with_react-intl.md +8 -4
  102. package/blog/zh/intlayer_with_vue-i18n.md +8 -4
  103. package/docs/ar/cli/index.md +4 -0
  104. package/docs/ar/cli/sdk.md +4 -0
  105. package/docs/ar/intlayer_visual_editor.md +4 -0
  106. package/docs/ar/intlayer_with_angular.md +8 -0
  107. package/docs/ar/intlayer_with_create_react_app.md +8 -0
  108. package/docs/ar/intlayer_with_express.md +8 -0
  109. package/docs/ar/intlayer_with_lynx+react.md +8 -0
  110. package/docs/ar/intlayer_with_nestjs.md +8 -0
  111. package/docs/ar/intlayer_with_next-i18next.md +15 -3
  112. package/docs/ar/intlayer_with_next-intl.md +12 -3
  113. package/docs/ar/intlayer_with_nextjs_14.md +16 -0
  114. package/docs/ar/intlayer_with_nextjs_15.md +16 -0
  115. package/docs/ar/intlayer_with_nextjs_16.md +16 -0
  116. package/docs/ar/intlayer_with_nextjs_page_router.md +16 -0
  117. package/docs/ar/intlayer_with_nuxt.md +9 -0
  118. package/docs/ar/intlayer_with_react_native+expo.md +9 -0
  119. package/docs/ar/intlayer_with_react_router_v7.md +86 -16
  120. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +16 -0
  121. package/docs/ar/intlayer_with_svelte_kit.md +8 -0
  122. package/docs/ar/intlayer_with_tanstack.md +14 -0
  123. package/docs/ar/intlayer_with_vite+preact.md +12 -2
  124. package/docs/ar/intlayer_with_vite+react.md +9 -0
  125. package/docs/ar/intlayer_with_vite+solid.md +9 -0
  126. package/docs/ar/intlayer_with_vite+svelte.md +7 -0
  127. package/docs/ar/intlayer_with_vite+vue.md +11 -0
  128. package/docs/de/cli/index.md +4 -0
  129. package/docs/de/cli/sdk.md +4 -0
  130. package/docs/de/intlayer_visual_editor.md +4 -0
  131. package/docs/de/intlayer_with_angular.md +8 -0
  132. package/docs/de/intlayer_with_create_react_app.md +8 -0
  133. package/docs/de/intlayer_with_express.md +8 -0
  134. package/docs/de/intlayer_with_lynx+react.md +8 -0
  135. package/docs/de/intlayer_with_nestjs.md +8 -0
  136. package/docs/de/intlayer_with_next-i18next.md +15 -3
  137. package/docs/de/intlayer_with_next-intl.md +12 -3
  138. package/docs/de/intlayer_with_nextjs_14.md +16 -0
  139. package/docs/de/intlayer_with_nextjs_15.md +16 -0
  140. package/docs/de/intlayer_with_nextjs_16.md +16 -0
  141. package/docs/de/intlayer_with_nextjs_page_router.md +16 -0
  142. package/docs/de/intlayer_with_nuxt.md +9 -0
  143. package/docs/de/intlayer_with_react_native+expo.md +1 -0
  144. package/docs/de/intlayer_with_react_router_v7.md +86 -15
  145. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +103 -19
  146. package/docs/de/intlayer_with_svelte_kit.md +8 -0
  147. package/docs/de/intlayer_with_tanstack.md +14 -0
  148. package/docs/de/intlayer_with_vite+preact.md +12 -2
  149. package/docs/de/intlayer_with_vite+react.md +9 -0
  150. package/docs/de/intlayer_with_vite+solid.md +9 -0
  151. package/docs/de/intlayer_with_vite+svelte.md +6 -0
  152. package/docs/de/intlayer_with_vite+vue.md +11 -0
  153. package/docs/en/cli/index.md +4 -0
  154. package/docs/en/cli/sdk.md +4 -0
  155. package/docs/en/configuration.md +1 -0
  156. package/docs/en/intlayer_visual_editor.md +4 -0
  157. package/docs/en/intlayer_with_angular.md +8 -0
  158. package/docs/en/intlayer_with_create_react_app.md +8 -0
  159. package/docs/en/intlayer_with_express.md +8 -0
  160. package/docs/en/intlayer_with_lynx+react.md +8 -0
  161. package/docs/en/intlayer_with_nestjs.md +8 -0
  162. package/docs/en/intlayer_with_next-i18next.md +15 -3
  163. package/docs/en/intlayer_with_next-intl.md +12 -3
  164. package/docs/en/intlayer_with_nextjs_14.md +16 -0
  165. package/docs/en/intlayer_with_nextjs_15.md +16 -0
  166. package/docs/en/intlayer_with_nextjs_16.md +16 -0
  167. package/docs/en/intlayer_with_nextjs_page_router.md +16 -0
  168. package/docs/en/intlayer_with_nuxt.md +9 -0
  169. package/docs/en/intlayer_with_react_native+expo.md +9 -0
  170. package/docs/en/intlayer_with_react_router_v7.md +88 -15
  171. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +106 -19
  172. package/docs/en/intlayer_with_svelte_kit.md +4 -0
  173. package/docs/en/intlayer_with_tanstack.md +14 -0
  174. package/docs/en/intlayer_with_vite+preact.md +11 -0
  175. package/docs/en/intlayer_with_vite+react.md +9 -0
  176. package/docs/en/intlayer_with_vite+solid.md +9 -0
  177. package/docs/en/intlayer_with_vite+svelte.md +7 -0
  178. package/docs/en/intlayer_with_vite+vue.md +11 -0
  179. package/docs/en-GB/cli/index.md +4 -0
  180. package/docs/en-GB/cli/sdk.md +4 -0
  181. package/docs/en-GB/configuration.md +1 -0
  182. package/docs/en-GB/intlayer_visual_editor.md +4 -0
  183. package/docs/en-GB/intlayer_with_angular.md +8 -0
  184. package/docs/en-GB/intlayer_with_create_react_app.md +16 -0
  185. package/docs/en-GB/intlayer_with_express.md +8 -0
  186. package/docs/en-GB/intlayer_with_lynx+react.md +16 -0
  187. package/docs/en-GB/intlayer_with_nestjs.md +8 -0
  188. package/docs/en-GB/intlayer_with_next-i18next.md +15 -3
  189. package/docs/en-GB/intlayer_with_next-intl.md +12 -3
  190. package/docs/en-GB/intlayer_with_nextjs_14.md +16 -0
  191. package/docs/en-GB/intlayer_with_nextjs_15.md +16 -0
  192. package/docs/en-GB/intlayer_with_nextjs_16.md +16 -0
  193. package/docs/en-GB/intlayer_with_nextjs_page_router.md +16 -0
  194. package/docs/en-GB/intlayer_with_nuxt.md +9 -0
  195. package/docs/en-GB/intlayer_with_react_native+expo.md +9 -0
  196. package/docs/en-GB/intlayer_with_react_router_v7.md +87 -16
  197. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +16 -0
  198. package/docs/en-GB/intlayer_with_svelte_kit.md +8 -0
  199. package/docs/en-GB/intlayer_with_tanstack.md +14 -0
  200. package/docs/en-GB/intlayer_with_vite+preact.md +12 -2
  201. package/docs/en-GB/intlayer_with_vite+react.md +9 -0
  202. package/docs/en-GB/intlayer_with_vite+solid.md +9 -0
  203. package/docs/en-GB/intlayer_with_vite+svelte.md +7 -0
  204. package/docs/en-GB/intlayer_with_vite+vue.md +11 -0
  205. package/docs/es/cli/index.md +4 -0
  206. package/docs/es/cli/sdk.md +4 -0
  207. package/docs/es/intlayer_visual_editor.md +4 -0
  208. package/docs/es/intlayer_with_angular.md +8 -0
  209. package/docs/es/intlayer_with_create_react_app.md +8 -0
  210. package/docs/es/intlayer_with_express.md +8 -0
  211. package/docs/es/intlayer_with_lynx+react.md +8 -0
  212. package/docs/es/intlayer_with_nestjs.md +8 -0
  213. package/docs/es/intlayer_with_next-i18next.md +15 -3
  214. package/docs/es/intlayer_with_next-intl.md +12 -3
  215. package/docs/es/intlayer_with_nextjs_14.md +16 -0
  216. package/docs/es/intlayer_with_nextjs_15.md +16 -0
  217. package/docs/es/intlayer_with_nextjs_16.md +16 -0
  218. package/docs/es/intlayer_with_nextjs_page_router.md +16 -0
  219. package/docs/es/intlayer_with_nuxt.md +9 -0
  220. package/docs/es/intlayer_with_react_native+expo.md +9 -0
  221. package/docs/es/intlayer_with_react_router_v7.md +86 -15
  222. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +103 -19
  223. package/docs/es/intlayer_with_svelte_kit.md +8 -0
  224. package/docs/es/intlayer_with_tanstack.md +14 -0
  225. package/docs/es/intlayer_with_vite+preact.md +12 -2
  226. package/docs/es/intlayer_with_vite+react.md +9 -0
  227. package/docs/es/intlayer_with_vite+solid.md +9 -0
  228. package/docs/es/intlayer_with_vite+svelte.md +7 -0
  229. package/docs/es/intlayer_with_vite+vue.md +11 -0
  230. package/docs/es/packages/next-intlayer/index.md +5 -0
  231. package/docs/es/packages/react-intlayer/index.md +5 -0
  232. package/docs/fr/cli/index.md +4 -0
  233. package/docs/fr/cli/sdk.md +4 -0
  234. package/docs/fr/intlayer_visual_editor.md +4 -0
  235. package/docs/fr/intlayer_with_angular.md +8 -0
  236. package/docs/fr/intlayer_with_create_react_app.md +8 -0
  237. package/docs/fr/intlayer_with_express.md +8 -0
  238. package/docs/fr/intlayer_with_lynx+react.md +8 -0
  239. package/docs/fr/intlayer_with_nestjs.md +8 -0
  240. package/docs/fr/intlayer_with_next-i18next.md +15 -3
  241. package/docs/fr/intlayer_with_next-intl.md +12 -3
  242. package/docs/fr/intlayer_with_nextjs_14.md +16 -0
  243. package/docs/fr/intlayer_with_nextjs_15.md +16 -0
  244. package/docs/fr/intlayer_with_nextjs_16.md +16 -0
  245. package/docs/fr/intlayer_with_nextjs_page_router.md +16 -0
  246. package/docs/fr/intlayer_with_nuxt.md +9 -0
  247. package/docs/fr/intlayer_with_react_native+expo.md +1 -0
  248. package/docs/fr/intlayer_with_react_router_v7.md +86 -15
  249. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +103 -19
  250. package/docs/fr/intlayer_with_svelte_kit.md +8 -0
  251. package/docs/fr/intlayer_with_tanstack.md +14 -0
  252. package/docs/fr/intlayer_with_vite+preact.md +12 -2
  253. package/docs/fr/intlayer_with_vite+react.md +9 -0
  254. package/docs/fr/intlayer_with_vite+solid.md +9 -0
  255. package/docs/fr/intlayer_with_vite+svelte.md +7 -0
  256. package/docs/fr/intlayer_with_vite+vue.md +11 -0
  257. package/docs/fr/packages/react-intlayer/index.md +5 -0
  258. package/docs/hi/cli/index.md +4 -0
  259. package/docs/hi/cli/sdk.md +4 -0
  260. package/docs/hi/intlayer_visual_editor.md +4 -0
  261. package/docs/hi/intlayer_with_angular.md +8 -0
  262. package/docs/hi/intlayer_with_create_react_app.md +8 -0
  263. package/docs/hi/intlayer_with_express.md +8 -0
  264. package/docs/hi/intlayer_with_lynx+react.md +8 -0
  265. package/docs/hi/intlayer_with_nestjs.md +8 -0
  266. package/docs/hi/intlayer_with_next-i18next.md +15 -3
  267. package/docs/hi/intlayer_with_next-intl.md +12 -3
  268. package/docs/hi/intlayer_with_nextjs_14.md +16 -0
  269. package/docs/hi/intlayer_with_nextjs_15.md +16 -0
  270. package/docs/hi/intlayer_with_nextjs_16.md +16 -0
  271. package/docs/hi/intlayer_with_nextjs_page_router.md +16 -0
  272. package/docs/hi/intlayer_with_nuxt.md +9 -0
  273. package/docs/hi/intlayer_with_react_native+expo.md +1 -0
  274. package/docs/hi/intlayer_with_react_router_v7.md +86 -16
  275. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +16 -0
  276. package/docs/hi/intlayer_with_svelte_kit.md +8 -0
  277. package/docs/hi/intlayer_with_tanstack.md +14 -0
  278. package/docs/hi/intlayer_with_vite+preact.md +12 -2
  279. package/docs/hi/intlayer_with_vite+react.md +9 -0
  280. package/docs/hi/intlayer_with_vite+solid.md +9 -0
  281. package/docs/hi/intlayer_with_vite+svelte.md +7 -0
  282. package/docs/hi/intlayer_with_vite+vue.md +11 -0
  283. package/docs/hi/packages/intlayer/index.md +8 -0
  284. package/docs/id/cli/index.md +4 -0
  285. package/docs/id/cli/sdk.md +4 -0
  286. package/docs/id/intlayer_visual_editor.md +4 -0
  287. package/docs/id/intlayer_with_angular.md +8 -0
  288. package/docs/id/intlayer_with_create_react_app.md +8 -0
  289. package/docs/id/intlayer_with_express.md +8 -0
  290. package/docs/id/intlayer_with_lynx+react.md +8 -0
  291. package/docs/id/intlayer_with_nestjs.md +8 -0
  292. package/docs/id/intlayer_with_next-i18next.md +15 -3
  293. package/docs/id/intlayer_with_next-intl.md +12 -3
  294. package/docs/id/intlayer_with_nextjs_14.md +16 -0
  295. package/docs/id/intlayer_with_nextjs_15.md +16 -0
  296. package/docs/id/intlayer_with_nextjs_16.md +16 -0
  297. package/docs/id/intlayer_with_nextjs_page_router.md +16 -0
  298. package/docs/id/intlayer_with_nuxt.md +9 -0
  299. package/docs/id/intlayer_with_react_native+expo.md +9 -0
  300. package/docs/id/intlayer_with_react_router_v7.md +86 -15
  301. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +16 -0
  302. package/docs/id/intlayer_with_svelte_kit.md +8 -0
  303. package/docs/id/intlayer_with_tanstack.md +14 -0
  304. package/docs/id/intlayer_with_vite+preact.md +11 -0
  305. package/docs/id/intlayer_with_vite+react.md +9 -0
  306. package/docs/id/intlayer_with_vite+solid.md +9 -0
  307. package/docs/id/intlayer_with_vite+svelte.md +7 -0
  308. package/docs/id/intlayer_with_vite+vue.md +11 -0
  309. package/docs/it/cli/index.md +4 -0
  310. package/docs/it/cli/sdk.md +4 -0
  311. package/docs/it/intlayer_visual_editor.md +4 -0
  312. package/docs/it/intlayer_with_angular.md +8 -0
  313. package/docs/it/intlayer_with_create_react_app.md +8 -0
  314. package/docs/it/intlayer_with_express.md +8 -0
  315. package/docs/it/intlayer_with_lynx+react.md +8 -0
  316. package/docs/it/intlayer_with_nestjs.md +8 -0
  317. package/docs/it/intlayer_with_next-i18next.md +15 -3
  318. package/docs/it/intlayer_with_next-intl.md +12 -3
  319. package/docs/it/intlayer_with_nextjs_14.md +16 -0
  320. package/docs/it/intlayer_with_nextjs_15.md +16 -0
  321. package/docs/it/intlayer_with_nextjs_16.md +16 -0
  322. package/docs/it/intlayer_with_nextjs_page_router.md +16 -0
  323. package/docs/it/intlayer_with_nuxt.md +9 -0
  324. package/docs/it/intlayer_with_react_native+expo.md +9 -0
  325. package/docs/it/intlayer_with_react_router_v7.md +86 -15
  326. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +103 -19
  327. package/docs/it/intlayer_with_svelte_kit.md +8 -0
  328. package/docs/it/intlayer_with_tanstack.md +14 -0
  329. package/docs/it/intlayer_with_vite+preact.md +12 -2
  330. package/docs/it/intlayer_with_vite+react.md +9 -0
  331. package/docs/it/intlayer_with_vite+solid.md +9 -0
  332. package/docs/it/intlayer_with_vite+svelte.md +7 -0
  333. package/docs/it/intlayer_with_vite+vue.md +11 -0
  334. package/docs/ja/cli/index.md +4 -0
  335. package/docs/ja/cli/sdk.md +4 -0
  336. package/docs/ja/intlayer_visual_editor.md +4 -0
  337. package/docs/ja/intlayer_with_angular.md +8 -0
  338. package/docs/ja/intlayer_with_create_react_app.md +8 -0
  339. package/docs/ja/intlayer_with_express.md +8 -0
  340. package/docs/ja/intlayer_with_lynx+react.md +8 -0
  341. package/docs/ja/intlayer_with_nestjs.md +8 -0
  342. package/docs/ja/intlayer_with_next-i18next.md +15 -3
  343. package/docs/ja/intlayer_with_next-intl.md +12 -3
  344. package/docs/ja/intlayer_with_nextjs_14.md +16 -0
  345. package/docs/ja/intlayer_with_nextjs_15.md +16 -0
  346. package/docs/ja/intlayer_with_nextjs_16.md +16 -0
  347. package/docs/ja/intlayer_with_nextjs_page_router.md +16 -0
  348. package/docs/ja/intlayer_with_nuxt.md +9 -0
  349. package/docs/ja/intlayer_with_react_native+expo.md +1 -0
  350. package/docs/ja/intlayer_with_react_router_v7.md +86 -15
  351. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +103 -19
  352. package/docs/ja/intlayer_with_svelte_kit.md +8 -0
  353. package/docs/ja/intlayer_with_tanstack.md +14 -0
  354. package/docs/ja/intlayer_with_vite+preact.md +12 -2
  355. package/docs/ja/intlayer_with_vite+react.md +9 -0
  356. package/docs/ja/intlayer_with_vite+solid.md +9 -0
  357. package/docs/ja/intlayer_with_vite+svelte.md +7 -0
  358. package/docs/ja/intlayer_with_vite+vue.md +11 -0
  359. package/docs/ko/cli/index.md +4 -0
  360. package/docs/ko/cli/sdk.md +4 -0
  361. package/docs/ko/intlayer_visual_editor.md +4 -0
  362. package/docs/ko/intlayer_with_angular.md +8 -0
  363. package/docs/ko/intlayer_with_create_react_app.md +8 -0
  364. package/docs/ko/intlayer_with_express.md +8 -0
  365. package/docs/ko/intlayer_with_lynx+react.md +8 -0
  366. package/docs/ko/intlayer_with_nestjs.md +8 -0
  367. package/docs/ko/intlayer_with_next-i18next.md +15 -3
  368. package/docs/ko/intlayer_with_next-intl.md +12 -3
  369. package/docs/ko/intlayer_with_nextjs_14.md +13 -0
  370. package/docs/ko/intlayer_with_nextjs_15.md +16 -0
  371. package/docs/ko/intlayer_with_nextjs_16.md +16 -0
  372. package/docs/ko/intlayer_with_nextjs_page_router.md +16 -0
  373. package/docs/ko/intlayer_with_nuxt.md +9 -0
  374. package/docs/ko/intlayer_with_react_native+expo.md +9 -0
  375. package/docs/ko/intlayer_with_react_router_v7.md +86 -15
  376. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +16 -0
  377. package/docs/ko/intlayer_with_svelte_kit.md +8 -0
  378. package/docs/ko/intlayer_with_tanstack.md +14 -0
  379. package/docs/ko/intlayer_with_vite+preact.md +12 -2
  380. package/docs/ko/intlayer_with_vite+react.md +9 -0
  381. package/docs/ko/intlayer_with_vite+solid.md +9 -0
  382. package/docs/ko/intlayer_with_vite+svelte.md +7 -0
  383. package/docs/ko/intlayer_with_vite+vue.md +11 -0
  384. package/docs/pl/cli/index.md +4 -0
  385. package/docs/pl/cli/sdk.md +4 -0
  386. package/docs/pl/intlayer_visual_editor.md +4 -0
  387. package/docs/pl/intlayer_with_angular.md +8 -0
  388. package/docs/pl/intlayer_with_create_react_app.md +8 -0
  389. package/docs/pl/intlayer_with_express.md +8 -0
  390. package/docs/pl/intlayer_with_lynx+react.md +8 -0
  391. package/docs/pl/intlayer_with_nestjs.md +8 -0
  392. package/docs/pl/intlayer_with_next-i18next.md +15 -3
  393. package/docs/pl/intlayer_with_next-intl.md +12 -3
  394. package/docs/pl/intlayer_with_nextjs_14.md +16 -0
  395. package/docs/pl/intlayer_with_nextjs_15.md +16 -0
  396. package/docs/pl/intlayer_with_nextjs_16.md +16 -0
  397. package/docs/pl/intlayer_with_nextjs_page_router.md +16 -0
  398. package/docs/pl/intlayer_with_nuxt.md +9 -0
  399. package/docs/pl/intlayer_with_react_native+expo.md +9 -0
  400. package/docs/pl/intlayer_with_react_router_v7.md +59 -13
  401. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +102 -18
  402. package/docs/pl/intlayer_with_svelte_kit.md +8 -0
  403. package/docs/pl/intlayer_with_tanstack.md +14 -0
  404. package/docs/pl/intlayer_with_vite+preact.md +11 -0
  405. package/docs/pl/intlayer_with_vite+react.md +9 -0
  406. package/docs/pl/intlayer_with_vite+solid.md +9 -0
  407. package/docs/pl/intlayer_with_vite+svelte.md +7 -0
  408. package/docs/pl/intlayer_with_vite+vue.md +11 -0
  409. package/docs/pt/cli/index.md +4 -0
  410. package/docs/pt/cli/sdk.md +4 -0
  411. package/docs/pt/intlayer_visual_editor.md +4 -0
  412. package/docs/pt/intlayer_with_angular.md +8 -0
  413. package/docs/pt/intlayer_with_create_react_app.md +8 -0
  414. package/docs/pt/intlayer_with_express.md +8 -0
  415. package/docs/pt/intlayer_with_lynx+react.md +8 -0
  416. package/docs/pt/intlayer_with_nestjs.md +8 -0
  417. package/docs/pt/intlayer_with_next-i18next.md +15 -3
  418. package/docs/pt/intlayer_with_next-intl.md +12 -3
  419. package/docs/pt/intlayer_with_nextjs_14.md +16 -0
  420. package/docs/pt/intlayer_with_nextjs_15.md +16 -0
  421. package/docs/pt/intlayer_with_nextjs_16.md +16 -0
  422. package/docs/pt/intlayer_with_nextjs_page_router.md +16 -0
  423. package/docs/pt/intlayer_with_nuxt.md +9 -0
  424. package/docs/pt/intlayer_with_react_native+expo.md +9 -0
  425. package/docs/pt/intlayer_with_react_router_v7.md +93 -46
  426. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +103 -19
  427. package/docs/pt/intlayer_with_svelte_kit.md +8 -0
  428. package/docs/pt/intlayer_with_tanstack.md +14 -0
  429. package/docs/pt/intlayer_with_vite+preact.md +12 -2
  430. package/docs/pt/intlayer_with_vite+react.md +9 -0
  431. package/docs/pt/intlayer_with_vite+solid.md +9 -0
  432. package/docs/pt/intlayer_with_vite+svelte.md +7 -0
  433. package/docs/pt/intlayer_with_vite+vue.md +11 -0
  434. package/docs/ru/cli/index.md +4 -0
  435. package/docs/ru/cli/sdk.md +4 -0
  436. package/docs/ru/intlayer_visual_editor.md +4 -0
  437. package/docs/ru/intlayer_with_angular.md +8 -0
  438. package/docs/ru/intlayer_with_create_react_app.md +8 -0
  439. package/docs/ru/intlayer_with_express.md +8 -0
  440. package/docs/ru/intlayer_with_lynx+react.md +8 -0
  441. package/docs/ru/intlayer_with_nestjs.md +8 -0
  442. package/docs/ru/intlayer_with_next-i18next.md +15 -3
  443. package/docs/ru/intlayer_with_next-intl.md +12 -3
  444. package/docs/ru/intlayer_with_nextjs_14.md +16 -0
  445. package/docs/ru/intlayer_with_nextjs_15.md +16 -0
  446. package/docs/ru/intlayer_with_nextjs_16.md +16 -0
  447. package/docs/ru/intlayer_with_nextjs_page_router.md +16 -0
  448. package/docs/ru/intlayer_with_nuxt.md +9 -0
  449. package/docs/ru/intlayer_with_react_native+expo.md +9 -0
  450. package/docs/ru/intlayer_with_react_router_v7.md +86 -15
  451. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +103 -19
  452. package/docs/ru/intlayer_with_svelte_kit.md +8 -0
  453. package/docs/ru/intlayer_with_tanstack.md +14 -0
  454. package/docs/ru/intlayer_with_vite+preact.md +12 -2
  455. package/docs/ru/intlayer_with_vite+react.md +9 -0
  456. package/docs/ru/intlayer_with_vite+solid.md +9 -0
  457. package/docs/ru/intlayer_with_vite+svelte.md +7 -0
  458. package/docs/ru/intlayer_with_vite+vue.md +11 -0
  459. package/docs/tr/cli/index.md +4 -0
  460. package/docs/tr/cli/sdk.md +4 -0
  461. package/docs/tr/intlayer_visual_editor.md +4 -0
  462. package/docs/tr/intlayer_with_angular.md +8 -0
  463. package/docs/tr/intlayer_with_create_react_app.md +8 -0
  464. package/docs/tr/intlayer_with_express.md +8 -0
  465. package/docs/tr/intlayer_with_lynx+react.md +8 -0
  466. package/docs/tr/intlayer_with_nestjs.md +8 -0
  467. package/docs/tr/intlayer_with_next-i18next.md +15 -3
  468. package/docs/tr/intlayer_with_next-intl.md +12 -3
  469. package/docs/tr/intlayer_with_nextjs_14.md +16 -0
  470. package/docs/tr/intlayer_with_nextjs_15.md +16 -0
  471. package/docs/tr/intlayer_with_nextjs_16.md +16 -0
  472. package/docs/tr/intlayer_with_nextjs_page_router.md +16 -0
  473. package/docs/tr/intlayer_with_nuxt.md +9 -0
  474. package/docs/tr/intlayer_with_react_native+expo.md +9 -0
  475. package/docs/tr/intlayer_with_react_router_v7.md +86 -15
  476. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +103 -19
  477. package/docs/tr/intlayer_with_svelte_kit.md +8 -0
  478. package/docs/tr/intlayer_with_tanstack.md +14 -0
  479. package/docs/tr/intlayer_with_vite+preact.md +12 -2
  480. package/docs/tr/intlayer_with_vite+react.md +9 -0
  481. package/docs/tr/intlayer_with_vite+solid.md +9 -0
  482. package/docs/tr/intlayer_with_vite+svelte.md +7 -0
  483. package/docs/tr/intlayer_with_vite+vue.md +11 -0
  484. package/docs/vi/cli/index.md +5 -0
  485. package/docs/vi/cli/sdk.md +4 -0
  486. package/docs/vi/intlayer_visual_editor.md +4 -0
  487. package/docs/vi/intlayer_with_angular.md +8 -0
  488. package/docs/vi/intlayer_with_create_react_app.md +8 -0
  489. package/docs/vi/intlayer_with_express.md +8 -0
  490. package/docs/vi/intlayer_with_lynx+react.md +8 -0
  491. package/docs/vi/intlayer_with_nestjs.md +8 -0
  492. package/docs/vi/intlayer_with_next-i18next.md +15 -3
  493. package/docs/vi/intlayer_with_next-intl.md +12 -3
  494. package/docs/vi/intlayer_with_nextjs_14.md +16 -0
  495. package/docs/vi/intlayer_with_nextjs_15.md +16 -0
  496. package/docs/vi/intlayer_with_nextjs_16.md +16 -0
  497. package/docs/vi/intlayer_with_nextjs_page_router.md +16 -0
  498. package/docs/vi/intlayer_with_nuxt.md +9 -0
  499. package/docs/vi/intlayer_with_react_native+expo.md +9 -0
  500. package/docs/vi/intlayer_with_react_router_v7.md +86 -15
  501. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +16 -0
  502. package/docs/vi/intlayer_with_svelte_kit.md +8 -0
  503. package/docs/vi/intlayer_with_tanstack.md +14 -0
  504. package/docs/vi/intlayer_with_vite+preact.md +11 -0
  505. package/docs/vi/intlayer_with_vite+react.md +9 -0
  506. package/docs/vi/intlayer_with_vite+solid.md +9 -0
  507. package/docs/vi/intlayer_with_vite+svelte.md +7 -0
  508. package/docs/vi/intlayer_with_vite+vue.md +11 -0
  509. package/docs/zh/cli/index.md +4 -0
  510. package/docs/zh/cli/sdk.md +4 -0
  511. package/docs/zh/intlayer_visual_editor.md +4 -0
  512. package/docs/zh/intlayer_with_angular.md +8 -0
  513. package/docs/zh/intlayer_with_create_react_app.md +8 -0
  514. package/docs/zh/intlayer_with_express.md +8 -0
  515. package/docs/zh/intlayer_with_lynx+react.md +8 -0
  516. package/docs/zh/intlayer_with_nestjs.md +8 -0
  517. package/docs/zh/intlayer_with_next-i18next.md +15 -3
  518. package/docs/zh/intlayer_with_next-intl.md +12 -3
  519. package/docs/zh/intlayer_with_nextjs_14.md +16 -0
  520. package/docs/zh/intlayer_with_nextjs_15.md +16 -0
  521. package/docs/zh/intlayer_with_nextjs_16.md +16 -0
  522. package/docs/zh/intlayer_with_nextjs_page_router.md +16 -0
  523. package/docs/zh/intlayer_with_nuxt.md +9 -0
  524. package/docs/zh/intlayer_with_react_native+expo.md +9 -0
  525. package/docs/zh/intlayer_with_react_router_v7.md +86 -15
  526. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +16 -0
  527. package/docs/zh/intlayer_with_svelte_kit.md +8 -0
  528. package/docs/zh/intlayer_with_tanstack.md +14 -0
  529. package/docs/zh/intlayer_with_vite+preact.md +12 -2
  530. package/docs/zh/intlayer_with_vite+react.md +9 -0
  531. package/docs/zh/intlayer_with_vite+solid.md +9 -0
  532. package/docs/zh/intlayer_with_vite+svelte.md +7 -0
  533. package/docs/zh/intlayer_with_vite+vue.md +11 -0
  534. package/package.json +6 -6
@@ -77,16 +77,25 @@ Install the necessary packages using npm:
77
77
  ```bash packageManager="npm"
78
78
  npm install intlayer vue-intlayer
79
79
  npm install --save-dev nuxt-intlayer
80
+ npx intlayer init
80
81
  ```
81
82
 
82
83
  ```bash packageManager="pnpm"
83
84
  pnpm add intlayer vue-intlayer
84
85
  pnpm add --save-dev nuxt-intlayer
86
+ pnpm intlayer init
85
87
  ```
86
88
 
87
89
  ```bash packageManager="yarn"
88
90
  yarn add intlayer vue-intlayer
89
91
  yarn add --save-dev nuxt-intlayer
92
+ yarn intlayer init
93
+ ```
94
+
95
+ ```bash packageManager="bun"
96
+ bun add intlayer vue-intlayer
97
+ bun add --dev nuxt-intlayer
98
+ bunx intlayer init
90
99
  ```
91
100
 
92
101
  - **intlayer**
@@ -60,16 +60,25 @@ From your React Native project, install the following packages:
60
60
  ```bash packageManager="npm"
61
61
  npm install intlayer react-intlayer
62
62
  npm install --save-dev react-native-intlayer
63
+ npx intlayer init
63
64
  ```
64
65
 
65
66
  ```bash packageManager="pnpm"
66
67
  pnpm add intlayer react-intlayer
67
68
  pnpm add --save-dev react-native-intlayer
69
+ pnpm intlayer init
68
70
  ```
69
71
 
70
72
  ```bash packageManager="yarn"
71
73
  yarn add intlayer react-intlayer
72
74
  yarn add --save-dev react-native-intlayer
75
+ yarn intlayer init
76
+ ```
77
+
78
+ ```bash packageManager="bun"
79
+ bun add intlayer react-intlayer
80
+ bun add --dev react-native-intlayer
81
+ bunx intlayer init
73
82
  ```
74
83
 
75
84
  ### Packages
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-04
3
- updatedAt: 2025-10-03
3
+ updatedAt: 2025-12-27
4
4
  title: How to translate your React Router v7 app – i18n guide 2025
5
5
  description: Learn how to add internationalization (i18n) to your React Router v7 application using Intlayer. Follow this comprehensive guide to make your app multilingual with locale-aware routing.
6
6
  keywords:
@@ -20,6 +20,9 @@ slugs:
20
20
  applicationTemplate: https://github.com/aymericzip/intlayer-react-router-v7-template
21
21
  youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
22
22
  history:
23
+ - version: 7.5.6
24
+ date: 2025-12-27
25
+ changes: Update Layout and handle 404
23
26
  - version: 6.1.5
24
27
  date: 2025-10-03
25
28
  changes: Updated doc
@@ -32,6 +35,8 @@ history:
32
35
 
33
36
  This guide demonstrates how to integrate **Intlayer** for seamless internationalization in React Router v7 projects with locale-aware routing, TypeScript support, and modern development practices.
34
37
 
38
+ This guide focuses on frontend routing. For fs-routes routing, refer to the [Intlayer with React Router v7 File-System Routes](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_react_router_v7_fs_routes.md) guide.
39
+
35
40
  ## Table of Contents
36
41
 
37
42
  <TOC/>
@@ -67,11 +72,25 @@ Install the necessary packages using your preferred package manager:
67
72
  ```bash packageManager="npm"
68
73
  npm install intlayer react-intlayer
69
74
  npm install vite-intlayer --save-dev
75
+ npx intlayer init
70
76
  ```
71
77
 
72
78
  ```bash packageManager="pnpm"
73
79
  pnpm add intlayer react-intlayer
74
80
  pnpm add vite-intlayer --save-dev
81
+ pnpm intlayer init
82
+ ```
83
+
84
+ ```bash packageManager="yarn"
85
+ yarn add intlayer react-intlayer
86
+ yarn add vite-intlayer --save-dev
87
+ yarn intlayer init
88
+ ```
89
+
90
+ ```bash packageManager="bun"
91
+ bun add intlayer react-intlayer
92
+ bun add vite-intlayer --dev
93
+ bunx intlayer init
75
94
  ```
76
95
 
77
96
  - **intlayer**
@@ -179,10 +198,8 @@ Set up your routing configuration with locale-aware routes:
179
198
  import { layout, route, type RouteConfig } from "@react-router/dev/routes";
180
199
 
181
200
  export default [
182
- layout("routes/layout.tsx", [
183
- route("/:lang?", "routes/page.tsx"), // Localized home page
184
- route("/:lang?/about", "routes/about/page.tsx"), // Localized about page
185
- ]),
201
+ route("/:lang?", "routes/page.tsx"), // Localized home page
202
+ route("/:lang?/about", "routes/about/page.tsx"), // Localized about page
186
203
  ] satisfies RouteConfig;
187
204
  ```
188
205
 
@@ -192,19 +209,50 @@ Set up your root layout and locale-specific layouts:
192
209
 
193
210
  #### Root Layout
194
211
 
195
- ```tsx fileName="app/routes/layout.tsx"
212
+ ```tsx fileName="app/root.tsx"
213
+ import { getLocaleFromPath } from "intlayer";
196
214
  import { IntlayerProvider } from "react-intlayer";
197
- import { Outlet } from "react-router";
215
+ import {
216
+ data,
217
+ Meta,
218
+ Scripts,
219
+ ScrollRestoration,
220
+ useLoaderData,
221
+ } from "react-router";
222
+ import type { Route } from "./+types/root";
198
223
 
199
- import type { Route } from "./+types/layout";
224
+ // ... Unchanged App, links and ErrorBoundary code
200
225
 
201
- export default function RootLayout({ params }: Route.ComponentProps) {
202
- const { locale } = params;
226
+ export async function loader({ request }: Route.LoaderArgs) {
227
+ const locale = getLocaleFromPath(request.url);
228
+
229
+ if (!locale) {
230
+ throw data("Language not supported", { status: 404 });
231
+ }
232
+
233
+ return { locale };
234
+ }
235
+
236
+ export function Layout({
237
+ children,
238
+ }: { children: React.ReactNode } & Route.ComponentProps) {
239
+ const data = useLoaderData<typeof loader>();
240
+ const { locale } = data ?? {};
203
241
 
204
242
  return (
205
- <IntlayerProvider locale={locale}>
206
- <Outlet />
207
- </IntlayerProvider>
243
+ <html lang={locale}>
244
+ <head>
245
+ <meta charSet="utf-8" />
246
+ <meta content="width=device-width, initial-scale=1" name="viewport" />
247
+ <Meta />
248
+ <Links />
249
+ </head>
250
+ <body>
251
+ <IntlayerProvider locale={locale}>{children}</IntlayerProvider>
252
+ <ScrollRestoration />
253
+ <Scripts />
254
+ </body>
255
+ </html>
208
256
  );
209
257
  }
210
258
  ```
@@ -316,9 +364,34 @@ Access your content dictionaries throughout your application:
316
364
 
317
365
  #### Localized Home Page
318
366
 
319
- ```tsx fileName="app/routes/[lang]/page.tsx"
367
+ ```tsx fileName="app/routes/page.tsx"
368
+ import { getIntlayer, validatePrefix } from "intlayer";
320
369
  import { useIntlayer } from "react-intlayer";
321
- import { LocalizedLink } from "~/components/localized-link";
370
+ import { data } from "react-router";
371
+
372
+ import { LocaleSwitcher } from "~/components/locale-switcher";
373
+
374
+ import { Navbar } from "~/components/navbar";
375
+ import type { Route } from "./+types/page";
376
+
377
+ export const loader = ({ params }: Route.LoaderArgs) => {
378
+ const { locale } = params;
379
+
380
+ const { isValid } = validatePrefix(locale);
381
+
382
+ if (!isValid) {
383
+ throw data("Locale not supported", { status: 404 });
384
+ }
385
+ };
386
+
387
+ export const meta: Route.MetaFunction = ({ params }) => {
388
+ const content = getIntlayer("page", params.locale);
389
+
390
+ return [
391
+ { title: content.title },
392
+ { content: content.description, name: "description" },
393
+ ];
394
+ };
322
395
 
323
396
  export default function Page() {
324
397
  const { title, description, aboutLink } = useIntlayer("page");
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-12-07
3
- updatedAt: 2025-12-07
3
+ updatedAt: 2025-12-27
4
4
  title: How to translate your React Router v7 (File-System Routes) app – i18n guide 2025
5
5
  description: Learn how to add internationalization (i18n) to your React Router v7 application using Intlayer with file-system based routing. Follow this comprehensive guide to make your app multilingual with locale-aware routing.
6
6
  keywords:
@@ -22,6 +22,9 @@ slugs:
22
22
  applicationTemplate: https://github.com/aymericzip/intlayer-react-router-v7-fs-routes-template
23
23
  youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
24
24
  history:
25
+ - version: 7.5.6
26
+ date: 2025-12-27
27
+ changes: Update Layout and handle 404
25
28
  - version: 7.3.4
26
29
  date: 2025-12-08
27
30
  changes: Init history
@@ -31,6 +34,8 @@ history:
31
34
 
32
35
  This guide demonstrates how to integrate **Intlayer** for seamless internationalization in React Router v7 projects using **file-system based routing** (`@react-router/fs-routes`) with locale-aware routing, TypeScript support, and modern development practices.
33
36
 
37
+ For client-side routing, refer to the [Intlayer with React Router v7](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_react_router_v7.md) guide.
38
+
34
39
  ## Table of Contents
35
40
 
36
41
  <TOC/>
@@ -80,6 +85,7 @@ Install the necessary packages using your preferred package manager:
80
85
  npm install intlayer react-intlayer
81
86
  npm install vite-intlayer --save-dev
82
87
  npm install @react-router/fs-routes --save-dev
88
+ npx intlayer init
83
89
  ```
84
90
 
85
91
  ```bash packageManager="pnpm"
@@ -88,6 +94,13 @@ pnpm add vite-intlayer --save-dev
88
94
  pnpm add @react-router/fs-routes --save-dev
89
95
  ```
90
96
 
97
+ ```bash packageManager="bun"
98
+ bun add intlayer react-intlayer
99
+ bun add vite-intlayer --dev
100
+ bun add @react-router/fs-routes --dev
101
+ bunx intlayer init
102
+ ```
103
+
91
104
  - **intlayer**
92
105
 
93
106
  The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
@@ -195,12 +208,13 @@ Create the following files in your `app/routes/` directory:
195
208
  #### File Structure
196
209
 
197
210
  ```bash
198
- app/routes/
199
- ├── ($locale)._layout.tsx # Layout wrapper for locale routes
200
- ├── ($locale)._index.tsx # Home page (/:locale?)
201
- ├── ($locale)._index.content.ts # Home page content
202
- ├── ($locale).about.tsx # About page (/:locale?/about)
203
- └── ($locale).about.content.ts # About page content
211
+ app/
212
+ ├── root.tsx # Layout wrapper for locale routes
213
+ └──routes/
214
+ ├── ($locale)._index.tsx # Home page (/, /es, etc.)
215
+ ├── ($locale)._index.content.ts # Home page content
216
+ ├── ($locale).about.tsx # About page (/about, /es/about, etc.)
217
+ └── ($locale).about.content.ts # About page content
204
218
  ```
205
219
 
206
220
  The naming conventions:
@@ -212,23 +226,50 @@ The naming conventions:
212
226
 
213
227
  #### Layout Component
214
228
 
215
- ```tsx fileName="app/routes/($locale)._layout.tsx"
229
+ ```tsx fileName="app/root.tsx"
230
+ import { getLocaleFromPath } from "intlayer";
216
231
  import { IntlayerProvider } from "react-intlayer";
217
- import { Outlet } from "react-router";
232
+ import {
233
+ isRouteErrorResponse,
234
+ Meta,
235
+ Outlet,
236
+ Scripts,
237
+ ScrollRestoration,
238
+ useLoaderData,
239
+ } from "react-router";
218
240
 
219
- import { useI18nHTMLAttributes } from "~/hooks/useI18nHTMLAttributes";
241
+ import type { Route } from "./+types/root";
220
242
 
221
- import type { Route } from "./+types/($locale)._layout";
243
+ import "./app.css";
222
244
 
223
- export default function RootLayout({ params }: Route.ComponentProps) {
224
- useI18nHTMLAttributes();
245
+ // ... Unchanged App, links and ErrorBoundary code
225
246
 
226
- const { locale } = params;
247
+ export async function loader({ request }: Route.LoaderArgs) {
248
+ const locale = getLocaleFromPath(request.url);
249
+
250
+ return { locale };
251
+ }
252
+
253
+ export function Layout({
254
+ children,
255
+ }: { children: React.ReactNode } & Route.ComponentProps) {
256
+ const data = useLoaderData<typeof loader>();
257
+ const { locale } = data ?? {};
227
258
 
228
259
  return (
229
- <IntlayerProvider locale={locale}>
230
- <Outlet />
231
- </IntlayerProvider>
260
+ <html lang={locale}>
261
+ <head>
262
+ <meta charSet="utf-8" />
263
+ <meta content="width=device-width, initial-scale=1" name="viewport" />
264
+ <Meta />
265
+ <Links />
266
+ </head>
267
+ <body>
268
+ <IntlayerProvider locale={locale}>{children}</IntlayerProvider>
269
+ <ScrollRestoration />
270
+ <Scripts />
271
+ </body>
272
+ </html>
232
273
  );
233
274
  }
234
275
  ```
@@ -236,11 +277,34 @@ export default function RootLayout({ params }: Route.ComponentProps) {
236
277
  #### Index Page
237
278
 
238
279
  ```tsx fileName="app/routes/($locale)._index.tsx"
280
+ import { getIntlayer, validatePrefix } from "intlayer";
239
281
  import { useIntlayer } from "react-intlayer";
240
- import { LocalizedLink } from "~/components/localized-link";
282
+ import { data } from "react-router";
283
+
284
+ import { LocaleSwitcher } from "~/components/locale-switcher";
285
+ import { Navbar } from "~/components/navbar";
241
286
 
242
287
  import type { Route } from "./+types/($locale)._index";
243
288
 
289
+ export const loader = ({ params }: Route.LoaderArgs) => {
290
+ const { locale } = params;
291
+
292
+ const { isValid } = validatePrefix(locale);
293
+
294
+ if (!isValid) {
295
+ throw data("Locale not supported", { status: 404 });
296
+ }
297
+ };
298
+
299
+ export const meta: Route.MetaFunction = ({ params }) => {
300
+ const content = getIntlayer("page", params.locale);
301
+
302
+ return [
303
+ { title: content.title },
304
+ { content: content.description, name: "description" },
305
+ ];
306
+ };
307
+
244
308
  export default function Page() {
245
309
  const { title, description, aboutLink } = useIntlayer("page");
246
310
 
@@ -259,11 +323,34 @@ export default function Page() {
259
323
  #### About Page
260
324
 
261
325
  ```tsx fileName="app/routes/($locale).about.tsx"
326
+ import { getIntlayer, validatePrefix } from "intlayer";
262
327
  import { useIntlayer } from "react-intlayer";
263
- import { LocalizedLink } from "~/components/localized-link";
328
+ import { data } from "react-router";
329
+
330
+ import { LocaleSwitcher } from "~/components/locale-switcher";
331
+ import { Navbar } from "~/components/navbar";
264
332
 
265
333
  import type { Route } from "./+types/($locale).about";
266
334
 
335
+ export const loader = ({ params }: Route.LoaderArgs) => {
336
+ const { locale } = params;
337
+
338
+ const { isValid } = validatePrefix(locale);
339
+
340
+ if (!isValid) {
341
+ throw data("Locale not supported", { status: 404 });
342
+ }
343
+ };
344
+
345
+ export const meta: Route.MetaFunction = ({ params }) => {
346
+ const content = getIntlayer("about", params.locale);
347
+
348
+ return [
349
+ { title: content.title },
350
+ { content: content.description, name: "description" },
351
+ ];
352
+ };
353
+
267
354
  export default function AboutPage() {
268
355
  const { title, content, homeLink } = useIntlayer("about");
269
356
 
@@ -101,21 +101,25 @@ Install the necessary packages using npm:
101
101
  ```bash packageManager="npm"
102
102
  npm install intlayer svelte-intlayer
103
103
  npm install vite-intlayer --save-dev
104
+ npx intlayer init
104
105
  ```
105
106
 
106
107
  ```bash packageManager="pnpm"
107
108
  pnpm add intlayer svelte-intlayer
108
109
  pnpm add vite-intlayer --save-dev
110
+ pnpm intlayer init
109
111
  ```
110
112
 
111
113
  ```bash packageManager="yarn"
112
114
  yarn add intlayer svelte-intlayer
113
115
  yarn add vite-intlayer --save-dev
116
+ yarn intlayer init
114
117
  ```
115
118
 
116
119
  ```bash packageManager="bun"
117
120
  bun add intlayer svelte-intlayer
118
121
  bun add vite-intlayer --save-dev
122
+ bunx intlayer init
119
123
  ```
120
124
 
121
125
  - **intlayer**: The core i18n package.
@@ -95,11 +95,25 @@ Install the necessary packages using your preferred package manager:
95
95
  ```bash packageManager="npm"
96
96
  npm install intlayer react-intlayer
97
97
  npm install vite-intlayer --save-dev
98
+ npx intlayer init
98
99
  ```
99
100
 
100
101
  ```bash packageManager="pnpm"
101
102
  pnpm add intlayer react-intlayer
102
103
  pnpm add vite-intlayer --save-dev
104
+ pnpm intlayer init
105
+ ```
106
+
107
+ ```bash packageManager="yarn"
108
+ yarn add intlayer react-intlayer
109
+ yarn add vite-intlayer --save-dev
110
+ yarn intlayer init
111
+ ```
112
+
113
+ ```bash packageManager="bun"
114
+ bun add intlayer react-intlayer
115
+ bun add vite-intlayer --dev
116
+ bunx intlayer init
103
117
  ```
104
118
 
105
119
  - **intlayer**
@@ -64,16 +64,25 @@ Install the necessary packages using npm:
64
64
  ```bash packageManager="npm"
65
65
  npm install intlayer preact-intlayer
66
66
  npm install vite-intlayer --save-dev
67
+ npx intlayer init
67
68
  ```
68
69
 
69
70
  ```bash packageManager="pnpm"
70
71
  pnpm add intlayer preact-intlayer
71
72
  pnpm add vite-intlayer --save-dev
73
+ pnpm intlayer init
72
74
  ```
73
75
 
74
76
  ```bash packageManager="yarn"
75
77
  yarn add intlayer preact-intlayer
76
78
  yarn add vite-intlayer --save-dev
79
+ yarn intlayer init
80
+ ```
81
+
82
+ ```bash packageManager="bun"
83
+ bun add intlayer preact-intlayer
84
+ bun add vite-intlayer --dev
85
+ bunx intlayer init
77
86
  ```
78
87
 
79
88
  - **intlayer**
@@ -642,10 +651,12 @@ First, install `preact-iso`:
642
651
 
643
652
  ```bash packageManager="npm"
644
653
  npm install preact-iso
654
+ npx intlayer init
645
655
  ```
646
656
 
647
657
  ```bash packageManager="pnpm"
648
658
  pnpm add preact-iso
659
+ pnpm intlayer init
649
660
  ```
650
661
 
651
662
  ```bash packageManager="yarn"
@@ -72,16 +72,25 @@ Install the necessary packages using npm:
72
72
  ```bash packageManager="npm"
73
73
  npm install intlayer react-intlayer
74
74
  npm install vite-intlayer --save-dev
75
+ npx intlayer init
75
76
  ```
76
77
 
77
78
  ```bash packageManager="pnpm"
78
79
  pnpm add intlayer react-intlayer
79
80
  pnpm add vite-intlayer --save-dev
81
+ pnpm intlayer init
80
82
  ```
81
83
 
82
84
  ```bash packageManager="yarn"
83
85
  yarn add intlayer react-intlayer
84
86
  yarn add vite-intlayer --save-dev
87
+ yarn intlayer init
88
+ ```
89
+
90
+ ```bash packageManager="bun"
91
+ bun add intlayer react-intlayer
92
+ bun add vite-intlayer --dev
93
+ bunx intlayer init
85
94
  ```
86
95
 
87
96
  - **intlayer**
@@ -53,16 +53,25 @@ Install the necessary packages using npm:
53
53
  ```bash packageManager="npm"
54
54
  npm install intlayer solid-intlayer
55
55
  npm install vite-intlayer --save-dev
56
+ npx intlayer init
56
57
  ```
57
58
 
58
59
  ```bash packageManager="pnpm"
59
60
  pnpm add intlayer solid-intlayer
60
61
  pnpm add vite-intlayer --save-dev
62
+ pnpm intlayer init
61
63
  ```
62
64
 
63
65
  ```bash packageManager="yarn"
64
66
  yarn add intlayer solid-intlayer
65
67
  yarn add vite-intlayer --save-dev
68
+ yarn intlayer init
69
+ ```
70
+
71
+ ```bash packageManager="bun"
72
+ bun add intlayer solid-intlayer
73
+ bun add vite-intlayer --dev
74
+ bunx intlayer init
66
75
  ```
67
76
 
68
77
  - **intlayer**
@@ -62,21 +62,25 @@ Install the necessary packages using npm:
62
62
  ```bash packageManager="npm"
63
63
  npm install intlayer svelte-intlayer
64
64
  npm install vite-intlayer --save-dev
65
+ npx intlayer init
65
66
  ```
66
67
 
67
68
  ```bash packageManager="pnpm"
68
69
  pnpm add intlayer svelte-intlayer
69
70
  pnpm add vite-intlayer --save-dev
71
+ pnpm intlayer init
70
72
  ```
71
73
 
72
74
  ```bash packageManager="yarn"
73
75
  yarn add intlayer svelte-intlayer
74
76
  yarn add vite-intlayer --save-dev
77
+ yarn intlayer init
75
78
  ```
76
79
 
77
80
  ```bash packageManager="bun"
78
81
  bun add intlayer svelte-intlayer
79
82
  bun add vite-intlayer --save-dev
83
+ bunx intlayer init
80
84
  ```
81
85
 
82
86
  - **intlayer**
@@ -300,14 +304,17 @@ First, install `svelte-spa-router`:
300
304
 
301
305
  ```bash packageManager="npm"
302
306
  npm install svelte-spa-router
307
+ npx intlayer init
303
308
  ```
304
309
 
305
310
  ```bash packageManager="pnpm"
306
311
  pnpm add svelte-spa-router
312
+ pnpm intlayer init
307
313
  ```
308
314
 
309
315
  ```bash packageManager="yarn"
310
316
  yarn add svelte-spa-router
317
+ yarn intlayer init
311
318
  ```
312
319
 
313
320
  ```bash packageManager="bun"
@@ -71,16 +71,25 @@ Install the necessary packages using npm:
71
71
  ```bash packageManager="npm"
72
72
  npm install intlayer vue-intlayer
73
73
  npm install vite-intlayer --save-dev
74
+ npx intlayer init
74
75
  ```
75
76
 
76
77
  ```bash packageManager="pnpm"
77
78
  pnpm add intlayer vue-intlayer
78
79
  pnpm add vite-intlayer --save-dev
80
+ pnpm intlayer init
79
81
  ```
80
82
 
81
83
  ```bash packageManager="yarn"
82
84
  yarn add intlayer vue-intlayer
83
85
  yarn add vite-intlayer --save-dev
86
+ yarn intlayer init
87
+ ```
88
+
89
+ ```bash packageManager="bun"
90
+ bun add intlayer vue-intlayer
91
+ bun add vite-intlayer --dev
92
+ bunx intlayer init
84
93
  ```
85
94
 
86
95
  - **intlayer**
@@ -559,10 +568,12 @@ First, install Vue Router:
559
568
 
560
569
  ```bash packageManager="npm"
561
570
  npm install vue-router
571
+ npx intlayer init
562
572
  ```
563
573
 
564
574
  ```bash packageManager="pnpm"
565
575
  pnpm add vue-router
576
+ pnpm intlayer init
566
577
  ```
567
578
 
568
579
  ```bash packageManager="yarn"
@@ -78,6 +78,10 @@ yarn add intlayer-cli -g
78
78
  pnpm add intlayer-cli -g
79
79
  ```
80
80
 
81
+ ```bash packageManager="bun"
82
+ bun add intlayer-cli -g
83
+ ```
84
+
81
85
  > If the `intlayer` package is already installed, the CLI is automatically installed. You can skip this step.
82
86
 
83
87
  ## intlayer-cli package
@@ -31,6 +31,10 @@ yarn add @intlayer/cli --save-dev
31
31
  pnpm add @intlayer/cli --save-dev
32
32
  ```
33
33
 
34
+ ```bash packageManager="bun"
35
+ bun add @intlayer/cli --dev
36
+ ```
37
+
34
38
  Example of usage:
35
39
 
36
40
  ```ts
@@ -482,6 +482,7 @@ Intlayer supports multiple AI providers for enhanced flexibility and choice. Cur
482
482
  - **DeepSeek**
483
483
  - **Google Gemini**
484
484
  - **Meta Llama**
485
+ - **ollama**
485
486
 
486
487
  #### Properties
487
488
 
@@ -80,6 +80,10 @@ yarn add intlayer-editor --save-dev
80
80
  pnpm add intlayer-editor --save-dev
81
81
  ```
82
82
 
83
+ ```bash packageManager="bun"
84
+ bun add intlayer-editor --dev
85
+ ```
86
+
83
87
  ## Configuration
84
88
 
85
89
  In your Intlayer configuration file, you can customise the editor settings: