@intlayer/docs 9.1.3 → 9.3.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 (482) hide show
  1. package/blog/ar/index.md +1 -1
  2. package/blog/ar/rag_powered_documentation_assistant.md +7 -0
  3. package/blog/de/index.md +1 -1
  4. package/blog/de/rag_powered_documentation_assistant.md +6 -0
  5. package/blog/en/index.md +1 -1
  6. package/blog/en-GB/index.md +1 -1
  7. package/blog/en-GB/rag_powered_documentation_assistant.md +6 -0
  8. package/blog/es/index.md +1 -1
  9. package/blog/es/rag_powered_documentation_assistant.md +7 -0
  10. package/blog/fr/i18n_meaning.md +7 -1
  11. package/blog/fr/index.md +1 -1
  12. package/blog/fr/list_i18n_technologies/frameworks/angular.md +5 -1
  13. package/blog/fr/rag_powered_documentation_assistant.md +6 -0
  14. package/blog/hi/index.md +1 -1
  15. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +119 -42
  16. package/blog/hi/rag_powered_documentation_assistant.md +7 -0
  17. package/blog/id/index.md +1 -1
  18. package/blog/id/rag_powered_documentation_assistant.md +6 -0
  19. package/blog/it/index.md +1 -1
  20. package/blog/it/rag_powered_documentation_assistant.md +6 -0
  21. package/blog/ja/index.md +1 -1
  22. package/blog/ja/rag_powered_documentation_assistant.md +7 -0
  23. package/blog/ko/index.md +1 -1
  24. package/blog/ko/list_i18n_technologies/frameworks/react.md +7 -7
  25. package/blog/ko/rag_powered_documentation_assistant.md +6 -0
  26. package/blog/pl/index.md +1 -1
  27. package/blog/pl/rag_powered_documentation_assistant.md +6 -0
  28. package/blog/pt/index.md +1 -1
  29. package/blog/pt/rag_powered_documentation_assistant.md +6 -0
  30. package/blog/ru/index.md +1 -1
  31. package/blog/ru/rag_powered_documentation_assistant.md +7 -0
  32. package/blog/tr/intlayer_with_react-intl.md +3 -1
  33. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +175 -42
  34. package/blog/tr/rag_powered_documentation_assistant.md +6 -0
  35. package/blog/uk/index.md +1 -1
  36. package/blog/uk/rag_powered_documentation_assistant.md +6 -0
  37. package/blog/vi/index.md +1 -1
  38. package/blog/vi/rag_powered_documentation_assistant.md +6 -0
  39. package/blog/zh/index.md +1 -1
  40. package/blog/zh/intlayer_with_i18next.md +87 -28
  41. package/blog/zh/intlayer_with_next-i18next.md +86 -29
  42. package/blog/zh/intlayer_with_next-intl.md +88 -28
  43. package/blog/zh/intlayer_with_react-i18next.md +87 -28
  44. package/blog/zh/intlayer_with_react-intl.md +88 -27
  45. package/blog/zh/intlayer_with_vue-i18n.md +117 -8
  46. package/blog/zh/rag_powered_documentation_assistant.md +6 -0
  47. package/dist/cjs/common.cjs +24 -1
  48. package/dist/cjs/common.cjs.map +1 -1
  49. package/dist/cjs/generated/blog.entry.cjs +58 -31
  50. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  51. package/dist/cjs/generated/docs.entry.cjs +265 -218
  52. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  53. package/dist/cjs/generated/frequentQuestions.entry.cjs +48 -21
  54. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  55. package/dist/cjs/generated/legal.entry.cjs +33 -6
  56. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  57. package/dist/esm/common.mjs +24 -1
  58. package/dist/esm/common.mjs.map +1 -1
  59. package/dist/esm/generated/blog.entry.mjs +58 -31
  60. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  61. package/dist/esm/generated/docs.entry.mjs +265 -218
  62. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  63. package/dist/esm/generated/frequentQuestions.entry.mjs +48 -21
  64. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  65. package/dist/esm/generated/legal.entry.mjs +33 -6
  66. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  67. package/dist/types/common.d.ts.map +1 -1
  68. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  69. package/dist/types/generated/docs.entry.d.ts +1 -0
  70. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  71. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  72. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  73. package/docs/ar/analytics.md +222 -0
  74. package/docs/ar/autoFill.md +28 -9
  75. package/docs/ar/bundle_optimization.md +58 -25
  76. package/docs/ar/configuration.md +25 -8
  77. package/docs/ar/dictionary/file.md +3 -1
  78. package/docs/ar/dictionary/nesting.md +47 -30
  79. package/docs/ar/formatters.md +148 -193
  80. package/docs/ar/intlayer_CMS.md +152 -0
  81. package/docs/ar/intlayer_with_angular_21.md +9 -9
  82. package/docs/ar/intlayer_with_nextjs_14.md +1 -28
  83. package/docs/ar/intlayer_with_nextjs_15.md +1 -33
  84. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +40 -83
  85. package/docs/ar/intlayer_with_solid_start.md +1078 -0
  86. package/docs/ar/intlayer_with_vite+vue.md +1 -3
  87. package/docs/ar/live-sync.md +4 -0
  88. package/docs/ar/packages/intlayer/getLocalizedUrl.md +26 -24
  89. package/docs/ar/packages/intlayer/getMultilingualUrls.md +4 -18
  90. package/docs/ar/packages/react-intlayer/useDictionary.md +4 -21
  91. package/docs/ar/packages/react-intlayer/useIntlayer.md +2 -2
  92. package/docs/ar/packages/vite-intlayer/exports.md +15 -0
  93. package/docs/ar/packages/vite-intlayer/intlayer.md +121 -6
  94. package/docs/ar/packages/vite-intlayer/intlayerPrune.md +70 -3
  95. package/docs/ar/releases/v9.md +0 -37
  96. package/docs/ar/self_hosting.md +46 -49
  97. package/docs/bn/bundle_optimization.md +58 -25
  98. package/docs/bn/configuration.md +25 -8
  99. package/docs/bn/intlayer_with_angular_21.md +9 -9
  100. package/docs/cs/bundle_optimization.md +58 -25
  101. package/docs/cs/configuration.md +25 -8
  102. package/docs/cs/intlayer_with_angular_21.md +9 -9
  103. package/docs/de/analytics.md +222 -0
  104. package/docs/de/autoFill.md +28 -9
  105. package/docs/de/bundle_optimization.md +58 -25
  106. package/docs/de/configuration.md +25 -8
  107. package/docs/de/dictionary/file.md +3 -1
  108. package/docs/de/dictionary/nesting.md +47 -31
  109. package/docs/de/formatters.md +208 -334
  110. package/docs/de/intlayer_CMS.md +66 -15
  111. package/docs/de/intlayer_with_angular_21.md +9 -9
  112. package/docs/de/intlayer_with_nestjs.md +11 -7
  113. package/docs/de/intlayer_with_nextjs_14.md +1 -28
  114. package/docs/de/intlayer_with_nextjs_15.md +1 -33
  115. package/docs/de/intlayer_with_solid_start.md +1078 -0
  116. package/docs/de/intlayer_with_vite+vue.md +1 -3
  117. package/docs/de/live-sync.md +4 -0
  118. package/docs/de/packages/intlayer/getLocalizedUrl.md +33 -25
  119. package/docs/de/packages/intlayer/getMultilingualUrls.md +4 -18
  120. package/docs/de/packages/react-intlayer/useDictionary.md +2 -5
  121. package/docs/de/packages/vite-intlayer/exports.md +15 -0
  122. package/docs/de/packages/vite-intlayer/intlayer.md +121 -6
  123. package/docs/de/packages/vite-intlayer/intlayerPrune.md +77 -4
  124. package/docs/de/releases/v9.md +0 -15
  125. package/docs/de/self_hosting.md +46 -50
  126. package/docs/en/bundle_optimization.md +51 -23
  127. package/docs/en/cli/doc-review.md +13 -2
  128. package/docs/en/configuration.md +24 -15
  129. package/docs/en/intlayer_with_angular_21.md +9 -9
  130. package/docs/en/intlayer_with_solid_start.md +1091 -0
  131. package/docs/en/intlayer_with_vite+solid.md +12 -0
  132. package/docs/en/live-sync.md +4 -0
  133. package/docs/en-GB/analytics.md +222 -0
  134. package/docs/en-GB/autoFill.md +26 -7
  135. package/docs/en-GB/bundle_optimization.md +58 -25
  136. package/docs/en-GB/configuration.md +25 -8
  137. package/docs/en-GB/dictionary/file.md +2 -0
  138. package/docs/en-GB/dictionary/nesting.md +64 -205
  139. package/docs/en-GB/formatters.md +146 -181
  140. package/docs/en-GB/intlayer_CMS.md +152 -0
  141. package/docs/en-GB/intlayer_with_angular_21.md +9 -9
  142. package/docs/en-GB/intlayer_with_nestjs.md +6 -2
  143. package/docs/en-GB/intlayer_with_nextjs_14.md +0 -27
  144. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -33
  145. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +40 -82
  146. package/docs/en-GB/intlayer_with_solid_start.md +1078 -0
  147. package/docs/en-GB/intlayer_with_vite+vue.md +1 -3
  148. package/docs/en-GB/live-sync.md +4 -0
  149. package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +30 -22
  150. package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +16 -48
  151. package/docs/en-GB/packages/vite-intlayer/exports.md +15 -0
  152. package/docs/en-GB/packages/vite-intlayer/intlayer.md +121 -6
  153. package/docs/en-GB/packages/vite-intlayer/intlayerPrune.md +77 -4
  154. package/docs/en-GB/self_hosting.md +60 -49
  155. package/docs/es/analytics.md +222 -0
  156. package/docs/es/autoFill.md +28 -9
  157. package/docs/es/bundle_optimization.md +58 -25
  158. package/docs/es/configuration.md +24 -7
  159. package/docs/es/dictionary/file.md +3 -1
  160. package/docs/es/dictionary/nesting.md +47 -30
  161. package/docs/es/formatters.md +114 -168
  162. package/docs/es/intlayer_CMS.md +35 -10
  163. package/docs/es/intlayer_with_angular_21.md +9 -9
  164. package/docs/es/intlayer_with_nextjs_14.md +1 -28
  165. package/docs/es/intlayer_with_nextjs_15.md +1 -33
  166. package/docs/es/intlayer_with_solid_start.md +1078 -0
  167. package/docs/es/live-sync.md +4 -0
  168. package/docs/es/packages/intlayer/getLocalizedUrl.md +31 -23
  169. package/docs/es/packages/intlayer/getMultilingualUrls.md +4 -18
  170. package/docs/es/packages/vite-intlayer/exports.md +15 -0
  171. package/docs/es/packages/vite-intlayer/intlayer.md +121 -6
  172. package/docs/es/packages/vite-intlayer/intlayerPrune.md +69 -2
  173. package/docs/es/releases/v9.md +0 -15
  174. package/docs/es/self_hosting.md +46 -49
  175. package/docs/fr/analytics.md +222 -0
  176. package/docs/fr/autoFill.md +27 -8
  177. package/docs/fr/bundle_optimization.md +58 -25
  178. package/docs/fr/configuration.md +25 -8
  179. package/docs/fr/dictionary/file.md +2 -0
  180. package/docs/fr/dictionary/nesting.md +37 -184
  181. package/docs/fr/formatters.md +95 -236
  182. package/docs/fr/intlayer_CMS.md +66 -15
  183. package/docs/fr/intlayer_with_angular_21.md +9 -9
  184. package/docs/fr/intlayer_with_nextjs_14.md +1 -28
  185. package/docs/fr/intlayer_with_nextjs_15.md +1 -33
  186. package/docs/fr/intlayer_with_solid_start.md +1078 -0
  187. package/docs/fr/live-sync.md +4 -0
  188. package/docs/fr/packages/intlayer/getLocalizedUrl.md +37 -27
  189. package/docs/fr/packages/intlayer/getMultilingualUrls.md +18 -20
  190. package/docs/fr/packages/vite-intlayer/exports.md +15 -0
  191. package/docs/fr/packages/vite-intlayer/intlayer.md +121 -6
  192. package/docs/fr/packages/vite-intlayer/intlayerPrune.md +77 -4
  193. package/docs/fr/releases/v9.md +0 -15
  194. package/docs/fr/self_hosting.md +46 -49
  195. package/docs/hi/analytics.md +222 -0
  196. package/docs/hi/autoFill.md +28 -9
  197. package/docs/hi/bundle_optimization.md +58 -25
  198. package/docs/hi/configuration.md +25 -8
  199. package/docs/hi/dictionary/file.md +3 -1
  200. package/docs/hi/dictionary/nesting.md +47 -30
  201. package/docs/hi/formatters.md +233 -334
  202. package/docs/hi/how_works_intlayer.md +3 -1
  203. package/docs/hi/intlayer_CMS.md +152 -0
  204. package/docs/hi/intlayer_with_angular_21.md +9 -9
  205. package/docs/hi/intlayer_with_nestjs.md +11 -7
  206. package/docs/hi/intlayer_with_nextjs_14.md +1 -28
  207. package/docs/hi/intlayer_with_nextjs_15.md +1 -33
  208. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +40 -83
  209. package/docs/hi/intlayer_with_solid_start.md +1077 -0
  210. package/docs/hi/intlayer_with_vite+preact.md +56 -49
  211. package/docs/hi/intlayer_with_vite+react.md +48 -41
  212. package/docs/hi/intlayer_with_vite+solid.md +32 -41
  213. package/docs/hi/intlayer_with_vite+vue.md +49 -44
  214. package/docs/hi/live-sync.md +4 -0
  215. package/docs/hi/packages/intlayer/getLocalizedUrl.md +26 -24
  216. package/docs/hi/packages/intlayer/getMultilingualUrls.md +4 -18
  217. package/docs/hi/packages/next-intlayer/t.md +33 -1
  218. package/docs/hi/packages/react-intlayer/useDictionary.md +4 -21
  219. package/docs/hi/packages/vite-intlayer/exports.md +15 -0
  220. package/docs/hi/packages/vite-intlayer/intlayer.md +121 -6
  221. package/docs/hi/packages/vite-intlayer/intlayerPrune.md +78 -5
  222. package/docs/hi/plugins/sync-json.md +9 -9
  223. package/docs/hi/releases/v9.md +0 -15
  224. package/docs/hi/self_hosting.md +38 -51
  225. package/docs/id/analytics.md +223 -0
  226. package/docs/id/bundle_optimization.md +58 -25
  227. package/docs/id/configuration.md +25 -8
  228. package/docs/id/dictionary/nesting.md +37 -184
  229. package/docs/id/formatters.md +208 -305
  230. package/docs/id/intlayer_CMS.md +164 -0
  231. package/docs/id/intlayer_with_angular_21.md +9 -9
  232. package/docs/id/intlayer_with_nextjs_14.md +1 -26
  233. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +70 -63
  234. package/docs/id/intlayer_with_solid_start.md +1078 -0
  235. package/docs/id/live-sync.md +4 -0
  236. package/docs/id/packages/intlayer/getMultilingualUrls.md +4 -18
  237. package/docs/id/packages/react-intlayer/useIntlayer.md +2 -2
  238. package/docs/id/packages/vite-intlayer/exports.md +15 -0
  239. package/docs/id/packages/vite-intlayer/intlayer.md +121 -6
  240. package/docs/id/packages/vite-intlayer/intlayerPrune.md +78 -5
  241. package/docs/id/releases/v9.md +12 -0
  242. package/docs/id/self_hosting.md +61 -50
  243. package/docs/it/analytics.md +222 -0
  244. package/docs/it/autoFill.md +27 -8
  245. package/docs/it/bundle_optimization.md +58 -25
  246. package/docs/it/configuration.md +25 -8
  247. package/docs/it/dictionary/file.md +3 -1
  248. package/docs/it/dictionary/nesting.md +47 -30
  249. package/docs/it/formatters.md +114 -168
  250. package/docs/it/intlayer_CMS.md +66 -15
  251. package/docs/it/intlayer_with_angular_21.md +9 -9
  252. package/docs/it/intlayer_with_nestjs.md +11 -7
  253. package/docs/it/intlayer_with_nextjs_14.md +1 -28
  254. package/docs/it/intlayer_with_nextjs_15.md +1 -33
  255. package/docs/it/intlayer_with_solid_start.md +1078 -0
  256. package/docs/it/intlayer_with_vite+vue.md +1 -3
  257. package/docs/it/live-sync.md +4 -0
  258. package/docs/it/packages/intlayer/getLocalizedUrl.md +34 -26
  259. package/docs/it/packages/intlayer/getMultilingualUrls.md +4 -18
  260. package/docs/it/packages/react-intlayer/useDictionary.md +4 -21
  261. package/docs/it/packages/vite-intlayer/exports.md +15 -0
  262. package/docs/it/packages/vite-intlayer/intlayer.md +121 -6
  263. package/docs/it/packages/vite-intlayer/intlayerPrune.md +77 -4
  264. package/docs/it/releases/v9.md +0 -15
  265. package/docs/it/self_hosting.md +60 -49
  266. package/docs/ja/analytics.md +222 -0
  267. package/docs/ja/autoFill.md +28 -9
  268. package/docs/ja/bundle_optimization.md +58 -25
  269. package/docs/ja/configuration.md +25 -8
  270. package/docs/ja/dictionary/content_file.md +15 -7
  271. package/docs/ja/dictionary/file.md +3 -1
  272. package/docs/ja/dictionary/nesting.md +47 -30
  273. package/docs/ja/formatters.md +133 -187
  274. package/docs/ja/intlayer_visual_editor.md +3 -1
  275. package/docs/ja/intlayer_with_angular_21.md +6 -6
  276. package/docs/ja/intlayer_with_nestjs.md +2 -12
  277. package/docs/ja/intlayer_with_nextjs_14.md +1 -28
  278. package/docs/ja/intlayer_with_nextjs_15.md +1 -33
  279. package/docs/ja/intlayer_with_react_router_v7.md +456 -20
  280. package/docs/ja/intlayer_with_solid_start.md +1078 -0
  281. package/docs/ja/intlayer_with_vite+preact.md +73 -41
  282. package/docs/ja/intlayer_with_vite+vue.md +1 -3
  283. package/docs/ja/live-sync.md +4 -0
  284. package/docs/ja/mcp_server.md +3 -9
  285. package/docs/ja/packages/intlayer/getLocalizedUrl.md +26 -24
  286. package/docs/ja/packages/intlayer/getMultilingualUrls.md +3 -17
  287. package/docs/ja/packages/vite-intlayer/exports.md +15 -0
  288. package/docs/ja/packages/vite-intlayer/intlayer.md +121 -6
  289. package/docs/ja/packages/vite-intlayer/intlayerPrune.md +79 -6
  290. package/docs/ja/releases/v9.md +12 -0
  291. package/docs/ja/self_hosting.md +46 -50
  292. package/docs/ko/analytics.md +222 -0
  293. package/docs/ko/autoFill.md +28 -9
  294. package/docs/ko/bundle_optimization.md +58 -25
  295. package/docs/ko/configuration.md +25 -8
  296. package/docs/ko/dictionary/file.md +3 -1
  297. package/docs/ko/dictionary/nesting.md +47 -30
  298. package/docs/ko/formatters.md +133 -187
  299. package/docs/ko/intlayer_with_angular_21.md +9 -9
  300. package/docs/ko/intlayer_with_lynx+react.md +133 -39
  301. package/docs/ko/intlayer_with_nextjs_14.md +1 -28
  302. package/docs/ko/intlayer_with_nextjs_15.md +1 -33
  303. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +40 -188
  304. package/docs/ko/intlayer_with_solid_start.md +1078 -0
  305. package/docs/ko/intlayer_with_vite+preact.md +57 -23
  306. package/docs/ko/intlayer_with_vite+vue.md +1 -3
  307. package/docs/ko/live-sync.md +4 -0
  308. package/docs/ko/packages/intlayer/getLocalizedUrl.md +26 -24
  309. package/docs/ko/packages/intlayer/getMultilingualUrls.md +4 -18
  310. package/docs/ko/packages/vite-intlayer/exports.md +15 -0
  311. package/docs/ko/packages/vite-intlayer/intlayer.md +121 -6
  312. package/docs/ko/packages/vite-intlayer/intlayerPrune.md +79 -6
  313. package/docs/ko/releases/v9.md +12 -0
  314. package/docs/ko/self_hosting.md +60 -49
  315. package/docs/nl/bundle_optimization.md +58 -25
  316. package/docs/nl/configuration.md +25 -8
  317. package/docs/nl/intlayer_with_angular_21.md +9 -9
  318. package/docs/pl/analytics.md +220 -0
  319. package/docs/pl/bundle_optimization.md +58 -25
  320. package/docs/pl/configuration.md +25 -8
  321. package/docs/pl/dictionary/nesting.md +47 -30
  322. package/docs/pl/formatters.md +208 -305
  323. package/docs/pl/intlayer_CMS.md +152 -0
  324. package/docs/pl/intlayer_with_angular_21.md +9 -9
  325. package/docs/pl/intlayer_with_nextjs_14.md +1 -26
  326. package/docs/pl/intlayer_with_solid_start.md +1078 -0
  327. package/docs/pl/live-sync.md +4 -0
  328. package/docs/pl/packages/intlayer/getMultilingualUrls.md +4 -18
  329. package/docs/pl/packages/react-intlayer/useDictionary.md +2 -19
  330. package/docs/pl/packages/vite-intlayer/exports.md +15 -0
  331. package/docs/pl/packages/vite-intlayer/intlayer.md +121 -6
  332. package/docs/pl/packages/vite-intlayer/intlayerPrune.md +77 -4
  333. package/docs/pl/releases/v9.md +0 -15
  334. package/docs/pl/self_hosting.md +60 -49
  335. package/docs/pt/analytics.md +222 -0
  336. package/docs/pt/bundle_optimization.md +58 -24
  337. package/docs/pt/configuration.md +25 -8
  338. package/docs/pt/dictionary/file.md +3 -1
  339. package/docs/pt/dictionary/nesting.md +47 -30
  340. package/docs/pt/formatters.md +112 -168
  341. package/docs/pt/intlayer_CMS.md +66 -15
  342. package/docs/pt/intlayer_with_angular_21.md +9 -9
  343. package/docs/pt/intlayer_with_astro_lit.md +26 -1
  344. package/docs/pt/intlayer_with_nextjs_14.md +1 -28
  345. package/docs/pt/intlayer_with_nextjs_15.md +1 -33
  346. package/docs/pt/intlayer_with_solid_start.md +1078 -0
  347. package/docs/pt/intlayer_with_vite+vue.md +1 -3
  348. package/docs/pt/live-sync.md +4 -0
  349. package/docs/pt/packages/intlayer/getLocalizedUrl.md +34 -26
  350. package/docs/pt/packages/intlayer/getMultilingualUrls.md +4 -18
  351. package/docs/pt/packages/vite-intlayer/exports.md +15 -0
  352. package/docs/pt/packages/vite-intlayer/intlayer.md +121 -6
  353. package/docs/pt/packages/vite-intlayer/intlayerPrune.md +78 -6
  354. package/docs/pt/releases/v9.md +0 -15
  355. package/docs/pt/self_hosting.md +60 -49
  356. package/docs/ru/analytics.md +222 -0
  357. package/docs/ru/autoFill.md +27 -8
  358. package/docs/ru/bundle_optimization.md +58 -25
  359. package/docs/ru/configuration.md +25 -8
  360. package/docs/ru/dictionary/file.md +3 -1
  361. package/docs/ru/dictionary/nesting.md +64 -205
  362. package/docs/ru/formatters.md +108 -128
  363. package/docs/ru/intlayer_with_angular_21.md +9 -9
  364. package/docs/ru/intlayer_with_nextjs_14.md +1 -28
  365. package/docs/ru/intlayer_with_nextjs_15.md +1 -33
  366. package/docs/ru/intlayer_with_solid_start.md +1078 -0
  367. package/docs/ru/intlayer_with_vite+vue.md +1 -3
  368. package/docs/ru/live-sync.md +4 -0
  369. package/docs/ru/packages/intlayer/getLocalizedUrl.md +34 -26
  370. package/docs/ru/packages/intlayer/getMultilingualUrls.md +4 -18
  371. package/docs/ru/packages/react-intlayer/useDictionary.md +4 -21
  372. package/docs/ru/packages/vite-intlayer/exports.md +15 -0
  373. package/docs/ru/packages/vite-intlayer/intlayer.md +121 -6
  374. package/docs/ru/packages/vite-intlayer/intlayerPrune.md +77 -4
  375. package/docs/ru/releases/v9.md +0 -15
  376. package/docs/ru/self_hosting.md +60 -49
  377. package/docs/tr/analytics.md +222 -0
  378. package/docs/tr/autoFill.md +28 -9
  379. package/docs/tr/bundle_optimization.md +58 -25
  380. package/docs/tr/configuration.md +25 -8
  381. package/docs/tr/dictionary/file.md +2 -0
  382. package/docs/tr/dictionary/nesting.md +47 -30
  383. package/docs/tr/formatters.md +144 -190
  384. package/docs/tr/intlayer_CMS.md +152 -0
  385. package/docs/tr/intlayer_with_angular_21.md +9 -9
  386. package/docs/tr/intlayer_with_nestjs.md +2 -12
  387. package/docs/tr/intlayer_with_nextjs_15.md +1 -33
  388. package/docs/tr/intlayer_with_solid_start.md +1078 -0
  389. package/docs/tr/intlayer_with_vite+vue.md +1 -3
  390. package/docs/tr/live-sync.md +4 -0
  391. package/docs/tr/packages/intlayer/getMultilingualUrls.md +4 -18
  392. package/docs/tr/packages/vite-intlayer/exports.md +15 -0
  393. package/docs/tr/packages/vite-intlayer/intlayer.md +121 -6
  394. package/docs/tr/packages/vite-intlayer/intlayerPrune.md +77 -4
  395. package/docs/tr/self_hosting.md +47 -50
  396. package/docs/uk/analytics.md +222 -0
  397. package/docs/uk/bundle_optimization.md +58 -25
  398. package/docs/uk/configuration.md +25 -8
  399. package/docs/uk/dictionary/nesting.md +47 -30
  400. package/docs/uk/formatters.md +128 -185
  401. package/docs/uk/intlayer_CMS.md +152 -0
  402. package/docs/uk/intlayer_with_angular_21.md +9 -9
  403. package/docs/uk/intlayer_with_nextjs_14.md +1 -26
  404. package/docs/uk/intlayer_with_solid_start.md +1078 -0
  405. package/docs/uk/live-sync.md +4 -0
  406. package/docs/uk/packages/react-intlayer/useDictionary.md +2 -19
  407. package/docs/uk/packages/vite-intlayer/exports.md +15 -0
  408. package/docs/uk/packages/vite-intlayer/intlayer.md +121 -6
  409. package/docs/uk/packages/vite-intlayer/intlayerPrune.md +77 -4
  410. package/docs/uk/releases/v9.md +0 -15
  411. package/docs/uk/self_hosting.md +60 -50
  412. package/docs/ur/bundle_optimization.md +58 -25
  413. package/docs/ur/configuration.md +25 -8
  414. package/docs/ur/intlayer_with_angular_21.md +9 -9
  415. package/docs/vi/analytics.md +222 -0
  416. package/docs/vi/bundle_optimization.md +58 -25
  417. package/docs/vi/configuration.md +24 -8
  418. package/docs/vi/dictionary/nesting.md +37 -184
  419. package/docs/vi/formatters.md +208 -309
  420. package/docs/vi/intlayer_CMS.md +164 -0
  421. package/docs/vi/intlayer_with_angular_21.md +9 -9
  422. package/docs/vi/intlayer_with_nextjs_14.md +0 -25
  423. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +70 -63
  424. package/docs/vi/intlayer_with_solid_start.md +1078 -0
  425. package/docs/vi/live-sync.md +4 -0
  426. package/docs/vi/packages/intlayer/getMultilingualUrls.md +4 -18
  427. package/docs/vi/packages/react-intlayer/useIntlayer.md +2 -2
  428. package/docs/vi/packages/vite-intlayer/exports.md +15 -0
  429. package/docs/vi/packages/vite-intlayer/intlayer.md +121 -6
  430. package/docs/vi/packages/vite-intlayer/intlayerPrune.md +77 -4
  431. package/docs/vi/plugins/sync-json.md +6 -6
  432. package/docs/vi/releases/v9.md +12 -0
  433. package/docs/vi/self_hosting.md +61 -50
  434. package/docs/zh/CI_CD.md +4 -0
  435. package/docs/zh/analytics.md +222 -0
  436. package/docs/zh/autoFill.md +28 -9
  437. package/docs/zh/bundle_optimization.md +58 -25
  438. package/docs/zh/configuration.md +24 -8
  439. package/docs/zh/dictionary/file.md +2 -0
  440. package/docs/zh/dictionary/nesting.md +47 -30
  441. package/docs/zh/formatters.md +140 -188
  442. package/docs/zh/intlayer_CMS.md +164 -0
  443. package/docs/zh/intlayer_with_analog.md +193 -3
  444. package/docs/zh/intlayer_with_angular_19.md +272 -3
  445. package/docs/zh/intlayer_with_angular_21.md +7 -7
  446. package/docs/zh/intlayer_with_create_react_app.md +348 -26
  447. package/docs/zh/intlayer_with_lynx+react.md +263 -4
  448. package/docs/zh/intlayer_with_nextjs_14.md +1 -28
  449. package/docs/zh/intlayer_with_nextjs_15.md +1 -33
  450. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +558 -1
  451. package/docs/zh/intlayer_with_nuxt.md +182 -7
  452. package/docs/zh/intlayer_with_react_router_v7.md +183 -25
  453. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +306 -42
  454. package/docs/zh/intlayer_with_solid_start.md +1077 -0
  455. package/docs/zh/intlayer_with_storybook.md +260 -3
  456. package/docs/zh/intlayer_with_svelte_kit.md +428 -48
  457. package/docs/zh/intlayer_with_tanstack+solid.md +713 -13
  458. package/docs/zh/intlayer_with_tanstack.md +731 -20
  459. package/docs/zh/intlayer_with_vanilla.md +314 -4
  460. package/docs/zh/intlayer_with_vite+lit.md +465 -4
  461. package/docs/zh/intlayer_with_vite+preact.md +422 -116
  462. package/docs/zh/intlayer_with_vite+react.md +324 -45
  463. package/docs/zh/intlayer_with_vite+react_compiler.md +228 -13
  464. package/docs/zh/intlayer_with_vite+solid.md +462 -32
  465. package/docs/zh/intlayer_with_vite+vanilla.md +497 -4
  466. package/docs/zh/live-sync.md +4 -0
  467. package/docs/zh/mcp_server.md +3 -9
  468. package/docs/zh/packages/intlayer/getLocalizedUrl.md +26 -24
  469. package/docs/zh/packages/intlayer/getMultilingualUrls.md +4 -18
  470. package/docs/zh/packages/vite-intlayer/exports.md +29 -0
  471. package/docs/zh/packages/vite-intlayer/intlayer.md +121 -6
  472. package/docs/zh/packages/vite-intlayer/intlayerPrune.md +79 -6
  473. package/docs/zh/releases/v9.md +12 -0
  474. package/docs/zh/self_hosting.md +60 -50
  475. package/docs/zh-TW/bundle_optimization.md +58 -25
  476. package/docs/zh-TW/intlayer_with_angular_21.md +7 -7
  477. package/package.json +7 -7
  478. package/src/common.ts +39 -2
  479. package/src/generated/blog.entry.ts +66 -34
  480. package/src/generated/docs.entry.ts +273 -221
  481. package/src/generated/frequentQuestions.entry.ts +56 -24
  482. package/src/generated/legal.entry.ts +41 -9
