@intlayer/docs 8.12.5-canary.0 → 9.0.0-canary.3
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.
- package/dist/cjs/generated/docs.entry.cjs +320 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +320 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +16 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/doc-review.md +110 -4
- package/docs/ar/cli/index.md +1 -1
- package/docs/ar/cli/scan.md +1 -1
- package/docs/ar/configuration.md +36 -3
- package/docs/ar/dictionary/condition.md +167 -5
- package/docs/ar/dictionary/enumeration.md +540 -6
- package/docs/ar/dictionary/file.md +151 -1
- package/docs/ar/dictionary/gender.md +168 -7
- package/docs/ar/dictionary/nesting.md +173 -65
- package/docs/ar/dictionary/plurial.md +174 -5
- package/docs/ar/dictionary/translation.md +156 -2
- package/docs/ar/dynamic_dictionaries/collections.md +1 -1
- package/docs/ar/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ar/dynamic_dictionaries/index.md +1 -1
- package/docs/ar/dynamic_dictionaries/variants.md +1 -1
- package/docs/ar/intlayer_with_vite+react.md +31 -31
- package/docs/ar/plugins/sync-json.md +222 -49
- package/docs/ar/releases/v8.md +187 -1
- package/docs/ar/releases/v9.md +232 -0
- package/docs/bn/cli/index.md +1 -1
- package/docs/bn/cli/scan.md +1 -1
- package/docs/bn/configuration.md +36 -3
- package/docs/cs/cli/index.md +1 -1
- package/docs/cs/cli/scan.md +1 -1
- package/docs/cs/configuration.md +35 -2
- package/docs/de/cli/doc-review.md +110 -4
- package/docs/de/cli/index.md +1 -1
- package/docs/de/cli/scan.md +1 -1
- package/docs/de/configuration.md +35 -2
- package/docs/de/dictionary/condition.md +167 -5
- package/docs/de/dictionary/enumeration.md +777 -7
- package/docs/de/dictionary/file.md +151 -1
- package/docs/de/dictionary/gender.md +168 -7
- package/docs/de/dictionary/nesting.md +173 -65
- package/docs/de/dictionary/plurial.md +347 -7
- package/docs/de/dictionary/translation.md +156 -2
- package/docs/de/dynamic_dictionaries/collections.md +1 -1
- package/docs/de/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/de/dynamic_dictionaries/index.md +1 -1
- package/docs/de/dynamic_dictionaries/variants.md +1 -1
- package/docs/de/intlayer_with_vite+react.md +48 -48
- package/docs/de/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/de/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/de/plugins/sync-json.md +222 -49
- package/docs/de/releases/v8.md +197 -1
- package/docs/de/releases/v9.md +232 -0
- package/docs/en/CI_CD.md +7 -7
- package/docs/en/cli/ci.md +62 -8
- package/docs/en/cli/doc-review.md +110 -4
- package/docs/en/cli/index.md +1 -1
- package/docs/en/cli/scan.md +1 -1
- package/docs/en/compat/i18n-js.md +44 -0
- package/docs/en/compat/i18next.md +59 -0
- package/docs/en/compat/index.md +51 -0
- package/docs/en/compat/lingui.md +44 -0
- package/docs/en/compat/next-i18next.md +57 -0
- package/docs/en/compat/next-intl.md +59 -0
- package/docs/en/compat/next-translate.md +45 -0
- package/docs/en/compat/ngx-translate.md +45 -0
- package/docs/en/compat/nuxtjs-i18n.md +46 -0
- package/docs/en/compat/polyglot.md +45 -0
- package/docs/en/compat/react-i18next.md +58 -0
- package/docs/en/compat/react-intl.md +55 -0
- package/docs/en/compat/svelte-i18n.md +47 -0
- package/docs/en/compat/transloco.md +45 -0
- package/docs/en/compat/vue-i18n.md +58 -0
- package/docs/en/configuration.md +35 -2
- package/docs/en/dictionary/condition.md +163 -1
- package/docs/en/dictionary/enumeration.md +309 -7
- package/docs/en/dictionary/file.md +151 -1
- package/docs/en/dictionary/gender.md +162 -1
- package/docs/en/dictionary/nesting.md +173 -9
- package/docs/en/dictionary/plurial.md +155 -10
- package/docs/en/dictionary/translation.md +145 -52
- package/docs/en/dynamic_dictionaries/collections.md +1 -1
- package/docs/en/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/en/dynamic_dictionaries/index.md +1 -1
- package/docs/en/dynamic_dictionaries/variants.md +1 -1
- package/docs/en/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/en/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/en/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/en/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/en/plugins/sync-json.md +56 -2
- package/docs/en/releases/v8.md +187 -1
- package/docs/en/releases/v9.md +220 -0
- package/docs/en-GB/cli/doc-review.md +110 -4
- package/docs/en-GB/cli/index.md +1 -1
- package/docs/en-GB/cli/scan.md +1 -1
- package/docs/en-GB/configuration.md +35 -2
- package/docs/en-GB/dictionary/condition.md +364 -1
- package/docs/en-GB/dictionary/enumeration.md +577 -5
- package/docs/en-GB/dictionary/file.md +317 -1
- package/docs/en-GB/dictionary/gender.md +375 -2
- package/docs/en-GB/dictionary/nesting.md +368 -71
- package/docs/en-GB/dictionary/plurial.md +347 -7
- package/docs/en-GB/dictionary/translation.md +320 -32
- package/docs/en-GB/dynamic_dictionaries/collections.md +1 -1
- package/docs/en-GB/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/en-GB/dynamic_dictionaries/index.md +1 -1
- package/docs/en-GB/dynamic_dictionaries/variants.md +1 -1
- package/docs/en-GB/plugins/sync-json.md +245 -13
- package/docs/en-GB/releases/v8.md +1 -1
- package/docs/en-GB/releases/v9.md +220 -0
- package/docs/es/cli/doc-review.md +110 -4
- package/docs/es/cli/index.md +1 -1
- package/docs/es/cli/scan.md +1 -1
- package/docs/es/configuration.md +36 -3
- package/docs/es/dictionary/condition.md +167 -5
- package/docs/es/dictionary/enumeration.md +537 -12
- package/docs/es/dictionary/file.md +151 -1
- package/docs/es/dictionary/gender.md +168 -7
- package/docs/es/dictionary/nesting.md +173 -65
- package/docs/es/dictionary/plurial.md +347 -7
- package/docs/es/dictionary/translation.md +156 -2
- package/docs/es/dynamic_dictionaries/collections.md +1 -1
- package/docs/es/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/es/dynamic_dictionaries/index.md +1 -1
- package/docs/es/dynamic_dictionaries/variants.md +1 -1
- package/docs/es/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/es/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/es/plugins/sync-json.md +222 -49
- package/docs/es/releases/v8.md +187 -1
- package/docs/es/releases/v9.md +228 -0
- package/docs/fr/cli/doc-review.md +110 -4
- package/docs/fr/cli/index.md +1 -1
- package/docs/fr/cli/scan.md +1 -1
- package/docs/fr/configuration.md +49 -16
- package/docs/fr/dictionary/condition.md +369 -6
- package/docs/fr/dictionary/enumeration.md +540 -6
- package/docs/fr/dictionary/file.md +151 -1
- package/docs/fr/dictionary/gender.md +168 -7
- package/docs/fr/dictionary/nesting.md +357 -86
- package/docs/fr/dictionary/plurial.md +174 -5
- package/docs/fr/dictionary/translation.md +156 -2
- package/docs/fr/dynamic_dictionaries/collections.md +1 -1
- package/docs/fr/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/fr/dynamic_dictionaries/index.md +1 -1
- package/docs/fr/dynamic_dictionaries/variants.md +1 -1
- package/docs/fr/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/fr/plugins/sync-json.md +244 -12
- package/docs/fr/releases/v8.md +187 -1
- package/docs/fr/releases/v9.md +220 -0
- package/docs/hi/cli/doc-review.md +110 -4
- package/docs/hi/cli/index.md +1 -1
- package/docs/hi/cli/scan.md +1 -1
- package/docs/hi/configuration.md +49 -16
- package/docs/hi/dictionary/condition.md +167 -5
- package/docs/hi/dictionary/enumeration.md +540 -6
- package/docs/hi/dictionary/file.md +151 -1
- package/docs/hi/dictionary/gender.md +168 -7
- package/docs/hi/dictionary/nesting.md +173 -65
- package/docs/hi/dictionary/plurial.md +174 -5
- package/docs/hi/dictionary/translation.md +155 -5
- package/docs/hi/dynamic_dictionaries/collections.md +1 -1
- package/docs/hi/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/hi/dynamic_dictionaries/index.md +1 -1
- package/docs/hi/dynamic_dictionaries/variants.md +1 -1
- package/docs/hi/plugins/sync-json.md +221 -48
- package/docs/hi/releases/v8.md +188 -2
- package/docs/hi/releases/v9.md +232 -0
- package/docs/id/cli/doc-review.md +110 -4
- package/docs/id/cli/index.md +1 -1
- package/docs/id/cli/scan.md +1 -1
- package/docs/id/configuration.md +35 -2
- package/docs/id/dictionary/condition.md +167 -5
- package/docs/id/dictionary/enumeration.md +540 -6
- package/docs/id/dictionary/file.md +318 -2
- package/docs/id/dictionary/gender.md +381 -8
- package/docs/id/dictionary/nesting.md +357 -86
- package/docs/id/dictionary/plurial.md +174 -5
- package/docs/id/dictionary/translation.md +156 -2
- package/docs/id/dynamic_dictionaries/collections.md +1 -1
- package/docs/id/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/id/dynamic_dictionaries/index.md +1 -1
- package/docs/id/dynamic_dictionaries/variants.md +1 -1
- package/docs/id/plugins/sync-json.md +222 -49
- package/docs/id/releases/v8.md +191 -2
- package/docs/id/releases/v9.md +232 -0
- package/docs/it/cli/doc-review.md +110 -4
- package/docs/it/cli/index.md +1 -1
- package/docs/it/cli/scan.md +1 -1
- package/docs/it/configuration.md +49 -16
- package/docs/it/dictionary/condition.md +167 -5
- package/docs/it/dictionary/enumeration.md +540 -6
- package/docs/it/dictionary/file.md +318 -2
- package/docs/it/dictionary/gender.md +168 -7
- package/docs/it/dictionary/nesting.md +173 -65
- package/docs/it/dictionary/plurial.md +347 -7
- package/docs/it/dictionary/translation.md +156 -2
- package/docs/it/dynamic_dictionaries/collections.md +1 -1
- package/docs/it/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/it/dynamic_dictionaries/index.md +1 -1
- package/docs/it/dynamic_dictionaries/variants.md +1 -1
- package/docs/it/intlayer_with_vite+react.md +0 -48
- package/docs/it/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/it/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/it/plugins/sync-json.md +224 -51
- package/docs/it/releases/v8.md +200 -2
- package/docs/it/releases/v9.md +232 -0
- package/docs/ja/cli/doc-review.md +110 -4
- package/docs/ja/cli/index.md +1 -1
- package/docs/ja/cli/scan.md +1 -1
- package/docs/ja/configuration.md +50 -17
- package/docs/ja/dictionary/condition.md +167 -5
- package/docs/ja/dictionary/enumeration.md +540 -6
- package/docs/ja/dictionary/file.md +151 -1
- package/docs/ja/dictionary/gender.md +168 -7
- package/docs/ja/dictionary/nesting.md +173 -65
- package/docs/ja/dictionary/plurial.md +174 -5
- package/docs/ja/dictionary/translation.md +169 -8
- package/docs/ja/dynamic_dictionaries/collections.md +1 -1
- package/docs/ja/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ja/dynamic_dictionaries/index.md +1 -1
- package/docs/ja/dynamic_dictionaries/variants.md +1 -1
- package/docs/ja/intlayer_with_vite+react.md +290 -0
- package/docs/ja/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ja/plugins/sync-json.md +222 -49
- package/docs/ja/releases/v8.md +193 -4
- package/docs/ja/releases/v9.md +232 -0
- package/docs/ko/cli/doc-review.md +110 -4
- package/docs/ko/cli/index.md +1 -1
- package/docs/ko/cli/scan.md +1 -1
- package/docs/ko/configuration.md +49 -16
- package/docs/ko/dictionary/condition.md +167 -5
- package/docs/ko/dictionary/enumeration.md +540 -6
- package/docs/ko/dictionary/file.md +151 -1
- package/docs/ko/dictionary/gender.md +168 -7
- package/docs/ko/dictionary/nesting.md +173 -65
- package/docs/ko/dictionary/plurial.md +174 -5
- package/docs/ko/dictionary/translation.md +169 -8
- package/docs/ko/dynamic_dictionaries/collections.md +1 -1
- package/docs/ko/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ko/dynamic_dictionaries/index.md +1 -1
- package/docs/ko/dynamic_dictionaries/variants.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +48 -490
- package/docs/ko/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ko/plugins/sync-json.md +223 -50
- package/docs/ko/releases/v8.md +192 -1
- package/docs/ko/releases/v9.md +232 -0
- package/docs/nl/cli/index.md +1 -1
- package/docs/nl/cli/scan.md +1 -1
- package/docs/nl/configuration.md +36 -3
- package/docs/pl/cli/doc-review.md +110 -4
- package/docs/pl/cli/index.md +1 -1
- package/docs/pl/cli/scan.md +1 -1
- package/docs/pl/configuration.md +35 -2
- package/docs/pl/dictionary/condition.md +167 -5
- package/docs/pl/dictionary/enumeration.md +540 -6
- package/docs/pl/dictionary/file.md +318 -2
- package/docs/pl/dictionary/gender.md +168 -7
- package/docs/pl/dictionary/nesting.md +173 -65
- package/docs/pl/dictionary/plurial.md +174 -5
- package/docs/pl/dictionary/translation.md +156 -2
- package/docs/pl/dynamic_dictionaries/collections.md +1 -1
- package/docs/pl/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/pl/dynamic_dictionaries/index.md +1 -1
- package/docs/pl/dynamic_dictionaries/variants.md +1 -1
- package/docs/pl/plugins/sync-json.md +246 -14
- package/docs/pl/releases/v8.md +188 -2
- package/docs/pl/releases/v9.md +232 -0
- package/docs/pt/cli/doc-review.md +110 -4
- package/docs/pt/cli/index.md +1 -1
- package/docs/pt/cli/scan.md +1 -1
- package/docs/pt/configuration.md +49 -16
- package/docs/pt/dictionary/condition.md +167 -5
- package/docs/pt/dictionary/enumeration.md +540 -6
- package/docs/pt/dictionary/file.md +151 -1
- package/docs/pt/dictionary/gender.md +168 -7
- package/docs/pt/dictionary/nesting.md +173 -65
- package/docs/pt/dictionary/plurial.md +347 -7
- package/docs/pt/dictionary/translation.md +156 -2
- package/docs/pt/dynamic_dictionaries/collections.md +1 -1
- package/docs/pt/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/pt/dynamic_dictionaries/index.md +1 -1
- package/docs/pt/dynamic_dictionaries/variants.md +1 -1
- package/docs/pt/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/pt/plugins/sync-json.md +222 -49
- package/docs/pt/releases/v8.md +187 -1
- package/docs/pt/releases/v9.md +232 -0
- package/docs/ru/cli/doc-review.md +110 -4
- package/docs/ru/cli/index.md +1 -1
- package/docs/ru/cli/scan.md +1 -1
- package/docs/ru/configuration.md +35 -2
- package/docs/ru/dictionary/condition.md +366 -39
- package/docs/ru/dictionary/enumeration.md +777 -7
- package/docs/ru/dictionary/file.md +318 -2
- package/docs/ru/dictionary/gender.md +168 -7
- package/docs/ru/dictionary/nesting.md +368 -71
- package/docs/ru/dictionary/plurial.md +347 -7
- package/docs/ru/dictionary/translation.md +321 -33
- package/docs/ru/dynamic_dictionaries/collections.md +1 -1
- package/docs/ru/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/ru/dynamic_dictionaries/index.md +1 -1
- package/docs/ru/dynamic_dictionaries/variants.md +1 -1
- package/docs/ru/intlayer_with_vite+react.md +48 -47
- package/docs/ru/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ru/plugins/sync-json.md +269 -95
- package/docs/ru/releases/v8.md +194 -2
- package/docs/ru/releases/v9.md +232 -0
- package/docs/tr/cli/doc-review.md +110 -4
- package/docs/tr/cli/index.md +1 -1
- package/docs/tr/cli/scan.md +1 -1
- package/docs/tr/configuration.md +35 -2
- package/docs/tr/dictionary/condition.md +167 -5
- package/docs/tr/dictionary/enumeration.md +540 -6
- package/docs/tr/dictionary/file.md +151 -1
- package/docs/tr/dictionary/gender.md +168 -7
- package/docs/tr/dictionary/nesting.md +173 -65
- package/docs/tr/dictionary/plurial.md +174 -5
- package/docs/tr/dictionary/translation.md +156 -2
- package/docs/tr/dynamic_dictionaries/collections.md +1 -1
- package/docs/tr/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/tr/dynamic_dictionaries/index.md +1 -1
- package/docs/tr/dynamic_dictionaries/variants.md +1 -1
- package/docs/tr/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/tr/plugins/sync-json.md +222 -50
- package/docs/tr/releases/v8.md +187 -1
- package/docs/tr/releases/v9.md +232 -0
- package/docs/uk/cli/doc-review.md +110 -4
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/cli/scan.md +1 -1
- package/docs/uk/configuration.md +35 -2
- package/docs/uk/dictionary/condition.md +167 -5
- package/docs/uk/dictionary/enumeration.md +540 -6
- package/docs/uk/dictionary/file.md +318 -2
- package/docs/uk/dictionary/gender.md +381 -8
- package/docs/uk/dictionary/nesting.md +173 -65
- package/docs/uk/dictionary/plurial.md +174 -5
- package/docs/uk/dictionary/translation.md +156 -2
- package/docs/uk/dynamic_dictionaries/collections.md +1 -1
- package/docs/uk/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/uk/dynamic_dictionaries/index.md +1 -1
- package/docs/uk/dynamic_dictionaries/variants.md +1 -1
- package/docs/uk/plugins/sync-json.md +56 -2
- package/docs/uk/releases/v8.md +191 -3
- package/docs/uk/releases/v9.md +232 -0
- package/docs/ur/cli/index.md +1 -1
- package/docs/ur/cli/scan.md +1 -1
- package/docs/ur/configuration.md +36 -3
- package/docs/vi/cli/doc-review.md +110 -4
- package/docs/vi/cli/index.md +1 -1
- package/docs/vi/cli/scan.md +1 -1
- package/docs/vi/configuration.md +50 -17
- package/docs/vi/dictionary/condition.md +167 -5
- package/docs/vi/dictionary/enumeration.md +591 -14
- package/docs/vi/dictionary/file.md +318 -2
- package/docs/vi/dictionary/gender.md +168 -7
- package/docs/vi/dictionary/nesting.md +357 -86
- package/docs/vi/dictionary/plurial.md +174 -5
- package/docs/vi/dictionary/translation.md +156 -2
- package/docs/vi/dynamic_dictionaries/collections.md +1 -1
- package/docs/vi/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/vi/dynamic_dictionaries/index.md +1 -1
- package/docs/vi/dynamic_dictionaries/variants.md +1 -1
- package/docs/vi/plugins/sync-json.md +230 -57
- package/docs/vi/releases/v8.md +190 -1
- package/docs/vi/releases/v9.md +232 -0
- package/docs/zh/cli/doc-review.md +110 -4
- package/docs/zh/cli/index.md +1 -1
- package/docs/zh/cli/scan.md +1 -1
- package/docs/zh/configuration.md +49 -16
- package/docs/zh/dictionary/condition.md +167 -5
- package/docs/zh/dictionary/enumeration.md +540 -6
- package/docs/zh/dictionary/file.md +151 -1
- package/docs/zh/dictionary/gender.md +168 -7
- package/docs/zh/dictionary/nesting.md +173 -65
- package/docs/zh/dictionary/plurial.md +174 -5
- package/docs/zh/dictionary/translation.md +169 -8
- package/docs/zh/dynamic_dictionaries/collections.md +1 -1
- package/docs/zh/dynamic_dictionaries/dynamic_content.md +1 -1
- package/docs/zh/dynamic_dictionaries/index.md +1 -1
- package/docs/zh/dynamic_dictionaries/variants.md +1 -1
- package/docs/zh/intlayer_with_vite+react.md +48 -288
- package/docs/zh/plugins/sync-json.md +223 -50
- package/docs/zh/releases/v8.md +1 -1
- package/docs/zh/releases/v9.md +220 -0
- package/package.json +7 -7
- package/src/generated/docs.entry.ts +320 -0
- 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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
import {
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
219
|
+
</Tab>
|
|
220
|
+
</Tabs>
|
|
113
221
|
|
|
114
222
|
## Utilisation de l'imbrication avec React Intlayer
|
|
115
223
|
|
|
116
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|