@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
@@ -0,0 +1,232 @@
1
+ ---
2
+ createdAt: 2026-06-14
3
+ updatedAt: 2026-06-14
4
+ title: Yeni Intlayer v9 - Yenilikler Neler?
5
+ description: Intlayer v9'daki yenilikleri keşfedin. Popüler i18n kütüphaneleri için doğrudan uyumlu paketler ve Koleksiyonlar, Varyantlar ve Dinamik Kayıtlar desteği sunuluyor.
6
+ keywords:
7
+ - Intlayer
8
+ - Compatibility
9
+ - Migration
10
+ - Collections
11
+ - Variants
12
+ - Dynamic Records
13
+ - i18next
14
+ - next-intl
15
+ - vue-i18n
16
+ slugs:
17
+ - doc
18
+ - releases
19
+ - v9
20
+ author: aymericzip
21
+ ---
22
+
23
+ # Yeni Intlayer v9 - Yenilikler Neler?
24
+
25
+ Intlayer v9'a hoş geldiniz! Bu ana sürüm, büyük i18n kütüphaneleri (`react-i18next`, `next-intl`, `vue-i18n` vb.) için sunulan **Compat Adapter Paketleri** ile Intlayer'a geçiş sürecini basitleştirmede dev bir adımı temsil ediyor ve zengin içerik yapıları için destek ekliyor: **Koleksiyonlar (Collections)**, **Varyantlar (Variants)** ve **Dinamik Kayıtlar (Dynamic Records)**.
26
+
27
+ ## İçindekiler
28
+
29
+ <TOC levels={[2]} maxDepth={1} />
30
+
31
+ ---
32
+
33
+ ## Compat Adapter Paketleri
34
+
35
+ Popüler i18n kütüphanelerinden Intlayer'a geçiş yapmak artık her zamankinden daha kolay. Standart i18n kütüphaneleriyle **birebir aynı genel API'leri (public APIs)** sunan ancak çalışma zamanında (runtime) tüm çeviri işlerini Intlayer'a devreden beş adet uyumluluk (compat) paketi oluşturduk.
36
+
37
+ ### Sıkı Tiplendirme ile Aynı Genel API'yi Sunma
38
+
39
+ İçe aktarmaları (imports) değiştirerek, minimum kod değişikliğiyle Intlayer'ın tüm avantajlarından (gerçek sözlüklerinize karşı derleme zamanı tip güvenliği dahil) yararlanabilirsiniz:
40
+
41
+ - `@intlayer/i18next`
42
+ - `@intlayer/react-i18next`
43
+ - `@intlayer/next-intl`
44
+ - `@intlayer/next-i18next`
45
+ - `@intlayer/vue-i18n`
46
+
47
+ Örneğin, sadece şunu değiştirin:
48
+
49
+ ```ts
50
+ import { useTranslation } from "react-i18next";
51
+ ```
52
+
53
+ şuna:
54
+
55
+ ```ts
56
+ import { useTranslation } from "@intlayer/react-i18next";
57
+ ```
58
+
59
+ Anahtarlarınız artık Intlayer sözlüklerinize karşı **sıkı bir şekilde tiplendirilecek (strictly typed)** ve IDE'nizde tam nokta yolu (dot-path) otomatik tamamlama desteği sunacak!
60
+
61
+ ### Bundler Alias Eklentileri (Vite, Next.js, Turbopack)
62
+
63
+ Tüm içe aktarma ifadelerinizi manuel olarak yeniden yazmadan geçiş yapabilmenizi sağlamak için, her compat adapter paketi `/plugin` alt yolu altında **özel bir bundler eklentisi** (Vite veya Next.js) içerir.
64
+
65
+ Bu eklentiler, derleme zamanında (build time) mevcut içe aktarmaları (örneğin `react-i18next` veya `next-intl`) otomatik olarak `@intlayer/*` eşdeğerlerine dönüştürür.
66
+
67
+ #### Next.js (Webpack / Turbopack) Örneği
68
+
69
+ `withIntlayer` yerine, Next.js yapılandırmanızı compat eklentisi ile sarmalayın:
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) Örneği
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
+ ## Ortaklaştırılmış Çalışma Zamanı Çözümleyicisi (Mutualized Runtime Resolver)
94
+
95
+ Tüm compat adapter'lar artık çeviri çözümlemesini tek ve son derece optimize edilmiş bir çalışma zamanı ayrıştırıcısı (runtime parser) üzerinden yönlendiriyor: `@intlayer/core/messageFormat`.
96
+
97
+ - **Mesaj Değişkeni Ekleme (Interpolate Message)**: Standart `{{var}}` (boşluklar ve nokta yolları), ICU biçimlendirilmiş argümanlar (`{v, number, percent}` vb.) ve yalın `{var}` şablonlarını çözümler.
98
+ - **Mesaj Düğümü Çözümleyici (Message Node Resolver)**: İç içe geçmiş düğümleri çözümler: `insert()`, `plural()` (CLDR çoğul kuralları), `enu()` (numaralandırma), `gender()`, HTML etiketleri, diziler ve çağrılabilir fonksiyon düğümleri.
99
+ - **Tokenized Tag Parser**: Zengin metin (rich-text) oluşturmayı kutudan çıktığı gibi desteklemek için satır içi XML/HTML etiketlerini ve numaralandırılmış etiketleri (örneğin, `<1>children</1>`) destekler.
100
+
101
+ ---
102
+
103
+ ## Özellik Detayları: Koleksiyonlar, Varyantlar ve Dinamik Kayıtlar
104
+
105
+ Intlayer v9, statik anahtar-değer nesnelerinin ötesine geçerek sözlüklerin uçtan uca tam tiplendirilmiş dinamik düzen yapıları tanımlamasına olanak tanır.
106
+
107
+ ### 1. Koleksiyonlar (Collections)
108
+
109
+ CMS tarafından yönetilen sıralı öğelerin bir listesini tanımlayın (örneğin SSS'ler, ürünler veya blog listeleri):
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
+ tr: "Intlayer nedir?",
120
+ en: "What is Intlayer?",
121
+ fr: "Qu'est-ce qu'Intlayer ?",
122
+ }),
123
+ answer: t({
124
+ tr: "Bir i18n araç kiti.",
125
+ en: "An i18n toolkit.",
126
+ fr: "Une boîte à outils i18n.",
127
+ }),
128
+ },
129
+ ],
130
+ } satisfies Dictionary;
131
+ ```
132
+
133
+ #### Kullanım:
134
+
135
+ ```ts
136
+ // Tüm öğeleri getir
137
+ const allFaqs = useIntlayer("faq"); // -> { question: string, answer: string }[]
138
+
139
+ // Dizine göre tek bir öğe getir
140
+ const faq = useIntlayer("faq", { item: 1 }); // -> { question: string, answer: string }
141
+ ```
142
+
143
+ ### 2. Varyantlar (Variants)
144
+
145
+ A/B testleri, mevsimsel başlıklar, özellik bayrakları (feature flags) veya özel açılış sayfaları sunun:
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({ tr: "Hoş geldiniz", en: "Welcome", fr: "Bienvenue" }),
155
+ black_friday: t({
156
+ tr: "Şimdi alışveriş yap",
157
+ en: "Shop now",
158
+ fr: "Acheter maintenant",
159
+ }),
160
+ },
161
+ } satisfies Dictionary;
162
+ ```
163
+
164
+ #### Kullanım:
165
+
166
+ ```ts
167
+ const banner = useIntlayer("hero-banner", { variant: "black_friday" });
168
+ ```
169
+
170
+ ### 3. Dinamik Kayıtlar (Dynamic Records)
171
+
172
+ Girdileri çalışma zamanında sorgu kimlikleri (query IDs) aracılığıyla dinamik olarak yüklenen sözlükler tanımlayın:
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({ tr: "Temiz Kod", en: "Clean Code", fr: "Code Propre" }),
185
+ },
186
+ } satisfies Dictionary;
187
+ ```
188
+
189
+ #### Kullanım:
190
+
191
+ ```ts
192
+ // Yalnızca talep edilen öğeyi dinamik olarak getirir (Suspense gerektirir)
193
+ const product = useIntlayer("product-copy", {
194
+ id: "prod_123",
195
+ category: "books",
196
+ });
197
+ ```
198
+
199
+ ---
200
+
201
+ ## Dinamik Yükleme ve Bundle Boyutu Optimizasyonları
202
+
203
+ Bundle boyutlarını son derece küçük tutmak için Intlayer v9 dinamik tembel yüklemeyi (dynamic lazy loading) destekler.
204
+
205
+ Yapılandırmanızda `importMode` değerini `'dynamic'` veya `'fetch'` olarak ayarlayın:
206
+
207
+ ```ts fileName="intlayer.config.ts"
208
+ export default {
209
+ dictionary: {
210
+ importMode: "dynamic", // "static" | "dynamic" | "fetch"
211
+ },
212
+ };
213
+ ```
214
+
215
+ Derleme zamanında, `@intlayer/swc` ve `@intlayer/babel` dosyalarınızı tarar ve `useIntlayer` / `getIntlayer` çağrılarını tree-shakeable sarmalayıcılarla (`useDictionary` / `useDictionaryDynamic`) değiştirir. Yalnızca seçilen koleksiyon öğesi, varyant veya dil (locale) için gerekli olan içerik yüklenir, böylece üretim (production) bundle'ınızın kullanılmayan çevirileri içermesi engellenir.
216
+
217
+ ---
218
+
219
+ ## v8'den Geçiş Notları
220
+
221
+ v8'den yükseltme yapıyorsanız, v9'un yıkıcı değişiklikler (breaking changes) içermediğini unutmayın. Ancak işte temel değişiklikler:
222
+
223
+ - **Diller ve Lehçeler (Locales & Dialects)**: Harici i18n bağımlılıkları kullanıyorsanız, içe aktarmaları otomatik olarak yeniden yazmak için yapılandırmanıza veya bundler kurulumunuza ilgili compat adapter eklentilerini ekleyin.
224
+ - **Özel Seçiciler (Custom Selectors)**: `useIntlayer` çağrılırken, ikinci parametre artık `{ locale, item, variant, id }` içeren bir seçenek nesnesine ayrılmıştır. Daha önce doğrudan bir dil (locale) dizesi geçirdiyseniz bunu yapmaya devam edebilirsiniz, ancak gelişmiş seçimler için seçenekler nesnesini kullanmanız önerilir.
225
+
226
+ ---
227
+
228
+ ## Faydalı bağlantılar
229
+
230
+ - [Compat Adapter Paketleri Kılavuzu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/index.md)
231
+ - [Dinamik Sözlükler - Koleksiyonlar, Varyantlar ve Dinamik Kayıtlar](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/dynamic_dictionaries/index.md)
232
+ - [Yapılandırma Referansı](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-11
3
- updatedAt: 2025-11-22
3
+ updatedAt: 2026-06-17
4
4
  title: Перевірка документа
5
5
  description: Дізнайтеся, як перевіряти файли документації на предмет якості, узгодженості та повноти для різних локалей.
6
6
  keywords:
@@ -15,6 +15,10 @@ slugs:
15
15
  - concept
16
16
  - cli
17
17
  - doc-review
18
+ history:
19
+ - version: 9.0.0
20
+ date: 2026-06-17
21
+ changes: "Додати опцію --log"
18
22
  author: aymericzip
19
23
  ---
20
24
 
@@ -55,8 +59,110 @@ bun x intlayer doc review
55
59
 
56
60
  ## Аргументи:
57
61
 
58
- Команда `doc review` приймає ті самі аргументи, що й `doc translate`, що дозволяє переглядати конкретні документаційні файли та застосовувати перевірки якості.
62
+ **Параметри списку файлів:**
59
63
 
60
- Якщо ви активували одну з опцій git, команда перегляне лише ту частину файлів, яка була змінена. Скрипт обробляє файл, розбиваючи його на chunks, і перевіряє кожен chunk. Якщо в chunk немає змін, скрипт пропустить його, щоб пришвидшити процес рев'ю та зменшити витрати на API постачальника AI.
64
+ - **`--doc-pattern [docPattern...]`**: Глобальні шаблони (glob) для співпадіння файлів документації, які потрібно перевірити.
61
65
 
62
- Для повного переліку аргументів див. документацію команди [Translate Document](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/doc-translate.md).
66
+ > Приклад: `npx intlayer doc review --doc-pattern "docs/**/*.md" "src/**/*.mdx"`
67
+
68
+ - **`--excluded-glob-pattern [excludedGlobPattern...]`**: Glob-шаблони, які слід виключити з перевірки.
69
+
70
+ > Приклад: `npx intlayer doc review --excluded-glob-pattern "docs/internal/**"`
71
+
72
+ - **`--skip-if-modified-before [skipIfModifiedBefore]`**: Пропустити файл, якщо он був змінений до вказаного часу.
73
+ - Може бути абсолютним часом у форматі "2025-12-05" (рядок або Date)
74
+ - Може бути відносним часом у мс `1 * 60 * 60 * 1000` (1 година)
75
+ - Ця опція перевіряє час оновлення файлу за допомогою методу `fs.stat`. Тому на неї можуть вплинути Git або інші інструменти, що змінюють файл.
76
+
77
+ > Приклад: `npx intlayer doc review --skip-if-modified-before "2025-12-05"`
78
+
79
+ - **`--skip-if-modified-after [skipIfModifiedAfter]`**: Пропустити файл, якщо він був змінений протягом вказаного проміжку часу.
80
+ - Може бути абсолютним часом, наприклад "2025-12-05" (рядок або Date)
81
+ - Може бути відносним часом у мс `1 * 60 * 60 * 1000` (1 година)
82
+ - Ця опція перевіряє час оновлення файлу за допомогою методу `fs.stat`. Тому вона може залежати від Git або інших інструментів, які змінюють файл.
83
+
84
+ > Приклад: `npx intlayer doc review --skip-if-modified-after "2025-12-05"`
85
+
86
+ - **`--skip-if-exists`**: Пропустити файл, якщо він уже існує.
87
+
88
+ > Приклад: `npx intlayer doc review --skip-if-exists`
89
+
90
+ **Параметри режиму перевірки:**
91
+
92
+ - **`--log`**: Режим тільки логування. Не перекладати з допомогою AI; замість цього логувати блоки, які потребують уваги (з номерами рядків і вмістом) для базової та цільової локалей, щоб допомогти іншому агенту згенерувати переклади.
93
+
94
+ > Приклад: `npx intlayer doc review --log`
95
+
96
+ **Параметри виводу записів:**
97
+
98
+ - **`--locales [locales...]`**: Цільові локалі для перевірки документації.
99
+
100
+ > Приклад: `npx intlayer doc review --locales fr es de`
101
+
102
+ - **`--base-locale [baseLocale]`**: Базова локаль (базовий документ), з якою порівнювати.
103
+
104
+ > Приклад: `npx intlayer doc review --base-locale en`
105
+
106
+ **Параметри обробки файлів:**
107
+
108
+ - **`--nb-simultaneous-file-processed [nbSimultaneousFileProcessed]`**: Кількість файлів для одночасної обробки під час перевірки.
109
+
110
+ > Приклад: `npx intlayer doc review --nb-simultaneous-file-processed 5`
111
+
112
+ **Параметри AI:**
113
+
114
+ - **`--model [model]`**: Модель AI, яку слід використовувати для перевірки (наприклад, `gpt-3.5-turbo`).
115
+ - **`--provider [provider]`**: Провайдер AI, який слід використовувати для перевірки.
116
+ - **`--temperature [temperature]`**: Налаштування temperature для моделі AI.
117
+ - **`--api-key [apiKey]`**: Надати власний API-ключ для сервісу AI.
118
+ - **`--application-context [applicationContext]`**: Надати додатковий контекст для перевірки AI.
119
+ - **`--data-serialization [dataSerialization]`**: Формат серіалізації даних для використання у функціях ШІ Intlayer. Опції: `json` (стандартний, надійний), `toon` (менше токенів, менш стабільний).
120
+ - **`--custom-prompt [prompt]`**: Налаштувати базовий prompt, який використовується для перевірки. (Примітка: у більшості випадків натомість рекомендується використовувати опцію `--custom-instructions`, оскільки вона забезпечує кращий контроль.)
121
+
122
+ > Приклад: `npx intlayer doc review --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "My application is a cat store"`
123
+
124
+ **Параметри змінних оточення:**
125
+
126
+ - **`--env`**: Вказати середовище (наприклад, `development`, `production`).
127
+ - **`--env-file [envFile]`**: Надати користувацький файл оточення для завантаження змінних.
128
+ - **`--base-dir`**: Вказати базову директорію проєкту.
129
+ - **`--no-cache`**: Вимкнути кеш.
130
+
131
+ > Приклад: `npx intlayer doc review --base-dir ./docs --env-file .env.production.local`
132
+
133
+ **Параметри логування:**
134
+
135
+ - **`--verbose`**: Увімкнути детальне логування для налагодження. (за замовчуванням true при використанні CLI)
136
+
137
+ > Приклад: `npx intlayer doc review --verbose`
138
+
139
+ **Параметри користувацьких інструкцій:**
140
+
141
+ - **`--custom-instructions [customInstructions]`**: Користувацькі інструкції, додані до prompt. Корисно для застосування специфічних правил щодо форматування, перекладу URL тощо.
142
+
143
+ > Приклад: `npx intlayer doc review --custom-instructions "Avoid translating urls, and keep the markdown format"`
144
+
145
+ > Приклад: `npx intlayer doc review --custom-instructions "$(cat ./instructions.md)"`
146
+
147
+ **Опції Git:**
148
+
149
+ - **`--git-diff`**: Запускати лише для файлів, які містять зміни від бази (за замовчуванням `origin/main`) до поточної гілки (за замовчуванням: `HEAD`).
150
+ - **`--git-diff-base`**: Вказати базову ревізію для git diff (за замовчуванням `origin/main`).
151
+ - **`--git-diff-current`**: Вказати поточну ревізію для git diff (за замовчуванням `HEAD`).
152
+ - **`--uncommitted`**: Включати незакомічені зміни.
153
+ - **`--unpushed`**: Включати незапушені зміни.
154
+ - **`--untracked`**: Включати не відстежувані файли.
155
+
156
+ > Приклад: `npx intlayer doc review --git-diff --git-diff-base origin/main --git-diff-current HEAD`
157
+
158
+ > Приклад: `npx intlayer doc review --uncommitted --unpushed --untracked`
159
+
160
+ > Зверніть увагу, що шлях вихідного файлу визначається заміною наступних шаблонів:
161
+ >
162
+ > - `/{{baseLocale}}/` на `/{{locale}}/` (Unix)
163
+ > - `\{{baseLocale}}\` на `\{{locale}}\` (Windows)
164
+ > - `_{{baseLocale}}.` на `_{{locale}}.`
165
+ > - `{{baseLocale}}_` на `{{locale}}_`
166
+ > - `.{{baseLocaleName}}.` на `.{{localeName}}.`
167
+ >
168
+ > Якщо шаблон не знайдено, до розширення файлу буде додано `.{{locale}}`. `./my/file.md` буде перевірено та оновлено на `./my/file.fr.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: Конфігурація
5
5
  description: Дізнайтеся, як налаштувати Intlayer для вашого додатка. Зрозумійте різні налаштування та параметри, доступні для адаптації Intlayer під ваші потреби.
