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

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 (411) 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/releases/v8.md +187 -1
  24. package/docs/ar/releases/v9.md +232 -0
  25. package/docs/bn/cli/index.md +1 -1
  26. package/docs/bn/cli/scan.md +1 -1
  27. package/docs/bn/configuration.md +36 -3
  28. package/docs/cs/cli/index.md +1 -1
  29. package/docs/cs/cli/scan.md +1 -1
  30. package/docs/cs/configuration.md +35 -2
  31. package/docs/de/cli/doc-review.md +110 -4
  32. package/docs/de/cli/index.md +1 -1
  33. package/docs/de/cli/scan.md +1 -1
  34. package/docs/de/configuration.md +35 -2
  35. package/docs/de/dictionary/condition.md +167 -5
  36. package/docs/de/dictionary/enumeration.md +777 -7
  37. package/docs/de/dictionary/file.md +151 -1
  38. package/docs/de/dictionary/gender.md +168 -7
  39. package/docs/de/dictionary/nesting.md +173 -65
  40. package/docs/de/dictionary/plurial.md +347 -7
  41. package/docs/de/dictionary/translation.md +156 -2
  42. package/docs/de/dynamic_dictionaries/collections.md +1 -1
  43. package/docs/de/dynamic_dictionaries/dynamic_content.md +1 -1
  44. package/docs/de/dynamic_dictionaries/index.md +1 -1
  45. package/docs/de/dynamic_dictionaries/variants.md +1 -1
  46. package/docs/de/intlayer_with_vite+react.md +48 -48
  47. package/docs/de/migration_from_i18next_to_intlayer.md +1 -1
  48. package/docs/de/migration_from_next-i18next_to_intlayer.md +1 -1
  49. package/docs/de/migration_from_next-intl_to_intlayer.md +1 -1
  50. package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  51. package/docs/de/migration_from_react-i18next_to_intlayer.md +1 -1
  52. package/docs/de/migration_from_vue-i18n_to_intlayer.md +1 -1
  53. package/docs/de/releases/v8.md +197 -1
  54. package/docs/de/releases/v9.md +232 -0
  55. package/docs/en/CI_CD.md +7 -7
  56. package/docs/en/cli/ci.md +62 -8
  57. package/docs/en/cli/doc-review.md +110 -4
  58. package/docs/en/cli/index.md +1 -1
  59. package/docs/en/cli/scan.md +1 -1
  60. package/docs/en/compat/i18n-js.md +44 -0
  61. package/docs/en/compat/i18next.md +59 -0
  62. package/docs/en/compat/index.md +51 -0
  63. package/docs/en/compat/lingui.md +44 -0
  64. package/docs/en/compat/next-i18next.md +57 -0
  65. package/docs/en/compat/next-intl.md +59 -0
  66. package/docs/en/compat/next-translate.md +45 -0
  67. package/docs/en/compat/ngx-translate.md +45 -0
  68. package/docs/en/compat/nuxtjs-i18n.md +46 -0
  69. package/docs/en/compat/polyglot.md +45 -0
  70. package/docs/en/compat/react-i18next.md +58 -0
  71. package/docs/en/compat/react-intl.md +55 -0
  72. package/docs/en/compat/svelte-i18n.md +47 -0
  73. package/docs/en/compat/transloco.md +45 -0
  74. package/docs/en/compat/vue-i18n.md +58 -0
  75. package/docs/en/configuration.md +35 -2
  76. package/docs/en/dictionary/condition.md +163 -1
  77. package/docs/en/dictionary/enumeration.md +309 -7
  78. package/docs/en/dictionary/file.md +151 -1
  79. package/docs/en/dictionary/gender.md +162 -1
  80. package/docs/en/dictionary/nesting.md +173 -9
  81. package/docs/en/dictionary/plurial.md +155 -10
  82. package/docs/en/dictionary/translation.md +145 -52
  83. package/docs/en/dynamic_dictionaries/collections.md +1 -1
  84. package/docs/en/dynamic_dictionaries/dynamic_content.md +1 -1
  85. package/docs/en/dynamic_dictionaries/index.md +1 -1
  86. package/docs/en/dynamic_dictionaries/variants.md +1 -1
  87. package/docs/en/migration_from_i18next_to_intlayer.md +1 -1
  88. package/docs/en/migration_from_next-i18next_to_intlayer.md +1 -1
  89. package/docs/en/migration_from_next-intl_to_intlayer.md +1 -1
  90. package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  91. package/docs/en/migration_from_react-i18next_to_intlayer.md +1 -1
  92. package/docs/en/migration_from_vue-i18n_to_intlayer.md +1 -1
  93. package/docs/en/releases/v8.md +187 -1
  94. package/docs/en/releases/v9.md +220 -0
  95. package/docs/en-GB/cli/doc-review.md +110 -4
  96. package/docs/en-GB/cli/index.md +1 -1
  97. package/docs/en-GB/cli/scan.md +1 -1
  98. package/docs/en-GB/configuration.md +35 -2
  99. package/docs/en-GB/dictionary/condition.md +364 -1
  100. package/docs/en-GB/dictionary/enumeration.md +577 -5
  101. package/docs/en-GB/dictionary/file.md +317 -1
  102. package/docs/en-GB/dictionary/gender.md +375 -2
  103. package/docs/en-GB/dictionary/nesting.md +368 -71
  104. package/docs/en-GB/dictionary/plurial.md +347 -7
  105. package/docs/en-GB/dictionary/translation.md +320 -32
  106. package/docs/en-GB/dynamic_dictionaries/collections.md +1 -1
  107. package/docs/en-GB/dynamic_dictionaries/dynamic_content.md +1 -1
  108. package/docs/en-GB/dynamic_dictionaries/index.md +1 -1
  109. package/docs/en-GB/dynamic_dictionaries/variants.md +1 -1
  110. package/docs/en-GB/releases/v8.md +1 -1
  111. package/docs/en-GB/releases/v9.md +220 -0
  112. package/docs/es/cli/doc-review.md +110 -4
  113. package/docs/es/cli/index.md +1 -1
  114. package/docs/es/cli/scan.md +1 -1
  115. package/docs/es/configuration.md +36 -3
  116. package/docs/es/dictionary/condition.md +167 -5
  117. package/docs/es/dictionary/enumeration.md +537 -12
  118. package/docs/es/dictionary/file.md +151 -1
  119. package/docs/es/dictionary/gender.md +168 -7
  120. package/docs/es/dictionary/nesting.md +173 -65
  121. package/docs/es/dictionary/plurial.md +347 -7
  122. package/docs/es/dictionary/translation.md +156 -2
  123. package/docs/es/dynamic_dictionaries/collections.md +1 -1
  124. package/docs/es/dynamic_dictionaries/dynamic_content.md +1 -1
  125. package/docs/es/dynamic_dictionaries/index.md +1 -1
  126. package/docs/es/dynamic_dictionaries/variants.md +1 -1
  127. package/docs/es/migration_from_i18next_to_intlayer.md +1 -1
  128. package/docs/es/migration_from_next-i18next_to_intlayer.md +1 -1
  129. package/docs/es/migration_from_next-intl_to_intlayer.md +1 -1
  130. package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  131. package/docs/es/migration_from_react-i18next_to_intlayer.md +1 -1
  132. package/docs/es/migration_from_vue-i18n_to_intlayer.md +1 -1
  133. package/docs/es/releases/v8.md +187 -1
  134. package/docs/es/releases/v9.md +228 -0
  135. package/docs/fr/cli/doc-review.md +110 -4
  136. package/docs/fr/cli/index.md +1 -1
  137. package/docs/fr/cli/scan.md +1 -1
  138. package/docs/fr/configuration.md +49 -16
  139. package/docs/fr/dictionary/condition.md +369 -6
  140. package/docs/fr/dictionary/enumeration.md +540 -6
  141. package/docs/fr/dictionary/file.md +151 -1
  142. package/docs/fr/dictionary/gender.md +168 -7
  143. package/docs/fr/dictionary/nesting.md +357 -86
  144. package/docs/fr/dictionary/plurial.md +174 -5
  145. package/docs/fr/dictionary/translation.md +156 -2
  146. package/docs/fr/dynamic_dictionaries/collections.md +1 -1
  147. package/docs/fr/dynamic_dictionaries/dynamic_content.md +1 -1
  148. package/docs/fr/dynamic_dictionaries/index.md +1 -1
  149. package/docs/fr/dynamic_dictionaries/variants.md +1 -1
  150. package/docs/fr/migration_from_i18next_to_intlayer.md +1 -1
  151. package/docs/fr/migration_from_next-i18next_to_intlayer.md +1 -1
  152. package/docs/fr/migration_from_next-intl_to_intlayer.md +1 -1
  153. package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  154. package/docs/fr/migration_from_react-i18next_to_intlayer.md +1 -1
  155. package/docs/fr/migration_from_vue-i18n_to_intlayer.md +1 -1
  156. package/docs/fr/releases/v8.md +187 -1
  157. package/docs/fr/releases/v9.md +220 -0
  158. package/docs/hi/cli/doc-review.md +110 -4
  159. package/docs/hi/cli/index.md +1 -1
  160. package/docs/hi/cli/scan.md +1 -1
  161. package/docs/hi/configuration.md +49 -16
  162. package/docs/hi/dictionary/condition.md +167 -5
  163. package/docs/hi/dictionary/enumeration.md +540 -6
  164. package/docs/hi/dictionary/file.md +151 -1
  165. package/docs/hi/dictionary/gender.md +168 -7
  166. package/docs/hi/dictionary/nesting.md +173 -65
  167. package/docs/hi/dictionary/plurial.md +174 -5
  168. package/docs/hi/dictionary/translation.md +155 -5
  169. package/docs/hi/dynamic_dictionaries/collections.md +1 -1
  170. package/docs/hi/dynamic_dictionaries/dynamic_content.md +1 -1
  171. package/docs/hi/dynamic_dictionaries/index.md +1 -1
  172. package/docs/hi/dynamic_dictionaries/variants.md +1 -1
  173. package/docs/hi/releases/v8.md +188 -2
  174. package/docs/hi/releases/v9.md +232 -0
  175. package/docs/id/cli/doc-review.md +110 -4
  176. package/docs/id/cli/index.md +1 -1
  177. package/docs/id/cli/scan.md +1 -1
  178. package/docs/id/configuration.md +35 -2
  179. package/docs/id/dictionary/condition.md +167 -5
  180. package/docs/id/dictionary/enumeration.md +540 -6
  181. package/docs/id/dictionary/file.md +318 -2
  182. package/docs/id/dictionary/gender.md +381 -8
  183. package/docs/id/dictionary/nesting.md +357 -86
  184. package/docs/id/dictionary/plurial.md +174 -5
  185. package/docs/id/dictionary/translation.md +156 -2
  186. package/docs/id/dynamic_dictionaries/collections.md +1 -1
  187. package/docs/id/dynamic_dictionaries/dynamic_content.md +1 -1
  188. package/docs/id/dynamic_dictionaries/index.md +1 -1
  189. package/docs/id/dynamic_dictionaries/variants.md +1 -1
  190. package/docs/id/releases/v8.md +191 -2
  191. package/docs/id/releases/v9.md +232 -0
  192. package/docs/it/cli/doc-review.md +110 -4
  193. package/docs/it/cli/index.md +1 -1
  194. package/docs/it/cli/scan.md +1 -1
  195. package/docs/it/configuration.md +49 -16
  196. package/docs/it/dictionary/condition.md +167 -5
  197. package/docs/it/dictionary/enumeration.md +540 -6
  198. package/docs/it/dictionary/file.md +318 -2
  199. package/docs/it/dictionary/gender.md +168 -7
  200. package/docs/it/dictionary/nesting.md +173 -65
  201. package/docs/it/dictionary/plurial.md +347 -7
  202. package/docs/it/dictionary/translation.md +156 -2
  203. package/docs/it/dynamic_dictionaries/collections.md +1 -1
  204. package/docs/it/dynamic_dictionaries/dynamic_content.md +1 -1
  205. package/docs/it/dynamic_dictionaries/index.md +1 -1
  206. package/docs/it/dynamic_dictionaries/variants.md +1 -1
  207. package/docs/it/intlayer_with_vite+react.md +0 -48
  208. package/docs/it/migration_from_i18next_to_intlayer.md +1 -1
  209. package/docs/it/migration_from_next-i18next_to_intlayer.md +1 -1
  210. package/docs/it/migration_from_next-intl_to_intlayer.md +1 -1
  211. package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  212. package/docs/it/migration_from_react-i18next_to_intlayer.md +1 -1
  213. package/docs/it/migration_from_vue-i18n_to_intlayer.md +1 -1
  214. package/docs/it/releases/v8.md +200 -2
  215. package/docs/it/releases/v9.md +232 -0
  216. package/docs/ja/cli/doc-review.md +110 -4
  217. package/docs/ja/cli/index.md +1 -1
  218. package/docs/ja/cli/scan.md +1 -1
  219. package/docs/ja/configuration.md +50 -17
  220. package/docs/ja/dictionary/condition.md +167 -5
  221. package/docs/ja/dictionary/enumeration.md +540 -6
  222. package/docs/ja/dictionary/file.md +151 -1
  223. package/docs/ja/dictionary/gender.md +168 -7
  224. package/docs/ja/dictionary/nesting.md +173 -65
  225. package/docs/ja/dictionary/plurial.md +174 -5
  226. package/docs/ja/dictionary/translation.md +169 -8
  227. package/docs/ja/dynamic_dictionaries/collections.md +1 -1
  228. package/docs/ja/dynamic_dictionaries/dynamic_content.md +1 -1
  229. package/docs/ja/dynamic_dictionaries/index.md +1 -1
  230. package/docs/ja/dynamic_dictionaries/variants.md +1 -1
  231. package/docs/ja/intlayer_with_vite+react.md +290 -0
  232. package/docs/ja/migration_from_i18next_to_intlayer.md +1 -1
  233. package/docs/ja/migration_from_next-i18next_to_intlayer.md +1 -1
  234. package/docs/ja/migration_from_next-intl_to_intlayer.md +1 -1
  235. package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  236. package/docs/ja/migration_from_react-i18next_to_intlayer.md +1 -1
  237. package/docs/ja/migration_from_vue-i18n_to_intlayer.md +1 -1
  238. package/docs/ja/releases/v8.md +193 -4
  239. package/docs/ja/releases/v9.md +232 -0
  240. package/docs/ko/cli/doc-review.md +110 -4
  241. package/docs/ko/cli/index.md +1 -1
  242. package/docs/ko/cli/scan.md +1 -1
  243. package/docs/ko/configuration.md +49 -16
  244. package/docs/ko/dictionary/condition.md +167 -5
  245. package/docs/ko/dictionary/enumeration.md +540 -6
  246. package/docs/ko/dictionary/file.md +151 -1
  247. package/docs/ko/dictionary/gender.md +168 -7
  248. package/docs/ko/dictionary/nesting.md +173 -65
  249. package/docs/ko/dictionary/plurial.md +174 -5
  250. package/docs/ko/dictionary/translation.md +169 -8
  251. package/docs/ko/dynamic_dictionaries/collections.md +1 -1
  252. package/docs/ko/dynamic_dictionaries/dynamic_content.md +1 -1
  253. package/docs/ko/dynamic_dictionaries/index.md +1 -1
  254. package/docs/ko/dynamic_dictionaries/variants.md +1 -1
  255. package/docs/ko/intlayer_with_vite+react.md +48 -490
  256. package/docs/ko/migration_from_i18next_to_intlayer.md +1 -1
  257. package/docs/ko/migration_from_next-i18next_to_intlayer.md +1 -1
  258. package/docs/ko/migration_from_next-intl_to_intlayer.md +1 -1
  259. package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  260. package/docs/ko/migration_from_react-i18next_to_intlayer.md +1 -1
  261. package/docs/ko/migration_from_vue-i18n_to_intlayer.md +1 -1
  262. package/docs/ko/releases/v8.md +192 -1
  263. package/docs/ko/releases/v9.md +232 -0
  264. package/docs/nl/cli/index.md +1 -1
  265. package/docs/nl/cli/scan.md +1 -1
  266. package/docs/nl/configuration.md +36 -3
  267. package/docs/pl/cli/doc-review.md +110 -4
  268. package/docs/pl/cli/index.md +1 -1
  269. package/docs/pl/cli/scan.md +1 -1
  270. package/docs/pl/configuration.md +35 -2
  271. package/docs/pl/dictionary/condition.md +167 -5
  272. package/docs/pl/dictionary/enumeration.md +540 -6
  273. package/docs/pl/dictionary/file.md +318 -2
  274. package/docs/pl/dictionary/gender.md +168 -7
  275. package/docs/pl/dictionary/nesting.md +173 -65
  276. package/docs/pl/dictionary/plurial.md +174 -5
  277. package/docs/pl/dictionary/translation.md +156 -2
  278. package/docs/pl/dynamic_dictionaries/collections.md +1 -1
  279. package/docs/pl/dynamic_dictionaries/dynamic_content.md +1 -1
  280. package/docs/pl/dynamic_dictionaries/index.md +1 -1
  281. package/docs/pl/dynamic_dictionaries/variants.md +1 -1
  282. package/docs/pl/releases/v8.md +188 -2
  283. package/docs/pl/releases/v9.md +232 -0
  284. package/docs/pt/cli/doc-review.md +110 -4
  285. package/docs/pt/cli/index.md +1 -1
  286. package/docs/pt/cli/scan.md +1 -1
  287. package/docs/pt/configuration.md +49 -16
  288. package/docs/pt/dictionary/condition.md +167 -5
  289. package/docs/pt/dictionary/enumeration.md +540 -6
  290. package/docs/pt/dictionary/file.md +151 -1
  291. package/docs/pt/dictionary/gender.md +168 -7
  292. package/docs/pt/dictionary/nesting.md +173 -65
  293. package/docs/pt/dictionary/plurial.md +347 -7
  294. package/docs/pt/dictionary/translation.md +156 -2
  295. package/docs/pt/dynamic_dictionaries/collections.md +1 -1
  296. package/docs/pt/dynamic_dictionaries/dynamic_content.md +1 -1
  297. package/docs/pt/dynamic_dictionaries/index.md +1 -1
  298. package/docs/pt/dynamic_dictionaries/variants.md +1 -1
  299. package/docs/pt/migration_from_i18next_to_intlayer.md +1 -1
  300. package/docs/pt/migration_from_next-i18next_to_intlayer.md +1 -1
  301. package/docs/pt/migration_from_next-intl_to_intlayer.md +1 -1
  302. package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  303. package/docs/pt/migration_from_react-i18next_to_intlayer.md +1 -1
  304. package/docs/pt/migration_from_vue-i18n_to_intlayer.md +1 -1
  305. package/docs/pt/releases/v8.md +187 -1
  306. package/docs/pt/releases/v9.md +232 -0
  307. package/docs/ru/cli/doc-review.md +110 -4
  308. package/docs/ru/cli/index.md +1 -1
  309. package/docs/ru/cli/scan.md +1 -1
  310. package/docs/ru/configuration.md +35 -2
  311. package/docs/ru/dictionary/condition.md +366 -39
  312. package/docs/ru/dictionary/enumeration.md +777 -7
  313. package/docs/ru/dictionary/file.md +318 -2
  314. package/docs/ru/dictionary/gender.md +168 -7
  315. package/docs/ru/dictionary/nesting.md +368 -71
  316. package/docs/ru/dictionary/plurial.md +347 -7
  317. package/docs/ru/dictionary/translation.md +321 -33
  318. package/docs/ru/dynamic_dictionaries/collections.md +1 -1
  319. package/docs/ru/dynamic_dictionaries/dynamic_content.md +1 -1
  320. package/docs/ru/dynamic_dictionaries/index.md +1 -1
  321. package/docs/ru/dynamic_dictionaries/variants.md +1 -1
  322. package/docs/ru/intlayer_with_vite+react.md +48 -47
  323. package/docs/ru/migration_from_i18next_to_intlayer.md +1 -1
  324. package/docs/ru/migration_from_next-i18next_to_intlayer.md +1 -1
  325. package/docs/ru/migration_from_next-intl_to_intlayer.md +1 -1
  326. package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  327. package/docs/ru/migration_from_react-i18next_to_intlayer.md +1 -1
  328. package/docs/ru/migration_from_vue-i18n_to_intlayer.md +1 -1
  329. package/docs/ru/releases/v8.md +194 -2
  330. package/docs/ru/releases/v9.md +232 -0
  331. package/docs/tr/cli/doc-review.md +110 -4
  332. package/docs/tr/cli/index.md +1 -1
  333. package/docs/tr/cli/scan.md +1 -1
  334. package/docs/tr/configuration.md +35 -2
  335. package/docs/tr/dictionary/condition.md +167 -5
  336. package/docs/tr/dictionary/enumeration.md +540 -6
  337. package/docs/tr/dictionary/file.md +151 -1
  338. package/docs/tr/dictionary/gender.md +168 -7
  339. package/docs/tr/dictionary/nesting.md +173 -65
  340. package/docs/tr/dictionary/plurial.md +174 -5
  341. package/docs/tr/dictionary/translation.md +156 -2
  342. package/docs/tr/dynamic_dictionaries/collections.md +1 -1
  343. package/docs/tr/dynamic_dictionaries/dynamic_content.md +1 -1
  344. package/docs/tr/dynamic_dictionaries/index.md +1 -1
  345. package/docs/tr/dynamic_dictionaries/variants.md +1 -1
  346. package/docs/tr/migration_from_i18next_to_intlayer.md +1 -1
  347. package/docs/tr/migration_from_next-i18next_to_intlayer.md +1 -1
  348. package/docs/tr/migration_from_next-intl_to_intlayer.md +1 -1
  349. package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
  350. package/docs/tr/migration_from_react-i18next_to_intlayer.md +1 -1
  351. package/docs/tr/migration_from_vue-i18n_to_intlayer.md +1 -1
  352. package/docs/tr/releases/v8.md +187 -1
  353. package/docs/tr/releases/v9.md +232 -0
  354. package/docs/uk/cli/doc-review.md +110 -4
  355. package/docs/uk/cli/index.md +1 -1
  356. package/docs/uk/cli/scan.md +1 -1
  357. package/docs/uk/configuration.md +35 -2
  358. package/docs/uk/dictionary/condition.md +167 -5
  359. package/docs/uk/dictionary/enumeration.md +540 -6
  360. package/docs/uk/dictionary/file.md +318 -2
  361. package/docs/uk/dictionary/gender.md +381 -8
  362. package/docs/uk/dictionary/nesting.md +173 -65
  363. package/docs/uk/dictionary/plurial.md +174 -5
  364. package/docs/uk/dictionary/translation.md +156 -2
  365. package/docs/uk/dynamic_dictionaries/collections.md +1 -1
  366. package/docs/uk/dynamic_dictionaries/dynamic_content.md +1 -1
  367. package/docs/uk/dynamic_dictionaries/index.md +1 -1
  368. package/docs/uk/dynamic_dictionaries/variants.md +1 -1
  369. package/docs/uk/releases/v8.md +191 -3
  370. package/docs/uk/releases/v9.md +232 -0
  371. package/docs/ur/cli/index.md +1 -1
  372. package/docs/ur/cli/scan.md +1 -1
  373. package/docs/ur/configuration.md +36 -3
  374. package/docs/vi/cli/doc-review.md +110 -4
  375. package/docs/vi/cli/index.md +1 -1
  376. package/docs/vi/cli/scan.md +1 -1
  377. package/docs/vi/configuration.md +50 -17
  378. package/docs/vi/dictionary/condition.md +167 -5
  379. package/docs/vi/dictionary/enumeration.md +591 -14
  380. package/docs/vi/dictionary/file.md +318 -2
  381. package/docs/vi/dictionary/gender.md +168 -7
  382. package/docs/vi/dictionary/nesting.md +357 -86
  383. package/docs/vi/dictionary/plurial.md +174 -5
  384. package/docs/vi/dictionary/translation.md +156 -2
  385. package/docs/vi/dynamic_dictionaries/collections.md +1 -1
  386. package/docs/vi/dynamic_dictionaries/dynamic_content.md +1 -1
  387. package/docs/vi/dynamic_dictionaries/index.md +1 -1
  388. package/docs/vi/dynamic_dictionaries/variants.md +1 -1
  389. package/docs/vi/releases/v8.md +190 -1
  390. package/docs/vi/releases/v9.md +232 -0
  391. package/docs/zh/cli/doc-review.md +110 -4
  392. package/docs/zh/cli/index.md +1 -1
  393. package/docs/zh/cli/scan.md +1 -1
  394. package/docs/zh/configuration.md +49 -16
  395. package/docs/zh/dictionary/condition.md +167 -5
  396. package/docs/zh/dictionary/enumeration.md +540 -6
  397. package/docs/zh/dictionary/file.md +151 -1
  398. package/docs/zh/dictionary/gender.md +168 -7
  399. package/docs/zh/dictionary/nesting.md +173 -65
  400. package/docs/zh/dictionary/plurial.md +174 -5
  401. package/docs/zh/dictionary/translation.md +169 -8
  402. package/docs/zh/dynamic_dictionaries/collections.md +1 -1
  403. package/docs/zh/dynamic_dictionaries/dynamic_content.md +1 -1
  404. package/docs/zh/dynamic_dictionaries/index.md +1 -1
  405. package/docs/zh/dynamic_dictionaries/variants.md +1 -1
  406. package/docs/zh/intlayer_with_vite+react.md +48 -288
  407. package/docs/zh/releases/v8.md +1 -1
  408. package/docs/zh/releases/v9.md +220 -0
  409. package/package.json +7 -7
  410. package/src/generated/docs.entry.ts +320 -0
  411. package/dist/esm/_virtual/_rolldown/runtime.mjs +0 -8
@@ -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: "Новий Intlayer v8 - Що нового?"
5
5
  description: "Дізнайтеся, що нового в Intlayer v8. Значні покращення досвіду розробника, валідації контенту та управління словниками."
6
6
  keywords:
@@ -199,7 +199,7 @@ Intlayer v8 вносить значні покращення в обробку
199
199
 
200
200
  **3. Використання утиліти:**
201
201
 
202
- ```tsx
202
+ ```typescript
203
203
  import { renderMarkdown } from "solid-intlayer/markdown";
204
204
 
205
205
  return <div>{renderMarkdown("# Мій заголовок")}</div>;
@@ -409,6 +409,16 @@ Intlayer v8 вносить значні покращення в обробку
409
409
 
410
410
  ---
411
411
 
412
+ ## Файли контенту YAML та Markdown (v8.10.0)
413
+
414
+ Тепер ви можете оголошувати контент безпосередньо за допомогою розширень файлів `.content.md` та `.content.yaml`. Це ідеально підходить для лонгрідів, блогів, документації та політик конфіденційності.
415
+
416
+ Ці файли повністю доступні для редагування у Visual Editor, забезпечуючи спрощений робочий процес для нетехнічних членів команди.
417
+
418
+ Для отримання додаткової інформації див. [Документацію про файли контенту YAML](https://intlayer.org/doc/concept/content#yaml-content-file) та [Документацію про файли контенту Markdown](https://intlayer.org/doc/concept/content/markdown).
419
+
420
+ ---
421
+
412
422
  ## Користувацькі переписування URL
413
423
 
414
424
  Intlayer v8 додає підтримку **користувацьких переписувань URL**, що дозволяє визначати локалізовані шляхи, які відрізняються від стандартної структури `/locale/path`. Це потужна можливість для покращення локального SEO та забезпечення більш природного досвіду користувача для тих, хто не говорить англійською.
@@ -753,6 +763,60 @@ export default {
753
763
  </Tab>
754
764
  </Tabs>
755
765
 
766
+ ---
767
+
768
+ ## Правила множини Unicode CLDR (v8.8.0)
769
+
770
+ Було впроваджено новий хелпер вузла `plural` на основі правил множини, визначених проектом Unicode CLDR, що покращує підтримку складних мов.
771
+
772
+ ```typescript fileName="src/openings.content.ts"
773
+ import { plural, t, type Dictionary } from "intlayer";
774
+
775
+ const openingsContent = {
776
+ key: "total_openings",
777
+ content: {
778
+ totalOpenings: t({
779
+ en: plural({
780
+ one: "{{count}} opening",
781
+ other: "{{count}} openings",
782
+ }),
783
+ fr: plural({
784
+ one: "{{count}} offre",
785
+ other: "{{count}} offres",
786
+ }),
787
+ }),
788
+ },
789
+ } satisfies Dictionary;
790
+
791
+ export default openingsContent;
792
+ ```
793
+
794
+ Після цього ви можете динамічно передавати кількість у компонент вашого фреймворку:
795
+
796
+ ```tsx
797
+ import type { FC } from "react";
798
+ import { useIntlayer } from "react-intlayer";
799
+
800
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
801
+ const { totalOpenings } = useIntlayer("total_openings");
802
+
803
+ return (
804
+ <div>
805
+ {/* Англійською: */}
806
+ {/* count=0 → "0 openings" (other) */}
807
+ {/* count=1 → "1 opening" (one) */}
808
+ {/* count=2 → "2 openings" (other) */}
809
+ {/* count=21 → "21 openings" (other) */}
810
+ <p>{totalOpenings(count)}</p>
811
+ </div>
812
+ );
813
+ };
814
+ ```
815
+
816
+ Для отримання додаткової інформації див. [Документацію про плюралізацію](https://intlayer.org/doc/concept/content/plural).
817
+
818
+ ---
819
+
756
820
  ## Валідація схем контенту
757
821
 
758
822
  Intlayer v8 впроваджує валідацію схем для словників. Тепер ви можете визначати повторно використовувані схеми валідації у вашій конфігурації за допомогою Zod і застосовувати їх до ваших файлів контенту. Це гарантує, що ваш контент завжди відповідає очікуваній структурі, виявляючи помилки під час збірки.
@@ -797,6 +861,34 @@ export default aboutPageMetaContent;
797
861
 
798
862
  ---
799
863
 
864
+ ## TypeScript: Примітивні аксесори IntlayerNode
865
+
866
+ Тип `IntlayerNode` було оновлено, щоб дозволити виклик примітивних методів JavaScript безпосередньо на вузлах контенту. Це дає змогу взаємодіяти з вашим локалізованим контентом так, ніби це стандартний примітив рядка, числа, булевого значення або масиву.
867
+
868
+ Підтримується в React, Preact, Solid, Svelte, Vue та Angular.
869
+
870
+ ### Приклад з рядком (String)
871
+
872
+ ```typescript
873
+ content.placeholder; // Повертає IntlayerNode<string>
874
+ content.placeholder.value; // Повертає string
875
+ content.placeholder.toString(); // Повертає string
876
+ content.placeholder.toLowerCase(); // Повертає string
877
+ String(content.placeholder); // Повертає string
878
+ content.placeholder.toUpperCase(); // Повертає рядок у верхньому регістрі
879
+ content.placeholder.replace("a", "b"); // Повертає змінений рядок
880
+ ```
881
+
882
+ ### Приклад з масивом (Array)
883
+
884
+ ```typescript
885
+ content.myArrayOfString // Повертає IntlayerNode<Array<string>>
886
+ content.myArrayOfString.find(...) // Повертає елемент
887
+ content.myArrayOfString.join(', ') // Повертає об'єднаний рядок
888
+ ```
889
+
890
+ ---
891
+
800
892
  ### Покращене автоматичне виявлення контенту
801
893
 
802
894
  У v8 Intlayer інтелектуально виявляє синтаксис Markdown, HTML-теги та вставки змінних у рядках контенту. Це означає, що ви часто можете опустити допоміжні функції, такі як `md()`, `html()` або `insert()`.
@@ -1002,9 +1094,20 @@ export default {
1002
1094
 
1003
1095
  ---
1004
1096
 
1097
+ ## Інструменти: C++ Watcher та LSP на базі OXC (v8.12.0)
1098
+
1099
+ Intlayer v8.12.0 приносить значні покращення у досвід розробника:
1100
+
1101
+ - **Parcel Watcher**: Спостерігач за контентом (content watcher) було мігровано з `chokidar` на `@parcel/watcher`, що використовує нативне спостереження за файлами на C++ для забезпечення швидших оновлень та значно меншого споживання пам'яті.
1102
+ - **Новий Language Server Protocol (LSP)**: Тепер доступний абсолютно новий LSP. Створений на основі парсингу OXC, він допомагає вашій IDE та AI-агентам безперешкодно пов'язувати виклики `useIntlayer('my-key')` з відповідними файлами `.content` і навпаки.
1103
+
1104
+ Для отримання додаткової інформації див. [Документацію LSP](https://intlayer.org/doc/lsp).
1105
+
1106
+ ---
1107
+
1005
1108
  ## Оптимізації компілятора
1006
1109
 
1007
- Intlayer v8 включає новий шар кешування для компілятора Markdown та HTML. Це гарантує, що ідентичні рядки контенту з однаковою конфігурацією парсяться лише один раз, що значно зменшує витрати під час повторних відтворень або при використанні одного й того ж контенту в декількох місцях.
1110
+ Intlayer v8 включає новий шар кешування для компілятора Markdown та HTML. Це гарантує, що ідентичні рядки контенту з однаковою конфігурацією парсяться лише один раз, що значно зменшує витрати під час повторних відтворень або при використанні одного й того же контенту в декількох місцях.
1008
1111
 
1009
1112
  <Tabs group='bundler'>
1010
1113
  <Tab label="Next.js" value="nextjs">
@@ -1057,6 +1160,48 @@ Intlayer v8 включає новий шар кешування для комп
1057
1160
 
1058
1161
  ---
1059
1162
 
1163
+ ## Експериментальні оптимізації збірки: Minify & Purge (v8.7.0)
1164
+
1165
+ Intlayer v8.7.0 представляє нові експериментальні функції збірки у вашому `intlayer.config.ts`, розроблені для оптимізації вашого production-бандлу:
1166
+
1167
+ - **Мініфікація словників (Dictionary Minification)**: Мініфікує файли словників для зменшення їхнього розміру.
1168
+ - **Очищення невикористовуваних ключів (Unused Key Purging)**: Сканує та видаляє невикористовувані ключі перекладу зі словників, перейменовуючи активні ключі на короткі символи (наприклад, `"products" -> "a"`, `"pricing" -> "b"`). Це зменшує розмір бандлу до 5%.
1169
+ - **Вимкнення перевірок TypeScript**: Прискорює збірку шляхом вимкнення типізації TypeScript під час кроку компіляції.
1170
+
1171
+ ```typescript fileName="intlayer.config.ts"
1172
+ import { Locales, type IntlayerConfig } from "intlayer";
1173
+
1174
+ const config: IntlayerConfig = {
1175
+ internationalization: {
1176
+ locales: [Locales.ENGLISH, Locales.FRENCH],
1177
+ defaultLocale: Locales.ENGLISH,
1178
+ },
1179
+ dictionary: {
1180
+ importMode: "dynamic",
1181
+ },
1182
+ build: {
1183
+ /**
1184
+ * Мініфікувати словники для зменшення розміру бандлу.
1185
+ */
1186
+ minify: true,
1187
+
1188
+ /**
1189
+ * Очистити невикористовувані ключі у словниках
1190
+ */
1191
+ purge: true,
1192
+
1193
+ /**
1194
+ * Вказує, чи повинна збірка перевіряти типи TypeScript
1195
+ */
1196
+ checkTypes: false,
1197
+ },
1198
+ };
1199
+
1200
+ export default config;
1201
+ ```
1202
+
1203
+ ---
1204
+
1060
1205
  ## Гнучкість: Уніфікований режим імпорту
1061
1206
 
1062
1207
  Властивість булевого типу `live` була застаріла на користь більш всеосяжної властивості `importMode`. Це дозволяє явно визначати, як словники мають завантажуватися: статично, динамічно або через live-синхронізацію.
@@ -1204,6 +1349,49 @@ export default {
1204
1349
 
1205
1350
  ---
1206
1351
 
1352
+ ## Підтримка Angular: Vite Bundler (v8.11.0)
1353
+
1354
+ Для користувачів Angular Intlayer тепер нативно підтримує бандлер Vite через новий кастомний плагін esbuild, що прискорює час розробки та збірки.
1355
+
1356
+ Детальніше про конфігурацію див. у [Документації середовища Angular](https://intlayer.org/doc/environment/angular).
1357
+
1358
+ ---
1359
+
1360
+ ## Генерація карти сайту (Sitemap) (v8.6.0)
1361
+
1362
+ Intlayer тепер автоматично генерує карти сайтів (sitemaps) на основі ваших локалей та режиму маршрутизації. Це особливо корисно для SEO-оптимізації в архітектурах роутерів, таких як TanStack Router:
1363
+
1364
+ ```typescript fileName="src/routes/sitemap.xml.ts"
1365
+ import { createFileRoute } from "@tanstack/react-router";
1366
+ import { generateSitemap } from "intlayer";
1367
+
1368
+ const SITE_URL = (
1369
+ import.meta.env.VITE_SITE_URL ?? "http://localhost:3000"
1370
+ ).replace(/\/$/, "");
1371
+
1372
+ export const Route = createFileRoute("/sitemap.xml")({
1373
+ server: {
1374
+ handlers: {
1375
+ GET: async () => {
1376
+ const sitemap = generateSitemap(
1377
+ [
1378
+ { path: "/", changefreq: "daily", priority: 1.0 },
1379
+ { path: "/about", changefreq: "monthly", priority: 0.8 },
1380
+ ],
1381
+ { siteUrl: SITE_URL }
1382
+ );
1383
+
1384
+ return new Response(sitemap, {
1385
+ headers: { "Content-Type": "application/xml" },
1386
+ });
1387
+ },
1388
+ },
1389
+ },
1390
+ });
1391
+ ```
1392
+
1393
+ ---
1394
+
1207
1395
  ## Примітки до міграції з v7
1208
1396
 
1209
1397
  ### Зміни в конфігурації
@@ -0,0 +1,232 @@
1
+ ---
2
+ createdAt: 2026-06-14
3
+ updatedAt: 2026-06-14
4
+ title: Новий Intlayer v9 - Що нового?
5
+ description: Дізнайтеся, що нового в Intlayer v9. Представляємо сумісні пакети швидкої заміни (drop-in) для популярних бібліотек i18n та підтримку Collections, Variants та Dynamic Records.
6
+ keywords:
7
+ - Intlayer
8
+ - Сумісність
9
+ - Міграція
10
+ - Колекції
11
+ - Варіанти
12
+ - Динамічні записи
13
+ - i18next
14
+ - next-intl
15
+ - vue-i18n
16
+ slugs:
17
+ - doc
18
+ - releases
19
+ - v9
20
+ author: aymericzip
21
+ ---
22
+
23
+ # Новий Intlayer v9 - Що нового?
24
+
25
+ Ласкаво просимо до Intlayer v9! Цей мажорний реліз є величезною віхою у спрощенні шляху міграції на Intlayer завдяки **Compat Adapter Packages** (пакетам адаптерів сумісності) для основних бібліотек i18n (`react-i18next`, `next-intl`, `vue-i18n` тощо) та додає підтримку складних структур контенту: **Collections** (Колекцій), **Variants** (Варіантів) та **Dynamic Records** (Динамічних записів).
26
+
27
+ ## Зміст
28
+
29
+ <TOC levels={[2]} maxDepth={1} />
30
+
31
+ ---
32
+
33
+ ## Пакети адаптерів сумісності (Compat Adapter Packages)
34
+
35
+ Мігрувати на Intlayer з популярних бібліотек i18n тепер простіше, ніж будь-коли. Ми створили п'ять пакетів сумісності, які надають **точно такий самий публічний API**, як і стандартні бібліотеки i18n, але делегують усю роботу з перекладу Intlayer під час виконання (runtime).
36
+
37
+ ### Той самий публічний API зі строгою типізацією
38
+
39
+ Замінивши імпорти, ви отримуєте всі переваги Intlayer (включаючи типізацію на етапі компіляції відповідно до ваших реальних словників) з мінімальними змінами в коді:
40
+
41
+ - `@intlayer/i18next`
42
+ - `@intlayer/react-i18next`
43
+ - `@intlayer/next-intl`
44
+ - `@intlayer/next-i18next`
45
+ - `@intlayer/vue-i18n`
46
+
47
+ Наприклад, просто змініть:
48
+
49
+ ```ts
50
+ import { useTranslation } from "react-i18next";
51
+ ```
52
+
53
+ на:
54
+
55
+ ```ts
56
+ import { useTranslation } from "@intlayer/react-i18next";
57
+ ```
58
+
59
+ Тепер ваші ключі будуть **строго типізовані** відповідно до ваших словників Intlayer, забезпечуючи повне автодоповнення шляхів через крапку (dot-path) у вашій IDE!
60
+
61
+ ### Плагіни аліасів для бандлерів (Vite, Next.js, Turbopack)
62
+
63
+ Щоб дозволити міграцію без ручного переписування всіх інструкцій імпорту, кожен пакет адаптера сумісності містить **кастомний плагін для бандлера** (Vite або Next.js) у підшляху `/plugin`.
64
+
65
+ Ці плагіни автоматично перезаписують існуючі імпорти (наприклад, `react-i18next` або `next-intl`) на їхні еквіваленти `@intlayer/*` під час збірки.
66
+
67
+ #### Приклад для Next.js (Webpack / Turbopack)
68
+
69
+ Замість `withIntlayer` оберніть вашу конфігурацію Next.js плагіном сумісності:
70
+
71
+ ```ts fileName="next.config.ts"
72
+ import { createNextI18nPlugin } from "@intlayer/next-i18next/plugin";
73
+ import type { NextConfig } from "next";
74
+
75
+ const withIntlayer = createNextI18nPlugin();
76
+ const nextConfig: NextConfig = {};
77
+
78
+ export default withIntlayer(nextConfig);
79
+ ```
80
+
81
+ #### Приклад для Vite (React, Vue, Solid, Svelte)
82
+
83
+ ```ts fileName="vite.config.ts"
84
+ import vueI18nVitePlugin from "@intlayer/vue-i18n/plugin";
85
+
86
+ export default defineConfig({
87
+ plugins: [vueI18nVitePlugin()],
88
+ });
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Спільний резолвер часу виконання (Mutualized Runtime Resolver)
94
+
95
+ Усі адаптери сумісності тепер направляють резолв перекладів через єдиний, високооптимізований парсер часу виконання: `@intlayer/core/messageFormat`.
96
+
97
+ - **Interpolate Message**: Резолвить стандартні `{{var}}` (пробіли та dot-paths), аргументи у форматі ICU (`{v, number, percent}` тощо) та прості шаблони `{var}`.
98
+ - **Message Node Resolver**: Резолвить вкладені вузли: `insert()`, `plural()` (правила множини CLDR), `enu()` (перелічення), `gender()`, HTML-теги, масиви та вузли функцій зворотного виклику (callable function nodes).
99
+ - **Tokenized Tag Parser**: Підтримує інлайнові XML/HTML-теги та нумеровані теги (наприклад, `<1>children</1>`) для забезпечення рендерингу форматованого тексту (rich-text) "з коробки".
100
+
101
+ ---
102
+
103
+ ## Специфікація функцій: Collections, Variants та Dynamic Records
104
+
105
+ Intlayer v9 виходить за рамки статичних об'єктів типу ключ-значення, дозволяючи словникам оголошувати динамічні структури макетів, які повністю типізовані від початку до кінця (end-to-end).
106
+
107
+ ### 1. Колекції (Collections)
108
+
109
+ Визначайте керований CMS список упорядкованих елементів (наприклад, FAQ, товари або списки блогів):
110
+
111
+ ```ts fileName="faq.content.ts"
112
+ import { t, type Dictionary } from "intlayer";
113
+
114
+ export default {
115
+ key: "faq",
116
+ content: [
117
+ {
118
+ question: t({
119
+ uk: "Що таке Intlayer?",
120
+ en: "What is Intlayer?",
121
+ fr: "Qu'est-ce qu'Intlayer ?",
122
+ }),
123
+ answer: t({
124
+ uk: "Інструментарій i18n.",
125
+ en: "An i18n toolkit.",
126
+ fr: "Une boîte à outils i18n.",
127
+ }),
128
+ },
129
+ ],
130
+ } satisfies Dictionary;
131
+ ```
132
+
133
+ #### Використання:
134
+
135
+ ```ts
136
+ // Отримати всі елементи
137
+ const allFaqs = useIntlayer("faq"); // -> { question: string, answer: string }[]
138
+
139
+ // Отримати один елемент за індексом
140
+ const faq = useIntlayer("faq", { item: 1 }); // -> { question: string, answer: string }
141
+ ```
142
+
143
+ ### 2. Варіанти (Variants)
144
+
145
+ Надавайте A/B тести, сезонні заголовки, feature flags або кастомні цільові сторінки (landing pages):
146
+
147
+ ```ts fileName="hero.content.ts"
148
+ import { t, type Dictionary } from "intlayer";
149
+
150
+ export default {
151
+ key: "hero-banner",
152
+ variant: "default",
153
+ content: {
154
+ control: t({ uk: "Ласкаво просимо", en: "Welcome", fr: "Bienvenue" }),
155
+ black_friday: t({
156
+ uk: "Купити зараз",
157
+ en: "Shop now",
158
+ fr: "Acheter maintenant",
159
+ }),
160
+ },
161
+ } satisfies Dictionary;
162
+ ```
163
+
164
+ #### Використання:
165
+
166
+ ```ts
167
+ const banner = useIntlayer("hero-banner", { variant: "black_friday" });
168
+ ```
169
+
170
+ ### 3. Динамічні записи (Dynamic Records)
171
+
172
+ Визначайте словники, записи яких завантажуються динамічно під час виконання за допомогою ідентифікаторів запитів (query IDs):
173
+
174
+ ```ts fileName="product.content.ts"
175
+ import { t, type Dictionary } from "intlayer";
176
+
177
+ export default {
178
+ key: "product-copy",
179
+ meta: {
180
+ id: "prod_123",
181
+ category: "books",
182
+ },
183
+ content: {
184
+ title: t({ uk: "Чистий код", en: "Clean Code", fr: "Code Propre" }),
185
+ },
186
+ } satisfies Dictionary;
187
+ ```
188
+
189
+ #### Використання:
190
+
191
+ ```ts
192
+ // Динамічно завантажує лише запитуваний елемент (потребує Suspense)
193
+ const product = useIntlayer("product-copy", {
194
+ id: "prod_123",
195
+ category: "books",
196
+ });
197
+ ```
198
+
199
+ ---
200
+
201
+ ## Динамічне завантаження та оптимізація розміру бандла
202
+
203
+ Щоб зберегти розмір бандлів надзвичайно малим, Intlayer v9 підтримує динамічне ліниве завантаження (lazy loading).
204
+
205
+ У вашій конфігурації встановіть `importMode` у `'dynamic'` або `'fetch'`:
206
+
207
+ ```ts fileName="intlayer.config.ts"
208
+ export default {
209
+ dictionary: {
210
+ importMode: "dynamic", // "static" | "dynamic" | "fetch"
211
+ },
212
+ };
213
+ ```
214
+
215
+ Під час збірки `@intlayer/swc` та `@intlayer/babel` сканують ваші файли та замінюють виклики `useIntlayer` / `getIntlayer` на tree-shakeable обгортки (`useDictionary` / `useDictionaryDynamic`). Завантажується лише контент, необхідний для вибраного елемента колекції, варіанта або локалі, що запобігає потраплянню невикористовуваних перекладів у ваш продакшн-бандл.
216
+
217
+ ---
218
+
219
+ ## Примітки щодо міграції з v8
220
+
221
+ Якщо ви оновлюєтеся з v8, зверніть увагу, що v9 не містить критичних змін (breaking changes). Проте ось ключові зміни:
222
+
223
+ - **Locales & Dialects**: Якщо ви використовуєте зовнішні залежності i18n, додайте відповідні плагіни адаптерів сумісності у вашу конфігурацію або налаштування бандлера для автоматичного перезапису імпортів.
224
+ - **Custom Selectors**: При виклику `useIntlayer` другий параметр тепер зарезервований для об'єкта опцій, що містить `{ locale, item, variant, id }`. Якщо раніше ви передавали рядок локалі безпосередньо, ви все ще можете це робити, але для розширеного вибору рекомендується використовувати об'єкт опцій.
225
+
226
+ ---
227
+
228
+ ## Корисні посилання
229
+
230
+ - [Посібник з пакетів адаптерів сумісності (Compat Adapter Packages)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compat/index.md)
231
+ - [Динамічні словники - Collections, Variants та Dynamic Records](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dynamic_dictionaries/index.md)
232
+ - [Довідник з конфігурації](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/configuration.md)
@@ -17,7 +17,7 @@ slugs:
17
17
  - concept
18
18
  - cli
19
19
  history:
20
- - version: 8.13.0
20
+ - version: 9.0.0
21
21
  date: 2026-06-11
22
22
  changes: "اسکین (scan) کمانڈ شامل کی گئی"
23
23
  - version: 8.6.4
@@ -18,7 +18,7 @@ slugs:
18
18
  - cli
19
19
  - scan
20
20
  history:
21
- - version: 8.13.0
21
+ - version: 9.0.0
22
22
  date: 2026-06-11
23
23
  changes: "اسکین (scan) کمانڈ شامل کی گئی"
24
24
  author: aymericzip
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-05-12
3
+ updatedAt: 2026-06-17
4
4
  title: ترتیب (Configuration)
5
5
  description: سیکھیں کہ اپنی ایپلیکیشن کے لیے Intlayer کو کیسے ترتیب دینا ہے۔ اپنی ضروریات کے مطابق Intlayer کو اپنی مرضی کے مطابق بنانے کے لیے دستیاب مختلف ترتیبات اور اختیارات کو سمجھیں۔
6
6
  keywords:
@@ -16,6 +16,9 @@ slugs:
16
16
  - concept
17
17
  - configuration
18
18
  history:
19
+ - version: 8.10.0
20
+ date: 2026-06-17
21
+ changes: "ڈکشنری کی ترتیب میں `format` کا اختیار شامل کیا گیا"
19
22
  - version: 8.9.4
20
23
  date: 2026-05-12
21
24
  changes: "LM Studio فراہم کنندہ کے لیے سپورٹ شامل کریں"
@@ -137,6 +140,7 @@ Intlayer JSON، JS، MJS، اور TS کنفیگریشن فائل فارمیٹس
137
140
  ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
138
141
  import { Locales, type IntlayerConfig } from "intlayer";
139
142
  import { nextjsRewrite } from "intlayer/routing";
143
+ import { syncJSON } from "@intlayer/sync-json-plugin";
140
144
  import { z } from "zod";
141
145
 
142
146
  /**
@@ -585,9 +589,37 @@ const config: IntlayerConfig = {
585
589
  },
586
590
 
587
591
  /**
588
- * پلگ ان کنفیگریشن۔
592
+ * ڈکشنری کی ترتیب۔
589
593
  */
590
- plugins: [],
594
+ dictionary: {
595
+ /**
596
+ * کنٹرول کرتا ہے کہ ڈکشنریاں کیسے درآمد کی جاتی ہیں۔
597
+ * - "static": تعمیر کے وقت جامد طور پر درآمد کیا گیا۔
598
+ * - "dynamic": Suspense کا استعمال کرتے ہوئے متحرک طور پر درآمد کیا گیا۔
599
+ * - "fetch": لائیو سنک API کے ذریعے متحرک طور پر حاصل کیا گیا۔
600
+ */
601
+ importMode: "static",
602
+
603
+ /**
604
+ * پروجیکٹ میں تمام ڈکشنریوں کے لیے ڈیفالٹ پیغام کا فارمیٹ۔
605
+ * - 'intlayer': مقامی intlayer فارمیٹ (ڈیفالٹ)۔
606
+ * - 'icu': ICU پیغام کا فارمیٹ۔
607
+ * - 'i18next': i18next فارمیٹ۔
608
+ * - 'vue-i18n': Vue I18n فارمیٹ۔
609
+ * - 'po': GNU Gettext PO فارمیٹ۔
610
+ */
611
+ format: "icu",
612
+ },
613
+
614
+ /**
615
+ * پلگ ان کی ترتیب۔
616
+ */
617
+ plugins: [
618
+ syncJSON({
619
+ format: "icu",
620
+ source: ({ locale }) => `./messages/${locale}.json`,
621
+ }),
622
+ ],
591
623
  };
592
624
 
593
625
  export default config;
@@ -864,6 +896,7 @@ export default config;
864
896
  | `contentAutoTransformation` | کیا اسٹرنگ مواد کو خودکار طور پر ٹائپ شدہ نوڈز (Markdown، HTML، یا داخل کرنے والا) میں تبدیل کرنا ہے۔ | `boolean` &#124; <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')` .<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')` .<br/>• Insertion : `Hello {{name}}` → `insert('Hello {{name}}')` . |
865
897
  | `location` | لغت کی فائلوں کے اسٹوریج کے محل وقوع اور CMS کے ساتھ ان کی ہم آہنگی کا طریقہ بتاتا ہے۔ | `'local'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: صرف مقامی انتظام۔<br/>• `'remote'`: صرف دور دراز کا انتظام (CMS)۔<br/>• `'hybrid'`: مقامی اور دور دراز دونوں کا انتظام۔<br/>• `'plugin'` یا کسٹم اسٹرنگ: پلگ ان یا کسٹم ذریعے سے انتظام۔ |
866
898
  | `importMode` | کنٹرول کرتا ہے کہ لغات کیسے امپورٹ کی جاتی ہیں۔ | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: ساکن امپورٹ۔<br/>• `'dynamic'`: Suspense کے ذریعے متحرک امپورٹ۔<br/>• `'fetch'`: LIVE سنک API کے ذریعے حاصل کرنا؛ ناکامی پر `'dynamic'` پر واپس آتا ہے۔<br/>• `@intlayer/babel` اور `@intlayer/swc` پلگ انز کی ضرورت ہے۔<br/>• کلیدیں ساکن طور پر اعلان ہونی چاہئیں۔<br/>• اگر `optimize` غیر فعال ہو تو نظر انداز کر دیا جاتا ہے۔<br/>• `getIntlayer` ، `getDictionary` وغیرہ پر کوئی اثر نہیں۔ |
899
+ | `format` | پروجیکٹ میں تمام ڈکشنریوں کے لیے ڈیفالٹ پیغام کا فارمیٹ۔ | `'intlayer'` &#124; <br/> `'icu'` &#124; <br/> `'i18next'` &#124; <br/> `'vue-i18n'` &#124; <br/> `'po'` | `'intlayer'` | `'icu'` | • `'intlayer'`: مقامی intlayer فارمیٹ۔<br/>• `'icu'`: ICU پیغام کا فارمیٹ۔<br/>• `'i18next'`: i18next فارمیٹ۔<br/>• `'vue-i18n'`: Vue I18n فارمیٹ۔<br/>• `'po'`: GNU Gettext PO فارمیٹ۔ |
867
900
  | `priority` | لغت کی ترجیح۔ لغات کے درمیان تصادم کو حل کرتے وقت، زیادہ قیمت والی لغت کم قیمت والی پر غالب آئے گی۔ | `number` | `undefined` | `1` | |
868
901
  | `live` | DEPRECATED - `importMode: 'fetch'` استعمال کریں۔ پہلے بتاتا تھا کہ آیا API Live Sync کے ذریعے لغت کا مواد متحرک طور پر حاصل کرنا ہے۔ | `boolean` | `undefined` | | v8.0.0 میں نام تبدیل کر کے `importMode: 'fetch'` کر دیا گیا۔ |
869
902
  | `schema` | JSON اسکیمہ کی توثیق کے لیے Intlayer کے ذریعے خودکار طور پر تیار کیا گیا۔ | `'https://intlayer.org/schema.json'` | خودکار طور پر تیار | | دستی طور پر ترمیم نہ کریں۔ |