@intlayer/docs 5.8.1 → 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 +12 -12
  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,284 @@
1
+ ---
2
+ createdAt: 2025-09-10
3
+ updatedAt: 2025-09-10
4
+ title: RAG Güçlendirmeli Dokümantasyon Asistanı Oluşturma (Chunking, Embeddings ve Arama)
5
+ description: RAG Güçlendirmeli Dokümantasyon Asistanı Oluşturma (Chunking, Embeddings ve Arama)
6
+ keywords:
7
+ - RAG
8
+ - Dokümantasyon
9
+ - Asistan
10
+ - Chunking
11
+ - Embeddings
12
+ - Arama
13
+ slugs:
14
+ - blog
15
+ - rag-powered-documentation-assistant
16
+ ---
17
+
18
+ # RAG Güçlendirmeli Dokümantasyon Asistanı Oluşturma (Chunking, Embeddings ve Arama)
19
+
20
+ ## Ne Elde Ediyorsunuz
21
+
22
+ RAG güçlendirmeli bir dokümantasyon asistanı oluşturdum ve bunu hemen kullanabileceğiniz bir boilerplate haline getirdim.
23
+
24
+ - Hazır kullanıma sahip bir uygulama (Next.js + OpenAI API)
25
+ - Çalışan bir RAG pipeline'ı (chunking, embeddings, kosinüs benzerliği)
26
+ - React ile oluşturulmuş tam bir chatbot UI'si
27
+ - Tüm UI bileşenleri Tailwind CSS ile tamamen düzenlenebilir
28
+ - Eksik dokümanları, kullanıcı acı noktalarını ve ürün fırsatlarını belirlemeye yardımcı olmak için her kullanıcı sorgusunu günlüğe kaydeder
29
+
30
+ 👉 [Canlı demo](https://intlayer.org/doc/why) 👉 [Kod boilerplate](https://github.com/aymericzip/smart_doc_RAG)
31
+
32
+ ## Giriş
33
+
34
+ Eğer dokümantasyonlarda kaybolmuşsanız, bir cevap için sonsuzca kaydırma yaptığınızı biliyorsunuz, bu ne kadar acı verici olabilir. Dokümanlar yararlıdır, ama statiktirler ve arama yapmak genellikle hantaldır.
35
+
36
+ İşte burada **RAG (Retrieval-Augmented Generation)** devreye girer. Kullanıcıları metin içinde kazmaya zorlamak yerine, **retrieval** (dokümanın doğru kısımlarını bulma) ile **generation** (bir LLM'nin doğal olarak açıklaması) birleştirebiliriz.
37
+
38
+ Bu yazıda, RAG güçlendirmeli bir dokümantasyon chatbot'u nasıl oluşturduğumu ve bunun sadece kullanıcıların cevapları daha hızlı bulmasına yardımcı olmadığını, aynı zamanda ürün ekiplerine kullanıcı acı noktalarını anlamanın yeni bir yolunu verdiğini anlatacağım.
39
+
40
+ ## Dokümantasyon İçin Neden RAG Kullanılır?
41
+
42
+ RAG, büyük dil modellerini gerçekten kullanışlı hale getirmenin en pratik yollarından biri olduğu için popüler bir yaklaşım haline geldi.
43
+
44
+ Dokümantasyon için faydalar nettir:
45
+
46
+ - Anında cevaplar: kullanıcılar doğal dilde sorar ve ilgili cevaplar alır.
47
+ - Daha iyi bağlam: model sadece en ilgili doküman bölümlerini görür, halüsinasyonları azaltır.
48
+ - İnsan gibi arama: Algolia + SSS + chatbot'un bir araya gelmiş hali gibi.
49
+ - Geri bildirim döngüsü: sorguları depolayarak kullanıcıların neyle mücadele ettiğini keşfedersiniz.
50
+
51
+ Bu son nokta çok önemlidir. Bir RAG sistemi sadece sorulara cevap vermez, insanlara ne sorduğunu söyler. Bu şu anlama gelir:
52
+
53
+ - Dokümanlarınızda eksik bilgileri keşfedersiniz.
54
+ - Özellik isteklerinin ortaya çıktığını görürsünüz.
55
+ - Hatta ürün stratejisini yönlendirebilecek kalıpları fark edersiniz.
56
+
57
+ Yani RAG sadece bir destek aracı değildir. Aynı zamanda bir **ürün keşif motoru**dur.
58
+
59
+ ## RAG Pipeline'ı Nasıl Çalışır
60
+
61
+ ![RAG Pipeline](https://github.com/aymericzip/intlayer/blob/main/docs/assets/rag_flow.svg)
62
+
63
+ Yüksek seviyede, kullandığım tarif şöyle:
64
+
65
+ 1. **Dokümantasyonu chunking** Büyük Markdown dosyaları parçalara bölünür. Chunking, dokümantasyonun sadece ilgili kısımlarını bağlam olarak sağlamaya izin verir.
66
+ 2. **Embeddings oluşturma** Her parça, OpenAI'nin embedding API'si (text-embedding-3-large) veya bir vektör veritabanı (Chroma, Qdrant, Pinecone) kullanarak bir vektöre dönüştürülür.
67
+ 3. **İndeksleme ve depolama** Embeddings basit bir JSON dosyasında depolanır (demom için), ama üretimde muhtemelen bir vektör DB kullanırdınız.
68
+ 4. **Retrieval (RAG'deki R)** Bir kullanıcı sorgusu gömülür, kosinüs benzerliği hesaplanır ve en üstteki eşleşen parçalar alınır.
69
+ 5. **Augmentation + Generation (RAG'deki AG)** Bu parçalar ChatGPT için sistem prompt'una enjekte edilir, böylece model gerçek doküman bağlamıyla cevap verir.
70
+ 6. **Geri bildirim için sorguları günlüğe kaydetme** Her kullanıcı sorgusu depolanır. Bu, acı noktaları, eksik dokümanları veya yeni fırsatları anlamak için altın değerindedir.
71
+
72
+ ## Adım 1: Dokümanları Okuma
73
+
74
+ İlk adım basitti: docs/ klasöründeki tüm .md dosyalarını tarayacak bir yol gerekiyordu. Node.js ve glob kullanarak, her Markdown dosyasının içeriğini belleğe aldım.
75
+
76
+ Bu, pipeline'ı esnek tutar: Markdown yerine, bir veritabanından, CMS'den veya hatta bir API'den dokümanları çekebilirsiniz.
77
+
78
+ ## Adım 2: Dokümantasyonu Chunking
79
+
80
+ Neden chunking? Çünkü dil modellerinin **bağlam limitleri** vardır. Onlara bir kitap dolusu doküman beslemek işe yaramaz.
81
+
82
+ Yani fikri, metni yönetilebilir parçalara bölmektir (örneğin her biri 500 token) ve örtüşme ile (örneğin 100 token). Örtüşme, parça sınırlarında anlam kaybını önlemek için sürekliliği sağlar.
83
+
84
+ **Örnek:**
85
+
86
+ - Parça 1 → "…birçoğu tarafından unutulan eski kütüphane. Kule gibi rafları kitaplarla doluydu…"
87
+ - Parça 2 → "…raflar kitaplarla doluydu, her türlü türden kitaplar fısıldıyordu…"
88
+
89
+ Örtüşme, her iki parçanın paylaşılan bağlam içermesini sağlar, böylece retrieval tutarlı kalır.
90
+
91
+ Bu trade-off (parça boyutu vs örtüşme) RAG verimliliği için anahtardır:
92
+
93
+ - Çok küçük → gürültü alırsınız.
94
+ - Çok büyük → bağlam boyutunu patlatırsınız.
95
+
96
+ ## Adım 3: Embeddings Oluşturma
97
+
98
+ Dokümanlar parçalandıktan sonra, **embeddings** oluştururuz — her parçayı temsil eden yüksek boyutlu vektörler.
99
+
100
+ OpenAI'nin text-embedding-3-large modelini kullandım, ama herhangi bir modern embedding modelini kullanabilirsiniz.
101
+
102
+ **Embedding örneği:**
103
+
104
+ ```js
105
+ [
106
+ -0.0002630692, -0.029749284, 0.010225477, -0.009224428, -0.0065269712,
107
+ -0.002665544, 0.003214777, 0.04235309, -0.033162255, -0.00080789323,
108
+ //...+1533 element
109
+ ];
110
+ ```
111
+
112
+ Her vektör, metnin matematiksel bir parmak izidir, benzerlik aramasını etkinleştirir.
113
+
114
+ ## Adım 4: Embeddings'i İndeksleme ve Depolama
115
+
116
+ Embeddings'i birden fazla kez yeniden oluşturmamak için, onları embeddings.json'da depoladım.
117
+
118
+ Üretimde, muhtemelen bir vektör veritabanı istersiniz:
119
+
120
+ - Chroma
121
+ - Qdrant
122
+ - Pinecone
123
+ - FAISS, Weaviate, Milvus, vb.
124
+
125
+ Vektör DB'ler indeksleme, ölçeklenebilirlik ve hızlı arama ile ilgilenir. Ama prototipim için yerel JSON yeterliydi.
126
+
127
+ ## Adım 5: Kosinüs Benzerliği ile Retrieval
128
+
129
+ Bir kullanıcı soru sorduğunda:
130
+
131
+ 1. Sorgu için bir embedding oluştur.
132
+ 2. Bunu tüm doküman embeddings'leriyle **kosinüs benzerliği** kullanarak karşılaştır.
133
+ 3. Sadece en üstteki N en benzer parçayı tut.
134
+
135
+ Kosinüs benzerliği iki vektör arasındaki açıyı ölçer. Mükemmel bir eşleşme **1.0** puan alır.
136
+
137
+ Bu şekilde, sistem sorguya en yakın doküman pasajlarını bulur.
138
+
139
+ ## Adım 6: Augmentation + Generation
140
+
141
+ Şimdi sihir geliyor. Üstteki parçaları ChatGPT için **sistem prompt**una enjekte ederiz.
142
+
143
+ Bu, modelin o parçalar konuşmanın bir parçasıymış gibi cevap vermesi anlamına gelir.
144
+
145
+ Sonuç: doğru, **doküman-temelli cevaplar**.
146
+
147
+ ## Adım 7: Kullanıcı Sorgularını Günlüğe Kaydetme
148
+
149
+ Bu gizli süper güç.
150
+
151
+ Sorulan her soru depolanır. Zamanla, şunları içeren bir veri seti oluşturursunuz:
152
+
153
+ - En sık sorulan sorular (SSS için harika)
154
+ - Cevaplanmamış sorular (dokümanlar eksik veya belirsiz)
155
+ - Soru kılığına girmiş özellik istekleri ("X ile entegre olur mu?")
156
+ - Planlamadığınız yeni kullanım durumları
157
+
158
+ Bu, RAG asistanınızı **sürekli kullanıcı araştırma aracı**na dönüştürür.
159
+
160
+ ## Maliyeti Ne Kadar?
161
+
162
+ RAG'ye karşı yaygın bir itiraz maliyet. Pratikte, şaşırtıcı derecede ucuz:
163
+
164
+ - ~200 doküman için embeddings oluşturmak yaklaşık **5 dakika** sürer ve **1–2 euro** maliyet eder.
165
+ - Doküman arama özelliği %100 ücretsiz.
166
+ - Sorgular için gpt-4o-latest'i "düşünme" modu olmadan kullanırız. Intlayer'da ayda yaklaşık **300 sohbet sorgusu** görüyoruz ve OpenAI API faturası nadiren **10$**ı aşar.
167
+
168
+ Buna barındırma maliyetini de ekleyebilirsiniz.
169
+
170
+ ## Uygulama Detayları
171
+
172
+ Stack:
173
+
174
+ - Monorepo: pnpm workspace
175
+ - Doküman paketi: Node.js / TypeScript / OpenAI API
176
+ - Frontend: Next.js / React / Tailwind CSS
177
+ - Backend: Node.js API route / OpenAI API
178
+
179
+ @smart-doc/docs paketi, doküman işlemesini yöneten bir TypeScript paketidir. Bir markdown dosyası eklendiğinde veya değiştirildiğinde, paket her dilde doküman listesini yeniden oluşturmak, embeddings oluşturmak ve bunları embeddings.json dosyasında depolamak için bir build script'i içerir.
180
+
181
+ Frontend için, şunları sağlayan bir Next.js uygulaması kullanırız:
182
+
183
+ - Markdown'dan HTML'ye dönüştürme
184
+ - İlgili dokümanları bulmak için arama çubuğu
185
+ - Dokümanlar hakkında soru sormak için chatbot arayüzü
186
+
187
+ Bir doküman araması gerçekleştirmek için, Next.js uygulaması sorguyla eşleşen doküman parçalarını almak üzere @smart-doc/docs paketindeki bir fonksiyonu çağıran bir API route'u içerir. Bu parçaları kullanarak, kullanıcının aramasıyla ilgili doküman sayfalarının bir listesini döndürebiliriz.
188
+
189
+ Chatbot işlevselliği için, aynı arama sürecini takip ederiz ama ayrıca alınan doküman parçalarını ChatGPT'ye gönderilen prompt'a enjekte ederiz.
190
+
191
+ ChatGPT'ye gönderilen bir prompt örneği:
192
+
193
+ Sistem prompt'u:
194
+
195
+ ```txt
196
+ Intlayer dokümantasyonu hakkında sorulara cevap verebilen yardımcı bir asistansınız.
197
+
198
+ İlgili parçalar:
199
+
200
+ -----
201
+ docName: "getting-started"
202
+ docChunk: "1/3"
203
+ docUrl: "https://example.com/docs/en/getting-started"
204
+ ---
205
+
206
+ # Nasıl başlanır
207
+
208
+ ...
209
+
210
+ -----
211
+ docName: "another-doc"
212
+ docChunk: "1/5"
213
+ docUrl: "https://example.com/docs/en/another-doc"
214
+ ---
215
+
216
+ # Başka bir doküman
217
+
218
+ ...
219
+ ```
220
+
221
+ Kullanıcı sorgusu:
222
+
223
+ ```txt
224
+ Nasıl başlanır?
225
+ ```
226
+
227
+ API route'undan yanıtı akış için SSE kullanırız.
228
+
229
+ Bahsedildiği gibi, "düşünme" modu olmadan gpt-4-turbo'yu kullanırız. Yanıtlar ilgili ve gecikme düşük.
230
+ Gpt-5 ile denedik, ama gecikme çok yüksekti (bazen 15 saniyeye kadar bir yanıt). Ama gelecekte tekrar gözden geçireceğiz.
231
+
232
+ 👉 [Demoyu burada deneyin](https://intlayer.org/doc/why) 👉 [GitHub'da kod şablonunu kontrol edin](https://github.com/aymericzip/smart_doc_RAG)
233
+
234
+ ## Daha İleriye Gitmek
235
+
236
+ Bu proje minimal bir uygulamadır. Ama birçok şekilde genişletebilirsiniz:
237
+
238
+ - MCP sunucusu → doküman araştırma fonksiyonunu bir MCP sunucusuna bağlayarak dokümantasyonu herhangi bir AI asistanına bağlayın
239
+
240
+ - Vektör DB'ler → milyonlarca doküman parçasına ölçeklendirin
241
+ - LangChain / LlamaIndex → hazır RAG pipeline çerçeveleri
242
+ - Analitik dashboard'ları → kullanıcı sorgularını ve acı noktalarını görselleştirin
243
+ - Çok kaynaklı retrieval → sadece dokümanları değil, veritabanı girişlerini, blog gönderilerini, biletleri vb. çekin
244
+ - Geliştirilmiş prompting → reranking, filtreleme ve hibrit arama (anahtar kelime + semantik)
245
+
246
+ ## Karşılaştığımız Sınırlamalar
247
+
248
+ - Chunking ve örtüşme empirik. Doğru denge (parça boyutu, örtüşme yüzdesi, alınan parça sayısı) iterasyon ve test gerektirir.
249
+ - Dokümanlar değiştiğinde embeddings otomatik olarak yeniden oluşturulmaz. Sistemimiz, sadece parça sayısı farklıysa bir dosya için embeddings'i sıfırlar.
250
+ - Bu prototipte, embeddings JSON'da depolanır. Bu demolar için çalışır ama Git'i kirletir. Üretimde bir veritabanı veya özel vektör deposu daha iyidir.
251
+
252
+ ## Dokümanların Ötesinde Neden Önemli?
253
+
254
+ İlginç kısım sadece chatbot değil. **Geri bildirim döngüsü**.
255
+
256
+ RAG ile sadece cevap vermezsiniz:
257
+
258
+ - Kullanıcıları neyin şaşırttığını öğrenirsiniz.
259
+ - Hangi özelliklerin beklendiğini keşfedersiniz.
260
+ - Gerçek sorgulara göre ürün stratejinizi uyarlarsınız.
261
+
262
+ **Örnek:**
263
+
264
+ Yeni bir özellik başlattığınızı ve anında gördüğünüzü hayal edin:
265
+
266
+ - Soruların %50'si aynı belirsiz kurulum adımı hakkında
267
+ - Kullanıcılar desteklemediğimiz bir entegrasyon soruyor
268
+ - İnsanlar yeni bir kullanım durumu ortaya çıkaran terimler arıyor
269
+
270
+ Bu, kullanıcılarınızdan doğrudan **ürün zekası**.
271
+
272
+ ## Sonuç
273
+
274
+ RAG, LLM'leri pratik hale getirmenin en basit, en güçlü yollarından biridir. **Retrieval + generation** birleştirerek, statik dokümanları **akıllı bir asistana** dönüştürebilir ve aynı zamanda sürekli ürün içgörüleri akışı elde edebilirsiniz.
275
+
276
+ Benim için bu proje, RAG'nin sadece bir teknik hile olmadığını gösterdi. Dokümantasyonu dönüştürmenin bir yolu:
277
+
278
+ - etkileşimli bir destek sistemi
279
+ - bir geri bildirim kanalı
280
+ - bir ürün strateji aracı
281
+
282
+ 👉 [Demoyu burada deneyin](https://intlayer.org/doc/why) 👉 [GitHub'da kod şablonunu kontrol edin](https://github.com/aymericzip/smart_doc_RAG)
283
+
284
+ Ve eğer siz de RAG ile deneme yapıyorsanız, nasıl kullandığınızı duymak isterim.
@@ -0,0 +1,162 @@
1
+ ---
2
+ createdAt: 2025-09-07
3
+ updatedAt: 2025-09-07
4
+ title: react-i18next vs react-intl vs Intlayer
5
+ description: react-i18next'i next-intl ve Intlayer ile React uygulamasının uluslararasılaştırması (i18n) için entegre edin
6
+ keywords:
7
+ - next-intl
8
+ - react-i18next
9
+ - Intlayer
10
+ - Internationalization
11
+ - Blog
12
+ - Next.js
13
+ - JavaScript
14
+ - React
15
+ slugs:
16
+ - blog
17
+ - react-i18next-vs-react-intl-vs-intlayer
18
+ ---
19
+
20
+ # react-Intl VS react-i18next VS intlayer | React Uluslararasılaştırma (i18n)
21
+
22
+ Bu rehber, **React** için üç yerleşik i18n seçeneğini karşılaştırır: **react-intl** (FormatJS), **react-i18next** (i18next) ve **Intlayer**.
23
+ **Düz React** uygulamalarına (örneğin, Vite, CRA, SPA) odaklanıyoruz. Next.js kullanıyorsanız, özel Next.js karşılaştırmamıza bakın.
24
+
25
+ Şunları değerlendiriyoruz:
26
+
27
+ - Mimari ve içerik organizasyonu
28
+ - TypeScript ve güvenlik
29
+ - Eksik çeviri işleme
30
+ - Zengin içerik ve formatlama yetenekleri
31
+ - Performans ve yükleme davranışı
32
+ - Geliştirici deneyimi (DX), araçlar ve bakım
33
+ - SEO/yönlendirme (çerçeve bağımlı)
34
+
35
+ > **tl;dr**: Üçü de bir React uygulamasını yerelleştirebilir. **Bileşen kapsamlı içerik**, **katı TypeScript türleri**, **derleme zamanı eksik anahtar kontrolleri**, **ağaç sallanan sözlükler** ve yerleşik düzenleme araçları (Görsel Düzenleyici/CMS + isteğe bağlı AI çeviri) istiyorsanız, **Intlayer** modüler React kod tabanları için en kapsamlı seçimdir.
36
+
37
+ ---
38
+
39
+ ## Yüksek düzey konumlandırma
40
+
41
+ - **react-intl** - ICU-ilk, standartlara uygun formatlama (tarihler/sayılar/çoğullar) olgun bir API ile. Kataloglar genellikle merkezi; anahtar güvenliği ve derleme zamanı doğrulama büyük ölçüde sizin sorumluluğunuzdur.
42
+ - **react-i18next** - Son derece popüler ve esnek; ad alanları, detektörler ve birçok eklenti (ICU, arka uçlar). Güçlü, ancak yapılandırma projeler büyüdükçe yayılabilir.
43
+ - **Intlayer** - React için bileşen merkezli içerik modeli, **katı TS yazımı**, **derleme zamanı kontrolleri**, **ağaç sallama**, artı **Görsel Düzenleyici/CMS** ve **AI destekli çeviriler**. React Router, Vite, CRA vb. ile çalışır.
44
+
45
+ ---
46
+
47
+ ## Özellik matrisi (React odaklı)
48
+
49
+ | Özellik | `react-intlayer` (Intlayer) | `react-i18next` (i18next) | `react-intl` (FormatJS) |
50
+ | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
51
+ | **Bileşenlere Yakın Çeviriler** | ✅ Evet, içerik her bileşenle birlikte yerleştirilir | ❌ Hayır | ❌ Hayır |
52
+ | **TypeScript Entegrasyonu** | ✅ Gelişmiş, otomatik olarak oluşturulan katı türler | ⚠️ Temel; güvenlik için ekstra yapılandırma | ✅ İyi, ancak daha az katı |
53
+ | **Eksik Çeviri Algılama** | ✅ TypeScript hata vurgulaması ve derleme zamanı hata/uyarı | ⚠️ Çoğunlukla çalışma zamanında geri dönüş dizeleri | ⚠️ Geri dönüş dizeleri |
54
+ | **Zengin İçerik (JSX/Markdown/bileşenler)** | ✅ Doğrudan destek | ⚠️ Sınırlı / sadece enterpolasyon | ⚠️ ICU sözdizimi, gerçek JSX değil |
55
+ | **AI destekli Çeviri** | ✅ Evet, birden fazla AI sağlayıcısını destekler. Kendi API anahtarlarınızı kullanarak kullanılabilir. Uygulamanızın bağlamını ve içerik kapsamını dikkate alır | ❌ Hayır | ❌ Hayır |
56
+ | **Görsel Düzenleyici** | ✅ Evet, yerel Görsel Düzenleyici + isteğe bağlı CMS; kod tabanı içeriğini dışa aktarabilir; gömülebilir | ❌ Hayır / harici yerelleştirme platformları aracılığıyla mevcut | ❌ Hayır / harici yerelleştirme platformları aracılığıyla mevcut |
57
+ | **Yerelleştirilmiş Yönlendirme** | ✅ Evet, kutudan çıkar çıkmaz yerelleştirilmiş yolları destekler (Next.js ve Vite ile çalışır) | ⚠️ Yerleşik değil, eklentiler gerektirir (örneğin `next-i18next`) veya özel yönlendirici yapılandırması | ❌ Hayır, sadece mesaj formatlaması, yönlendirme manuel olmalı |
58
+ | **Dinamik Yol Oluşturma** | ✅ Evet | ⚠️ Eklenti/ekosistem veya manuel kurulum | ❌ Sağlanmadı |
59
+ | **Çoğullaştırma** | ✅ Numaralandırma tabanlı desenler | ✅ Yapılandırılabilir (i18next-icu gibi eklentiler) | ✅ (ICU) |
60
+ | **Formatlama (tarihler, sayılar, para birimleri)** | ✅ Optimize edilmiş formatlayıcılar (Intl altında) | ⚠️ Eklentiler veya özel Intl kullanımı aracılığıyla | ✅ ICU formatlayıcıları |
61
+ | **İçerik Formatı** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml WIP) | ⚠️ .json | ✅ .json, .js |
62
+ | **ICU desteği** | ⚠️ WIP | ⚠️ Eklenti aracılığıyla (i18next-icu) | ✅ Evet |
63
+ | **SEO Yardımcıları (hreflang, site haritası)** | ✅ Yerleşik araçlar: site haritası, robots.txt, meta veri için yardımcılar | ⚠️ Topluluk eklentileri/manuel | ❌ Çekirdek değil |
64
+ | **Ekosistem / Topluluk** | ⚠️ Daha küçük ama hızlı büyüyen ve reaktif | ✅ En büyük ve olgun | ✅ Büyük |
65
+ | **Sunucu Tarafı Oluşturma ve Sunucu Bileşenleri** | ✅ Evet, SSR / React Server Components için kolaylaştırılmış | ⚠️ Sayfa düzeyinde desteklenir ancak alt sunucu bileşenleri için t-fonksiyonlarını bileşen ağacında geçmeniz gerekir | ❌ Desteklenmiyor, alt sunucu bileşenleri için t-fonksiyonlarını bileşen ağacında geçmeniz gerekir |
66
+ | **Ağaç sallama (yalnızca kullanılan içeriği yükle)** | ✅ Evet, Babel/SWC eklentileri aracılığıyla derleme zamanında bileşen başına | ⚠️ Genellikle hepsini yükler (ad alanları/kod bölme ile iyileştirilebilir) | ⚠️ Genellikle hepsini yükler |
67
+ | **Tembel yükleme** | ✅ Evet, yerel / sözlük başına | ✅ Evet (örneğin, arka uçlar/ad alanları isteğe bağlı) | ✅ Evet (bölünmüş yerel paketler) |
68
+ | **Kullanılmayan içeriği temizle** | ✅ Evet, derleme zamanında sözlük başına | ❌ Hayır, sadece manuel ad alanı segmentasyonu aracılığıyla | ❌ Hayır, tüm beyan edilen mesajlar paketlenir |
69
+ | **Büyük Projelerin Yönetimi** | ✅ Modüler teşvik eder, tasarım sistemi için uygundur | ⚠️ İyi dosya disiplini gerektir | ⚠️ Merkezi kataloglar büyük olabilir |
70
+
71
+ ---
72
+
73
+ ## Derinlemesine karşılaştırma
74
+
75
+ ### 1) Mimari ve ölçeklenebilirlik
76
+
77
+ - **react-intl / react-i18next**: Çoğu kurulum dil başına **merkezi yerel klasörleri** korur, bazen **ad alanlarına** göre bölünür (i18next). Başlangıçta iyi çalışır ancak uygulamalar büyüdükçe paylaşılan bir yüzey alanı haline gelir.
78
+ - **Intlayer**: Hizmet ettikleri UI ile birlikte **bileşen başına (veya özellik başına) sözlükleri** teşvik eder. Bu, sahipliği net tutar, bileşenlerin çoğaltılmasını/migrasyonunu kolaylaştırır ve ekip arası anahtar karmaşasını azaltır. Kullanılmayan içerik daha kolay tespit edilir ve kaldırılır.
79
+
80
+ **Neden önemli:** Modüler içerik modüler UI'yi yansıtır. Büyük React kod tabanları, çeviriler bileşenlerle birlikte yaşadığında daha temiz kalır.
81
+
82
+ ---
83
+
84
+ ### 2) TypeScript ve güvenlik
85
+
86
+ - **react-intl**: Sağlam yazımlar, ancak **otomatik anahtar yazımı yok**; güvenlik desenlerini kendiniz uygularsınız.
87
+ - **react-i18next**: Hook'lar için güçlü yazımlar; **katı anahtar yazımı** genellikle ekstra yapılandırma veya oluşturucular gerektirir.
88
+ - **Intlayer**: İçeriğinizden **katı türler oluşturur**. IDE otomatik tamamlama ve **derleme zamanı hataları** çalışma zamanından önce yazım hatalarını ve eksik anahtarları yakalar.
89
+
90
+ **Neden önemli:** Başarısızlıkları **sol** (derleme/CI) kaydırmak üretim sorunlarını azaltır ve geliştirici geri bildirim döngülerini hızlandırır.
91
+
92
+ ---
93
+
94
+ ### 3) Eksik çeviri işleme
95
+
96
+ - **react-intl / react-i18next**: **Çalışma zamanı geri dönüşlerine** varsayılan (anahtar yankısı veya varsayılan yerel). Linting/eklentiler ekleyebilirsiniz, ancak derlemede garanti edilmez.
97
+ - **Intlayer**: Gerekli yerel/anahtarlar eksik olduğunda **derleme zamanı algılama** ile uyarılar veya hatalar.
98
+
99
+ **Neden önemli:** Eksik dizeler üzerinde CI başarısızlığı, "gizem İngilizce"nin İngilizce olmayan UI'lere sızmasını önler.
100
+
101
+ ---
102
+
103
+ ### 4) Zengin içerik ve formatlama
104
+
105
+ - **react-intl**: Çoğullar, seçerler, tarihler/sayılar ve mesaj kompozisyonu için mükemmel **ICU** desteği. JSX kullanılabilir, ancak zihinsel model mesaj merkezli kalır.
106
+ - **react-i18next**: Esnek enterpolasyon ve öğeler/bileşenler gömmek için **`<Trans>`**; ICU eklenti aracılığıyla mevcut.
107
+ - **Intlayer**: İçerik dosyaları **zengin düğümler** (JSX/Markdown/bileşenler) ve **meta veri** içerebilir. Formatlama Intl altında kullanılır; çoğul desenler ergonomiktir.
108
+
109
+ **Neden önemli:** Karmaşık UI metinleri (bağlantılar, kalın parçalar, satır içi bileşenler), kütüphane React düğümlerini temiz bir şekilde benimsediğinde daha kolaydır.
110
+
111
+ ---
112
+
113
+ ### 5) Performans ve yükleme davranışı
114
+
115
+ - **react-intl / react-i18next**: Genellikle **katalog bölme** ve **tembel yükleme** yi manuel olarak yönetirsiniz (ad alanları/dinamik içe aktarmalar). Etkili ancak disiplin gerektirir.
116
+ - **Intlayer**: Kullanılmayan sözlükleri **ağaç sallar** ve **sözlük başına/yere göre tembel yükleme** yi kutudan çıkarır.
117
+
118
+ **Neden önemli:** Daha küçük paketler ve daha az kullanılmayan dize başlatma ve navigasyon performansını iyileştirir.
119
+
120
+ ---
121
+
122
+ ### 6) DX, araçlar ve bakım
123
+
124
+ - **react-intl / react-i18next**: Geniş topluluk ekosistemi; düzenleme iş akışları için genellikle harici yerelleştirme platformlarını benimser.
125
+ - **Intlayer**: **Ücretsiz Görsel Düzenleyici** ve **isteğe bağlı CMS** gönderir (içeriği Git'te tutun veya dışa aktarın). Ayrıca içerik yazımı için **VSCode uzantısı** ve kendi sağlayıcı anahtarlarınızı kullanarak **AI destekli çeviri**.
126
+
127
+ **Neden önemli:** Yerleşik araçlar geliştiriciler ve içerik yazarları arasındaki döngüyü kısaltır - daha az yapıştırıcı kod, daha az satıcı bağımlılığı.
128
+
129
+ ---
130
+
131
+ ## Hangisini ne zaman seçmeli?
132
+
133
+ - **react-intl**'i seçin eğer **ICU-ilk** mesaj formatlaması istiyorsanız, standartlara uygun bir API ile ve ekibiniz katalogları ve güvenlik kontrollerini manuel olarak sürdürmekle rahat.
134
+ - **react-i18next**'i seçin eğer **i18next'in ekosisteminin genişliğine** ihtiyacınız varsa (detektörler, arka uçlar, ICU eklentisi, entegrasyonlar) ve esnekliği kazanmak için daha fazla yapılandırma kabul ediyorsanız.
135
+ - **Intlayer**'ı seçin eğer **bileşen kapsamlı içerik**, **katı TypeScript**, **derleme zamanı garantileri**, **ağaç sallama** ve **pil dahil** düzenleme araçlarını takdir ediyorsanız - özellikle **büyük, modüler** React uygulamaları, tasarım sistemleri vb. için.
136
+
137
+ ---
138
+
139
+ ## `react-intl` ve `react-i18next` ile birlikte çalışabilirlik
140
+
141
+ `intlayer`, `react-intl` ve `react-i18next` ad alanlarınızı yönetmenize de yardımcı olabilir.
142
+
143
+ `intlayer` kullanarak, içeriğinizi favori i18n kütüphanenizin formatında beyan edebilirsiniz ve intlayer ad alanlarınızı istediğiniz konumda oluşturacaktır (örnek: `/messages/{{locale}}/{{namespace}}.json`).
144
+
145
+ Daha fazla detay için [`dictionaryOutput` ve `i18nextResourcesDir` seçeneklerine](https://intlayer.org/doc/concept/configuration#content-configuration) bakın.
146
+
147
+ ---
148
+
149
+ ## GitHub YILDIZLARI
150
+
151
+ GitHub yıldızları, bir projenin popülaritesinin, topluluk güveninin ve uzun vadeli öneminin güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve muhtemelen benimsediğini yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişmeyi karşılaştırmaya ve ekosistem büyümesine ilişkin içgörüler sağlamaya yardımcı olur.
152
+
153
+ ## [![Yıldız Geçmişi Grafiği](https://api.star-history.com/svg?repos=formatjs/formatjs&repos=i18next/react-i18next&repos=aymericzip/intlayer&type=Date)](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&aymericzip/intlayer)
154
+
155
+ ## Sonuç
156
+
157
+ Üç kütüphane de React'i etkili bir şekilde yerelleştirir. Farklılaştırıcı, **güvenli, ölçeklenebilir** bir kurulum elde etmek için ne kadar **altyapı** inşa etmeniz gerektiğidir:
158
+
159
+ - **Intlayer** ile, **modüler içerik**, **katı TS yazımı**, **derleme zamanı güvenliği**, **ağaç sallanan paketler** ve **düzenleme araçları** varsayılanlardır - görevler değildir.
160
+ - Ekibiniz çok yerel, bileşen odaklı React uygulamalarında **bakım ve hızı** takdir ediyorsa, Intlayer bugün **en kapsamlı** geliştirici ve içerik iş akışını sunar.
161
+
162
+ Daha fazla detay için ['Neden Intlayer?' dokümantasyonuna](https://intlayer.org/doc/why) bakın.