@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,346 @@
1
+ ---
2
+ createdAt: 2025-09-07
3
+ updatedAt: 2025-09-07
4
+ title: Intlayer ve react-i18next
5
+ description: React uygulaması için Intlayer'ı react-i18next ile karşılaştırın
6
+ keywords:
7
+ - react-i18next
8
+ - i18next
9
+ - Intlayer
10
+ - Internationalization
11
+ - Blog
12
+ - Next.js
13
+ - JavaScript
14
+ - React
15
+ slugs:
16
+ - blog
17
+ - intlayer-with-react-i18next
18
+ ---
19
+
20
+ # React Uluslararasılaştırma (i18n) ile react-i18next ve Intlayer
21
+
22
+ ## Genel Bakış
23
+
24
+ - **Intlayer**, çevirileri **bileşen düzeyinde** içerik beyan dosyaları aracılığıyla yönetmenize yardımcı olur.
25
+ - **react-i18next**, bileşenlerinizde yerelleştirilmiş dizeleri getirmek için `useTranslation` gibi hook'lar sağlayan **i18next** için popüler bir React entegrasyonudur.
26
+
27
+ Birleştirildiğinde, Intlayer **i18next-uyumlu JSON** olarak sözlükleri **dışa aktarabilir**, böylece react-i18next bunları çalışma zamanında **tüketebilir**.
28
+
29
+ ## Neden Intlayer'ı react-i18next ile Kullanmalı?
30
+
31
+ **Intlayer** içerik beyan dosyaları daha iyi bir geliştirici deneyimi sunar çünkü:
32
+
33
+ 1. **Dosya Yerleşiminde Esnek**
34
+ Her içerik beyan dosyasını ihtiyacı olan bileşenin yanına koyun. Bu yapı, çevirileri birlikte konumlandırarak bileşenler taşındığında veya silindiğinde yetim çevirileri önler.
35
+
36
+ ```bash codeFormat="typescript"
37
+ .
38
+ └── src
39
+ └── components
40
+ └── MyComponent
41
+ ├── index.content.ts # İçerik beyan dosyası
42
+ └── index.tsx
43
+ ```
44
+
45
+ ```bash codeFormat="esm"
46
+ .
47
+ └── src
48
+ └── components
49
+ └── MyComponent
50
+ ├── index.content.mjs # İçerik beyan dosyası
51
+ └── index.mjx
52
+ ```
53
+
54
+ ```bash codeFormat="cjs"
55
+ .
56
+ └── src
57
+ └── components
58
+ └── MyComponent
59
+ ├── index.content.cjs # İçerik beyan dosyası
60
+ └── index.cjx
61
+ ```
62
+
63
+ ```bash codeFormat="json"
64
+ .
65
+ └── src
66
+ └── components
67
+ └── MyComponent
68
+ ├── index.content.json # İçerik beyan dosyası
69
+ └── index.jsx
70
+ ```
71
+
72
+ 2. **Merkezi Çeviriler**
73
+ Tek bir içerik beyan dosyası bir bileşen için gerekli tüm çevirileri toplar, eksik çevirileri yakalamayı kolaylaştırır.
74
+ TypeScript ile, çeviriler eksikse derleme zamanı hataları bile alırsınız.
75
+
76
+ ## Kurulum
77
+
78
+ Create React App projesinde, bu bağımlılıkları yükleyin:
79
+
80
+ ```bash
81
+ # npm ile
82
+ npm install intlayer react-i18next i18next i18next-resources-to-backend
83
+ ```
84
+
85
+ ```bash
86
+ # yarn ile
87
+ yarn add intlayer react-i18next i18next i18next-resources-to-backend
88
+ ```
89
+
90
+ ```bash
91
+ # pnpm ile
92
+ pnpm add intlayer react-i18next i18next i18next-resources-to-backend
93
+ ```
94
+
95
+ ### Bu Paketler Nedir?
96
+
97
+ - **intlayer** – i18n yapılandırmalarını, içerik beyanlarını yönetmek ve sözlük çıktılarını oluşturmak için CLI ve çekirdek kütüphane.
98
+ - **react-intlayer** – Intlayer için React'e özel entegrasyon, özellikle sözlüklerin otomatik oluşturulmasını sağlayan bazı script'ler sağlar.
99
+ - **react-i18next** – i18next için React'e özel entegrasyon kütüphanesi, `useTranslation` hook'unu içerir.
100
+ - **i18next** – Çeviri işlemeyi yöneten temel çerçeve.
101
+ - **i18next-resources-to-backend** – JSON kaynaklarını dinamik olarak içe aktaran bir i18next arka ucu.
102
+
103
+ ## i18next Sözlüklerini Dışa Aktarmak İçin Intlayer'ı Yapılandırma
104
+
105
+ Projenizin kökünde `intlayer.config.ts` dosyasını oluşturun (veya güncelleyin):
106
+
107
+ ```typescript title="intlayer.config.ts"
108
+ import { Locales, type IntlayerConfig } from "intlayer";
109
+
110
+ const config: IntlayerConfig = {
111
+ internationalization: {
112
+ // İstediğiniz kadar yerel ekleyin
113
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
114
+ defaultLocale: Locales.ENGLISH,
115
+ },
116
+ content: {
117
+ // Intlayer'a i18next-uyumlu JSON oluşturmasını söyleyin
118
+ dictionaryOutput: ["i18next"],
119
+
120
+ // Oluşturulan kaynaklar için bir çıktı dizini seçin
121
+ // Bu klasör henüz yoksa oluşturulacaktır.
122
+ i18nextResourcesDir: "./i18next/resources",
123
+ },
124
+ };
125
+
126
+ export default config;
127
+ ```
128
+
129
+ > **Not**: TypeScript kullanmıyorsanız, bu yapılandırma dosyasını `.cjs`, `.mjs` veya `.js` olarak oluşturabilirsiniz (detaylar için [Intlayer dokümantasyonuna](https://intlayer.org/en/doc/concept/configuration) bakın).
130
+
131
+ ## i18next Kaynaklarını Oluşturma
132
+
133
+ İçerik beyanlarınız yerleştirildikten sonra (sonraki bölüm), **Intlayer build komutunu** çalıştırın:
134
+
135
+ ```bash
136
+ # npm ile
137
+ npx run intlayer build
138
+ ```
139
+
140
+ ```bash
141
+ # yarn ile
142
+ yarn intlayer build
143
+ ```
144
+
145
+ ```bash
146
+ # pnpm ile
147
+ pnpm intlayer build
148
+ ```
149
+
150
+ > Bu, varsayılan olarak `./i18next/resources` dizini içinde i18next kaynaklarınızı oluşturacaktır.
151
+
152
+ Tipik bir çıktı şöyle görünebilir:
153
+
154
+ ```bash
155
+ .
156
+ └── i18next
157
+ └── resources
158
+ ├── en
159
+ │ └── my-content.json
160
+ ├── fr
161
+ │ └── my-content.json
162
+ └── es
163
+ └── my-content.json
164
+ ```
165
+
166
+ Burada her **Intlayer** beyan anahtarı bir **i18next ad alanı** olarak kullanılır (örneğin, `my-content.json`).
167
+
168
+ ## Sözlükleri react-i18next Yapılandırmanıza İçe Aktarma
169
+
170
+ Bu kaynakları çalışma zamanında dinamik olarak yüklemek için [`i18next-resources-to-backend`](https://www.npmjs.com/package/i18next-resources-to-backend) kullanın. Örneğin, projenizde bir `i18n.ts` (veya `.js`) dosyası oluşturun:
171
+
172
+ ```typescript title="i18n.ts"
173
+ import i18next from "i18next";
174
+ import { initReactI18next } from "react-i18next";
175
+ import resourcesToBackend from "i18next-resources-to-backend";
176
+
177
+ i18next
178
+ // react-i18next eklentisi
179
+ .use(initReactI18next)
180
+ // kaynakları dinamik olarak yükle
181
+ .use(
182
+ resourcesToBackend((language: string, namespace: string) => {
183
+ // İçe aktarma yolunu kaynak dizininize göre ayarlayın
184
+ return import(`../i18next/resources/${language}/${namespace}.json`);
185
+ })
186
+ )
187
+ // i18next'i başlat
188
+ .init({
189
+ // Yedek yerel
190
+ fallbackLng: "en",
191
+
192
+ // Diğer i18next yapılandırma seçeneklerini buraya ekleyebilirsiniz, bkz.:
193
+ // https://www.i18next.com/overview/configuration-options
194
+ });
195
+
196
+ export default i18next;
197
+ ```
198
+
199
+ ```javascript title="i18n.js"
200
+ import i18next from "i18next";
201
+ import { initReactI18next } from "react-i18next";
202
+ import resourcesToBackend from "i18next-resources-to-backend";
203
+
204
+ i18next
205
+ .use(initReactI18next)
206
+ .use(
207
+ resourcesToBackend(
208
+ (language, namespace) =>
209
+ import(`../i18next/resources/${language}/${namespace}.json`)
210
+ )
211
+ )
212
+ .init({
213
+ fallbackLng: "en",
214
+ });
215
+
216
+ export default i18next;
217
+ ```
218
+
219
+ Sonra, **kök** veya **index** dosyanızda (örneğin, `src/index.tsx`), bu `i18n` kurulumunu `App` render edilmeden **önce** içe aktarın:
220
+
221
+ ```typescript
222
+ import React from "react";
223
+ import ReactDOM from "react-dom/client";
224
+ // Her şeyden önce i18n'i başlat
225
+ import "./i18n";
226
+ import App from "./App";
227
+
228
+ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
229
+ <React.StrictMode>
230
+ <App />
231
+ </React.StrictMode>
232
+ );
233
+ ```
234
+
235
+ ## Sözlüklerinizi Oluşturma ve Yönetme
236
+
237
+ Intlayer çevirileri `./src` altında (varsayılan olarak) bulunan "içerik beyan dosyalarından" çıkarır.
238
+ TypeScript'te minimal bir örnek burada:
239
+
240
+ ```typescript title="src/components/MyComponent/MyComponent.content.ts"
241
+ import { t, type Dictionary } from "intlayer";
242
+
243
+ const content = {
244
+ // "key" sizin i18next ad alanınız olacak (örneğin, "my-component")
245
+ key: "my-component",
246
+ content: {
247
+ // Her "t" çağrısı ayrı bir çeviri düğümüdür
248
+ heading: t({
249
+ en: "Hello World",
250
+ es: "Hola Mundo",
251
+ fr: "Bonjour le monde",
252
+ }),
253
+ description: t({
254
+ en: "My i18n description text...",
255
+ fr: "Ma description en i18n...",
256
+ es: "Mi descripción en i18n...",
257
+ }),
258
+ },
259
+ } satisfies Dictionary;
260
+
261
+ export default content;
262
+ ```
263
+
264
+ JSON, `.cjs` veya `.mjs` tercih ederseniz, [Intlayer dokümantasyonuna](https://intlayer.org/en/doc/concept/content) bakın.
265
+
266
+ > Varsayılan olarak, geçerli içerik beyanları dosya uzantısı kalıbıyla eşleşir:
267
+
268
+ > `*.content.{ts,tsx,js,jsx,mjs,mjx,cjs,cjx,json}`
269
+
270
+ ## React Bileşenlerinde Çevirileri Kullanma
271
+
272
+ Intlayer kaynaklarınızı **oluşturduktan** ve react-i18next'i yapılandırdıktan sonra, **react-i18next**'ten `useTranslation` hook'unu doğrudan kullanabilirsiniz.
273
+ Örneğin:
274
+
275
+ ```tsx title="src/components/MyComponent/MyComponent.tsx"
276
+ import type { FC } from "react";
277
+ import { useTranslation } from "react-i18next";
278
+
279
+ /**
280
+ * i18next "ad alanı" "MyComponent.content.ts" dosyasındaki Intlayer `key`'dir
281
+ * bu yüzden useTranslation()'a "my-component" geçireceğiz.
282
+ */
283
+ const MyComponent: FC = () => {
284
+ const { t } = useTranslation("my-component");
285
+
286
+ return (
287
+ <div>
288
+ <h1>{t("heading")}</h1>
289
+ <p>{t("description")}</p>
290
+ </div>
291
+ );
292
+ };
293
+
294
+ export default MyComponent;
295
+ ```
296
+
297
+ > `t` fonksiyonunun oluşturulan JSON içindeki **anahtarlara** başvurduğunu unutmayın. `heading` adlı bir Intlayer içerik girişi için `t("heading")` kullanacaksınız.
298
+
299
+ ## İsteğe Bağlı: Create React App Scripts (CRACO) ile Entegrasyon
300
+
301
+ **react-intlayer**, özel yapılar ve dev sunucu yapılandırması için CRACO tabanlı bir yaklaşım sağlar. Intlayer'ın build adımını sorunsuz bir şekilde entegre etmek istiyorsanız:
302
+
303
+ 1. **react-intlayer** yükleyin (henüz yüklemediyseniz):
304
+ ```bash
305
+ npm install react-intlayer --save-dev
306
+ ```
307
+ 2. **`package.json` script'lerinizi** `react-intlayer` script'lerini kullanacak şekilde ayarlayın:
308
+
309
+ ```jsonc
310
+ "scripts": {
311
+ "start": "react-intlayer start",
312
+ "build": "react-intlayer build",
313
+ "transpile": "intlayer build"
314
+ }
315
+ ```
316
+
317
+ > `react-intlayer` script'leri [CRACO](https://craco.js.org/) tabanlıdır. intlayer craco eklentisine dayalı kendi kurulumunuzu da uygulayabilirsiniz. [Örneğe buradan bakın](https://github.com/aymericzip/intlayer/blob/main/examples/react-app/craco.config.js).
318
+
319
+ Şimdi, `npm run build`, `yarn build` veya `pnpm build` çalıştırmak hem Intlayer hem de CRA yapılarını tetikler.
320
+
321
+ ## TypeScript Yapılandırması
322
+
323
+ **Intlayer**, içeriğiniz için **otomatik oluşturulan tip tanımlarını** sağlar. TypeScript'in bunları almasını sağlamak için **`types`** (veya farklı yapılandırdıysanız `types`) dizinini `tsconfig.json` **include** dizisine ekleyin:
324
+
325
+ ```json5 title="tsconfig.json"
326
+ {
327
+ "compilerOptions": {
328
+ // ...
329
+ },
330
+ "include": ["src", "types"],
331
+ }
332
+ ```
333
+
334
+ > Bu, TypeScript'in çevirilerinizin şeklini çıkararak daha iyi otomatik tamamlama ve hata algılama sağlamasına izin verir.
335
+
336
+ ## Git Yapılandırması
337
+
338
+ Intlayer tarafından otomatik oluşturulan dosyaları ve klasörleri **yoksaymak** önerilir. `.gitignore` dosyanıza bu satırı ekleyin:
339
+
340
+ ```plaintext
341
+ # Intlayer tarafından oluşturulan dosyaları yoksay
342
+ .intlayer
343
+ i18next
344
+ ```
345
+
346
+ Genellikle bu kaynakları veya `.intlayer` iç yapı eserlerini **commit etmezsiniz**, çünkü her yapıda yeniden oluşturulabilirler.
@@ -0,0 +1,345 @@
1
+ ---
2
+ createdAt: 2025-09-07
3
+ updatedAt: 2025-09-07
4
+ title: Intlayer ve react-intl
5
+ description: React uygulaması için Intlayer'ı react-intl ile entegre edin
6
+ keywords:
7
+ - react-intl
8
+ - Intlayer
9
+ - Internationalization
10
+ - Blog
11
+ - Next.js
12
+ - JavaScript
13
+ - React
14
+ slugs:
15
+ - blog
16
+ - intlayer-with-react-intl
17
+ ---
18
+
19
+ # React Uluslararasılaştırma (i18n) ile **react-intl** ve Intlayer
20
+
21
+ Bu rehber, React uygulamasında çevirileri yönetmek için **Intlayer**'ı **react-intl** ile nasıl entegre edeceğinizi gösterir. Çevrilebilir içeriğinizi Intlayer ile beyan edeceksiniz ve ardından bu mesajları **react-intl** ile tüketeceksiniz, [FormatJS](https://formatjs.io/docs/react-intl) ekosisteminden popüler bir kütüphane.
22
+
23
+ ## Genel Bakış
24
+
25
+ - **Intlayer**, çevirileri projenizde **bileşen düzeyinde** içerik beyan dosyalarında (JSON, JS, TS vb.) saklamanıza izin verir.
26
+ - **react-intl**, yerelleştirilmiş dizeleri görüntülemek için React bileşenleri ve hook'lar ( `<FormattedMessage>` ve `useIntl()` gibi) sağlar.
27
+
28
+ Intlayer'ı çevirileri **react-intl–uyumlu** bir formatta **dışa aktarmak** için yapılandırarak, `<IntlProvider>` (react-intl'den) tarafından gereken mesaj dosyalarını otomatik olarak **oluşturabilir** ve **güncelleyebilirsiniz**.
29
+
30
+ ---
31
+
32
+ ## Neden Intlayer'ı react-intl ile Kullanmalı?
33
+
34
+ 1. **Bileşen Başına Sözlükler**
35
+ Intlayer içerik beyan dosyaları React bileşenlerinizin yanında yaşayabilir, bileşenler taşındığında veya kaldırıldığında "yetim" çevirileri önler. Örneğin:
36
+
37
+ ```bash
38
+ .
39
+ └── src
40
+ └── components
41
+ └── MyComponent
42
+ ├── index.content.ts # Intlayer içerik beyan
43
+ └── index.tsx # React bileşeni
44
+ ```
45
+
46
+ 2. **Merkezi Çeviriler**
47
+ Her içerik beyan dosyası bir bileşen tarafından ihtiyaç duyulan tüm çevirileri toplar. Bu, özellikle TypeScript projelerinde yardımcı olur: eksik çeviriler **derleme zamanında** yakalanabilir.
48
+
49
+ 3. **Otomatik Oluşturma ve Yeniden Oluşturma**
50
+ Çeviri eklediğinizde veya güncellediğinizde, Intlayer mesaj JSON dosyalarını yeniden oluşturur. Bunları react-intl’in `<IntlProvider>`'ına geçebilirsiniz.
51
+
52
+ ---
53
+
54
+ ## Kurulum
55
+
56
+ Tipik bir React projesinde şunları yükleyin:
57
+
58
+ ```bash
59
+ # npm ile
60
+ npm install intlayer react-intl
61
+
62
+ # yarn ile
63
+ yarn add intlayer react-intl
64
+
65
+ # pnpm ile
66
+ pnpm add intlayer react-intl
67
+ ```
68
+
69
+ ### Bu Paketler Neden?
70
+
71
+ - **intlayer**: İçerik beyanlarını tarar, birleştirir ve sözlük çıktılarını oluşturur.
72
+ - **react-intl**: FormatJS'ten ana kütüphane, `<IntlProvider>`, `<FormattedMessage>`, `useIntl()` ve diğer uluslararasılaştırma primitiflerini sağlar.
73
+
74
+ > React'i henüz yüklemediyseniz, onu da yüklemeniz gerekir (`react` ve `react-dom`).
75
+
76
+ ## react-intl Mesajlarını Dışa Aktarmak İçin Intlayer'ı Yapılandırma
77
+
78
+ Projenizin kökünde **`intlayer.config.ts`** (veya `.js`, `.mjs`, `.cjs`) oluşturun:
79
+
80
+ ```typescript title="intlayer.config.ts"
81
+ import { Locales, type IntlayerConfig } from "intlayer";
82
+
83
+ const config: IntlayerConfig = {
84
+ internationalization: {
85
+ // İstediğiniz kadar yerel ekleyin
86
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
87
+ defaultLocale: Locales.ENGLISH,
88
+ },
89
+ content: {
90
+ // Intlayer'a react-intl için mesaj dosyaları oluşturmasını söyler
91
+ dictionaryOutput: ["react-intl"],
92
+
93
+ // Intlayer'ın mesaj JSON dosyalarınızı yazacağı dizin
94
+ reactIntlMessagesDir: "./react-intl/messages",
95
+ },
96
+ };
97
+
98
+ export default config;
99
+ ```
100
+
101
+ > **Not**: Diğer dosya uzantıları için (`.mjs`, `.cjs`, `.js`), kullanım detayları için [Intlayer dokümantasyonuna](https://intlayer.org/en/doc/concept/configuration) bakın.
102
+
103
+ ---
104
+
105
+ ## Intlayer Sözlüklerinizi Oluşturma
106
+
107
+ Intlayer kod tabanınızı (varsayılan olarak `./src` altında) `*.content.{ts,tsx,js,jsx,mjs,mjx,cjs,cjx,json}` ile eşleşen dosyalar için tarar.
108
+ **TypeScript** örneği burada:
109
+
110
+ ```typescript title="src/components/MyComponent/index.content.ts"
111
+ import { t, type Dictionary } from "intlayer";
112
+
113
+ const content = {
114
+ // "key" react-intl JSON dosyanızda üst düzey mesaj anahtarı olur
115
+ key: "my-component",
116
+
117
+ content: {
118
+ // t() çağrısının her biri çevrilebilir bir alan beyan eder
119
+ helloWorld: t({
120
+ en: "Hello World",
121
+ es: "Hola Mundo",
122
+ fr: "Bonjour le monde",
123
+ }),
124
+ description: t({
125
+ en: "This is a description",
126
+ fr: "Ceci est une description",
127
+ es: "Esta es una descripción",
128
+ }),
129
+ },
130
+ } satisfies Dictionary;
131
+
132
+ export default content;
133
+ ```
134
+
135
+ JSON veya farklı JS türlerini tercih ederseniz (`.cjs`, `.mjs`), yapı büyük ölçüde aynıdır, bkz. [Intlayer içerik beyan dokümantasyonu](https://intlayer.org/en/doc/concept/content).
136
+
137
+ ---
138
+
139
+ ## react-intl Mesajlarını Oluşturma
140
+
141
+ **react-intl** için gerçek mesaj JSON dosyalarını oluşturmak için şunu çalıştırın:
142
+
143
+ ```bash
144
+ # npm ile
145
+ npx intlayer dictionaries build
146
+
147
+ # yarn ile
148
+ yarn intlayer build
149
+
150
+ # pnpm ile
151
+ pnpm intlayer build
152
+ ```
153
+
154
+ Bu, tüm `*.content.*` dosyalarını tarar, derler ve sonuçları **`intlayer.config.ts`**'inizde belirtilen dizine yazar, bu örnekte `./react-intl/messages`.
155
+ Tipik bir çıktı şöyle görünebilir:
156
+
157
+ ```bash
158
+ .
159
+ └── react-intl
160
+ └── messages
161
+ ├── en.json
162
+ ├── fr.json
163
+ └── es.json
164
+ ```
165
+
166
+ Her dosya, beyanlarınızın her **`content.key`**'ine karşılık gelen **üst düzey anahtarlara** sahip bir JSON nesnesidir. **Alt anahtarlar** ( `helloWorld` gibi) o içerik öğesi içinde beyan edilen çevirileri yansıtır.
167
+
168
+ Örneğin, **en.json** şöyle görünebilir:
169
+
170
+ ```json fileName="react-intl/messages/en/my-component.json"
171
+ {
172
+ "helloWorld": "Hello World",
173
+ "description": "This is a description"
174
+ }
175
+ ```
176
+
177
+ ---
178
+
179
+ ## React Uygulamanızda react-intl'i Başlatma
180
+
181
+ ### 1. Oluşturulan Mesajları Yükleyin
182
+
183
+ Uygulamanızın kök bileşenini yapılandırdığınız yerde (örneğin, `src/main.tsx` veya `src/index.tsx`), şunları yapmanız gerekir:
184
+
185
+ 1. **İçe aktarın** oluşturulan mesaj dosyalarını (statik olarak veya dinamik olarak).
186
+ 2. **Sağlayın** bunları `react-intl`'den `<IntlProvider>`'a.
187
+
188
+ Basit bir yaklaşım onları **statik olarak** içe aktarmaktır:
189
+
190
+ ```typescript title="src/index.tsx"
191
+ import React from "react";
192
+ import ReactDOM from "react-dom/client";
193
+ import { IntlProvider } from "react-intl";
194
+ import App from "./App";
195
+
196
+ // Yapı çıktısından JSON dosyalarını içe aktarın.
197
+ // Alternatif olarak, kullanıcının seçtiği yerele göre dinamik olarak içe aktarabilirsiniz.
198
+ import en from "../react-intl/messages/en.json";
199
+ import fr from "../react-intl/messages/fr.json";
200
+ import es from "../react-intl/messages/es.json";
201
+
202
+
203
+
204
+ // Vite'nin import.meta.glob kullanarak tüm JSON dosyalarını dinamik olarak içe aktarın
205
+ const messages = import.meta.glob("../react-intl/messages/**/*.json", {
206
+ eager: true,
207
+ });
208
+
209
+ // Mesajları yapılandırılmış bir kayda toplayın
210
+ const messagesRecord: Record<string, Record<string, any>> = {};
211
+
212
+ Object.entries(messages).forEach(([path, module]) => {
213
+ // Dosya yolundan yerel ve ad alanını çıkarın
214
+ const [, locale, namespace] = path.match(/messages\/(\w+)\/(.+?)\.json$/) ?? [];
215
+ if (locale && namespace) {
216
+ messagesRecord[locale] = messagesRecord[locale] ?? {};
217
+ messagesRecord[locale][namespace] = module.default; // JSON içeriğini atayın
218
+ }
219
+ });
220
+
221
+ // Her yerel için ad alanlarını birleştirin
222
+ const mergeMessages = (locale: string) =>
223
+ Object.values(messagesRecord[locale] ?? {}).reduce(
224
+ (acc, namespaceMessages) => ({ ...acc, ...namespaceMessages }),
225
+ {}
226
+ );
227
+
228
+ // Kullanıcının dilini algılamak için bir mekanizmanız varsa, burada ayarlayın.
229
+ // Basitlik için İngilizce'yi seçelim.
230
+ const locale = "en";
231
+
232
+
233
+ ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
234
+ <React.StrictMode>
235
+ <IntlProvider locale={locale} messages={mergeMessages(locale)}>
236
+ <App />
237
+ </IntlProvider>
238
+ </React.StrictMode>
239
+ );
240
+ ```
241
+
242
+ > **İpucu**: Gerçek projeler için şunları yapabilirsiniz:
243
+
244
+ > - JSON mesajlarını çalışma zamanında dinamik olarak yükleyin.
245
+ > - Ortama dayalı, tarayıcıya dayalı veya kullanıcı hesabına dayalı yerel algılama kullanın.
246
+
247
+ ### 2. `<FormattedMessage>` veya `useIntl()` Kullanın
248
+
249
+ Mesajlarınız `<IntlProvider>`'a yüklendikten sonra, herhangi bir alt bileşen react-intl'i yerelleştirilmiş dizelere erişmek için kullanabilir. İki ana yaklaşım vardır:
250
+
251
+ - **`<FormattedMessage>`** bileşeni
252
+ - **`useIntl()`** hook'u
253
+
254
+ ---
255
+
256
+ ## React Bileşenlerinde Çevirileri Kullanma
257
+
258
+ ### Yaklaşım A: `<FormattedMessage>`
259
+
260
+ Hızlı satır içi kullanım için:
261
+
262
+ ```tsx title="src/components/MyComponent/index.tsx"
263
+ import React from "react";
264
+ import { FormattedMessage } from "react-intl";
265
+
266
+ export default function MyComponent() {
267
+ return (
268
+ <div>
269
+ <h1>
270
+ {/* “my-component.helloWorld” en.json, fr.json vb.'den anahtara başvurur */}
271
+ <FormattedMessage id="my-component.helloWorld" />
272
+ </h1>
273
+
274
+ <p>
275
+ <FormattedMessage id="my-component.description" />
276
+ </p>
277
+ </div>
278
+ );
279
+ }
280
+ ```
281
+
282
+ > `<FormattedMessage>`'teki **`id`** prop'u **üst düzey anahtar** (`my-component`) artı herhangi bir alt anahtar (`helloWorld`) ile eşleşmelidir.
283
+
284
+ ### Yaklaşım B: `useIntl()`
285
+
286
+ Daha dinamik kullanım için:
287
+
288
+ ```tsx title="src/components/MyComponent/index.tsx"
289
+ import React from "react";
290
+ import { useIntl } from "react-intl";
291
+
292
+ export default function MyComponent() {
293
+ const intl = useIntl();
294
+
295
+ return (
296
+ <div>
297
+ <h1>{intl.formatMessage({ id: "my-component.helloWorld" })}</h1>
298
+ <p>{intl.formatMessage({ id: "my-component.description" })}</p>
299
+ </div>
300
+ );
301
+ }
302
+ ```
303
+
304
+ Her iki yaklaşım da geçerlidir, uygulamanıza uygun olanı seçin.
305
+
306
+ ---
307
+
308
+ ## Yeni Çeviriler Güncelleme veya Ekleme
309
+
310
+ 1. Herhangi bir `*.content.*` dosyasında içeriği **ekleyin veya değiştirin**.
311
+ 2. `./react-intl/messages` altında JSON dosyalarını yeniden oluşturmak için `intlayer build` komutunu yeniden çalıştırın.
312
+ 3. React (ve react-intl) güncellemeleri bir sonraki yeniden oluşturma veya yeniden yükleme sırasında alacak.
313
+
314
+ ---
315
+
316
+ ## TypeScript Entegrasyonu (İsteğe Bağlı)
317
+
318
+ TypeScript kullanıyorsanız, Intlayer çevirileriniz için **tip tanımlarını oluşturabilir**.
319
+
320
+ - `tsconfig.json`'ınızın `"include"` dizisinde `types` klasörünüzü (veya Intlayer'ın oluşturduğu çıktı klasörünü) içerdiğinden emin olun.
321
+
322
+ ```json5
323
+ {
324
+ "compilerOptions": {
325
+ // ...
326
+ },
327
+ "include": ["src", "types"],
328
+ }
329
+ ```
330
+
331
+ Oluşturulan tipler, React bileşenlerinizde eksik çevirileri veya geçersiz anahtarları derleme zamanında algılamaya yardımcı olabilir.
332
+
333
+ ---
334
+
335
+ ## Git Yapılandırması
336
+
337
+ Intlayer'ın iç yapı eserlerini sürüm kontrolünden **hariç tutmak** yaygındır. `.gitignore` dosyanıza şunu ekleyin:
338
+
339
+ ```plaintext
340
+ # Intlayer yapı eserlerini yoksay
341
+ .intlayer
342
+ react-intl
343
+ ```
344
+
345
+ İş akışınıza bağlı olarak, `./react-intl/messages` içindeki son sözlükleri yoksayabilir veya commit edebilirsiniz. CI/CD boru hattınız onları yeniden oluşturuyorsa, güvenle yoksayabilirsiniz; aksi takdirde, üretim dağıtımları için ihtiyaç duyarsanız commit edin.