@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: 2024-08-11
3
- updatedAt: 2025-11-22
3
+ updatedAt: 2026-06-17
4
4
  title: Đánh Giá Tài Liệu
5
5
  description: Tìm hiểu cách đánh giá các tệp tài liệu về chất lượng, tính nhất quán và độ đầy đủ trên các ngôn ngữ khác nhau.
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: "Thêm tùy chọn --log"
18
22
  author: aymericzip
19
23
  ---
20
24
 
@@ -55,8 +59,110 @@ Lệnh này có thể được sử dụng để đánh giá các tệp đã đ
55
59
 
56
60
  ## Tham số:
57
61
 
58
- Lệnh `doc review` chấp nhận cùng các tham số như `doc translate`, cho phép bạn đánh giá các tệp tài liệu cụ thể và áp dụng các kiểm tra chất lượng.
62
+ **Tùy chọn danh sách tệp:**
59
63
 
60
- Nếu bạn đã kích hoạt một trong các tùy chọn git, lệnh sẽ chỉ đánh giá phần của các tệp bị thay đổi. Script sẽ xử lý bằng cách chia tệp thành các phần nhỏ và đánh giá từng phần. Nếu phần đó không có thay đổi, script sẽ bỏ qua để tăng tốc quá trình đánh giá và giới hạn chi phí API của nhà cung cấp AI.
64
+ - **`--doc-pattern [docPattern...]`**: Các mẫu glob để khớp với các tệp tài liệu cần đánh giá.
61
65
 
