@intlayer/docs 7.5.11 → 7.5.13

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 (417) hide show
  1. package/blog/ar/intlayer_with_i18next.md +0 -2
  2. package/blog/ar/intlayer_with_next-i18next.md +0 -2
  3. package/blog/ar/intlayer_with_react-i18next.md +0 -2
  4. package/blog/de/intlayer_with_i18next.md +0 -45
  5. package/blog/de/intlayer_with_next-i18next.md +0 -46
  6. package/blog/de/intlayer_with_react-i18next.md +0 -2
  7. package/blog/en/intlayer_with_i18next.md +0 -46
  8. package/blog/en/intlayer_with_next-i18next.md +0 -48
  9. package/blog/en/intlayer_with_next-intl.md +0 -44
  10. package/blog/en/intlayer_with_react-i18next.md +0 -44
  11. package/blog/en/intlayer_with_react-intl.md +0 -42
  12. package/blog/en/intlayer_with_vue-i18n.md +0 -44
  13. package/blog/en-GB/intlayer_with_i18next.md +0 -45
  14. package/blog/en-GB/intlayer_with_next-i18next.md +0 -47
  15. package/blog/en-GB/intlayer_with_next-intl.md +0 -42
  16. package/blog/en-GB/intlayer_with_react-i18next.md +0 -43
  17. package/blog/en-GB/intlayer_with_react-intl.md +0 -42
  18. package/blog/en-GB/intlayer_with_vue-i18n.md +0 -46
  19. package/blog/es/intlayer_with_i18next.md +0 -45
  20. package/blog/es/intlayer_with_next-i18next.md +0 -47
  21. package/blog/es/intlayer_with_next-intl.md +0 -42
  22. package/blog/es/intlayer_with_react-i18next.md +0 -43
  23. package/blog/es/intlayer_with_react-intl.md +0 -42
  24. package/blog/es/intlayer_with_vue-i18n.md +0 -46
  25. package/blog/fr/intlayer_with_i18next.md +0 -45
  26. package/blog/fr/intlayer_with_next-i18next.md +0 -47
  27. package/blog/fr/intlayer_with_next-intl.md +0 -42
  28. package/blog/fr/intlayer_with_react-i18next.md +0 -43
  29. package/blog/fr/intlayer_with_react-intl.md +0 -42
  30. package/blog/fr/intlayer_with_vue-i18n.md +0 -46
  31. package/blog/hi/intlayer_with_i18next.md +0 -2
  32. package/blog/hi/intlayer_with_next-i18next.md +0 -2
  33. package/blog/hi/intlayer_with_react-i18next.md +0 -2
  34. package/blog/id/intlayer_with_i18next.md +0 -2
  35. package/blog/id/intlayer_with_next-i18next.md +0 -2
  36. package/blog/id/intlayer_with_react-i18next.md +0 -2
  37. package/blog/it/intlayer_with_i18next.md +0 -2
  38. package/blog/it/intlayer_with_next-i18next.md +0 -2
  39. package/blog/it/intlayer_with_react-i18next.md +0 -2
  40. package/blog/ja/intlayer_with_i18next.md +0 -45
  41. package/blog/ja/intlayer_with_next-i18next.md +0 -46
  42. package/blog/ja/intlayer_with_next-intl.md +0 -42
  43. package/blog/ja/intlayer_with_react-i18next.md +0 -42
  44. package/blog/ja/intlayer_with_react-intl.md +0 -42
  45. package/blog/ja/intlayer_with_vue-i18n.md +0 -46
  46. package/blog/ko/intlayer_with_i18next.md +0 -2
  47. package/blog/ko/intlayer_with_next-i18next.md +0 -2
  48. package/blog/ko/intlayer_with_react-i18next.md +0 -1
  49. package/blog/pl/intlayer_with_i18next.md +0 -45
  50. package/blog/pl/intlayer_with_next-i18next.md +0 -46
  51. package/blog/pl/intlayer_with_next-intl.md +0 -42
  52. package/blog/pl/intlayer_with_react-i18next.md +0 -43
  53. package/blog/pl/intlayer_with_react-intl.md +0 -42
  54. package/blog/pl/intlayer_with_vue-i18n.md +0 -46
  55. package/blog/pt/intlayer_with_i18next.md +0 -2
  56. package/blog/pt/intlayer_with_next-i18next.md +0 -2
  57. package/blog/pt/intlayer_with_react-i18next.md +0 -2
  58. package/blog/ru/intlayer_with_i18next.md +0 -45
  59. package/blog/ru/intlayer_with_next-i18next.md +0 -47
  60. package/blog/ru/intlayer_with_next-intl.md +0 -42
  61. package/blog/ru/intlayer_with_react-i18next.md +0 -43
  62. package/blog/ru/intlayer_with_react-intl.md +0 -42
  63. package/blog/ru/intlayer_with_vue-i18n.md +0 -46
  64. package/blog/tr/intlayer_with_i18next.md +0 -2
  65. package/blog/tr/intlayer_with_next-i18next.md +0 -1
  66. package/blog/tr/intlayer_with_react-i18next.md +0 -2
  67. package/blog/uk/compiler_vs_declarative_i18n.md +224 -0
  68. package/blog/uk/i18n_using_next-i18next.md +1086 -0
  69. package/blog/uk/i18n_using_next-intl.md +760 -0
  70. package/blog/uk/index.md +69 -0
  71. package/blog/uk/internationalization_and_SEO.md +273 -0
  72. package/blog/uk/intlayer_with_i18next.md +211 -0
  73. package/blog/uk/intlayer_with_next-i18next.md +202 -0
  74. package/blog/uk/intlayer_with_next-intl.md +203 -0
  75. package/blog/uk/intlayer_with_react-i18next.md +200 -0
  76. package/blog/uk/intlayer_with_react-intl.md +202 -0
  77. package/blog/uk/intlayer_with_vue-i18n.md +206 -0
  78. package/blog/uk/l10n_platform_alternative/Lokalise.md +80 -0
  79. package/blog/uk/l10n_platform_alternative/crowdin.md +80 -0
  80. package/blog/uk/l10n_platform_alternative/phrase.md +78 -0
  81. package/blog/uk/list_i18n_technologies/CMS/drupal.md +143 -0
  82. package/blog/uk/list_i18n_technologies/CMS/wix.md +167 -0
  83. package/blog/uk/list_i18n_technologies/CMS/wordpress.md +189 -0
  84. package/blog/uk/list_i18n_technologies/frameworks/angular.md +125 -0
  85. package/blog/uk/list_i18n_technologies/frameworks/flutter.md +128 -0
  86. package/blog/uk/list_i18n_technologies/frameworks/react-native.md +217 -0
  87. package/blog/uk/list_i18n_technologies/frameworks/react.md +155 -0
  88. package/blog/uk/list_i18n_technologies/frameworks/svelte.md +145 -0
  89. package/blog/uk/list_i18n_technologies/frameworks/vue.md +144 -0
  90. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1499 -0
  91. package/blog/uk/nextjs-multilingual-seo-comparison.md +360 -0
  92. package/blog/uk/rag_powered_documentation_assistant.md +288 -0
  93. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  94. package/blog/uk/vue-i18n_vs_intlayer.md +279 -0
  95. package/blog/uk/what_is_internationalization.md +167 -0
  96. package/blog/vi/intlayer_with_i18next.md +0 -2
  97. package/blog/vi/intlayer_with_next-i18next.md +0 -2
  98. package/blog/vi/intlayer_with_react-i18next.md +0 -2
  99. package/blog/zh/intlayer_with_i18next.md +0 -2
  100. package/blog/zh/intlayer_with_next-i18next.md +0 -2
  101. package/blog/zh/intlayer_with_react-i18next.md +0 -2
  102. package/blog/zh/intlayer_with_vue-i18n.md +0 -46
  103. package/dist/cjs/generated/blog.entry.cjs +58 -29
  104. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  105. package/dist/cjs/generated/docs.entry.cjs +218 -99
  106. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  107. package/dist/cjs/generated/frequentQuestions.entry.cjs +50 -15
  108. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  109. package/dist/cjs/generated/legal.entry.cjs +4 -2
  110. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  111. package/dist/esm/generated/blog.entry.mjs +58 -29
  112. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  113. package/dist/esm/generated/docs.entry.mjs +218 -99
  114. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  115. package/dist/esm/generated/frequentQuestions.entry.mjs +50 -15
  116. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  117. package/dist/esm/generated/legal.entry.mjs +4 -2
  118. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  119. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  120. package/dist/types/generated/docs.entry.d.ts +1 -0
  121. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  122. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
  123. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  124. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  125. package/docs/ar/configuration.md +6 -1
  126. package/docs/ar/dictionary/content_file.md +6 -1
  127. package/docs/ar/intlayer_with_next-i18next.md +0 -1
  128. package/docs/ar/intlayer_with_nextjs_14.md +28 -0
  129. package/docs/ar/intlayer_with_nextjs_15.md +28 -0
  130. package/docs/ar/intlayer_with_nextjs_16.md +28 -0
  131. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1159 -0
  132. package/docs/ar/plugins/sync-json.md +6 -2
  133. package/docs/de/configuration.md +6 -1
  134. package/docs/de/dictionary/content_file.md +6 -1
  135. package/docs/de/intlayer_with_next-i18next.md +0 -1
  136. package/docs/de/intlayer_with_nextjs_14.md +28 -0
  137. package/docs/de/intlayer_with_nextjs_15.md +28 -0
  138. package/docs/de/intlayer_with_nextjs_16.md +28 -0
  139. package/docs/de/intlayer_with_nextjs_no_locale_path.md +1152 -0
  140. package/docs/de/plugins/sync-json.md +6 -2
  141. package/docs/en/configuration.md +6 -1
  142. package/docs/en/dictionary/content_file.md +6 -1
  143. package/docs/en/intlayer_with_next-i18next.md +0 -1
  144. package/docs/en/intlayer_with_nextjs_14.md +28 -0
  145. package/docs/en/intlayer_with_nextjs_15.md +28 -0
  146. package/docs/en/intlayer_with_nextjs_16.md +31 -1
  147. package/docs/en/intlayer_with_nextjs_no_locale_path.md +1132 -0
  148. package/docs/en/plugins/sync-json.md +6 -2
  149. package/docs/en-GB/configuration.md +6 -1
  150. package/docs/en-GB/dictionary/content_file.md +3 -1
  151. package/docs/en-GB/intlayer_with_next-i18next.md +0 -1
  152. package/docs/en-GB/intlayer_with_nextjs_14.md +28 -0
  153. package/docs/en-GB/intlayer_with_nextjs_15.md +28 -0
  154. package/docs/en-GB/intlayer_with_nextjs_16.md +28 -0
  155. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1154 -0
  156. package/docs/en-GB/plugins/sync-json.md +6 -2
  157. package/docs/es/configuration.md +6 -1
  158. package/docs/es/dictionary/content_file.md +6 -1
  159. package/docs/es/intlayer_with_next-i18next.md +0 -1
  160. package/docs/es/intlayer_with_nextjs_14.md +28 -0
  161. package/docs/es/intlayer_with_nextjs_15.md +28 -0
  162. package/docs/es/intlayer_with_nextjs_16.md +28 -0
  163. package/docs/es/intlayer_with_nextjs_no_locale_path.md +1143 -0
  164. package/docs/es/plugins/sync-json.md +6 -2
  165. package/docs/fr/configuration.md +6 -1
  166. package/docs/fr/dictionary/content_file.md +3 -1
  167. package/docs/fr/intlayer_with_next-i18next.md +0 -1
  168. package/docs/fr/intlayer_with_nextjs_14.md +28 -0
  169. package/docs/fr/intlayer_with_nextjs_15.md +28 -0
  170. package/docs/fr/intlayer_with_nextjs_16.md +28 -0
  171. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1174 -0
  172. package/docs/fr/plugins/sync-json.md +9 -5
  173. package/docs/hi/configuration.md +6 -1
  174. package/docs/hi/dictionary/content_file.md +3 -1
  175. package/docs/hi/intlayer_with_next-i18next.md +0 -1
  176. package/docs/hi/intlayer_with_nextjs_14.md +28 -0
  177. package/docs/hi/intlayer_with_nextjs_15.md +28 -0
  178. package/docs/hi/intlayer_with_nextjs_16.md +28 -0
  179. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1151 -0
  180. package/docs/hi/plugins/sync-json.md +6 -2
  181. package/docs/id/configuration.md +6 -1
  182. package/docs/id/dictionary/content_file.md +3 -1
  183. package/docs/id/intlayer_with_next-i18next.md +0 -1
  184. package/docs/id/intlayer_with_nextjs_14.md +28 -0
  185. package/docs/id/intlayer_with_nextjs_15.md +28 -0
  186. package/docs/id/intlayer_with_nextjs_16.md +28 -0
  187. package/docs/id/intlayer_with_nextjs_no_locale_path.md +1154 -0
  188. package/docs/id/plugins/sync-json.md +6 -2
  189. package/docs/it/configuration.md +6 -1
  190. package/docs/it/dictionary/content_file.md +3 -1
  191. package/docs/it/intlayer_with_next-i18next.md +0 -1
  192. package/docs/it/intlayer_with_nextjs_14.md +28 -0
  193. package/docs/it/intlayer_with_nextjs_15.md +28 -0
  194. package/docs/it/intlayer_with_nextjs_16.md +28 -0
  195. package/docs/it/intlayer_with_nextjs_no_locale_path.md +1148 -0
  196. package/docs/it/plugins/sync-json.md +6 -2
  197. package/docs/ja/configuration.md +6 -1
  198. package/docs/ja/dictionary/content_file.md +3 -1
  199. package/docs/ja/intlayer_with_next-i18next.md +0 -1
  200. package/docs/ja/intlayer_with_nextjs_14.md +28 -0
  201. package/docs/ja/intlayer_with_nextjs_15.md +28 -0
  202. package/docs/ja/intlayer_with_nextjs_16.md +28 -0
  203. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1222 -0
  204. package/docs/ja/plugins/sync-json.md +6 -2
  205. package/docs/ko/configuration.md +6 -1
  206. package/docs/ko/dictionary/content_file.md +3 -1
  207. package/docs/ko/intlayer_with_next-i18next.md +0 -1
  208. package/docs/ko/intlayer_with_nextjs_14.md +28 -0
  209. package/docs/ko/intlayer_with_nextjs_15.md +28 -0
  210. package/docs/ko/intlayer_with_nextjs_16.md +28 -0
  211. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +1205 -0
  212. package/docs/ko/plugins/sync-json.md +6 -2
  213. package/docs/pl/configuration.md +3 -1
  214. package/docs/pl/dictionary/content_file.md +3 -1
  215. package/docs/pl/intlayer_with_next-i18next.md +0 -1
  216. package/docs/pl/intlayer_with_nextjs_14.md +28 -0
  217. package/docs/pl/intlayer_with_nextjs_15.md +28 -0
  218. package/docs/pl/intlayer_with_nextjs_16.md +28 -0
  219. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +1149 -0
  220. package/docs/pl/plugins/sync-json.md +6 -2
  221. package/docs/pt/configuration.md +6 -1
  222. package/docs/pt/dictionary/content_file.md +3 -1
  223. package/docs/pt/intlayer_with_next-i18next.md +0 -1
  224. package/docs/pt/intlayer_with_nextjs_14.md +28 -0
  225. package/docs/pt/intlayer_with_nextjs_15.md +28 -0
  226. package/docs/pt/intlayer_with_nextjs_16.md +28 -0
  227. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1152 -0
  228. package/docs/pt/plugins/sync-json.md +6 -2
  229. package/docs/ru/configuration.md +6 -1
  230. package/docs/ru/dictionary/content_file.md +6 -1
  231. package/docs/ru/intlayer_with_next-i18next.md +0 -1
  232. package/docs/ru/intlayer_with_nextjs_14.md +28 -0
  233. package/docs/ru/intlayer_with_nextjs_15.md +28 -0
  234. package/docs/ru/intlayer_with_nextjs_16.md +28 -0
  235. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1204 -0
  236. package/docs/ru/plugins/sync-json.md +6 -2
  237. package/docs/tr/configuration.md +6 -1
  238. package/docs/tr/dictionary/content_file.md +3 -1
  239. package/docs/tr/intlayer_with_next-i18next.md +0 -1
  240. package/docs/tr/intlayer_with_nextjs_14.md +28 -0
  241. package/docs/tr/intlayer_with_nextjs_15.md +28 -0
  242. package/docs/tr/intlayer_with_nextjs_16.md +28 -0
  243. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1159 -0
  244. package/docs/tr/plugins/sync-json.md +6 -2
  245. package/docs/uk/CI_CD.md +198 -0
  246. package/docs/uk/autoFill.md +307 -0
  247. package/docs/uk/bundle_optimization.md +185 -0
  248. package/docs/uk/cli/build.md +64 -0
  249. package/docs/uk/cli/ci.md +137 -0
  250. package/docs/uk/cli/configuration.md +63 -0
  251. package/docs/uk/cli/debug.md +46 -0
  252. package/docs/uk/cli/doc-review.md +43 -0
  253. package/docs/uk/cli/doc-translate.md +132 -0
  254. package/docs/uk/cli/editor.md +28 -0
  255. package/docs/uk/cli/fill.md +130 -0
  256. package/docs/uk/cli/index.md +190 -0
  257. package/docs/uk/cli/init.md +84 -0
  258. package/docs/uk/cli/list.md +90 -0
  259. package/docs/uk/cli/list_projects.md +128 -0
  260. package/docs/uk/cli/live.md +41 -0
  261. package/docs/uk/cli/login.md +157 -0
  262. package/docs/uk/cli/pull.md +78 -0
  263. package/docs/uk/cli/push.md +98 -0
  264. package/docs/uk/cli/sdk.md +71 -0
  265. package/docs/uk/cli/test.md +76 -0
  266. package/docs/uk/cli/transform.md +65 -0
  267. package/docs/uk/cli/version.md +24 -0
  268. package/docs/uk/cli/watch.md +37 -0
  269. package/docs/uk/compiler.md +133 -0
  270. package/docs/uk/component_i18n.md +194 -0
  271. package/docs/uk/configuration.md +742 -0
  272. package/docs/uk/dictionary/condition.md +237 -0
  273. package/docs/uk/dictionary/content_file.md +1134 -0
  274. package/docs/uk/dictionary/enumeration.md +245 -0
  275. package/docs/uk/dictionary/file.md +232 -0
  276. package/docs/uk/dictionary/function_fetching.md +212 -0
  277. package/docs/uk/dictionary/gender.md +273 -0
  278. package/docs/uk/dictionary/insertion.md +187 -0
  279. package/docs/uk/dictionary/markdown.md +383 -0
  280. package/docs/uk/dictionary/nesting.md +273 -0
  281. package/docs/uk/dictionary/translation.md +332 -0
  282. package/docs/uk/formatters.md +595 -0
  283. package/docs/uk/how_works_intlayer.md +256 -0
  284. package/docs/uk/index.md +175 -0
  285. package/docs/uk/interest_of_intlayer.md +297 -0
  286. package/docs/uk/intlayer_CMS.md +569 -0
  287. package/docs/uk/intlayer_visual_editor.md +292 -0
  288. package/docs/uk/intlayer_with_angular.md +710 -0
  289. package/docs/uk/intlayer_with_astro.md +256 -0
  290. package/docs/uk/intlayer_with_create_react_app.md +1258 -0
  291. package/docs/uk/intlayer_with_express.md +429 -0
  292. package/docs/uk/intlayer_with_fastify.md +446 -0
  293. package/docs/uk/intlayer_with_lynx+react.md +548 -0
  294. package/docs/uk/intlayer_with_nestjs.md +283 -0
  295. package/docs/uk/intlayer_with_next-i18next.md +640 -0
  296. package/docs/uk/intlayer_with_next-intl.md +456 -0
  297. package/docs/uk/intlayer_with_nextjs_14.md +1646 -0
  298. package/docs/uk/intlayer_with_nextjs_15.md +1910 -0
  299. package/docs/uk/intlayer_with_nextjs_16.md +1763 -0
  300. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +1159 -0
  301. package/docs/uk/intlayer_with_nextjs_page_router.md +1541 -0
  302. package/docs/uk/intlayer_with_nuxt.md +711 -0
  303. package/docs/uk/intlayer_with_react_native+expo.md +715 -0
  304. package/docs/uk/intlayer_with_react_router_v7.md +600 -0
  305. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +669 -0
  306. package/docs/uk/intlayer_with_svelte_kit.md +579 -0
  307. package/docs/uk/intlayer_with_tanstack.md +818 -0
  308. package/docs/uk/intlayer_with_vite+preact.md +1748 -0
  309. package/docs/uk/intlayer_with_vite+react.md +1449 -0
  310. package/docs/uk/intlayer_with_vite+solid.md +302 -0
  311. package/docs/uk/intlayer_with_vite+svelte.md +520 -0
  312. package/docs/uk/intlayer_with_vite+vue.md +1113 -0
  313. package/docs/uk/introduction.md +222 -0
  314. package/docs/uk/locale_mapper.md +242 -0
  315. package/docs/uk/mcp_server.md +211 -0
  316. package/docs/uk/packages/express-intlayer/t.md +465 -0
  317. package/docs/uk/packages/intlayer/getConfiguration.md +145 -0
  318. package/docs/uk/packages/intlayer/getEnumeration.md +159 -0
  319. package/docs/uk/packages/intlayer/getHTMLTextDir.md +121 -0
  320. package/docs/uk/packages/intlayer/getLocaleLang.md +81 -0
  321. package/docs/uk/packages/intlayer/getLocaleName.md +135 -0
  322. package/docs/uk/packages/intlayer/getLocalizedUrl.md +338 -0
  323. package/docs/uk/packages/intlayer/getMultilingualUrls.md +359 -0
  324. package/docs/uk/packages/intlayer/getPathWithoutLocale.md +75 -0
  325. package/docs/uk/packages/intlayer/getPrefix.md +213 -0
  326. package/docs/uk/packages/intlayer/getTranslation.md +190 -0
  327. package/docs/uk/packages/intlayer/getTranslationContent.md +189 -0
  328. package/docs/uk/packages/next-intlayer/t.md +365 -0
  329. package/docs/uk/packages/next-intlayer/useDictionary.md +276 -0
  330. package/docs/uk/packages/next-intlayer/useIntlayer.md +263 -0
  331. package/docs/uk/packages/next-intlayer/useLocale.md +166 -0
  332. package/docs/uk/packages/react-intlayer/t.md +311 -0
  333. package/docs/uk/packages/react-intlayer/useDictionary.md +295 -0
  334. package/docs/uk/packages/react-intlayer/useI18n.md +250 -0
  335. package/docs/uk/packages/react-intlayer/useIntlayer.md +251 -0
  336. package/docs/uk/packages/react-intlayer/useLocale.md +210 -0
  337. package/docs/uk/per_locale_file.md +345 -0
  338. package/docs/uk/plugins/sync-json.md +398 -0
  339. package/docs/uk/readme.md +265 -0
  340. package/docs/uk/releases/v6.md +305 -0
  341. package/docs/uk/releases/v7.md +624 -0
  342. package/docs/uk/roadmap.md +346 -0
  343. package/docs/uk/testing.md +204 -0
  344. package/docs/uk/vs_code_extension.md +133 -0
  345. package/docs/vi/configuration.md +6 -1
  346. package/docs/vi/dictionary/content_file.md +6 -1
  347. package/docs/vi/intlayer_with_next-i18next.md +0 -1
  348. package/docs/vi/intlayer_with_nextjs_14.md +28 -0
  349. package/docs/vi/intlayer_with_nextjs_15.md +28 -0
  350. package/docs/vi/intlayer_with_nextjs_16.md +28 -0
  351. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +1151 -0
  352. package/docs/vi/plugins/sync-json.md +6 -2
  353. package/docs/zh/configuration.md +6 -1
  354. package/docs/zh/dictionary/content_file.md +6 -1
  355. package/docs/zh/intlayer_with_next-i18next.md +0 -1
  356. package/docs/zh/intlayer_with_nextjs_14.md +28 -0
  357. package/docs/zh/intlayer_with_nextjs_15.md +28 -0
  358. package/docs/zh/intlayer_with_nextjs_16.md +28 -0
  359. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1206 -0
  360. package/docs/zh/plugins/sync-json.md +9 -5
  361. package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -1
  362. package/frequent_questions/ar/error-vite-env-only.md +77 -0
  363. package/frequent_questions/de/SSR_Next_no_[locale].md +1 -1
  364. package/frequent_questions/de/error-vite-env-only.md +77 -0
  365. package/frequent_questions/en/SSR_Next_no_[locale].md +1 -1
  366. package/frequent_questions/en/error-vite-env-only.md +77 -0
  367. package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -1
  368. package/frequent_questions/en-GB/error-vite-env-only.md +77 -0
  369. package/frequent_questions/es/SSR_Next_no_[locale].md +1 -1
  370. package/frequent_questions/es/error-vite-env-only.md +76 -0
  371. package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -1
  372. package/frequent_questions/fr/error-vite-env-only.md +77 -0
  373. package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -1
  374. package/frequent_questions/hi/error-vite-env-only.md +77 -0
  375. package/frequent_questions/id/SSR_Next_no_[locale].md +1 -1
  376. package/frequent_questions/id/error-vite-env-only.md +77 -0
  377. package/frequent_questions/it/SSR_Next_no_[locale].md +1 -1
  378. package/frequent_questions/it/error-vite-env-only.md +77 -0
  379. package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -1
  380. package/frequent_questions/ja/error-vite-env-only.md +77 -0
  381. package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -1
  382. package/frequent_questions/ko/error-vite-env-only.md +77 -0
  383. package/frequent_questions/pl/SSR_Next_no_[locale].md +1 -1
  384. package/frequent_questions/pl/error-vite-env-only.md +77 -0
  385. package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -1
  386. package/frequent_questions/pt/error-vite-env-only.md +77 -0
  387. package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -1
  388. package/frequent_questions/ru/error-vite-env-only.md +77 -0
  389. package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -1
  390. package/frequent_questions/tr/error-vite-env-only.md +77 -0
  391. package/frequent_questions/uk/SSR_Next_no_[locale].md +104 -0
  392. package/frequent_questions/uk/array_as_content_declaration.md +72 -0
  393. package/frequent_questions/uk/build_dictionaries.md +58 -0
  394. package/frequent_questions/uk/build_error_CI_CD.md +74 -0
  395. package/frequent_questions/uk/bun_set_up.md +53 -0
  396. package/frequent_questions/uk/customized_locale_list.md +64 -0
  397. package/frequent_questions/uk/domain_routing.md +113 -0
  398. package/frequent_questions/uk/error-vite-env-only.md +77 -0
  399. package/frequent_questions/uk/esbuild_error.md +29 -0
  400. package/frequent_questions/uk/get_locale_cookie.md +142 -0
  401. package/frequent_questions/uk/intlayer_command_undefined.md +155 -0
  402. package/frequent_questions/uk/locale_incorect_in_url.md +73 -0
  403. package/frequent_questions/uk/package_version_error.md +181 -0
  404. package/frequent_questions/uk/static_rendering.md +44 -0
  405. package/frequent_questions/uk/translated_path_url.md +55 -0
  406. package/frequent_questions/uk/unknown_command.md +97 -0
  407. package/frequent_questions/vi/SSR_Next_no_[locale].md +1 -1
  408. package/frequent_questions/vi/error-vite-env-only.md +77 -0
  409. package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -1
  410. package/frequent_questions/zh/error-vite-env-only.md +77 -0
  411. package/legal/uk/privacy_notice.md +83 -0
  412. package/legal/uk/terms_of_service.md +55 -0
  413. package/package.json +6 -6
  414. package/src/generated/blog.entry.ts +29 -0
  415. package/src/generated/docs.entry.ts +119 -0
  416. package/src/generated/frequentQuestions.entry.ts +35 -0
  417. package/src/generated/legal.entry.ts +2 -0
@@ -108,17 +108,21 @@ syncJSON({
108
108
  source: ({ key, locale }) => string, // 必填
109
109
  location?: string, // 可选标签,默认值:"plugin"
110
110
  priority?: number, // 可选优先级,用于冲突解决,默认值:0
111
- format?: 'intlayer' | 'icu' | 'i18next', // 可选格式化器,默认值:'intlayer'
111
+ format?: 'intlayer' | 'icu' | 'i18next', // 可选格式化器,用于 Intlayer 运行时兼容性
112
112
  });
113
113
  ```
114
114
 
115
115
  #### `format` ('intlayer' | 'icu' | 'i18next')
116
116
 
117
- 指定在同步 JSON 文件时用于字典内容的格式化器。这允许使用与各种 i18n 库兼容的不同消息格式化语法。
117
+ 指定在同步 JSON 文件时用于字典内容的格式化器。这允许使用与 Intlayer 运行时兼容的不同消息格式化语法。
118
118
 
119
- - `'intlayer'`: 默认的 Intlayer 格式化器(默认值)。
120
- - `'icu'`: 使用 ICU 消息格式化(与 react-intl、vue-i18n 等库兼容)。
121
- - `'i18next'`: 使用 i18next 消息格式化(与 i18next、next-i18nextSolid-i18next 兼容)。
119
+ - `undefined`:不使用格式化器,JSON 内容将按原样使用。
120
+ - `'intlayer'`:默认的 Intlayer 格式化器(默认值)。
121
+ - `'icu'`:使用 ICU 消息格式化(与 react-intlvue-i18n 等库兼容)。
122
+ - `'i18next'`:使用 i18next 消息格式化(与 i18next、next-i18next、Solid-i18next 兼容)。
123
+
124
+ > 请注意,使用格式化器会转换您的 JSON 内容的输入和输出。对于复杂的 JSON 规则(如 ICU 复数),解析可能无法确保输入和输出之间的 1 对 1 映射。
125
+ > 如果您不使用 Intlayer 运行时,您可能更倾向于不设置格式化器。
122
126
 
123
127
  **示例:**
124
128
 
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # هل من الممكن استخدام Intlayer مع Next.js بدون `[locale]` في مسار الصفحة؟
@@ -0,0 +1,77 @@
1
+ ---
2
+ createdAt: 2026-01-11
3
+ updatedAt: 2026-01-11
4
+ title: `vite-env-only` و Intlayer – خطأ رفض زائف `node:fs`
5
+ description: لماذا تبلغ vite-env-only عن رفض استيراد `node:fs` عند استخدام Intlayer + React-Router + Vite وماذا تفعل.
6
+ keywords:
7
+ - intlayer
8
+ - vite
9
+ - react-router
10
+ - vite-env-only
11
+ - node:fs
12
+ - رفض الاستيراد
13
+ - alias
14
+ - حزمة العميل
15
+ slugs:
16
+ - frequent-questions
17
+ - vite-env-only-node-fs-false-positive
18
+ ---
19
+
20
+ # vite-env-only يرفض `node:fs` مع Intlayer
21
+
22
+ إذا استخدمت الإضافة **vite-env-only** (كما ذُكر في اقتراحات React-Router v7 الأقدم) ورأيت:
23
+
24
+ ```bash
25
+
26
+ Error: [vite-env-only] Import denied
27
+
28
+ * Denied by specifier pattern: /^node:/
29
+ * Importer: index.html
30
+ * Import: "node:fs"
31
+
32
+ ```
33
+
34
+ …على الرغم من أنه **لا يوجد `node:fs` في حزمة العميل الخاصة بك**، إلا أن هذا هو **إيجابي كاذب**.
35
+
36
+ ## ما الذي يسببه
37
+
38
+ `vite-env-only` يقوم بفحص يعتمد على Babel **في وقت مبكر أثناء حل مخطط الاعتماديات في Vite**، _قبل_:
39
+
40
+ - aliasing (بما في ذلك خرائط Intlayer بين المتصفح وNode),
41
+ - إزالة الشيفرة غير المُستخدمة (dead-code elimination),
42
+ - حل SSR مقابل العميل،
43
+ - الوحدات الافتراضية مثل تلك في React-Router.
44
+
45
+ حزم Intlayer تحتوي على شيفرة يمكن أن تعمل على كل من Node والمتصفح. في مرحلة _وسيطة_، قد يظهر مكوّن مدمج في Node مثل `node:fs` في المخطط **قبل** أن يزيله Vite من بناء العميل. `vite-env-only` يلاحظ ذلك ويُطلق الخطأ فورًا، حتى وإن كانت الحزمة النهائية لا تحتوي عليه.
46
+
47
+ ## React-Router ووحدات الخادم
48
+
49
+ في وثائق React-Router حول **اتفاقيات وحدات الخادم**
50
+ (https://reactrouter.com/api/framework-conventions/server-modules)، يقترح الفريق **بشكل صريح استخدام `vite-env-only`** لمنع استيرادات الخادم فقط من التسرب إلى حزمة العميل.
51
+
52
+ ومع ذلك، تعتمد تلك الاتفاقيات على aliasing الخاص بـ Vite، و conditional exports، و tree-shaking لإزالة كود الخادم فقط. بينما يتم تطبيق aliasing و conditional exports بالفعل، تظل بعض الأدوات المعتمدة على Node موجودة في حزم مثل `@intlayer/core` في تلك المرحلة (حتى وإن لم تُستورد على العميل). وبما أن عملية tree-shaking لم تُنفَّذ بعد، تُحلل تلك الدوال بواسطة Babel، ويكتشف `vite-env-only` استيرادات `node:` ويرفع نتيجة إيجابية كاذبة — على الرغم من أنها تُزال بشكل صحيح من حزمة العميل النهائية.
53
+
54
+ ## كيفية الإصلاح / حلول بديلة
55
+
56
+ ### موصى به: إزالة `vite-env-only`
57
+
58
+ ببساطة احذف الإضافة. في العديد من الحالات لست بحاجة إليها — Vite يتعامل بالفعل مع استيرادات العميل مقابل الخادم عبر آلية الحل الخاصة به.
59
+
60
+ هذا يصلح خطأ رفض `node:fs` الزائف دون أي تغييرات في Intlayer.
61
+
62
+ ### تحقق من البناء النهائي بدلاً من ذلك
63
+
64
+ إذا رغبت مع ذلك بالتأكد من عدم وجود مكونات مدمجة من Node في جانب العميل، فافعل ذلك **بعد عملية البناء**، مثلاً:
65
+
66
+ ```bash
67
+ pnpm build
68
+ grep -R "node:" dist/
69
+ ```
70
+
71
+ إذا لم تُرجع نتائج، فإن حزم العميل نظيفة.
72
+
73
+ ## ملخص
74
+
75
+ - قد يُخطئ `vite-env-only` بشأن `node:fs` لأنه يتحقق مبكرًا جدًا.
76
+ - عادةً ما تزيل Vite + Intlayer + إرشادات وحدات الخادم في React-Router المراجع الخاصة بالخادم بشكل صحيح.
77
+ - إزالة الإضافة أو التحقق من _المخرجات النهائية_ هو عادةً الحل الأفضل.
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # Ist es möglich, Intlayer mit Next.js ohne `[locale]` im Seitenpfad zu verwenden?
@@ -0,0 +1,77 @@
1
+ ---
2
+ createdAt: 2026-01-11
3
+ updatedAt: 2026-01-11
4
+ title: "`vite-env-only` & Intlayer – falsch-positiver `node:fs`-Verweigerungsfehler"
5
+ description: Warum vite-env-only einen verweigerten `node:fs`-Import mit Intlayer + React-Router + Vite meldet und was zu tun ist.
6
+ keywords:
7
+ - intlayer
8
+ - vite
9
+ - react-router
10
+ - vite-env-only
11
+ - node:fs
12
+ - Import verweigert
13
+ - Alias
14
+ - Client-Bundle
15
+ slugs:
16
+ - frequent-questions
17
+ - vite-env-only-node-fs-false-positive
18
+ ---
19
+
20
+ # vite-env-only verweigert `node:fs` mit Intlayer
21
+
22
+ Wenn du das **vite-env-only**-Plugin verwendet hast (wie in älteren Empfehlungen von React-Router v7 erwähnt) und Folgendes siehst:
23
+
24
+ ```bash
25
+
26
+ Error: [vite-env-only] Import denied
27
+
28
+ * Denied by specifier pattern: /^node:/
29
+ * Importer: index.html
30
+ * Import: "node:fs"
31
+
32
+ ```
33
+
34
+ …auch wenn sich **kein `node:fs` in deinem Client-Bundle** befindet, handelt es sich um ein **false positive**.
35
+
36
+ ## Was verursacht es
37
+
38
+ `vite-env-only` führt eine Babel-basierte Prüfung **früh während der Vite-Graphauflösung** durch, _bevor_:
39
+
40
+ - aliasing (einschließlich Intlayer’s browser vs node mappings),
41
+ - Dead-Code-Elimination,
42
+ - SSR- vs. Client-Auflösung,
43
+ - virtuelle Module wie die von React-Router.
44
+
45
+ Intlayer-Pakete enthalten Code, der sowohl in Node als auch im Browser funktionieren kann. In einem _zwischenzeitlichen_ Stadium kann ein Node-Builtin wie `node:fs` im Graph erscheinen, **bevor** Vite es aus dem Client-Build entfernt. `vite-env-only` erkennt das und löst sofort einen Fehler aus, obwohl das finale Bundle es nicht enthält.
46
+
47
+ ## React-Router und Server-Module
48
+
49
+ In der React-Router-Dokumentation zu den **Konventionen für Server-Module**
50
+ (https://reactrouter.com/api/framework-conventions/server-modules), das Team **empfiehlt ausdrücklich die Verwendung von `vite-env-only`**, um zu verhindern, dass serverseitige Importe in das Client-Bundle gelangen.
51
+
52
+ Diese Konventionen beruhen jedoch auf Vites Aliasing, conditional exports und tree-shaking, um serverseitigen Code zu entfernen. Während Aliasing und conditional exports bereits angewendet werden, sind einige Node-basierte Hilfsfunktionen zu diesem Zeitpunkt in Paketen wie `@intlayer/core` noch vorhanden (obwohl sie im Client niemals importiert werden). Da das tree-shaking noch nicht ausgeführt wurde, werden diese Funktionen weiterhin von Babel geparst, und `vite-env-only` erkennt deren `node:`-Importe und meldet einen False Positive — obwohl sie im finalen Client-Bundle korrekt entfernt werden.
53
+
54
+ ## Wie man das behebt / umgeht
55
+
56
+ ### Empfehlung: `vite-env-only` entfernen
57
+
58
+ Entfernen Sie einfach das Plugin. In vielen Fällen ist es nicht nötig — Vite unterscheidet bereits über seine eigene Auflösung zwischen Client- und Server-Imports.
59
+
60
+ Damit wird die fälschliche `node:fs`-Ablehnung behoben, ohne Änderungen an Intlayer.
61
+
62
+ ### Stattdessen den finalen Build prüfen
63
+
64
+ Wenn Sie dennoch sicherstellen möchten, dass keine Node-Built-ins im Client landen, prüfen Sie dies **nach dem Build**, z. B.:
65
+
66
+ ```bash
67
+ pnpm build
68
+ grep -R "node:" dist/
69
+ ```
70
+
71
+ Wenn es keine Ergebnisse gibt, sind Ihre Client-Bundles sauber.
72
+
73
+ ## Zusammenfassung
74
+
75
+ - `vite-env-only` kann bei `node:fs` einen Fehler melden, weil es zu früh prüft.
76
+ - Vite + Intlayer + die Server-Module-Konventionen von React-Router entfernen normalerweise Server-only-Referenzen korrekt.
77
+ - Das Entfernen des Plugins oder die Überprüfung der _finalen Ausgabe_ ist in der Regel die beste Lösung.
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # Is it possible to use Intlayer with Next.js without `[locale]` in the page path?
@@ -0,0 +1,77 @@
1
+ ---
2
+ createdAt: 2026-01-11
3
+ updatedAt: 2026-01-11
4
+ title: `vite-env-only` & Intlayer – false positive `node:fs` denied error
5
+ description: Why vite-env-only reports a denied `node:fs` import with Intlayer + React-Router + Vite and what to do.
6
+ keywords:
7
+ - intlayer
8
+ - vite
9
+ - react-router
10
+ - vite-env-only
11
+ - node:fs
12
+ - import denied
13
+ - alias
14
+ - client bundle
15
+ slugs:
16
+ - frequent-questions
17
+ - vite-env-only-node-fs-false-positive
18
+ ---
19
+
20
+ # vite-env-only denies `node:fs` with Intlayer
21
+
22
+ If you used the **vite-env-only** plugin (as mentioned in older React-Router v7 suggestions) and see:
23
+
24
+ ```bash
25
+
26
+ Error: [vite-env-only] Import denied
27
+
28
+ * Denied by specifier pattern: /^node:/
29
+ * Importer: index.html
30
+ * Import: "node:fs"
31
+
32
+ ```
33
+
34
+ …even though there’s **no `node:fs` in your client bundle**, this is a **false positive**.
35
+
36
+ ## What causes it
37
+
38
+ `vite-env-only` runs a Babel-based check **early in the Vite graph resolution**, _before_:
39
+
40
+ - aliasing (including Intlayer’s browser vs node mappings),
41
+ - dead-code elimination,
42
+ - SSR vs client resolution,
43
+ - virtual modules like React-Router’s.
44
+
45
+ Intlayer packages contain code that can work on both Node and browser. At an _intermediate_ stage, a Node built-in like `node:fs` may appear in the graph **before** Vite removes it from the client build. `vite-env-only` sees that and errors immediately, even though the final bundle doesn’t contain it.
46
+
47
+ ## React-Router and Server Modules
48
+
49
+ In the React-Router documentation about **server module conventions**
50
+ (https://reactrouter.com/api/framework-conventions/server-modules), the team **explicitly suggests using `vite-env-only`** to prevent server-only imports from leaking into the client bundle.
51
+
52
+ However, those conventions rely on Vite’s aliasing, conditional exports, and tree-shaking to remove server-only code. While aliasing and conditional exports are already applied, some Node-based utilities are still present in packages like `@intlayer/core` at that stage (even though they are never imported on the client). Because tree-shaking has not run yet, those functions are still parsed by Babel, and `vite-env-only` detects their `node:` imports and raises a false positive — even though they are correctly purged from the final client bundle.
53
+
54
+ ## How to fix / work around
55
+
56
+ ### Recommended: Drop `vite-env-only`
57
+
58
+ Simply remove the plugin. In many cases you don’t need it — Vite already handles client vs server imports via its own resolution.
59
+
60
+ This fixes the false `node:fs` denial without changes to Intlayer.
61
+
62
+ ### Validate the final build instead
63
+
64
+ If you still want to ensure no Node built-ins in the client, do it **after build**, e.g.:
65
+
66
+ ```bash
67
+ pnpm build
68
+ grep -R "node:" dist/
69
+ ```
70
+
71
+ If no results, your client bundles are clean.
72
+
73
+ ## Summary
74
+
75
+ - `vite-env-only` can error on `node:fs` because it checks too early.
76
+ - Vite + Intlayer + React-Router’s server modules conventions normally remove server-only references correctly.
77
+ - Removing the plugin or verifying the _final output_ is usually the best solution.
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # Is it possible to use Intlayer with Next.js without `[locale]` in the page path?
@@ -0,0 +1,77 @@
1
+ ---
2
+ createdAt: 2026-01-11
3
+ updatedAt: 2026-01-11
4
+ title: `vite-env-only` & Intlayer – false positive `node:fs` denied import error
5
+ description: Why vite-env-only reports a denied `node:fs` import with Intlayer + React-Router + Vite, and what to do about it.
6
+ keywords:
7
+ - intlayer
8
+ - vite
9
+ - react-router
10
+ - vite-env-only
11
+ - node:fs
12
+ - import denied
13
+ - alias
14
+ - client bundle
15
+ slugs:
16
+ - frequent-questions
17
+ - vite-env-only-node-fs-false-positive
18
+ ---
19
+
20
+ # vite-env-only denies `node:fs` with Intlayer
21
+
22
+ If you've used the **vite-env-only** plugin (as suggested in older React-Router v7 guidance) and see:
23
+
24
+ ```bash
25
+
26
+ Error: [vite-env-only] Import denied
27
+
28
+ * Denied by specifier pattern: /^node:/
29
+ * Importer: index.html
30
+ * Import: "node:fs"
31
+
32
+ ```
33
+
34
+ …even though there’s **no `node:fs` in your client bundle**, this is a **false positive**.
35
+
36
+ ## What causes this
37
+
38
+ `vite-env-only` runs a Babel-based check early in the Vite graph resolution, _before_:
39
+
40
+ - aliasing (including Intlayer’s browser vs node mappings),
41
+ - dead-code elimination,
42
+ - SSR vs client resolution,
43
+ - virtual modules like React-Router’s.
44
+
45
+ Intlayer packages contain code that can work on both Node and the browser. At an _intermediate_ stage, a Node built-in like `node:fs` may appear in the graph **before** Vite removes it from the client build. `vite-env-only` sees that and errors immediately, even though the final bundle doesn’t contain it.
46
+
47
+ ## React-Router and Server Modules
48
+
49
+ In the React-Router documentation about **server module conventions**
50
+ (https://reactrouter.com/api/framework-conventions/server-modules), the team **explicitly recommends using `vite-env-only`** to prevent server-only imports from leaking into the client bundle.
51
+
52
+ However, those conventions rely on Vite’s aliasing, conditional exports, and tree-shaking to remove server-only code. While aliasing and conditional exports are already applied, some Node-based utilities are still present in packages like `@intlayer/core` at that stage (even though they are never imported on the client). Because tree-shaking has not run yet, those functions are still parsed by Babel, and `vite-env-only` detects their `node:` imports and flags a false positive — even though they are correctly removed from the final client bundle.
53
+
54
+ ## How to fix / work around
55
+
56
+ ### Recommended: Remove `vite-env-only`
57
+
58
+ Simply remove the plugin. In many cases you don’t need it — Vite already handles client vs server imports via its own resolution.
59
+
60
+ This fixes the false `node:fs` denial without any changes to Intlayer.
61
+
62
+ ### Validate the final build instead
63
+
64
+ If you still want to ensure there are no Node built-ins in the client, do it **after the build**, e.g.:
65
+
66
+ ```bash
67
+ pnpm build
68
+ grep -R "node:" dist/
69
+ ```
70
+
71
+ If there are no results, your client bundles are clean.
72
+
73
+ ## Summary
74
+
75
+ - `vite-env-only` can error on `node:fs` because it checks too early.
76
+ - Vite + Intlayer + React-Router’s server modules conventions normally remove server-only references correctly.
77
+ - Removing the plugin or verifying the _final output_ is usually the best solution.
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # ¿Es posible usar Intlayer con Next.js sin `[locale]` en la ruta de la página?
@@ -0,0 +1,76 @@
1
+ ---
2
+ createdAt: 2026-01-11
3
+ updatedAt: 2026-01-11
4
+ title: `vite-env-only` y Intlayer – error falso positivo `node:fs` import denegado
5
+ description: Por qué vite-env-only informa una importación `node:fs` denegada con Intlayer + React-Router + Vite y qué hacer.
6
+ keywords:
7
+ - intlayer
8
+ - vite
9
+ - react-router
10
+ - vite-env-only
11
+ - node:fs
12
+ - import denied
13
+ - alias
14
+ - client bundle
15
+ slugs:
16
+ - frequent-questions
17
+ - vite-env-only-node-fs-false-positive
18
+ ---
19
+
20
+ # `vite-env-only` deniega `node:fs` con Intlayer
21
+
22
+ Si usaste el plugin **vite-env-only** (como se menciona en sugerencias antiguas de React-Router v7) y ves:
23
+
24
+ ```bash
25
+
26
+ Error: [vite-env-only] Import denied
27
+
28
+ * Denied by specifier pattern: /^node:/
29
+ * Importer: index.html
30
+ * Import: "node:fs"
31
+
32
+ ```
33
+
34
+ …aunque **no haya `node:fs` en tu client bundle**, esto es un **falso positivo**.
35
+
36
+ ## Qué lo causa
37
+
38
+ `vite-env-only` ejecuta una comprobación basada en Babel **temprano en la resolución del grafo de Vite**, _antes de_:
39
+
40
+ - aliasing (incluyendo los mappings browser vs node de Intlayer),
41
+ - dead-code elimination,
42
+ - SSR vs client resolution,
43
+ - módulos virtuales como los de React-Router.
44
+
45
+ Los paquetes de Intlayer contienen código que puede funcionar tanto en Node como en el navegador. En una etapa _intermedia_, una API integrada de Node como `node:fs` puede aparecer en el grafo **antes** de que Vite la elimine del client build. `vite-env-only` detecta eso y lanza un error de inmediato, aunque el bundle final no lo incluya.
46
+
47
+ ## React-Router y convenciones de módulos del servidor
48
+
49
+ (https://reactrouter.com/api/framework-conventions/server-modules), el equipo **sugiere explícitamente usar `vite-env-only`** para evitar que las importaciones exclusivas del servidor se filtren en el bundle del cliente.
50
+
51
+ Sin embargo, esas convenciones dependen del aliasing de Vite, las exportaciones condicionales y el tree-shaking para eliminar el código exclusivo del servidor. Aunque el aliasing y las exportaciones condicionales ya se aplican, algunas utilidades basadas en Node aún están presentes en paquetes como `@intlayer/core` en esa etapa (aunque nunca se importan en el cliente). Como el tree-shaking no se ha ejecutado todavía, esas funciones todavía son parseadas por Babel, y `vite-env-only` detecta sus importaciones `node:` y produce un falso positivo — aunque se purgan correctamente del bundle final del cliente.
52
+
53
+ ## Cómo solucionarlo / soluciones alternativas
54
+
55
+ ### Recomendado: Eliminar `vite-env-only`
56
+
57
+ Simplemente elimina el plugin. En muchos casos no lo necesitas — Vite ya gestiona las importaciones cliente vs servidor mediante su propia resolución.
58
+
59
+ Esto soluciona la denegación falsa de `node:fs` sin cambios en Intlayer.
60
+
61
+ ### Valida la compilación final en su lugar
62
+
63
+ Si aún quieres asegurarte de que no haya módulos integrados de Node en el cliente, hazlo **después del build**, p. ej.:
64
+
65
+ ```bash
66
+ pnpm build
67
+ grep -R "node:" dist/
68
+ ```
69
+
70
+ Si no hay resultados, tus bundles del cliente están limpios.
71
+
72
+ ## Resumen
73
+
74
+ - `vite-env-only` puede arrojar un error sobre `node:fs` porque comprueba demasiado pronto.
75
+ - Vite + Intlayer + las convenciones de server modules de React-Router normalmente eliminan correctamente las referencias exclusivas del servidor.
76
+ - Eliminar el plugin o verificar el _resultado final_ suele ser la mejor solución.
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # Est-il possible d'utiliser Intlayer avec Next.js sans `[locale]` dans le chemin de la page ?
@@ -0,0 +1,77 @@
1
+ ---
2
+ createdAt: 2026-01-11
3
+ updatedAt: 2026-01-11
4
+ title: `vite-env-only` & Intlayer – faux positif : import `node:fs` refusé
5
+ description: Pourquoi vite-env-only signale un import `node:fs` refusé avec Intlayer + React-Router + Vite et que faire.
6
+ keywords:
7
+ - intlayer
8
+ - vite
9
+ - react-router
10
+ - vite-env-only
11
+ - node:fs
12
+ - import refusé
13
+ - alias
14
+ - client bundle
15
+ slugs:
16
+ - frequent-questions
17
+ - vite-env-only-node-fs-false-positive
18
+ ---
19
+
20
+ # vite-env-only refuse `node:fs` avec Intlayer
21
+
22
+ Si vous avez utilisé le plugin **vite-env-only** (comme mentionné dans d'anciennes suggestions pour React-Router v7) et que vous voyez :
23
+
24
+ ```bash
25
+
26
+ Error: [vite-env-only] Import denied
27
+
28
+ * Denied by specifier pattern: /^node:/
29
+ * Importer: index.html
30
+ * Import: "node:fs"
31
+
32
+ ```
33
+
34
+ …même s'il n'y a **aucun `node:fs` dans votre bundle client**, il s'agit d'un **faux positif**.
35
+
36
+ ## Quelle en est la cause
37
+
38
+ `vite-env-only` effectue une vérification basée sur Babel **tôt dans la résolution du graphe Vite**, _avant_ :
39
+
40
+ - les alias (y compris les mappages browser vs node d'Intlayer),
41
+ - l'élimination du code mort,
42
+ - la résolution SSR vs client,
43
+ - les modules virtuels comme ceux de React-Router.
44
+
45
+ Les packages Intlayer contiennent du code pouvant s'exécuter à la fois sur Node et dans le navigateur. À un stade _intermédiaire_, un module natif Node comme `node:fs` peut apparaître dans le graphe **avant** que Vite ne l'élimine du build client. `vite-env-only` le détecte et génère immédiatement une erreur, même si le bundle final ne le contient pas.
46
+
47
+ ## React-Router et les modules serveur
48
+
49
+ Dans la documentation de React-Router au sujet des **conventions des modules serveur**
50
+ (https://reactrouter.com/api/framework-conventions/server-modules), l'équipe **suggère explicitement d'utiliser `vite-env-only`** pour empêcher que des imports réservés au serveur ne fuient dans le bundle client.
51
+
52
+ Cependant, ces conventions s'appuient sur l'aliasing de Vite, les exports conditionnels et le tree-shaking pour éliminer le code réservé au serveur. Alors que l'aliasing et les exports conditionnels sont déjà appliqués, certains utilitaires basés sur Node sont encore présents dans des packages comme `@intlayer/core` à ce stade (même s'ils ne sont jamais importés côté client). Comme le tree-shaking n'a pas encore été exécuté, ces fonctions sont toujours analysées par Babel, et `vite-env-only` détecte leurs imports `node:` et génère un faux positif — alors qu'ils sont correctement purgés du bundle client final.
53
+
54
+ ## Comment corriger / contourner
55
+
56
+ ### Recommandation : Supprimer `vite-env-only`
57
+
58
+ Supprimez simplement le plugin. Dans de nombreux cas, vous n'en avez pas besoin — Vite gère déjà les imports client vs serveur via sa propre résolution.
59
+
60
+ Cela corrige la fausse erreur sur `node:fs` sans modification d'Intlayer.
61
+
62
+ ### Valider la build finale à la place
63
+
64
+ Si vous souhaitez toujours vous assurer qu'aucune API Node intégrée ne se retrouve dans le client, faites-le **après la compilation**, par ex. :
65
+
66
+ ```bash
67
+ pnpm build
68
+ grep -R "node:" dist/
69
+ ```
70
+
71
+ S'il n'y a aucun résultat, vos bundles client sont propres.
72
+
73
+ ## Résumé
74
+
75
+ - `vite-env-only` peut générer une erreur sur `node:fs` car il vérifie trop tôt.
76
+ - Vite + Intlayer + les conventions des server modules de React-Router suppriment normalement correctement les références réservées au serveur.
77
+ - Supprimer le plugin ou vérifier la _sortie finale_ est généralement la meilleure solution.
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # क्या Next.js के साथ पेज पाथ में `[locale]` के बिना Intlayer का उपयोग करना संभव है?
@@ -0,0 +1,77 @@
1
+ ---
2
+ createdAt: 2026-01-11
3
+ updatedAt: 2026-01-11
4
+ title: `vite-env-only` और Intlayer – false positive `node:fs` अस्वीकृत त्रुटि
5
+ description: vite-env-only यह क्यों रिपोर्ट करता है कि Intlayer + React-Router + Vite के साथ `node:fs` आयात अस्वीकृत है और इस स्थिति में क्या करना चाहिए।
6
+ keywords:
7
+ - intlayer
8
+ - vite
9
+ - react-router
10
+ - vite-env-only
11
+ - node:fs
12
+ - आयात अस्वीकृत
13
+ - एलियास
14
+ - क्लाइंट बंडल
15
+ slugs:
16
+ - frequent-questions
17
+ - vite-env-only-node-fs-false-positive
18
+ ---
19
+
20
+ # vite-env-only Intlayer के साथ `node:fs` को अस्वीकार कर देता है
21
+
22
+ यदि आपने **vite-env-only** प्लगइन का उपयोग किया है (जैसा कि पुराने React-Router v7 सुझावों में उल्लेख है) और आप देखते हैं:
23
+
24
+ ```bash
25
+
26
+ Error: [vite-env-only] Import denied
27
+
28
+ * Denied by specifier pattern: /^node:/
29
+ * Importer: index.html
30
+ * Import: "node:fs"
31
+
32
+ ```
33
+
34
+ …हालाँकि आपके क्लाइंट बंडल में **कोई `node:fs` नहीं है**, यह एक **false positive** है।
35
+
36
+ ## कारण
37
+
38
+ `vite-env-only` Vite ग्राफ़ रिज़ॉल्यूशन के आरंभिक चरण में एक Babel-आधारित जाँच चलाता है, _इसके पहले_:
39
+
40
+ - अलायसिंग (Intlayer के browser बनाम node मैपिंग्स सहित),
41
+ - dead-code elimination,
42
+ - SSR बनाम क्लाइंट रिज़ॉल्यूशन,
43
+ - React-Router जैसे वर्चुअल मॉड्यूल।
44
+
45
+ Intlayer पैकेजों में ऐसा कोड होता है जो Node और ब्राउज़र दोनों पर काम कर सकता है। एक _मध्यवर्ती_ चरण में, `node:fs` जैसा Node बिल्ट-इन ग्राफ़ में दिखाई दे सकता है **पहले** कि Vite इसे क्लाइंट बिल्ड से हटा दे। `vite-env-only` यह देखकर तुरंत त्रुटि देता है, हालांकि अंतिम बंडल में यह मौजूद नहीं होता।
46
+
47
+ ## React-Router और सर्वर मॉड्यूल
48
+
49
+ React-Router के दस्तावेज़ में **server module conventions**
50
+ (https://reactrouter.com/api/framework-conventions/server-modules), टीम **स्पष्ट रूप से `vite-env-only` का उपयोग करने का सुझाव देती है** ताकि server-only imports क्लाइंट बंडल में लीक न हों।
51
+
52
+ हालाँकि, ये कन्वेंशन्स Vite की aliasing, conditional exports, और tree-shaking पर निर्भर करते हैं ताकि server-only कोड हटाया जा सके। जबकि aliasing और conditional exports पहले से लागू हैं, कुछ Node-आधारित utilities उस चरण में अभी भी पैकेजेज़ जैसे `@intlayer/core` में मौजूद रहते हैं (हालाँकि वे क्लाइंट पर कभी import नहीं होते)। क्योंकि tree-shaking अभी तक नहीं चला है, वे फ़ंक्शंस अभी भी Babel द्वारा पार्स किए जाते हैं, और `vite-env-only` उनके `node:` imports का पता लगा कर एक false positive उठाता है — भले ही वे अंतिम क्लाइंट बंडल से सही तरीके से हटाए जा चुके हों।
53
+
54
+ ## कैसे ठीक करें / वर्कअराउंड
55
+
56
+ ### अनुशंसित: `vite-env-only` हटाएँ
57
+
58
+ सिर्फ़ प्लगइन को हटा दें। कई मामलों में इसकी आवश्यकता नहीं होती — Vite अपने resolution के माध्यम से क्लाइंट बनाम सर्वर इम्पोर्ट्स को पहले से ही संभालता है।
59
+
60
+ यह Intlayer में किसी बदलाव के बिना `node:fs` पर दिखने वाली false positive को ठीक कर देता है।
61
+
62
+ ### इसके बजाय अंतिम बिल्ड को सत्यापित करें
63
+
64
+ अगर आप फिर भी यह सुनिश्चित करना चाहते हैं कि क्लाइंट में कोई Node built-ins न हो, तो इसे **बिल्ड के बाद** करें, उदाहरण के लिए:
65
+
66
+ ```bash
67
+ pnpm build
68
+ grep -R "node:" dist/
69
+ ```
70
+
71
+ यदि कोई परिणाम नहीं मिलता है, तो आपके क्लाइंट बंडल्स साफ़ हैं।
72
+
73
+ ## सारांश
74
+
75
+ - `vite-env-only` `node:fs` पर त्रुटि दे सकता है क्योंकि यह बहुत जल्दी जाँच करता है।
76
+ - Vite + Intlayer + React-Router के server modules conventions सामान्यतः server-only संदर्भों को सही ढंग से हटा देते हैं।
77
+ - प्लगइन को हटाना या _final output_ की जाँच करना आम तौर पर सबसे अच्छा समाधान होता है।
@@ -16,7 +16,7 @@ keywords:
16
16
  - noPrefix
17
17
  slugs:
18
18
  - frequent-questions
19
- - ssr-next-no-[locale]
19
+ - next-no-locale-path
20
20
  ---
21
21
 
22
22
  # Apakah mungkin menggunakan Intlayer dengan Next.js tanpa `[locale]` di jalur halaman?