@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
@@ -27,89 +27,197 @@ In Intlayer, l'annidamento viene realizzato tramite la funzione `nest`, che cons
27
27
 
28
28
  ## Configurazione dell'Annidamento
29
29
 
30
- Per configurare l'annidamento nel tuo progetto Intlayer, devi prima definire il contenuto base che desideri riutilizzare. Successivamente, in un modulo di contenuto separato, utilizzi la funzione `nest` per importare quel contenuto.
30
+ <Tabs group="framework">
31
+ <Tab label="React" value="react">
31
32
 
32
- ### Dizionario Base
33
+ To use nested content in a React component, leverage the `useIntlayer` hook from the `react-intlayer` package. This hook retrieves the correct content based on the specified key. Here's an example of how to use it:
33
34
 
34
- Di seguito è riportato un esempio di un dizionario base da annidare in un altro dizionario:
35
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
36
+ import type { FC } from "react";
37
+ import { useIntlayer } from "react-intlayer";
35
38
 
36
- ```typescript fileName="firstDictionary.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
37
- import { type Dictionary } from "intlayer";
39
+ const NestComponent: FC = () => {
40
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
41
+ "key_of_my_second_dictionary"
42
+ );
38
43
 
39
- const firstDictionary = {
40
- key: "key_of_my_first_dictionary",
41
- content: {
42
- content: "content",
43
- subContent: {
44
- contentNumber: 0,
45
- contentString: "string",
46
- },
47
- },
48
- } satisfies Dictionary;
44
+ return (
45
+ <div>
46
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
47
+ <p>Partial Nested Value: {partialNestedContent}</p>
48
+ </div>
49
+ );
50
+ };
49
51
 
50
- export default firstDictionary;
52
+ export default NestComponent;
51
53
  ```
52
54
 
53
- ```json fileName="firstDictionary.content.json" contentDeclarationFormat="json"
54
- {
55
- "$schema": "https://intlayer.org/schema.json",
56
- "key": "key_of_my_first_dictionary",
57
- "content": {
58
- "content": "content",
59
- "subContent": {
60
- "contentNumber": 0,
61
- "contentString": "string"
62
- }
63
- }
64
- }
55
+ </Tab>
56
+ <Tab label="Next.js" value="nextjs">
57
+
58
+ To use nested content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
59
+
60
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
61
+ "use client";
62
+
63
+ import type { FC } from "react";
64
+ import { useIntlayer } from "next-intlayer";
65
+
66
+ const NestComponent: FC = () => {
67
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
68
+ "key_of_my_second_dictionary"
69
+ );
70
+
71
+ return (
72
+ <div>
73
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
74
+ <p>Partial Nested Value: {partialNestedContent}</p>
75
+ </div>
76
+ );
77
+ };
78
+
79
+ export default NestComponent;
65
80
  ```
66
81
 
67
- ### Riferimento con Annidamento
82
+ </Tab>
83
+ <Tab label="Vue" value="vue">
68
84
 
69
- Ora, crea un altro modulo di contenuto che utilizza la funzione `nest` per fare riferimento al contenuto sopra. Puoi fare riferimento all'intero contenuto o a un valore specifico annidato:
85
+ To use nested content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
70
86
 
71
- ```typescript fileName="secondDictionary.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
72
- import { nest, type Dictionary } from "intlayer";
87
+ ```vue fileName="**/*.vue"
88
+ <script setup lang="ts">
89
+ import { useIntlayer } from "vue-intlayer";
73
90
 
74
- const myNestingContent = {
75
- key: "key_of_my_second_dictionary",
76
- content: {
77
- // Riferisce all'intero dizionario:
78
- fullNestedContent: nest("key_of_my_first_dictionary"),
79
- // Riferisce a un valore specifico annidato:
80
- partialNestedContent: nest(
81
- "key_of_my_first_dictionary",
82
- "subContent.contentNumber"
83
- ),
84
- },
85
- } satisfies Dictionary;
91
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
92
+ "key_of_my_second_dictionary"
93
+ );
94
+ </script>
86
95
 