@@ -68,6 +68,53 @@ export default firstDictionary;
68
68
  }
69
69
  ```
70
70
 
71
+ ### Nest ile Referanslama
72
+
73
+ Şimdi, yukarıdaki içeriğe referans vermek için `nest` fonksiyonunu kullanan başka bir içerik modülü oluşturun. Tüm içeriğe veya belirli bir iç içe değere referans verebilirsiniz:
74
+
75
+ ```typescript fileName="secondDictionary.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
76
+ import { nest, type Dictionary } from "intlayer";
77
+
78
+ const myNestingContent = {
79
+ key: "key_of_my_second_dictionary",
80
+ content: {
81
+ // Tüm sözlüğe referans verir:
82
+ fullNestedContent: nest("key_of_my_first_dictionary"),
83
+ // Belirli bir iç içe değere referans verir:
84
+ partialNestedContent: nest(
85
+ "key_of_my_first_dictionary",
86
+ "subContent.contentNumber"
87
+ ),
88
+ },
89
+ } satisfies Dictionary;
90
+
91
+ export default myNestingContent;
92
+ ```
93
+
94
+ ```json fileName="secondDictionary.content.json" contentDeclarationFormat="json"
95
+ {
96
+ "$schema": "https://intlayer.org/schema.json",
97
+ "key": "key_of_my_second_dictionary",
98
+ "content": {
99
+ "fullNestedContent": {
100
+ "nodeType": "nested",
101
+ "nested": {
102
+ "dictionaryKey": "key_of_my_first_dictionary"
103
+ }
104
+ },
105
+ "partialNestedContent": {
106
+ "nodeType": "nested",
107
+ "nested": {
108
+ "dictionaryKey": "key_of_my_first_dictionary",
109
+ "path": "subContent.contentNumber"
110
+ }
111
+ }
112
+ }
113
+ }
114
+ ```
115
+
116
+ İkinci parametre olarak, bu içerik içinde iç içe bir değere giden yolu belirtebilirsiniz. Yol sağlanmadığında, referans verilen sözlüğün tüm içeriği döndürülür.
117
+
71
118
  ## İç İçe Yerleştirmeyi Ayarlama
72
119
 
73
120
  <Tabs group="framework">
@@ -262,36 +309,6 @@ document.getElementById("nested")!.textContent = content.partialNestedContent;
262
309
  </Tab>
263
310
  </Tabs>
264
311
 
265
- ## React Intlayer ile İç İçe Yerleştirmeyi Kullanma
266
-
267
- Bir React bileşeninde iç içe yerleştirilmiş içeriği kullanmak için, `react-intlayer` paketinden `useIntlayer` hook'unu kullanın. Bu hook, belirtilen anahtara göre doğru içeriği alır. İşte nasıl kullanılacağına dair bir örnek:
268
-
269
- ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
270
- import type { FC } from "react";
271
- import { useIntlayer } from "react-intlayer";
272
-
273
- const NestComponent: FC = () => {
274
- const { fullNestedContent, partialNestedContent } = useIntlayer(
275
- "key_of_my_second_dictionary"
276
- );
277
-
278
- return (
279
- <div>
280
- <p>
281
- Tam İç İçe Yerleştirilmiş İçerik: {JSON.stringify(fullNestedContent)}
282
- {/* Çıktı: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
283
- </p>
284
- <p>
285
- Kısmi İç İçe Yerleştirilmiş Değer: {partialNestedContent}
286
- {/* Çıktı: 0 */}
287
- </p>
288
- </div>
289
- );
290
- };
291
-
292
- export default NestComponent;
293
- ```
294
-
295
312
  ## Ek Kaynaklar