62
- - Để xem danh sách đầy đủ các tham số, hãy xem tài liệu lệnh [Translate Document](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/doc-translate.md).
66
+ > dụ: `npx intlayer doc review --doc-pattern "docs/**/*.md" "src/**/*.mdx"`
67
+
68
+ - **`--excluded-glob-pattern [excludedGlobPattern...]`**: Các mẫu glob để loại trừ khỏi việc đánh giá.
69
+
70
+ > Ví dụ: `npx intlayer doc review --excluded-glob-pattern "docs/internal/**"`
71
+
72
+ - **`--skip-if-modified-before [skipIfModifiedBefore]`**: Bỏ qua tệp nếu nó đã được sửa đổi trước thời gian cho trước.
73
+ - Có thể là thời gian tuyệt đối như "2025-12-05" (chuỗi hoặc Date)
74
+ - Có thể là thời gian tương đối tính bằng ms `1 * 60 * 60 * 1000` (1 giờ)
75
+ - Tùy chọn này kiểm tra thời gian cập nhật của tệp bằng phương thức `fs.stat`. Do đó, nó có thể bị ảnh hưởng bởi Git hoặc các công cụ khác sửa đổi tệp.
76
+
77
+ > Ví dụ: `npx intlayer doc review --skip-if-modified-before "2025-12-05"`
78
+
79
+ - **`--skip-if-modified-after [skipIfModifiedAfter]`**: Bỏ qua tệp nếu nó đã được sửa đổi trong khoảng thời gian cho trước.
80
+ - Có thể là thời gian tuyệt đối như "2025-12-05" (chuỗi hoặc Date)
81
+ - Có thể là thời gian tương đối tính bằng ms `1 * 60 * 60 * 1000` (1 giờ)
82
+ - Tùy chọn này kiểm tra thời gian cập nhật của tệp bằng phương thức `fs.stat`. Do đó, nó có thể bị ảnh hưởng bởi Git hoặc các công cụ khác sửa đổi tệp.
83
+
84
+ > Ví dụ: `npx intlayer doc review --skip-if-modified-after "2025-12-05"`
85
+
86
+ - **`--skip-if-exists`**: Bỏ qua tệp nếu tệp đã tồn tại.
87
+
88
+ > Ví dụ: `npx intlayer doc review --skip-if-exists`
89
+
90
+ **Tùy chọn chế độ đánh giá:**
91
+
92
+ - **`--log`**: Chế độ chỉ ghi log. Không dịch bằng AI; thay vào đó, ghi lại các phần cần lưu ý (kèm số dòng và nội dung) cho ngôn ngữ cơ sở và ngôn ngữ đích, nhằm hỗ trợ một agent khác tạo bản dịch.
93
+
94
+ > Ví dụ: `npx intlayer doc review --log`
95
+
96
+ **Tùy chọn xuất đầu vào:**
97
+
98
+ - **`--locales [locales...]`**: Các ngôn ngữ đích để đánh giá tài liệu.
99
+
100
+ > Ví dụ: `npx intlayer doc review --locales fr es de`
101
+
102
+ - **`--base-locale [baseLocale]`**: Ngôn ngữ nguồn (tài liệu cơ sở) để so sánh.
103
+
104
+ > Ví dụ: `npx intlayer doc review --base-locale en`
105
+
106
+ **Tùy chọn xử lý tệp:**
107
+
108
+ - **`--nb-simultaneous-file-processed [nbSimultaneousFileProcessed]`**: Số lượng tệp được xử lý đồng thời để đánh giá.
109
+
110
+ > Ví dụ: `npx intlayer doc review --nb-simultaneous-file-processed 5`
111
+
112
+ **Tùy chọn AI:**
113
+
114
+ - **`--model [model]`**: Mô hình AI được sử dụng để đánh giá (ví dụ: `gpt-3.5-turbo`).
115
+ - **`--provider [provider]`**: Nhà cung cấp AI được sử dụng để đánh giá.
116
+ - **`--temperature [temperature]`**: Thiết lập nhiệt độ cho mô hình AI.
117
+ - **`--api-key [apiKey]`**: Cung cấp khóa API riêng của bạn cho dịch vụ AI.
118
+ - **`--application-context [applicationContext]`**: Cung cấp ngữ cảnh bổ sung cho việc đánh giá AI.
119
+ - **`--data-serialization [dataSerialization]`**: Định dạng tuần tự hóa dữ liệu sử dụng cho các tính năng AI của Intlayer. Các tùy chọn: `json` (tiêu chuẩn, đáng tin cậy), `toon` (ít token hơn, kém nhất quán hơn).
120
+ - **`--custom-prompt [prompt]`**: Tùy chỉnh prompt cơ bản được sử dụng cho việc đánh giá. (Lưu ý: Trong hầu hết các trường hợp, tùy chọn `--custom-instructions` được khuyến nghị vì nó cung cấp khả năng kiểm soát tốt hơn.)
121
+
122
+ > Ví dụ: `npx intlayer doc review --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "Ứng dụng của tôi là một cửa hàng mèo"`
123
+
124
+ **Tùy chọn biến môi trường:**
125
+
126
+ - **`--env`**: Chỉ định môi trường (ví dụ: `development`, `production`).
127
+ - **`--env-file [envFile]`**: Cung cấp tệp môi trường tùy chỉnh để tải biến.
128
+ - **`--base-dir`**: Chỉ định thư mục gốc cho dự án.
129
+ - **`--no-cache`**: Vô hiệu hóa bộ nhớ đệm.
130
+
131
+ > Ví dụ: `npx intlayer doc review --base-dir ./docs --env-file .env.production.local`
132
+
133
+ **Tùy chọn ghi log:**
134
+
135
+ - **`--verbose`**: Bật ghi log chi tiết để gỡ lỗi. (mặc định là true khi sử dụng CLI)
136
+
137
+ > Ví dụ: `npx intlayer doc review --verbose`
138
+
139
+ **Tùy chọn hướng dẫn tùy chỉnh:**
140
+
141
+ - **`--custom-instructions [customInstructions]`**: Hướng dẫn tùy chỉnh được thêm vào prompt. Hữu ích để áp dụng các quy tắc cụ thể liên quan đến định dạng, dịch URL, v.v.
142
+
143
+ > Ví dụ: `npx intlayer doc review --custom-instructions "Tránh dịch các URL, và giữ nguyên định dạng markdown"`
144
+
145
+ > Ví dụ: `npx intlayer doc review --custom-instructions "$(cat ./instructions.md)"`
146
+
147
+ **Tùy chọn Git:**
148
+
149
+ - **`--git-diff`**: Chỉ chạy trên các tệp có thay đổi từ cơ sở (mặc định `origin/main`) đến nhánh hiện tại (mặc định: `HEAD`).
150
+ - **`--git-diff-base`**: Chỉ định tham chiếu cơ sở cho git diff (mặc định `origin/main`).
151
+ - **`--git-diff-current`**: Chỉ định tham chiếu hiện tại cho git diff (mặc định: `HEAD`).
152
+ - **`--uncommitted`**: Bao gồm các thay đổi chưa được commit.
153
+ - **`--unpushed`**: Bao gồm các thay đổi chưa được đẩy lên.
154
+ - **`--untracked`**: Bao gồm các tệp chưa được theo dõi.
155
+
156
+ > Ví dụ: `npx intlayer doc review --git-diff --git-diff-base origin/main --git-diff-current HEAD`
157
+
158
+ > Ví dụ: `npx intlayer doc review --uncommitted --unpushed --untracked`
159
+
160
+ > Lưu ý rằng đường dẫn tệp đầu ra sẽ được xác định bằng cách thay thế các mẫu sau:
161
+ >
162
+ > - `/{{baseLocale}}/` thành `/{{locale}}/` (Unix)
163
+ > - `\{{baseLocale}}\` thành `\{{locale}}\` (Windows)
164
+ > - `_{{baseLocale}}.` thành `_{{locale}}.`
165
+ > - `{{baseLocale}}_` thành `{{locale}}_`
166
+ > - `.{{baseLocaleName}}.` thành `.{{localeName}}.`
167
+ >
168
+ > Nếu không tìm thấy mẫu, tệp đầu ra sẽ thêm `.{{locale}}` vào phần mở rộng của tệp. Ví dụ, `./my/file.md` sẽ được đánh giá và cập nhật thành `./my/file.fr.md` cho ngôn ngữ Pháp.
@@ -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: "Thêm nội dung lệnh 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: "Thêm nội dung lệnh 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: Cấu hình (Configuration)
5
5
  description: Tìm hiểu cách cấu hình Intlayer cho ứng dụng của bạn. Hiểu các cài đặt và tùy chọn khác nhau có sẵn để tùy chỉnh Intlayer theo nhu cầu của bạn.
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: "Thêm tùy chọn `format` vào cấu hình từ điển"
17
20
  - version: 8.9.4
18
21
  date: 2026-05-12
19
22
  changes: "Thêm hỗ trợ cho nhà cung cấp LM Studio"
@@ -135,6 +138,7 @@ Intlayer chấp nhận các định dạng tệp cấu hình JSON, JS, MJS và T
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
- * Cấu hình các plugin.
590
+ * Cấu hình từ điển.
587
591
  */
588
- plugins: [],
592
+ dictionary: {
593
+ /**
594
+ * Kiểm soát cách các từ điển được nhập.
595
+ * - "static": Nhập tĩnh tại thời điểm xây dựng.
596
+ * - "dynamic": Nhập động sử dụng Suspense.
597
+ * - "fetch": Tìm nạp động qua API đồng bộ trực tiếp.
598
+ */
599
+ importMode: "static",
600
+
601
+ /**
602
+ * Định dạng tin nhắn mặc định cho tất cả các từ điển trong dự án.
603
+ * - 'intlayer': Định dạng intlayer gốc (mặc định).
604
+ * - 'icu': Định dạng tin nhắn ICU.
605
+ * - 'i18next': Định dạng i18next.
606
+ * - 'vue-i18n': Định dạng Vue I18n.
607
+ * - 'po': Định dạng GNU Gettext PO.
608
+ */
609
+ format: "icu",
610
+ },
611
+
612
+ /**
613
+ * Cấu hình plugin.
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;
@@ -854,20 +886,21 @@ Các cài đặt về cách nội dung được quản lý trong ứng dụng, b
854
886
 
855
887
  Tham số điều khiển các hoạt động của dictionary, bao gồm hành vi tự động điền (auto-fill) và thế hệ nội dung.
856
888
 
857
- | Trường | Mô tả | Kiểu dữ liệu | Mặc định | Ví dụ | Nhận xét |
858
- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
859
- | `fill` | Điều khiển cách các tệp đầu ra auto-fill (bản dịch bằng AI) được tạo ra. | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: Đường dẫn mặc định (cùng tệp với nguồn).<br/>• `false`: Vô hiệu hóa.<br/>• Template string/Hàm bật tạo tệp theo từng locale.<br/>• Đối tượng theo từng locale: Mỗi locale khớp với template của riêng nó; `false` loại bỏ locale đó.<br/>• Việc bao gồm `{{locale}}` bật tạo tệp theo từng locale.<br/>• Cài đặt `fill` ở cấp độ dictionary luôn được ưu tiên hơn cài đặt toàn cầu này. |
860
- | `description` | Giúp editor và CMS hiểu được mục đích của dictionary. Cũng được sử dụng làm ngữ cảnh để tạo các bản dịch bằng AI. | `string` | `undefined` | `'User profile section'` | |
861
- | `locale` | Chuyển đổi dictionary thành định dạng cho một locale cụ thể. Mỗi trường đã khai báo trở thành một nút dịch. Nếu thiếu, dictionary được coi là đa ngôn ngữ. | `LocalesValues` | `undefined` | `'en'` | Sử dụng tính năng này nếu dictionary dành cho một locale cụ thể thay vì chứa các bản dịch đa ngôn ngữ. |
862
- | `contentAutoTransformation` | Liệu có tự động chuyển đổi các chuỗi nội dung thành các nút có kiểu (Markdown, HTML hoặc chèn biến). | `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/>• Chèn biến : `Hello {{name}}` → `insert('Hello {{name}}')` . |
863
- | `location` | Chỉ ra nơi lưu trữ các tệp dictionary và cách chúng được đồng bộ hóa với CMS. | `'local'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: Chỉ quản lý cục bộ.<br/>• `'remote'`: Chỉ quản lý từ xa (CMS).<br/>• `'hybrid'`: Cả quản lý cục bộ và từ xa.<br/>• `'plugin'` hoặc các chuỗi tùy chỉnh: Quản lý thông qua plugin hoặc nguồn tùy chỉnh. |
864
- | `importMode` | Kiểm soát cách các dictionary được import. | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: Import tĩnh.<br/>• `'dynamic'`: Import động thông qua Suspense.<br/>• `'fetch'`: Lấy dữ liệu thông qua Live Sync API; dự phòng về `'dynamic'` nếu thất bại.<br/>• Yêu cầu các plugin `@intlayer/babel` và `@intlayer/swc`.<br/>• Các khóa (keys) phải được khai báo tĩnh.<br/>• Bị bỏ qua nếu `optimize` tắt.<br/>• Không ảnh hưởng đến `getIntlayer`, `getDictionary`, v.v. |
865
- | `priority` | Độ ưu tiên của dictionary. Khi giải quyết xung đột giữa các dictionary, giá trị cao hơn sẽ giành chiến thắng trước các giá trị thấp hơn. | `number` | `undefined` | `1` | |
866
- | `live` | ĐÃ LỖI THỜI - sử dụng `importMode: 'fetch'`. Từng biểu thị nội dung dictionary nên được lấy dữ liệu động thông qua Live Sync API hay không. | `boolean` | `undefined` | | Được đổi tên thành `importMode: 'fetch'` trong v8.0.0. |
867
- | `schema` | Được tạo tự động bởi Intlayer để xác thực JSON schema. | `'https://intlayer.org/schema.json'` | Tự động tạo | | Không chỉnh sửa thủ công. |
868
- | `title` | Giúp xác định các dictionary trong editor CMS. | `string` | `undefined` | `'User Profile'` | |
869
- | `tags` | Phân loại các dictionary cung cấp ngữ cảnh hoặc hướng dẫn cho editor và AI. | `string[]` | `undefined` | `['user', 'profile']` | |
870
- | `version` | Phiên bản của dictionary từ xa; giúp theo dõi phiên bản hiện đang được sử dụng. | `string` | `undefined` | `'1.0.0'` | • Được quản lý trong CMS.<br/>• Đừng chỉnh sửa cục bộ. |
889
+ | Trường | Mô tả | Kiểu dữ liệu | Mặc định | Ví dụ | Nhận xét |
890
+ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
891
+ | `fill` | Điều khiển cách các tệp đầu ra auto-fill (bản dịch bằng AI) được tạo ra. | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: Đường dẫn mặc định (cùng tệp với nguồn).<br/>• `false`: Vô hiệu hóa.<br/>• Template string/Hàm bật tạo tệp theo từng locale.<br/>• Đối tượng theo từng locale: Mỗi locale khớp với template của riêng nó; `false` loại bỏ locale đó.<br/>• Việc bao gồm `{{locale}}` bật tạo tệp theo từng locale.<br/>• Cài đặt `fill` ở cấp độ dictionary luôn được ưu tiên hơn cài đặt toàn cầu này. |
892
+ | `description` | Giúp editor và CMS hiểu được mục đích của dictionary. Cũng được sử dụng làm ngữ cảnh để tạo các bản dịch bằng AI. | `string` | `undefined` | `'User profile section'` | |
893
+ | `locale` | Chuyển đổi dictionary thành định dạng cho một locale cụ thể. Mỗi trường đã khai báo trở thành một nút dịch. Nếu thiếu, dictionary được coi là đa ngôn ngữ. | `LocalesValues` | `undefined` | `'en'` | Sử dụng tính năng này nếu dictionary dành cho một locale cụ thể thay vì chứa các bản dịch đa ngôn ngữ. |
894
+ | `contentAutoTransformation` | Liệu có tự động chuyển đổi các chuỗi nội dung thành các nút có kiểu (Markdown, HTML hoặc chèn biến). | `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/>• Chèn biến : `Hello {{name}}` → `insert('Hello {{name}}')` . |
895
+ | `location` | Chỉ ra nơi lưu trữ các tệp dictionary và cách chúng được đồng bộ hóa với CMS. | `'local'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: Chỉ quản lý cục bộ.<br/>• `'remote'`: Chỉ quản lý từ xa (CMS).<br/>• `'hybrid'`: Cả quản lý cục bộ và từ xa.<br/>• `'plugin'` hoặc các chuỗi tùy chỉnh: Quản lý thông qua plugin hoặc nguồn tùy chỉnh. |
896
+ | `importMode` | Kiểm soát cách các dictionary được import. | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: Import tĩnh.<br/>• `'dynamic'`: Import động thông qua Suspense.<br/>• `'fetch'`: Lấy dữ liệu thông qua Live Sync API; dự phòng về `'dynamic'` nếu thất bại.<br/>• Yêu cầu các plugin `@intlayer/babel` và `@intlayer/swc`.<br/>• Các khóa (keys) phải được khai báo tĩnh.<br/>• Bị bỏ qua nếu `optimize` tắt.<br/>• Không ảnh hưởng đến `getIntlayer`, `getDictionary`, v.v. |
897
+ | `format` | Định dạng tin nhắn mặc định cho tất cả các từ điển trong dự án. | `'intlayer'` &#124; <br/> `'icu'` &#124; <br/> `'i18next'` &#124; <br/> `'vue-i18n'` &#124; <br/> `'po'` | `'intlayer'` | `'icu'` | • `'intlayer'`: Định dạng intlayer gốc.<br/>• `'icu'`: Định dạng tin nhắn ICU.<br/>• `'i18next'`: Định dạng i18next.<br/>• `'vue-i18n'`: Định dạng Vue I18n.<br/>• `'po'`: Định dạng GNU Gettext PO. |
898
+ | `priority` | Độ ưu tiên của dictionary. Khi giải quyết xung đột giữa các dictionary, giá trị cao hơn sẽ giành chiến thắng trước các giá trị thấp hơn. | `number` | `undefined` | `1` | |
899
+ | `live` | ĐÃ LỖI THỜI - sử dụng `importMode: 'fetch'`. Từng biểu thị nội dung dictionary có nên được lấy dữ liệu động thông qua Live Sync API hay không. | `boolean` | `undefined` | | Được đổi tên thành `importMode: 'fetch'` trong v8.0.0. |
900
+ | `schema` | Được tạo tự động bởi Intlayer để xác thực JSON schema. | `'https://intlayer.org/schema.json'` | Tự động tạo | | Không chỉnh sửa thủ công. |
901
+ | `title` | Giúp xác định các dictionary trong editor và CMS. | `string` | `undefined` | `'User Profile'` | |
902
+ | `tags` | Phân loại các dictionary cung cấp ngữ cảnh hoặc hướng dẫn cho editor AI. | `string[]` | `undefined` | `['user', 'profile']` | |
903
+ | `version` | Phiên bản của dictionary từ xa; giúp theo dõi phiên bản hiện đang được sử dụng. | `string` | `undefined` | `'1.0.0'` | • Được quản lý trong CMS.<br/>• Đừng chỉnh sửa cục bộ. |
871
904
 
872
905
  **Ví dụ về `fill`**:
873
906
 
@@ -71,7 +71,10 @@ export default myConditionalContent;
71
71
 
72
72
  ## Sử dụng Nội dung Có điều kiện với React Intlayer
73
73
 
74
- Để sử dụng nội dung có điều kiện trong một component React, hãy import và sử dụng hook `useIntlayer` từ package `react-intlayer`. Hook này lấy nội dung cho khóa được chỉ định và cho phép bạn truyền vào một điều kiện để chọn kết quả phù hợp.
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
- /* Kết quả: nội dung của tôi khi điều kiện đúng */
90
+ /* Output: my content when it's true */
88
91
  myCondition(true)
89
92
  }
90
93
  </p>
91
94
  <p>
92
95
  {
93
- /* Kết quả: nội dung của tôi khi điều kiện là false */
96
+ /* Output: my content when it's false */
94
97
  myCondition(false)
95
98
  }
96
99
  </p>
97
100
  <p>
98
101
  {
99
- /* Kết quả: nội dung của tôi khi điều kiện không hợp lệ */
102
+ /* Output: my content when the condition fails */
100
103
  myCondition("")
101
104
  }
102
105
  </p>
103
106
  <p>
104
107
  {
105
- /* Kết quả: nội dung của tôi khi điều kiện không hợp lệ */
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
  ## Tài Nguyên Bổ Sung
117
279
 
118
280
  Để biết thêm thông tin chi tiết về cấu hình và cách sử dụng, vui lòng tham khảo các tài nguyên sau: