@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
@@ -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: Как перевести ваше React Router v7 – руководство i18n 2025
5
5
  description: Узнайте, как добавить интернационализацию (i18n) в ваше приложение на React Router v7 с помощью Intlayer. Следуйте этому подробному руководству, чтобы сделать ваше приложение многоязычным с маршрутизацией, учитывающей локаль.
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: Обновить Layout и обработать 404
23
26
  - version: 6.1.5
24
27
  date: 2025-10-03
25
28
  changes: Обновлена документация
@@ -59,11 +62,25 @@ history:
59
62
  ```bash packageManager="npm"
60
63
  npm install intlayer react-intlayer
61
64
  npm install vite-intlayer --save-dev
65
+ npx intlayer init
62
66
  ```
63
67
 
64
68
  ```bash packageManager="pnpm"
65
69
  pnpm add intlayer react-intlayer
66
70
  pnpm add vite-intlayer --save-dev
71
+ pnpm intlayer init
72
+ ```
73
+
74
+ ```bash packageManager="yarn"
75
+ yarn add intlayer react-intlayer
76
+ yarn add vite-intlayer --save-dev
77
+ yarn intlayer init
78
+ ```
79
+
80
+ ```bash packageManager="bun"
81
+ bun add intlayer react-intlayer
82
+ bun add vite-intlayer --dev
83
+ bunx intlayer init
67
84
  ```
68
85
 
69
86
  - **intlayer**
@@ -173,10 +190,8 @@ export default defineConfig({
173
190
  import { layout, route, type RouteConfig } from "@react-router/dev/routes";
174
191
 
175
192
  export default [
176
- layout("routes/layout.tsx", [
177
- route("/:lang?", "routes/page.tsx"), // Локализованная главная страница
178
- route("/:lang?/about", "routes/about/page.tsx"), // Локализованная страница "О нас"
179
- ]),
193
+ route("/:lang?", "routes/page.tsx"), // Локализованная главная страница
194
+ route("/:lang?/about", "routes/about/page.tsx"), // Локализованная страница "О нас"
180
195
  ] satisfies RouteConfig;
181
196
  ```
182
197
 
@@ -186,19 +201,50 @@ export default [
186
201
 
187
202
  #### Корневой Layout
188
203
 
189
- ```tsx fileName="app/routes/layout.tsx"
204
+ ```tsx fileName="app/root.tsx"
205
+ import { getLocaleFromPath } from "intlayer";
190
206
  import { IntlayerProvider } from "react-intlayer";
191
- import { Outlet } from "react-router";
207
+ import {
208
+ data,
209
+ Meta,
210
+ Scripts,
211
+ ScrollRestoration,
212
+ useLoaderData,
213
+ } from "react-router";
214
+ import type { Route } from "./+types/root";
192
215
 
193
- import type { Route } from "./+types/layout";
216
+ // ... Unchanged App, links and ErrorBoundary code
194
217
 
195
- export default function RootLayout({ params }: Route.ComponentProps) {
196
- const { locale } = params;
218
+ export async function loader({ request }: Route.LoaderArgs) {
219
+ const locale = getLocaleFromPath(request.url);
220
+
221
+ if (!locale) {
222
+ throw data("Language not supported", { status: 404 });
223
+ }
224
+
225
+ return { locale };
226
+ }
227
+
228
+ export function Layout({
229
+ children,
230
+ }: { children: React.ReactNode } & Route.ComponentProps) {
231
+ const data = useLoaderData<typeof loader>();
232
+ const { locale } = data ?? {};
197
233
 
198
234
  return (
199
- <IntlayerProvider locale={locale}>
200
- <Outlet />
201
- </IntlayerProvider>
235
+ <html lang={locale}>
236
+ <head>
237
+ <meta charSet="utf-8" />
238
+ <meta content="width=device-width, initial-scale=1" name="viewport" />
239
+ <Meta />
240
+ <Links />
241
+ </head>
242
+ <body>
243
+ <IntlayerProvider locale={locale}>{children}</IntlayerProvider>
244
+ <ScrollRestoration />
245
+ <Scripts />
246
+ </body>
247
+ </html>
202
248
  );
203
249
  }
204
250
  ```
@@ -312,9 +358,34 @@ export const useLocalizedNavigate = () => {
312
358
 
313
359
  #### Локализованная главная страница
314
360
 
315
- ```tsx fileName="app/routes/[lang]/page.tsx"
361
+ ```tsx fileName="app/routes/page.tsx"
362
+ import { getIntlayer, validatePrefix } from "intlayer";
316
363
  import { useIntlayer } from "react-intlayer";
317
- import { LocalizedLink } from "~/components/localized-link";
364
+ import { data } from "react-router";
365
+
366
+ import { LocaleSwitcher } from "~/components/locale-switcher";
367
+
368
+ import { Navbar } from "~/components/navbar";
369
+ import type { Route } from "./+types/page";
370
+
371
+ export const loader = ({ params }: Route.LoaderArgs) => {
372
+ const { locale } = params;
373
+
374
+ const { isValid } = validatePrefix(locale);
375
+
376
+ if (!isValid) {
377
+ throw data("Locale not supported", { status: 404 });
378
+ }
379
+ };
380
+
381
+ export const meta: Route.MetaFunction = ({ params }) => {
382
+ const content = getIntlayer("page", params.locale);
383
+
384
+ return [
385
+ { title: content.title },
386
+ { content: content.description, name: "description" },
387
+ ];
388
+ };
318
389
 
319
390
  export default function Page() {
320
391
  const { title, description, aboutLink } = useIntlayer("page");
@@ -31,6 +31,8 @@ history:
31
31
 
32
32
  Это руководство демонстрирует, как интегрировать **Intlayer** для бесшовной интернационализации в проектах на React Router v7 с использованием **маршрутизации на основе файловой системы** (`@react-router/fs-routes`) с маршрутизацией, учитывающей локаль, поддержкой TypeScript и современными практиками разработки.
33
33
 
34
+ Для клиентской маршрутизации обратитесь к руководству [Intlayer с React Router v7](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_react_router_v7.md).
35
+
34
36
  ## Table of Contents
35
37
 
36
38
  <TOC/>
@@ -80,6 +82,7 @@ See [Application Template](https://github.com/aymericzip/intlayer-react-router-v
80
82
  npm install intlayer react-intlayer
81
83
  npm install vite-intlayer --save-dev
82
84
  npm install @react-router/fs-routes --save-dev
85
+ npx intlayer init
83
86
  ```
84
87
 
85
88
  ```bash packageManager="pnpm"
@@ -88,6 +91,13 @@ pnpm add vite-intlayer --save-dev
88
91
  pnpm add @react-router/fs-routes --save-dev
89
92
  ```
90
93
 
94
+ ```bash packageManager="bun"
95
+ bun add intlayer react-intlayer
96
+ bun add vite-intlayer --dev
97
+ bun add @react-router/fs-routes --dev
98
+ bunx intlayer init
99
+ ```
100
+
91
101
  - **intlayer**
92
102
 
93
103
  - **intlayer**
@@ -197,12 +207,13 @@ export default routes;
197
207
  #### Структура файлов
198
208
 
199
209
  ```bash
200
- app/routes/
201
- ├── ($locale)._layout.tsx # Обертка layout для маршрутов локали
202
- ├── ($locale)._index.tsx # Главная страница (/:locale?)
203
- ├── ($locale)._index.content.ts # Контент главной страницы
204
- ├── ($locale).about.tsx # Страница нас" (/:locale?/about)
205
- └── ($locale).about.content.ts # Контент страницы "О нас"
210
+ app/
211
+ ├── root.tsx # Обертка layout для маршрутов локали
212
+ └──routes/
213
+ ├── ($locale)._index.tsx # Главная страница (/, /es, и т.д.)
214
+ ├── ($locale)._index.content.ts # Контент главной страницы
215
+ ├── ($locale).about.tsx # Страница "О нас" (/about, /es/about, и т.д.)
216
+ └── ($locale).about.content.ts # Контент страницы "О нас"
206
217
  ```
207
218
 
208
219
  Соглашения об именовании:
@@ -214,23 +225,50 @@ app/routes/
214
225
 
215
226
  #### Компонент Layout
216
227
 
217
- ```tsx fileName="app/routes/($locale)._layout.tsx"
228
+ ```tsx fileName="app/root.tsx"
229
+ import { getLocaleFromPath } from "intlayer";
218
230
  import { IntlayerProvider } from "react-intlayer";
219
- import { Outlet } from "react-router";
231
+ import {
232
+ isRouteErrorResponse,
233
+ Meta,
234
+ Outlet,
235
+ Scripts,
236
+ ScrollRestoration,
237
+ useLoaderData,
238
+ } from "react-router";
220
239
 
221
- import { useI18nHTMLAttributes } from "~/hooks/useI18nHTMLAttributes";
240
+ import type { Route } from "./+types/root";
222
241
 
223
- import type { Route } from "./+types/($locale)._layout";
242
+ import "./app.css";
224
243
 
225
- export default function RootLayout({ params }: Route.ComponentProps) {
226
- useI18nHTMLAttributes();
244
+ // links and ErrorBoundary code
227
245
 
228
- const { locale } = params;
246
+ export async function loader({ request }: Route.LoaderArgs) {
247
+ const locale = getLocaleFromPath(request.url);
248
+
249
+ return { locale };
250
+ }
251
+
252
+ export function Layout({
253
+ children,
254
+ }: { children: React.ReactNode } & Route.ComponentProps) {
255
+ const data = useLoaderData<typeof loader>();
256
+ const { locale } = data ?? {};
229
257
 
230
258
  return (
231
- <IntlayerProvider locale={locale}>
232
- <Outlet />
233
- </IntlayerProvider>
259
+ <html lang={locale}>
260
+ <head>
261
+ <meta charSet="utf-8" />
262
+ <meta content="width=device-width, initial-scale=1" name="viewport" />
263
+ <Meta />
264
+ <Links />
265
+ </head>
266
+ <body>
267
+ <IntlayerProvider locale={locale}>{children}</IntlayerProvider>
268
+ <ScrollRestoration />
269
+ <Scripts />
270
+ </body>
271
+ </html>
234
272
  );
235
273
  }
236
274
  ```
@@ -238,11 +276,34 @@ export default function RootLayout({ params }: Route.ComponentProps) {
238
276
  #### Индексная страница
239
277
 
240
278
  ```tsx fileName="app/routes/($locale)._index.tsx"
279
+ import { getIntlayer, validatePrefix } from "intlayer";
241
280
  import { useIntlayer } from "react-intlayer";
242
- import { LocalizedLink } from "~/components/localized-link";
281
+ import { data } from "react-router";
282
+
283
+ import { LocaleSwitcher } from "~/components/locale-switcher";
284
+ import { Navbar } from "~/components/navbar";
243
285
 
244
286
  import type { Route } from "./+types/($locale)._index";
245
287
 
288
+ export const loader = ({ params }: Route.LoaderArgs) => {
289
+ const { locale } = params;
290
+
291
+ const { isValid } = validatePrefix(locale);
292
+
293
+ if (!isValid) {
294
+ throw data("Locale not supported", { status: 404 });
295
+ }
296
+ };
297
+
298
+ export const meta: Route.MetaFunction = ({ params }) => {
299
+ const content = getIntlayer("page", params.locale);
300
+
301
+ return [
302
+ { title: content.title },
303
+ { content: content.description, name: "description" },
304
+ ];
305
+ };
306
+
246
307
  export default function Page() {
247
308
  const { title, description, aboutLink } = useIntlayer("page");
248
309
 
@@ -261,11 +322,34 @@ export default function Page() {
261
322
  #### Страница "О нас"
262
323
 
263
324
  ```tsx fileName="app/routes/($locale).about.tsx"
325
+ import { getIntlayer, validatePrefix } from "intlayer";
264
326
  import { useIntlayer } from "react-intlayer";
265
- import { LocalizedLink } from "~/components/localized-link";
327
+ import { data } from "react-router";
328
+
329
+ import { LocaleSwitcher } from "~/components/locale-switcher";
330
+ import { Navbar } from "~/components/navbar";
266
331
 
267
332
  import type { Route } from "./+types/($locale).about";
268
333
 
334
+ export const loader = ({ params }: Route.LoaderArgs) => {
335
+ const { locale } = params;
336
+
337
+ const { isValid } = validatePrefix(locale);
338
+
339
+ if (!isValid) {
340
+ throw data("Locale not supported", { status: 404 });
341
+ }
342
+ };
343
+
344
+ export const meta: Route.MetaFunction = ({ params }) => {
345
+ const content = getIntlayer("about", params.locale);
346
+
347
+ return [
348
+ { title: content.title },
349
+ { content: content.description, name: "description" },
350
+ ];
351
+ };
352
+
269
353
  export default function AboutPage() {
270
354
  const { title, content, homeLink } = useIntlayer("about");
271
355
 
@@ -486,7 +570,7 @@ export const useI18nHTMLAttributes = () => {
486
570
  };
487
571
  ```
488
572
 
489
- Этот хук уже используется в компоненте layout (`($locale)._layout.tsx`), показанном в Шаге 5.
573
+ Этот хук уже используется в компоненте layout (`root.tsx`), показанном в Шаге 5.
490
574
 
491
575
  ### Шаг 10: Добавьте middleware (необязательно)
492
576
 
@@ -99,21 +99,25 @@ history:
99
99
  ```bash packageManager="npm"
100
100
  npm install intlayer svelte-intlayer
101
101
  npm install vite-intlayer --save-dev
102
+ npx intlayer init
102
103
  ```
103
104
 
104
105
  ```bash packageManager="pnpm"
105
106
  pnpm add intlayer svelte-intlayer
106
107
  pnpm add vite-intlayer --save-dev
108
+ pnpm intlayer init
107
109
  ```
108
110
 
109
111
  ```bash packageManager="yarn"
110
112
  yarn add intlayer svelte-intlayer
111
113
  yarn add vite-intlayer --save-dev
114
+ yarn intlayer init
112
115
  ```
113
116
 
114
117
  ```bash packageManager="bun"
115
118
  bun add intlayer svelte-intlayer
116
119
  bun add vite-intlayer --save-dev
120
+ bunx intlayer init
117
121
  ```
118
122
 
119
123
  - **intlayer**: Основной пакет для i18n.
@@ -271,21 +275,25 @@ export default heroContent;
271
275
  ```bash packageManager="npm"
272
276
  npm install intlayer svelte-intlayer
273
277
  npm install vite-intlayer --save-dev
278
+ npx intlayer init
274
279
  ```
275
280
 
276
281
  ```bash packageManager="pnpm"
277
282
  pnpm add intlayer svelte-intlayer
278
283
  pnpm add vite-intlayer --save-dev
284
+ pnpm intlayer init
279
285
  ```
280
286
 
281
287
  ```bash packageManager="yarn"
282
288
  yarn add intlayer svelte-intlayer
283
289
  yarn add vite-intlayer --save-dev
290
+ yarn intlayer init
284
291
  ```
285
292
 
286
293
  ```bash packageManager="bun"
287
294
  bun add intlayer svelte-intlayer
288
295
  bun add vite-intlayer --save-dev
296
+ bunx intlayer init
289
297
  ```
290
298
 
291
299
  - **intlayer**: Основной пакет для i18n.
@@ -86,11 +86,25 @@ history:
86
86
  ```bash packageManager="npm"
87
87
  npm install intlayer react-intlayer
88
88
  npm install vite-intlayer --save-dev
89
+ npx intlayer init
89
90
  ```
90
91
 
91
92
  ```bash packageManager="pnpm"
92
93
  pnpm add intlayer react-intlayer
93
94
  pnpm add vite-intlayer --save-dev
95
+ pnpm intlayer init
96
+ ```
97
+
98
+ ```bash packageManager="yarn"
99
+ yarn add intlayer react-intlayer
100
+ yarn add vite-intlayer --save-dev
101
+ yarn intlayer init
102
+ ```
103
+
104
+ ```bash packageManager="bun"
105
+ bun add intlayer react-intlayer
106
+ bun add vite-intlayer --dev
107
+ bunx intlayer init
94
108
  ```
95
109
 
96
110
  - **intlayer**
@@ -49,16 +49,25 @@ history:
49
49
  ```bash packageManager="npm"
50
50
  npm install intlayer preact-intlayer
51
51
  npm install vite-intlayer --save-dev
52
+ npx intlayer init
52
53
  ```
53
54
 
54
55
  ```bash packageManager="pnpm"
55
56
  pnpm add intlayer preact-intlayer
56
57
  pnpm add vite-intlayer --save-dev
58
+ pnpm intlayer init
57
59
  ```
58
60
 
59
61
  ```bash packageManager="yarn"
60
62
  yarn add intlayer preact-intlayer
61
63
  yarn add vite-intlayer --save-dev
64
+ yarn intlayer init
65
+ ```
66
+
67
+ ```bash packageManager="bun"
68
+ bun add intlayer preact-intlayer
69
+ bun add vite-intlayer --dev
70
+ bunx intlayer init
62
71
  ```
63
72
 
64
73
  - **intlayer**
@@ -627,10 +636,12 @@ module.exports = LocaleSwitcher;
627
636
 
628
637
  ```bash packageManager="npm"
629
638
  npm install preact-iso
639
+ npx intlayer init
630
640
  ```
631
641
 
632
642
  ```bash packageManager="pnpm"
633
643
  pnpm add preact-iso
644
+ pnpm intlayer init
634
645
  ```
635
646
 
636
647
  ```bash packageManager="yarn"
@@ -1463,8 +1474,7 @@ import { useLocale, useLocation, route } from "preact-intlayer"; // Предпо
1463
1474
  import type { JSX } from "preact"; // Для HTMLAttributes
1464
1475
  import { forwardRef } from "preact/compat"; // Для передачи ref
1465
1476
 
1466
- export interface LocalizedLinkProps
1467
- extends JSX.HTMLAttributes<HTMLAnchorElement> {
1477
+ export interface LocalizedLinkProps extends JSX.HTMLAttributes<HTMLAnchorElement> {
1468
1478
  href: string;
1469
1479
  replace?: boolean; // Необязательно: для замены состояния истории
1470
1480
  }
@@ -72,16 +72,25 @@ history:
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**
@@ -49,16 +49,25 @@ history:
49
49
  ```bash packageManager="npm"
50
50
  npm install intlayer solid-intlayer
51
51
  npm install vite-intlayer --save-dev
52
+ npx intlayer init
52
53
  ```
53
54
 
54
55
  ```bash packageManager="pnpm"
55
56
  pnpm add intlayer solid-intlayer
56
57
  pnpm add vite-intlayer --save-dev
58
+ pnpm intlayer init
57
59
  ```
58
60
 
59
61
  ```bash packageManager="yarn"
60
62
  yarn add intlayer solid-intlayer
61
63
  yarn add vite-intlayer --save-dev
64
+ yarn intlayer init
65
+ ```
66
+
67
+ ```bash packageManager="bun"
68
+ bun add intlayer solid-intlayer
69
+ bun add vite-intlayer --dev
70
+ bunx intlayer init
62
71
  ```
63
72
 
64
73
  - **intlayer**
@@ -62,21 +62,25 @@ history:
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**
@@ -303,14 +307,17 @@ useIntlayerEditor();
303
307
 
304
308
  ```bash packageManager="npm"
305
309
  npm install svelte-spa-router
310
+ npx intlayer init
306
311
  ```
307
312
 
308
313
  ```bash packageManager="pnpm"
309
314
  pnpm add svelte-spa-router
315
+ pnpm intlayer init
310
316
  ```
311
317
 
312
318
  ```bash packageManager="yarn"
313
319
  yarn add svelte-spa-router
320
+ yarn intlayer init
314
321
  ```
315
322
 
316
323
  ```bash packageManager="bun"
@@ -69,16 +69,25 @@ history:
69
69
  ```bash packageManager="npm"
70
70
  npm install intlayer vue-intlayer
71
71
  npm install vite-intlayer --save-dev
72
+ npx intlayer init
72
73
  ```
73
74
 
74
75
  ```bash packageManager="pnpm"
75
76
  pnpm add intlayer vue-intlayer
76
77
  pnpm add vite-intlayer --save-dev
78
+ pnpm intlayer init
77
79
  ```
78
80
 
79
81
  ```bash packageManager="yarn"
80
82
  yarn add intlayer vue-intlayer
81
83
  yarn add vite-intlayer --save-dev
84
+ yarn intlayer init
85
+ ```
86
+
87
+ ```bash packageManager="bun"
88
+ bun add intlayer vue-intlayer
89
+ bun add vite-intlayer --dev
90
+ bunx intlayer init
82
91
  ```
83
92
 
84
93
  - **intlayer**
@@ -585,10 +594,12 @@ const content = useIntlayer("app"); // Создайте связанный фа
585
594
 
586
595
  ```bash packageManager="npm"
587
596
  npm install vue-router
597
+ npx intlayer init
588
598
  ```
589
599
 
590
600
  ```bash packageManager="pnpm"
591
601
  pnpm add vue-router
602
+ pnpm intlayer init
592
603
  ```
593
604
 
594
605
  ```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
  > Eğer `intlayer` paketi zaten kuruluysa, cli otomatik olarak kurulur. Bu adımı atlayabilirsiniz.
82
86
 
83
87
  ## intlayer-cli paketi
@@ -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
  Kullanım örneği:
35
39
 
36
40
  ```ts
@@ -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
  ## Yapılandırma
84
88
 
85
89
  Intlayer yapılandırma dosyanızda düzenleyici ayarlarını özelleştirebilirsiniz:
@@ -47,14 +47,22 @@ Gerekli paketleri npm kullanarak yükleyin:
47
47
 
48
48
  ```bash packageManager="npm"
49
49
  npm install intlayer angular-intlayer @intlayer/webpack
50
+ npx intlayer init
50
51
  ```
51
52
 
52
53
  ```bash packageManager="pnpm"
53
54
  pnpm add intlayer angular-intlayer @intlayer/webpack
55
+ pnpm intlayer init
54
56
  ```
55
57
 
56
58
  ```bash packageManager="yarn"
57
59
  yarn add intlayer angular-intlayer @intlayer/webpack
60
+ yarn intlayer init
61
+ ```
62
+
63
+ ```bash packageManager="bun"
64
+ bun add intlayer angular-intlayer @intlayer/webpack
65
+ bunx intlayer init
58
66
  ```
59
67
 
60
68
  - **intlayer**
@@ -45,14 +45,22 @@ Gerekli paketleri npm kullanarak yükleyin:
45
45
 
46
46
  ```bash packageManager="npm"
47
47
  npm install intlayer react-intlayer react-scripts-intlayer
48
+ npx intlayer init
48
49
  ```
49
50
 
50
51
  ```bash packageManager="pnpm"
51
52
  pnpm add intlayer react-intlayer react-scripts-intlayer
53
+ pnpm intlayer init
52
54
  ```
53
55
 
54
56
  ```bash packageManager="yarn"
55
57
  yarn add intlayer react-intlayer react-scripts-intlayer
58
+ yarn intlayer init
59
+ ```
60
+
61
+ ```bash packageManager="bun"
62
+ bun add intlayer react-intlayer react-scripts-intlayer
63
+ bunx intlayer init
56
64
  ```
57
65
 
58
66
  - **intlayer**