296
313
 
297
314
  Yapılandırma ve kullanım hakkında daha detaylı bilgi için aşağıdaki kaynaklara başvurun:
@@ -46,34 +46,6 @@ author: aymericzip
46
46
 
47
47
  Intlayer, yerel `Intl` API'leri üzerine inşa edilmiş hafif yardımcılar kümesi sağlar, ayrıca ağır biçimlendiricileri tekrar tekrar oluşturmaktan kaçınmak için önbelleğe alınmış bir `Intl` sarmalayıcısı. Bu yardımcılar tamamen yerel ayar duyarlıdır ve ana `intlayer` paketinden kullanılabilir.
48
48
 
49
- ### İçe Aktarma
50
-
51
- ```ts
52
- import {
53
- Intl,
54
- number,
55
- percentage,
56
- currency,
57
- date,
58
- relativeTime,
59
- units,
60
- compact,
61
- list,
62
- getLocaleName,
63
- getLocaleLang,
64
- getLocaleFromPath,
65
- getPathWithoutLocale,
66
- getLocalizedUrl,
67
- getHTMLTextDir,
68
- getContent,
69
- getTranslation,
70
- getIntlayer,
71
- getIntlayerAsync,
72
- } from "intlayer";
73
- ```
74
-
75
- React kullanıyorsanız, kancalar da kullanılabilir; `react-intlayer/format` bölümüne bakın.
76
-
77
49
  ## Önbelleğe Alınmış Intl
78
50
 
79
51
  Dışa aktarılan `Intl`, global `Intl` etrafında ince, önbelleğe alınmış bir sarmalayıcıdır. `NumberFormat`, `DateTimeFormat`, `RelativeTimeFormat`, `ListFormat`, `DisplayNames`, `Collator` ve `PluralRules` örneklerini önbelleğe alır, bu da aynı biçimlendiriciyi tekrar tekrar yeniden oluşturmaktan kaçınır.
@@ -110,86 +82,8 @@ pluralRules.select(1); // "one"
110
82
  pluralRules.select(2); // "other"
111
83
  ```
112
84
 
113
- ## Ek Intl Yardımcıları
114
-
115
- Biçimlendirici yardımcılarının ötesinde, önbelleğe alınmış Intl sarmalayıcısını doğrudan diğer Intl özellikleri için de kullanabilirsiniz:
116
-
117
- ### `Intl.DisplayNames`
118
-
119
- Diller, bölgeler, para birimleri ve yazılar için yerelleştirilmiş adlar için:
120
-
121
- ```ts
122
- import { Intl } from "intlayer";
123
-
124
- const languageNames = new Intl.DisplayNames("en", { type: "language" });
125
- languageNames.of("fr"); // "French"
126
-
127
- const regionNames = new Intl.DisplayNames("fr", { type: "region" });
128
- regionNames.of("US"); // "États-Unis"
129
- ```
130
-
131
- ### `Intl.Collator`
132
-
133
- Yerel ayar duyarlı dize karşılaştırması ve sıralama için:
134
-
135
- ```ts
136
- import { Intl } from "intlayer";
137
-
138
- const collator = new Intl.Collator("de", {
139
- sensitivity: "base",
140
- numeric: true,
141
- });
142
-
143
- const words = ["äpfel", "zebra", "100", "20"];
144
- words.sort(collator.compare); // ["20", "100", "äpfel", "zebra"]
145
- ```
146
-
147
- ### `Intl.PluralRules`
148
-
149
- Farklı yerel ayarlarda çoğul formları belirlemek için:
150
-
151
- ```ts
152
- import { Intl } from "intlayer";
153
-
154
- const pluralRules = new Intl.PluralRules("ar");
155
- pluralRules.select(0); // "zero"
156
- pluralRules.select(1); // "one"
157
- pluralRules.select(2); // "two"
158
- pluralRules.select(3); // "few"
159
- pluralRules.select(11); // "many"
160
- ```
161
-
162
85
  ## Yerel Ayar Yardımcıları
163
86
 
164
- ### `getLocaleName(displayLocale, targetLocale?)`
165
-
166
- Bir yerel ayar adını başka bir yerel ayarda alır:
167
-
168
- ```ts
169
- import { getLocaleName } from "intlayer";
170
-
171
- getLocaleName("fr", "en"); // "French"
172
- getLocaleName("en", "fr"); // "anglais"
173
- getLocaleName("de", "es"); // "alemán"
174
- ```
175
-
176
- - **displayLocale**: Adı alınacak yerel ayar
177
- - **targetLocale**: Adın görüntüleneceği yerel ayar (varsayılan olarak displayLocale)
178
-
179
- ### `getLocaleLang(locale?)`
180
-
181
- Bir yerel ayar dizesinden dil kodunu çıkarır:
182
-
183
- ```ts
184
- import { getLocaleLang } from "intlayer";
185
-
186
- getLocaleLang("en-US"); // "en"
187
- getLocaleLang("fr-CA"); // "fr"
188
- getLocaleLang("de"); // "de"
189
- ```
190
-
191
- - **locale**: Dili çıkarılacak yerel ayar (varsayılan olarak mevcut yerel ayar)
192
-
193
87
  ### `getLocaleFromPath(inputUrl)`
194
88
 
195
89
  Bir URL veya yol adından yerel ayar segmentini çıkarır:
@@ -330,9 +224,11 @@ const content = await getIntlayerAsync("common", "fr");
330
224
 
331
225
  Aşağıdaki tüm yardımcılar `intlayer`'dan dışa aktarılır.
332
226
 
333
- ### `number(value, options?)`
227
+ ### `percentage(value, options?)`
228
+
229
+ Bir sayıyı yüzde dizesi olarak biçimlendirir.
334
230
 
335
- Yerel ayar duyarlı gruplandırma ve ondalıklar kullanarak sayısal bir değeri biçimlendirir.
231
+ Davranış: 1'den büyük değerler tam yüzdeler olarak yorumlanır ve normalleştirilir (ör. `25` `25%`, `0.25` → `25%`).
336
232
 
337
233
  - **value**: `number | string`
338
234
  - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
@@ -340,125 +236,196 @@ Yerel ayar duyarlı gruplandırma ve ondalıklar kullanarak sayısal bir değeri
340
236
  Örnekler:
341
237
 
342
238
  ```ts
343
- import { number } from "intlayer";
239
+ import { percentage } from "intlayer";
240
+
241
+ percentage(0.25); // "25%"
242
+ percentage(25); // "25%"
243
+ percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
244
+ ```
245
+
246
+ ### Ek Intl Özellikleri
344
247
 
248
+ #### `number(value, options?)`
249
+
250
+ Sayısal bir değeri yerel ayara duyarlı gruplama ve ondalık sayılarla biçimlendirir.
251
+
252
+ - **value**: `number | string`
253
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
254
+
255
+ ```ts
345
256
  number(123456.789); // "123,456.789" (en-US'de)
346
257
  number("1000000", { locale: "fr" }); // "1 000 000"
347
258
  number(1234.5, { minimumFractionDigits: 2 }); // "1,234.50"
348
259
  ```
349
260
 
350
- ### `percentage(value, options?)`
351
-
352
- Bir sayıyı yüzde dizesi olarak biçimlendirir.
261
+ #### `percentage(value, options?)`
353
262
 
354
- Davranış: 1'den büyük değerler tam yüzdeler olarak yorumlanır ve normalleştirilir (ör. `25` → `25%`, `0.25` → `25%`).
263
+ Bir sayıyı yüzde dizesi olarak biçimlendirir. 1'den büyük değerler normalize edilir (örneğin, `25` → `25%`, `0.25` → `25%`).
355
264
 
356
265
  - **value**: `number | string`
357
266
  - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
358
267
 
359
- Örnekler:
360
-
361
268
  ```ts
362
- import { percentage } from "intlayer";
363
-
364
269
  percentage(0.25); // "25%"
365
270
  percentage(25); // "25%"
366
271
  percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
367
272
  ```
368
273
 
369
- ### `currency(value, options?)`
274
+ #### `currency(value, options?)`
370
275
 
371
- Bir değeri yerelleştirilmiş para birimi olarak biçimlendirir. Varsayılan olarak `USD` ile iki kesirli basamak.
276
+ Bir değeri yerelleştirilmiş para biriminde biçimlendirir. Varsayılan olarak `USD` kullanılır.
372
277
 
373
278
  - **value**: `number | string`
374
279
  - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
375
- - Yaygın alanlar: `currency` (ör. `"EUR"`), `currencyDisplay` (`"symbol" | "code" | "name"`)
376
-
377
- Örnekler:
280
+ - Ortak: `currency`, `currencyDisplay` (`"symbol" | "code" | "name"`)
378
281
 
379
282
  ```ts
380
- import { currency } from "intlayer";
381
-
382
283
  currency(1234.5, { currency: "EUR" }); // "€1,234.50"
383
284
  currency("5000", { locale: "fr", currency: "CAD", currencyDisplay: "code" }); // "5 000,00 CAD"
384
285
  ```
385
286
 
386
- ### `date(date, optionsOrPreset?)`
287
+ #### `date(date, optionsOrPreset?)`
387
288
 
388
- `Intl.DateTimeFormat` ile tarih/saat değerini biçimlendirir.
289
+ Bir tarih/saat değerini biçimlendirir.
389
290
 
390
291
  - **date**: `Date | string | number`
391
- - **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` veya ön ayarların biri:
392
- - Ön ayarlar: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
393
-
394
- Örnekler:
292
+ - **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` veya preset: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
395
293
 
396
294
  ```ts
397
- import { date } from "intlayer";
398
-
399
- date(new Date(), "short"); // ör. "08/02/25, 14:30"
295
+ date(new Date(), "short"); // örn., "08/02/25, 14:30"
400
296
  date("2025-08-02T14:30:00Z", { locale: "fr", month: "long", day: "numeric" }); // "2 août"
401
297
  ```
402
298
 
403
- ### Ek Intl Özellikleri
404
-
405
- ### `relativeTime(from, to = new Date(), options?)`
299
+ #### `relativeTime(from, to?, options?)`
406
300
 
407
- `Intl.RelativeTimeFormat` ile iki an arasında göreceli zamanı biçimlendirir.
301
+ İki zaman noktası arasındaki göreceli zamanı biçimlendirir.
408
302
 
409
- - Doğal ifadeler için ilk argüman olarak "now" geçin ve ikinci olarak hedefi.
410
303
  - **from**: `Date | string | number`
411
304
  - **to**: `Date | string | number` (varsayılan olarak `new Date()`)
412
- - **options**: `{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }`
413
- - Varsayılan `unit` `"second"`.
414
-
415
- Örnekler:
305
+ - **options**: `{ locale?, unit?, numeric?, style? }`
416
306
 
417
307
  ```ts
418
- import { relativeTime } from "intlayer";
419
-
420
308
  const now = new Date();
421
309
  const in3Days = new Date(now.getTime() + 3 * 864e5);
422
- relativeTime(now, in3Days, { unit: "day" }); // "in 3 days"
310
+ relativeTime(now, in3Days, { unit: "day" }); // "3 gün içinde"
423
311
 
424
312
  const twoHoursAgo = new Date(now.getTime() - 2 * 3600e3);
425
- relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2 hours ago"
313
+ relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2 saat önce"
426
314
  ```
427
315
 
428
- ### `units(value, options?)`
316
+ #### `units(value, options?)`
429
317
 
430
- `Intl.NumberFormat` ile `style: 'unit'` kullanarak sayısal bir değeri yerelleştirilmiş birim dizesi olarak biçimlendirir.
318
+ Bir sayısal değeri bir birimle biçimlendirir.
431
319
 
432
320
  - **value**: `number | string`
433
321
  - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
434
- - Yaygın alanlar: `unit` (ör. `"kilometer"`, `"byte"`), `unitDisplay` (`"short" | "narrow" | "long"`)
435
- - Varsayılanlar: `unit: 'day'`, `unitDisplay: 'short'`, `useGrouping: false`
436
-
437
- Örnekler:
322
+ - Yaygın: `unit` (örn. `"kilometer"`, `"byte"`), `unitDisplay` (`"short" | "narrow" | "long"`)
438
323
 
439
324
  ```ts
440
- import { units } from "intlayer";
441
-
442
325
  units(5, { unit: "kilometer", unitDisplay: "long", locale: "en-GB" }); // "5 kilometers"
443
- units(1024, { unit: "byte", unitDisplay: "narrow" }); // "1,024B" (yerel ayara bağlı)
326
+ units(1024, { unit: "byte", unitDisplay: "narrow" }); // "1,024B"
444
327
  ```
445
328
 
446
- ### `compact(value, options?)`
329
+ #### `compact(value, options?)`
447
330
 
448
- Kompakt gösterim kullanarak bir sayıyı biçimlendirir (ör. `1.2K`, `1M`).
331
+ Bir sayıyı compact gösterimini kullanarak biçimlendirir.
449
332
 
450
333
  - **value**: `number | string`
451
- - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }` (arka planda `notation: 'compact'` kullanır)
452
-
453
- Örnekler:
334
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
454
335
 
455
336
  ```ts
456
- import { compact } from "intlayer";
457
-
458
337
  compact(1200); // "1.2K"
459
338
  compact("1000000", { locale: "fr", compactDisplay: "long" }); // "1 million"
460
339
  ```
461
340
 
341
+ #### `list(values, options?)`
342
+
343
+ Bir diziyi yerelleştirilmiş bir liste dizesine biçimlendirir.
344
+
345
+ - **values**: `(string | number)[]`
346
+ - **options**: `Intl.ListFormatOptions & { locale?: LocalesValues }`
347
+ - Yaygın: `type` (`"conjunction" | "disjunction" | "unit"`), `style` (`"long" | "short" | "narrow"`)
348
+
349
+ ```ts
350
+ list(["apple", "banana", "orange"]); // "apple, banana, and orange"
351
+ list(["red", "green", "blue"], { locale: "fr", type: "disjunction" }); // "rouge, vert ou bleu"
352
+ ```
353
+
354
+ ## Cached Intl
355
+
356
+ `intlayer`'dan dışa aktarılan `Intl`, global `Intl` etrafında bir cache wrapper'ıdır. Formatter örneklerini (`NumberFormat`, `DateTimeFormat`, vb.) memoize eder, bunları tekrar tekrar oluşturmaktan kaçınır ve performansı artırır.
357
+
358
+ ```ts
359
+ import { Intl } from "intlayer";
360
+
361
+ // Sayı biçimlendirme
362
+ const numberFormat = new Intl.NumberFormat("en-GB", {
363
+ style: "currency",
364
+ currency: "GBP",
365
+ });
366
+ numberFormat.format(1234.5); // "£1,234.50"
367
+
368
+ // Diller, bölgeler vb. için görünen adlar
369
+ const displayNames = new Intl.DisplayNames("fr", { type: "language" });
370
+ displayNames.of("en"); // "anglais"
371
+
372
+ // Sıralama için harflerin sıralanması
373
+ const collator = new Intl.Collator("fr", { sensitivity: "base" });
374
+ collator.compare("é", "e"); // 0 (eşit)
375
+
376
+ // Çoğul kuralları
377
+ const pluralRules = new Intl.PluralRules("fr");
378
+ pluralRules.select(1); // "one"
379
+ pluralRules.select(2); // "other"
380
+ ```
381
+
382
+ ### Ek Intl Özellikleri
383
+
384
+ #### `Intl.DisplayNames`
385
+
386
+ Diller, bölgeler, para birimleri ve yazı sistemlerinin yerelleştirilmiş adları için:
387
+
388
+ ```ts
389
+ import { Intl } from "intlayer";
390
+
391
+ const languageNames = new Intl.DisplayNames("en", { type: "language" });
392
+ languageNames.of("fr"); // "French"
393
+
394
+ const regionNames = new Intl.DisplayNames("fr", { type: "region" });
395
+ regionNames.of("US"); // "États-Unis"
396
+ ```
397
+
398
+ #### `Intl.Collator`
399
+
400
+ Locale'a duyarlı string karşılaştırması ve sıralaması için:
401
+
402
+ ```ts
403
+ import { Intl } from "intlayer";
404
+
405
+ const collator = new Intl.Collator("de", {
406
+ sensitivity: "base",
407
+ numeric: true,
408
+ });
409
+
410
+ const words = ["äpfel", "zebra", "100", "20"];
411
+ words.sort(collator.compare); // ["20", "100", "äpfel", "zebra"]
412
+ ```
413
+
414
+ #### `Intl.PluralRules`
415
+
416
+ Farklı yerel ayarlarda çoğul formlarını belirlemek için:
417
+
418
+ ```ts
419
+ import { Intl } from "intlayer";
420
+
421
+ const pluralRules = new Intl.PluralRules("ar");
422
+ pluralRules.select(0); // "zero"
423
+ pluralRules.select(1); // "one"
424
+ pluralRules.select(2); // "two"
425
+ pluralRules.select(3); // "few"
426
+ pluralRules.select(11); // "many"
427
+ ```
428
+
462
429
  ## Locale Utilities
463
430
 
464
431
  ### `list(values, options?)`
@@ -491,40 +458,27 @@ getLocaleLang("en-US"); // "en"
491
458
  getLocaleLang("fr-CA"); // "fr"
492
459
  ```
493
460
 
494
- ## Notlar
461
+ ### `getLocaleFromPath(inputUrl)`
462
+
463
+ Bir URL veya pathname'den locale segmentini çıkarır:
495
464
 
496
- - Tüm yardımcılar `string` girdilerini kabul eder; dahili olarak sayılara veya tarihlere dönüştürülürler.
497
- - Yerel ayar sağlanmazsa yapılandırılmış `internationalization.defaultLocale`'a varsayılan olarak ayarlanır.
498
- - Bu yardımcılar ince sarmalayıcılardır; gelişmiş biçimlendirme için standart `Intl` seçeneklerini geçirin.
465
+ ```ts
466
+ import { getLocaleFromPath } from "intlayer";
499
467
 
500
- ## Giriş Noktaları ve Yeniden Dışa Aktarmalar (`@index.ts`)
468
+ getLocaleFromPath("/en/dashboard"); // "en"
469
+ getLocaleFromPath("/fr/dashboard"); // "fr"
470
+ getLocaleFromPath("/dashboard"); // "en" (varsayılan locale)
471
+ ```
501
472
 
502
- Biçimlendiriciler çekirdek pakette yaşar ve çalışma zamanları arasında içe aktarmaları ergonomik tutmak için daha yüksek seviyeli paketlerden yeniden dışa aktarılır:
473
+ ### `getPathWithoutLocale(inputUrl, locales?)`
503
474
 
504
- Örnekler:
475
+ URL'den yerel ayar segmentini kaldırır:
505
476
 
506
477
  ```ts
