@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
@@ -0,0 +1,65 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2025-11-22
4
+ title: Трансформувати компоненти
5
+ description: Дізнайтеся, як трансформувати існуючі компоненти для використання Intlayer.
6
+ keywords:
7
+ - Трансформація
8
+ - Компоненти
9
+ - Міграція
10
+ - CLI
11
+ - Intlayer
12
+ slugs:
13
+ - doc
14
+ - concept
15
+ - cli
16
+ - transform
17
+ ---
18
+
19
+ # Трансформувати компоненти
20
+
21
+ ```bash
22
+ npx intlayer transform
23
+ ```
24
+
25
+ Ця команда аналізує ваші файли коду, щоб допомогти перенести існуючі компоненти на Intlayer. Вона підтримує інтерактивний вибір файлів або вказання конкретних файлів.
26
+
27
+ ## Аліаси:
28
+
29
+ - `npx intlayer trans`
30
+
31
+ ## Параметри:
32
+
33
+ **Опції вибору файлів:**
34
+
35
+ - **`-f, --file [files...]`**: Список конкретних файлів для трансформації. Якщо не вказано, CLI просканує файли, що відповідають шаблону (`**/*.{tsx,jsx,vue,svelte,ts,js}`) і запропонує вам вибрати, які з них трансформувати.
36
+
37
+ > Приклад: `npx intlayer transform -f src/components/MyComponent.tsx`
38
+
39
+ **Параметри виводу:**
40
+
41
+ - **`-o, --output-content-declarations [outputContentDeclarations]`**: Каталог для збереження згенерованих файлів декларацій контенту.
42
+
43
+ > Приклад: `npx intlayer transform -o src/content`
44
+
45
+ - **`--code-only`**: Трансформувати лише код компоненту (не записувати декларацію контенту).
46
+
47
+ > Приклад: `npx intlayer transform --code-only`
48
+
49
+ - **`--declaration-only`**: Лише згенерувати декларацію контенту (не переписувати компонент).
50
+
51
+ > Приклад: `npx intlayer transform --declaration-only`
52
+
53
+ **Параметри конфігурації:**
54
+
55
+ - **`--base-dir`**: Вказати базовий каталог для проєкту.
56
+ - **`--env`**: Вказати середовище.
57
+ - **`--env-file`**: Надати власний файл середовища.
58
+ - **`--verbose`**: Увімкнути детальне логування.
59
+
60
+ **Необхідні плагіни:**
61
+
62
+ Команда transform працює без додаткових плагінів для файлів TypeScript / JSX. Однак для проектів на Vue та Svelte потрібно встановити наступні плагіни:
63
+
64
+ - **`@intlayer/vue-transformer`**: Для файлів Vue.
65
+ - **`@intlayer/svelte-transformer`**: Для файлів Svelte.
@@ -0,0 +1,24 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2025-11-22
4
+ title: Перевірка версії CLI
5
+ description: Дізнайтеся, як перевірити встановлену версію Intlayer CLI.
6
+ keywords:
7
+ - Версія
8
+ - CLI
9
+ - Intlayer
10
+ slugs:
11
+ - doc
12
+ - concept
13
+ - cli
14
+ - version
15
+ ---
16
+
17
+ # Перевірка версії CLI
18
+
19
+ ```bash
20
+ npx intlayer --version
21
+ npx intlayer version
22
+ ```
23
+
24
+ Обидві команди виводять встановлену версію Intlayer CLI.
@@ -0,0 +1,37 @@
1
+ ---
2
+ createdAt: 2024-08-11
3
+ updatedAt: 2025-11-22
4
+ title: Відстеження словників
5
+ description: Дізнайтеся, як відстежувати зміни у ваших файлах декларації контенту та автоматично створювати словники.
6
+ keywords:
7
+ - Відстеження
8
+ - Словники
9
+ - CLI
10
+ - Intlayer
11
+ slugs:
12
+ - doc
13
+ - concept
14
+ - cli
15
+ - watch
16
+ ---
17
+
18
+ # Відстеження словників
19
+
20
+ ```bash
21
+ npx intlayer watch
22
+ ```
23
+
24
+ Ця команда відстежуватиме зміни у ваших файлах декларації контенту та автоматично створюватиме словники в каталозі `.intlayer`.
25
+ Ця команда еквівалентна `npx intlayer build --watch --skip-prepare`.
26
+
27
+ ## Псевдоніми:
28
+
29
+ - `npx intlayer dictionaries watch`
30
+ - `npx intlayer dictionary watch`
31
+ - `npx intlayer dic watch`
32
+
33
+ ## Аргументи:
34
+
35
+ - **`--with`**: Запускає команду паралельно з відстеженням.
36
+
37
+ > Приклад: `npx intlayer watch --with "next dev --turbopack"`
@@ -0,0 +1,133 @@
1
+ ---
2
+ createdAt: 2025-09-09
3
+ updatedAt: 2025-09-09
4
+ title: Intlayer Compiler | Автоматизоване витягування контенту для i18n
5
+ description: Автоматизуйте процес інтернаціоналізації за допомогою Intlayer Compiler. Витягуйте контент безпосередньо з ваших компонентів для швидшого та ефективнішого i18n у Vite, Next.js та інших.
6
+ keywords:
7
+ - Intlayer
8
+ - Compiler
9
+ - Інтернаціоналізація
10
+ - i18n
11
+ - Автоматизація
12
+ - Екстракція
13
+ - Швидкість
14
+ - Vite
15
+ - Next.js
16
+ - React
17
+ - Vue
18
+ - Svelte
19
+ slugs:
20
+ - doc
21
+ - compiler
22
+ history:
23
+ - version: 7.3.1
24
+ date: 2025-11-27
25
+ changes: Випуск компілятора
26
+ ---
27
+
28
+ # Intlayer Compiler | Автоматизоване витягування контенту для i18n
29
+
30
+ ## Що таке Intlayer Compiler?
31
+
32
+ The **Intlayer Compiler** — потужний інструмент, створений для автоматизації процесу інтернаціоналізації (i18n) у ваших додатках. Він сканує ваш вихідний код (JSX, TSX, Vue, Svelte) на наявність декларацій контенту, витягує їх і автоматично генерує необхідні файли словників. Це дозволяє зберігати контент поруч із компонентами, у той час як Intlayer займається керуванням та синхронізацією ваших словників.
33
+
34
+ ## Чому використовувати Intlayer Compiler?
35
+
36
+ - **Automation**: Усуває ручне копіювання та вставляння контенту у словники.
37
+ - **Speed**: Оптимізоване витягування контенту, яке забезпечує швидкість процесу збірки.
38
+ - **Developer Experience**: Тримайте декларації контенту там, де вони використовуються, що покращує підтримуваність.
39
+ - **Live Updates**: Підтримує Hot Module Replacement (HMR) для миттєвого зворотного зв'язку під час розробки.
40
+
41
+ Див. публікацію в блозі [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/compiler_vs_declarative_i18n.md) для детальнішого порівняння.
42
+
43
+ ## Чому не використовувати Intlayer Compiler?
44
+
45
+ Хоча компілятор надає відмінний досвід «just works», він також запроваджує певні компроміси, про які слід знати:
46
+
47
+ - **Heuristic ambiguity**: Компилятор має вгадувати, який контент призначений для користувача, а що — логіка додатка (наприклад, `className="active"`, коди статусу, ідентифікатори продуктів). У складних кодових базах це може призводити до хибних спрацьовувань або пропущених рядків, що вимагатимуть ручних анотацій та винятків.
48
+ - **Static-only extraction**: Екстракція на основі компілятора спирається на статичний аналіз. Рядки, які існують лише під час виконання (коди помилок API, поля CMS тощо), не можуть бути виявлені або перекладені лише компілятором, тому вам усе одно потрібна додаткова стратегія i18n на рівні виконання.
49
+
50
+ Для більш глибокого архітектурного порівняння див. публікацію в блозі [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/uk/compiler_vs_declarative_i18n.md).
51
+
52
+ Як альтернативу, щоб автоматизувати ваш процес i18n і зберегти повний контроль над контентом, Intlayer також надає команду автоматичної екстракції `intlayer transform` (див. [Документація CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/transform.md)), або команду `Intlayer: extract content to Dictionary` з розширення Intlayer для VS Code (див. [Документація розширення VS Code](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/vs_code_extension.md)).
53
+
54
+ ## Використання
55
+
56
+ ### Vite
57
+
58
+ Для додатків на базі Vite (React, Vue, Svelte тощо) найпростіший спосіб використовувати компілятор — через плагін `vite-intlayer`.
59
+
60
+ #### Встановлення
61
+
62
+ ```bash
63
+ npm install vite-intlayer
64
+ ```
65
+
66
+ #### Налаштування
67
+
68
+ Оновіть ваш `vite.config.ts`, щоб включити плагін `intlayerCompiler`:
69
+
70
+ ```ts fileName="vite.config.ts"
71
+ import { defineConfig } from "vite";
72
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
73
+
74
+ export default defineConfig({
75
+ plugins: [
76
+ intlayer(),
77
+ intlayerCompiler(), // Додає плагін компілятора
78
+ ],
79
+ });
80
+ ```
81
+
82
+ #### Підтримка фреймворків
83
+
84
+ Плагін Vite автоматично визначає та обробляє різні типи файлів:
85
+
86
+ - **React / JSX / TSX**: Обробляються нативно.
87
+ - **Vue**: Потребує `@intlayer/vue-compiler`.
88
+ - **Svelte**: Потребує `@intlayer/svelte-compiler`.
89
+
90
+ Переконайтеся, що встановили відповідний пакет компілятора для вашого фреймворку:
91
+
92
+ ```bash
93
+ # Для Vue
94
+ npm install @intlayer/vue-compiler
95
+
96
+ # Для Svelte
97
+ npm install @intlayer/svelte-compiler
98
+ ```
99
+
100
+ ### Next.js (Babel)
101
+
102
+ Для Next.js або інших додатків на базі Webpack, що використовують Babel, ви можете налаштувати компілятор за допомогою плагіна `@intlayer/babel`.
103
+
104
+ #### Встановлення
105
+
106
+ ```bash
107
+ npm install @intlayer/babel
108
+ ```
109
+
110
+ #### Конфігурація
111
+
112
+ Оновіть ваш `babel.config.js` (або `babel.config.json`), щоб додати плагін для екстракції. Ми надаємо хелпер `getExtractPluginOptions`, який автоматично завантажує вашу конфігурацію Intlayer.
113
+
114
+ ```js fileName="babel.config.js"
115
+ const {
116
+ intlayerExtractBabelPlugin,
117
+ intlayerOptimizeBabelPlugin,
118
+ getExtractPluginOptions,
119
+ getOptimizePluginOptions,
120
+ } = require("@intlayer/babel");
121
+
122
+ module.exports = {
123
+ presets: ["next/babel"],
124
+ plugins: [
125
+ // Витягує контент з компонентів у словники
126
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
127
+ // Оптимізує імпорти, замінюючи useIntlayer на прямі імпорти словників
128
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
129
+ ],
130
+ };
131
+ ```
132
+
133
+ Ця конфігурація гарантує, що контент, оголошений у ваших компонентах, автоматично витягується й використовується для генерації словників під час процесу збірки.
@@ -0,0 +1,194 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-09-30
4
+ title: Зробити компонент багатомовним (i18n) у React і Next.js
5
+ description: Дізнайтеся, як оголошувати та отримувати локалізований вміст для створення багатомовного компонента React або Next.js за допомогою Intlayer.
6
+ keywords:
7
+ - i18n
8
+ - component
9
+ - react
10
+ - multilingual
11
+ - next.js
12
+ - intlayer
13
+ slugs:
14
+ - doc
15
+ - component
16
+ - i18n
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
18
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
19
+ ---
20
+
21
+ # Як зробити компонент багатомовним (i18n) за допомогою Intlayer
22
+
23
+ У цьому посібнику показано мінімальні кроки, щоб зробити UI-компонент багатомовним у двох поширених налаштуваннях:
24
+
25
+ - React (Vite/SPA)
26
+ - Next.js (App Router)
27
+
28
+ Спочатку ви оголосите свій вміст, а потім отримаєте його у своєму компоненті.
29
+
30
+ ## 1) Оголосіть свій вміст (спільно для React і Next.js)
31
+
32
+ Створіть файл оголошення вмісту поруч із вашим компонентом. Це тримає переклади близько до місця їх використання і забезпечує type safety.
33
+
34
+ ```ts fileName="component.content.ts"
35
+ import { t, type Dictionary } from "intlayer";
36
+
37
+ const componentContent = {
38
+ key: "component-example",
39
+ content: {
40
+ title: t({
41
+ uk: "Привіт",
42
+ en: "Hello",
43
+ fr: "Bonjour",
44
+ es: "Hola",
45
+ }),
46
+ description: t({
47
+ uk: "Багатомовний React-компонент",
48
+ en: "A multilingual React component",
49
+ fr: "Un composant React multilingue",
50
+ es: "Un componente React multilingüe",
51
+ }),
52
+ },
53
+ } satisfies Dictionary;
54
+
55
+ export default componentContent;
56
+ ```
57
+
58
+ JSON також підтримується, якщо ви віддаєте перевагу конфігураційним файлам.
59
+
60
+ ```json fileName="component.content.json"
61
+ {
62
+ "$schema": "https://intlayer.org/schema.json",
63
+ "key": "component-example",
64
+ "content": {
65
+ "title": {
66
+ "nodeType": "translation",
67
+ "translation": {
68
+ "uk": "Привіт",
69
+ "en": "Hello",
70
+ "fr": "Bonjour",
71
+ "es": "Hola"
72
+ }
73
+ },
74
+ "description": {
75
+ "nodeType": "translation",
76
+ "translation": {
77
+ "uk": "Багатомовний React-компонент",
78
+ "en": "A multilingual React component",
79
+ "fr": "Un composant React multilingue",
80
+ "es": "Un componente React multilingüe"
81
+ }
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ ## 2) Отримайте свій вміст
88
+
89
+ ### Випадок A — React-додаток (Vite/SPA)
90
+
91
+ Стандартний підхід: використовуйте `useIntlayer` для отримання за ключем. Це тримає компоненти компактними та типізованими.
92
+
93
+ ```tsx fileName="ComponentExample.tsx"
94
+ import { useIntlayer } from "react-intlayer";
95
+
96
+ export function ComponentExample() {
97
+ const content = useIntlayer("component-example");
98
+ return (
99
+ <div>
100
+ <h1>{content.title}</h1>
101
+ <p>{content.description}</p>
102
+ </div>
103
+ );
104
+ }
105
+ ```
106
+
107
+ Для server-side рендерингу або за межами провайдера: використовуйте `react-intlayer/server` і передавайте явний параметр `locale`, коли це потрібно.
108
+
109
+ ```tsx fileName="ServerRenderedExample.tsx"
110
+ import { useIntlayer } from "react-intlayer/server";
111
+
112
+ export function ServerRenderedExample({ locale }: { locale: string }) {
113
+ const content = useIntlayer("component-example", locale);
114
+ return (
115
+ <>
116
+ <h1>{content.title}</h1>
117
+ <p>{content.description}</p>
118
+ </>
119
+ );
120
+ }
121
+ ```
122
+
123
+ Альтернатива: `useDictionary` може зчитувати всю оголошену структуру, якщо ви віддаєте перевагу розміщенню структури в місці виклику.
124
+
125
+ ```tsx fileName="ComponentWithDictionary.tsx"
126
+ import { useDictionary } from "react-intlayer";
127
+ import componentContent from "./component.content";
128
+
129
+ export function ComponentWithDictionary() {
130
+ const { title, description } = useDictionary(componentContent);
131
+ return (
132
+ <div>
133
+ <h1>{title}</h1>
134
+ <p>{description}</p>
135
+ </div>
136
+ );
137
+ }
138
+ ```
139
+
140
+ ### Варіант B — Next.js (App Router)
141
+
142
+ Надавайте перевагу server components для безпеки даних та продуктивності. Використовуйте `useIntlayer` з `next-intlayer/server` у серверних файлах, а `useIntlayer` з `next-intlayer` — у client components.
143
+
144
+ ```tsx fileName="app/[locale]/example/ServerComponent.tsx"
145
+ import { useIntlayer } from "next-intlayer/server";
146
+
147
+ export default function ServerComponent() {
148
+ const content = useIntlayer("component-example");
149
+ return (
150
+ <>
151
+ <h1>{content.title}</h1>
152
+ <p>{content.description}</p>
153
+ </>
154
+ );
155
+ }
156
+ ```
157
+
158
+ ```tsx fileName="app/[locale]/example/ClientComponent.tsx"
159
+ "use client";
160
+
161
+ import { useIntlayer } from "next-intlayer";
162
+
163
+ export function ClientComponent() {
164
+ const content = useIntlayer("component-example");
165
+ return (
166
+ <div>
167
+ <h1>{content.title}</h1>
168
+ <p>{content.description}</p>
169
+ </div>
170
+ );
171
+ }
172
+ ```
173
+
174
+ Порада: Для метаданих сторінки та SEO ви також можете отримувати контент за допомогою `getIntlayer` та генерувати багатомовні URL-адреси за допомогою `getMultilingualUrls`.
175
+
176
+ ## Чому компонентний підхід Intlayer найкращий
177
+
178
+ - **Колокація**: декларації контенту знаходяться поруч із компонентами, що зменшує розбіжності та покращує повторне використання в дизайн-системах.
179
+ - **Типобезпека**: ключі та структури строго типізовані; відсутні переклади виявляються під час збірки, а не під час виконання.
180
+ - **Server-first**: Працює нативно в серверних компонентах для кращої безпеки та продуктивності; client hooks залишаються ергономічними.
181
+ - **Tree-shaking**: У бандл потрапляє лише контент, який використовує компонент, що допомагає зменшити розмір payload у великих додатках.
182
+ - **DX & tooling**: Вбудований middleware, SEO-хелпери та необов'язкові Visual Editor/AI-переклади спрощують щодену роботу.
183
+
184
+ Дивіться порівняння та шаблони в огляді, орієнтованому на Next.js: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
185
+
186
+ ## Пов'язані посібники та довідкові матеріали
187
+
188
+ - Налаштування React (Vite): https://intlayer.org/doc/environment/vite-and-react
189
+ - React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
190
+ - TanStack Start: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
191
+ - Налаштування Next.js: https://intlayer.org/doc/environment/nextjs
192
+ - Чому обрати Intlayer замість next-intl та next-i18next - https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
193
+
194
+ Ці сторінки містять end-to-end налаштування, провайдери, маршрутизацію та SEO-хелпери.