@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
@@ -83,7 +83,10 @@ Trong ví dụ này, `enu` ánh xạ các điều kiện khác nhau tới nội
83
83
 
84
84
  ## Sử dụng Enumeration với React Intlayer
85
85
 
86
- Để sử dụng phép liệt kê trong một component React, bạn có thể tận dụng hook `useIntlayer` từ package `react-intlayer`. Hook này sẽ lấy nội dung chính xác dựa trên ID được chỉ định. Dưới đây là ví dụ về cách sử dụng:
86
+ <Tabs group="framework">
87
+ <Tab label="React" value="react">
88
+
89
+ To use enumeration in a React component, you can leverage the `useIntlayer` hook from the `react-intlayer` package. This hook retrieves the correct content based on the specified ID. Here's an example of how to use it:
87
90
 
88
91
  ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
89
92
  import type { FC } from "react";
@@ -96,32 +99,449 @@ const CarComponent: FC = () => {
96
99
  <div>
97
100
  <p>
98
101
  {
99
- numberOfCar(0) // Kết quả: Không có xe
102
+ numberOfCar(0) // Output: No cars
100
103
  }
101
104
  </p>
102
105
  <p>
103
106
  {
104
- numberOfCar(6) // Kết quả: Một vài chiếc xe
107
+ numberOfCar(6) // Output: Some cars
105
108
  }
106
109
  </p>
107
110
  <p>
108
111
  {
109
- numberOfCar(20) // Kết quả: Nhiều chiếc xe
112
+ numberOfCar(20) // Output: Many cars
110
113
  }
111
114
  </p>
112
115
  <p>
113
116
  {
114
- numberOfCar(0.01) // Kết quả: Giá trị dự phòng
117
+ numberOfCar(0.01) // Output: Fallback value
115
118
  }
116
119
  </p>
120
+ </div>
121
+ );
122
+ };
123
+ ```
124
+
125
+ </Tab>
126
+ <Tab label="Next.js" value="nextjs">
127
+
128
+ To use enumeration in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
129
+
130
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
131
+ "use client";
132
+
133
+ import type { FC } from "react";
134
+ import { useIntlayer } from "next-intlayer";
135
+
136
+ const CarComponent: FC = () => {
137
+ const { numberOfCar } = useIntlayer("car_count");
138
+
139
+ return (
140
+ <div>
141
+ <p>{numberOfCar(6)}</p>
142
+ </div>
143
+ );
144
+ };
145
+
146
+ export default CarComponent;
147
+ ```
148
+
149
+ </Tab>
150
+ <Tab label="Vue" value="vue">
151
+
152
+ To use enumeration in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
153
+
154
+ ```vue fileName="**/*.vue"
155
+ <script setup lang="ts">
156
+ import { useIntlayer } from "vue-intlayer";
157
+
158
+ const { numberOfCar } = useIntlayer("car_count");
159
+ </script>
160
+
161
+ <template>
162
+ <div>
163
+ <p>{{ numberOfCar(6) }}</p>
164
+ </div>
165
+ </template>
166
+ ```
167
+
168
+ </Tab>
169
+ <Tab label="Svelte" value="svelte">
170
+
171
+ To use enumeration in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
172
+
173
+ ```svelte fileName="**/*.svelte"
174
+ <script lang="ts">
175
+ import { useIntlayer } from "svelte-intlayer";
176
+
177
+ const content = useIntlayer("car_count");
178
+ </script>
179
+
180
+ <div>
181
+ <p>{$content.numberOfCar(6)}</p>
182
+ </div>
183
+ ```
184
+
185
+ </Tab>
186
+ <Tab label="Preact" value="preact">
187
+
188
+ To use enumeration in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
189
+
190
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
191
+ import type { FC } from "preact";
192
+ import { useIntlayer } from "preact-intlayer";
193
+
194
+ const CarComponent: FC = () => {
195
+ const { numberOfCar } = useIntlayer("car_count");
196
+
197
+ return (
198
+ <div>
199
+ <p>{numberOfCar(6)}</p>
200
+ </div>
201
+ );
202
+ };
203
+
204
+ export default CarComponent;
205
+ ```
206
+
207
+ </Tab>
208
+ <Tab label="Solid" value="solid">
209
+
210
+ To use enumeration in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
211
+
212
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
213
+ import type { Component } from "solid-js";
214
+ import { useIntlayer } from "solid-intlayer";
215
+
216
+ const CarComponent: Component = () => {
217
+ const { numberOfCar } = useIntlayer("car_count");
218
+
219
+ return (
220
+ <div>
221
+ <p>{numberOfCar(6)}</p>
222
+ </div>
223
+ );
224
+ };
225
+
226
+ export default CarComponent;
227
+ ```
228
+
229
+ </Tab>
230
+ <Tab label="Angular" value="angular">
231
+
232
+ To use enumeration in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
233
+
234
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
235
+ import { Component } from "@angular/core";
236
+ import { useIntlayer } from "angular-intlayer";
237
+
238
+ @Component({
239
+ selector: "app-car",
240
+ template: `
241
+ <div>
242
+ <p>{{ content().numberOfCar(6) }}</p>
243
+ </div>
244
+ `,
245
+ })
246
+ export class CarComponent {
247
+ content = useIntlayer("car_count");
248
+ }
249
+ ```
250
+
251
+ </Tab>
252
+ <Tab label="Vanilla JS" value="vanilla">
253
+
254
+ To use enumeration 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("car_count").onChange((newContent) => {
262
+ document.getElementById("cars")!.textContent = newContent.numberOfCar(6);
263
+ });
264
+
265
+ // Initial render
266
+ document.getElementById("cars")!.textContent = content.numberOfCar(6);
267
+ ```
268
+
269
+ </Tab>
270
+ </Tabs>
271
+
272
+ ## Tài nguyên bổ sung
273
+
274
+ Để biết thêm thông tin chi tiết về cấu hình và cách sử dụng, hãy tham khảo các tài nguyên sau:
275
+
276
+ - [Tài liệu CLI Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/index.md)
277
+ - [Tài liệu React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_with_create_react_app.md)
278
+ - [Tài liệu Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_with_nextjs_15.md)
279
+
280
+ Những tài nguyên này cung cấp thêm những hiểu biết sâu sắc về cách thiết lập và sử dụng Intlayer trong các môi trường khác nhau và với các framework đa dạng.
281
+
282
+ ### Using Ordinal Enumeration
283
+
284
+ <Tabs group="framework">
285
+ <Tab label="React" value="react">
286
+
287
+ To use this in a React component, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
288
+
289
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
290
+ import type { FC } from "react";
291
+ import { useIntlayer } from "react-intlayer";
292
+
293
+ const RankingComponent: FC<{ count: number }> = ({ count }) => {
294
+ const { ordinal } = useIntlayer("ranking_component");
295
+
296
+ // Get the last digit to determine the correct suffix
297
+ const lastDigit = Math.abs(count) % 10;
298
+
299
+ return (
300
+ <div>
117
301
  <p>
118
302
  {
119
- numberOfCar(20) // Kết quả: Nhiều xe
303
+ ordinal(lastDigit)({ count }) // e.g., "5th place" for count=5
120
304
  }
121
305
  </p>
306
+ </div>
307
+ );
308
+ };
309
+ ```
310
+
311
+ </Tab>
312
+ <Tab label="Next.js" value="nextjs">
313
+
314
+ To use this in Next.js Client Components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
315
+
316
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
317
+ "use client";
318
+
319
+ import type { FC } from "react";
320
+ import { useIntlayer } from "next-intlayer";
321
+
322
+ const RankingComponent: FC<{ count: number }> = ({ count }) => {
323
+ const { ordinal } = useIntlayer("ranking_component");
324
+ const lastDigit = Math.abs(count) % 10;
325
+
326
+ return (
327
+ <div>
328
+ <p>{ordinal(lastDigit)({ count })}</p>
329
+ </div>
330
+ );
331
+ };
332
+
333
+ export default RankingComponent;
334
+ ```
335
+
336
+ </Tab>
337
+ <Tab label="Vue" value="vue">
338
+
339
+ To use this in Vue components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
340
+
341
+ ```vue fileName="**/*.vue"
342
+ <script setup lang="ts">
343
+ import { useIntlayer } from "vue-intlayer";
344
+
345
+ defineProps<{ count: number }>();
346
+
347
+ const { ordinal } = useIntlayer("ranking_component");
348
+ </script>
349
+
350
+ <template>
351
+ <div>
352
+ <p>{{ ordinal(Math.abs(count) % 10)({ count }) }}</p>
353
+ </div>
354
+ </template>
355
+ ```
356
+
357
+ </Tab>
358
+ <Tab label="Svelte" value="svelte">
359
+
360
+ To use this in Svelte components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
361
+
362
+ ```svelte fileName="**/*.svelte"
363
+ <script lang="ts">
364
+ import { useIntlayer } from "svelte-intlayer";
365
+
366
+ export let count: number;
367
+
368
+ const content = useIntlayer("ranking_component");
369
+ $: lastDigit = Math.abs(count) % 10;
370
+ </script>
371
+
372
+ <div>
373
+ <p>{$content.ordinal(lastDigit)({ count })}</p>
374
+ </div>
375
+ ```
376
+
377
+ </Tab>
378
+ <Tab label="Preact" value="preact">
379
+
380
+ To use this in Preact components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
381
+
382
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
383
+ import type { FC } from "preact";
384
+ import { useIntlayer } from "preact-intlayer";
385
+
386
+ const RankingComponent: FC<{ count: number }> = ({ count }) => {
387
+ const { ordinal } = useIntlayer("ranking_component");
388
+ const lastDigit = Math.abs(count) % 10;
389
+
390
+ return (
391
+ <div>
392
+ <p>{ordinal(lastDigit)({ count })}</p>
393
+ </div>
394
+ );
395
+ };
396
+
397
+ export default RankingComponent;
398
+ ```
399
+
400
+ </Tab>
401
+ <Tab label="Solid" value="solid">
402
+
403
+ To use this in SolidJS components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
404
+
405
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
406
+ import type { Component } from "solid-js";
407
+ import { useIntlayer } from "solid-intlayer";
408
+
409
+ const RankingComponent: Component<{ count: number }> = (props) => {
410
+ const { ordinal } = useIntlayer("ranking_component");
411
+
412
+ return (
413
+ <div>
414
+ <p>{ordinal(Math.abs(props.count) % 10)({ count: props.count })}</p>
415
+ </div>
416
+ );
417
+ };
418
+
419
+ export default RankingComponent;
420
+ ```
421
+
422
+ </Tab>
423
+ <Tab label="Angular" value="angular">
424
+
425
+ To use this in Angular components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
426
+
427
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
428
+ import { Component, Input } from "@angular/core";
429
+ import { useIntlayer } from "angular-intlayer";
430
+
431
+ @Component({
432
+ selector: "app-ranking",
433
+ template: `
434
+ <div>
435
+ <p>{{ content().ordinal(lastDigit())({ count }) }}</p>
436
+ </div>
437
+ `,
438
+ })
439
+ export class RankingComponent {
440
+ @Input() count!: number;
441
+
442
+ content = useIntlayer("ranking_component");
443
+
444
+ lastDigit() {
445
+ return Math.abs(this.count) % 10;
446
+ }
447
+ }
448
+ ```
449
+
450
+ </Tab>
451
+ <Tab label="Vanilla JS" value="vanilla">
452
+
453
+ To use this with `vanilla-intlayer`, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
454
+
455
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
456
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
457
+
458
+ installIntlayer();
459
+
460
+ const content = useIntlayer("ranking_component");
461
+ const lastDigit = Math.abs(5) % 10;
462
+
463
+ document.getElementById("ranking")!.textContent = content.ordinal(lastDigit)({
464
+ count: 5,
465
+ });
466
+ ```
467
+
468
+ </Tab>
469
+ </Tabs>
470
+
471
+ ## Combining Enumeration with Insert for Ordinal Numbers
472
+
473
+ A common use case is displaying ordinal numbers (1st, 2nd, 3rd, etc.). You can combine `enu` with `insert` to create dynamic ordinal content:
474
+
475
+ ```typescript fileName="**/*.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
476
+ import { enu, insert, type Dictionary } from "intlayer";
477
+
478
+ const rankingContent = {
479
+ key: "ranking_component",
480
+ content: {
481
+ ordinal: enu({
482
+ 1: insert("{{count}}st place"),
483
+ 2: insert("{{count}}nd place"),
484
+ 3: insert("{{count}}rd place"),
485
+ fallback: insert("{{count}}th place"),
486
+ }),
487
+ },
488
+ } satisfies Dictionary;
489
+
490
+ export default rankingContent;
491
+ ```
492
+
493
+ ```json fileName="**/*.content.json" contentDeclarationFormat="json"
494
+ {
495
+ "$schema": "https://intlayer.org/schema.json",
496
+ "key": "ranking_component",
497
+ "content": {
498
+ "ordinal": {
499
+ "nodeType": "enumeration",
500
+ "enumeration": {
501
+ "1": {
502
+ "nodeType": "insertion",
503
+ "insertion": "{{count}}st place"
504
+ },
505
+ "2": {
506
+ "nodeType": "insertion",
507
+ "insertion": "{{count}}nd place"
508
+ },
509
+ "3": {
510
+ "nodeType": "insertion",
511
+ "insertion": "{{count}}rd place"
512
+ },
513
+ "fallback": {
514
+ "nodeType": "insertion",
515
+ "insertion": "{{count}}th place"
516
+ }
517
+ }
518
+ }
519
+ }
520
+ }
521
+ ```
522
+
523
+ ### Using Ordinal Enumeration
524
+
525
+ <Tabs group="framework">
526
+ <Tab label="React" value="react">
527
+
528
+ To use this in a React component, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
529
+
530
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
531
+ import type { FC } from "react";
532
+ import { useIntlayer } from "react-intlayer";
533
+
534
+ const RankingComponent: FC<{ count: number }> = ({ count }) => {
535
+ const { ordinal } = useIntlayer("ranking_component");
536
+
537
+ // Get the last digit to determine the correct suffix
538
+ const lastDigit = Math.abs(count) % 10;
539
+
540
+ return (
541
+ <div>
122
542
  <p>
123
543
  {
124
- numberOfCar(0.01) // Kết quả: Giá trị dự phòng
544
+ ordinal(lastDigit)({ count }) // e.g., "5th place" for count=5
125
545
  }
126
546
  </p>
127
547
  </div>
@@ -129,14 +549,171 @@ const CarComponent: FC = () => {
129
549
  };
130
550
  ```
131
551
 
132
- Trong ví dụ này, component tự động điều chỉnh kết quả hiển thị dựa trên số lượng xe. Nội dung chính xác được chọn tự động, tùy thuộc vào phạm vi được chỉ định.
552
+ </Tab>
553
+ <Tab label="Next.js" value="nextjs">
133
554
 
134
- ## Tài nguyên bổ sung
555
+ To use this in Next.js Client Components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
135
556
 
136
- Để biết thêm thông tin chi tiết về cấu hình và cách sử dụng, hãy tham khảo các tài nguyên sau:
557
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
558
+ "use client";
137
559
 
138
- - [Tài liệu CLI Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/index.md)
139
- - [Tài liệu React Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_with_create_react_app.md)
140
- - [Tài liệu Next Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_with_nextjs_15.md)
560
+ import type { FC } from "react";
561
+ import { useIntlayer } from "next-intlayer";
141
562
 
142
- Những tài nguyên này cung cấp thêm những hiểu biết sâu sắc về cách thiết lập và sử dụng Intlayer trong các môi trường khác nhau và với các framework đa dạng.
563
+ const RankingComponent: FC<{ count: number }> = ({ count }) => {
564
+ const { ordinal } = useIntlayer("ranking_component");
565
+ const lastDigit = Math.abs(count) % 10;
566
+
567
+ return (
568
+ <div>
569
+ <p>{ordinal(lastDigit)({ count })}</p>
570
+ </div>
571
+ );
572
+ };
573
+
574
+ export default RankingComponent;
575
+ ```
576
+
577
+ </Tab>
578
+ <Tab label="Vue" value="vue">
579
+
580
+ To use this in Vue components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
581
+
582
+ ```vue fileName="**/*.vue"
583
+ <script setup lang="ts">
584
+ import { useIntlayer } from "vue-intlayer";
585
+
586
+ defineProps<{ count: number }>();
587
+
588
+ const { ordinal } = useIntlayer("ranking_component");
589
+ </script>
590
+
591
+ <template>
592
+ <div>
593
+ <p>{{ ordinal(Math.abs(count) % 10)({ count }) }}</p>
594
+ </div>
595
+ </template>
596
+ ```
597
+
598
+ </Tab>
599
+ <Tab label="Svelte" value="svelte">
600
+
601
+ To use this in Svelte components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
602
+
603
+ ```svelte fileName="**/*.svelte"
604
+ <script lang="ts">
605
+ import { useIntlayer } from "svelte-intlayer";
606
+
607
+ export let count: number;
608
+
609
+ const content = useIntlayer("ranking_component");
610
+ $: lastDigit = Math.abs(count) % 10;
611
+ </script>
612
+
613
+ <div>
614
+ <p>{$content.ordinal(lastDigit)({ count })}</p>
615
+ </div>
616
+ ```
617
+
618
+ </Tab>
619
+ <Tab label="Preact" value="preact">
620
+
621
+ To use this in Preact components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
622
+
623
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
624
+ import type { FC } from "preact";
625
+ import { useIntlayer } from "preact-intlayer";
626
+
627
+ const RankingComponent: FC<{ count: number }> = ({ count }) => {
628
+ const { ordinal } = useIntlayer("ranking_component");
629
+ const lastDigit = Math.abs(count) % 10;
630
+
631
+ return (
632
+ <div>
633
+ <p>{ordinal(lastDigit)({ count })}</p>
634
+ </div>
635
+ );
636
+ };
637
+
638
+ export default RankingComponent;
639
+ ```
640
+
641
+ </Tab>
642
+ <Tab label="Solid" value="solid">
643
+
644
+ To use this in SolidJS components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
645
+
646
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
647
+ import type { Component } from "solid-js";
648
+ import { useIntlayer } from "solid-intlayer";
649
+
650
+ const RankingComponent: Component<{ count: number }> = (props) => {
651
+ const { ordinal } = useIntlayer("ranking_component");
652
+
653
+ return (
654
+ <div>
655
+ <p>{ordinal(Math.abs(props.count) % 10)({ count: props.count })}</p>
656
+ </div>
657
+ );
658
+ };
659
+
660
+ export default RankingComponent;
661
+ ```
662
+
663
+ </Tab>
664
+ <Tab label="Angular" value="angular">
665
+
666
+ To use this in Angular components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
667
+
668
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
669
+ import { Component, Input } from "@angular/core";
670
+ import { useIntlayer } from "angular-intlayer";
671
+
672
+ @Component({
673
+ selector: "app-ranking",
674
+ template: `
675
+ <div>
676
+ <p>{{ content().ordinal(lastDigit())({ count }) }}</p>
677
+ </div>
678
+ `,
679
+ })
680
+ export class RankingComponent {
681
+ @Input() count!: number;
682
+
683
+ content = useIntlayer("ranking_component");
684
+
685
+ lastDigit() {
686
+ return Math.abs(this.count) % 10;
687
+ }
688
+ }
689
+ ```
690
+
691
+ </Tab>
692
+ <Tab label="Vanilla JS" value="vanilla">
693
+
694
+ To use this with `vanilla-intlayer`, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
695
+
696
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
697
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
698
+
699
+ installIntlayer();
700
+
701
+ const content = useIntlayer("ranking_component");
702
+ const lastDigit = Math.abs(5) % 10;
703
+
704
+ document.getElementById("ranking")!.textContent = content.ordinal(lastDigit)({
705
+ count: 5,
706
+ });
707
+ ```
708
+
709
+ </Tab>
710
+ </Tabs>
711
+ ## Additional Resources
712
+
713
+ For more detailed information on configuration and usage, refer to the following resources:
714
+
715
+ - [Intlayer CLI Documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md)
716
+ - [React Intlayer Documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_create_react_app.md)
717
+ - [Next Intlayer Documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_15.md)
718
+
719
+ These resources provide further insights into the setup and usage of Intlayer in different environments and with various frameworks.