507
- // Uygulama kodu (önerilen)
508
- import {
509
- number,
510
- currency,
511
- date,
512
- relativeTime,
513
- units,
514
- compact,
515
- list,
516
- Intl,
517
- getLocaleName,
518
- getLocaleLang,
519
- getLocaleFromPath,
520
- getPathWithoutLocale,
521
- getLocalizedUrl,
522
- getHTMLTextDir,
523
- getContent,
524
- getTranslation,
525
- getIntlayer,
526
- getIntlayerAsync,
527
- } from "intlayer";
478
+ import { getPathWithoutLocale } from "intlayer";
479
+
480
+ getPathWithoutLocale("/en/dashboard"); // "/dashboard"
481
+ getPathWithoutLocale("/fr/dashboard"); // "/dashboard"
528
482
  ```
529
483
 
530
484
  ### React
@@ -247,6 +247,158 @@ Bu komut, başlangıç içerik sözlüklerinizi yükler ve Intlayer platformu ü
247
247
 
248
248
  Daha sonra sözlüğünüzü [Intlayer CMS](https://app.intlayer.org/content) üzerinde görüntüleyip yönetebileceksiniz.
249
249
 
250
+ ## `@intlayer/api` SDK ile Programmatic Erişim
251
+
252
+ CLI ve visual editor'ın ötesinde, Intlayer [`@intlayer/api`](https://www.npmjs.com/package/@intlayer/api) paketinde yazılı bir SDK ile birlikte gelir. CMS'i bir **headless içerik veritabanı** olarak ele almanızı sağlar: projeleri alabilir, sözlükleri alabilir ve bunları doğrudan kendi uygulamanızdan, script'lerinizden veya CI pipeline'ınızdan gönderebilir veya güncelleyebilirsiniz.
253
+
254
+ SDK, kimlik doğrulamasını sizin için yönetir. `clientId` ve `clientSecret` değerleriniz mevcut olduğu sürece (Intlayer yapılandırmanızda veya ortam değişkenlerinde), OAuth2 erişim tokenini otomatik olarak alır ve yeniler, her isteği imzalar.
255
+
256
+ ### Kurulum
257
+
258
+ ```bash packageManager="npm"
259
+ npm install @intlayer/api
260
+ ```
261
+
262
+ ```bash packageManager="yarn"
263
+ yarn add @intlayer/api
264
+ ```
265
+
266
+ ```bash packageManager="pnpm"
267
+ pnpm add @intlayer/api
268
+ ```
269
+
270
+ ```bash packageManager="bun"
271
+ bun add @intlayer/api
272
+ ```
273
+
274
+ ### Nasıl çalışır: authenticator + endpoints
275
+
276
+ SDK, paket boyutunuzu küçük tutmak amacıyla **iki ayrı import**'a bölünmüştür:
277
+
278
+ 1. `createIntlayerCMS` — hafif bir **authenticator** oluşturur. Yalnızca kimlik bilgilerini ve yönetilen erişim token'ını taşır; belirli bir alan adı hakkında hiçbir şey bilmez.
279
+ 2. `dictionaryEndpoint`, `projectEndpoint`, … — alan başına **endpoint bağlayıcıları**, her biri kendi alt yolundan içe aktarılır (`@intlayer/api/dictionary`, `@intlayer/api/project`, …). Authenticator'u ihtiyacınız olan endpoint'e geçirirsiniz.
280
+
281
+ Her endpoint ayrı olarak içe aktarıldığından, paketiniz yalnızca gerçekten kullandığınız alanları içerir — `dictionaryEndpoint` içe aktarmak hiçbir zaman proje, AI veya başka bir alan istemcisini içeri çekmez.
282
+
283
+ ```typescript fileName="cms.ts" codeFormat="typescript"
284
+ import { createIntlayerCMS } from "@intlayer/api";
285
+
286
+ // Yapılandırma isteğe bağlıdır: atlanırsa, kimlik bilgileri
287
+ // `@intlayer/config/built` dosyasından okunur; bu dosya INTLAYER_CLIENT_ID ve
288
+ // INTLAYER_CLIENT_SECRET ortam değişkenlerini çözer.
289
+ export const cmsAuthenticator = createIntlayerCMS();
290
+ ```
291
+
292
+ > [!WARNING]
293
+ > CMS kimlik bilgileri (`clientId` / `clientSecret`) içeriğinize **yazma erişimi** verir. Authenticator'u yalnızca **sunucu tarafında** (server actions, route handlers, scripts, CI) oluşturun. İstemci tarafı koduna asla içe aktarmayın veya kimlik bilgilerinizi tarayıcıya maruz bırakmayın.
294
+
295
+ Yapı zamanı yapılandırmasına güvenmemeyi tercih ederseniz, kimlik bilgilerini açıkça geçirin:
296
+
297
+ ```typescript fileName="cms.ts" codeFormat="typescript"
298
+ import { createIntlayerCMS } from "@intlayer/api";
299
+
300
+ export const cmsAuthenticator = createIntlayerCMS({
301
+ editor: {
302
+ clientId: process.env.INTLAYER_CLIENT_ID,
303
+ clientSecret: process.env.INTLAYER_CLIENT_SECRET,
304
+ // İsteğe bağlı, kendi barındırılan arka uçlar için:
305
+ // backendURL: process.env.INTLAYER_BACKEND_URL,
306
+ },
307
+ });
308
+ ```
309
+
310
+ > [Intlayer Dashboard - Projects](https://app.intlayer.org/projects) içinde yeni bir erişim anahtarı oluşturarak kimlik bilgilerinizi alın.
311
+
312
+ ### Projeleri Getir
313
+
314
+ ```typescript fileName="projects.ts" codeFormat="typescript"
315
+ import { createIntlayerCMS } from "@intlayer/api";
316
+ import { projectEndpoint } from "@intlayer/api/project";
317
+
318
+ const cmsAuthenticator = createIntlayerCMS();
319
+
320
+ // Kimlik bilgilerinizle erişilebilir projeleri listeleyin
321
+ const { data: projects } =
322
+ await projectEndpoint(cmsAuthenticator).getProjects();
323
+
324
+ // Seçilen projenin toplu lokalizasyon içgörülerini okuyun
325
+ const { data: insights } =
326
+ await projectEndpoint(cmsAuthenticator).getProjectInsights();
327
+ ```
328
+
329
+ ### Sözlükleri Getir
330
+
331
+ ```typescript fileName="read-dictionaries.ts" codeFormat="typescript"
332
+ import { createIntlayerCMS } from "@intlayer/api";
333
+ import { dictionaryEndpoint } from "@intlayer/api/dictionary";
334
+
335
+ const cmsAuthenticator = createIntlayerCMS();
336
+
337
+ // Projenin tüm uzak sözlüklerini listele
338
+ const { data: dictionaries } =
339
+ await dictionaryEndpoint(cmsAuthenticator).getDictionaries();
340
+
341
+ // Veya anahtara göre tek bir sözlük al
342
+ const { data: dictionary } = await dictionaryEndpoint(
343
+ cmsAuthenticator
344
+ ).getDictionary("my-first-dictionary-key");
345
+ ```
346
+
347
+ ### Sözlükleri push etme ve güncelleme
348
+
349
+ İçeriği geri yazmak için CMS'yi bir veritabanı olarak kullanın:
350
+
351
+ ```typescript fileName="write-dictionaries.ts" codeFormat="typescript"
352
+ import { createIntlayerCMS } from "@intlayer/api";
353
+ import { dictionaryEndpoint } from "@intlayer/api/dictionary";
354
+
355
+ const cmsAuthenticator = createIntlayerCMS();
356
+
357
+ // Yeni bir sözlük oluştur
358
+ await dictionaryEndpoint(cmsAuthenticator).addDictionary({
359
+ key: "my-first-dictionary-key",
360
+ content: { title: "Hello world" },
361
+ });
362
+
363
+ // Sözlüklerin bir batch'ini upsert et (bunları bir çağrıda oluştur veya güncelle)
364
+ await dictionaryEndpoint(cmsAuthenticator).pushDictionaries([
365
+ { key: "home", content: { title: "Home" } },
366
+ { key: "about", content: { title: "About" } },
367
+ ]);
368
+
369
+ // Mevcut bir sözlüğü güncelle
370
+ await dictionaryEndpoint(cmsAuthenticator).updateDictionary({
371
+ id: "<dictionary-id>",
372
+ key: "home",
373
+ content: { title: "Updated title" },
374
+ });
375
+ ```
376
+
377
+ > İpucu: kendinizi tekrarlamaktan kaçınmak için bağlı endpoint'i yeniden kullanın:
378
+ >
379
+ > ```typescript codeFormat="typescript"
380
+ > const dictionary = dictionaryEndpoint(cmsAuthenticator);
381
+ > await dictionary.pushDictionaries([myDictionary]);
382
+ > const { data } = await dictionary.getDictionaries();
383
+ > ```
384
+
385
+ ### Tek bir yöntemi çıkarma
386
+
387
+ Her endpoint yöntemi zaten kimliği doğrulanmış ve bağımsızdır (kendi token işlemesini taşır), bu nedenle birini çıkarabilir ve etrafta geçirebilirsiniz — örneğin bir bağımlılık olarak enjekte etmek için:
388
+
389
+ ```typescript fileName="push.ts" codeFormat="typescript"
390
+ import { createIntlayerCMS } from "@intlayer/api";
391
+ import { dictionaryEndpoint } from "@intlayer/api/dictionary";
392
+
393
+ const dictionary = dictionaryEndpoint(createIntlayerCMS());
394
+
395
+ // Zaten kimliği doğrulanmış — her çağrıda token'ı otomatik olarak yeniler
396
+ export const pushDictionaries = dictionary.pushDictionaries;
397
+
398
+ // Kullanım
399
+ await pushDictionaries([{ key: "home", content: { title: "Home" } }]);
400
+ ```
401
+
250
402
  ## Canlı senkronizasyon
251
403
 
252
404
  Canlı Senkronizasyon, uygulamanızın CMS içerik değişikliklerini çalışma zamanında yansıtmasını sağlar. Yeniden derleme veya yeniden dağıtım gerekmez. Etkinleştirildiğinde, güncellemeler uygulamanızın okuduğu sözlükleri yenileyen bir Canlı Senkronizasyon sunucusuna aktarılır.