@intlayer/docs 8.12.5-canary.0 → 9.0.0-canary.3

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 (429) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +320 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +320 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +16 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/cli/doc-review.md +110 -4
  8. package/docs/ar/cli/index.md +1 -1
  9. package/docs/ar/cli/scan.md +1 -1
  10. package/docs/ar/configuration.md +36 -3
  11. package/docs/ar/dictionary/condition.md +167 -5
  12. package/docs/ar/dictionary/enumeration.md +540 -6
  13. package/docs/ar/dictionary/file.md +151 -1
  14. package/docs/ar/dictionary/gender.md +168 -7
  15. package/docs/ar/dictionary/nesting.md +173 -65
  16. package/docs/ar/dictionary/plurial.md +174 -5
  17. package/docs/ar/dictionary/translation.md +156 -2
  18. package/docs/ar/dynamic_dictionaries/collections.md +1 -1
  19. package/docs/ar/dynamic_dictionaries/dynamic_content.md +1 -1
  20. package/docs/ar/dynamic_dictionaries/index.md +1 -1
  21. package/docs/ar/dynamic_dictionaries/variants.md +1 -1
  22. package/docs/ar/intlayer_with_vite+react.md +31 -31
  23. package/docs/ar/plugins/sync-json.md +222 -49
  24. package/docs/ar/releases/v8.md +187 -1
  25. package/docs/ar/releases/v9.md +232 -0
  26. package/docs/bn/cli/index.md +1 -1
  27. package/docs/bn/cli/scan.md +1 -1
  28. package/docs/bn/configuration.md +36 -3
  29. package/docs/cs/cli/index.md +1 -1
  30. package/docs/cs/cli/scan.md +1 -1
  31. package/docs/cs/configuration.md +35 -2
  32. package/docs/de/cli/doc-review.md +110 -4
  33. package/docs/de/cli/index.md +1 -1
  34. package/docs/de/cli/scan.md +1 -1
  35. package/docs/de/configuration.md +35 -2
  36. package/docs/de/dictionary/condition.md +167 -5
  37. package/docs/de/dictionary/enumeration.md +777 -7
  38. package/docs/de/dictionary/file.md +151 -1
  39. package/docs/de/dictionary/gender.md +168 -7
  40. package/docs/de/dictionary/nesting.md +173 -65
  41. package/docs/de/dictionary/plurial.md +347 -7
  42. package/docs/de/dictionary/translation.md +156 -2
  43. package/docs/de/dynamic_dictionaries/collections.md +1 -1
  44. package/docs/de/dynamic_dictionaries/dynamic_content.md +1 -1
  45. package/docs/de/dynamic_dictionaries/index.md +1 -1
  46. package/docs/de/dynamic_dictionaries/variants.md +1 -1
  47. package/docs/de/intlayer_with_vite+react.md +48 -48
  48. package/docs/de/migration_from_i18next_to_intlayer.md +1 -1
  49. package/docs/de/migration_from_next-i18next_to_intlayer.md +1 -1
  50. package/docs/de/migration_from_next-intl_to_intlayer.md +1 -1
  51. package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  52. package/docs/de/migration_from_react-i18next_to_intlayer.md +1 -1
  53. package/docs/de/migration_from_vue-i18n_to_intlayer.md +1 -1
  54. package/docs/de/plugins/sync-json.md +222 -49
  55. package/docs/de/releases/v8.md +197 -1
  56. package/docs/de/releases/v9.md +232 -0
  57. package/docs/en/CI_CD.md +7 -7
  58. package/docs/en/cli/ci.md +62 -8
  59. package/docs/en/cli/doc-review.md +110 -4
  60. package/docs/en/cli/index.md +1 -1
  61. package/docs/en/cli/scan.md +1 -1
  62. package/docs/en/compat/i18n-js.md +44 -0
  63. package/docs/en/compat/i18next.md +59 -0
  64. package/docs/en/compat/index.md +51 -0
  65. package/docs/en/compat/lingui.md +44 -0
  66. package/docs/en/compat/next-i18next.md +57 -0
  67. package/docs/en/compat/next-intl.md +59 -0
  68. package/docs/en/compat/next-translate.md +45 -0
  69. package/docs/en/compat/ngx-translate.md +45 -0
  70. package/docs/en/compat/nuxtjs-i18n.md +46 -0
  71. package/docs/en/compat/polyglot.md +45 -0
  72. package/docs/en/compat/react-i18next.md +58 -0
  73. package/docs/en/compat/react-intl.md +55 -0
  74. package/docs/en/compat/svelte-i18n.md +47 -0
  75. package/docs/en/compat/transloco.md +45 -0
  76. package/docs/en/compat/vue-i18n.md +58 -0
  77. package/docs/en/configuration.md +35 -2
  78. package/docs/en/dictionary/condition.md +163 -1
  79. package/docs/en/dictionary/enumeration.md +309 -7
  80. package/docs/en/dictionary/file.md +151 -1
  81. package/docs/en/dictionary/gender.md +162 -1
  82. package/docs/en/dictionary/nesting.md +173 -9
  83. package/docs/en/dictionary/plurial.md +155 -10
  84. package/docs/en/dictionary/translation.md +145 -52
  85. package/docs/en/dynamic_dictionaries/collections.md +1 -1
  86. package/docs/en/dynamic_dictionaries/dynamic_content.md +1 -1
  87. package/docs/en/dynamic_dictionaries/index.md +1 -1
  88. package/docs/en/dynamic_dictionaries/variants.md +1 -1
  89. package/docs/en/migration_from_i18next_to_intlayer.md +1 -1
  90. package/docs/en/migration_from_next-i18next_to_intlayer.md +1 -1
  91. package/docs/en/migration_from_next-intl_to_intlayer.md +1 -1
  92. package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  93. package/docs/en/migration_from_react-i18next_to_intlayer.md +1 -1
  94. package/docs/en/migration_from_vue-i18n_to_intlayer.md +1 -1
  95. package/docs/en/plugins/sync-json.md +56 -2
  96. package/docs/en/releases/v8.md +187 -1
  97. package/docs/en/releases/v9.md +220 -0
  98. package/docs/en-GB/cli/doc-review.md +110 -4
  99. package/docs/en-GB/cli/index.md +1 -1
  100. package/docs/en-GB/cli/scan.md +1 -1
  101. package/docs/en-GB/configuration.md +35 -2
  102. package/docs/en-GB/dictionary/condition.md +364 -1
  103. package/docs/en-GB/dictionary/enumeration.md +577 -5
  104. package/docs/en-GB/dictionary/file.md +317 -1
  105. package/docs/en-GB/dictionary/gender.md +375 -2
  106. package/docs/en-GB/dictionary/nesting.md +368 -71
  107. package/docs/en-GB/dictionary/plurial.md +347 -7
  108. package/docs/en-GB/dictionary/translation.md +320 -32
  109. package/docs/en-GB/dynamic_dictionaries/collections.md +1 -1
  110. package/docs/en-GB/dynamic_dictionaries/dynamic_content.md +1 -1
  111. package/docs/en-GB/dynamic_dictionaries/index.md +1 -1
  112. package/docs/en-GB/dynamic_dictionaries/variants.md +1 -1
  113. package/docs/en-GB/plugins/sync-json.md +245 -13
  114. package/docs/en-GB/releases/v8.md +1 -1
  115. package/docs/en-GB/releases/v9.md +220 -0
  116. package/docs/es/cli/doc-review.md +110 -4
  117. package/docs/es/cli/index.md +1 -1
  118. package/docs/es/cli/scan.md +1 -1
  119. package/docs/es/configuration.md +36 -3
  120. package/docs/es/dictionary/condition.md +167 -5
  121. package/docs/es/dictionary/enumeration.md +537 -12
  122. package/docs/es/dictionary/file.md +151 -1
  123. package/docs/es/dictionary/gender.md +168 -7
  124. package/docs/es/dictionary/nesting.md +173 -65
  125. package/docs/es/dictionary/plurial.md +347 -7
  126. package/docs/es/dictionary/translation.md +156 -2
  127. package/docs/es/dynamic_dictionaries/collections.md +1 -1
  128. package/docs/es/dynamic_dictionaries/dynamic_content.md +1 -1
  129. package/docs/es/dynamic_dictionaries/index.md +1 -1
  130. package/docs/es/dynamic_dictionaries/variants.md +1 -1
  131. package/docs/es/migration_from_i18next_to_intlayer.md +1 -1
  132. package/docs/es/migration_from_next-i18next_to_intlayer.md +1 -1
  133. package/docs/es/migration_from_next-intl_to_intlayer.md +1 -1
  134. package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  135. package/docs/es/migration_from_react-i18next_to_intlayer.md +1 -1
  136. package/docs/es/migration_from_vue-i18n_to_intlayer.md +1 -1
  137. package/docs/es/plugins/sync-json.md +222 -49
  138. package/docs/es/releases/v8.md +187 -1
  139. package/docs/es/releases/v9.md +228 -0
  140. package/docs/fr/cli/doc-review.md +110 -4
  141. package/docs/fr/cli/index.md +1 -1
  142. package/docs/fr/cli/scan.md +1 -1
  143. package/docs/fr/configuration.md +49 -16
  144. package/docs/fr/dictionary/condition.md +369 -6
  145. package/docs/fr/dictionary/enumeration.md +540 -6
  146. package/docs/fr/dictionary/file.md +151 -1
  147. package/docs/fr/dictionary/gender.md +168 -7
  148. package/docs/fr/dictionary/nesting.md +357 -86
  149. package/docs/fr/dictionary/plurial.md +174 -5
  150. package/docs/fr/dictionary/translation.md +156 -2
  151. package/docs/fr/dynamic_dictionaries/collections.md +1 -1
  152. package/docs/fr/dynamic_dictionaries/dynamic_content.md +1 -1
  153. package/docs/fr/dynamic_dictionaries/index.md +1 -1
  154. package/docs/fr/dynamic_dictionaries/variants.md +1 -1
  155. package/docs/fr/migration_from_i18next_to_intlayer.md +1 -1
  156. package/docs/fr/migration_from_next-i18next_to_intlayer.md +1 -1
  157. package/docs/fr/migration_from_next-intl_to_intlayer.md +1 -1
  158. package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  159. package/docs/fr/migration_from_react-i18next_to_intlayer.md +1 -1
  160. package/docs/fr/migration_from_vue-i18n_to_intlayer.md +1 -1
  161. package/docs/fr/plugins/sync-json.md +244 -12
  162. package/docs/fr/releases/v8.md +187 -1
  163. package/docs/fr/releases/v9.md +220 -0
  164. package/docs/hi/cli/doc-review.md +110 -4
  165. package/docs/hi/cli/index.md +1 -1
  166. package/docs/hi/cli/scan.md +1 -1
  167. package/docs/hi/configuration.md +49 -16
  168. package/docs/hi/dictionary/condition.md +167 -5
  169. package/docs/hi/dictionary/enumeration.md +540 -6
  170. package/docs/hi/dictionary/file.md +151 -1
  171. package/docs/hi/dictionary/gender.md +168 -7
  172. package/docs/hi/dictionary/nesting.md +173 -65
  173. package/docs/hi/dictionary/plurial.md +174 -5
  174. package/docs/hi/dictionary/translation.md +155 -5
  175. package/docs/hi/dynamic_dictionaries/collections.md +1 -1
  176. package/docs/hi/dynamic_dictionaries/dynamic_content.md +1 -1
  177. package/docs/hi/dynamic_dictionaries/index.md +1 -1
  178. package/docs/hi/dynamic_dictionaries/variants.md +1 -1
  179. package/docs/hi/plugins/sync-json.md +221 -48
  180. package/docs/hi/releases/v8.md +188 -2
  181. package/docs/hi/releases/v9.md +232 -0
  182. package/docs/id/cli/doc-review.md +110 -4
  183. package/docs/id/cli/index.md +1 -1
  184. package/docs/id/cli/scan.md +1 -1
  185. package/docs/id/configuration.md +35 -2
  186. package/docs/id/dictionary/condition.md +167 -5
  187. package/docs/id/dictionary/enumeration.md +540 -6
  188. package/docs/id/dictionary/file.md +318 -2
  189. package/docs/id/dictionary/gender.md +381 -8
  190. package/docs/id/dictionary/nesting.md +357 -86
  191. package/docs/id/dictionary/plurial.md +174 -5
  192. package/docs/id/dictionary/translation.md +156 -2
  193. package/docs/id/dynamic_dictionaries/collections.md +1 -1
  194. package/docs/id/dynamic_dictionaries/dynamic_content.md +1 -1
  195. package/docs/id/dynamic_dictionaries/index.md +1 -1
  196. package/docs/id/dynamic_dictionaries/variants.md +1 -1
  197. package/docs/id/plugins/sync-json.md +222 -49
  198. package/docs/id/releases/v8.md +191 -2
  199. package/docs/id/releases/v9.md +232 -0
  200. package/docs/it/cli/doc-review.md +110 -4
  201. package/docs/it/cli/index.md +1 -1
  202. package/docs/it/cli/scan.md +1 -1
  203. package/docs/it/configuration.md +49 -16
  204. package/docs/it/dictionary/condition.md +167 -5
  205. package/docs/it/dictionary/enumeration.md +540 -6
  206. package/docs/it/dictionary/file.md +318 -2
  207. package/docs/it/dictionary/gender.md +168 -7
  208. package/docs/it/dictionary/nesting.md +173 -65
  209. package/docs/it/dictionary/plurial.md +347 -7
  210. package/docs/it/dictionary/translation.md +156 -2
  211. package/docs/it/dynamic_dictionaries/collections.md +1 -1
  212. package/docs/it/dynamic_dictionaries/dynamic_content.md +1 -1
  213. package/docs/it/dynamic_dictionaries/index.md +1 -1
  214. package/docs/it/dynamic_dictionaries/variants.md +1 -1
  215. package/docs/it/intlayer_with_vite+react.md +0 -48
  216. package/docs/it/migration_from_i18next_to_intlayer.md +1 -1
  217. package/docs/it/migration_from_next-i18next_to_intlayer.md +1 -1
  218. package/docs/it/migration_from_next-intl_to_intlayer.md +1 -1
  219. package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  220. package/docs/it/migration_from_react-i18next_to_intlayer.md +1 -1
  221. package/docs/it/migration_from_vue-i18n_to_intlayer.md +1 -1
  222. package/docs/it/plugins/sync-json.md +224 -51
  223. package/docs/it/releases/v8.md +200 -2
  224. package/docs/it/releases/v9.md +232 -0
  225. package/docs/ja/cli/doc-review.md +110 -4
  226. package/docs/ja/cli/index.md +1 -1
  227. package/docs/ja/cli/scan.md +1 -1
  228. package/docs/ja/configuration.md +50 -17
  229. package/docs/ja/dictionary/condition.md +167 -5
  230. package/docs/ja/dictionary/enumeration.md +540 -6
  231. package/docs/ja/dictionary/file.md +151 -1
  232. package/docs/ja/dictionary/gender.md +168 -7
  233. package/docs/ja/dictionary/nesting.md +173 -65
  234. package/docs/ja/dictionary/plurial.md +174 -5
  235. package/docs/ja/dictionary/translation.md +169 -8
  236. package/docs/ja/dynamic_dictionaries/collections.md +1 -1
  237. package/docs/ja/dynamic_dictionaries/dynamic_content.md +1 -1
  238. package/docs/ja/dynamic_dictionaries/index.md +1 -1
  239. package/docs/ja/dynamic_dictionaries/variants.md +1 -1
  240. package/docs/ja/intlayer_with_vite+react.md +290 -0
  241. package/docs/ja/migration_from_i18next_to_intlayer.md +1 -1
  242. package/docs/ja/migration_from_next-i18next_to_intlayer.md +1 -1
  243. package/docs/ja/migration_from_next-intl_to_intlayer.md +1 -1
  244. package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  245. package/docs/ja/migration_from_react-i18next_to_intlayer.md +1 -1
  246. package/docs/ja/migration_from_vue-i18n_to_intlayer.md +1 -1
  247. package/docs/ja/plugins/sync-json.md +222 -49
  248. package/docs/ja/releases/v8.md +193 -4
  249. package/docs/ja/releases/v9.md +232 -0
  250. package/docs/ko/cli/doc-review.md +110 -4
  251. package/docs/ko/cli/index.md +1 -1
  252. package/docs/ko/cli/scan.md +1 -1
  253. package/docs/ko/configuration.md +49 -16
  254. package/docs/ko/dictionary/condition.md +167 -5
  255. package/docs/ko/dictionary/enumeration.md +540 -6
  256. package/docs/ko/dictionary/file.md +151 -1
  257. package/docs/ko/dictionary/gender.md +168 -7
  258. package/docs/ko/dictionary/nesting.md +173 -65
  259. package/docs/ko/dictionary/plurial.md +174 -5
  260. package/docs/ko/dictionary/translation.md +169 -8
  261. package/docs/ko/dynamic_dictionaries/collections.md +1 -1
  262. package/docs/ko/dynamic_dictionaries/dynamic_content.md +1 -1
  263. package/docs/ko/dynamic_dictionaries/index.md +1 -1
  264. package/docs/ko/dynamic_dictionaries/variants.md +1 -1
  265. package/docs/ko/intlayer_with_vite+react.md +48 -490
  266. package/docs/ko/migration_from_i18next_to_intlayer.md +1 -1
  267. package/docs/ko/migration_from_next-i18next_to_intlayer.md +1 -1
  268. package/docs/ko/migration_from_next-intl_to_intlayer.md +1 -1
  269. package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  270. package/docs/ko/migration_from_react-i18next_to_intlayer.md +1 -1
  271. package/docs/ko/migration_from_vue-i18n_to_intlayer.md +1 -1
  272. package/docs/ko/plugins/sync-json.md +223 -50
  273. package/docs/ko/releases/v8.md +192 -1
  274. package/docs/ko/releases/v9.md +232 -0
  275. package/docs/nl/cli/index.md +1 -1
  276. package/docs/nl/cli/scan.md +1 -1
  277. package/docs/nl/configuration.md +36 -3
  278. package/docs/pl/cli/doc-review.md +110 -4
  279. package/docs/pl/cli/index.md +1 -1
  280. package/docs/pl/cli/scan.md +1 -1
  281. package/docs/pl/configuration.md +35 -2
  282. package/docs/pl/dictionary/condition.md +167 -5
  283. package/docs/pl/dictionary/enumeration.md +540 -6
  284. package/docs/pl/dictionary/file.md +318 -2
  285. package/docs/pl/dictionary/gender.md +168 -7
  286. package/docs/pl/dictionary/nesting.md +173 -65
  287. package/docs/pl/dictionary/plurial.md +174 -5
  288. package/docs/pl/dictionary/translation.md +156 -2
  289. package/docs/pl/dynamic_dictionaries/collections.md +1 -1
  290. package/docs/pl/dynamic_dictionaries/dynamic_content.md +1 -1
  291. package/docs/pl/dynamic_dictionaries/index.md +1 -1
  292. package/docs/pl/dynamic_dictionaries/variants.md +1 -1
  293. package/docs/pl/plugins/sync-json.md +246 -14
  294. package/docs/pl/releases/v8.md +188 -2
  295. package/docs/pl/releases/v9.md +232 -0
  296. package/docs/pt/cli/doc-review.md +110 -4
  297. package/docs/pt/cli/index.md +1 -1
  298. package/docs/pt/cli/scan.md +1 -1
  299. package/docs/pt/configuration.md +49 -16
  300. package/docs/pt/dictionary/condition.md +167 -5
  301. package/docs/pt/dictionary/enumeration.md +540 -6
  302. package/docs/pt/dictionary/file.md +151 -1
  303. package/docs/pt/dictionary/gender.md +168 -7
  304. package/docs/pt/dictionary/nesting.md +173 -65
  305. package/docs/pt/dictionary/plurial.md +347 -7
  306. package/docs/pt/dictionary/translation.md +156 -2
  307. package/docs/pt/dynamic_dictionaries/collections.md +1 -1
  308. package/docs/pt/dynamic_dictionaries/dynamic_content.md +1 -1
  309. package/docs/pt/dynamic_dictionaries/index.md +1 -1
  310. package/docs/pt/dynamic_dictionaries/variants.md +1 -1
  311. package/docs/pt/migration_from_i18next_to_intlayer.md +1 -1
  312. package/docs/pt/migration_from_next-i18next_to_intlayer.md +1 -1
  313. package/docs/pt/migration_from_next-intl_to_intlayer.md +1 -1
  314. package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  315. package/docs/pt/migration_from_react-i18next_to_intlayer.md +1 -1
  316. package/docs/pt/migration_from_vue-i18n_to_intlayer.md +1 -1
  317. package/docs/pt/plugins/sync-json.md +222 -49
  318. package/docs/pt/releases/v8.md +187 -1
  319. package/docs/pt/releases/v9.md +232 -0
  320. package/docs/ru/cli/doc-review.md +110 -4
  321. package/docs/ru/cli/index.md +1 -1
  322. package/docs/ru/cli/scan.md +1 -1
  323. package/docs/ru/configuration.md +35 -2
  324. package/docs/ru/dictionary/condition.md +366 -39
  325. package/docs/ru/dictionary/enumeration.md +777 -7
  326. package/docs/ru/dictionary/file.md +318 -2
  327. package/docs/ru/dictionary/gender.md +168 -7
  328. package/docs/ru/dictionary/nesting.md +368 -71
  329. package/docs/ru/dictionary/plurial.md +347 -7
  330. package/docs/ru/dictionary/translation.md +321 -33
  331. package/docs/ru/dynamic_dictionaries/collections.md +1 -1
  332. package/docs/ru/dynamic_dictionaries/dynamic_content.md +1 -1
  333. package/docs/ru/dynamic_dictionaries/index.md +1 -1
  334. package/docs/ru/dynamic_dictionaries/variants.md +1 -1
  335. package/docs/ru/intlayer_with_vite+react.md +48 -47
  336. package/docs/ru/migration_from_i18next_to_intlayer.md +1 -1
  337. package/docs/ru/migration_from_next-i18next_to_intlayer.md +1 -1
  338. package/docs/ru/migration_from_next-intl_to_intlayer.md +1 -1
  339. package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  340. package/docs/ru/migration_from_react-i18next_to_intlayer.md +1 -1
  341. package/docs/ru/migration_from_vue-i18n_to_intlayer.md +1 -1
  342. package/docs/ru/plugins/sync-json.md +269 -95
  343. package/docs/ru/releases/v8.md +194 -2
  344. package/docs/ru/releases/v9.md +232 -0
  345. package/docs/tr/cli/doc-review.md +110 -4
  346. package/docs/tr/cli/index.md +1 -1
  347. package/docs/tr/cli/scan.md +1 -1
  348. package/docs/tr/configuration.md +35 -2
  349. package/docs/tr/dictionary/condition.md +167 -5
  350. package/docs/tr/dictionary/enumeration.md +540 -6
  351. package/docs/tr/dictionary/file.md +151 -1
  352. package/docs/tr/dictionary/gender.md +168 -7
  353. package/docs/tr/dictionary/nesting.md +173 -65
  354. package/docs/tr/dictionary/plurial.md +174 -5
  355. package/docs/tr/dictionary/translation.md +156 -2
  356. package/docs/tr/dynamic_dictionaries/collections.md +1 -1
  357. package/docs/tr/dynamic_dictionaries/dynamic_content.md +1 -1
  358. package/docs/tr/dynamic_dictionaries/index.md +1 -1
  359. package/docs/tr/dynamic_dictionaries/variants.md +1 -1
  360. package/docs/tr/migration_from_i18next_to_intlayer.md +1 -1
  361. package/docs/tr/migration_from_next-i18next_to_intlayer.md +1 -1
  362. package/docs/tr/migration_from_next-intl_to_intlayer.md +1 -1
  363. package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  364. package/docs/tr/migration_from_react-i18next_to_intlayer.md +1 -1
  365. package/docs/tr/migration_from_vue-i18n_to_intlayer.md +1 -1
  366. package/docs/tr/plugins/sync-json.md +222 -50
  367. package/docs/tr/releases/v8.md +187 -1
  368. package/docs/tr/releases/v9.md +232 -0
  369. package/docs/uk/cli/doc-review.md +110 -4
  370. package/docs/uk/cli/index.md +1 -1
  371. package/docs/uk/cli/scan.md +1 -1
  372. package/docs/uk/configuration.md +35 -2
  373. package/docs/uk/dictionary/condition.md +167 -5
  374. package/docs/uk/dictionary/enumeration.md +540 -6
  375. package/docs/uk/dictionary/file.md +318 -2
  376. package/docs/uk/dictionary/gender.md +381 -8
  377. package/docs/uk/dictionary/nesting.md +173 -65
  378. package/docs/uk/dictionary/plurial.md +174 -5
  379. package/docs/uk/dictionary/translation.md +156 -2
  380. package/docs/uk/dynamic_dictionaries/collections.md +1 -1
  381. package/docs/uk/dynamic_dictionaries/dynamic_content.md +1 -1
  382. package/docs/uk/dynamic_dictionaries/index.md +1 -1
  383. package/docs/uk/dynamic_dictionaries/variants.md +1 -1
  384. package/docs/uk/plugins/sync-json.md +56 -2
  385. package/docs/uk/releases/v8.md +191 -3
  386. package/docs/uk/releases/v9.md +232 -0
  387. package/docs/ur/cli/index.md +1 -1
  388. package/docs/ur/cli/scan.md +1 -1
  389. package/docs/ur/configuration.md +36 -3
  390. package/docs/vi/cli/doc-review.md +110 -4
  391. package/docs/vi/cli/index.md +1 -1
  392. package/docs/vi/cli/scan.md +1 -1
  393. package/docs/vi/configuration.md +50 -17
  394. package/docs/vi/dictionary/condition.md +167 -5
  395. package/docs/vi/dictionary/enumeration.md +591 -14
  396. package/docs/vi/dictionary/file.md +318 -2
  397. package/docs/vi/dictionary/gender.md +168 -7
  398. package/docs/vi/dictionary/nesting.md +357 -86
  399. package/docs/vi/dictionary/plurial.md +174 -5
  400. package/docs/vi/dictionary/translation.md +156 -2
  401. package/docs/vi/dynamic_dictionaries/collections.md +1 -1
  402. package/docs/vi/dynamic_dictionaries/dynamic_content.md +1 -1
  403. package/docs/vi/dynamic_dictionaries/index.md +1 -1
  404. package/docs/vi/dynamic_dictionaries/variants.md +1 -1
  405. package/docs/vi/plugins/sync-json.md +230 -57
  406. package/docs/vi/releases/v8.md +190 -1
  407. package/docs/vi/releases/v9.md +232 -0
  408. package/docs/zh/cli/doc-review.md +110 -4
  409. package/docs/zh/cli/index.md +1 -1
  410. package/docs/zh/cli/scan.md +1 -1
  411. package/docs/zh/configuration.md +49 -16
  412. package/docs/zh/dictionary/condition.md +167 -5
  413. package/docs/zh/dictionary/enumeration.md +540 -6
  414. package/docs/zh/dictionary/file.md +151 -1
  415. package/docs/zh/dictionary/gender.md +168 -7
  416. package/docs/zh/dictionary/nesting.md +173 -65
  417. package/docs/zh/dictionary/plurial.md +174 -5
  418. package/docs/zh/dictionary/translation.md +169 -8
  419. package/docs/zh/dynamic_dictionaries/collections.md +1 -1
  420. package/docs/zh/dynamic_dictionaries/dynamic_content.md +1 -1
  421. package/docs/zh/dynamic_dictionaries/index.md +1 -1
  422. package/docs/zh/dynamic_dictionaries/variants.md +1 -1
  423. package/docs/zh/intlayer_with_vite+react.md +48 -288
  424. package/docs/zh/plugins/sync-json.md +223 -50
  425. package/docs/zh/releases/v8.md +1 -1
  426. package/docs/zh/releases/v9.md +220 -0
  427. package/package.json +7 -7
  428. package/src/generated/docs.entry.ts +320 -0
  429. package/dist/esm/_virtual/_rolldown/runtime.mjs +0 -8
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-03-13
3
- updatedAt: 2025-12-13
3
+ updatedAt: 2026-06-21
4
4
  title: JSON Senkronizasyon Eklentisi
5
5
  description: Intlayer sözlüklerini üçüncü taraf i18n JSON dosyalarıyla (i18next, next-intl, react-intl, vue-i18n ve daha fazlası) senkronize edin. Mevcut i18n yapınızı koruyarak Intlayer ile mesajlarınızı yönetin, çevirin ve test edin.
6
6
  keywords:
@@ -24,6 +24,9 @@ slugs:
24
24
  - sync-json
25
25
  youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
26
26
  history:
27
+ - version: 9.0.0
28
+ date: 2026-06-21
29
+ changes: "next-intl / react-intl tek dosya düzenleri için splitKeys seçeneği eklendi (üst düzey ad alanı anahtarı başına bir sözlük)"
27
30
  - version: 7.5.0
28
31
  date: 2025-12-13
29
32
  changes: "ICU ve i18next format desteği eklendi"
@@ -62,7 +65,63 @@ pnpm add -D @intlayer/sync-json-plugin
62
65
  npm i -D @intlayer/sync-json-plugin
63
66
  ```
64
67
 
65
- ## Hızlı başlangıç
68
+ ## Plugins
69
+
70
+ Bu paket iki eklenti sağlar:
71
+
72
+ - `loadJSON`: JSON dosyalarını Intlayer sözlüklerine yükler.
73
+ - Bu eklenti, bir kaynaktan JSON dosyalarını yüklemek için kullanılır ve Intlayer sözlüklerine yüklenecektir. Tüm kod tabanını tarayabilir ve belirli JSON dosyalarını arayabilir.
74
+ Bu eklenti şu durumlarda kullanılabilir:
75
+ - JSON'larınızın belirli bir konumda yüklenmesini zorunlu kılan bir i18n kütüphanesi kullanıyorsanız (örn: `next-intl`, `i18next`, `react-intl`, `vue-i18n`, vb.), ancak içerik bildirimlerinizi kod tabanınızda istediğiniz yere yerleştirmek istiyorsanız.
76
+ - Mesajlarınızı uzak bir kaynaktan (örn: bir CMS, bir API, vb.) almak ve mesajlarınızı JSON dosyalarında saklamak istiyorsanız da kullanılabilir.
77
+
78
+ > Arka planda, bu eklenti tüm kod tabanını tarayacak ve belirli JSON dosyalarını arayacak ve bunları Intlayer sözlüklerine yükleyecektir.
79
+ > Bu eklentinin çıktıyı ve çevirileri JSON dosyalarına geri yazmayacağını unutmayın.
80
+
81
+ - `syncJSON`: JSON dosyalarını Intlayer sözlükleriyle senkronize eder.
82
+ - Bu eklenti, JSON dosyalarını Intlayer sözlükleriyle senkronize etmek için kullanılır. Verilen konumu tarayabilir ve belirli JSON dosyaları için desene uyan JSON'u yükleyebilir. Bu eklenti, başka bir i18n kütüphanesi kullanırken Intlayer'ın faydalarından yararlanmak istiyorsanız kullanışlıdır.
83
+
84
+ ## Her iki eklentiyi de kullanma
85
+
86
+ ```ts fileName="intlayer.config.ts"
87
+ import { Locales, type IntlayerConfig } from "intlayer";
88
+ import { loadJSON, syncJSON } from "@intlayer/sync-json-plugin";
89
+
90
+ const config: IntlayerConfig = {
91
+ internationalization: {
92
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
93
+ defaultLocale: Locales.ENGLISH,
94
+ },
95
+
96
+ // Mevcut JSON dosyalarınızı Intlayer sözlükleriyle senkronize tutun
97
+ plugins: [
98
+ /**
99
+ * src dizinindeki {key}.i18n.json desenine uyan tüm JSON dosyalarını yükleyecektir
100
+ */
101
+ loadJSON({
102
+ source: ({ key }) => `./src/**/${key}.i18n.json`,
103
+ locale: Locales.ENGLISH,
104
+ priority: 1, // Bu JSON dosyalarının `./locales/en/${key}.json` adresindeki dosyalara göre öncelikli olmasını sağlar
105
+ format: "intlayer", // JSON içeriğinin formatı
106
+ }),
107
+ /**
108
+ * Çıktıyı ve çevirileri locales dizinindeki JSON dosyalarına yükleyecek ve yazacaktır
109
+ */
110
+ syncJSON({
111
+ format: "i18next",
112
+ source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
113
+ priority: 0,
114
+ format: "i18next",
115
+ }),
116
+ ],
117
+ };
118
+
119
+ export default config;
120
+ ```
121
+
122
+ ## `syncJSON` plugin
123
+
124
+ ### Hızlı başlangıç
66
125
 
67
126
  Eklentiyi `intlayer.config.ts` dosyanıza ekleyin ve mevcut JSON yapınıza işaret edin.
68
127
 
@@ -81,6 +140,7 @@ const config: IntlayerConfig = {
81
140
  syncJSON({
82
141
  // Yerel başına, ad alanı başına düzen (örneğin, next-intl, ad alanları ile i18next)
83
142
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
143
+ format: "icu",
84
144
  }),
85
145
  ],
86
146
  };
@@ -91,14 +151,27 @@ export default config;
91
151
  Alternatif: her yerel için tek dosya (i18next/react-intl yapılandırmalarında yaygın):
92
152
 
93
153
  ```ts fileName="intlayer.config.ts"
94
- plugins: [
95
- syncJSON({
96
- source: ({ locale }) => `./locales/${locale}.json`,
97
- }),
98
- ];
154
+ import { Locales, type IntlayerConfig } from "intlayer";
155
+ import { syncJSON } from "@intlayer/sync-json-plugin";
156
+
157
+ const config: IntlayerConfig = {
158
+ internationalization: {
159
+ locales: [Locales.ENGLISH, Locales.FRENCH],
160
+ defaultLocale: Locales.ENGLISH,
161
+ },
162
+ plugins: [
163
+ syncJSON({
164
+ format: "i18next",
165
+ source: ({ locale }) => `./locales/${locale}.json`,
166
+ format: "i18next",
167
+ }),
168
+ ],
169
+ };
170
+
171
+ export default config;
99
172
  ```
100
173
 
101
- ### Nasıl çalışır
174
+ #### Nasıl çalışır
102
175
 
103
176
  - Okuma: eklenti, `source` yapıcınızdan JSON dosyalarını keşfeder ve bunları Intlayer sözlükleri olarak yükler.
104
177
  - Yazma: derlemeler ve doldurmalar sonrası, yerelleştirilmiş JSON'u aynı yollara yazar (biçimlendirme sorunlarını önlemek için sonuna yeni satır ekleyerek).
@@ -112,6 +185,7 @@ syncJSON({
112
185
  location?: string, // isteğe bağlı etiket, varsayılan: "plugin"
113
186
  priority?: number, // isteğe bağlı öncelik, çakışma çözümü için, varsayılan: 0
114
187
  format?: 'intlayer' | 'icu' | 'i18next', // isteğe bağlı formatlayıcı, Intlayer runtime uyumluluğu için kullanılır
188
+ splitKeys?: boolean, // isteğe bağlı, tek bir dosyayı üst düzey anahtar başına bir sözlüğe böler (otomatik algılanır)
115
189
  });
116
190
  ```
117
191
 
@@ -136,18 +210,49 @@ syncJSON({
136
210
  }),
137
211
  ```
138
212
 
139
- ## Birden fazla JSON kaynağı ve öncelik
213
+ #### `splitKeys` (boolean)
214
+
215
+ **İlk düzey anahtarları ad alanları olan** tek bir JSON dosyasının, tüm dosyayı tutan tek bir sözlük yerine, üst düzey anahtar başına bir sözlük haline gelip gelmeyeceğini kontrol eder.
216
+
217
+ Bu, `next-intl` ve `react-intl` gibi kütüphanelerin ad alanı modeline uyar; burada bir `messages/{locale}.json` dosyası, ilk düzey anahtarlarıyla birden çok ad alanını gruplandırır ve her biri bağımsız olarak ele alınır (örneğin, `useTranslations('Hero')` `Hero` sözlüğüne çözümlenir).
218
+
219
+ - `undefined` (varsayılan): **otomatik algılanır** — `source` deseninde `{key}` segmenti yoksa dosya bölünür (bir dosya her ad alanını tutar), aksi takdirde tek bir sözlük olarak kalır (anahtar başına bir dosya).
220
+ - `true`: her üst düzey anahtarı her zaman kendi sözlüğüne böler.
221
+ - `false`: asla bölmez; tüm dosya tek bir sözlük haline gelir.
222
+
223
+ Tek bir `messages/{locale}.json` dosyası verildiğinde:
224
+
225
+ ```json fileName="messages/en.json"
226
+ {
227
+ "Hero": { "title": "Full-stack developer" },
228
+ "Nav": { "work": "Work", "about": "About" },
229
+ "About": { "lead": "I build apps end to end." }
230
+ }
231
+ ```
232
+
233
+ ```ts fileName="intlayer.config.ts"
234
+ syncJSON({
235
+ format: "icu",
236
+ source: ({ locale }) => `./messages/${locale}.json`,
237
+ // splitKeys: true, // desenin `{key}` segmenti olmadığı için ima edilir
238
+ }),
239
+ ```
240
+
241
+ Bu, üç sözlük (`Hero`, `Nav` ve `About`) üretir, böylece `useTranslations('Hero')` (next-intl) doğru şekilde çözümlenir. Geri yazma işleminde, tüm ad alanları aynı yerel başına dosyada yeniden birleştirilir.
242
+
243
+ > `source` içinde açık `{key}` segmentini koruduğunuzda (örneğin, `./locales/${locale}/${key}.json`), her dosya zaten bir ad alanıdır, bu nedenle bölme varsayılan olarak devre dışıdır.
244
+
245
+ ### Multiple JSON sources and priority
140
246
 
141
247
  Farklı JSON kaynaklarını senkronize etmek için birden fazla `syncJSON` eklentisi ekleyebilirsiniz. Bu, projenizde birden fazla i18n kütüphanesi veya farklı JSON yapıları olduğunda faydalıdır.
142
248
 
143
- ### Öncelik sistemi
249
+ #### Öncelik sistemi
144
250
 
145
251
  Birden fazla eklenti aynı sözlük anahtarını hedeflediğinde, `priority` parametresi hangi eklentinin öncelikli olduğunu belirler:
146
252
 
147
253
  - Daha yüksek öncelik numaraları, daha düşük olanlara karşı kazanır
148
-
149
254
  - `.content` dosyalarının varsayılan önceliği `0`'dır
150
- - Eklentilerin içerik dosyalarının varsayılan önceliği `-1`'dir
255
+ - Eklentilerin varsayılan önceliği `0`'dır
151
256
  - Aynı önceliğe sahip eklentiler, yapılandırmada göründükleri sırayla işlenir
152
257
 
153
258
  ```ts fileName="intlayer.config.ts"
@@ -190,73 +295,140 @@ const config: IntlayerConfig = {
190
295
  export default config;
191
296
  ```
192
297
 
193
- ### Çakışma çözümü
298
+ ## Load JSON plugin
194
299
 
195
- Aynı çeviri anahtarı birden fazla JSON kaynağında mevcutsa:
300
+ ### Hızlı başlangıç
196
301
 
197
- 1. En yüksek önceliğe sahip eklenti nihai değeri belirler
198
- 2. Daha düşük öncelikli kaynaklar, eksik anahtarlar için yedek olarak kullanılır
199
- 3. Bu, eski çevirileri korumanıza ve yeni yapılara kademeli olarak geçiş yapmanıza olanak tanır
302
+ Mevcut JSON dosyalarını Intlayer sözlükleri olarak almak için eklentiyi `intlayer.config.ts` dosyanıza ekleyin. Bu eklenti salt okunurdur (diske yazma yapmaz):
200
303
 
201
- ## Entegrasyonlar
304
+ ```ts fileName="intlayer.config.ts"
305
+ import { Locales, type IntlayerConfig } from "intlayer";
306
+ import { loadJSON } from "@intlayer/sync-json-plugin";
202
307
 
203
- Aşağıda yaygın eşlemeler bulunmaktadır. Çalışma zamanınızı değiştirmeyin; sadece eklentiyi ekleyin.
308
+ const config: IntlayerConfig = {
309
+ internationalization: {
310
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
311
+ defaultLocale: Locales.ENGLISH,
312
+ },
204
313
 
205
- ### i18next
314
+ plugins: [
315
+ // Kaynak ağacınızın herhangi bir yerinde bulunan JSON mesajlarını alın
316
+ loadJSON({
317
+ source: ({ key }) => `./src/**/${key}.i18n.json`,
318
+ // Eklenti örneği başına tek bir yerel yükleyin (yapılandırma varsayılan yereline ayarlanır)
319
+ locale: Locales.ENGLISH,
320
+ priority: 0,
321
+ }),
322
+ ],
323
+ };
206
324
 
207
- Tipik dosya düzeni: `./public/locales/{locale}/{namespace}.json` veya `./locales/{locale}/{namespace}.json`.
325
+ export default config;
326
+ ```
327
+
328
+ Alternatif: yerel başına düzen, yine salt okunur (yalnızca seçilen yerel yüklenir):
208
329
 
209
330
  ```ts fileName="intlayer.config.ts"
210
- import { syncJSON } from "@intlayer/sync-json-plugin";
331
+ import { Locales, type IntlayerConfig } from "intlayer";
332
+ import { loadJSON } from "@intlayer/sync-json-plugin";
211
333
 
212
- export default {
334
+ const config: IntlayerConfig = {
335
+ internationalization: {
336
+ locales: [Locales.ENGLISH, Locales.FRENCH],
337
+ defaultLocale: Locales.ENGLISH,
338
+ },
213
339
  plugins: [
214
- syncJSON({
215
- format: "i18next",
340
+ loadJSON({
341
+ // Bu desenden yalnızca Locales.FRENCH için dosyalar yüklenecektir
216
342
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
343
+ locale: Locales.FRENCH,
217
344
  }),
218
345
  ],
219
346
  };
347
+
348
+ export default config;
220
349
  ```
221
350
 
222
- ### next-intl
351
+ ### Nasıl çalışır
352
+
353
+ - Keşfet: `source` yapıcınızdan bir glob oluşturur ve eşleşen JSON dosyalarını toplar.
354
+ - Al: her JSON dosyasını sağlanan `locale` ile bir Intlayer sözlüğü olarak yükler.
355
+ - Salt okunur: çıktı dosyalarını yazmaz veya biçimlendirmez; gidiş-dönüş senkronizasyonuna ihtiyacınız varsa `syncJSON` kullanın.
356
+ - Otomatik doldurmaya hazır: `fill` deseni tanımlar, böylece `intlayer content fill` eksik anahtarları CLI aracılığıyla doldurabilir.
223
357
 
224
- Her yerel için JSON mesajları (genellikle `./messages/{locale}.json`) veya her ad alanı için.
358
+ ### API
225
359
 
226
- ```ts fileName="intlayer.config.ts"
227
- plugins: [
228
- syncJSON({
229
- source: ({ locale, key }) => `./messages/${locale}/${key}.json`,
230
- }),
231
- ];
360
+ ```ts
361
+ loadJSON({
362
+ // JSON'unuza giden yolları oluşturun. Yapınızda yerel segment yoksa `locale` isteğe bağlıdır
363
+ source: ({ key, locale }) => string,
364
+
365
+ // Bu eklenti örneği tarafından yüklenen sözlükler için hedef yerel
366
+ // configuration.internationalization.defaultLocale varsayılanına ayarlanır
367
+ locale?: Locale,
368
+
369
+ // Kaynağı tanımlamak için isteğe bağlı etiket
370
+ location?: string, // varsayılan: "plugin"
371
+
372
+ // Diğer kaynaklara karşı çakışma çözümü için kullanılan öncelik
373
+ priority?: number, // varsayılan: 0
374
+
375
+ // JSON içeriği için isteğe bağlı formatlayıcı
376
+ format?: 'intlayer' | 'icu' | 'i18next', // varsayılan: 'intlayer'
377
+
378
+ // Tek bir dosyayı üst düzey anahtar başına bir sözlüğe böler (otomatik algılanır)
379
+ splitKeys?: boolean,
380
+ });
232
381
  ```
233
382
 
234
- Ayrıca bakınız: `docs/tr/intlayer_with_next-intl.md`.
383
+ #### `format` ('intlayer' | 'icu' | 'i18next')
384
+
385
+ JSON dosyalarını yüklerken sözlük içeriği için kullanılacak formatlayıcıyı belirtir. Bu, çeşitli i18n kütüphaneleriyle uyumlu farklı mesaj formatlama sözdizimlerini kullanmanıza olanak tanır.
235
386
 
236
- ### react-intl
387
+ - `'intlayer'`: Varsayılan Intlayer formatlayıcısı (varsayılan).
388
+ - `'icu'`: ICU mesaj formatlamasını kullanır (react-intl, vue-i18n gibi kütüphanelerle uyumlu).
389
+ - `'i18next'`: i18next mesaj formatlamasını kullanır (i18next, next-i18next, Solid-i18next ile uyumlu).
237
390
 
238
- Her yerel için tek JSON yaygındır:
391
+ **Örnek:**
239
392
 
240
- ```ts fileName="intlayer.config.ts"
241
- plugins: [
242
- syncJSON({
243
- source: ({ locale }) => `./locales/${locale}.json`,
244
- }),
245
- ];
393
+ ```ts
394
+ loadJSON({
395
+ source: ({ key }) => `./src/**/${key}.i18n.json`,
396
+ locale: Locales.ENGLISH,
397
+ format: "icu", // Uyumluluk için ICU formatlaması kullan
398
+ }),
246
399
  ```
247
400
 
248
- ### vue-i18n
401
+ #### `splitKeys` (boolean)
249
402
 
250
- Her yerel için ya da her ad alanı için tek bir dosya olabilir:
403
+ [`syncJSON`](#splitkeys-boolean) ile aynı davranış: tek bir JSON dosyası, ilk düzey anahtarlarıyla birden çok ad alanını gruplandırdığında, her üst düzey anahtar kendi sözlüğü haline gelir.
251
404
 
252
- ```ts fileName="intlayer.config.ts"
253
- plugins: [
254
- syncJSON({
255
- source: ({ key, locale }) => `./src/locales/${locale}/${key}.json`,
256
- }),
257
- ];
405
+ - `undefined` (varsayılan): **otomatik algılanır** — `source` deseninde `{key}` segmenti yoksa bölünür, aksi takdirde tek bir sözlük olur.
406
+ - `true` / `false`: bölmeyi zorlar veya devre dışı bırakır.
407
+
408
+ ```ts
409
+ loadJSON({
410
+ source: ({ locale }) => `./messages/${locale}.json`,
411
+ format: "icu",
412
+ // splitKeys otomatik etkinleştirildi: `Hero`, `Nav`, `About`, … her biri bir sözlük haline gelir
413
+ }),
258
414
  ```
259
415
 
416
+ ### Behavior and conventions
417
+
418
+ - `source` maskeniz bir yerel yer tutucusu içeriyorsa, yalnızca seçilen `locale` için dosyalar alınır.
419
+ - Maskenizde `{key}` segmenti yoksa, dosyanın her üst düzey anahtarı varsayılan olarak kendi sözlüğü haline gelir (bkz. [`splitKeys`](#splitkeys-boolean)). Bunun yerine tüm dosyayı tek bir `index` sözlüğü olarak yüklemek için `splitKeys: false` olarak ayarlayın.
420
+ - Anahtarlar, `source` yapıcınızdaki `{key}` yer tutucusunun yerine geçirilerek dosya yollarından türetilir.
421
+ - Eklenti yalnızca keşfedilen dosyaları kullanır ve eksik yerelleri veya anahtarları uydurmaz.
422
+ - `fill` yolu, `source`'unuzdan çıkarılır ve CLI aracılığıyla eksik değerleri güncellemek için kullanılır.
423
+
424
+ ## Conflict resolution
425
+
426
+ Aynı çeviri anahtarı birden fazla JSON kaynağında mevcutsa:
427
+
428
+ 1. En yüksek önceliğe sahip eklenti nihai değeri belirler
429
+ 2. Daha düşük öncelikli kaynaklar, eksik anahtarlar için yedek olarak kullanılır
430
+ 3. Bu, eski çevirileri korumanıza ve yeni yapılara kademeli olarak geçiş yapmanıza olanak tanır
431
+
260
432
  ## CLI
261
433
 
262
434
  Eşzamanlanmış JSON dosyaları diğer `.content` dosyaları gibi kabul edilecektir. Bu, tüm intlayer komutlarının eşzamanlanmış JSON dosyaları için de kullanılabilir olduğu anlamına gelir. Şunları içerir:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-22
3
- updatedAt: 2026-01-26
3
+ updatedAt: 2026-06-14
4
4
  title: "Yeni Intlayer v8 - Yenilikler"
5
5
  description: "Intlayer v8'deki yenilikleri keşfedin. Geliştirici deneyiminde otomatik içerik algılama ile iyileştirmeler, şema doğrulamasıyla veri bütünlüğünün sağlanması ve sözlük yönetimi üzerinde daha fazla kontrol sunulmaktadır."
6
6
  keywords:
@@ -409,6 +409,16 @@ Daha fazla ayrıntı için [HTML İçerik Dokümantasyonu](https://github.com/ay
409
409
 
410
410
  ---
411
411
 
412
+ ## YAML ve Markdown İçerik Dosyaları (v8.10.0)
413
+
414
+ Artık doğrudan `.content.md` ve `.content.yaml` dosya uzantılarını kullanarak içerik tanımlayabilirsiniz. Bu, uzun biçimli içerikler, bloglar, dokümantasyonlar ve gizlilik politikaları için mükemmeldir.
415
+
416
+ Bu dosyalar Görsel Editör (Visual Editor) üzerinden tamamen düzenlenebilir, böylece teknik olmayan ekip üyeleri için kolaylaştırılmış bir iş akışı sağlanır.
417
+
418
+ Daha fazla ayrıntı için [YAML İçerik Dosyaları Dokümantasyonu](https://intlayer.org/tr/doc/concept/content#yaml-content-file) ve [Markdown İçerik Dosyaları Dokümantasyonu](https://intlayer.org/tr/doc/concept/content/markdown) sayfalarına bakın.
419
+
420
+ ---
421
+
412
422
  ## Özel URL Yeniden Yazımları
413
423
 
414
424
  Intlayer v8, standart `/locale/path` yapısından farklı olan dile özgü yollar tanımlamanıza olanak tanıyan **Özel URL Yeniden Yazımları** desteğini getirir. Bu, yerel SEO'yu iyileştirmek ve İngilizce dışı kullanıcılar için daha doğal bir kullanıcı deneyimi sağlamak açısından güçlü bir özelliktir.
@@ -753,6 +763,58 @@ export default {
753
763
  </Tab>
754
764
  </Tabs>
755
765
 
766
+ ## Unicode CLDR Çoğul Kuralları (v8.8.0)
767
+
768
+ Karmaşık diller için desteği artıran, Unicode CLDR Projesi tarafından tanımlanan çoğul kurallarına dayalı yeni bir `plural` düğüm yardımcısı (helper) tanıtıldı.
769
+
770
+ ```typescript fileName="src/openings.content.ts"
771
+ import { plural, t, type Dictionary } from "intlayer";
772
+
773
+ const openingsContent = {
774
+ key: "total_openings",
775
+ content: {
776
+ totalOpenings: t({
777
+ en: plural({
778
+ one: "{{count}} opening",
779
+ other: "{{count}} openings",
780
+ }),
781
+ fr: plural({
782
+ one: "{{count}} offre",
783
+ other: "{{count}} offres",
784
+ }),
785
+ }),
786
+ },
787
+ } satisfies Dictionary;
788
+
789
+ export default openingsContent;
790
+ ```
791
+
792
+ Daha sonra framework bileşeninizde sayıyı dinamik olarak geçirebilirsiniz:
793
+
794
+ ```tsx
795
+ import type { FC } from "react";
796
+ import { useIntlayer } from "react-intlayer";
797
+
798
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
799
+ const { totalOpenings } = useIntlayer("total_openings");
800
+
801
+ return (
802
+ <div>
803
+ {/* In English: */}
804
+ {/* count=0 → "0 openings" (other) */}
805
+ {/* count=1 → "1 opening" (one) */}
806
+ {/* count=2 → "2 openings" (other) */}
807
+ {/* count=21 → "21 openings" (other) */}
808
+ <p>{totalOpenings(count)}</p>
809
+ </div>
810
+ );
811
+ };
812
+ ```
813
+
814
+ Daha fazla bilgi için [Çoğullaştırma Dokümantasyonu](https://intlayer.org/tr/doc/concept/content/plural) sayfasına bakın.
815
+
816
+ ---
817
+
756
818
  ## İçerik Şeması Doğrulama
757
819
 
758
820
  Intlayer v8, sözlükler için şema doğrulamasını tanıtır. Artık yapılandırmanızda Zod kullanarak yeniden kullanılabilir doğrulama şemaları tanımlayabilir ve bunları içerik dosyalarınıza uygulayabilirsiniz. Bu, içeriğinizin her zaman beklenen yapıya uygun olmasını sağlar ve hataları build zamanında yakalar.
@@ -797,6 +859,34 @@ Eğer içerik şemayla eşleşmezse (ör. başlık çok kısaysa), build süreci
797
859
 
798
860
  ---
799
861
 
862
+ ## TypeScript: IntlayerNode İlkel Erişimcileri (Primitive Accessors)
863
+
864
+ `IntlayerNode` tipi, ilkel JavaScript metotlarının doğrudan içerik düğümleri üzerinde çağrılmasına izin verecek şekilde güncellendi. Bu, yerelleştirilmiş içeriğinizle doğrudan standart bir string, number, boolean veya array ilkel tipiymiş gibi etkileşime girmenizi mümkün kılar.
865
+
866
+ React, Preact, Solid, Svelte, Vue ve Angular genelinde desteklenir.
867
+
868
+ ### String Örneği
869
+
870
+ ```typescript
871
+ content.placeholder; // IntlayerNode<string> döner
872
+ content.placeholder.value; // string döner
873
+ content.placeholder.toString(); // string döner
874
+ content.placeholder.toLowerCase(); // string döner
875
+ String(content.placeholder); // string döner
876
+ content.placeholder.toUpperCase(); // Büyük harfe dönüştürülmüş string döner
877
+ content.placeholder.replace("a", "b"); // Değiştirilmiş string döner
878
+ ```
879
+
880
+ ### Array Örneği
881
+
882
+ ```typescript
883
+ content.myArrayOfString // IntlayerNode<Array<string>> döner
884
+ content.myArrayOfString.find(...) // Eleman döner
885
+ content.myArrayOfString.join(', ') // Birleştirilmiş string döner
886
+ ```
887
+
888
+ ---
889
+
800
890
  ### Geliştirilmiş Otomatik İçerik Algılama
801
891
 
802
892
  v8'de Intlayer, içerik dizelerinizde Markdown sözdizimini, HTML etiketlerini ve değişken yerleştirmelerini akıllıca algılar. Bu, genellikle `md()`, `html()` veya `insert()` gibi yardımcı fonksiyonları atlamanıza olanak tanır.
@@ -1002,6 +1092,17 @@ Intlayer VSCode uzantısı, uluslararasılaştırma iş akışınızı kolaylaş
1002
1092
 
1003
1093
  ---
1004
1094
 
1095
+ ## Araçlar: C++ Watcher ve OXC Tabanlı LSP (v8.12.0)
1096
+
1097
+ Intlayer v8.12.0, geliştirici deneyimine büyük iyileştirmeler getiriyor:
1098
+
1099
+ - **Parcel Watcher**: İçerik izleyici (content watcher), daha hızlı güncellemeler sağlamak ve bellek tüketimini önemli ölçüde azaltmak için yerel C++ dosya izlemeden yararlanan `@parcel/watcher` paketine `chokidar`'dan taşındı.
1100
+ - **Yeni Language Server Protocol (LSP)**: Yepyeni bir LSP artık kullanılabilir. OXC tabanlı ayrıştırma ile oluşturulan bu protokol, IDE'nizin ve yapay zeka ajanlarınızın `useIntlayer('my-key')` çağrılarını ilgili `.content` dosyalarıyla ve tersi şekilde sorunsuz bir şekilde ilişkilendirmesine yardımcı olur.
1101
+
1102
+ Daha fazla ayrıntı için [LSP Dokümantasyonu](https://intlayer.org/tr/doc/lsp) sayfasına bakın.
1103
+
1104
+ ---
1105
+
1005
1106
  ## Derleyici Optimizasyonları
1006
1107
 
1007
1108
  Intlayer v8, Markdown ve HTML derleyicisi için yeni bir önbellekleme katmanı içerir. Bu, aynı yapılandırmaya sahip özdeş içerik dizelerinin yalnızca bir kez ayrıştırılmasını sağlar; bu da yeniden render'lar sırasında veya aynı içeriğin birden çok yerde kullanılması durumunda genel yükü önemli ölçüde azaltır.
@@ -1057,6 +1158,48 @@ Intlayer v8, Markdown ve HTML derleyicisi için yeni bir önbellekleme katmanı
1057
1158
 
1058
1159
  ---
1059
1160
 
1161
+ ## Deneysel Build Optimizasyonları: Minify ve Purge (v8.7.0)
1162
+
1163
+ Intlayer v8.7.0, üretim (production) bundle'ınızı optimize etmek için tasarlanmış, `intlayer.config.ts` dosyanızda kullanabileceğiniz yeni deneysel build özellikleri sunar:
1164
+
1165
+ - **Sözlük Minifikasyonu (Minification)**: Boyutu azaltmak için sözlük dosyalarını küçültür (minify eder).
1166
+ - **Kullanılmayan Anahtarları Temizleme (Purging)**: Sözlüklerden kullanılmayan çeviri anahtarlarını tarar ve kaldırır, aktif anahtarları kısa karakterlere yeniden adlandırır (örneğin `"products" -> "a"`, `"pricing" -> "b"`). Bu, bundle boyutunu %5'e kadar azaltır.
1167
+ - **TypeScript Kontrollerini Devre Dışı Bırakma**: Derleme adımı sırasında TypeScript tip kontrolünü (typechecking) devre dışı bırakarak build işlemlerini hızlandırır.
1168
+
1169
+ ```typescript fileName="intlayer.config.ts"
1170
+ import { Locales, type IntlayerConfig } from "intlayer";
1171
+
1172
+ const config: IntlayerConfig = {
1173
+ internationalization: {
1174
+ locales: [Locales.ENGLISH, Locales.FRENCH],
1175
+ defaultLocale: Locales.ENGLISH,
1176
+ },
1177
+ dictionary: {
1178
+ importMode: "dynamic",
1179
+ },
1180
+ build: {
1181
+ /**
1182
+ * Minify the dictionaries to reduce the bundle size.
1183
+ */
1184
+ minify: true,
1185
+
1186
+ /**
1187
+ * Purge the unused keys in dictionaries
1188
+ */
1189
+ purge: true,
1190
+
1191
+ /**
1192
+ * Indicates if the build should check TypeScript types
1193
+ */
1194
+ checkTypes: false,
1195
+ },
1196
+ };
1197
+
1198
+ export default config;
1199
+ ```
1200
+
1201
+ ---
1202
+
1060
1203
  ## Esneklik: Birleştirilmiş İçe Aktarma Modu
1061
1204
 
1062
1205
  `live` boolean özelliği, daha kapsamlı olan `importMode` özelliği lehine kullanımdan kaldırıldı. Bu, sözlüklerin nasıl yükleneceğini açıkça tanımlamanıza olanak tanır: statik olarak, dinamik olarak veya canlı senkronizasyon ile.
@@ -1204,6 +1347,49 @@ Svelte'deki Markdown ve HTML içerikleri artık stringleştirildiklerinde otomat
1204
1347
 
1205
1348
  ---
1206
1349
 
1350
+ ## Angular Desteği: Vite Bundler (v8.11.0)
1351
+
1352
+ Angular kullanıcıları için Intlayer, artık yeni bir özel esbuild eklentisi aracılığıyla Vite bundler'ı yerel olarak destekleyerek geliştirme ve derleme (build) sürelerini hızlandırıyor.
1353
+
1354
+ Yapılandırma detayları için [Angular Ortam Dokümantasyonu](https://intlayer.org/tr/doc/environment/angular) sayfasına bakın.
1355
+
1356
+ ---
1357
+
1358
+ ## Site Haritası (Sitemap) Oluşturma (v8.6.0)
1359
+
1360
+ Intlayer artık dillerinize (locales) ve yönlendirme (routing) modunuza göre otomatik olarak site haritaları oluşturuyor. Bu, özellikle TanStack Router gibi yönlendirici mimarilerinde SEO optimizasyonu için son derece kullanışlıdır:
1361
+
1362
+ ```typescript fileName="src/routes/sitemap.xml.ts"
1363
+ import { createFileRoute } from "@tanstack/react-router";
1364
+ import { generateSitemap } from "intlayer";
1365
+
1366
+ const SITE_URL = (
1367
+ import.meta.env.VITE_SITE_URL ?? "http://localhost:3000"
1368
+ ).replace(/\/$/, "");
1369
+
1370
+ export const Route = createFileRoute("/sitemap.xml")({
1371
+ server: {
1372
+ handlers: {
1373
+ GET: async () => {
1374
+ const sitemap = generateSitemap(
1375
+ [
1376
+ { path: "/", changefreq: "daily", priority: 1.0 },
1377
+ { path: "/about", changefreq: "monthly", priority: 0.8 },
1378
+ ],
1379
+ { siteUrl: SITE_URL }
1380
+ );
1381
+
1382
+ return new Response(sitemap, {
1383
+ headers: { "Content-Type": "application/xml" },
1384
+ });
1385
+ },
1386
+ },
1387
+ },
1388
+ });
1389
+ ```
1390
+
1391
+ ---
1392
+
1207
1393
  ## v7'den geçiş notları
1208
1394
 
1209
1395
  ### Yapılandırma Değişiklikleri