@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의 신규 기능을 확인하세요. 이번 릴리스는 developer experience 향상, schema validation을 통한 데이터 무결성 보장, 그리고 dictionary management에 대한 제어 강화에 중점을 둡니다.
6
6
  keywords:
@@ -409,6 +409,16 @@ v7에서는 Provider가 정의되지 않은 경우 Markdown 노드가 원시 문
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 재작성(Custom URL Rewrites)** 을 도입하여 표준 `/locale/path` 구조와 다른 로케일별 경로를 정의할 수 있게 합니다. 이는 로컬 SEO를 개선하고 영어가 아닌 사용자에게 보다 자연스러운 사용자 경험을 제공하는 강력한 기능입니다.
@@ -753,6 +763,63 @@ export default {
753
763
  </Tab>
754
764
  </Tabs>
755
765
 
766
+ ---
767
+
768
+ ## Unicode CLDR 복수형 규칙 (v8.8.0)
769
+
770
+ Unicode CLDR 프로젝트에서 정의한 복수형 규칙을 기반으로 하는 새로운 `plural` 노드 헬퍼가 도입되어 복잡한 언어에 대한 지원이 향상되었습니다.
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
+ ko: plural({
780
+ other: "{{count}}개의 채용 공고",
781
+ }),
782
+ en: plural({
783
+ one: "{{count}} opening",
784
+ other: "{{count}} openings",
785
+ }),
786
+ fr: plural({
787
+ one: "{{count}} offre",
788
+ other: "{{count}} offres",
789
+ }),
790
+ }),
791
+ },
792
+ } satisfies Dictionary;
793
+
794
+ export default openingsContent;
795
+ ```
796
+
797
+ 이후 프레임워크 컴포넌트에서 동적으로 count를 전달할 수 있습니다:
798
+
799
+ ```tsx
800
+ import type { FC } from "react";
801
+ import { useIntlayer } from "react-intlayer";
802
+
803
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
804
+ const { totalOpenings } = useIntlayer("total_openings");
805
+
806
+ return (
807
+ <div>
808
+ {/* 영어 기준: */}
809
+ {/* count=0 → "0 openings" (other) */}
810
+ {/* count=1 → "1 opening" (one) */}
811
+ {/* count=2 → "2 openings" (other) */}
812
+ {/* count=21 → "21 openings" (other) */}
813
+ <p>{totalOpenings(count)}</p>
814
+ </div>
815
+ );
816
+ };
817
+ ```
818
+
819
+ 자세한 내용은 [복수형 문서](https://intlayer.org/doc/concept/content/plural)를 참조하세요.
820
+
821
+ ---
822
+
756
823
  ## 콘텐츠 스키마 검증
757
824
 
758
825
  Intlayer v8에서는 딕셔너리에 대한 스키마 검증을 도입합니다. 이제 Zod를 사용해 구성 파일에 재사용 가능한 검증 스키마를 정의하고 이를 콘텐츠 파일에 적용할 수 있습니다. 이를 통해 콘텐츠가 항상 예상된 구조를 따르도록 보장하여 빌드 시점에 오류를 포착할 수 있습니다.
@@ -797,6 +864,34 @@ export default aboutPageMetaContent;
797
864
 
798
865
  ---
799
866
 
867
+ ## TypeScript: IntlayerNode 기본형 접근자 (Primitive Accessors)
868
+
869
+ `IntlayerNode` 타입이 업데이트되어 콘텐츠 노드에서 직접 JavaScript 기본형(primitive) 메서드를 호출할 수 있게 되었습니다. 이를 통해 지역화된 콘텐츠를 표준 string, number, boolean 또는 array 기본형인 것처럼 직접 상호작용할 수 있습니다.
870
+
871
+ React, Preact, Solid, Svelte, Vue 및 Angular에서 지원됩니다.
872
+
873
+ ### String 예제
874
+
875
+ ```typescript
876
+ content.placeholder; // IntlayerNode<string> 반환
877
+ content.placeholder.value; // string 반환
878
+ content.placeholder.toString(); // string 반환
879
+ content.placeholder.toLowerCase(); // string 반환
880
+ String(content.placeholder); // string 반환
881
+ content.placeholder.toUpperCase(); // 대문자로 변환된 string 반환
882
+ content.placeholder.replace("a", "b"); // 수정된 string 반환
883
+ ```
884
+
885
+ ### Array 예제
886
+
887
+ ```typescript
888
+ content.myArrayOfString // IntlayerNode<Array<string>> 반환
889
+ content.myArrayOfString.find(...) // 요소 반환
890
+ content.myArrayOfString.join(', ') // 결합된 string 반환
891
+ ```
892
+
893
+ ---
894
+
800
895
  ### 향상된 자동 콘텐츠 감지
801
896
 
802
897
  v8에서 Intlayer는 콘텐츠 문자열에서 Markdown 문법, HTML 태그 및 변수 삽입을 지능적으로 감지합니다. 이는 `md()`, `html()`, 또는 `insert()`와 같은 헬퍼 함수를 종종 생략할 수 있음을 의미합니다.
@@ -1002,6 +1097,17 @@ Intlayer VSCode 확장 기능은 v8에서 국제화 워크플로우를 간소화
1002
1097
 
1003
1098
  ---
1004
1099
 
1100
+ ## 도구: C++ Watcher 및 OXC 기반 LSP (v8.12.0)
1101
+
1102
+ Intlayer v8.12.0은 developer experience에 큰 개선을 가져왔습니다:
1103
+
1104
+ - **Parcel Watcher**: 콘텐츠 감시자(watcher)가 `chokidar`에서 `@parcel/watcher`로 마이그레이션되어, 네이티브 C++ 파일 감시를 활용해 더 빠른 업데이트와 현저히 낮은 메모리 소비를 제공합니다.
1105
+ - **새로운 언어 서버 프로토콜 (LSP)**: 완전히 새로운 LSP를 이제 사용할 수 있습니다. OXC 기반 파싱으로 구축되어, IDE 및 AI 에이전트가 `useIntlayer('my-key')` 호출을 해당하는 `.content` 파일과 원활하게 연결할 수 있도록 돕습니다.
1106
+
1107
+ 자세한 내용은 [LSP 문서](https://intlayer.org/doc/lsp)를 참조하세요.
1108
+
1109
+ ---
1110
+
1005
1111
  ## 컴파일러 최적화
1006
1112
 
1007
1113
  Intlayer v8에는 Markdown 및 HTML 컴파일러를 위한 새로운 캐싱 레이어가 포함되어 있습니다. 이는 동일한 설정을 가진 동일한 콘텐츠 문자열을 한 번만 파싱하도록 하여, 재렌더링 시나 동일한 콘텐츠를 여러 곳에서 사용할 때 발생하는 오버헤드를 크게 줄여줍니다.
@@ -1057,6 +1163,48 @@ Intlayer v8에는 Markdown 및 HTML 컴파일러를 위한 새로운 캐싱 레
1057
1163
 
1058
1164
  ---
1059
1165
 
1166
+ ## 실험적 빌드 최적화: Minify 및 Purge (v8.7.0)
1167
+
1168
+ Intlayer v8.7.0은 프로덕션 번들을 최적화하기 위해 설계된 새로운 실험적 빌드 기능을 `intlayer.config.ts`에 도입합니다:
1169
+
1170
+ - **딕셔너리 경량화 (Minification)**: 크기를 줄이기 위해 딕셔너리 파일을 압축합니다.
1171
+ - **사용되지 않는 키 제거 (Unused Key Purging)**: 딕셔너리에서 사용되지 않는 번역 키를 스캔하여 제거하고, 활성 키의 이름을 짧은 문자(예: `"products" -> "a"`, `"pricing" -> "b"`)로 변경합니다. 이를 통해 번들 크기를 최대 5%까지 줄일 수 있습니다.
1172
+ - **TypeScript 검사 비활성화**: 컴파일 단계에서 TypeScript 타입 검사를 비활성화하여 빌드 속도를 높입니다.
1173
+
1174
+ ```typescript fileName="intlayer.config.ts"
1175
+ import { Locales, type IntlayerConfig } from "intlayer";
1176
+
1177
+ const config: IntlayerConfig = {
1178
+ internationalization: {
1179
+ locales: [Locales.ENGLISH, Locales.FRENCH],
1180
+ defaultLocale: Locales.ENGLISH,
1181
+ },
1182
+ dictionary: {
1183
+ importMode: "dynamic",
1184
+ },
1185
+ build: {
1186
+ /**
1187
+ * 번들 크기를 줄이기 위해 딕셔너리를 경량화(minify)합니다.
1188
+ */
1189
+ minify: true,
1190
+
1191
+ /**
1192
+ * 딕셔너리에서 사용되지 않는 키를 제거(purge)합니다.
1193
+ */
1194
+ purge: true,
1195
+
1196
+ /**
1197
+ * 빌드 시 TypeScript 타입을 확인할지 여부를 나타냅니다.
1198
+ */
1199
+ checkTypes: false,
1200
+ },
1201
+ };
1202
+
1203
+ export default config;
1204
+ ```
1205
+
1206
+ ---
1207
+
1060
1208
  ## 유연성: 통합된 Import 모드
1061
1209
 
1062
1210
  `live` boolean 속성은 더 포괄적인 `importMode` 속성으로 대체(deprecated)되었습니다. 이를 통해 딕셔너리를 정적(static), 동적(dynamic), 또는 라이브 동기화 방식으로 어떻게 로드할지 명시적으로 정의할 수 있습니다.
@@ -1204,6 +1352,49 @@ Svelte에서의 Markdown 및 HTML 콘텐츠는 이제 문자열화될 때 자동
1204
1352
 
1205
1353
  ---
1206
1354
 
1355
+ ## Angular 지원: Vite 번들러 (v8.11.0)
1356
+
1357
+ Angular 사용자를 위해, Intlayer는 이제 새로운 커스텀 esbuild 플러그인을 통해 Vite 번들러를 기본적으로 지원하여 개발 및 빌드 시간을 단축합니다.
1358
+
1359
+ 구성에 대한 자세한 내용은 [Angular 환경 문서](https://intlayer.org/doc/environment/angular)를 참조하세요.
1360
+
1361
+ ---
1362
+
1363
+ ## 사이트맵 생성 (v8.6.0)
1364
+
1365
+ Intlayer는 이제 로케일 및 라우팅 모드를 기반으로 사이트맵을 자동으로 생성합니다. 이는 TanStack Router와 같은 라우터 아키텍처에서 SEO 최적화에 특히 유용합니다:
1366
+
1367
+ ```typescript fileName="src/routes/sitemap.xml.ts"
1368
+ import { createFileRoute } from "@tanstack/react-router";
1369
+ import { generateSitemap } from "intlayer";
1370
+
1371
+ const SITE_URL = (
1372
+ import.meta.env.VITE_SITE_URL ?? "http://localhost:3000"
1373
+ ).replace(/\/$/, "");
1374
+
1375
+ export const Route = createFileRoute("/sitemap.xml")({
1376
+ server: {
1377
+ handlers: {
1378
+ GET: async () => {
1379
+ const sitemap = generateSitemap(
1380
+ [
1381
+ { path: "/", changefreq: "daily", priority: 1.0 },
1382
+ { path: "/about", changefreq: "monthly", priority: 0.8 },
1383
+ ],
1384
+ { siteUrl: SITE_URL }
1385
+ );
1386
+
1387
+ return new Response(sitemap, {
1388
+ headers: { "Content-Type": "application/xml" },
1389
+ });
1390
+ },
1391
+ },
1392
+ },
1393
+ });
1394
+ ```
1395
+
1396
+ ---
1397
+
1207
1398
  ## v7에서의 마이그레이션 노트
1208
1399
 
1209
1400
  ### 구성 변경사항
@@ -0,0 +1,232 @@
1
+ ---
2
+ createdAt: 2026-06-14
3
+ updatedAt: 2026-06-14
4
+ title: 새로운 Intlayer v9 - 무엇이 달라졌나요?
5
+ description: Intlayer v9의 새로운 기능을 알아보세요. 인기 있는 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에 오신 것을 환영합니다! 이번 메이저 릴리스는 주요 i18n 라이브러리(`react-i18next`, `next-intl`, `vue-i18n` 등)를 위한 **호환 어댑터 패키지(Compat Adapter Packages)**를 통해 Intlayer로의 마이그레이션 경로를 획기적으로 단순화하고, **컬렉션(Collections)**, **베리언트(Variants)**, **동적 레코드(Dynamic Records)**와 같은 풍부한 콘텐츠 구조 지원을 추가하는 큰 이정표를 세웠습니다.
26
+
27
+ ## 목차
28
+
29
+ <TOC levels={[2]} maxDepth={1} />
30
+
31
+ ---
32
+
33
+ ## 호환 어댑터 패키지 (Compat Adapter Packages)
34
+
35
+ 인기 있는 i18n 라이브러리에서 Intlayer로 마이그레이션하는 것이 그 어느 때보다 쉬워졌습니다. 표준 i18n 라이브러리와 **완전히 동일한 공개 API**를 노출하면서 런타임 시 모든 번역 작업을 Intlayer에 위임하는 5개의 호환 패키지를 출시했습니다.
36
+
37
+ ### 엄격한 타입 지정을 통한 동일한 공개 API 노출
38
+
39
+ 임포트(import) 경로를 바꾸는 것만으로, 최소한의 코드 변경을 통해 실제 딕셔너리에 대한 컴파일 타임 타입 안전성을 포함한 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 딕셔너리에 대해 **엄격하게 타입 지정(strictly typed)**되어 IDE에서 완전한 점 표기법(dot-path) 자동 완성을 제공합니다!
60
+
61
+ ### 번들러 에일리어스 플러그인 (Vite, Next.js, Turbopack)
62
+
63
+ 모든 임포트 문을 수동으로 다시 작성하지 않고도 마이그레이션할 수 있도록, 각 호환 어댑터 패키지에는 `/plugin` 서브패스 아래에 **커스텀 번들러 플러그인**(Vite 또는 Next.js)이 포함되어 있습니다.
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}}` (공백 및 점 표기법 경로), ICU 포맷 인수 (`{v, number, percent}` 등), 그리고 기본 `{var}` 템플릿을 해석합니다.
98
+ - **메시지 노드 리졸버 (Message Node Resolver)**: 중첩된 노드들을 해석합니다: `insert()`, `plural()` (CLDR 복수형 규칙), `enu()` (열거형), `gender()`, HTML 태그, 배열, 그리고 호출 가능한 함수 노드.
99
+ - **토큰화된 태그 파서 (Tokenized Tag Parser)**: 인라인 XML/HTML 태그 및 번호가 매겨진 태그(예: `<1>children</1>`)를 지원하여 서식 있는 텍스트(rich-text) 렌더링을 기본적으로 지원합니다.
100
+
101
+ ---
102
+
103
+ ## 기능 사양: 컬렉션, 베리언트 및 동적 레코드
104
+
105
+ Intlayer v9은 정적인 키-값 객체를 넘어, 딕셔너리가 처음부터 끝까지 완전히 타입 지정된 동적 레이아웃 구조를 선언할 수 있도록 확장되었습니다.
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
+ ko: "Intlayer가 무엇인가요?",
120
+ en: "What is Intlayer?",
121
+ fr: "Qu'est-ce qu'Intlayer ?",
122
+ }),
123
+ answer: t({
124
+ ko: "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) 또는 커스텀 랜딩 페이지를 제공합니다:
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({ ko: "환영합니다", en: "Welcome", fr: "Bienvenue" }),
155
+ black_friday: t({
156
+ ko: "지금 쇼핑하기",
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
+ 쿼리 ID를 통해 런타임에 동적으로 로드되는 항목을 가진 딕셔너리를 정의합니다:
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({ ko: "클린 코드", 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은 동적 지연 로딩(dynamic 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-shaking)이 가능한 래퍼(`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
+ - [호환 어댑터 패키지 가이드](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/compat/index.md)
231
+ - [동적 딕셔너리 - 컬렉션, 베리언트 및 동적 레코드](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dynamic_dictionaries/index.md)
232
+ - [설정 레퍼런스](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/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 commando toegevoegd"
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 commando toegevoegd"
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: Configuratie (Configuration)
5
5
  description: Leer hoe u Intlayer configureert voor uw applicatie. Begrijp de verschillende instellingen en opties die beschikbaar zijn om Intlayer aan uw behoeften aan te passen.
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: "Optie `format` toegevoegd aan de woordenboekconfiguratie"
17
20
  - version: 8.9.4
18
21
  date: 2026-05-12
19
22
  changes: "Ondersteuning voor LM Studio-provider toegevoegd"
@@ -135,6 +138,7 @@ Intlayer accepteert JSON-, JS-, MJS- en TS-configuratiebestandsformaten:
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
  /**
@@ -583,9 +587,37 @@ const config: IntlayerConfig = {
583
587
  },
584
588
 
585
589
  /**
586
- * Configuratie van plugins.
590
+ * Woordenboekconfiguratie.
587
591
  */
588
- plugins: [],
592
+ dictionary: {
593
+ /**
594
+ * Bepaalt hoe woordenboeken worden geïmporteerd.
595
+ * - "static": Statisch geïmporteerd tijdens de build.
596
+ * - "dynamic": Dynamisch geïmporteerd via Suspense.
597
+ * - "fetch": Dynamisch opgehaald via de live sync API.
598
+ */
599
+ importMode: "static",
600
+
601
+ /**
602
+ * Het standaard berichtformaat voor alle woordenboeken in het project.
603
+ * - 'intlayer': Native intlayer-formaat (standaard).
604
+ * - 'icu': ICU-berichtformaat.
605
+ * - 'i18next': i18next-formaat.
606
+ * - 'vue-i18n': Vue I18n-formaat.
607
+ * - 'po': GNU Gettext PO-formaat.
608
+ */
609
+ format: "icu",
610
+ },
611
+
612
+ /**
613
+ * Plugin-configuratie.
614
+ */
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 @@ Parameters die operaties met woordenboeken regelen, inclusief het gedrag bij aut
862
894
  | `contentAutoTransformation` | Transformeert de contentstrings automatisch naar getypeerde nodes (markdown, HTML of invoeging). | `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/>• Invoeging : `Hello {{name}}` → `insert('Hello {{name}}')`. |
863
895
  | `location` | Geeft aan waar de woordenboekbestanden worden bewaard en hoe ze worden gesynchroniseerd met de CMS. | `'local'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: alleen lokaal beheer.<br/>• `'remote'`: alleen extern beheer (CMS).<br/>• `'hybrid'`: zowel lokaal als extern beheer.<br/>• `'plugin'` of een aangepaste string: beheer door een plugin of aangepaste bron. |
864
896
  | `importMode` | Beheert de manier waarop woordenboeken worden geimporteerd. | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: statische import.<br/>• `'dynamic'`: dynamische import via Suspense.<br/>• `'fetch'`: ophalen via Live Sync API; uitstel tot `'dynamic'` bij mislukking.<br/>• Vereist plug-ins `@intlayer/babel` en `@intlayer/swc`.<br/>• Sleutels moeten statisch worden gedeclareerd.<br/>• Wordt genegeerd als `optimize` is uitgeschakeld.<br/>• Heeft geen invloed op `getIntlayer`, `getDictionary` enz. |
897
+ | `format` | Het standaard berichtformaat voor alle woordenboeken in het project. | `'intlayer'` &#124; <br/> `'icu'` &#124; <br/> `'i18next'` &#124; <br/> `'vue-i18n'` &#124; <br/> `'po'` | `'intlayer'` | `'icu'` | • `'intlayer'`: Native intlayer-formaat.<br/>• `'icu'`: ICU-berichtformaat.<br/>• `'i18next'`: i18next-formaat.<br/>• `'vue-i18n'`: Vue I18n-formaat.<br/>• `'po'`: GNU Gettext PO-formaat. |
865
898
  | `priority` | Prioriteit van het woordenboek. Hogere waarden winnen van lagere bij het oplossen van conflicten tussen woordenboeken. | `number` | `undefined` | `1` | |
866
899
  | `live` | Verouderd - gebruik `importMode: 'fetch'`. Geeft aan of de inhoud van het woordenboek dynamisch via de Live Sync API moet worden opgehaald. | `boolean` | `undefined` | | Hernoemd naar `importMode: 'fetch'` in v8.0.0. |
867
900
  | `schema` | Automatisch gegenereerd door Intlayer voor validatie van het JSON-schema. | `'https://intlayer.org/schema.json'` | auto-generatie | | Niet handmatig bewerken. |