@intlayer/docs 5.8.1-canary.0 → 6.0.0-canary.0

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 (378) hide show
  1. package/blog/ar/rag_powered_documentation_assistant.md +282 -0
  2. package/blog/de/rag_powered_documentation_assistant.md +282 -0
  3. package/blog/en/rag_powered_documentation_assistant.md +289 -0
  4. package/blog/en-GB/rag_powered_documentation_assistant.md +284 -0
  5. package/blog/es/rag_powered_documentation_assistant.md +308 -0
  6. package/blog/fr/rag_powered_documentation_assistant.md +308 -0
  7. package/blog/hi/rag_powered_documentation_assistant.md +284 -0
  8. package/blog/it/rag_powered_documentation_assistant.md +284 -0
  9. package/blog/ja/rag_powered_documentation_assistant.md +284 -0
  10. package/blog/ko/rag_powered_documentation_assistant.md +283 -0
  11. package/blog/pt/rag_powered_documentation_assistant.md +284 -0
  12. package/blog/ru/rag_powered_documentation_assistant.md +284 -0
  13. package/blog/tr/index.md +69 -0
  14. package/blog/tr/internationalization_and_SEO.md +273 -0
  15. package/blog/tr/intlayer_with_i18next.md +162 -0
  16. package/blog/tr/intlayer_with_next-i18next.md +367 -0
  17. package/blog/tr/intlayer_with_next-intl.md +392 -0
  18. package/blog/tr/intlayer_with_react-i18next.md +346 -0
  19. package/blog/tr/intlayer_with_react-intl.md +345 -0
  20. package/blog/tr/list_i18n_technologies/CMS/drupal.md +143 -0
  21. package/blog/tr/list_i18n_technologies/CMS/wix.md +167 -0
  22. package/blog/tr/list_i18n_technologies/CMS/wordpress.md +188 -0
  23. package/blog/tr/list_i18n_technologies/frameworks/angular.md +125 -0
  24. package/blog/tr/list_i18n_technologies/frameworks/flutter.md +150 -0
  25. package/blog/tr/list_i18n_technologies/frameworks/react-native.md +217 -0
  26. package/blog/tr/list_i18n_technologies/frameworks/react.md +155 -0
  27. package/blog/tr/list_i18n_technologies/frameworks/svelte.md +129 -0
  28. package/blog/tr/list_i18n_technologies/frameworks/vue.md +130 -0
  29. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +170 -0
  30. package/blog/tr/rag_powered_documentation_assistant.md +284 -0
  31. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +162 -0
  32. package/blog/tr/vue-i18n_vs_intlayer.md +276 -0
  33. package/blog/tr/what_is_internationalization.md +166 -0
  34. package/blog/zh/rag_powered_documentation_assistant.md +284 -0
  35. package/dist/cjs/generated/blog.entry.cjs +212 -0
  36. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  37. package/dist/cjs/generated/docs.entry.cjs +660 -132
  38. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  39. package/dist/cjs/generated/frequentQuestions.entry.cjs +84 -0
  40. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  41. package/dist/cjs/generated/legal.entry.cjs +6 -0
  42. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  43. package/dist/esm/generated/blog.entry.mjs +212 -0
  44. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  45. package/dist/esm/generated/docs.entry.mjs +660 -132
  46. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  47. package/dist/esm/generated/frequentQuestions.entry.mjs +84 -0
  48. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  49. package/dist/esm/generated/legal.entry.mjs +6 -0
  50. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  51. package/dist/types/generated/blog.entry.d.ts +1 -0
  52. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  53. package/dist/types/generated/docs.entry.d.ts +5 -2
  54. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  55. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  56. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  57. package/docs/ar/autoFill.md +41 -40
  58. package/docs/ar/configuration.md +202 -199
  59. package/docs/ar/dictionary/content_file.md +1059 -0
  60. package/docs/ar/intlayer_CMS.md +4 -4
  61. package/docs/ar/intlayer_with_nestjs.md +271 -0
  62. package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
  63. package/docs/ar/intlayer_with_react_router_v7.md +533 -0
  64. package/docs/ar/intlayer_with_tanstack.md +465 -299
  65. package/docs/ar/intlayer_with_vite+preact.md +7 -7
  66. package/docs/ar/intlayer_with_vite+react.md +7 -7
  67. package/docs/ar/intlayer_with_vite+vue.md +9 -9
  68. package/docs/ar/packages/vite-intlayer/index.md +3 -3
  69. package/docs/ar/readme.md +261 -0
  70. package/docs/ar/testing.md +199 -0
  71. package/docs/de/autoFill.md +42 -19
  72. package/docs/de/configuration.md +155 -147
  73. package/docs/de/dictionary/content_file.md +1059 -0
  74. package/docs/de/intlayer_CMS.md +4 -5
  75. package/docs/de/intlayer_with_nestjs.md +270 -0
  76. package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
  77. package/docs/de/intlayer_with_react_router_v7.md +537 -0
  78. package/docs/de/intlayer_with_tanstack.md +469 -302
  79. package/docs/de/intlayer_with_vite+preact.md +7 -7
  80. package/docs/de/intlayer_with_vite+react.md +7 -7
  81. package/docs/de/intlayer_with_vite+vue.md +9 -9
  82. package/docs/de/packages/vite-intlayer/index.md +3 -3
  83. package/docs/de/readme.md +261 -0
  84. package/docs/de/testing.md +200 -0
  85. package/docs/en/CI_CD.md +4 -6
  86. package/docs/en/autoFill.md +25 -5
  87. package/docs/en/configuration.md +45 -54
  88. package/docs/en/dictionary/content_file.md +1054 -0
  89. package/docs/en/intlayer_CMS.md +8 -7
  90. package/docs/en/intlayer_cli.md +112 -5
  91. package/docs/en/intlayer_with_nestjs.md +268 -0
  92. package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
  93. package/docs/en/intlayer_with_react_router_v7.md +531 -0
  94. package/docs/en/intlayer_with_tanstack.md +463 -294
  95. package/docs/en/intlayer_with_vite+preact.md +8 -8
  96. package/docs/en/intlayer_with_vite+react.md +8 -8
  97. package/docs/en/intlayer_with_vite+vue.md +8 -8
  98. package/docs/en/packages/intlayer/getLocalizedUrl.md +102 -25
  99. package/docs/en/packages/vite-intlayer/index.md +3 -3
  100. package/docs/en/readme.md +261 -0
  101. package/docs/en/testing.md +200 -0
  102. package/docs/en-GB/autoFill.md +29 -6
  103. package/docs/en-GB/configuration.md +79 -71
  104. package/docs/en-GB/dictionary/content_file.md +1084 -0
  105. package/docs/en-GB/intlayer_CMS.md +4 -5
  106. package/docs/en-GB/intlayer_with_nestjs.md +268 -0
  107. package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
  108. package/docs/en-GB/intlayer_with_react_router_v7.md +533 -0
  109. package/docs/en-GB/intlayer_with_tanstack.md +466 -299
  110. package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
  111. package/docs/en-GB/intlayer_with_vite+react.md +7 -7
  112. package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
  113. package/docs/en-GB/packages/vite-intlayer/index.md +3 -3
  114. package/docs/en-GB/readme.md +261 -0
  115. package/docs/en-GB/testing.md +200 -0
  116. package/docs/es/autoFill.md +45 -23
  117. package/docs/es/configuration.md +171 -167
  118. package/docs/es/dictionary/content_file.md +1088 -0
  119. package/docs/es/intlayer_CMS.md +4 -5
  120. package/docs/es/intlayer_with_nestjs.md +268 -0
  121. package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
  122. package/docs/es/intlayer_with_react_router_v7.md +533 -0
  123. package/docs/es/intlayer_with_tanstack.md +469 -280
  124. package/docs/es/intlayer_with_vite+preact.md +7 -7
  125. package/docs/es/intlayer_with_vite+react.md +7 -7
  126. package/docs/es/intlayer_with_vite+vue.md +9 -9
  127. package/docs/es/packages/vite-intlayer/index.md +3 -3
  128. package/docs/es/readme.md +261 -0
  129. package/docs/es/testing.md +200 -0
  130. package/docs/fr/autoFill.md +47 -24
  131. package/docs/fr/configuration.md +213 -198
  132. package/docs/fr/dictionary/content_file.md +1054 -0
  133. package/docs/fr/intlayer_CMS.md +4 -5
  134. package/docs/fr/intlayer_with_nestjs.md +268 -0
  135. package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
  136. package/docs/fr/intlayer_with_react_router_v7.md +549 -0
  137. package/docs/fr/intlayer_with_tanstack.md +465 -279
  138. package/docs/fr/intlayer_with_vite+preact.md +7 -7
  139. package/docs/fr/intlayer_with_vite+react.md +7 -7
  140. package/docs/fr/intlayer_with_vite+vue.md +9 -9
  141. package/docs/fr/packages/vite-intlayer/index.md +3 -3
  142. package/docs/fr/readme.md +261 -0
  143. package/docs/fr/testing.md +200 -0
  144. package/docs/hi/autoFill.md +47 -25
  145. package/docs/hi/configuration.md +194 -189
  146. package/docs/hi/dictionary/content_file.md +1056 -0
  147. package/docs/hi/intlayer_CMS.md +4 -5
  148. package/docs/hi/intlayer_with_nestjs.md +269 -0
  149. package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
  150. package/docs/hi/intlayer_with_react_router_v7.md +533 -0
  151. package/docs/hi/intlayer_with_tanstack.md +467 -282
  152. package/docs/hi/intlayer_with_vite+preact.md +7 -7
  153. package/docs/hi/intlayer_with_vite+react.md +7 -7
  154. package/docs/hi/intlayer_with_vite+vue.md +9 -9
  155. package/docs/hi/packages/vite-intlayer/index.md +3 -3
  156. package/docs/hi/readme.md +261 -0
  157. package/docs/hi/testing.md +200 -0
  158. package/docs/it/autoFill.md +46 -24
  159. package/docs/it/configuration.md +169 -161
  160. package/docs/it/dictionary/content_file.md +1061 -0
  161. package/docs/it/intlayer_CMS.md +4 -5
  162. package/docs/it/intlayer_with_nestjs.md +268 -0
  163. package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
  164. package/docs/it/intlayer_with_react_router_v7.md +535 -0
  165. package/docs/it/intlayer_with_tanstack.md +467 -301
  166. package/docs/it/intlayer_with_vite+preact.md +7 -7
  167. package/docs/it/intlayer_with_vite+react.md +7 -7
  168. package/docs/it/intlayer_with_vite+vue.md +9 -9
  169. package/docs/it/packages/vite-intlayer/index.md +3 -3
  170. package/docs/it/readme.md +261 -0
  171. package/docs/it/testing.md +200 -0
  172. package/docs/ja/autoFill.md +45 -23
  173. package/docs/ja/configuration.md +243 -204
  174. package/docs/ja/dictionary/content_file.md +1064 -0
  175. package/docs/ja/intlayer_CMS.md +4 -5
  176. package/docs/ja/intlayer_with_nestjs.md +268 -0
  177. package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
  178. package/docs/ja/intlayer_with_react_router_v7.md +534 -0
  179. package/docs/ja/intlayer_with_tanstack.md +467 -303
  180. package/docs/ja/intlayer_with_vite+preact.md +7 -7
  181. package/docs/ja/intlayer_with_vite+react.md +7 -7
  182. package/docs/ja/intlayer_with_vite+vue.md +9 -9
  183. package/docs/ja/packages/vite-intlayer/index.md +3 -3
  184. package/docs/ja/readme.md +263 -0
  185. package/docs/ja/testing.md +200 -0
  186. package/docs/ko/autoFill.md +39 -16
  187. package/docs/ko/configuration.md +217 -197
  188. package/docs/ko/dictionary/content_file.md +1060 -0
  189. package/docs/ko/intlayer_CMS.md +4 -5
  190. package/docs/ko/intlayer_with_nestjs.md +268 -0
  191. package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
  192. package/docs/ko/intlayer_with_react_router_v7.md +540 -0
  193. package/docs/ko/intlayer_with_tanstack.md +466 -302
  194. package/docs/ko/intlayer_with_vite+preact.md +7 -7
  195. package/docs/ko/intlayer_with_vite+react.md +7 -7
  196. package/docs/ko/intlayer_with_vite+vue.md +9 -9
  197. package/docs/ko/packages/vite-intlayer/index.md +3 -3
  198. package/docs/ko/readme.md +261 -0
  199. package/docs/ko/testing.md +200 -0
  200. package/docs/pt/autoFill.md +39 -15
  201. package/docs/pt/configuration.md +165 -147
  202. package/docs/pt/dictionary/content_file.md +1062 -0
  203. package/docs/pt/intlayer_CMS.md +4 -5
  204. package/docs/pt/intlayer_with_nestjs.md +271 -0
  205. package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
  206. package/docs/pt/intlayer_with_react_router_v7.md +535 -0
  207. package/docs/pt/intlayer_with_tanstack.md +469 -300
  208. package/docs/pt/intlayer_with_vite+preact.md +7 -7
  209. package/docs/pt/intlayer_with_vite+react.md +7 -7
  210. package/docs/pt/intlayer_with_vite+vue.md +9 -9
  211. package/docs/pt/packages/vite-intlayer/index.md +3 -3
  212. package/docs/pt/readme.md +261 -0
  213. package/docs/pt/testing.md +200 -0
  214. package/docs/ru/autoFill.md +52 -30
  215. package/docs/ru/configuration.md +164 -117
  216. package/docs/ru/dictionary/content_file.md +1064 -0
  217. package/docs/ru/intlayer_CMS.md +4 -4
  218. package/docs/ru/intlayer_with_nestjs.md +270 -0
  219. package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
  220. package/docs/ru/intlayer_with_react_router_v7.md +534 -0
  221. package/docs/ru/intlayer_with_tanstack.md +470 -305
  222. package/docs/ru/intlayer_with_vite+preact.md +7 -7
  223. package/docs/ru/intlayer_with_vite+react.md +7 -7
  224. package/docs/ru/intlayer_with_vite+vue.md +9 -9
  225. package/docs/ru/packages/vite-intlayer/index.md +3 -3
  226. package/docs/ru/readme.md +261 -0
  227. package/docs/ru/testing.md +202 -0
  228. package/docs/tr/CI_CD.md +198 -0
  229. package/docs/tr/autoFill.md +201 -0
  230. package/docs/tr/configuration.md +585 -0
  231. package/docs/tr/dictionary/condition.md +243 -0
  232. package/docs/tr/dictionary/content_file.md +1055 -0
  233. package/docs/tr/dictionary/enumeration.md +251 -0
  234. package/docs/tr/dictionary/file.md +228 -0
  235. package/docs/tr/dictionary/function_fetching.md +218 -0
  236. package/docs/tr/dictionary/gender.md +279 -0
  237. package/docs/tr/dictionary/insertion.md +191 -0
  238. package/docs/tr/dictionary/markdown.md +385 -0
  239. package/docs/tr/dictionary/nesting.md +279 -0
  240. package/docs/tr/dictionary/translation.md +315 -0
  241. package/docs/tr/formatters.md +618 -0
  242. package/docs/tr/how_works_intlayer.md +254 -0
  243. package/docs/tr/index.md +168 -0
  244. package/docs/tr/interest_of_intlayer.md +288 -0
  245. package/docs/tr/intlayer_CMS.md +347 -0
  246. package/docs/tr/intlayer_cli.md +570 -0
  247. package/docs/tr/intlayer_visual_editor.md +269 -0
  248. package/docs/tr/intlayer_with_angular.md +694 -0
  249. package/docs/tr/intlayer_with_create_react_app.md +1218 -0
  250. package/docs/tr/intlayer_with_express.md +415 -0
  251. package/docs/tr/intlayer_with_lynx+react.md +511 -0
  252. package/docs/tr/intlayer_with_nestjs.md +268 -0
  253. package/docs/tr/intlayer_with_nextjs_14.md +1029 -0
  254. package/docs/tr/intlayer_with_nextjs_15.md +1506 -0
  255. package/docs/tr/intlayer_with_nextjs_page_router.md +1484 -0
  256. package/docs/tr/intlayer_with_nuxt.md +773 -0
  257. package/docs/tr/intlayer_with_react_native+expo.md +660 -0
  258. package/docs/tr/intlayer_with_react_router_v7.md +531 -0
  259. package/docs/tr/intlayer_with_tanstack.md +452 -0
  260. package/docs/tr/intlayer_with_vite+preact.md +1673 -0
  261. package/docs/tr/intlayer_with_vite+react.md +1632 -0
  262. package/docs/tr/intlayer_with_vite+solid.md +288 -0
  263. package/docs/tr/intlayer_with_vite+svelte.md +288 -0
  264. package/docs/tr/intlayer_with_vite+vue.md +1042 -0
  265. package/docs/tr/introduction.md +209 -0
  266. package/docs/tr/locale_mapper.md +244 -0
  267. package/docs/tr/mcp_server.md +207 -0
  268. package/docs/tr/packages/@intlayer/api/index.md +58 -0
  269. package/docs/tr/packages/@intlayer/chokidar/index.md +57 -0
  270. package/docs/tr/packages/@intlayer/cli/index.md +47 -0
  271. package/docs/tr/packages/@intlayer/config/index.md +142 -0
  272. package/docs/tr/packages/@intlayer/core/index.md +51 -0
  273. package/docs/tr/packages/@intlayer/design-system/index.md +47 -0
  274. package/docs/tr/packages/@intlayer/dictionary-entry/index.md +53 -0
  275. package/docs/tr/packages/@intlayer/editor/index.md +47 -0
  276. package/docs/tr/packages/@intlayer/editor-react/index.md +47 -0
  277. package/docs/tr/packages/@intlayer/webpack/index.md +61 -0
  278. package/docs/tr/packages/angular-intlayer/index.md +59 -0
  279. package/docs/tr/packages/express-intlayer/index.md +258 -0
  280. package/docs/tr/packages/express-intlayer/t.md +459 -0
  281. package/docs/tr/packages/intlayer/getConfiguration.md +151 -0
  282. package/docs/tr/packages/intlayer/getEnumeration.md +165 -0
  283. package/docs/tr/packages/intlayer/getHTMLTextDir.md +127 -0
  284. package/docs/tr/packages/intlayer/getLocaleLang.md +87 -0
  285. package/docs/tr/packages/intlayer/getLocaleName.md +124 -0
  286. package/docs/tr/packages/intlayer/getLocalizedUrl.md +324 -0
  287. package/docs/tr/packages/intlayer/getMultilingualUrls.md +225 -0
  288. package/docs/tr/packages/intlayer/getPathWithoutLocale.md +81 -0
  289. package/docs/tr/packages/intlayer/getTranslation.md +196 -0
  290. package/docs/tr/packages/intlayer/getTranslationContent.md +195 -0
  291. package/docs/tr/packages/intlayer/index.md +505 -0
  292. package/docs/tr/packages/intlayer-cli/index.md +71 -0
  293. package/docs/tr/packages/intlayer-editor/index.md +139 -0
  294. package/docs/tr/packages/lynx-intlayer/index.md +85 -0
  295. package/docs/tr/packages/next-intlayer/index.md +154 -0
  296. package/docs/tr/packages/next-intlayer/t.md +354 -0
  297. package/docs/tr/packages/next-intlayer/useDictionary.md +270 -0
  298. package/docs/tr/packages/next-intlayer/useIntlayer.md +265 -0
  299. package/docs/tr/packages/next-intlayer/useLocale.md +133 -0
  300. package/docs/tr/packages/nuxt-intlayer/index.md +59 -0
  301. package/docs/tr/packages/preact-intlayer/index.md +55 -0
  302. package/docs/tr/packages/react-intlayer/index.md +148 -0
  303. package/docs/tr/packages/react-intlayer/t.md +304 -0
  304. package/docs/tr/packages/react-intlayer/useDictionary.md +554 -0
  305. package/docs/tr/packages/react-intlayer/useI18n.md +478 -0
  306. package/docs/tr/packages/react-intlayer/useIntlayer.md +253 -0
  307. package/docs/tr/packages/react-intlayer/useLocale.md +212 -0
  308. package/docs/tr/packages/react-native-intlayer/index.md +85 -0
  309. package/docs/tr/packages/react-scripts-intlayer/index.md +82 -0
  310. package/docs/tr/packages/solid-intlayer/index.md +56 -0
  311. package/docs/tr/packages/svelte-intlayer/index.md +55 -0
  312. package/docs/tr/packages/vite-intlayer/index.md +82 -0
  313. package/docs/tr/packages/vue-intlayer/index.md +59 -0
  314. package/docs/tr/per_locale_file.md +321 -0
  315. package/docs/tr/readme.md +261 -0
  316. package/docs/tr/roadmap.md +338 -0
  317. package/docs/tr/testing.md +200 -0
  318. package/docs/tr/vs_code_extension.md +154 -0
  319. package/docs/zh/autoFill.md +40 -18
  320. package/docs/zh/configuration.md +245 -226
  321. package/docs/zh/dictionary/content_file.md +1064 -0
  322. package/docs/zh/intlayer_CMS.md +4 -5
  323. package/docs/zh/intlayer_with_nestjs.md +268 -0
  324. package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
  325. package/docs/zh/intlayer_with_react_router_v7.md +535 -0
  326. package/docs/zh/intlayer_with_tanstack.md +468 -278
  327. package/docs/zh/intlayer_with_vite+preact.md +7 -7
  328. package/docs/zh/intlayer_with_vite+react.md +7 -7
  329. package/docs/zh/intlayer_with_vite+vue.md +7 -7
  330. package/docs/zh/packages/vite-intlayer/index.md +3 -3
  331. package/docs/zh/readme.md +261 -0
  332. package/docs/zh/testing.md +198 -0
  333. package/frequent_questions/tr/SSR_Next_no_[locale].md +105 -0
  334. package/frequent_questions/tr/array_as_content_declaration.md +72 -0
  335. package/frequent_questions/tr/build_dictionaries.md +59 -0
  336. package/frequent_questions/tr/build_error_CI_CD.md +75 -0
  337. package/frequent_questions/tr/customized_locale_list.md +65 -0
  338. package/frequent_questions/tr/domain_routing.md +114 -0
  339. package/frequent_questions/tr/esbuild_error.md +30 -0
  340. package/frequent_questions/tr/get_locale_cookie.md +142 -0
  341. package/frequent_questions/tr/intlayer_command_undefined.md +156 -0
  342. package/frequent_questions/tr/locale_incorect_in_url.md +74 -0
  343. package/frequent_questions/tr/static_rendering.md +45 -0
  344. package/frequent_questions/tr/translated_path_url.md +56 -0
  345. package/frequent_questions/tr/unknown_command.md +98 -0
  346. package/legal/tr/privacy_notice.md +83 -0
  347. package/legal/tr/terms_of_service.md +55 -0
  348. package/package.json +13 -13
  349. package/src/generated/blog.entry.ts +212 -0
  350. package/src/generated/docs.entry.ts +663 -135
  351. package/src/generated/frequentQuestions.entry.ts +85 -1
  352. package/src/generated/legal.entry.ts +7 -1
  353. package/docs/ar/dictionary/content_extention_customization.md +0 -100
  354. package/docs/ar/dictionary/get_started.md +0 -527
  355. package/docs/de/dictionary/content_extention_customization.md +0 -100
  356. package/docs/de/dictionary/get_started.md +0 -531
  357. package/docs/en/dictionary/content_extention_customization.md +0 -102
  358. package/docs/en/dictionary/get_started.md +0 -529
  359. package/docs/en-GB/dictionary/content_extention_customization.md +0 -100
  360. package/docs/en-GB/dictionary/get_started.md +0 -591
  361. package/docs/es/dictionary/content_extention_customization.md +0 -100
  362. package/docs/es/dictionary/get_started.md +0 -527
  363. package/docs/fr/dictionary/content_extention_customization.md +0 -100
  364. package/docs/fr/dictionary/get_started.md +0 -527
  365. package/docs/hi/dictionary/content_extention_customization.md +0 -100
  366. package/docs/hi/dictionary/get_started.md +0 -527
  367. package/docs/it/dictionary/content_extention_customization.md +0 -113
  368. package/docs/it/dictionary/get_started.md +0 -573
  369. package/docs/ja/dictionary/content_extention_customization.md +0 -113
  370. package/docs/ja/dictionary/get_started.md +0 -576
  371. package/docs/ko/dictionary/content_extention_customization.md +0 -100
  372. package/docs/ko/dictionary/get_started.md +0 -530
  373. package/docs/pt/dictionary/content_extention_customization.md +0 -100
  374. package/docs/pt/dictionary/get_started.md +0 -532
  375. package/docs/ru/dictionary/content_extention_customization.md +0 -100
  376. package/docs/ru/dictionary/get_started.md +0 -575
  377. package/docs/zh/dictionary/content_extention_customization.md +0 -117
  378. package/docs/zh/dictionary/get_started.md +0 -533