87
- export default myNestingContent;
96
+ <template>
97
+ <div>
98
+ <p>Full Nested Content: {{ JSON.stringify(fullNestedContent) }}</p>
99
+ <p>Partial Nested Value: {{ partialNestedContent }}</p>
100
+ </div>
101
+ </template>
88
102
  ```
89
103
 
90
- ```json fileName="secondDictionary.content.json" contentDeclarationFormat="json"
91
- {
92
- "$schema": "https://intlayer.org/schema.json",
93
- "key": "key_of_my_second_dictionary",
94
- "content": {
95
- "fullNestedContent": {
96
- "nodeType": "nested",
97
- "nested": {
98
- "dictionaryKey": "key_of_my_first_dictionary"
99
- }
100
- },
101
- "partialNestedContent": {
102
- "nodeType": "nested",
103
- "nested": {
104
- "dictionaryKey": "key_of_my_first_dictionary",
105
- "path": "subContent.contentNumber"
106
- }
107
- }
108
- }
104
+ </Tab>
105
+ <Tab label="Svelte" value="svelte">
106
+
107
+ To use nested content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
108
+
109
+ ```svelte fileName="**/*.svelte"
110
+ <script lang="ts">
111
+ import { useIntlayer } from "svelte-intlayer";
112
+
113
+ const content = useIntlayer("key_of_my_second_dictionary");
114
+ </script>
115
+
116
+ <div>
117
+ <p>Full Nested Content: {JSON.stringify($content.fullNestedContent)}</p>
118
+ <p>Partial Nested Value: {$content.partialNestedContent}</p>
119
+ </div>
120
+ ```
121
+
122
+ </Tab>
123
+ <Tab label="Preact" value="preact">
124
+
125
+ To use nested content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
126
+
127
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
128
+ import type { FC } from "preact";
129
+ import { useIntlayer } from "preact-intlayer";
130
+
131
+ const NestComponent: FC = () => {
132
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
133
+ "key_of_my_second_dictionary"
134
+ );
135
+
136
+ return (
137
+ <div>
138
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
139
+ <p>Partial Nested Value: {partialNestedContent}</p>
140
+ </div>
141
+ );
142
+ };
143
+
144
+ export default NestComponent;
145
+ ```
146
+
147
+ </Tab>
148
+ <Tab label="Solid" value="solid">
149
+
150
+ To use nested content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
151
+
152
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
153
+ import type { Component } from "solid-js";
154
+ import { useIntlayer } from "solid-intlayer";
155
+
156
+ const NestComponent: Component = () => {
157
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
158
+ "key_of_my_second_dictionary"
159
+ );
160
+
161
+ return (
162
+ <div>
163
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
164
+ <p>Partial Nested Value: {partialNestedContent}</p>
165
+ </div>
166
+ );
167
+ };
168
+
169
+ export default NestComponent;
170
+ ```
171
+
172
+ </Tab>
173
+ <Tab label="Angular" value="angular">
174
+
175
+ To use nested content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
176
+
177
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
178
+ import { Component } from "@angular/core";
179
+ import { useIntlayer } from "angular-intlayer";
180
+
181
+ @Component({
182
+ selector: "app-nest",
183
+ template: `
184
+ <div>
185
+ <p>
186
+ Full Nested Content: {{ JSON.stringify(content().fullNestedContent) }}
187
+ </p>
188
+ <p>Partial Nested Value: {{ content().partialNestedContent }}</p>
189
+ </div>
190
+ `,
191
+ })
192
+ export class NestComponent {
193
+ content = useIntlayer("key_of_my_second_dictionary");
194
+ JSON = JSON;
109
195
  }
110
196
  ```
111
197
 
112
- Come secondo parametro, puoi specificare un percorso verso un valore annidato all'interno di quel contenuto. Quando non viene fornito alcun percorso, viene restituito l'intero contenuto del dizionario di riferimento.
198
+ </Tab>
199
+ <Tab label="Vanilla JS" value="vanilla">
200
+
201
+ To use nested content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
202
+
203
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
204
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
205
+
206
+ installIntlayer();
207
+
208
+ const content = useIntlayer("key_of_my_second_dictionary").onChange(
209
+ (newContent) => {
210
+ document.getElementById("nested")!.textContent =
211
+ newContent.partialNestedContent;
212
+ }
213
+ );
214
+
215
+ // Initial render
216
+ document.getElementById("nested")!.textContent = content.partialNestedContent;
217
+ ```
218
+
219
+ </Tab>
220
+ </Tabs>
113
221
 
