@intlayer/docs 8.12.1 → 8.12.3

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 (774) hide show
  1. package/dist/cjs/blog.cjs.map +1 -1
  2. package/dist/cjs/common.cjs.map +1 -1
  3. package/dist/cjs/doc.cjs.map +1 -1
  4. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  5. package/dist/cjs/generated/blog.entry.cjs +1 -0
  6. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  7. package/dist/cjs/generated/docs.entry.cjs +121 -0
  8. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -0
  10. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/legal.entry.cjs +1 -0
  12. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  13. package/dist/cjs/legal.cjs.map +1 -1
  14. package/dist/esm/blog.mjs.map +1 -1
  15. package/dist/esm/common.mjs.map +1 -1
  16. package/dist/esm/doc.mjs.map +1 -1
  17. package/dist/esm/frequentQuestions.mjs.map +1 -1
  18. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  19. package/dist/esm/generated/docs.entry.mjs +120 -0
  20. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  21. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/dist/esm/legal.mjs.map +1 -1
  24. package/dist/types/blog.d.ts.map +1 -1
  25. package/dist/types/common.d.ts.map +1 -1
  26. package/dist/types/doc.d.ts.map +1 -1
  27. package/dist/types/frequentQuestions.d.ts.map +1 -1
  28. package/dist/types/generated/docs.entry.d.ts +6 -0
  29. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  30. package/dist/types/legal.d.ts.map +1 -1
  31. package/docs/ar/bundle_optimization.md +250 -102
  32. package/docs/ar/configuration.md +10 -9
  33. package/docs/ar/intlayer_with_adonisjs.md +1 -1
  34. package/docs/ar/intlayer_with_analog.md +1 -1
  35. package/docs/ar/intlayer_with_angular_19.md +1 -1
  36. package/docs/ar/intlayer_with_angular_21.md +1 -1
  37. package/docs/ar/intlayer_with_astro.md +1 -1
  38. package/docs/ar/intlayer_with_astro_lit.md +1 -1
  39. package/docs/ar/intlayer_with_astro_preact.md +1 -1
  40. package/docs/ar/intlayer_with_astro_react.md +1 -1
  41. package/docs/ar/intlayer_with_astro_solid.md +1 -1
  42. package/docs/ar/intlayer_with_astro_svelte.md +1 -1
  43. package/docs/ar/intlayer_with_astro_vanilla.md +1 -1
  44. package/docs/ar/intlayer_with_astro_vue.md +1 -1
  45. package/docs/ar/intlayer_with_create_react_app.md +1 -1
  46. package/docs/ar/intlayer_with_express.md +1 -1
  47. package/docs/ar/intlayer_with_fastify.md +1 -1
  48. package/docs/ar/intlayer_with_hono.md +1 -1
  49. package/docs/ar/intlayer_with_nestjs.md +1 -1
  50. package/docs/ar/intlayer_with_nextjs_14.md +1 -1
  51. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  52. package/docs/ar/intlayer_with_nextjs_16.md +1 -1
  53. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1 -1
  54. package/docs/ar/intlayer_with_nuxt.md +1 -1
  55. package/docs/ar/intlayer_with_react_router_v7.md +1 -1
  56. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +1 -1
  57. package/docs/ar/intlayer_with_tanstack+solid.md +1 -1
  58. package/docs/ar/intlayer_with_tanstack.md +1 -1
  59. package/docs/ar/intlayer_with_vanilla.md +1 -1
  60. package/docs/ar/intlayer_with_vite+lit.md +1 -1
  61. package/docs/ar/intlayer_with_vite+preact.md +1 -1
  62. package/docs/ar/intlayer_with_vite+react.md +1 -1
  63. package/docs/ar/intlayer_with_vite+solid.md +1 -1
  64. package/docs/ar/intlayer_with_vite+svelte.md +1 -1
  65. package/docs/ar/intlayer_with_vite+vanilla.md +1 -1
  66. package/docs/ar/intlayer_with_vite+vue.md +1 -1
  67. package/docs/bn/bundle_optimization.md +252 -104
  68. package/docs/bn/configuration.md +10 -9
  69. package/docs/bn/intlayer_with_angular_21.md +1 -1
  70. package/docs/bn/intlayer_with_fastify.md +1 -1
  71. package/docs/bn/intlayer_with_hono.md +1 -1
  72. package/docs/bn/intlayer_with_vanilla.md +1 -1
  73. package/docs/bn/intlayer_with_vite+lit.md +1 -1
  74. package/docs/bn/intlayer_with_vite+vanilla.md +1 -1
  75. package/docs/cs/bundle_optimization.md +253 -105
  76. package/docs/cs/configuration.md +10 -9
  77. package/docs/cs/intlayer_with_angular_21.md +1 -1
  78. package/docs/cs/intlayer_with_fastify.md +1 -1
  79. package/docs/cs/intlayer_with_hono.md +1 -1
  80. package/docs/cs/intlayer_with_vanilla.md +1 -1
  81. package/docs/cs/intlayer_with_vite+lit.md +1 -1
  82. package/docs/cs/intlayer_with_vite+vanilla.md +1 -1
  83. package/docs/de/bundle_optimization.md +245 -97
  84. package/docs/de/configuration.md +10 -9
  85. package/docs/de/intlayer_with_adonisjs.md +1 -1
  86. package/docs/de/intlayer_with_analog.md +1 -1
  87. package/docs/de/intlayer_with_angular_19.md +1 -1
  88. package/docs/de/intlayer_with_angular_21.md +1 -1
  89. package/docs/de/intlayer_with_astro.md +1 -1
  90. package/docs/de/intlayer_with_astro_lit.md +1 -1
  91. package/docs/de/intlayer_with_astro_preact.md +1 -1
  92. package/docs/de/intlayer_with_astro_react.md +1 -1
  93. package/docs/de/intlayer_with_astro_solid.md +1 -1
  94. package/docs/de/intlayer_with_astro_svelte.md +1 -1
  95. package/docs/de/intlayer_with_astro_vanilla.md +1 -1
  96. package/docs/de/intlayer_with_astro_vue.md +1 -1
  97. package/docs/de/intlayer_with_create_react_app.md +1 -1
  98. package/docs/de/intlayer_with_express.md +1 -1
  99. package/docs/de/intlayer_with_fastify.md +1 -1
  100. package/docs/de/intlayer_with_hono.md +1 -1
  101. package/docs/de/intlayer_with_nestjs.md +1 -1
  102. package/docs/de/intlayer_with_nextjs_14.md +1 -1
  103. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  104. package/docs/de/intlayer_with_nextjs_16.md +1 -1
  105. package/docs/de/intlayer_with_nextjs_no_locale_path.md +1 -1
  106. package/docs/de/intlayer_with_nuxt.md +1 -1
  107. package/docs/de/intlayer_with_react_router_v7.md +1 -1
  108. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +1 -1
  109. package/docs/de/intlayer_with_tanstack+solid.md +1 -1
  110. package/docs/de/intlayer_with_tanstack.md +1 -1
  111. package/docs/de/intlayer_with_vanilla.md +1 -1
  112. package/docs/de/intlayer_with_vite+lit.md +1 -1
  113. package/docs/de/intlayer_with_vite+preact.md +1 -1
  114. package/docs/de/intlayer_with_vite+react.md +1 -1
  115. package/docs/de/intlayer_with_vite+solid.md +1 -1
  116. package/docs/de/intlayer_with_vite+svelte.md +1 -1
  117. package/docs/de/intlayer_with_vite+vanilla.md +1 -1
  118. package/docs/de/intlayer_with_vite+vue.md +1 -1
  119. package/docs/de/migration_from_i18next_to_intlayer.md +313 -0
  120. package/docs/de/migration_from_next-i18next_to_intlayer.md +338 -0
  121. package/docs/de/migration_from_next-intl_to_intlayer.md +347 -0
  122. package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  123. package/docs/de/migration_from_react-i18next_to_intlayer.md +367 -0
  124. package/docs/de/migration_from_vue-i18n_to_intlayer.md +342 -0
  125. package/docs/en/bundle_optimization.md +172 -49
  126. package/docs/en/configuration.md +10 -9
  127. package/docs/en/intlayer_with_adonisjs.md +1 -1
  128. package/docs/en/intlayer_with_analog.md +1 -1
  129. package/docs/en/intlayer_with_angular_19.md +1 -1
  130. package/docs/en/intlayer_with_angular_21.md +1 -1
  131. package/docs/en/intlayer_with_astro.md +1 -1
  132. package/docs/en/intlayer_with_astro_lit.md +1 -1
  133. package/docs/en/intlayer_with_astro_preact.md +1 -1
  134. package/docs/en/intlayer_with_astro_react.md +1 -1
  135. package/docs/en/intlayer_with_astro_solid.md +1 -1
  136. package/docs/en/intlayer_with_astro_svelte.md +1 -1
  137. package/docs/en/intlayer_with_astro_vanilla.md +1 -1
  138. package/docs/en/intlayer_with_astro_vue.md +1 -1
  139. package/docs/en/intlayer_with_create_react_app.md +1 -1
  140. package/docs/en/intlayer_with_express.md +1 -1
  141. package/docs/en/intlayer_with_fastify.md +1 -1
  142. package/docs/en/intlayer_with_hono.md +1 -1
  143. package/docs/en/intlayer_with_nestjs.md +1 -1
  144. package/docs/en/intlayer_with_nextjs_14.md +1 -1
  145. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  146. package/docs/en/intlayer_with_nextjs_16.md +1 -1
  147. package/docs/en/intlayer_with_nextjs_no_locale_path.md +1 -1
  148. package/docs/en/intlayer_with_nuxt.md +1 -1
  149. package/docs/en/intlayer_with_react_router_v7.md +1 -1
  150. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +1 -1
  151. package/docs/en/intlayer_with_tanstack+solid.md +1 -1
  152. package/docs/en/intlayer_with_tanstack.md +1 -1
  153. package/docs/en/intlayer_with_vanilla.md +1 -1
  154. package/docs/en/intlayer_with_vite+lit.md +1 -1
  155. package/docs/en/intlayer_with_vite+preact.md +1 -1
  156. package/docs/en/intlayer_with_vite+react.md +1 -1
  157. package/docs/en/intlayer_with_vite+solid.md +1 -1
  158. package/docs/en/intlayer_with_vite+svelte.md +1 -1
  159. package/docs/en/intlayer_with_vite+vanilla.md +1 -1
  160. package/docs/en/intlayer_with_vite+vue.md +1 -1
  161. package/docs/en/migration_from_i18next_to_intlayer.md +316 -0
  162. package/docs/en/migration_from_next-i18next_to_intlayer.md +338 -0
  163. package/docs/en/migration_from_next-intl_to_intlayer.md +347 -0
  164. package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  165. package/docs/en/migration_from_react-i18next_to_intlayer.md +367 -0
  166. package/docs/en/migration_from_vue-i18n_to_intlayer.md +342 -0
  167. package/docs/en-GB/bundle_optimization.md +230 -82
  168. package/docs/en-GB/configuration.md +10 -9
  169. package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
  170. package/docs/en-GB/intlayer_with_analog.md +1 -1
  171. package/docs/en-GB/intlayer_with_angular_19.md +1 -1
  172. package/docs/en-GB/intlayer_with_angular_21.md +1 -1
  173. package/docs/en-GB/intlayer_with_astro.md +1 -1
  174. package/docs/en-GB/intlayer_with_astro_lit.md +1 -1
  175. package/docs/en-GB/intlayer_with_astro_preact.md +1 -1
  176. package/docs/en-GB/intlayer_with_astro_react.md +1 -1
  177. package/docs/en-GB/intlayer_with_astro_solid.md +1 -1
  178. package/docs/en-GB/intlayer_with_astro_svelte.md +1 -1
  179. package/docs/en-GB/intlayer_with_astro_vanilla.md +1 -1
  180. package/docs/en-GB/intlayer_with_astro_vue.md +1 -1
  181. package/docs/en-GB/intlayer_with_create_react_app.md +1 -1
  182. package/docs/en-GB/intlayer_with_express.md +1 -1
  183. package/docs/en-GB/intlayer_with_fastify.md +1 -1
  184. package/docs/en-GB/intlayer_with_hono.md +1 -1
  185. package/docs/en-GB/intlayer_with_nestjs.md +1 -1
  186. package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
  187. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  188. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  189. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1 -1
  190. package/docs/en-GB/intlayer_with_nuxt.md +1 -1
  191. package/docs/en-GB/intlayer_with_react_router_v7.md +1 -1
  192. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
  193. package/docs/en-GB/intlayer_with_tanstack+solid.md +1 -1
  194. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  195. package/docs/en-GB/intlayer_with_vanilla.md +1 -1
  196. package/docs/en-GB/intlayer_with_vite+lit.md +1 -1
  197. package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
  198. package/docs/en-GB/intlayer_with_vite+react.md +1 -1
  199. package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
  200. package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
  201. package/docs/en-GB/intlayer_with_vite+vanilla.md +1 -1
  202. package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
  203. package/docs/es/bundle_optimization.md +250 -102
  204. package/docs/es/configuration.md +10 -9
  205. package/docs/es/intlayer_with_adonisjs.md +1 -1
  206. package/docs/es/intlayer_with_analog.md +1 -1
  207. package/docs/es/intlayer_with_angular_19.md +1 -1
  208. package/docs/es/intlayer_with_angular_21.md +1 -1
  209. package/docs/es/intlayer_with_astro.md +1 -1
  210. package/docs/es/intlayer_with_astro_lit.md +1 -1
  211. package/docs/es/intlayer_with_astro_preact.md +1 -1
  212. package/docs/es/intlayer_with_astro_react.md +1 -1
  213. package/docs/es/intlayer_with_astro_solid.md +1 -1
  214. package/docs/es/intlayer_with_astro_svelte.md +1 -1
  215. package/docs/es/intlayer_with_astro_vanilla.md +1 -1
  216. package/docs/es/intlayer_with_astro_vue.md +1 -1
  217. package/docs/es/intlayer_with_create_react_app.md +1 -1
  218. package/docs/es/intlayer_with_express.md +1 -1
  219. package/docs/es/intlayer_with_fastify.md +1 -1
  220. package/docs/es/intlayer_with_hono.md +1 -1
  221. package/docs/es/intlayer_with_nestjs.md +1 -1
  222. package/docs/es/intlayer_with_nextjs_14.md +1 -1
  223. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  224. package/docs/es/intlayer_with_nextjs_16.md +1 -1
  225. package/docs/es/intlayer_with_nextjs_no_locale_path.md +1 -1
  226. package/docs/es/intlayer_with_nuxt.md +1 -1
  227. package/docs/es/intlayer_with_react_router_v7.md +1 -1
  228. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +1 -1
  229. package/docs/es/intlayer_with_tanstack+solid.md +1 -1
  230. package/docs/es/intlayer_with_tanstack.md +1 -1
  231. package/docs/es/intlayer_with_vanilla.md +1 -1
  232. package/docs/es/intlayer_with_vite+lit.md +1 -1
  233. package/docs/es/intlayer_with_vite+preact.md +1 -1
  234. package/docs/es/intlayer_with_vite+react.md +1 -1
  235. package/docs/es/intlayer_with_vite+solid.md +1 -1
  236. package/docs/es/intlayer_with_vite+svelte.md +1 -1
  237. package/docs/es/intlayer_with_vite+vanilla.md +1 -1
  238. package/docs/es/intlayer_with_vite+vue.md +1 -1
  239. package/docs/es/migration_from_i18next_to_intlayer.md +313 -0
  240. package/docs/es/migration_from_next-i18next_to_intlayer.md +338 -0
  241. package/docs/es/migration_from_next-intl_to_intlayer.md +347 -0
  242. package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  243. package/docs/es/migration_from_react-i18next_to_intlayer.md +367 -0
  244. package/docs/es/migration_from_vue-i18n_to_intlayer.md +342 -0
  245. package/docs/es/packages/next-intlayer/index.md +1 -1
  246. package/docs/es/packages/react-intlayer/index.md +1 -1
  247. package/docs/fr/bundle_optimization.md +223 -75
  248. package/docs/fr/configuration.md +10 -9
  249. package/docs/fr/intlayer_with_adonisjs.md +1 -1
  250. package/docs/fr/intlayer_with_analog.md +1 -1
  251. package/docs/fr/intlayer_with_angular_19.md +1 -1
  252. package/docs/fr/intlayer_with_angular_21.md +1 -1
  253. package/docs/fr/intlayer_with_astro.md +1 -1
  254. package/docs/fr/intlayer_with_astro_lit.md +1 -1
  255. package/docs/fr/intlayer_with_astro_preact.md +1 -1
  256. package/docs/fr/intlayer_with_astro_react.md +1 -1
  257. package/docs/fr/intlayer_with_astro_solid.md +1 -1
  258. package/docs/fr/intlayer_with_astro_svelte.md +1 -1
  259. package/docs/fr/intlayer_with_astro_vanilla.md +1 -1
  260. package/docs/fr/intlayer_with_astro_vue.md +1 -1
  261. package/docs/fr/intlayer_with_create_react_app.md +1 -1
  262. package/docs/fr/intlayer_with_express.md +1 -1
  263. package/docs/fr/intlayer_with_fastify.md +1 -1
  264. package/docs/fr/intlayer_with_hono.md +1 -1
  265. package/docs/fr/intlayer_with_nestjs.md +1 -1
  266. package/docs/fr/intlayer_with_nextjs_14.md +1 -1
  267. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  268. package/docs/fr/intlayer_with_nextjs_16.md +1 -1
  269. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1 -1
  270. package/docs/fr/intlayer_with_nuxt.md +1 -1
  271. package/docs/fr/intlayer_with_react_router_v7.md +1 -1
  272. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  273. package/docs/fr/intlayer_with_tanstack+solid.md +1 -1
  274. package/docs/fr/intlayer_with_tanstack.md +1 -1
  275. package/docs/fr/intlayer_with_vanilla.md +1 -1
  276. package/docs/fr/intlayer_with_vite+lit.md +1 -1
  277. package/docs/fr/intlayer_with_vite+preact.md +1 -1
  278. package/docs/fr/intlayer_with_vite+react.md +1 -1
  279. package/docs/fr/intlayer_with_vite+solid.md +1 -1
  280. package/docs/fr/intlayer_with_vite+svelte.md +1 -1
  281. package/docs/fr/intlayer_with_vite+vanilla.md +1 -1
  282. package/docs/fr/intlayer_with_vite+vue.md +1 -1
  283. package/docs/fr/migration_from_i18next_to_intlayer.md +313 -0
  284. package/docs/fr/migration_from_next-i18next_to_intlayer.md +338 -0
  285. package/docs/fr/migration_from_next-intl_to_intlayer.md +347 -0
  286. package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  287. package/docs/fr/migration_from_react-i18next_to_intlayer.md +367 -0
  288. package/docs/fr/migration_from_vue-i18n_to_intlayer.md +342 -0
  289. package/docs/fr/packages/react-intlayer/index.md +1 -1
  290. package/docs/hi/bundle_optimization.md +253 -105
  291. package/docs/hi/configuration.md +10 -9
  292. package/docs/hi/intlayer_with_adonisjs.md +1 -1
  293. package/docs/hi/intlayer_with_analog.md +1 -1
  294. package/docs/hi/intlayer_with_angular_19.md +1 -1
  295. package/docs/hi/intlayer_with_angular_21.md +1 -1
  296. package/docs/hi/intlayer_with_astro.md +1 -1
  297. package/docs/hi/intlayer_with_astro_lit.md +1 -1
  298. package/docs/hi/intlayer_with_astro_preact.md +1 -1
  299. package/docs/hi/intlayer_with_astro_react.md +1 -1
  300. package/docs/hi/intlayer_with_astro_solid.md +1 -1
  301. package/docs/hi/intlayer_with_astro_svelte.md +1 -1
  302. package/docs/hi/intlayer_with_astro_vanilla.md +1 -1
  303. package/docs/hi/intlayer_with_astro_vue.md +1 -1
  304. package/docs/hi/intlayer_with_create_react_app.md +1 -1
  305. package/docs/hi/intlayer_with_express.md +1 -1
  306. package/docs/hi/intlayer_with_fastify.md +1 -1
  307. package/docs/hi/intlayer_with_hono.md +1 -1
  308. package/docs/hi/intlayer_with_nestjs.md +1 -1
  309. package/docs/hi/intlayer_with_nextjs_14.md +1 -1
  310. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  311. package/docs/hi/intlayer_with_nextjs_16.md +1 -1
  312. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1 -1
  313. package/docs/hi/intlayer_with_nuxt.md +1 -1
  314. package/docs/hi/intlayer_with_react_router_v7.md +1 -1
  315. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  316. package/docs/hi/intlayer_with_tanstack+solid.md +1 -1
  317. package/docs/hi/intlayer_with_tanstack.md +1 -1
  318. package/docs/hi/intlayer_with_vanilla.md +1 -1
  319. package/docs/hi/intlayer_with_vite+lit.md +1 -1
  320. package/docs/hi/intlayer_with_vite+preact.md +1 -1
  321. package/docs/hi/intlayer_with_vite+react.md +1 -1
  322. package/docs/hi/intlayer_with_vite+solid.md +1 -1
  323. package/docs/hi/intlayer_with_vite+svelte.md +1 -1
  324. package/docs/hi/intlayer_with_vite+vanilla.md +1 -1
  325. package/docs/hi/intlayer_with_vite+vue.md +1 -1
  326. package/docs/hi/packages/intlayer/index.md +1 -1
  327. package/docs/id/bundle_optimization.md +258 -110
  328. package/docs/id/configuration.md +10 -9
  329. package/docs/id/intlayer_with_adonisjs.md +1 -1
  330. package/docs/id/intlayer_with_analog.md +1 -1
  331. package/docs/id/intlayer_with_angular_19.md +1 -1
  332. package/docs/id/intlayer_with_angular_21.md +1 -1
  333. package/docs/id/intlayer_with_astro.md +1 -1
  334. package/docs/id/intlayer_with_astro_lit.md +1 -1
  335. package/docs/id/intlayer_with_astro_preact.md +1 -1
  336. package/docs/id/intlayer_with_astro_react.md +1 -1
  337. package/docs/id/intlayer_with_astro_solid.md +1 -1
  338. package/docs/id/intlayer_with_astro_svelte.md +1 -1
  339. package/docs/id/intlayer_with_astro_vanilla.md +1 -1
  340. package/docs/id/intlayer_with_astro_vue.md +1 -1
  341. package/docs/id/intlayer_with_create_react_app.md +1 -1
  342. package/docs/id/intlayer_with_express.md +1 -1
  343. package/docs/id/intlayer_with_fastify.md +1 -1
  344. package/docs/id/intlayer_with_hono.md +1 -1
  345. package/docs/id/intlayer_with_nestjs.md +1 -1
  346. package/docs/id/intlayer_with_nextjs_14.md +1 -1
  347. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  348. package/docs/id/intlayer_with_nextjs_16.md +1 -1
  349. package/docs/id/intlayer_with_nextjs_no_locale_path.md +1 -1
  350. package/docs/id/intlayer_with_nuxt.md +1 -1
  351. package/docs/id/intlayer_with_react_router_v7.md +1 -1
  352. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +1 -1
  353. package/docs/id/intlayer_with_tanstack+solid.md +1 -1
  354. package/docs/id/intlayer_with_tanstack.md +1 -1
  355. package/docs/id/intlayer_with_vanilla.md +1 -1
  356. package/docs/id/intlayer_with_vite+lit.md +1 -1
  357. package/docs/id/intlayer_with_vite+preact.md +1 -1
  358. package/docs/id/intlayer_with_vite+react.md +1 -1
  359. package/docs/id/intlayer_with_vite+solid.md +1 -1
  360. package/docs/id/intlayer_with_vite+svelte.md +1 -1
  361. package/docs/id/intlayer_with_vite+vanilla.md +1 -1
  362. package/docs/id/intlayer_with_vite+vue.md +1 -1
  363. package/docs/it/bundle_optimization.md +249 -103
  364. package/docs/it/configuration.md +10 -9
  365. package/docs/it/intlayer_with_adonisjs.md +1 -1
  366. package/docs/it/intlayer_with_analog.md +1 -1
  367. package/docs/it/intlayer_with_angular_19.md +1 -1
  368. package/docs/it/intlayer_with_angular_21.md +1 -1
  369. package/docs/it/intlayer_with_astro.md +1 -1
  370. package/docs/it/intlayer_with_astro_lit.md +1 -1
  371. package/docs/it/intlayer_with_astro_preact.md +1 -1
  372. package/docs/it/intlayer_with_astro_react.md +1 -1
  373. package/docs/it/intlayer_with_astro_solid.md +1 -1
  374. package/docs/it/intlayer_with_astro_svelte.md +1 -1
  375. package/docs/it/intlayer_with_astro_vanilla.md +1 -1
  376. package/docs/it/intlayer_with_astro_vue.md +1 -1
  377. package/docs/it/intlayer_with_create_react_app.md +1 -1
  378. package/docs/it/intlayer_with_express.md +1 -1
  379. package/docs/it/intlayer_with_fastify.md +1 -1
  380. package/docs/it/intlayer_with_hono.md +1 -1
  381. package/docs/it/intlayer_with_nestjs.md +1 -1
  382. package/docs/it/intlayer_with_nextjs_14.md +1 -1
  383. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  384. package/docs/it/intlayer_with_nextjs_16.md +1 -1
  385. package/docs/it/intlayer_with_nextjs_no_locale_path.md +1 -1
  386. package/docs/it/intlayer_with_nuxt.md +1 -1
  387. package/docs/it/intlayer_with_react_router_v7.md +1 -1
  388. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +1 -1
  389. package/docs/it/intlayer_with_tanstack+solid.md +1 -1
  390. package/docs/it/intlayer_with_tanstack.md +1 -1
  391. package/docs/it/intlayer_with_vanilla.md +1 -1
  392. package/docs/it/intlayer_with_vite+lit.md +1 -1
  393. package/docs/it/intlayer_with_vite+preact.md +1 -1
  394. package/docs/it/intlayer_with_vite+react.md +1 -1
  395. package/docs/it/intlayer_with_vite+solid.md +1 -1
  396. package/docs/it/intlayer_with_vite+svelte.md +1 -1
  397. package/docs/it/intlayer_with_vite+vanilla.md +1 -1
  398. package/docs/it/intlayer_with_vite+vue.md +1 -1
  399. package/docs/it/migration_from_i18next_to_intlayer.md +313 -0
  400. package/docs/it/migration_from_next-i18next_to_intlayer.md +338 -0
  401. package/docs/it/migration_from_next-intl_to_intlayer.md +347 -0
  402. package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  403. package/docs/it/migration_from_react-i18next_to_intlayer.md +367 -0
  404. package/docs/it/migration_from_vue-i18n_to_intlayer.md +342 -0
  405. package/docs/ja/bundle_optimization.md +245 -97
  406. package/docs/ja/configuration.md +10 -9
  407. package/docs/ja/intlayer_with_adonisjs.md +1 -1
  408. package/docs/ja/intlayer_with_analog.md +1 -1
  409. package/docs/ja/intlayer_with_angular_19.md +1 -1
  410. package/docs/ja/intlayer_with_angular_21.md +1 -1
  411. package/docs/ja/intlayer_with_astro.md +1 -1
  412. package/docs/ja/intlayer_with_astro_lit.md +1 -1
  413. package/docs/ja/intlayer_with_astro_preact.md +1 -1
  414. package/docs/ja/intlayer_with_astro_react.md +1 -1
  415. package/docs/ja/intlayer_with_astro_solid.md +1 -1
  416. package/docs/ja/intlayer_with_astro_svelte.md +1 -1
  417. package/docs/ja/intlayer_with_astro_vanilla.md +1 -1
  418. package/docs/ja/intlayer_with_astro_vue.md +1 -1
  419. package/docs/ja/intlayer_with_create_react_app.md +1 -1
  420. package/docs/ja/intlayer_with_express.md +1 -1
  421. package/docs/ja/intlayer_with_fastify.md +1 -1
  422. package/docs/ja/intlayer_with_hono.md +1 -1
  423. package/docs/ja/intlayer_with_nestjs.md +1 -1
  424. package/docs/ja/intlayer_with_nextjs_14.md +1 -1
  425. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  426. package/docs/ja/intlayer_with_nextjs_16.md +1 -1
  427. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1 -1
  428. package/docs/ja/intlayer_with_nuxt.md +1 -1
  429. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +1 -1
  430. package/docs/ja/intlayer_with_tanstack+solid.md +1 -1
  431. package/docs/ja/intlayer_with_tanstack.md +1 -1
  432. package/docs/ja/intlayer_with_vanilla.md +1 -1
  433. package/docs/ja/intlayer_with_vite+lit.md +1 -1
  434. package/docs/ja/intlayer_with_vite+solid.md +1 -1
  435. package/docs/ja/intlayer_with_vite+svelte.md +1 -1
  436. package/docs/ja/intlayer_with_vite+vanilla.md +1 -1
  437. package/docs/ja/intlayer_with_vite+vue.md +1 -1
  438. package/docs/ja/migration_from_i18next_to_intlayer.md +313 -0
  439. package/docs/ja/migration_from_next-i18next_to_intlayer.md +338 -0
  440. package/docs/ja/migration_from_next-intl_to_intlayer.md +347 -0
  441. package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  442. package/docs/ja/migration_from_react-i18next_to_intlayer.md +367 -0
  443. package/docs/ja/migration_from_vue-i18n_to_intlayer.md +342 -0
  444. package/docs/ko/bundle_optimization.md +253 -105
  445. package/docs/ko/configuration.md +10 -9
  446. package/docs/ko/intlayer_with_adonisjs.md +1 -1
  447. package/docs/ko/intlayer_with_analog.md +1 -1
  448. package/docs/ko/intlayer_with_angular_19.md +1 -1
  449. package/docs/ko/intlayer_with_angular_21.md +1 -1
  450. package/docs/ko/intlayer_with_astro.md +1 -1
  451. package/docs/ko/intlayer_with_astro_lit.md +1 -1
  452. package/docs/ko/intlayer_with_astro_preact.md +1 -1
  453. package/docs/ko/intlayer_with_astro_react.md +1 -1
  454. package/docs/ko/intlayer_with_astro_solid.md +1 -1
  455. package/docs/ko/intlayer_with_astro_svelte.md +1 -1
  456. package/docs/ko/intlayer_with_astro_vanilla.md +1 -1
  457. package/docs/ko/intlayer_with_astro_vue.md +1 -1
  458. package/docs/ko/intlayer_with_create_react_app.md +1 -1
  459. package/docs/ko/intlayer_with_express.md +1 -1
  460. package/docs/ko/intlayer_with_fastify.md +1 -1
  461. package/docs/ko/intlayer_with_hono.md +1 -1
  462. package/docs/ko/intlayer_with_nestjs.md +1 -1
  463. package/docs/ko/intlayer_with_nextjs_14.md +1 -1
  464. package/docs/ko/intlayer_with_nextjs_15.md +2 -2
  465. package/docs/ko/intlayer_with_nextjs_16.md +1 -1
  466. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +1 -1
  467. package/docs/ko/intlayer_with_nuxt.md +1 -1
  468. package/docs/ko/intlayer_with_react_router_v7.md +1 -1
  469. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +1 -1
  470. package/docs/ko/intlayer_with_tanstack+solid.md +1 -1
  471. package/docs/ko/intlayer_with_tanstack.md +1 -1
  472. package/docs/ko/intlayer_with_vanilla.md +1 -1
  473. package/docs/ko/intlayer_with_vite+lit.md +1 -1
  474. package/docs/ko/intlayer_with_vite+preact.md +1 -1
  475. package/docs/ko/intlayer_with_vite+react.md +1 -1
  476. package/docs/ko/intlayer_with_vite+solid.md +1 -1
  477. package/docs/ko/intlayer_with_vite+svelte.md +1 -1
  478. package/docs/ko/intlayer_with_vite+vanilla.md +1 -1
  479. package/docs/ko/intlayer_with_vite+vue.md +1 -1
  480. package/docs/ko/migration_from_i18next_to_intlayer.md +313 -0
  481. package/docs/ko/migration_from_next-i18next_to_intlayer.md +338 -0
  482. package/docs/ko/migration_from_next-intl_to_intlayer.md +347 -0
  483. package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  484. package/docs/ko/migration_from_react-i18next_to_intlayer.md +367 -0
  485. package/docs/ko/migration_from_vue-i18n_to_intlayer.md +342 -0
  486. package/docs/nl/bundle_optimization.md +249 -101
  487. package/docs/nl/configuration.md +10 -9
  488. package/docs/nl/intlayer_with_angular_21.md +1 -1
  489. package/docs/nl/intlayer_with_fastify.md +1 -1
  490. package/docs/nl/intlayer_with_hono.md +1 -1
  491. package/docs/nl/intlayer_with_vanilla.md +1 -1
  492. package/docs/nl/intlayer_with_vite+lit.md +1 -1
  493. package/docs/nl/intlayer_with_vite+vanilla.md +1 -1
  494. package/docs/pl/bundle_optimization.md +258 -111
  495. package/docs/pl/configuration.md +10 -9
  496. package/docs/pl/intlayer_with_adonisjs.md +1 -1
  497. package/docs/pl/intlayer_with_analog.md +1 -1
  498. package/docs/pl/intlayer_with_angular_19.md +1 -1
  499. package/docs/pl/intlayer_with_angular_21.md +1 -1
  500. package/docs/pl/intlayer_with_astro.md +1 -1
  501. package/docs/pl/intlayer_with_astro_lit.md +1 -1
  502. package/docs/pl/intlayer_with_astro_preact.md +1 -1
  503. package/docs/pl/intlayer_with_astro_react.md +1 -1
  504. package/docs/pl/intlayer_with_astro_solid.md +1 -1
  505. package/docs/pl/intlayer_with_astro_svelte.md +1 -1
  506. package/docs/pl/intlayer_with_astro_vanilla.md +1 -1
  507. package/docs/pl/intlayer_with_astro_vue.md +1 -1
  508. package/docs/pl/intlayer_with_create_react_app.md +1 -1
  509. package/docs/pl/intlayer_with_express.md +1 -1
  510. package/docs/pl/intlayer_with_fastify.md +1 -1
  511. package/docs/pl/intlayer_with_hono.md +1 -1
  512. package/docs/pl/intlayer_with_nestjs.md +1 -1
  513. package/docs/pl/intlayer_with_nextjs_14.md +1 -1
  514. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  515. package/docs/pl/intlayer_with_nextjs_16.md +1 -1
  516. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +1 -1
  517. package/docs/pl/intlayer_with_nuxt.md +1 -1
  518. package/docs/pl/intlayer_with_react_router_v7.md +1 -1
  519. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +1 -1
  520. package/docs/pl/intlayer_with_tanstack+solid.md +1 -1
  521. package/docs/pl/intlayer_with_tanstack.md +1 -1
  522. package/docs/pl/intlayer_with_vanilla.md +1 -1
  523. package/docs/pl/intlayer_with_vite+lit.md +1 -1
  524. package/docs/pl/intlayer_with_vite+preact.md +1 -1
  525. package/docs/pl/intlayer_with_vite+react.md +1 -1
  526. package/docs/pl/intlayer_with_vite+solid.md +1 -1
  527. package/docs/pl/intlayer_with_vite+svelte.md +1 -1
  528. package/docs/pl/intlayer_with_vite+vanilla.md +1 -1
  529. package/docs/pl/intlayer_with_vite+vue.md +1 -1
  530. package/docs/pt/bundle_optimization.md +256 -115
  531. package/docs/pt/configuration.md +10 -9
  532. package/docs/pt/intlayer_with_adonisjs.md +1 -1
  533. package/docs/pt/intlayer_with_analog.md +1 -1
  534. package/docs/pt/intlayer_with_angular_19.md +1 -1
  535. package/docs/pt/intlayer_with_angular_21.md +1 -1
  536. package/docs/pt/intlayer_with_astro.md +1 -1
  537. package/docs/pt/intlayer_with_astro_lit.md +1 -1
  538. package/docs/pt/intlayer_with_astro_preact.md +1 -1
  539. package/docs/pt/intlayer_with_astro_react.md +1 -1
  540. package/docs/pt/intlayer_with_astro_solid.md +1 -1
  541. package/docs/pt/intlayer_with_astro_svelte.md +1 -1
  542. package/docs/pt/intlayer_with_astro_vanilla.md +1 -1
  543. package/docs/pt/intlayer_with_astro_vue.md +1 -1
  544. package/docs/pt/intlayer_with_create_react_app.md +1 -1
  545. package/docs/pt/intlayer_with_express.md +1 -1
  546. package/docs/pt/intlayer_with_fastify.md +1 -1
  547. package/docs/pt/intlayer_with_hono.md +1 -1
  548. package/docs/pt/intlayer_with_nestjs.md +1 -1
  549. package/docs/pt/intlayer_with_nextjs_14.md +1 -1
  550. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  551. package/docs/pt/intlayer_with_nextjs_16.md +1 -1
  552. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1 -1
  553. package/docs/pt/intlayer_with_nuxt.md +1 -1
  554. package/docs/pt/intlayer_with_react_router_v7.md +1 -1
  555. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +1 -1
  556. package/docs/pt/intlayer_with_tanstack+solid.md +1 -1
  557. package/docs/pt/intlayer_with_tanstack.md +1 -1
  558. package/docs/pt/intlayer_with_vanilla.md +1 -1
  559. package/docs/pt/intlayer_with_vite+lit.md +1 -1
  560. package/docs/pt/intlayer_with_vite+preact.md +1 -1
  561. package/docs/pt/intlayer_with_vite+react.md +1 -1
  562. package/docs/pt/intlayer_with_vite+solid.md +1 -1
  563. package/docs/pt/intlayer_with_vite+svelte.md +1 -1
  564. package/docs/pt/intlayer_with_vite+vanilla.md +1 -1
  565. package/docs/pt/intlayer_with_vite+vue.md +1 -1
  566. package/docs/pt/migration_from_i18next_to_intlayer.md +313 -0
  567. package/docs/pt/migration_from_next-i18next_to_intlayer.md +338 -0
  568. package/docs/pt/migration_from_next-intl_to_intlayer.md +347 -0
  569. package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  570. package/docs/pt/migration_from_react-i18next_to_intlayer.md +367 -0
  571. package/docs/pt/migration_from_vue-i18n_to_intlayer.md +342 -0
  572. package/docs/ru/bundle_optimization.md +253 -105
  573. package/docs/ru/configuration.md +10 -9
  574. package/docs/ru/intlayer_with_adonisjs.md +1 -1
  575. package/docs/ru/intlayer_with_analog.md +1 -1
  576. package/docs/ru/intlayer_with_angular_19.md +1 -1
  577. package/docs/ru/intlayer_with_angular_21.md +1 -1
  578. package/docs/ru/intlayer_with_astro.md +1 -1
  579. package/docs/ru/intlayer_with_astro_lit.md +1 -1
  580. package/docs/ru/intlayer_with_astro_preact.md +1 -1
  581. package/docs/ru/intlayer_with_astro_react.md +1 -1
  582. package/docs/ru/intlayer_with_astro_solid.md +1 -1
  583. package/docs/ru/intlayer_with_astro_svelte.md +1 -1
  584. package/docs/ru/intlayer_with_astro_vanilla.md +1 -1
  585. package/docs/ru/intlayer_with_astro_vue.md +1 -1
  586. package/docs/ru/intlayer_with_create_react_app.md +1 -1
  587. package/docs/ru/intlayer_with_express.md +1 -1
  588. package/docs/ru/intlayer_with_fastify.md +1 -1
  589. package/docs/ru/intlayer_with_hono.md +1 -1
  590. package/docs/ru/intlayer_with_nestjs.md +1 -1
  591. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  592. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  593. package/docs/ru/intlayer_with_nextjs_16.md +1 -1
  594. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1 -1
  595. package/docs/ru/intlayer_with_nuxt.md +1 -1
  596. package/docs/ru/intlayer_with_react_router_v7.md +1 -1
  597. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +1 -1
  598. package/docs/ru/intlayer_with_tanstack+solid.md +1 -1
  599. package/docs/ru/intlayer_with_tanstack.md +1 -1
  600. package/docs/ru/intlayer_with_vanilla.md +1 -1
  601. package/docs/ru/intlayer_with_vite+lit.md +1 -1
  602. package/docs/ru/intlayer_with_vite+preact.md +1 -1
  603. package/docs/ru/intlayer_with_vite+react.md +1 -1
  604. package/docs/ru/intlayer_with_vite+solid.md +1 -1
  605. package/docs/ru/intlayer_with_vite+svelte.md +1 -1
  606. package/docs/ru/intlayer_with_vite+vanilla.md +1 -1
  607. package/docs/ru/intlayer_with_vite+vue.md +1 -1
  608. package/docs/ru/migration_from_i18next_to_intlayer.md +313 -0
  609. package/docs/ru/migration_from_next-i18next_to_intlayer.md +338 -0
  610. package/docs/ru/migration_from_next-intl_to_intlayer.md +347 -0
  611. package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +311 -0
  612. package/docs/ru/migration_from_react-i18next_to_intlayer.md +367 -0
  613. package/docs/ru/migration_from_vue-i18n_to_intlayer.md +342 -0
  614. package/docs/tr/bundle_optimization.md +255 -107
  615. package/docs/tr/configuration.md +10 -9
  616. package/docs/tr/intlayer_with_adonisjs.md +1 -1
  617. package/docs/tr/intlayer_with_analog.md +1 -1
  618. package/docs/tr/intlayer_with_angular_19.md +1 -1
  619. package/docs/tr/intlayer_with_angular_21.md +1 -1
  620. package/docs/tr/intlayer_with_astro.md +1 -1
  621. package/docs/tr/intlayer_with_astro_lit.md +1 -1
  622. package/docs/tr/intlayer_with_astro_preact.md +1 -1
  623. package/docs/tr/intlayer_with_astro_react.md +1 -1
  624. package/docs/tr/intlayer_with_astro_solid.md +1 -1
  625. package/docs/tr/intlayer_with_astro_svelte.md +1 -1
  626. package/docs/tr/intlayer_with_astro_vanilla.md +1 -1
  627. package/docs/tr/intlayer_with_astro_vue.md +1 -1
  628. package/docs/tr/intlayer_with_create_react_app.md +1 -1
  629. package/docs/tr/intlayer_with_express.md +1 -1
  630. package/docs/tr/intlayer_with_fastify.md +1 -1
  631. package/docs/tr/intlayer_with_hono.md +1 -1
  632. package/docs/tr/intlayer_with_nestjs.md +1 -1
  633. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  634. package/docs/tr/intlayer_with_nextjs_16.md +1 -1
  635. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1 -1
  636. package/docs/tr/intlayer_with_nuxt.md +1 -1
  637. package/docs/tr/intlayer_with_react_router_v7.md +1 -1
  638. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +1 -1
  639. package/docs/tr/intlayer_with_tanstack+solid.md +1 -1
  640. package/docs/tr/intlayer_with_tanstack.md +1 -1
  641. package/docs/tr/intlayer_with_vanilla.md +1 -1
  642. package/docs/tr/intlayer_with_vite+lit.md +1 -1
  643. package/docs/tr/intlayer_with_vite+preact.md +1 -1
  644. package/docs/tr/intlayer_with_vite+react.md +1 -1
  645. package/docs/tr/intlayer_with_vite+solid.md +1 -1
  646. package/docs/tr/intlayer_with_vite+svelte.md +1 -1
  647. package/docs/tr/intlayer_with_vite+vanilla.md +1 -1
  648. package/docs/tr/intlayer_with_vite+vue.md +1 -1
  649. package/docs/tr/migration_from_i18next_to_intlayer.md +314 -0
  650. package/docs/tr/migration_from_next-i18next_to_intlayer.md +339 -0
  651. package/docs/tr/migration_from_next-intl_to_intlayer.md +348 -0
  652. package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +312 -0
  653. package/docs/tr/migration_from_react-i18next_to_intlayer.md +368 -0
  654. package/docs/tr/migration_from_vue-i18n_to_intlayer.md +343 -0
  655. package/docs/uk/bundle_optimization.md +250 -102
  656. package/docs/uk/configuration.md +10 -9
  657. package/docs/uk/intlayer_with_adonisjs.md +1 -1
  658. package/docs/uk/intlayer_with_analog.md +1 -1
  659. package/docs/uk/intlayer_with_angular_19.md +1 -1
  660. package/docs/uk/intlayer_with_angular_21.md +1 -1
  661. package/docs/uk/intlayer_with_astro.md +1 -1
  662. package/docs/uk/intlayer_with_astro_lit.md +1 -1
  663. package/docs/uk/intlayer_with_astro_preact.md +1 -1
  664. package/docs/uk/intlayer_with_astro_react.md +1 -1
  665. package/docs/uk/intlayer_with_astro_solid.md +1 -1
  666. package/docs/uk/intlayer_with_astro_svelte.md +1 -1
  667. package/docs/uk/intlayer_with_astro_vanilla.md +1 -1
  668. package/docs/uk/intlayer_with_astro_vue.md +1 -1
  669. package/docs/uk/intlayer_with_create_react_app.md +1 -1
  670. package/docs/uk/intlayer_with_express.md +1 -1
  671. package/docs/uk/intlayer_with_fastify.md +1 -1
  672. package/docs/uk/intlayer_with_hono.md +1 -1
  673. package/docs/uk/intlayer_with_nestjs.md +1 -1
  674. package/docs/uk/intlayer_with_nextjs_14.md +1 -1
  675. package/docs/uk/intlayer_with_nextjs_15.md +1 -1
  676. package/docs/uk/intlayer_with_nextjs_16.md +1 -1
  677. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +1 -1
  678. package/docs/uk/intlayer_with_nuxt.md +1 -1
  679. package/docs/uk/intlayer_with_react_router_v7.md +1 -1
  680. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +1 -1
  681. package/docs/uk/intlayer_with_tanstack+solid.md +1 -1
  682. package/docs/uk/intlayer_with_tanstack.md +1 -1
  683. package/docs/uk/intlayer_with_vanilla.md +1 -1
  684. package/docs/uk/intlayer_with_vite+lit.md +1 -1
  685. package/docs/uk/intlayer_with_vite+preact.md +1 -1
  686. package/docs/uk/intlayer_with_vite+react.md +1 -1
  687. package/docs/uk/intlayer_with_vite+solid.md +1 -1
  688. package/docs/uk/intlayer_with_vite+svelte.md +1 -1
  689. package/docs/uk/intlayer_with_vite+vanilla.md +1 -1
  690. package/docs/uk/intlayer_with_vite+vue.md +1 -1
  691. package/docs/ur/bundle_optimization.md +257 -109
  692. package/docs/ur/configuration.md +10 -9
  693. package/docs/ur/intlayer_with_angular_21.md +1 -1
  694. package/docs/ur/intlayer_with_fastify.md +1 -1
  695. package/docs/ur/intlayer_with_hono.md +1 -1
  696. package/docs/ur/intlayer_with_vanilla.md +1 -1
  697. package/docs/ur/intlayer_with_vite+lit.md +1 -1
  698. package/docs/ur/intlayer_with_vite+vanilla.md +1 -1
  699. package/docs/vi/bundle_optimization.md +259 -111
  700. package/docs/vi/configuration.md +10 -9
  701. package/docs/vi/intlayer_with_adonisjs.md +1 -1
  702. package/docs/vi/intlayer_with_analog.md +1 -1
  703. package/docs/vi/intlayer_with_angular_19.md +1 -1
  704. package/docs/vi/intlayer_with_angular_21.md +1 -1
  705. package/docs/vi/intlayer_with_astro.md +1 -1
  706. package/docs/vi/intlayer_with_astro_lit.md +1 -1
  707. package/docs/vi/intlayer_with_astro_preact.md +1 -1
  708. package/docs/vi/intlayer_with_astro_react.md +1 -1
  709. package/docs/vi/intlayer_with_astro_solid.md +1 -1
  710. package/docs/vi/intlayer_with_astro_svelte.md +1 -1
  711. package/docs/vi/intlayer_with_astro_vanilla.md +1 -1
  712. package/docs/vi/intlayer_with_astro_vue.md +1 -1
  713. package/docs/vi/intlayer_with_create_react_app.md +1 -1
  714. package/docs/vi/intlayer_with_express.md +1 -1
  715. package/docs/vi/intlayer_with_fastify.md +1 -1
  716. package/docs/vi/intlayer_with_hono.md +1 -1
  717. package/docs/vi/intlayer_with_nestjs.md +1 -1
  718. package/docs/vi/intlayer_with_nextjs_14.md +1 -1
  719. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  720. package/docs/vi/intlayer_with_nextjs_16.md +1 -1
  721. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +1 -1
  722. package/docs/vi/intlayer_with_nuxt.md +1 -1
  723. package/docs/vi/intlayer_with_react_router_v7.md +1 -1
  724. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +1 -1
  725. package/docs/vi/intlayer_with_tanstack+solid.md +1 -1
  726. package/docs/vi/intlayer_with_tanstack.md +1 -1
  727. package/docs/vi/intlayer_with_vanilla.md +1 -1
  728. package/docs/vi/intlayer_with_vite+lit.md +1 -1
  729. package/docs/vi/intlayer_with_vite+preact.md +1 -1
  730. package/docs/vi/intlayer_with_vite+react.md +1 -1
  731. package/docs/vi/intlayer_with_vite+solid.md +1 -1
  732. package/docs/vi/intlayer_with_vite+svelte.md +1 -1
  733. package/docs/vi/intlayer_with_vite+vanilla.md +1 -1
  734. package/docs/vi/intlayer_with_vite+vue.md +1 -1
  735. package/docs/zh/bundle_optimization.md +260 -112
  736. package/docs/zh/configuration.md +10 -9
  737. package/docs/zh/intlayer_with_adonisjs.md +1 -1
  738. package/docs/zh/intlayer_with_analog.md +1 -1
  739. package/docs/zh/intlayer_with_angular_19.md +1 -1
  740. package/docs/zh/intlayer_with_angular_21.md +1 -1
  741. package/docs/zh/intlayer_with_astro.md +1 -1
  742. package/docs/zh/intlayer_with_astro_lit.md +1 -1
  743. package/docs/zh/intlayer_with_astro_preact.md +1 -1
  744. package/docs/zh/intlayer_with_astro_react.md +1 -1
  745. package/docs/zh/intlayer_with_astro_solid.md +1 -1
  746. package/docs/zh/intlayer_with_astro_svelte.md +1 -1
  747. package/docs/zh/intlayer_with_astro_vanilla.md +1 -1
  748. package/docs/zh/intlayer_with_astro_vue.md +1 -1
  749. package/docs/zh/intlayer_with_create_react_app.md +1 -1
  750. package/docs/zh/intlayer_with_express.md +1 -1
  751. package/docs/zh/intlayer_with_fastify.md +1 -1
  752. package/docs/zh/intlayer_with_hono.md +1 -1
  753. package/docs/zh/intlayer_with_nestjs.md +1 -1
  754. package/docs/zh/intlayer_with_nextjs_14.md +1 -1
  755. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  756. package/docs/zh/intlayer_with_nextjs_16.md +1 -1
  757. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1 -1
  758. package/docs/zh/intlayer_with_nuxt.md +1 -1
  759. package/docs/zh/intlayer_with_react_router_v7.md +1 -1
  760. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +1 -1
  761. package/docs/zh/intlayer_with_tanstack+solid.md +1 -1
  762. package/docs/zh/intlayer_with_tanstack.md +1 -1
  763. package/docs/zh/intlayer_with_vanilla.md +1 -1
  764. package/docs/zh/intlayer_with_vite+lit.md +1 -1
  765. package/docs/zh/intlayer_with_vite+preact.md +1 -1
  766. package/docs/zh/intlayer_with_vite+react.md +1 -1
  767. package/docs/zh/intlayer_with_vite+solid.md +1 -1
  768. package/docs/zh/intlayer_with_vite+svelte.md +1 -1
  769. package/docs/zh/intlayer_with_vite+vanilla.md +1 -1
  770. package/docs/zh/intlayer_with_vite+vue.md +1 -1
  771. package/docs/zh-TW/bundle_optimization.md +602 -0
  772. package/docs/zh-TW/intlayer_with_angular_21.md +1 -1
  773. package/package.json +8 -8
  774. package/src/generated/docs.entry.ts +120 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  createdAt: 2025-11-25
3
- updatedAt: 2026-04-08
4
- title: Оптимизация размера бандла i18n и производительности
5
- description: Уменьшите размер бандла вашего приложения, оптимизируя контент интернационализации (i18n). Узнайте, как использовать tree shaking и lazy loading для словарей с помощью Intlayer.
3
+ updatedAt: 2026-06-07
4
+ title: Оптимизация размера сборки (bundle) i18n и производительности
5
+ description: Уменьшите размер сборки вашего приложения за счет оптимизации контента интернационализации (i18n). Узнайте, как использовать tree shaking и ленивую загрузку (lazy loading) для словарей с помощью Intlayer.
6
6
  keywords:
7
- - Оптимизация бандла
7
+ - Оптимизация сборки
8
8
  - Автоматизация контента
9
9
  - Динамический контент
10
10
  - Intlayer
@@ -16,33 +16,36 @@ slugs:
16
16
  - concept
17
17
  - bundle-optimization
18
18
  history:
19
+ - version: 8.12.0
20
+ date: 2026-06-07
21
+ changes: "Добавлены `intlayerPurgeBabelPlugin` и `intlayerMinifyBabelPlugin` для Babel/Webpack; уточнен процесс работы плагинов (pipeline)"
19
22
  - version: 8.7.0
20
23
  date: 2026-04-08
21
- changes: "Добавлены опции `minify` и `purge` в конфигурацию сборки"
24
+ changes: "Добавлены параметры `minify` и `purge` в конфигурацию сборки"
22
25
  ---
23
26
 
24
- # Оптимизация размера бандла i18n и производительности
27
+ # Оптимизация размера сборки i18n и производительности
25
28
 
26
- Одной из наиболее распространенных проблем традиционных i18n-решений, полагающихся на JSON-файлы, является управление размером контента. Если разработчики вручную не разделяют контент на пространства имен (namespaces), пользователи часто скачивают переводы для каждой страницы и, возможно, для каждого языка только для того, чтобы просмотреть одну страницу.
29
+ Одной из самых распространенных проблем при использовании традиционных решений i18n, опирающихся на JSON-файлы, является управление размером контента. Если разработчики не разделяют контент на пространства имен (namespaces) вручную, пользователи часто вынуждены скачивать переводы для каждой страницы и, потенциально, для каждого языка только для того, чтобы просмотреть одну единственную страницу.
27
30
 
28
- Например, приложение с 10 страницами, переведенными на 10 языков, может привести к тому, что пользователь скачает контент 100 страниц, хотя ему нужна только **одна** (текущая страница на текущем языке). Это ведет к напрасной трате трафика и замедлению времени загрузки.
31
+ Например, в приложении с 10 страницами, переведенными на 10 языков, пользователь может загрузить контент сразу для 100 страниц, хотя ему нужна только **одна** (текущая страница на текущем языке). Это приводит к напрасной трате пропускной способности и замедлению времени загрузки.
29
32
 
30
- **Intlayer решает эту проблему с помощью оптимизации на этапе сборки.** Он анализирует ваш код, чтобы определить, какие словари действительно используются в каждом компоненте, и внедряет только необходимый контент в ваш бандл.
33
+ **Intlayer решает эту проблему посредством оптимизации во время сборки (build-time optimization).** Он анализирует ваш код, чтобы обнаружить, какие именно словари фактически используются в каждом компоненте, и встраивает в вашу сборку только необходимый контент.
31
34
 
32
- ## Содержание
35
+ ## Оглавление
33
36
 
34
37
  <TOC />
35
38
 
36
- ## Сканирование бандла
39
+ ## Анализ вашей сборки
37
40
 
38
- Анализ бандла - это первый шаг к выявлению "тяжелых" JSON-файлов и возможностей разделения кода. Эти инструменты генерируют визуальную древовидную карту (treemap) скомпилированного кода вашего приложения, позволяя вам точно увидеть, какие библиотеки занимают больше всего места.
41
+ Анализ вашей сборки (бандла) это первый шаг к выявлению «тяжелых» JSON-файлов и возможностей для разделения кода (code-splitting). Специализированные инструменты генерируют визуальное дерево (treemap) скомпилированного кода вашего приложения, что позволяет точно увидеть, какие библиотеки потребляют больше всего места.
39
42
 
40
43
  <Tabs>
41
44
  <Tab value="vite">
42
45
 
43
46
  ### Vite / Rollup
44
47
 
45
- Vite использует Rollup под капотом. Плагин `rollup-plugin-visualizer` генерирует интерактивный HTML-файл, показывающий размер каждого модуля в вашем графе.
48
+ Vite использует Rollup «под капотом». Плагин `rollup-plugin-visualizer` генерирует интерактивный HTML-файл, отображающий размер каждого модуля в вашем графе.
46
49
 
47
50
  ```bash
48
51
  npm install -D rollup-plugin-visualizer
@@ -55,7 +58,7 @@ import { visualizer } from "rollup-plugin-visualizer";
55
58
  export default defineConfig({
56
59
  plugins: [
57
60
  visualizer({
58
- open: true, // Автоматически открыть отчет в браузере
61
+ open: true, // Автоматически открывать отчет в браузере
59
62
  filename: "stats.html",
60
63
  gzipSize: true,
61
64
  brotliSize: true,
@@ -69,7 +72,7 @@ export default defineConfig({
69
72
 
70
73
  ### Next.js (Turbopack)
71
74
 
72
- Для проектов, использующих App Router и Turbopack, Next.js предоставляет встроенный экспериментальный анализатор, не требующий дополнительных зависимостей.
75
+ Для проектов, использующих App Router и Turbopack, Next.js предоставляет встроенный экспериментальный анализатор, который не требует установки дополнительных зависимостей.
73
76
 
74
77
  ```bash packageManager='npm'
75
78
  npx next experimental-analyze
@@ -92,7 +95,7 @@ bun next experimental-analyze
92
95
 
93
96
  ### Next.js (Webpack)
94
97
 
95
- Если вы используете стандартный сборщик Webpack в Next.js, используйте официальный анализатор бандлов. Запустите его, установив переменную окружения во время сборки (build time).
98
+ Если вы используете стандартный сборщик Webpack в Next.js, воспользуйтесь официальным анализатором сборки. Его можно запустить, установив переменную окружения во время сборки.
96
99
 
97
100
  ```bash packageManager='npm'
98
101
  npm install -D @next/bundle-analyzer
@@ -116,7 +119,7 @@ const withBundleAnalyzer = require("@next/bundle-analyzer")({
116
119
  });
117
120
 
118
121
  module.exports = withBundleAnalyzer({
119
- // Ваша конфигурация Next.js
122
+ // Ваш конфиг Next.js
120
123
  });
121
124
  ```
122
125
 
@@ -131,7 +134,7 @@ ANALYZE=true npm run build
131
134
 
132
135
  ### Стандартный Webpack
133
136
 
134
- Для Create React App (ejected), Angular или кастомных настроек Webpack используйте отраслевой стандарт `webpack-bundle-analyzer`.
137
+ Для Create React App (ejected), Angular или пользовательских конфигураций Webpack используйте стандартный плагин `webpack-bundle-analyzer`.
135
138
 
136
139
  ```bash packageManager='npm'
137
140
  npm install -D webpack-bundle-analyzer
@@ -168,16 +171,53 @@ export default {
168
171
 
169
172
  ## Как это работает
170
173
 
171
- Intlayer использует **подход на уровне компонентов**. В отличие от глобальных JSON-файлов, ваш контент определяется рядом с вашими компонентами или внутри них. В процессе сборки Intlayer:
174
+ Intlayer использует **компонентный подход**. В отличие от глобальных JSON-файлов, ваш контент определяется рядом с вашими компонентами или внутри них. В процессе сборки Intlayer выполняет следующие действия:
172
175
 
173
- 1. **Анализирует** ваш код на наличие вызовов `useIntlayer`.
174
- 2. **Собирает** соответствующий контент словаря.
175
- 3. **Заменяет** вызов `useIntlayer` оптимизированным кодом на основе вашей конфигурации.
176
+ 1. **Анализирует** ваш код, чтобы найти вызовы `useIntlayer`.
177
+ 2. **Создает** соответствующий контент словаря.
178
+ 3. **Заменяет** вызов `useIntlayer` оптимизированным кодом на основе вашей конфигурации.
176
179
 
177
- Это гарантирует, что:
180
+ Это гарантирует следующее:
178
181
 
179
- - Если компонент не импортирован, его контент не включается в бандл (удаление мертвого кода).
180
- - Если компонент загружается лениво (lazy-loading), его контент также загружается лениво.
182
+ - Если компонент не импортируется, его контент не включается в сборку (устранение мертвого кода — Dead Code Elimination).
183
+ - Если компонент загружается лениво (lazy-loaded), его контент также загружается лениво.
184
+
185
+ ## Справочник по плагинам
186
+
187
+ Оптимизация сборки Intlayer разделена на несколько дискретных плагинов, каждый из которых имеет свою единственную ответственность. Понимание того, что делает каждый плагин, предотвращает путаницу при их настройке.
188
+
189
+ ### Плагины Babel (`@intlayer/babel`)
190
+
191
+ Они используются непосредственно в `babel.config.js` для сборок на базе Webpack (Next.js с Babel, CRA, пользовательский Webpack и т.д.).
192
+
193
+ | Плагин | Что делает |
194
+ | :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |
195
+ | `intlayerExtractBabelPlugin` | Сканирует `.content.ts` файлы и записывает скомпилированные словари в `.intlayer/` |
196
+ | `intlayerOptimizeBabelPlugin` | Переписывает `useIntlayer('key')` → `useDictionary(hash)` и внедряет (import) соответствующий словарь |
197
+ | `intlayerPurgeBabelPlugin` | Сканирует все исходные файлы, удаляет **неиспользуемые поля контента** из скомпилированных `.intlayer/**/*.json` файлов словарей |
198
+ | `intlayerMinifyBabelPlugin` | **Переименовывает ключи полей контента** в короткие буквенные алиасы (например, `title` → `a`) как в JSON-файлах, так и в исходном коде |
199
+
200
+ > **Порядок плагинов имеет значение.** В вашем `babel.config.js` плагины purge и minify должны быть указаны **до** плагина optimize. Оптимизация (optimize) заменяет `useIntlayer('key')` непрозрачным вызовом `useDictionary(hash)`, стирая информацию о ключе словаря, которая нужна плагинам purge и minify для определения того, какие поля используются.
201
+
202
+ Каждый плагин Babel имеет соответствующий помощник параметров (options helper), который однократно считывает ваш `intlayer.config.ts` во время загрузки конфигурации и возвращает предварительно разрешенные (resolved) значения:
203
+
204
+ | Помощник параметров | Используется вместе с |
205
+ | :--------------------------- | :---------------------------- |
206
+ | `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
207
+ | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
208
+ | `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
209
+ | `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
210
+
211
+ ### Плагины Vite (`vite-intlayer`)
212
+
213
+ Пользователям Vite **не нужно настраивать их напрямую**. Они автоматически подключаются при вызове `withIntlayer()` в `vite.config.ts`. Флаги `build.purge` и `build.minify` в `intlayer.config.ts` включают соответствующее поведение без какой-либо дополнительной регистрации плагинов.
214
+
215
+ | Внутренний Vite плагин | Эквивалентное поведение |
216
+ | :--------------------- | :----------------------------------------------------------------------------------------------------------- |
217
+ | Usage analyzer | То же самое, что и анализ плагина `intlayerPurgeBabelPlugin` |
218
+ | Dictionary prune | То же самое, что и запись JSON плагином `intlayerPurgeBabelPlugin` |
219
+ | Dictionary minify | То же самое, что и запись JSON плагином `intlayerMinifyBabelPlugin` |
220
+ | Babel transform | То же самое, что и переименование исходного кода `intlayerMinifyBabelPlugin` + `intlayerOptimizeBabelPlugin` |
181
221
 
182
222
  ## Настройка по платформам
183
223
 
@@ -186,9 +226,9 @@ Intlayer использует **подход на уровне компонен
186
226
 
187
227
  ### Next.js
188
228
 
189
- Для трансформации Next.js требуется плагин `@intlayer/swc`, так как Next.js использует SWC для сборки.
229
+ Next.js требует использования плагина `@intlayer/swc` для оптимизации (перезаписи импортов), так как Next.js использует SWC при сборке.
190
230
 
191
- > Этот плагин не устанавливается по умолчанию, так как плагины SWC для Next.js все еще находятся в стадии эксперимента. Это может измениться в будущем.
231
+ > Этот плагин не устанавливается по умолчанию, поскольку плагины SWC всё еще находятся на стадии эксперимента для Next.js. Это может измениться в будущем.
192
232
 
193
233
  ```bash packageManager="npm"
194
234
  npm install -D @intlayer/swc
@@ -206,21 +246,63 @@ pnpm add -D @intlayer/swc
206
246
  bun add -d @intlayer/swc
207
247
  ```
208
248
 
209
- После установки Intlayer автоматически обнаружит и будет использовать плагин.
249
+ После установки Intlayer автоматически обнаружит и использует этот плагин.
250
+
251
+ Для выполнения **удаления (purge) и минификации (minify)** (удаления полей и их переименования), установите `@intlayer/babel` параллельно с вышеуказанным и добавьте плагины Babel. Поскольку Next.js использует SWC для преобразований, но по-прежнему вычисляет (evaluates) `babel.config.js` для конфигурации плагинов, плагины Babel запускаются в качестве предварительного этапа до SWC.
252
+
253
+ ```bash packageManager="npm"
254
+ npm install -D @intlayer/babel
255
+ ```
256
+
257
+ ```javascript fileName="babel.config.js"
258
+ const {
259
+ intlayerPurgeBabelPlugin,
260
+ intlayerMinifyBabelPlugin,
261
+ getPurgePluginOptions,
262
+ getMinifyPluginOptions,
263
+ } = require("@intlayer/babel");
264
+
265
+ module.exports = {
266
+ presets: ["next/babel"],
267
+ plugins: [
268
+ // Purge: удаляет неиспользуемые поля контента из .intlayer/**/*.json
269
+ [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
270
+ // Minify: переименовывает ключи полей контента в JSON + в исходном коде
271
+ [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
272
+ // Примечание: intlayerOptimizeBabelPlugin ЗДЕСЬ НЕ НУЖЕН, потому что
273
+ // @intlayer/swc самостоятельно обрабатывает переписывание useIntlayer → useDictionary.
274
+ ],
275
+ };
276
+ ```
210
277
 
211
278
  </Tab>
212
279
  <Tab value="vite">
213
280
 
214
281
  ### Vite
215
282
 
216
- Vite использует плагин `@intlayer/babel`, который включен как зависимость `vite-intlayer`. Оптимизация включена по умолчанию. Ничего больше делать не нужно.
283
+ Vite использует плагин `@intlayer/babel`, который включен в качестве зависимости к `vite-intlayer`. Полный цикл оптимизации (pipeline) перезапись импортов, удаление (purge) и минификация (minify) — включен по умолчанию и не требует регистрации дополнительных плагинов.
284
+
285
+ Включите purge и minify, установив соответствующие флаги в `intlayer.config.ts`:
286
+
287
+ ```typescript fileName="intlayer.config.ts"
288
+ import type { IntlayerConfig } from "intlayer";
289
+
290
+ const config: IntlayerConfig = {
291
+ build: {
292
+ purge: true, // удаляет неиспользуемые поля контента из собранных JSON
293
+ minify: true, // переименовывает ключи полей контента в короткие алиасы
294
+ },
295
+ };
296
+
297
+ export default config;
298
+ ```
217
299
 
218
300
  </Tab>
219
301
  <Tab value="webpack">
220
302
 
221
- ### Webpack
303
+ ### Webpack (и Next.js с Babel)
222
304
 
223
- Чтобы включить оптимизацию бандла с помощью Intlayer в Webpack, вам необходимо установить и настроить соответствующий плагин Babel (`@intlayer/babel`) или SWC (`@intlayer/swc`).
305
+ Установите `@intlayer/babel`:
224
306
 
225
307
  ```bash packageManager="npm"
226
308
  npm install -D @intlayer/babel
@@ -238,14 +320,37 @@ pnpm add -D @intlayer/babel
238
320
  bun add -d @intlayer/babel
239
321
  ```
240
322
 
241
- ```typescript fileName="babel.config.js"
323
+ Добавьте все четыре плагина в `babel.config.js` в правильном порядке:
324
+
325
+ ```javascript fileName="babel.config.js"
242
326
  const {
243
- getOptimizePluginOptions,
327
+ intlayerExtractBabelPlugin,
328
+ intlayerPurgeBabelPlugin,
329
+ intlayerMinifyBabelPlugin,
244
330
  intlayerOptimizeBabelPlugin,
331
+ getExtractPluginOptions,
332
+ getPurgePluginOptions,
333
+ getMinifyPluginOptions,
334
+ getOptimizePluginOptions,
245
335
  } = require("@intlayer/babel");
246
336
 
247
337
  module.exports = {
248
- plugins: [[intlayerOptimizeBabelPlugin, getOptimizePluginOptions()]],
338
+ plugins: [
339
+ // Extract: компилирует файлы .content.ts → .intlayer/**/*.json
340
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
341
+
342
+ // Purge: удаляет неиспользуемые поля из .intlayer/**/*.json
343
+ // (считывает флаг build.purge из intlayer.config.ts)
344
+ [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
345
+
346
+ // Minify: переименовывает ключи в JSON + исходном коде
347
+ // (считывает флаг build.minify из intlayer.config.ts)
348
+ [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
349
+
350
+ // Optimize: переписывает useIntlayer('key') → useDictionary(hash)
351
+ // Должен быть последним, поскольку удаляет ключ словаря.
352
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
353
+ ],
249
354
  };
250
355
  ```
251
356
 
@@ -254,57 +359,62 @@ module.exports = {
254
359
 
255
360
  ## Конфигурация
256
361
 
257
- Вы можете управлять тем, как Intlayer оптимизирует ваш бандл, с помощью свойства `build` в вашем `intlayer.config.ts`.
362
+ Вы можете управлять тем, как Intlayer оптимизирует вашу сборку, через свойство `build` в вашем `intlayer.config.ts`.
258
363
 
259
364
  ```typescript fileName="intlayer.config.ts"
260
365
  import { Locales, type IntlayerConfig } from "intlayer";
261
366
 
262
367
  const config: IntlayerConfig = {
263
368
  internationalization: {
264
- locales: [Locales.ENGLISH, Locales.FRENCH],
369
+ locales: [Locales.ENGLISH, Locales.RUSSIAN],
265
370
  defaultLocale: Locales.ENGLISH,
266
371
  },
267
372
  dictionary: {
268
373
  importMode: "dynamic",
269
374
  },
270
375
  build: {
271
- /**
272
- * Минифицировать словари для уменьшения размера бандла.
273
- */
274
- minify: true;
275
-
276
- /**
277
- * Удалять неиспользуемые ключи в словарях (purge)
278
- */
279
- purge: true;
280
-
281
- /**
282
- * Указывает, должна ли сборка проверять типы TypeScript
283
- */
284
- checkTypes: false;
376
+ // Заменяет вызовы useIntlayer() на прямые импорты словарей во время сборки.
377
+ // undefined = auto (активно в продакшене), true = всегда, false = никогда.
378
+ optimize: undefined,
379
+
380
+ // Переименовывает ключи полей контента в скомпилированных словарях в короткие
381
+ // буквенные алиасы (например, title → a). Уменьшает размер JSON; требует optimize.
382
+ minify: true,
383
+
384
+ // Удаляет поля контента, к которым никогда не происходит обращение в исходном коде.
385
+ // Требует optimize.
386
+ purge: true,
285
387
  },
286
388
  };
287
389
 
288
390
  export default config;
289
391
  ```
290
392
 
291
- > В подавляющем большинстве случаев рекомендуется оставлять значение по умолчанию для параметра `optimize`.
393
+ > Во многих случаях рекомендуется оставлять значение по умолчанию (`undefined`) для параметра `optimize`.
292
394
 
293
- > Подробности см. в документации по конфигурации: [Конфигурация](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
395
+ > См. справочник конфигурации со всеми опциями: [Конфигурация](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
294
396
 
295
- ### Опции сборки
397
+ ### Параметры сборки (Build Options)
296
398
 
297
- В объекте конфигурации `build` доступны следующие опции:
399
+ | Свойство | Тип | По умолчанию | Описание |
400
+ | :------------- | :--------------------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
401
+ | **`optimize`** | `boolean \| undefined` | `undefined` | Включает фазу перезаписи импортов. `undefined` = активно только для продакшен-сборок. `false` также отключает purge и minify. |
402
+ | **`minify`** | `boolean` | `false` | Переименовывает ключи полей контента в скомпилированных JSON-файлах в короткие буквенные алиасы. Также перезаписывает соответствующие обращения в исходном коде. Не работает при `optimize: false`. |
403
+ | **`purge`** | `boolean` | `false` | Удаляет поля контента из скомпилированных JSON-файлов, к которым не происходит статического обращения в коде. Не работает при `optimize: false`. |
298
404
 
299
- | Свойство | Тип | По умолчанию | Описание |
300
- | :------------- | :-------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
301
- | **`optimize`** | `boolean` | `undefined` | Управляет включением оптимизации сборки. Если `true`, Intlayer заменяет вызовы словаря оптимизированными вставками. Если `false`, оптимизация отключена. В идеале в продакшене должно быть `true`. |
302
- | **`minify`** | `boolean` | `false` | Минифицировать ли словари для уменьшения размера бандла. |
303
- | **`purge`** | `boolean` | `false` | Удалять ли неиспользуемые ключи в словарях. |
405
+ ### Минификация (Minification) переименование ключей полей
304
406
 
305
- ### Минификация
407
+ Параметр `build.minify` **не** занимается минификацией вашего JavaScript-бандла — с этой задачей должен справляться ваш сборщик. Вместо этого он уменьшает размер JSON-файлов скомпилированных словарей, заменяя каждый заданный пользователем ключ на короткий буквенный алиас:
306
408
 
307
- Минификация словарей удаляет ненужные пробелы, комментарии и уменьшает размер содержимого JSON. Это особенно полезно для больших словарей.
409
+ ```
410
+ // Перед минификацией
411
+ { "title": "Привет", "subtitle": "Мир" }
412
+
413
+ // После минификации
414
+ { "a": "Привет", "b": "Мир" }
415
+ ```
416
+
417
+ Аналогичное переименование применяется ко всем обращениям к свойствам в вашем исходном коде, поэтому `content.title` в скомпилированном выходе превратится в `content.a`. Поведение приложения во время выполнения остается абсолютно идентичным.
308
418
 
309
419
  ```typescript fileName="intlayer.config.ts"
310
420
  import type { IntlayerConfig } from "intlayer";
@@ -318,11 +428,13 @@ const config: IntlayerConfig = {
318
428
  export default config;
319
429
  ```
320
430
 
321
- > Примечание: Минификация игнорируется, если `optimize` отключен или если включен Визуальный редактор (так как редактору требуется полный контент для возможности редактирования).
431
+ > Процесс минификации пропускается, если `optimize` установлен в `false` или когда `editor.enabled` имеет значение `true` (визуальный редактор требует сохранения оригинальных имен полей для возможности редактирования).
432
+
433
+ > Минификация также пропускается для словарей, загружаемых через `importMode: 'fetch'`, поскольку их JSON выдается удаленным API с оригинальными именами полей — изменение ключей на клиентской стороне нарушит контракт сервер/клиент.
322
434
 
323
- ### Очистка (Purging)
435
+ ### Удаление неиспользуемых полей (Purging)
324
436
 
325
- Очистка гарантирует, что в финальный бандл словарей будут включены только те ключи, которые действительно используются в вашем коде. Это может значительно уменьшить размер вашего бандла, если у вас есть большие словари со множеством ключей, которые используются не во всех частях вашего приложения.
437
+ Параметр `build.purge` анализирует, к каким полям контента фактически обращается ваш исходный код, и удаляет все остальные поля из скомпилированных JSON-файлов.
326
438
 
327
439
  ```typescript fileName="intlayer.config.ts"
328
440
  import type { IntlayerConfig } from "intlayer";
@@ -336,34 +448,50 @@ const config: IntlayerConfig = {
336
448
  export default config;
337
449
  ```
338
450
 
339
- > Примечание: Очистка игнорируется, если параметр `optimize` отключен.
451
+ **Пример:** словарь с пятью полями, из которых в коде используются только два:
452
+
453
+ ```
454
+ // До очистки (purge)
455
+ { "title": "…", "subtitle": "…", "cta": "…", "footer": "…", "badge": "…" }
456
+
457
+ // После очистки (в коде используются только title и subtitle)
458
+ { "title": "…", "subtitle": "…" }
459
+ ```
460
+
461
+ > Процесс очистки пропускается, если `optimize` установлен в `false` или когда `editor.enabled` имеет значение `true`.
462
+
463
+ > Очистка также отменяется из соображений надежности, когда исходный файл не удается разобрать (парсинг), или если результат работы `useIntlayer` присваивается переменной и передается способами, которые статический анализатор не может проконтролировать (например, spreading объекта, передача через prop без деструктуризации). В этих случаях сохраняется весь словарь целиком.
340
464
 
341
465
  ### Режим импорта (Import Mode)
342
466
 
343
- Для больших приложений, включающих множество страниц и локалей, ваши JSON-файлы могут составлять значительную часть размера бандла. Intlayer позволяет вам контролировать способ загрузки словарей.
467
+ Для крупных приложений, включающих несколько страниц и локалей, ваш JSON может составлять значительную часть размера вашей сборки (bundle). Intlayer позволяет вам контролировать способ загрузки словарей с помощью опции `importMode`.
468
+
469
+ ### Глобальное определение
344
470
 
345
- Режим импорта может быть определен по умолчанию глобально в вашем файле `intlayer.config.ts`.
471
+ Режим импорта можно определить глобально в вашем файле `intlayer.config.ts`.
346
472
 
347
473
  ```typescript fileName="intlayer.config.ts"
348
474
  import type { IntlayerConfig } from "intlayer";
349
475
 
350
476
  const config: IntlayerConfig = {
351
- build: {
352
- minify: true,
477
+ dictionary: {
478
+ importMode: "dynamic", // Значение по умолчанию — 'static'
353
479
  },
354
480
  };
355
481
 
356
482
  export default config;
357
483
  ```
358
484
 
359
- А также для каждого словаря в ваших файлах `.content.{{ts|tsx|js|jsx|mjs|cjs|json|jsonc|json5}}`.
485
+ ### Определение на уровне словаря
486
+
487
+ Вы можете переопределить режим импорта для отдельных словарей в их файлах `.content.{{ts|tsx|js|jsx|mjs|cjs|json|jsonc|json5|md|mdx|yaml|yml}}`.
360
488
 
361
489
  ```ts
362
490
  import { type Dictionary, t } from "intlayer";
363
491
 
364
492
  const appContent: Dictionary = {
365
493
  key: "app",
366
- importMode: "dynamic", // Переопределить режим импорта по умолчанию
494
+ importMode: "dynamic", // Переопределяем глобальный режим импорта
367
495
  content: {
368
496
  // ...
369
497
  },
@@ -372,83 +500,103 @@ const appContent: Dictionary = {
372
500
  export default appContent;
373
501
  ```
374
502
 
375
- | Свойство | Тип | По умолчанию | Описание |
376
- | :--------------- | :--------------------------------- | :----------- | :---------------------------------------------------------------------------------------------------------------------- |
377
- | **`importMode`** | `'static'`, `'dynamic'`, `'fetch'` | `'static'` | **Устарело**: Используйте `dictionary.importMode` вместо этого. Определяет, как загружаются словари (подробности ниже). |
503
+ | Опция | Тип | По умолчанию | Описание |
504
+ | :--------------- | :--------------------------------- | :----------- | :----------------------------------------------------------------------------------------------------------------------- |
505
+ | **`importMode`** | `'static'`, `'dynamic'`, `'fetch'` | `'static'` | **Устарело**: Используйте `dictionary.importMode`. Определяет, каким образом загружаются словари (подробности см. ниже). |
378
506
 
379
- Настройка `importMode` определяет, как содержимое словаря внедряется в ваш компонент.
380
- Вы можете определить его глобально в файле `intlayer.config.ts` в объекте `dictionary` или переопределить для конкретного словаря в его файле `.content.ts`.
507
+ Настройка `importMode` определяет, как контент словаря будет внедряться в ваш компонент. Эту настройку можно задать глобально в `intlayer.config.ts` (в объекте `dictionary`) или переопределить в файле `.content.ts` для каждого словаря.
381
508
 
382
- ### 1. Статический режим (`default`)
509
+ ### 1. Статический режим (Static Mode - `default`)
383
510
 
384
- В статическом режиме Intlayer заменяет `useIntlayer` на `useDictionary` и внедряет словарь непосредственно в JavaScript бандл.
511
+ В статическом режиме Intlayer заменяет `useIntlayer` на `useDictionary` и внедряет словарь непосредственно в пакет (bundle) JavaScript.
385
512
 
386
- - **Плюсы:** Мгновенный рендеринг (синхронный), отсутствие дополнительных сетевых запросов во время гидратации.
387
- - **Минусы:** Бандл включает переводы для **всех** доступных языков для этого конкретного компонента.
388
- - **Лучше всего для:** Одностраничных приложений (SPA).
513
+ - **Плюсы:** Мгновенный рендеринг (синхронный), ноль дополнительных сетевых запросов во время гидратации (hydration).
514
+ - **Минусы:** Сборка включает переводы для **всех** доступных языков, если они определены для данного компонента.
515
+ - **Подходит для:** Одностраничных приложений (SPA).
389
516
 
390
- **Пример трансформированного кода:**
517
+ **Пример измененного кода:**
391
518
 
392
519
  ```tsx
393
520
  // Ваш код
394
521
  const content = useIntlayer("my-key");
395
522
 
396
- // Оптимизированный код (Статический)
523
+ // Оптимизированный код после преобразования (Static)
524
+ // Это только иллюстрация, реальный код будет другим по соображениям оптимизации
397
525
  const content = useDictionary({
398
526
  key: "my-key",
399
527
  content: {
400
528
  nodeType: "translation",
401
529
  translation: {
402
530
  en: "My title",
403
- fr: "Mon titre",
531
+ ru: "Мой заголовок",
404
532
  },
405
533
  },
406
534
  });
407
535
  ```
408
536
 
409
- ### 2. Динамический режим
537
+ ### 2. Динамический режим (Dynamic Mode)
410
538
 
411
- В динамическом режиме Intlayer заменяет `useIntlayer` на `useDictionaryAsync`. Это использует `import()` (механизм типа Suspense) для ленивой загрузки конкретно JSON для текущей локали.
539
+ В динамическом режиме Intlayer заменяет `useIntlayer` на `useDictionaryAsync`. Он использует `import()` (подобно механизму Suspense), чтобы применять ленивую загрузку конкретно JSON для текущей локали.
412
540
 
413
- - **Плюсы:** **Tree shaking на уровне локали.** Пользователь, просматривающий английскую версию, скачает _только_ английский словарь. Французский словарь никогда не загрузится.
414
- - **Минусы:** Вызывает сетевой запрос (загрузку ассета) для каждого компонента во время гидратации.
415
- - **Лучше всего для:** Больших текстовых блоков, статей или приложений с поддержкой многих языков, где размер бандла критичен.
541
+ - **Плюсы:** **Tree shaking на уровне локали (языка).** Пользователь, просматривающий английскую версию, загрузит _только_ английский словарь. Русский словарь никогда не будет загружен.
542
+ - **Минусы:** Вызывает сетевой запрос (получение ассетов) для каждого компонента во время гидратации.
543
+ - **Подходит для:** Крупных текстовых блоков, статей или приложений с поддержкой большого числа языков, где размер сборки имеет критическое значение.
416
544
 
417
- **Пример трансформированного кода:**
545
+ **Пример измененного кода:**
418
546
 
419
547
  ```tsx
420
548
  // Ваш код
421
549
  const content = useIntlayer("my-key");
422
550
 
423
- // Оптимизированный код (Динамический)
551
+ // Иллюстрация оптимизированного кода (Dynamic)
552
+ // Это только иллюстрация, реальный код будет отличаться
424
553
  const content = useDictionaryAsync({
425
554
  en: () =>
426
555
  import(".intlayer/dynamic_dictionary/my-key/en.json").then(
427
556
  (mod) => mod.default
428
557
  ),
429
- fr: () =>
430
- import(".intlayer/dynamic_dictionary/my-key/fr.json").then(
558
+ ru: () =>
559
+ import(".intlayer/dynamic_dictionary/my-key/ru.json").then(
431
560
  (mod) => mod.default
432
561
  ),
433
562
  });
434
563
  ```
435
564
 
436
- > При использовании `importMode: 'dynamic'`, если у вас на одной странице 100 компонентов используют `useIntlayer`, браузер попытается выполнить 100 отдельных загрузок. Чтобы избежать этого "водопада" запросов, группируйте контент в меньшее количество файлов `.content` (например, один словарь на раздел страницы), а не по одному на каждый мелкий компонент.
565
+ > Если вы используете `importMode: 'dynamic'` и у вас есть 100 компонентов на одной странице, каждый из которых вызывает `useIntlayer`, браузер предпримет 100 отдельных попыток получения файлов. Чтобы избежать этого «водопада» запросов, группируйте контент в меньшем количестве файлов `.content` (например, один словарь на раздел страницы), а не создавайте их по одному на каждый атомарный компонент. Вы также можете использовать несколько файлов `.content` с одним и тем же ключом: Intlayer объединит их в один единый словарь.
437
566
 
438
567
  ### 3. Режим Fetch
439
568
 
440
- Ведет себя аналогично динамическому режиму, но сначала пытается получить словари из API Intlayer Live Sync. Если вызов API завершается неудачей или контент не помечен для живых обновлений, он переключается на динамический импорт.
569
+ Данный режим работает аналогично динамическому режиму, но в первую очередь пытается получить словари из API синхронизации Intlayer Live Sync. Если вызов API не удается или контент не помечен для работы в реальном времени, происходит откат (fallback) к динамическому импорту.
570
+
571
+ **Пример измененного кода:**
572
+
573
+ ```tsx
574
+ // Ваш код
575
+ const content = useIntlayer("my-key");
576
+
577
+ // Иллюстрация оптимизированного кода (Fetch)
578
+ const content = useDictionaryAsync({
579
+ en: () =>
580
+ fetch("https://intlayer.my-domain.com/dictionary/my-key/en").then((res) =>
581
+ res.json()
582
+ ),
583
+ ru: () =>
584
+ fetch("https://intlayer.my-domain.com/dictionary/my-key/ru").then((res) =>
585
+ res.json()
586
+ ),
587
+ });
588
+ ```
441
589
 
442
- > Подробности см. в документации CMS: [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md)
590
+ > Подробнее смотрите в документации к CMS: [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md)
443
591
 
444
- > В режиме fetch нельзя использовать очистку (purge) и минификацию.
592
+ > В режиме fetch ни purge (очистка), ни minify (минификация) не применяются, поскольку исходный JSON отдается удаленным API с оригинальными названиями полей.
445
593
 
446
- ## Резюме: Статический vs Динамический
594
+ ## Итог: Статический vs Динамический
447
595
 
448
- | Функция | Статический режим | Динамический режим |
449
- | :------------------------------- | :----------------------------------------- | :-------------------------------------------------- |
450
- | **Размер JS бандла** | Больше (включает все языки для компонента) | Меньше всего (только код, контента нет) |
451
- | **Начальная загрузка** | Мгновенно (контент уже в бандле) | Небольшая задержка (загрузка JSON) |
452
- | **Сетевые запросы** | 0 дополнительных запросов | 1 запрос на каждый словарь |
453
- | **Tree Shaking** | На уровне компонентов | На уровне компонентов + на уровне локалей |
454
- | **Лучший вариант использования** | UI-компоненты, небольшие приложения | Страницы с большим количеством текста, много языков |
596
+ | Характеристика | Статический режим (Static Mode) | Динамический режим (Dynamic Mode) |
597
+ | :-------------------------- | :----------------------------------------- | :------------------------------------- |
598
+ | **Размер сборки (JS)** | Больше (включает все языки для компонента) | Минимальный (только код, без контента) |
599
+ | **Первоначальная загрузка** | Мгновенная (контент в бандле) | Небольшая задержка (загрузка JSON) |
600
+ | **Сетевые запросы** | 0 дополнительных запросов | 1 запрос на каждый ключ словаря |
601
+ | **Tree Shaking** | На уровне компонентов | На уровне компонентов и локалей |
602
+ | **Лучший сценарий** | UI-компоненты, небольшие приложения | Крупный текст, многоязычность |