@@ -0,0 +1,534 @@
1
+ ---
2
+ createdAt: 2025-09-04
3
+ updatedAt: 2025-09-04
4
+ title: Начало работы с Intlayer в React Router v7
5
+ description: Узнайте, как добавить интернационализацию (i18n) в ваше приложение на React Router v7 с помощью Intlayer. Следуйте этому подробному руководству, чтобы сделать ваше приложение многоязычным с маршрутизацией, учитывающей локаль.
6
+ keywords:
7
+ - Интернационализация
8
+ - Документация
9
+ - Intlayer
10
+ - React Router v7
11
+ - React
12
+ - i18n
13
+ - TypeScript
14
+ - Маршрутизация по локали
15
+ slugs:
16
+ - doc
17
+ - environment
18
+ - vite-and-react
19
+ - react-router-v7
20
+ applicationTemplate: https://github.com/AydinTheFirst/react-router-intlayer
21
+ author: AydinTheFirst
22
+ ---
23
+
24
+ # Начало работы с интернационализацией (i18n) с Intlayer и React Router v7
25
+
26
+ Это руководство демонстрирует, как интегрировать **Intlayer** для бесшовной интернационализации в проектах на React Router v7 с маршрутизацией, учитывающей локаль, поддержкой TypeScript и современными практиками разработки.
27
+
28
+ ## Что такое Intlayer?
29
+
30
+ **Intlayer** — это инновационная, открытая библиотека интернационализации (i18n), разработанная для упрощения поддержки многоязычности в современных веб-приложениях.
31
+
32
+ С помощью Intlayer вы можете:
33
+
34
+ - **Легко управлять переводами** с использованием декларативных словарей на уровне компонентов.
35
+ - **Динамически локализовать метаданные**, маршруты и контент.
36
+ - **Обеспечить поддержку TypeScript** с помощью автогенерируемых типов, улучшая автодополнение и обнаружение ошибок.
37
+ - **Воспользоваться расширенными возможностями**, такими как динамическое определение и переключение локали.
38
+ - **Включите маршрутизацию с учетом локали** с помощью системы маршрутизации на основе конфигурации React Router v7.
39
+
40
+ ---
41
+
42
+ ## Пошаговое руководство по настройке Intlayer в приложении React Router v7
43
+
44
+ ### Шаг 1: Установка зависимостей
45
+
46
+ Установите необходимые пакеты с помощью предпочитаемого менеджера пакетов:
47
+
48
+ ```bash packageManager="npm"
49
+ npm install intlayer react-intlayer
50
+ npm install vite-intlayer --save-dev
51
+ ```
52
+
53
+ ```bash packageManager="pnpm"
54
+ pnpm add intlayer react-intlayer
55
+ pnpm add vite-intlayer --save-dev
56
+ ```
57
+
58
+ - **intlayer**
59
+
60
+ - **intlayer**
61
+
62
+ Основной пакет, предоставляющий инструменты интернационализации для управления конфигурацией, перевода, [объявления контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md), транспиляции и [CLI-команд](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_cli.md).
63
+
64
+ - **react-intlayer**
65
+ Пакет, который интегрирует Intlayer с приложением React. Он предоставляет провайдеры контекста и хуки для интернационализации в React.
66
+
67
+ - **vite-intlayer**
68
+ Включает плагин Vite для интеграции Intlayer с [сборщиком Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также middleware для определения предпочтительной локали пользователя, управления куки и обработки перенаправления URL.
69
+
70
+ ### Шаг 2: Конфигурация вашего проекта
71
+
72
+ Создайте файл конфигурации для настройки языков вашего приложения:
73
+
74
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
75
+ import { type IntlayerConfig, Locales } from "intlayer";
76
+
77
+ const config: IntlayerConfig = {
78
+ internationalization: {
79
+ defaultLocale: Locales.ENGLISH,
80
+ locales: [Locales.ENGLISH, Locales.TURKISH],
81
+ },
82
+ middleware: {
83
+ prefixDefault: true, // Всегда добавлять префикс для языка по умолчанию в URL
84
+ },
85
+ };
86
+
87
+ export default config;
88
+ ```
89
+
90
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
91
+ import { Locales } from "intlayer";
92
+
93
+ /** @type {import('intlayer').IntlayerConfig} */
94
+ const config = {
95
+ internationalization: {
96
+ defaultLocale: Locales.ENGLISH,
97
+ locales: [Locales.ENGLISH, Locales.TURKISH],
98
+ },
99
+ middleware: {
100
+ prefixDefault: true,
101
+ },
102
+ };
103
+
104
+ export default config;
105
+ ```
106
+
107
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
108
+ const { Locales } = require("intlayer");
109
+
110
+ /** @type {import('intlayer').IntlayerConfig} */
111
+ const config = {
112
+ internationalization: {
113
+ defaultLocale: Locales.ENGLISH,
114
+ locales: [Locales.ENGLISH, Locales.TURKISH],
115
+ },
116
+ middleware: {
117
+ prefixDefault: true,
118
+ },
119
+ };
120
+
121
+ module.exports = config;
122
+ ```
123
+
124
+ > С помощью этого файла конфигурации вы можете настроить локализованные URL, перенаправления в middleware, имена cookie, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
125
+
126
+ ### Шаг 3: Настройка маршрутов React Router v7
127
+
128
+ Настройте конфигурацию маршрутизации с учетом локализации:
129
+
130
+ ```typescript fileName="app/routes.ts" codeFormat="typescript"
131
+ import { layout, route, type RouteConfig } from "@react-router/dev/routes";
132
+
133
+ export default [
134
+ layout("routes/layout.tsx", [
135
+ route("/", "routes/page.tsx"), // Корневая страница - перенаправляет на локаль
136
+ route("/:lang", "routes/[lang]/page.tsx"), // Локализованная главная страница
137
+ route("/:lang/about", "routes/[lang]/about/page.tsx"), // Локализованная страница "О нас"
138
+ ]),
139
+ ] satisfies RouteConfig;
140
+ ```
141
+
142
+ ### Шаг 4: Интеграция Intlayer в вашу конфигурацию Vite
143
+
144
+ Добавьте плагин intlayer в вашу конфигурацию:
145
+
146
+ ```typescript fileName="vite.config.ts" codeFormat="typescript"
147
+ import { reactRouter } from "@react-router/dev/vite";
148
+ import { defineConfig } from "vite";
149
+ import { intlayerMiddlewarePlugin, intlayerPlugin } from "vite-intlayer";
150
+ import tsconfigPaths from "vite-tsconfig-paths";
151
+
152
+ export default defineConfig({
153
+ plugins: [
154
+ reactRouter(),
155
+ tsconfigPaths(),
156
+ intlayerPlugin(),
157
+ intlayerMiddlewarePlugin(),
158
+ ],
159
+ });
160
+ ```
161
+
162
+ > Плагин Vite `intlayerPlugin()` используется для интеграции Intlayer с Vite. Он обеспечивает сборку файлов деклараций контента и отслеживает их в режиме разработки. Также он определяет переменные окружения Intlayer внутри приложения Vite. Кроме того, плагин предоставляет алиасы для оптимизации производительности.
163
+
164
+ ### Шаг 5: Создайте компоненты макета
165
+
166
+ Настройте корневой макет и макеты, специфичные для локали:
167
+
168
+ #### Корневой макет
169
+
170
+ ```tsx fileName="app/routes/layout.tsx" codeFormat="typescript"
171
+ // app/routes/layout.tsx
172
+ import { Outlet } from "react-router";
173
+ import { IntlayerProvider } from "react-intlayer";
174
+
175
+ export default function RootLayout() {
176
+ return (
177
+ <IntlayerProvider>
178
+ <Outlet />
179
+ </IntlayerProvider>
180
+ );
181
+ }
182
+ ```
183
+
184
+ ### Шаг 6: Объявите Ваш Контент
185
+
186
+ Создайте и управляйте декларациями контента для хранения переводов:
187
+
188
+ ```tsx fileName="app/routes/[lang]/page.content.ts" contentDeclarationFormat="typescript"
189
+ import { t, type Dictionary } from "intlayer";
190
+
191
+ const pageContent = {
192
+ key: "page",
193
+ content: {
194
+ title: t({
195
+ en: "Welcome to React Router v7 + Intlayer",
196
+ tr: "React Router v7 + Intlayer'a Hoş Geldiniz",
197
+ }),
198
+ description: t({
199
+ en: "Build multilingual applications with ease using React Router v7 and Intlayer.",
200
+ tr: "React Router v7 и Intlayer позволяют легко создавать многоязычные приложения.",
201
+ }),
202
+ aboutLink: t({
203
+ en: "Узнать о нас",
204
+ tr: "Hakkımızda Öğrenin",
205
+ }),
206
+ homeLink: t({
207
+ en: "Главная",
208
+ tr: "Ana Sayfa",
209
+ }),
210
+ },
211
+ } satisfies Dictionary;
212
+
213
+ export default pageContent;
214
+ ```
215
+
216
+ > Ваши декларации контента могут быть определены в любом месте вашего приложения, как только они будут включены в директорию `contentDir` (по умолчанию, `./app`). И соответствовать расширению файла декларации контента (по умолчанию, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
217
+
218
+ > Для получения дополнительной информации обратитесь к [документации по декларации контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md).
219
+
220
+ ### Шаг 7: Создайте компоненты, учитывающие локаль
221
+
222
+ Создайте компонент `LocalizedLink` для навигации с учетом локали:
223
+
224
+ ```tsx fileName="app/components/localized-link.tsx" codeFormat="typescript"
225
+ // app/components/localized-link.tsx
226
+ import { getLocalizedUrl } from "intlayer";
227
+ import { useLocale } from "react-intlayer";
228
+ import React from "react";
229
+ import { Link, useLocation } from "react-router";
230
+
231
+ type RouterLinkProps = React.ComponentProps<typeof Link>;
232
+
233
+ export default function LocalizedLink({ to, ...props }: RouterLinkProps) {
234
+ const { locale } = useLocale();
235
+ const location = useLocation();
236
+
237
+ // Проверка, является ли путь внешним URL или почтовым адресом
238
+ const isExternal = (path: string) =>
239
+ /^([a-z][a-z0-9+.-]*:)?\/\//i.test(path) || path.startsWith("mailto:");
240
+
241
+ if (typeof to === "string") {
242
+ if (to.startsWith("/") && !isExternal(to)) {
243
+ return <Link to={getLocalizedUrl(to, locale)} {...props} />;
244
+ }
245
+ return <Link to={to} {...props} />;
246
+ }
247
+
248
+ if (to && typeof to === "object") {
249
+ const pathname = (to as { pathname?: string }).pathname;
250
+ if (pathname && pathname.startsWith("/") && !isExternal(pathname)) {
251
+ return (
252
+ <Link
253
+ to={{ ...to, pathname: getLocalizedUrl(pathname, locale) }}
254
+ {...props}
255
+ />
256
+ );
257
+ }
258
+ return <Link to={to} {...props} />;
259
+ }
260
+
261
+ return (
262
+ <Link
263
+ to={getLocalizedUrl(location.pathname + location.search, locale)}
264
+ {...props}
265
+ />
266
+ );
267
+ }
268
+ ```
269
+
270
+ ### Шаг 8: Используйте Intlayer на своих страницах
271
+
272
+ Получайте доступ к словарям контента по всему вашему приложению:
273
+
274
+ #### Страница перенаправления корня
275
+
276
+ ```tsx fileName="app/routes/page.tsx" codeFormat="typescript"
277
+ // app/routes/page.tsx
278
+ import { useLocale } from "react.intlayer";
279
+ import { Navigate } from "react-router";
280
+
281
+ export default function Page() {
282
+ const { locale } = useLocale();
283
+
284
+ return <Navigate replace to={locale} />;
285
+ }
286
+ ```
287
+
288
+ #### Локализованная главная страница
289
+
290
+ ```tsx fileName="app/routes/[lang]/page.tsx" codeFormat="typescript"
291
+ import { useIntlayer } from "react-intlayer";
292
+ import LocalizedLink from "~/components/localized-link";
293
+
294
+ export default function Page() {
295
+ const content = useIntlayer("page");
296
+
297
+ return (
298
+ <div style={{ padding: "2rem", textAlign: "center" }}>
299
+ <h1>{content.title}</h1>
300
+ <p>{content.description}</p>
301
+ <nav style={{ marginTop: "2rem" }}>
302
+ <LocalizedLink
303
+ to="/about"
304
+ style={{
305
+ display: "inline-block",
306
+ padding: "0.5rem 1rem",
307
+ backgroundColor: "#007bff",
308
+ color: "white",
309
+ textDecoration: "none",
310
+ borderRadius: "4px",
311
+ }}
312
+ >
313
+ {content.aboutLink}
314
+ </LocalizedLink>
315
+ </nav>
316
+ </div>
317
+ );
318
+ }
319
+ ```
320
+
321
+ > Чтобы узнать больше о хуке `useIntlayer`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useIntlayer.md).
322
+
323
+ ### Шаг 9: Создайте компонент переключателя локали
324
+
325
+ Создайте компонент, позволяющий пользователям менять язык:
326
+
327
+ ```tsx fileName="app/components/locale-switcher.tsx" codeFormat="typescript"
328
+ import { getLocalizedUrl, getLocaleName } from "intlayer";
329
+ import { useLocale } from "react-intlayer";
330
+ import { useLocation, useNavigate } from "react-router";
331
+
332
+ export default function LocaleSwitcher() {
333
+ const { locale, availableLocales, setLocale } = useLocale();
334
+ const location = useLocation();
335
+ const navigate = useNavigate();
336
+
337
+ const handleLocaleChange = (newLocale: string) => {
338
+ const localizedUrl = getLocalizedUrl(
339
+ location.pathname + location.search,
340
+ newLocale
341
+ );
342
+ setLocale(newLocale);
343
+ navigate(localizedUrl);
344
+ };
345
+
346
+ return (
347
+ <div style={{ margin: "1rem 0" }}>
348
+ <label htmlFor="locale-select">Выберите язык: </label>
349
+ <select
350
+ id="locale-select"
351
+ value={locale}
352
+ onChange={(e) => handleLocaleChange(e.target.value)}
353
+ style={{ padding: "0.25rem", marginLeft: "0.5rem" }}
354
+ >
355
+ {availableLocales.map((availableLocale) => (
356
+ <option key={availableLocale} value={availableLocale}>
357
+ {getLocaleName(availableLocale)}
358
+ </option>
359
+ ))}
360
+ </select>
361
+ </div>
362
+ );
363
+ }
364
+ ```
365
+
366
+ > Чтобы узнать больше о хуке `useLocale`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md).
367
+
368
+ ### Шаг 10: Добавление управления атрибутами HTML (необязательно)
369
+
370
+ Создайте хук для управления атрибутами lang и dir в HTML:
371
+
372
+ ```tsx fileName="app/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
373
+ // app/hooks/useI18nHTMLAttributes.tsx
374
+ import { getHTMLTextDir } from "intlayer";
375
+ import { useEffect } from "react";
376
+ import { useLocale } from "react-intlayer";
377
+
378
+ export const useI18nHTMLAttributes = () => {
379
+ const { locale } = useLocale();
380
+
381
+ useEffect(() => {
382
+ document.documentElement.lang = locale;
383
+ document.documentElement.dir = getHTMLTextDir(locale);
384
+ }, [locale]);
385
+ };
386
+ ```
387
+
388
+ Затем используйте его в вашем корневом компоненте:
389
+
390
+ ```tsx fileName="app/root.tsx" codeFormat="typescript"
391
+ // app/routes/layout.tsx
392
+ import { Outlet } from "react-router";
393
+ import { IntlayerProvider } from "react-intlayer";
394
+
395
+ import { useI18nHTMLAttributes } from "app/hooks/useI18nHTMLAttributes"; // импортируем хук
396
+
397
+ export default function RootLayout() {
398
+ useI18nHTMLAttributes(); // вызываем хук
399
+
400
+ return (
401
+ <IntlayerProvider>
402
+ <Outlet />
403
+ </IntlayerProvider>
404
+ );
405
+ }
406
+ ```
407
+
408
+ ### Шаг 11: Сборка и запуск вашего приложения
409
+
410
+ Постройте словари контента и запустите ваше приложение:
411
+
412
+ ```bash packageManager="npm"
413
+ # Построить словари Intlayer
414
+ npm run intlayer:build
415
+
416
+ # Запустить сервер разработки
417
+ npm run dev
418
+ ```
419
+
420
+ ```bash packageManager="pnpm"
421
+ # Построить словари Intlayer
422
+ pnpm intlayer:build
423
+
424
+ # Запустить сервер разработки
425
+ pnpm dev
426
+ ```
427
+
428
+ ```bash packageManager="yarn"
429
+ # Построить словари Intlayer
430
+ yarn intlayer:build
431
+
432
+ # Запустить сервер разработки
433
+ yarn dev
434
+ ```
435
+
436
+ ### Шаг 12: Настройка TypeScript (необязательно)
437
+
438
+ Intlayer использует расширение модулей для получения преимуществ TypeScript и усиления вашей кодовой базы.
439
+
440
+ Убедитесь, что ваша конфигурация TypeScript включает автогенерируемые типы:
441
+
442
+ ```json5 fileName="tsconfig.json"
443
+ {
444
+ compilerOptions: {
445
+ // ... ваши существующие настройки TypeScript
446
+ },
447
+ include: [
448
+ // ... ваши существующие включения
449
+ ".intlayer/**/*.ts", // Включить автоматически сгенерированные типы
450
+ ],
451
+ }
452
+ ```
453
+
454
+ ### Конфигурация Git
455
+
456
+ Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш репозиторий Git.
457
+
458
+ Для этого вы можете добавить следующие инструкции в ваш файл `.gitignore`:
459
+
460
+ ```plaintext fileName=".gitignore"
461
+ # Игнорировать файлы, сгенерированные Intlayer
462
+ .intlayer
463
+ ```
464
+
465
+ ---
466
+
467
+ ## Развертывание в продакшн
468
+
469
+ При развертывании вашего приложения:
470
+
471
+ 1. **Соберите ваше приложение:**
472
+
473
+ ```bash
474
+ npm run build
475
+ ```
476
+
477
+ 2. **Постройте словари Intlayer:**
478
+
479
+ ```bash
480
+ npm run intlayer:build
481
+ ```
482
+
483
+ 3. **Переместите `vite-intlayer` в зависимости**, если используете middleware в продакшне:
484
+ ```bash
485
+ npm install vite-intlayer --save
486
+ ```
487
+
488
+ Ваше приложение теперь будет поддерживать:
489
+
490
+ - **Структуру URL**: `/en`, `/en/about`, `/tr`, `/tr/about`
491
+ - **Автоматическое определение локали** на основе предпочтений браузера
492
+ - **Маршрутизацию с учётом локали** с React Router v7
493
+ - **Поддержку TypeScript** с автоматически сгенерированными типами
494
+ - **Серверный рендеринг** с правильной обработкой локали
495
+
496
+ ## Расширение VS Code
497
+
498
+ Для улучшения вашего опыта разработки с Intlayer вы можете установить официальное **расширение Intlayer для VS Code**.
499
+
500
+ [Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
501
+
502
+ Это расширение предоставляет:
503
+
504
+ - **Автодополнение** ключей переводов.
505
+ - **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
506
+ - **Встроенный просмотр** переведённого контента.
507
+ - **Быстрые действия** для удобного создания и обновления переводов.
508
+
509
+ Для получения дополнительной информации о том, как использовать расширение, обратитесь к [документации расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
510
+
511
+ ---
512
+
513
+ ## Продвинутые возможности
514
+
515
+ Для расширения функционала вы можете реализовать [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) или вынести ваш контент с помощью [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).
516
+
517
+ ---
518
+
519
+ ## Ссылки на документацию
520
+
521
+ - [Документация Intlayer](https://intlayer.org)
522
+ - [Документация React Router v7](https://reactrouter.com/)
523
+ - [Хук useIntlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useIntlayer.md)
524
+ - [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md)
525
+ - [Объявление контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md)
526
+ - [Конфигурация](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
527
+
528
+ Это подробное руководство содержит все необходимое для интеграции Intlayer с React Router v7 для полностью интернационализированного приложения с маршрутизацией, учитывающей локаль, и поддержкой TypeScript.
529
+
530
+ ## История документации
531
+
532
+ | Версия | Дата | Изменения |
533
+ | ------ | --------- | ----------------------------- |
534
+ | 5.8.2 | 2025-09-4 | Добавлено для React Router v7 |