6
6
  keywords:
@@ -14,6 +14,9 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 8.10.0
18
+ date: 2026-06-17
19
+ changes: "Додано опцію `format` до конфігурації словника"
17
20
  - version: 8.9.4
18
21
  date: 2026-05-12
19
22
  changes: "Додано підтримку провайдера LM Studio"
@@ -135,6 +138,7 @@ Intlayer приймає формати конфігураційних файлі
135
138
  ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
136
139
  import { Locales, type IntlayerConfig } from "intlayer";
137
140
  import { nextjsRewrite } from "intlayer/routing";
141
+ import { syncJSON } from "@intlayer/sync-json-plugin";
138
142
  import { z } from "zod";
139
143
 
140
144
  /**
@@ -582,10 +586,38 @@ const config: IntlayerConfig = {
582
586
  }),
583
587
  },
584
588
 
589
+ /**
590
+ * Конфігурація словника.
591
+ */
592
+ dictionary: {
593
+ /**
594
+ * Керує способом імпорту словників.
595
+ * - "static": Статично імпортується під час збірки.
596
+ * - "dynamic": Динамічно імпортується за допомогою Suspense.
597
+ * - "fetch": Динамічно завантажується через API живої синхронізації.
598
+ */
599
+ importMode: "static",
600
+
601
+ /**
602
+ * Формат повідомлень за замовчуванням для всіх словників у проекті.
603
+ * - 'intlayer': Власний формат intlayer (за замовчуванням).
604
+ * - 'icu': Формат повідомлень ICU.
605
+ * - 'i18next': Формат i18next.
606
+ * - 'vue-i18n': Формат Vue I18n.
607
+ * - 'po': Формат GNU Gettext PO.
608
+ */
609
+ format: "icu",
610
+ },
611
+
585
612
  /**
586
613
  * Конфігурація плагінів.
587
614
  */
