@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
|
@@ -115,7 +115,10 @@ export default myNestingContent;
|
|
|
115
115
|
|
|
116
116
|
As second parameter, you can specify a path to a nested value within that content. When no path is provided, the entire content of the referenced dictionary is returned.
|
|
117
117
|
|
|
118
|
-
## Using Nesting
|
|
118
|
+
## Using Nesting
|
|
119
|
+
|
|
120
|
+
<Tabs group="framework">
|
|
121
|
+
<Tab label="React" value="react">
|
|
119
122
|
|
|
120
123
|
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:
|
|
121
124
|
|
|
@@ -130,14 +133,35 @@ const NestComponent: FC = () => {
|
|
|
130
133
|
|
|
131
134
|
return (
|
|
132
135
|
<div>
|
|
133
|
-
<p>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
<p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
|
|
137
|
+
<p>Partial Nested Value: {partialNestedContent}</p>
|
|
138
|
+
</div>
|
|
139
|
+
);
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export default NestComponent;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
</Tab>
|
|
146
|
+
<Tab label="Next.js" value="nextjs">
|
|
147
|
+
|
|
148
|
+
To use nested content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
149
|
+
|
|
150
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
151
|
+
"use client";
|
|
152
|
+
|
|
153
|
+
import type { FC } from "react";
|
|
154
|
+
import { useIntlayer } from "next-intlayer";
|
|
155
|
+
|
|
156
|
+
const NestComponent: FC = () => {
|
|
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>
|
|
141
165
|
</div>
|
|
142
166
|
);
|
|
143
167
|
};
|
|
@@ -145,6 +169,146 @@ const NestComponent: FC = () => {
|
|
|
145
169
|
export default NestComponent;
|
|
146
170
|
```
|
|
147
171
|
|
|
172
|
+
</Tab>
|
|
173
|
+
<Tab label="Vue" value="vue">
|
|
174
|
+
|
|
175
|
+
To use nested content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
176
|
+
|
|
177
|
+
```vue fileName="**/*.vue"
|
|
178
|
+
<script setup lang="ts">
|
|
179
|
+
import { useIntlayer } from "vue-intlayer";
|
|
180
|
+
|
|
181
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
182
|
+
"key_of_my_second_dictionary"
|
|
183
|
+
);
|
|
184
|
+
</script>
|
|
185
|
+
|
|
186
|
+
<template>
|
|
187
|
+
<div>
|
|
188
|
+
<p>Full Nested Content: {{ JSON.stringify(fullNestedContent) }}</p>
|
|
189
|
+
<p>Partial Nested Value: {{ partialNestedContent }}</p>
|
|
190
|
+
</div>
|
|
191
|
+
</template>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
</Tab>
|
|
195
|
+
<Tab label="Svelte" value="svelte">
|
|
196
|
+
|
|
197
|
+
To use nested content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
198
|
+
|
|
199
|
+
```svelte fileName="**/*.svelte"
|
|
200
|
+
<script lang="ts">
|
|
201
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
202
|
+
|
|
203
|
+
const content = useIntlayer("key_of_my_second_dictionary");
|
|
204
|
+
</script>
|
|
205
|
+
|
|
206
|
+
<div>
|
|
207
|
+
<p>Full Nested Content: {JSON.stringify($content.fullNestedContent)}</p>
|
|
208
|
+
<p>Partial Nested Value: {$content.partialNestedContent}</p>
|
|
209
|
+
</div>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
</Tab>
|
|
213
|
+
<Tab label="Preact" value="preact">
|
|
214
|
+
|
|
215
|
+
To use nested content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
216
|
+
|
|
217
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
218
|
+
import type { FC } from "preact";
|
|
219
|
+
import { useIntlayer } from "preact-intlayer";
|
|
220
|
+
|
|
221
|
+
const NestComponent: FC = () => {
|
|
222
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
223
|
+
"key_of_my_second_dictionary"
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
return (
|
|
227
|
+
<div>
|
|
228
|
+
<p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
|
|
229
|
+
<p>Partial Nested Value: {partialNestedContent}</p>
|
|
230
|
+
</div>
|
|
231
|
+
);
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export default NestComponent;
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
</Tab>
|
|
238
|
+
<Tab label="Solid" value="solid">
|
|
239
|
+
|
|
240
|
+
To use nested content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
241
|
+
|
|
242
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
243
|
+
import type { Component } from "solid-js";
|
|
244
|
+
import { useIntlayer } from "solid-intlayer";
|
|
245
|
+
|
|
246
|
+
const NestComponent: Component = () => {
|
|
247
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
248
|
+
"key_of_my_second_dictionary"
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
return (
|
|
252
|
+
<div>
|
|
253
|
+
<p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
|
|
254
|
+
<p>Partial Nested Value: {partialNestedContent}</p>
|
|
255
|
+
</div>
|
|
256
|
+
);
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
export default NestComponent;
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
</Tab>
|
|
263
|
+
<Tab label="Angular" value="angular">
|
|
264
|
+
|
|
265
|
+
To use nested content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
266
|
+
|
|
267
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
268
|
+
import { Component } from "@angular/core";
|
|
269
|
+
import { useIntlayer } from "angular-intlayer";
|
|
270
|
+
|
|
271
|
+
@Component({
|
|
272
|
+
selector: "app-nest",
|
|
273
|
+
template: `
|
|
274
|
+
<div>
|
|
275
|
+
<p>
|
|
276
|
+
Full Nested Content: {{ JSON.stringify(content().fullNestedContent) }}
|
|
277
|
+
</p>
|
|
278
|
+
<p>Partial Nested Value: {{ content().partialNestedContent }}</p>
|
|
279
|
+
</div>
|
|
280
|
+
`,
|
|
281
|
+
})
|
|
282
|
+
export class NestComponent {
|
|
283
|
+
content = useIntlayer("key_of_my_second_dictionary");
|
|
284
|
+
JSON = JSON;
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
</Tab>
|
|
289
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
290
|
+
|
|
291
|
+
To use nested content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
292
|
+
|
|
293
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
294
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
295
|
+
|
|
296
|
+
installIntlayer();
|
|
297
|
+
|
|
298
|
+
const content = useIntlayer("key_of_my_second_dictionary").onChange(
|
|
299
|
+
(newContent) => {
|
|
300
|
+
document.getElementById("nested")!.textContent =
|
|
301
|
+
newContent.partialNestedContent;
|
|
302
|
+
}
|
|
303
|
+
);
|
|
304
|
+
|
|
305
|
+
// Initial render
|
|
306
|
+
document.getElementById("nested")!.textContent = content.partialNestedContent;
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
</Tab>
|
|
310
|
+
</Tabs>
|
|
311
|
+
|
|
148
312
|
## Additional Resources
|
|
149
313
|
|
|
150
314
|
For more detailed information on configuration and usage, refer to the following resources:
|
|
@@ -104,7 +104,10 @@ export default openingsContent;
|
|
|
104
104
|
>
|
|
105
105
|
> The `{{count}}` placeholder is automatically replaced with the count you pass at runtime. You can include other placeholders too (see [Custom placeholders](#custom-placeholders) below).
|
|
106
106
|
|
|
107
|
-
## Using Plural Content
|
|
107
|
+
## Using Plural Content
|
|
108
|
+
|
|
109
|
+
<Tabs group="framework">
|
|
110
|
+
<Tab label="React" value="react">
|
|
108
111
|
|
|
109
112
|
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.
|
|
110
113
|
|
|
@@ -117,11 +120,6 @@ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
|
|
|
117
120
|
|
|
118
121
|
return (
|
|
119
122
|
<div>
|
|
120
|
-
{/* In English: */}
|
|
121
|
-
{/* count=0 → "0 openings" (other) */}
|
|
122
|
-
{/* count=1 → "1 opening" (one) */}
|
|
123
|
-
{/* count=2 → "2 openings" (other) */}
|
|
124
|
-
{/* count=21 → "21 openings" (other) */}
|
|
125
123
|
<p>{totalOpenings(count)}</p>
|
|
126
124
|
</div>
|
|
127
125
|
);
|
|
@@ -130,13 +128,160 @@ const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
|
|
|
130
128
|
export default OpeningsComponent;
|
|
131
129
|
```
|
|
132
130
|
|
|
133
|
-
|
|
131
|
+
</Tab>
|
|
132
|
+
<Tab label="Next.js" value="nextjs">
|
|
133
|
+
|
|
134
|
+
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:
|
|
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 OpeningsComponent: FC<{ count: number }> = ({ count }) => {
|
|
143
|
+
const { totalOpenings } = useIntlayer("total_openings");
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<div>
|
|
147
|
+
<p>{totalOpenings(count)}</p>
|
|
148
|
+
</div>
|
|
149
|
+
);
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export default OpeningsComponent;
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
</Tab>
|
|
156
|
+
<Tab label="Vue" value="vue">
|
|
157
|
+
|
|
158
|
+
To use plural content in Vue components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
|
|
159
|
+
|
|
160
|
+
```vue fileName="**/*.vue"
|
|
161
|
+
<script setup lang="ts">
|
|
162
|
+
import { useIntlayer } from "vue-intlayer";
|
|
163
|
+
|
|
164
|
+
defineProps<{ count: number }>();
|
|
165
|
+
|
|
166
|
+
const { totalOpenings } = useIntlayer("total_openings");
|
|
167
|
+
</script>
|
|
168
|
+
|
|
169
|
+
<template>
|
|
170
|
+
<div>
|
|
171
|
+
<p>{{ totalOpenings(count) }}</p>
|
|
172
|
+
</div>
|
|
173
|
+
</template>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
</Tab>
|
|
177
|
+
<Tab label="Svelte" value="svelte">
|
|
178
|
+
|
|
179
|
+
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:
|
|
180
|
+
|
|
181
|
+
```svelte fileName="**/*.svelte"
|
|
182
|
+
<script lang="ts">
|
|
183
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
184
|
+
|
|
185
|
+
export let count: number;
|
|
186
|
+
|
|
187
|
+
const content = useIntlayer("total_openings");
|
|
188
|
+
</script>
|
|
189
|
+
|
|
190
|
+
<div>
|
|
191
|
+
<p>{$content.totalOpenings(count)}</p>
|
|
192
|
+
</div>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
</Tab>
|
|
196
|
+
<Tab label="Preact" value="preact">
|
|
197
|
+
|
|
198
|
+
To use plural content in Preact components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
|
|
199
|
+
|
|
200
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
201
|
+
import type { FC } from "preact";
|
|
202
|
+
import { useIntlayer } from "preact-intlayer";
|
|
203
|
+
|
|
204
|
+
const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
|
|
205
|
+
const { totalOpenings } = useIntlayer("total_openings");
|
|
206
|
+
|
|
207
|
+
return (
|
|
208
|
+
<div>
|
|
209
|
+
<p>{totalOpenings(count)}</p>
|
|
210
|
+
</div>
|
|
211
|
+
);
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
export default OpeningsComponent;
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
</Tab>
|
|
218
|
+
<Tab label="Solid" value="solid">
|
|
219
|
+
|
|
220
|
+
To use plural content in SolidJS components, retrieve it via the `useIntlayer` hook and call it with a count. 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 OpeningsComponent: Component<{ count: number }> = (props) => {
|
|
227
|
+
const { totalOpenings } = useIntlayer("total_openings");
|
|
228
|
+
|
|
229
|
+
return (
|
|
230
|
+
<div>
|
|
231
|
+
<p>{totalOpenings(props.count)}</p>
|
|
232
|
+
</div>
|
|
233
|
+
);
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
export default OpeningsComponent;
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
</Tab>
|
|
240
|
+
<Tab label="Angular" value="angular">
|
|
241
|
+
|
|
242
|
+
To use plural content in Angular components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:
|
|
243
|
+
|
|
244
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
245
|
+
import { Component, Input } from "@angular/core";
|
|
246
|
+
import { useIntlayer } from "angular-intlayer";
|
|
247
|
+
|
|
248
|
+
@Component({
|
|
249
|
+
selector: "app-openings",
|
|
250
|
+
template: `
|
|
251
|
+
<div>
|
|
252
|
+
<p>{{ content().totalOpenings(count) }}</p>
|
|
253
|
+
</div>
|
|
254
|
+
`,
|
|
255
|
+
})
|
|
256
|
+
export class OpeningsComponent {
|
|
257
|
+
@Input() count!: number;
|
|
258
|
+
|
|
259
|
+
content = useIntlayer("total_openings");
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
</Tab>
|
|
264
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
134
265
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
266
|
+
To use plural content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook and call it with a count. 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("total_openings").onChange((newContent) => {
|
|
274
|
+
document.getElementById("openings")!.textContent =
|
|
275
|
+
newContent.totalOpenings(5);
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
// Initial render
|
|
279
|
+
document.getElementById("openings")!.textContent = content.totalOpenings(5);
|
|
138
280
|
```
|
|
139
281
|
|
|
282
|
+
</Tab>
|
|
283
|
+
</Tabs>
|
|
284
|
+
|
|
140
285
|
## Custom placeholders
|
|
141
286
|
|
|
142
287
|
Plural strings can include placeholders other than `{{count}}`. Pass them in the object form alongside `count`:
|
|
@@ -83,7 +83,10 @@ const config: IntlayerConfig = {
|
|
|
83
83
|
export default config;
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
## Using Translations
|
|
86
|
+
## Using Translations
|
|
87
|
+
|
|
88
|
+
<Tabs group="framework">
|
|
89
|
+
<Tab label="React" value="react">
|
|
87
90
|
|
|
88
91
|
With `react-intlayer`, you can use translations in React components. Here's an example:
|
|
89
92
|
|
|
@@ -106,63 +109,153 @@ export default MyComponent;
|
|
|
106
109
|
|
|
107
110
|
This component fetches the corresponding translation based on the current locale set in your application.
|
|
108
111
|
|
|
109
|
-
|
|
112
|
+
</Tab>
|
|
113
|
+
<Tab label="Next.js" value="nextjs">
|
|
110
114
|
|
|
111
|
-
`intlayer
|
|
115
|
+
With `next-intlayer`, you can use translations in React Server Components or Client Components. Here's an example in a Client Component:
|
|
112
116
|
|
|
113
|
-
```
|
|
114
|
-
|
|
117
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
118
|
+
"use client";
|
|
115
119
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
content: string;
|
|
119
|
-
}
|
|
120
|
+
import type { FC } from "react";
|
|
121
|
+
import { useIntlayer } from "next-intlayer";
|
|
120
122
|
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
content: {
|
|
124
|
-
profileText: t<ICustomContent>({
|
|
125
|
-
en: {
|
|
126
|
-
title: "Page Title",
|
|
127
|
-
content: "Page Content",
|
|
128
|
-
},
|
|
129
|
-
fr: {
|
|
130
|
-
title: "Titre de la Page",
|
|
131
|
-
content: "Contenu de la Page",
|
|
132
|
-
},
|
|
133
|
-
es: {
|
|
134
|
-
title: "Título de la Página",
|
|
135
|
-
content: "Contenido de la Página",
|
|
136
|
-
},
|
|
137
|
-
}),
|
|
138
|
-
},
|
|
139
|
-
} satisfies Dictionary;
|
|
123
|
+
const MyComponent: FC = () => {
|
|
124
|
+
const content = useIntlayer("multi_lang");
|
|
140
125
|
|
|
141
|
-
|
|
126
|
+
return (
|
|
127
|
+
<div>
|
|
128
|
+
<p>{content.welcomeMessage}</p>
|
|
129
|
+
</div>
|
|
130
|
+
);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default MyComponent;
|
|
142
134
|
```
|
|
143
135
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
136
|
+
</Tab>
|
|
137
|
+
<Tab label="Vue" value="vue">
|
|
138
|
+
|
|
139
|
+
With `vue-intlayer`, you can use translations in Vue components. Here's an example:
|
|
140
|
+
|
|
141
|
+
```vue fileName="**/*.vue"
|
|
142
|
+
<script setup lang="ts">
|
|
143
|
+
import { useIntlayer } from "vue-intlayer";
|
|
144
|
+
|
|
145
|
+
const content = useIntlayer("multi_lang");
|
|
146
|
+
</script>
|
|
147
|
+
|
|
148
|
+
<template>
|
|
149
|
+
<div>
|
|
150
|
+
<p>{{ content.welcomeMessage }}</p>
|
|
151
|
+
</div>
|
|
152
|
+
</template>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
</Tab>
|
|
156
|
+
<Tab label="Svelte" value="svelte">
|
|
157
|
+
|
|
158
|
+
With `svelte-intlayer`, you can use translations in Svelte components. The hook returns a Svelte store. Here's an example:
|
|
159
|
+
|
|
160
|
+
```svelte fileName="**/*.svelte"
|
|
161
|
+
<script lang="ts">
|
|
162
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
163
|
+
|
|
164
|
+
const content = useIntlayer("multi_lang");
|
|
165
|
+
</script>
|
|
166
|
+
|
|
167
|
+
<div>
|
|
168
|
+
<p>{$content.welcomeMessage}</p>
|
|
169
|
+
</div>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
</Tab>
|
|
173
|
+
<Tab label="Preact" value="preact">
|
|
174
|
+
|
|
175
|
+
With `preact-intlayer`, you can use translations in Preact components. Here's an example:
|
|
176
|
+
|
|
177
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
178
|
+
import type { FC } from "preact";
|
|
179
|
+
import { useIntlayer } from "preact-intlayer";
|
|
180
|
+
|
|
181
|
+
const MyComponent: FC = () => {
|
|
182
|
+
const content = useIntlayer("multi_lang");
|
|
183
|
+
|
|
184
|
+
return (
|
|
185
|
+
<div>
|
|
186
|
+
<p>{content.welcomeMessage}</p>
|
|
187
|
+
</div>
|
|
188
|
+
);
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
export default MyComponent;
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
</Tab>
|
|
195
|
+
<Tab label="Solid" value="solid">
|
|
196
|
+
|
|
197
|
+
With `solid-intlayer`, you can use translations in SolidJS components. Here's an example:
|
|
198
|
+
|
|
199
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
200
|
+
import type { Component } from "solid-js";
|
|
201
|
+
import { useIntlayer } from "solid-intlayer";
|
|
202
|
+
|
|
203
|
+
const MyComponent: Component = () => {
|
|
204
|
+
const content = useIntlayer("multi_lang");
|
|
205
|
+
|
|
206
|
+
return (
|
|
207
|
+
<div>
|
|
208
|
+
<p>{content.welcomeMessage}</p>
|
|
209
|
+
</div>
|
|
210
|
+
);
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
export default MyComponent;
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
</Tab>
|
|
217
|
+
<Tab label="Angular" value="angular">
|
|
218
|
+
|
|
219
|
+
With `angular-intlayer`, you can use translations in Angular components. Here's an example:
|
|
220
|
+
|
|
221
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
222
|
+
import { Component } from "@angular/core";
|
|
223
|
+
import { useIntlayer } from "angular-intlayer";
|
|
224
|
+
|
|
225
|
+
@Component({
|
|
226
|
+
selector: "app-my-component",
|
|
227
|
+
template: `
|
|
228
|
+
<div>
|
|
229
|
+
<p>{{ content().welcomeMessage }}</p>
|
|
230
|
+
</div>
|
|
231
|
+
`,
|
|
232
|
+
})
|
|
233
|
+
export class MyComponent {
|
|
234
|
+
content = useIntlayer("multi_lang");
|
|
167
235
|
}
|
|
168
236
|
```
|
|
237
|
+
|
|
238
|
+
</Tab>
|
|
239
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
240
|
+
|
|
241
|
+
With `vanilla-intlayer`, you can use translations by subscribing to content changes. Here's an example:
|
|
242
|
+
|
|
243
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
244
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
245
|
+
|
|
246
|
+
installIntlayer();
|
|
247
|
+
|
|
248
|
+
const content = useIntlayer("multi_lang").onChange((newContent) => {
|
|
249
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
250
|
+
newContent.welcomeMessage
|
|
251
|
+
);
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
// Initial render
|
|
255
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
256
|
+
content.welcomeMessage
|
|
257
|
+
);
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
</Tab>
|
|
261
|
+
</Tabs>
|