@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.
- 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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
|
@@ -81,7 +81,10 @@ In this example, `enu` maps various conditions to specific content. When used in
|
|
|
81
81
|
|
|
82
82
|
> If no fallback is declared, the function will return `undefined` if no keys match.
|
|
83
83
|
|
|
84
|
-
## Using Enumeration
|
|
84
|
+
## Using Enumeration
|
|
85
|
+
|
|
86
|
+
<Tabs group="framework">
|
|
87
|
+
<Tab label="React" value="react">
|
|
85
88
|
|
|
86
89
|
To use enumeration in a React component, you can leverage the `useIntlayer` hook from the `react-intlayer` package. This hook retrieves the correct content based on the specified ID. Here's an example of how to use it:
|
|
87
90
|
|
|
@@ -119,7 +122,152 @@ const CarComponent: FC = () => {
|
|
|
119
122
|
};
|
|
120
123
|
```
|
|
121
124
|
|
|
122
|
-
|
|
125
|
+
</Tab>
|
|
126
|
+
<Tab label="Next.js" value="nextjs">
|
|
127
|
+
|
|
128
|
+
To use enumeration in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
129
|
+
|
|
130
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
131
|
+
"use client";
|
|
132
|
+
|
|
133
|
+
import type { FC } from "react";
|
|
134
|
+
import { useIntlayer } from "next-intlayer";
|
|
135
|
+
|
|
136
|
+
const CarComponent: FC = () => {
|
|
137
|
+
const { numberOfCar } = useIntlayer("car_count");
|
|
138
|
+
|
|
139
|
+
return (
|
|
140
|
+
<div>
|
|
141
|
+
<p>{numberOfCar(6)}</p>
|
|
142
|
+
</div>
|
|
143
|
+
);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export default CarComponent;
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
</Tab>
|
|
150
|
+
<Tab label="Vue" value="vue">
|
|
151
|
+
|
|
152
|
+
To use enumeration in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
153
|
+
|
|
154
|
+
```vue fileName="**/*.vue"
|
|
155
|
+
<script setup lang="ts">
|
|
156
|
+
import { useIntlayer } from "vue-intlayer";
|
|
157
|
+
|
|
158
|
+
const { numberOfCar } = useIntlayer("car_count");
|
|
159
|
+
</script>
|
|
160
|
+
|
|
161
|
+
<template>
|
|
162
|
+
<div>
|
|
163
|
+
<p>{{ numberOfCar(6) }}</p>
|
|
164
|
+
</div>
|
|
165
|
+
</template>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
</Tab>
|
|
169
|
+
<Tab label="Svelte" value="svelte">
|
|
170
|
+
|
|
171
|
+
To use enumeration in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
172
|
+
|
|
173
|
+
```svelte fileName="**/*.svelte"
|
|
174
|
+
<script lang="ts">
|
|
175
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
176
|
+
|
|
177
|
+
const content = useIntlayer("car_count");
|
|
178
|
+
</script>
|
|
179
|
+
|
|
180
|
+
<div>
|
|
181
|
+
<p>{$content.numberOfCar(6)}</p>
|
|
182
|
+
</div>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
</Tab>
|
|
186
|
+
<Tab label="Preact" value="preact">
|
|
187
|
+
|
|
188
|
+
To use enumeration in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
189
|
+
|
|
190
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
191
|
+
import type { FC } from "preact";
|
|
192
|
+
import { useIntlayer } from "preact-intlayer";
|
|
193
|
+
|
|
194
|
+
const CarComponent: FC = () => {
|
|
195
|
+
const { numberOfCar } = useIntlayer("car_count");
|
|
196
|
+
|
|
197
|
+
return (
|
|
198
|
+
<div>
|
|
199
|
+
<p>{numberOfCar(6)}</p>
|
|
200
|
+
</div>
|
|
201
|
+
);
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export default CarComponent;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
</Tab>
|
|
208
|
+
<Tab label="Solid" value="solid">
|
|
209
|
+
|
|
210
|
+
To use enumeration in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
211
|
+
|
|
212
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
213
|
+
import type { Component } from "solid-js";
|
|
214
|
+
import { useIntlayer } from "solid-intlayer";
|
|
215
|
+
|
|
216
|
+
const CarComponent: Component = () => {
|
|
217
|
+
const { numberOfCar } = useIntlayer("car_count");
|
|
218
|
+
|
|
219
|
+
return (
|
|
220
|
+
<div>
|
|
221
|
+
<p>{numberOfCar(6)}</p>
|
|
222
|
+
</div>
|
|
223
|
+
);
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
export default CarComponent;
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
</Tab>
|
|
230
|
+
<Tab label="Angular" value="angular">
|
|
231
|
+
|
|
232
|
+
To use enumeration in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
233
|
+
|
|
234
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
235
|
+
import { Component } from "@angular/core";
|
|
236
|
+
import { useIntlayer } from "angular-intlayer";
|
|
237
|
+
|
|
238
|
+
@Component({
|
|
239
|
+
selector: "app-car",
|
|
240
|
+
template: `
|
|
241
|
+
<div>
|
|
242
|
+
<p>{{ content().numberOfCar(6) }}</p>
|
|
243
|
+
</div>
|
|
244
|
+
`,
|
|
245
|
+
})
|
|
246
|
+
export class CarComponent {
|
|
247
|
+
content = useIntlayer("car_count");
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
</Tab>
|
|
252
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
253
|
+
|
|
254
|
+
To use enumeration with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
255
|
+
|
|
256
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
257
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
258
|
+
|
|
259
|
+
installIntlayer();
|
|
260
|
+
|
|
261
|
+
const content = useIntlayer("car_count").onChange((newContent) => {
|
|
262
|
+
document.getElementById("cars")!.textContent = newContent.numberOfCar(6);
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// Initial render
|
|
266
|
+
document.getElementById("cars")!.textContent = content.numberOfCar(6);
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
</Tab>
|
|
270
|
+
</Tabs>
|
|
123
271
|
|
|
124
272
|
## Combining Enumeration with Insert for Ordinal Numbers
|
|
125
273
|
|
|
@@ -173,7 +321,10 @@ export default rankingContent;
|
|
|
173
321
|
}
|
|
174
322
|
```
|
|
175
323
|
|
|
176
|
-
### Using Ordinal Enumeration
|
|
324
|
+
### Using Ordinal Enumeration
|
|
325
|
+
|
|
326
|
+
<Tabs group="framework">
|
|
327
|
+
<Tab label="React" value="react">
|
|
177
328
|
|
|
178
329
|
To use this in a React component, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
179
330
|
|
|
@@ -197,16 +348,167 @@ const RankingComponent: FC<{ count: number }> = ({ count }) => {
|
|
|
197
348
|
</div>
|
|
198
349
|
);
|
|
199
350
|
};
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
</Tab>
|
|
354
|
+
<Tab label="Next.js" value="nextjs">
|
|
355
|
+
|
|
356
|
+
To use this in Next.js Client Components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
357
|
+
|
|
358
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
359
|
+
"use client";
|
|
360
|
+
|
|
361
|
+
import type { FC } from "react";
|
|
362
|
+
import { useIntlayer } from "next-intlayer";
|
|
363
|
+
|
|
364
|
+
const RankingComponent: FC<{ count: number }> = ({ count }) => {
|
|
365
|
+
const { ordinal } = useIntlayer("ranking_component");
|
|
366
|
+
const lastDigit = Math.abs(count) % 10;
|
|
367
|
+
|
|
368
|
+
return (
|
|
369
|
+
<div>
|
|
370
|
+
<p>{ordinal(lastDigit)({ count })}</p>
|
|
371
|
+
</div>
|
|
372
|
+
);
|
|
373
|
+
};
|
|
200
374
|
|
|
201
375
|
export default RankingComponent;
|
|
202
376
|
```
|
|
203
377
|
|
|
204
|
-
|
|
378
|
+
</Tab>
|
|
379
|
+
<Tab label="Vue" value="vue">
|
|
205
380
|
|
|
206
|
-
|
|
207
|
-
|
|
381
|
+
To use this in Vue components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
382
|
+
|
|
383
|
+
```vue fileName="**/*.vue"
|
|
384
|
+
<script setup lang="ts">
|
|
385
|
+
import { useIntlayer } from "vue-intlayer";
|
|
386
|
+
|
|
387
|
+
defineProps<{ count: number }>();
|
|
388
|
+
|
|
389
|
+
const { ordinal } = useIntlayer("ranking_component");
|
|
390
|
+
</script>
|
|
391
|
+
|
|
392
|
+
<template>
|
|
393
|
+
<div>
|
|
394
|
+
<p>{{ ordinal(Math.abs(count) % 10)({ count }) }}</p>
|
|
395
|
+
</div>
|
|
396
|
+
</template>
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
</Tab>
|
|
400
|
+
<Tab label="Svelte" value="svelte">
|
|
401
|
+
|
|
402
|
+
To use this in Svelte components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
403
|
+
|
|
404
|
+
```svelte fileName="**/*.svelte"
|
|
405
|
+
<script lang="ts">
|
|
406
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
407
|
+
|
|
408
|
+
export let count: number;
|
|
409
|
+
|
|
410
|
+
const content = useIntlayer("ranking_component");
|
|
411
|
+
$: lastDigit = Math.abs(count) % 10;
|
|
412
|
+
</script>
|
|
413
|
+
|
|
414
|
+
<div>
|
|
415
|
+
<p>{$content.ordinal(lastDigit)({ count })}</p>
|
|
416
|
+
</div>
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
</Tab>
|
|
420
|
+
<Tab label="Preact" value="preact">
|
|
421
|
+
|
|
422
|
+
To use this in Preact components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
423
|
+
|
|
424
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
425
|
+
import type { FC } from "preact";
|
|
426
|
+
import { useIntlayer } from "preact-intlayer";
|
|
427
|
+
|
|
428
|
+
const RankingComponent: FC<{ count: number }> = ({ count }) => {
|
|
429
|
+
const { ordinal } = useIntlayer("ranking_component");
|
|
430
|
+
const lastDigit = Math.abs(count) % 10;
|
|
431
|
+
|
|
432
|
+
return (
|
|
433
|
+
<div>
|
|
434
|
+
<p>{ordinal(lastDigit)({ count })}</p>
|
|
435
|
+
</div>
|
|
436
|
+
);
|
|
437
|
+
};
|
|
438
|
+
|
|
439
|
+
export default RankingComponent;
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
</Tab>
|
|
443
|
+
<Tab label="Solid" value="solid">
|
|
444
|
+
|
|
445
|
+
To use this in SolidJS components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
446
|
+
|
|
447
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
448
|
+
import type { Component } from "solid-js";
|
|
449
|
+
import { useIntlayer } from "solid-intlayer";
|
|
450
|
+
|
|
451
|
+
const RankingComponent: Component<{ count: number }> = (props) => {
|
|
452
|
+
const { ordinal } = useIntlayer("ranking_component");
|
|
453
|
+
|
|
454
|
+
return (
|
|
455
|
+
<div>
|
|
456
|
+
<p>{ordinal(Math.abs(props.count) % 10)({ count: props.count })}</p>
|
|
457
|
+
</div>
|
|
458
|
+
);
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
export default RankingComponent;
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
</Tab>
|
|
465
|
+
<Tab label="Angular" value="angular">
|
|
466
|
+
|
|
467
|
+
To use this in Angular components, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
468
|
+
|
|
469
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
470
|
+
import { Component, Input } from "@angular/core";
|
|
471
|
+
import { useIntlayer } from "angular-intlayer";
|
|
472
|
+
|
|
473
|
+
@Component({
|
|
474
|
+
selector: "app-ranking",
|
|
475
|
+
template: `
|
|
476
|
+
<div>
|
|
477
|
+
<p>{{ content().ordinal(lastDigit())({ count }) }}</p>
|
|
478
|
+
</div>
|
|
479
|
+
`,
|
|
480
|
+
})
|
|
481
|
+
export class RankingComponent {
|
|
482
|
+
@Input() count!: number;
|
|
483
|
+
|
|
484
|
+
content = useIntlayer("ranking_component");
|
|
485
|
+
|
|
486
|
+
lastDigit() {
|
|
487
|
+
return Math.abs(this.count) % 10;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
</Tab>
|
|
493
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
494
|
+
|
|
495
|
+
To use this with `vanilla-intlayer`, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:
|
|
496
|
+
|
|
497
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
498
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
499
|
+
|
|
500
|
+
installIntlayer();
|
|
501
|
+
|
|
502
|
+
const content = useIntlayer("ranking_component");
|
|
503
|
+
const lastDigit = Math.abs(5) % 10;
|
|
504
|
+
|
|
505
|
+
document.getElementById("ranking")!.textContent = content.ordinal(lastDigit)({
|
|
506
|
+
count: 5,
|
|
507
|
+
});
|
|
508
|
+
```
|
|
208
509
|
|
|
209
|
-
|
|
510
|
+
</Tab>
|
|
511
|
+
</Tabs>
|
|
210
512
|
|
|
211
513
|
## Additional Resources
|
|
212
514
|
|
|
@@ -61,7 +61,10 @@ export default myFileContent;
|
|
|
61
61
|
}
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
## Using File Content
|
|
64
|
+
## Using File Content
|
|
65
|
+
|
|
66
|
+
<Tabs group="framework">
|
|
67
|
+
<Tab label="React" value="react">
|
|
65
68
|
|
|
66
69
|
To use embedded file content in a React component, import and use the `useIntlayer` hook from the `react-intlayer` package. This retrieves the content from the specified key and allows it to be displayed dynamically.
|
|
67
70
|
|
|
@@ -82,6 +85,153 @@ const FileComponent: FC = () => {
|
|
|
82
85
|
export default FileComponent;
|
|
83
86
|
```
|
|
84
87
|
|
|
88
|
+
</Tab>
|
|
89
|
+
<Tab label="Next.js" value="nextjs">
|
|
90
|
+
|
|
91
|
+
To use embedded file content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
92
|
+
|
|
93
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
94
|
+
"use client";
|
|
95
|
+
|
|
96
|
+
import type { FC } from "react";
|
|
97
|
+
import { useIntlayer } from "next-intlayer";
|
|
98
|
+
|
|
99
|
+
const FileComponent: FC = () => {
|
|
100
|
+
const { myFile } = useIntlayer("my_key");
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
<div>
|
|
104
|
+
<pre>{myFile}</pre>
|
|
105
|
+
</div>
|
|
106
|
+
);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export default FileComponent;
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
</Tab>
|
|
113
|
+
<Tab label="Vue" value="vue">
|
|
114
|
+
|
|
115
|
+
To use embedded file content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
116
|
+
|
|
117
|
+
```vue fileName="**/*.vue"
|
|
118
|
+
<script setup lang="ts">
|
|
119
|
+
import { useIntlayer } from "vue-intlayer";
|
|
120
|
+
|
|
121
|
+
const { myFile } = useIntlayer("my_key");
|
|
122
|
+
</script>
|
|
123
|
+
|
|
124
|
+
<template>
|
|
125
|
+
<div>
|
|
126
|
+
<pre>{{ myFile }}</pre>
|
|
127
|
+
</div>
|
|
128
|
+
</template>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
</Tab>
|
|
132
|
+
<Tab label="Svelte" value="svelte">
|
|
133
|
+
|
|
134
|
+
To use embedded file content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
135
|
+
|
|
136
|
+
```svelte fileName="**/*.svelte"
|
|
137
|
+
<script lang="ts">
|
|
138
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
139
|
+
|
|
140
|
+
const content = useIntlayer("my_key");
|
|
141
|
+
</script>
|
|
142
|
+
|
|
143
|
+
<div>
|
|
144
|
+
<pre>{$content.myFile}</pre>
|
|
145
|
+
</div>
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
</Tab>
|
|
149
|
+
<Tab label="Preact" value="preact">
|
|
150
|
+
|
|
151
|
+
To use embedded file content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
152
|
+
|
|
153
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
154
|
+
import type { FC } from "preact";
|
|
155
|
+
import { useIntlayer } from "preact-intlayer";
|
|
156
|
+
|
|
157
|
+
const FileComponent: FC = () => {
|
|
158
|
+
const { myFile } = useIntlayer("my_key");
|
|
159
|
+
|
|
160
|
+
return (
|
|
161
|
+
<div>
|
|
162
|
+
<pre>{myFile}</pre>
|
|
163
|
+
</div>
|
|
164
|
+
);
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export default FileComponent;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
</Tab>
|
|
171
|
+
<Tab label="Solid" value="solid">
|
|
172
|
+
|
|
173
|
+
To use embedded file content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
174
|
+
|
|
175
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
176
|
+
import type { Component } from "solid-js";
|
|
177
|
+
import { useIntlayer } from "solid-intlayer";
|
|
178
|
+
|
|
179
|
+
const FileComponent: Component = () => {
|
|
180
|
+
const { myFile } = useIntlayer("my_key");
|
|
181
|
+
|
|
182
|
+
return (
|
|
183
|
+
<div>
|
|
184
|
+
<pre>{myFile}</pre>
|
|
185
|
+
</div>
|
|
186
|
+
);
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
export default FileComponent;
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
</Tab>
|
|
193
|
+
<Tab label="Angular" value="angular">
|
|
194
|
+
|
|
195
|
+
To use embedded file content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
196
|
+
|
|
197
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
198
|
+
import { Component } from "@angular/core";
|
|
199
|
+
import { useIntlayer } from "angular-intlayer";
|
|
200
|
+
|
|
201
|
+
@Component({
|
|
202
|
+
selector: "app-file",
|
|
203
|
+
template: `
|
|
204
|
+
<div>
|
|
205
|
+
<pre>{{ content().myFile }}</pre>
|
|
206
|
+
</div>
|
|
207
|
+
`,
|
|
208
|
+
})
|
|
209
|
+
export class FileComponent {
|
|
210
|
+
content = useIntlayer("my_key");
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
</Tab>
|
|
215
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
216
|
+
|
|
217
|
+
To use embedded file content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
218
|
+
|
|
219
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
220
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
221
|
+
|
|
222
|
+
installIntlayer();
|
|
223
|
+
|
|
224
|
+
const content = useIntlayer("my_key").onChange((newContent) => {
|
|
225
|
+
document.getElementById("file-content")!.textContent = newContent.myFile;
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
// Initial render
|
|
229
|
+
document.getElementById("file-content")!.textContent = content.myFile;
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
</Tab>
|
|
233
|
+
</Tabs>
|
|
234
|
+
|
|
85
235
|
## Multilingual Markdown Example
|
|
86
236
|
|
|
87
237
|
To support multilingual editable Markdown files, you can use `file` in combination with `t()` and `md()` to define different language versions of a Markdown content file.
|
|
@@ -69,7 +69,10 @@ export default myGenderContent;
|
|
|
69
69
|
|
|
70
70
|
> If no fallback is declared, the last key declared will be taken as a fallback if the gender is not specified or doesn't match any defined gender.
|
|
71
71
|
|
|
72
|
-
## Using Gender-Based Content
|
|
72
|
+
## Using Gender-Based Content
|
|
73
|
+
|
|
74
|
+
<Tabs group="framework">
|
|
75
|
+
<Tab label="React" value="react">
|
|
73
76
|
|
|
74
77
|
To utilize gender-based content within a React component, import and use the `useIntlayer` hook from the `react-intlayer` package. This hook fetches the content for the specified key and allows you to pass in a gender to select the appropriate output.
|
|
75
78
|
|
|
@@ -125,6 +128,164 @@ const GenderComponent: FC = () => {
|
|
|
125
128
|
export default GenderComponent;
|
|
126
129
|
```
|
|
127
130
|
|
|
131
|
+
</Tab>
|
|
132
|
+
<Tab label="Next.js" value="nextjs">
|
|
133
|
+
|
|
134
|
+
To utilize gender-based content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
135
|
+
|
|
136
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
137
|
+
"use client";
|
|
138
|
+
|
|
139
|
+
import type { FC } from "react";
|
|
140
|
+
import { useIntlayer } from "next-intlayer";
|
|
141
|
+
|
|
142
|
+
const GenderComponent: FC = () => {
|
|
143
|
+
const { myGender } = useIntlayer("my_key");
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<div>
|
|
147
|
+
<p>{myGender("male")}</p>
|
|
148
|
+
<p>{myGender("female")}</p>
|
|
149
|
+
</div>
|
|
150
|
+
);
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export default GenderComponent;
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
</Tab>
|
|
157
|
+
<Tab label="Vue" value="vue">
|
|
158
|
+
|
|
159
|
+
To utilize gender-based content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
160
|
+
|
|
161
|
+
```vue fileName="**/*.vue"
|
|
162
|
+
<script setup lang="ts">
|
|
163
|
+
import { useIntlayer } from "vue-intlayer";
|
|
164
|
+
|
|
165
|
+
const { myGender } = useIntlayer("my_key");
|
|
166
|
+
</script>
|
|
167
|
+
|
|
168
|
+
<template>
|
|
169
|
+
<div>
|
|
170
|
+
<p>{{ myGender("male") }}</p>
|
|
171
|
+
<p>{{ myGender("female") }}</p>
|
|
172
|
+
</div>
|
|
173
|
+
</template>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
</Tab>
|
|
177
|
+
<Tab label="Svelte" value="svelte">
|
|
178
|
+
|
|
179
|
+
To utilize gender-based content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
180
|
+
|
|
181
|
+
```svelte fileName="**/*.svelte"
|
|
182
|
+
<script lang="ts">
|
|
183
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
184
|
+
|
|
185
|
+
const content = useIntlayer("my_key");
|
|
186
|
+
</script>
|
|
187
|
+
|
|
188
|
+
<div>
|
|
189
|
+
<p>{$content.myGender("male")}</p>
|
|
190
|
+
<p>{$content.myGender("female")}</p>
|
|
191
|
+
</div>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
</Tab>
|
|
195
|
+
<Tab label="Preact" value="preact">
|
|
196
|
+
|
|
197
|
+
To utilize gender-based content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
198
|
+
|
|
199
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
200
|
+
import type { FC } from "preact";
|
|
201
|
+
import { useIntlayer } from "preact-intlayer";
|
|
202
|
+
|
|
203
|
+
const GenderComponent: FC = () => {
|
|
204
|
+
const { myGender } = useIntlayer("my_key");
|
|
205
|
+
|
|
206
|
+
return (
|
|
207
|
+
<div>
|
|
208
|
+
<p>{myGender("male")}</p>
|
|
209
|
+
<p>{myGender("female")}</p>
|
|
210
|
+
</div>
|
|
211
|
+
);
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
export default GenderComponent;
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
</Tab>
|
|
218
|
+
<Tab label="Solid" value="solid">
|
|
219
|
+
|
|
220
|
+
To utilize gender-based content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
221
|
+
|
|
222
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
223
|
+
import type { Component } from "solid-js";
|
|
224
|
+
import { useIntlayer } from "solid-intlayer";
|
|
225
|
+
|
|
226
|
+
const GenderComponent: Component = () => {
|
|
227
|
+
const { myGender } = useIntlayer("my_key");
|
|
228
|
+
|
|
229
|
+
return (
|
|
230
|
+
<div>
|
|
231
|
+
<p>{myGender("male")}</p>
|
|
232
|
+
<p>{myGender("female")}</p>
|
|
233
|
+
</div>
|
|
234
|
+
);
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
export default GenderComponent;
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
</Tab>
|
|
241
|
+
<Tab label="Angular" value="angular">
|
|
242
|
+
|
|
243
|
+
To utilize gender-based content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
244
|
+
|
|
245
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
246
|
+
import { Component } from "@angular/core";
|
|
247
|
+
import { useIntlayer } from "angular-intlayer";
|
|
248
|
+
|
|
249
|
+
@Component({
|
|
250
|
+
selector: "app-gender",
|
|
251
|
+
template: `
|
|
252
|
+
<div>
|
|
253
|
+
<p>{{ content().myGender("male") }}</p>
|
|
254
|
+
<p>{{ content().myGender("female") }}</p>
|
|
255
|
+
</div>
|
|
256
|
+
`,
|
|
257
|
+
})
|
|
258
|
+
export class GenderComponent {
|
|
259
|
+
content = useIntlayer("my_key");
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
</Tab>
|
|
264
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
265
|
+
|
|
266
|
+
To utilize gender-based content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
267
|
+
|
|
268
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
269
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
270
|
+
|
|
271
|
+
installIntlayer();
|
|
272
|
+
|
|
273
|
+
const content = useIntlayer("my_key").onChange((newContent) => {
|
|
274
|
+
document.getElementById("gender-male")!.textContent =
|
|
275
|
+
newContent.myGender("male");
|
|
276
|
+
document.getElementById("gender-female")!.textContent =
|
|
277
|
+
newContent.myGender("female");
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
// Initial render
|
|
281
|
+
document.getElementById("gender-male")!.textContent = content.myGender("male");
|
|
282
|
+
document.getElementById("gender-female")!.textContent =
|
|
283
|
+
content.myGender("female");
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
</Tab>
|
|
287
|
+
</Tabs>
|
|
288
|
+
|
|
128
289
|
## Additional Resources
|
|
129
290
|
|
|
130
291
|
For more detailed information on configuration and usage, refer to the following resources:
|