588
- plugins: [],
615
+ plugins: [
616
+ syncJSON({
617
+ format: "icu",
618
+ source: ({ locale }) => `./messages/${locale}.json`,
619
+ }),
620
+ ],
589
621
  };
590
622
 
591
623
  export default config;
@@ -862,6 +894,7 @@ export default config;
862
894
  | `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/>• Вставки : `Hello {{name}}` → `insert('Hello {{name}}')` . |
863
895
  | `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'` або власні рядки: Керування через плагін або власне джерело. |
864
896
  | `importMode` | Керує способом імпорту словників. | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: Статичний імпорт.<br/>• `'dynamic'`: Динамічний імпорт через Suspense.<br/>• `'fetch'`: Отримання через Live Sync API; резервний варіант `'dynamic'` у разі помилки.<br/>• Потрібні плагіни `@intlayer/babel` та `@intlayer/swc`.<br/>• Ключі мають бути оголошені статично.<br/>• Ігнорується, якщо `optimize` вимкнено.<br/>• Не впливає на `getIntlayer`, `getDictionary` тощо. |
897
+ | `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. |
865
898
  | `priority` | Пріоритет словника. При вирішенні конфліктів між словниками вище значення має перевагу перед нижчим. | `number` | `undefined` | `1` | |
866
899
  | `live` | ЗАСТАРІЛО - використовуйте `importMode: 'fetch'`. Раніше вказувало, чи слід отримувати контент словника динамічно через Live Sync API. | `boolean` | `undefined` | | Перейменовано на `importMode: 'fetch'` у v8.0.0. |
867
900
  | `schema` | Генерується автоматично Intlayer для валідації JSON-схеми. | `'https://intlayer.org/schema.json'` | Генерується | | Не редагуйте вручну. |
@@ -71,7 +71,10 @@ export default myConditionalContent;
71
71
 
72
72
  ## Використання умовного контенту в React Intlayer
73
73
 
74
- Щоб використовувати умовний контент у React-компоненті, імпортуйте та використовуйте хук `useIntlayer` з пакета `react-intlayer`. Цей хук отримує контент для зазначеного ключа і дозволяє передати умову для вибору відповідного виводу.
74
+ <Tabs group="framework">
75
+ <Tab label="React" value="react">
76
+
77
+ To utilize conditional content within a React component, import and use the `useIntlayer` hook from the `react-intlayer` package. This hook fetches the content for the specified key and allows you to pass in a condition to select the appropriate output.
75
78
 
76
79
  ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
77
80
  import type { FC } from "react";
@@ -84,25 +87,25 @@ const ConditionalComponent: FC = () => {
84
87
  <div>
85
88
  <p>
86
89
  {
87
- /* Вивід: мій контент, коли це true */
90
+ /* Output: my content when it's true */
88
91
  myCondition(true)
89
92
  }
90
93
  </p>
91
94
  <p>
92
95
  {
93
- /* Вивід: мій контент, коли це false */
96
+ /* Output: my content when it's false */
94
97
  myCondition(false)
95
98
  }
96
99
  </p>
97
100
  <p>
98
101
  {
99
- /* Вивід: мій контент, коли умова не виконується */
102
+ /* Output: my content when the condition fails */
100
103
  myCondition("")
101
104
  }
102
105
  </p>
103
106
  <p>
104
107
  {
105
- /* Вивід: мій контент, коли умова не виконується */
108
+ /* Output: my content when the condition fails */
106
109
  myCondition(undefined)
107
110
  }
108
111
  </p>
@@ -113,6 +116,165 @@ const ConditionalComponent: FC = () => {
113
116
  export default ConditionalComponent;
114
117
  ```
115
118
 
119
+ </Tab>
120
+ <Tab label="Next.js" value="nextjs">
121
+
122
+ To utilize conditional content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
123
+
124
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
125
+ "use client";
126
+
127
+ import type { FC } from "react";
128
+ import { useIntlayer } from "next-intlayer";
129
+
130
+ const ConditionalComponent: FC = () => {
131
+ const { myCondition } = useIntlayer("my_key");
132
+
133
+ return (
134
+ <div>
135
+ <p>{myCondition(true)}</p>
136
+ <p>{myCondition(false)}</p>
137
+ </div>
138
+ );
139
+ };
140
+
141
+ export default ConditionalComponent;
142
+ ```
143
+
144
+ </Tab>
145
+ <Tab label="Vue" value="vue">
146
+
147
+ To utilize conditional content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
148
+
149
+ ```vue fileName="**/*.vue"
150
+ <script setup lang="ts">
151
+ import { useIntlayer } from "vue-intlayer";
152
+
153
+ const { myCondition } = useIntlayer("my_key");
154
+ </script>
155
+
156
+ <template>
157
+ <div>
158
+ <p>{{ myCondition(true) }}</p>
159
+ <p>{{ myCondition(false) }}</p>
160
+ </div>
161
+ </template>
162
+ ```
163
+
164
+ </Tab>
165
+ <Tab label="Svelte" value="svelte">
166
+
167
+ To utilize conditional content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
168
+
169
+ ```svelte fileName="**/*.svelte"
170
+ <script lang="ts">
171
+ import { useIntlayer } from "svelte-intlayer";
172
+
173
+ const content = useIntlayer("my_key");
174
+ </script>
175
+
176
+ <div>
177
+ <p>{$content.myCondition(true)}</p>
178
+ <p>{$content.myCondition(false)}</p>
179
+ </div>
180
+ ```
181
+
182
+ </Tab>
183
+ <Tab label="Preact" value="preact">
184
+
185
+ To utilize conditional content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
186
+
187
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
188
+ import type { FC } from "preact";
189
+ import { useIntlayer } from "preact-intlayer";
190
+
191
+ const ConditionalComponent: FC = () => {
192
+ const { myCondition } = useIntlayer("my_key");
193
+
194
+ return (
195
+ <div>
196
+ <p>{myCondition(true)}</p>
197
+ <p>{myCondition(false)}</p>
198
+ </div>
199
+ );
200
+ };
201
+
202
+ export default ConditionalComponent;
203
+ ```
204
+
205
+ </Tab>
206
+ <Tab label="Solid" value="solid">
207
+
208
+ To utilize conditional content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
209
+
210
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
211
+ import type { Component } from "solid-js";
212
+ import { useIntlayer } from "solid-intlayer";
213
+
214
+ const ConditionalComponent: Component = () => {
215
+ const { myCondition } = useIntlayer("my_key");
216
+
217
+ return (
218
+ <div>
219
+ <p>{myCondition(true)}</p>
220
+ <p>{myCondition(false)}</p>
221
+ </div>
222
+ );
223
+ };
224
+
225
+ export default ConditionalComponent;
226
+ ```
227
+
228
+ </Tab>
229
+ <Tab label="Angular" value="angular">
230
+
231
+ To utilize conditional content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
232
+
233
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
234
+ import { Component } from "@angular/core";
235
+ import { useIntlayer } from "angular-intlayer";
236
+
237
+ @Component({
238
+ selector: "app-conditional",
239
+ template: `
240
+ <div>
241
+ <p>{{ content().myCondition(true) }}</p>
242
+ <p>{{ content().myCondition(false) }}</p>
243
+ </div>
244
+ `,
245
+ })
246
+ export class ConditionalComponent {
247
+ content = useIntlayer("my_key");
248
+ }
249
+ ```
250
+
251
+ </Tab>
252
+ <Tab label="Vanilla JS" value="vanilla">
253
+
254
+ To utilize conditional content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
255
+
256
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
257
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
258
+
259
+ installIntlayer();
260
+
261
+ const content = useIntlayer("my_key").onChange((newContent) => {
262
+ document.getElementById("true-content")!.textContent =
263
+ newContent.myCondition(true);
264
+ document.getElementById("false-content")!.textContent =
265
+ newContent.myCondition(false);
266
+ });
267
+
268
+ // Initial render
269
+ document.getElementById("true-content")!.textContent =
270
+ content.myCondition(true);
271
+ document.getElementById("false-content")!.textContent =
272
+ content.myCondition(false);
273
+ ```
274
+
275
+ </Tab>
276
+ </Tabs>
277
+
116
278
  ## Додаткові ресурси
117
279
 
118
280
  Для детальнішої інформації щодо конфігурації та використання зверніться до наведених ресурсів: