@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,93 +27,204 @@ Dans Intlayer, l'imbrication est réalisée via la fonction `nest`, qui vous per
27
27
 
28
28
  ## Configuration de l'imbrication
29
29
 
30
- Pour configurer l'imbrication dans votre projet Intlayer, vous devez d'abord définir le contenu de base que vous souhaitez réutiliser. Ensuite, dans un module de contenu séparé, vous utilisez la fonction `nest` pour importer ce contenu.
31
-
32
- ### Dictionnaire de base
33
-
34
- Voici un exemple de dictionnaire de base à imbriquer dans un autre dictionnaire :
35
-
36
- ```typescript fileName="firstDictionary.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
37
- import { type Dictionary } from "intlayer";
38
-
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;
49
-
50
- export default firstDictionary;
51
- ```
52
-
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
- }
30
+ <Tabs group="framework">
31
+ <Tab label="React" value="react">
32
+
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:
34
+
35
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
36
+ import type { FC } from "react";
37
+ import { useIntlayer } from "react-intlayer";
38
+
39
+ const NestComponent: FC = () => {
40
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
41
+ "key_of_my_second_dictionary"
42
+ );
43
+
44
+ return (
45
+ <div>
46
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
47
+ <p>Partial Nested Value: {partialNestedContent}</p>
48
+ </div>
49
+ );
50
+ };
51
+
52
+ export default NestComponent;
53
+ ```
54
+
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;
80
+ ```
81
+
82
+ </Tab>
83
+ <Tab label="Vue" value="vue">
84
+
85
+ To use nested content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
86
+
87
+ ```vue fileName="**/*.vue"
88
+ <script setup lang="ts">
89
+ import { useIntlayer } from "vue-intlayer";
90
+
91
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
92
+ "key_of_my_second_dictionary"
93
+ );
94
+ </script>
95
+
96
+ <template>
97
+ <div>
98
+ <p>Full Nested Content: {{ JSON.stringify(fullNestedContent) }}</p>
99
+ <p>Partial Nested Value: {{ partialNestedContent }}</p>
100
+ </div>
101
+ </template>
102
+ ```
103
+
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;
64
195
  }
65
196
  ```
66
197
 
67
- ### Référencement avec Nest
68
-
69
- Créez maintenant un autre module de contenu qui utilise la fonction `nest` pour référencer le contenu ci-dessus. Vous pouvez référencer l'intégralité du contenu ou une valeur imbriquée spécifique :
70
-
71
- ```typescript fileName="secondDictionary.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
72
- import { nest, type Dictionary } from "intlayer";
73
-
74
- const myNestingContent = {
75
- key: "key_of_my_second_dictionary",
76
- content: {
77
- // Référence l'intégralité du dictionnaire :
78
- fullNestedContent: nest("key_of_my_first_dictionary"),
79
- // Référence une valeur imbriquée spécifique :
80
- partialNestedContent: nest(
81
- "key_of_my_first_dictionary",
82
- "subContent.contentNumber"
83
- ),
84
- },
85
- } satisfies Dictionary;
86
-
87
- export default myNestingContent;
88
- ```
89
-
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
- }
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;
108
212
  }
109
- }
213
+ );
214
+
215
+ // Initial render
216
+ document.getElementById("nested")!.textContent = content.partialNestedContent;
110
217
  ```
111
218
 
112
- En tant que deuxième paramètre, vous pouvez spécifier un chemin vers une valeur imbriquée dans ce contenu. Lorsqu'aucun chemin n'est fourni, l'intégralité du contenu du dictionnaire référencé est retournée.
219
+ </Tab>
220
+ </Tabs>
113
221
 
114
222
  ## Utilisation de l'imbrication avec React Intlayer
115
223
 
116
- Pour utiliser du contenu imbriqué dans un composant React, utilisez le hook `useIntlayer` du package `react-intlayer`. Ce hook récupère le contenu correct en fonction de la clé spécifiée. Voici un exemple d'utilisation :
224
+ <Tabs group="framework">
225
+ <Tab label="React" value="react">
226
+
227
+ 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:
117
228
 
118
229
  ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
119
230
  import type { FC } from "react";
@@ -126,14 +237,35 @@ const NestComponent: FC = () => {
126
237
 
127
238
  return (
128
239
  <div>
129
- <p>
130
- Contenu Imbriqué Complet : {JSON.stringify(fullNestedContent)}
131
- {/* Sortie : {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
132
- </p>
133
- <p>
134
- Valeur Imbriquée Partielle : {partialNestedContent}
135
- {/* Sortie : 0 */}
136
- </p>
240
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
241
+ <p>Partial Nested Value: {partialNestedContent}</p>
242
+ </div>
243
+ );
244
+ };
245
+
246
+ export default NestComponent;
247
+ ```
248
+
249
+ </Tab>
250
+ <Tab label="Next.js" value="nextjs">
251
+
252
+ To use nested content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
253
+
254
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
255
+ "use client";
256
+
257
+ import type { FC } from "react";
258
+ import { useIntlayer } from "next-intlayer";
259
+
260
+ const NestComponent: FC = () => {
261
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
262
+ "key_of_my_second_dictionary"
263
+ );
264
+
265
+ return (
266
+ <div>
267
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
268
+ <p>Partial Nested Value: {partialNestedContent}</p>
137
269
  </div>
138
270
  );
139
271
  };
@@ -141,6 +273,145 @@ const NestComponent: FC = () => {
141
273
  export default NestComponent;
142
274
  ```
143
275
 
276
+ </Tab>
277
+ <Tab label="Vue" value="vue">
278
+
279
+ To use nested content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
280
+
281
+ ```vue fileName="**/*.vue"
282
+ <script setup lang="ts">
283
+ import { useIntlayer } from "vue-intlayer";
284
+
285
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
286
+ "key_of_my_second_dictionary"
287
+ );
288
+ </script>
289
+
290
+ <template>
291
+ <div>
292
+ <p>Full Nested Content: {{ JSON.stringify(fullNestedContent) }}</p>
293
+ <p>Partial Nested Value: {{ partialNestedContent }}</p>
294
+ </div>
295
+ </template>
296
+ ```
297
+
298
+ </Tab>
299
+ <Tab label="Svelte" value="svelte">
300
+
301
+ To use nested content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
302
+
303
+ ```svelte fileName="**/*.svelte"
304
+ <script lang="ts">
305
+ import { useIntlayer } from "svelte-intlayer";
306
+
307
+ const content = useIntlayer("key_of_my_second_dictionary");
308
+ </script>
309
+
310
+ <div>
311
+ <p>Full Nested Content: {JSON.stringify($content.fullNestedContent)}</p>
312
+ <p>Partial Nested Value: {$content.partialNestedContent}</p>
313
+ </div>
314
+ ```
315
+
316
+ </Tab>
317
+ <Tab label="Preact" value="preact">
318
+
319
+ To use nested content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
320
+
321
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
322
+ import type { FC } from "preact";
323
+ import { useIntlayer } from "preact-intlayer";
324
+
325
+ const NestComponent: FC = () => {
326
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
327
+ "key_of_my_second_dictionary"
328
+ );
329
+
330
+ return (
331
+ <div>
332
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
333
+ <p>Partial Nested Value: {partialNestedContent}</p>
334
+ </div>
335
+ );
336
+ };
337
+
338
+ export default NestComponent;
339
+ ```
340
+
341
+ </Tab>
342
+ <Tab label="Solid" value="solid">
343
+
344
+ To use nested content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
345
+
346
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
347
+ import type { Component } from "solid-js";
348
+ import { useIntlayer } from "solid-intlayer";
349
+
350
+ const NestComponent: Component = () => {
351
+ const { fullNestedContent, partialNestedContent } = useIntlayer(
352
+ "key_of_my_second_dictionary"
353
+ );
354
+
355
+ return (
356
+ <div>
357
+ <p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
358
+ <p>Partial Nested Value: {partialNestedContent}</p>
359
+ </div>
360
+ );
361
+ };
362
+
363
+ export default NestComponent;
364
+ ```
365
+
366
+ </Tab>
367
+ <Tab label="Angular" value="angular">
368
+
369
+ To use nested content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
370
+
371
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
372
+ import { Component } from "@angular/core";
373
+ import { useIntlayer } from "angular-intlayer";
374
+
375
+ @Component({
376
+ selector: "app-nest",
377
+ template: `
378
+ <div>
379
+ <p>
380
+ Full Nested Content: {{ JSON.stringify(content().fullNestedContent) }}
381
+ </p>
382
+ <p>Partial Nested Value: {{ content().partialNestedContent }}</p>
383
+ </div>
384
+ `,
385
+ })
386
+ export class NestComponent {
387
+ content = useIntlayer("key_of_my_second_dictionary");
388
+ JSON = JSON;
389
+ }
390
+ ```
391
+
392
+ </Tab>
393
+ <Tab label="Vanilla JS" value="vanilla">
394
+
395
+ To use nested content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
396
+
397
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
398
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
399
+
400
+ installIntlayer();
401
+
402
+ const content = useIntlayer("key_of_my_second_dictionary").onChange(
403
+ (newContent) => {
404
+ document.getElementById("nested")!.textContent =
405
+ newContent.partialNestedContent;
406
+ }
407
+ );
408
+
409
+ // Initial render
410
+ document.getElementById("nested")!.textContent = content.partialNestedContent;
411
+ ```
412
+
413
+ </Tab>
414
+ </Tabs>
144
415
  ## Ressources supplémentaires
145
416
 
146
417
  Pour plus d'informations détaillées sur la configuration et l'utilisation, consultez les ressources suivantes :
@@ -35,12 +35,181 @@ Contrairement à [`enu`](https://github.com/aymericzip/intlayer/blob/main/docs/d
35
35
 
36
36
  ## Quand utiliser `plural` vs `enu`
37
37
 
38
- | Cas d'utilisation | Assistant |
39
- | ----------------------------------------------------------------------------------------- | --------- |
40
- | Formes grammaticales de pluriel adaptées à la locale (une pomme / deux pommes / 5 pommes) | `plural` |
41
- | Plages numériques personnalisées (`<5`, `>=10`) ou compartiments non-CLDR | `enu` |
38
+ <Tabs group="framework">
39
+ <Tab label="React" value="react">
42
40
 
43
- Si vous ne ciblez que l'anglais (qui n'a que `one` / `other`), l'un ou l'autre fonctionne. Pour toute langue ayant des distinctions `few` / `many` / `two`, préférez `plural`.
41
+ 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.
42
+
43
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
44
+ import type { FC } from "react";
45
+ import { useIntlayer } from "react-intlayer";
46
+
47
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
48
+ const { totalOpenings } = useIntlayer("total_openings");
49
+
50
+ return (
51
+ <div>
52
+ <p>{totalOpenings(count)}</p>
53
+ </div>
54
+ );
55
+ };
56
+
57
+ export default OpeningsComponent;
58
+ ```
59
+
60
+ </Tab>
61
+ <Tab label="Next.js" value="nextjs">
62
+
63
+ 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:
64
+
65
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
66
+ "use client";
67
+
68
+ import type { FC } from "react";
69
+ import { useIntlayer } from "next-intlayer";
70
+
71
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
72
+ const { totalOpenings } = useIntlayer("total_openings");
73
+
74
+ return (
75
+ <div>
76
+ <p>{totalOpenings(count)}</p>
77
+ </div>
78
+ );
79
+ };
80
+
81
+ export default OpeningsComponent;
82
+ ```
83
+
84
+ </Tab>
85
+ <Tab label="Vue" value="vue">
86
+
87
+ To use plural content in Vue components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
88
+
89
+ ```vue fileName="**/*.vue"
90
+ <script setup lang="ts">
91
+ import { useIntlayer } from "vue-intlayer";
92
+
93
+ defineProps<{ count: number }>();
94
+
95
+ const { totalOpenings } = useIntlayer("total_openings");
96
+ </script>
97
+
98
+ <template>
99
+ <div>
100
+ <p>{{ totalOpenings(count) }}</p>
101
+ </div>
102
+ </template>
103
+ ```
104
+
105
+ </Tab>
106
+ <Tab label="Svelte" value="svelte">
107
+
108
+ 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:
109
+
110
+ ```svelte fileName="**/*.svelte"
111
+ <script lang="ts">
112
+ import { useIntlayer } from "svelte-intlayer";
113
+
114
+ export let count: number;
115
+
116
+ const content = useIntlayer("total_openings");
117
+ </script>
118
+
119
+ <div>
120
+ <p>{$content.totalOpenings(count)}</p>
121
+ </div>
122
+ ```
123
+
124
+ </Tab>
125
+ <Tab label="Preact" value="preact">
126
+
127
+ To use plural content in Preact components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
128
+
129
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
130
+ import type { FC } from "preact";
131
+ import { useIntlayer } from "preact-intlayer";
132
+
133
+ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
134
+ const { totalOpenings } = useIntlayer("total_openings");
135
+
136
+ return (
137
+ <div>
138
+ <p>{totalOpenings(count)}</p>
139
+ </div>
140
+ );
141
+ };
142
+
143
+ export default OpeningsComponent;
144
+ ```
145
+
146
+ </Tab>
147
+ <Tab label="Solid" value="solid">
148
+
149
+ To use plural content in SolidJS components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
150
+
151
+ ```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
152
+ import type { Component } from "solid-js";
153
+ import { useIntlayer } from "solid-intlayer";
154
+
155
+ const OpeningsComponent: Component<{ count: number }> = (props) => {
156
+ const { totalOpenings } = useIntlayer("total_openings");
157
+
158
+ return (
159
+ <div>
160
+ <p>{totalOpenings(props.count)}</p>
161
+ </div>
162
+ );
163
+ };
164
+
165
+ export default OpeningsComponent;
166
+ ```
167
+
168
+ </Tab>
169
+ <Tab label="Angular" value="angular">
170
+
171
+ To use plural content in Angular components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
172
+
173
+ ```typescript fileName="app.component.ts" codeFormat="typescript"
174
+ import { Component, Input } from "@angular/core";
175
+ import { useIntlayer } from "angular-intlayer";
176
+
177
+ @Component({
178
+ selector: "app-openings",
179
+ template: `
180
+ <div>
181
+ <p>{{ content().totalOpenings(count) }}</p>
182
+ </div>
183
+ `,
184
+ })
185
+ export class OpeningsComponent {
186
+ @Input() count!: number;
187
+
188
+ content = useIntlayer("total_openings");
189
+ }
190
+ ```
191
+
192
+ </Tab>
193
+ <Tab label="Vanilla JS" value="vanilla">
194
+
195
+ To use plural content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
196
+
197
+ ```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
198
+ import { installIntlayer, useIntlayer } from "vanilla-intlayer";
199
+
200
+ installIntlayer();
201
+
202
+ const content = useIntlayer("total_openings").onChange((newContent) => {
203
+ document.getElementById("openings")!.textContent =
204
+ newContent.totalOpenings(5);
205
+ });
206
+
207
+ // Initial render
208
+ document.getElementById("openings")!.textContent = content.totalOpenings(5);
209
+ ```
210
+
211
+ </Tab>
212
+ </Tabs>
44
213
 
45
214
  ## Configuration du contenu au pluriel
46
215