114
222
  ## Utilizzo dell'Annidamento con React Intlayer
115
223
 
@@ -29,18 +29,358 @@ author: aymericzip
29
29
 
30
30
  ## Come funziona il plurale
31
31
 
32
- In Intlayer, il contenuto plurale viene ottenuto tramite la funzione `plural`, che mappa le categorie plurali CLDR, `zero`, `one`, `two`, `few`, `many`, `other`, al loro contenuto corrispondente. La categoria corretta viene selezionata automaticamente in base alla locale attiva e a un valore di conteggio, utilizzando l'API integrata nella piattaforma [`Intl.PluralRules`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules).
32
+ <Tabs group="framework">
33
+ <Tab label="React" value="react">
33
34
 
34
- A differenza di [`enu`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/enumeration.md), che seleziona il contenuto in base a intervalli numerici definiti da te, `plural` delega la selezione alle regole CLDR. Questo è ciò che lo rende scalabile per lingue con regole di pluralizzazione complesse, come il russo, il polacco, l'arabo o il gallese, senza dover scrivere manualmente la logica del modulo.
35
+ To use plural content inside a React component, retrieve it via the `useIntlayer` hook and call it with a count. The active locale and the count are combined to pick the matching CLDR category.
35
36
 
37
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
38
+ import type { FC } from "react";
39
+ import { useIntlayer } from "react-intlayer";
40
+
41
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
42
+ const { totalOpenings } = useIntlayer("total_openings");
43
+
44
+ return (
45
+ <div>
46
+ <p>{totalOpenings(count)}</p>
47
+ </div>
48
+ );
49
+ };
50
+
51
+ export default OpeningsComponent;
52
+ ```
53
+
54
+ </Tab>
55
+ <Tab label="Next.js" value="nextjs">
56
+
57
+ To use plural content in Next.js Client Components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
58
+
59
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
60
+ "use client";
61
+
62
+ import type { FC } from "react";
63
+ import { useIntlayer } from "next-intlayer";
64
+
65
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
66
+ const { totalOpenings } = useIntlayer("total_openings");
67
+
68
+ return (
69
+ <div>
70
+ <p>{totalOpenings(count)}</p>
71
+ </div>
72
+ );
73
+ };
74
+
75
+ export default OpeningsComponent;
76
+ ```
77
+
78
+ </Tab>
79
+ <Tab label="Vue" value="vue">
80
+
81
+ To use plural content in Vue components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
82
+
83
+ ```vue fileName="**/*.vue"
84
+ <script setup lang="ts">
85
+ import { useIntlayer } from "vue-intlayer";
86
+
87
+ defineProps<{ count: number }>();
88
+
89
+ const { totalOpenings } = useIntlayer("total_openings");
90
+ </script>
91
+
92
+ <template>
93
+ <div>
94
+ <p>{{ totalOpenings(count) }}</p>
95
+ </div>
96
+ </template>
97
+ ```
98
+
99
+ </Tab>
100
+ <Tab label="Svelte" value="svelte">
101
+
102
+ To use plural content in Svelte components, retrieve it via the `useIntlayer` hook and call it with a count. The store is accessed with `$`. Here's an example:
103
+
104
+ ```svelte fileName="**/*.svelte"
105
+ <script lang="ts">
106
+ import { useIntlayer } from "svelte-intlayer";
107
+
108
+ export let count: number;
109
+
110
+ const content = useIntlayer("total_openings");
111
+ </script>
112
+
113
+ <div>
114
+ <p>{$content.totalOpenings(count)}</p>
115
+ </div>
116
+ ```
117
+
118
+ </Tab>
119
+ <Tab label="Preact" value="preact">
120
+
121
+ To use plural content in Preact components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
122
+
123
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
124
+ import type { FC } from "preact";
125
+ import { useIntlayer } from "preact-intlayer";
126
+
127
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
128
+ const { totalOpenings } = useIntlayer("total_openings");
129
+
130
+ return (
131
+ <div>
132
+ <p>{totalOpenings(count)}</p>
133
+ </div>
134
+ );
135
+ };
136
+
137
+ export default OpeningsComponent;
138
+ ```
139
+
140
+ </Tab>
141
+ <Tab label="Solid" value="solid">
142
+
143
+ To use plural content in SolidJS components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
144
+
145
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
146
+ import type { Component } from "solid-js";
147
+ import { useIntlayer } from "solid-intlayer";
148
+
149
+ const OpeningsComponent: Component<{ count: number }> = (props) => {
150
+ const { totalOpenings } = useIntlayer("total_openings");
151
+
152
+ return (
153
+ <div>
154
+ <p>{totalOpenings(props.count)}</p>
155
+ </div>
156
+ );
157
+ };
158
+
159
+ export default OpeningsComponent;
160
+ ```
161
+
162
+ </Tab>
163
+ <Tab label="Angular" value="angular">
164
+
165
+ To use plural content in Angular components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
166
+
167
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
168
+ import { Component, Input } from "@angular/core";
169
+ import { useIntlayer } from "angular-intlayer";
170
+
171
+ @Component({
172
+ selector: "app-openings",
173
+ template: `
174
+ <div>
175
+ <p>{{ content().totalOpenings(count) }}</p>
176
+ </div>
177
+ `,
178
+ })
179
+ export class OpeningsComponent {
180
+ @Input() count!: number;
181
+
182
+ content = useIntlayer("total_openings");
183
+ }
184
+ ```
185
+
186
+ </Tab>
187
+ <Tab label="Vanilla JS" value="vanilla">
188
+
189
+ To use plural content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
190
+
191
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
192
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
193
+
194
+ installIntlayer();
195
+
196
+ const content = useIntlayer("total_openings").onChange((newContent) => {
197
+ document.getElementById("openings")!.textContent =
198
+ newContent.totalOpenings(5);
199
+ });
200
+
201
+ // Initial render
202
+ document.getElementById("openings")!.textContent = content.totalOpenings(5);
203
+ ```
204
+
205
+ </Tab>
206
+ </Tabs>
36
207
  ## Quando usare `plural` vs `enu`
37
208
 
38
- | Caso d'uso | Helper |
39
- | ----------------------------------------------------------------------------- | -------- |
40
- | Forme plurali grammaticali basate sulla locale (una mela / due mele / 5 mele) | `plural` |
41
- | Intervalli numerici personalizzati (`<5`, `>=10`) o bucket non CLDR | `enu` |
209
+ <Tabs group="framework">
210
+ <Tab label="React" value="react">
211
+
212
+ To use plural content inside a React component, retrieve it via the `useIntlayer` hook and call it with a count. The active locale and the count are combined to pick the matching CLDR category.
213
+
214
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
215
+ import type { FC } from "react";
216
+ import { useIntlayer } from "react-intlayer";
217
+
218
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
219
+ const { totalOpenings } = useIntlayer("total_openings");
220
+
221
+ return (
222
+ <div>
223
+ <p>{totalOpenings(count)}</p>
224
+ </div>
225
+ );
226
+ };
227
+
228
+ export default OpeningsComponent;
229
+ ```
230
+
231
+ </Tab>
232
+ <Tab label="Next.js" value="nextjs">
233
+
234
+ To use plural content in Next.js Client Components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
235
+
236
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
237
+ "use client";
238
+
239
+ import type { FC } from "react";
240
+ import { useIntlayer } from "next-intlayer";
241
+
242
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
243
+ const { totalOpenings } = useIntlayer("total_openings");
244
+
245
+ return (
246
+ <div>
247
+ <p>{totalOpenings(count)}</p>
248
+ </div>
249
+ );
250
+ };
251
+
252
+ export default OpeningsComponent;
253
+ ```
254
+
255
+ </Tab>
256
+ <Tab label="Vue" value="vue">
257
+
258
+ To use plural content in Vue components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
259
+
260
+ ```vue fileName="**/*.vue"
261
+ <script setup lang="ts">
262
+ import { useIntlayer } from "vue-intlayer";
263
+
264
+ defineProps<{ count: number }>();
265
+
266
+ const { totalOpenings } = useIntlayer("total_openings");
267
+ </script>
268
+
269
+ <template>
270
+ <div>
271
+ <p>{{ totalOpenings(count) }}</p>
272
+ </div>
273
+ </template>
274
+ ```
275
+
276
+ </Tab>
277
+ <Tab label="Svelte" value="svelte">
278
+
279
+ To use plural content in Svelte components, retrieve it via the `useIntlayer` hook and call it with a count. The store is accessed with `$`. Here's an example:
280
+
281
+ ```svelte fileName="**/*.svelte"
282
+ <script lang="ts">
283
+ import { useIntlayer } from "svelte-intlayer";
284
+
285
+ export let count: number;
286
+
287
+ const content = useIntlayer("total_openings");
288
+ </script>
289
+
290
+ <div>
291
+ <p>{$content.totalOpenings(count)}</p>
292
+ </div>
293
+ ```
294
+
295
+ </Tab>
296
+ <Tab label="Preact" value="preact">
297
+
298
+ To use plural content in Preact components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
299
+
300
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
301
+ import type { FC } from "preact";
302
+ import { useIntlayer } from "preact-intlayer";
303
+
304
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
305
+ const { totalOpenings } = useIntlayer("total_openings");
306
+
307
+ return (
308
+ <div>
309
+ <p>{totalOpenings(count)}</p>
310
+ </div>
311
+ );
312
+ };
313
+
314
+ export default OpeningsComponent;
315
+ ```
316
+
317
+ </Tab>
318
+ <Tab label="Solid" value="solid">
319
+
320
+ To use plural content in SolidJS components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
321
+
322
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
323
+ import type { Component } from "solid-js";
324
+ import { useIntlayer } from "solid-intlayer";
325
+
326
+ const OpeningsComponent: Component<{ count: number }> = (props) => {
327
+ const { totalOpenings } = useIntlayer("total_openings");
328
+
329
+ return (
330
+ <div>
331
+ <p>{totalOpenings(props.count)}</p>
332
+ </div>
333
+ );
334
+ };
335
+
336
+ export default OpeningsComponent;
337
+ ```
338
+
339
+ </Tab>
340
+ <Tab label="Angular" value="angular">
341
+
342
+ To use plural content in Angular components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
343
+
344
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
345
+ import { Component, Input } from "@angular/core";
346
+ import { useIntlayer } from "angular-intlayer";
347
+
348
+ @Component({
349
+ selector: "app-openings",
350
+ template: `
351
+ <div>
352
+ <p>{{ content().totalOpenings(count) }}</p>
353
+ </div>
354
+ `,
355
+ })
356
+ export class OpeningsComponent {
357
+ @Input() count!: number;
358
+
359
+ content = useIntlayer("total_openings");
360
+ }
361
+ ```
362
+
363
+ </Tab>
364
+ <Tab label="Vanilla JS" value="vanilla">
365
+
366
+ To use plural content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
367
+
368
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
369
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
370
+
371
+ installIntlayer();
372
+
373
+ const content = useIntlayer("total_openings").onChange((newContent) => {
374
+ document.getElementById("openings")!.textContent =
375
+ newContent.totalOpenings(5);
376
+ });
377
+
378
+ // Initial render
379
+ document.getElementById("openings")!.textContent = content.totalOpenings(5);
380
+ ```
42
381
 
43
- Se ti rivolgi solo all'inglese o all'italiano (che hanno solo `one` / `other`), entrambi funzionano. Per qualsiasi lingua con distinzioni `few` / `many` / `two`, preferisci `plural`.
382
+ </Tab>
383
+ </Tabs>
44
384
 
45
385
  ## Configurazione del contenuto plurale
46
386