@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
|
@@ -31,89 +31,197 @@ author: aymericzip
|
|
|
31
31
|
|
|
32
32
|
## Налаштування вкладення
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
<Tabs group="framework">
|
|
35
|
+
<Tab label="React" value="react">
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
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:
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
40
|
+
import type { FC } from "react";
|
|
41
|
+
import { useIntlayer } from "react-intlayer";
|
|
39
42
|
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
const NestComponent: FC = () => {
|
|
44
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
45
|
+
"key_of_my_second_dictionary"
|
|
46
|
+
);
|
|
42
47
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
} satisfies Dictionary;
|
|
48
|
+
return (
|
|
49
|
+
<div>
|
|
50
|
+
<p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
|
|
51
|
+
<p>Partial Nested Value: {partialNestedContent}</p>
|
|
52
|
+
</div>
|
|
53
|
+
);
|
|
54
|
+
};
|
|
53
55
|
|
|
54
|
-
export default
|
|
56
|
+
export default NestComponent;
|
|
55
57
|
```
|
|
56
58
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
</Tab>
|
|
60
|
+
<Tab label="Next.js" value="nextjs">
|
|
61
|
+
|
|
62
|
+
To use nested content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
63
|
+
|
|
64
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
65
|
+
"use client";
|
|
66
|
+
|
|
67
|
+
import type { FC } from "react";
|
|
68
|
+
import { useIntlayer } from "next-intlayer";
|
|
69
|
+
|
|
70
|
+
const NestComponent: FC = () => {
|
|
71
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
72
|
+
"key_of_my_second_dictionary"
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<div>
|
|
77
|
+
<p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
|
|
78
|
+
<p>Partial Nested Value: {partialNestedContent}</p>
|
|
79
|
+
</div>
|
|
80
|
+
);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export default NestComponent;
|
|
69
84
|
```
|
|
70
85
|
|
|
71
|
-
|
|
86
|
+
</Tab>
|
|
87
|
+
<Tab label="Vue" value="vue">
|
|
72
88
|
|
|
73
|
-
|
|
89
|
+
To use nested content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
74
90
|
|
|
75
|
-
```
|
|
76
|
-
|
|
91
|
+
```vue fileName="**/*.vue"
|
|
92
|
+
<script setup lang="ts">
|
|
93
|
+
import { useIntlayer } from "vue-intlayer";
|
|
77
94
|
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
fullNestedContent: nest("key_of_my_first_dictionary"),
|
|
83
|
-
// Посилання на конкретне вкладене значення:
|
|
84
|
-
partialNestedContent: nest(
|
|
85
|
-
"key_of_my_first_dictionary",
|
|
86
|
-
"subContent.contentNumber"
|
|
87
|
-
),
|
|
88
|
-
},
|
|
89
|
-
} satisfies Dictionary;
|
|
95
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
96
|
+
"key_of_my_second_dictionary"
|
|
97
|
+
);
|
|
98
|
+
</script>
|
|
90
99
|
|
|
91
|
-
|
|
100
|
+
<template>
|
|
101
|
+
<div>
|
|
102
|
+
<p>Full Nested Content: {{ JSON.stringify(fullNestedContent) }}</p>
|
|
103
|
+
<p>Partial Nested Value: {{ partialNestedContent }}</p>
|
|
104
|
+
</div>
|
|
105
|
+
</template>
|
|
92
106
|
```
|
|
93
107
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
</Tab>
|
|
109
|
+
<Tab label="Svelte" value="svelte">
|
|
110
|
+
|
|
111
|
+
To use nested content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
112
|
+
|
|
113
|
+
```svelte fileName="**/*.svelte"
|
|
114
|
+
<script lang="ts">
|
|
115
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
116
|
+
|
|
117
|
+
const content = useIntlayer("key_of_my_second_dictionary");
|
|
118
|
+
</script>
|
|
119
|
+
|
|
120
|
+
<div>
|
|
121
|
+
<p>Full Nested Content: {JSON.stringify($content.fullNestedContent)}</p>
|
|
122
|
+
<p>Partial Nested Value: {$content.partialNestedContent}</p>
|
|
123
|
+
</div>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
</Tab>
|
|
127
|
+
<Tab label="Preact" value="preact">
|
|
128
|
+
|
|
129
|
+
To use nested content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
130
|
+
|
|
131
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
132
|
+
import type { FC } from "preact";
|
|
133
|
+
import { useIntlayer } from "preact-intlayer";
|
|
134
|
+
|
|
135
|
+
const NestComponent: FC = () => {
|
|
136
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
137
|
+
"key_of_my_second_dictionary"
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
return (
|
|
141
|
+
<div>
|
|
142
|
+
<p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
|
|
143
|
+
<p>Partial Nested Value: {partialNestedContent}</p>
|
|
144
|
+
</div>
|
|
145
|
+
);
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
export default NestComponent;
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
</Tab>
|
|
152
|
+
<Tab label="Solid" value="solid">
|
|
153
|
+
|
|
154
|
+
To use nested content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
155
|
+
|
|
156
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
157
|
+
import type { Component } from "solid-js";
|
|
158
|
+
import { useIntlayer } from "solid-intlayer";
|
|
159
|
+
|
|
160
|
+
const NestComponent: Component = () => {
|
|
161
|
+
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
162
|
+
"key_of_my_second_dictionary"
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
return (
|
|
166
|
+
<div>
|
|
167
|
+
<p>Full Nested Content: {JSON.stringify(fullNestedContent)}</p>
|
|
168
|
+
<p>Partial Nested Value: {partialNestedContent}</p>
|
|
169
|
+
</div>
|
|
170
|
+
);
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
export default NestComponent;
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
</Tab>
|
|
177
|
+
<Tab label="Angular" value="angular">
|
|
178
|
+
|
|
179
|
+
To use nested content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
180
|
+
|
|
181
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
182
|
+
import { Component } from "@angular/core";
|
|
183
|
+
import { useIntlayer } from "angular-intlayer";
|
|
184
|
+
|
|
185
|
+
@Component({
|
|
186
|
+
selector: "app-nest",
|
|
187
|
+
template: `
|
|
188
|
+
<div>
|
|
189
|
+
<p>
|
|
190
|
+
Full Nested Content: {{ JSON.stringify(content().fullNestedContent) }}
|
|
191
|
+
</p>
|
|
192
|
+
<p>Partial Nested Value: {{ content().partialNestedContent }}</p>
|
|
193
|
+
</div>
|
|
194
|
+
`,
|
|
195
|
+
})
|
|
196
|
+
export class NestComponent {
|
|
197
|
+
content = useIntlayer("key_of_my_second_dictionary");
|
|
198
|
+
JSON = JSON;
|
|
113
199
|
}
|
|
114
200
|
```
|
|
115
201
|
|
|
116
|
-
|
|
202
|
+
</Tab>
|
|
203
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
204
|
+
|
|
205
|
+
To use nested content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
206
|
+
|
|
207
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
208
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
209
|
+
|
|
210
|
+
installIntlayer();
|
|
211
|
+
|
|
212
|
+
const content = useIntlayer("key_of_my_second_dictionary").onChange(
|
|
213
|
+
(newContent) => {
|
|
214
|
+
document.getElementById("nested")!.textContent =
|
|
215
|
+
newContent.partialNestedContent;
|
|
216
|
+
}
|
|
217
|
+
);
|
|
218
|
+
|
|
219
|
+
// Initial render
|
|
220
|
+
document.getElementById("nested")!.textContent = content.partialNestedContent;
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
</Tab>
|
|
224
|
+
</Tabs>
|
|
117
225
|
|
|
118
226
|
## Використання вкладення з React Intlayer
|
|
119
227
|
|
|
@@ -35,12 +35,181 @@ author: aymericzip
|
|
|
35
35
|
|
|
36
36
|
## Коли використовувати `plural` проти `enu`
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
| Граматичні форми множини з урахуванням локалі (одне яблуко / два яблука / 5 яблук) | `plural` |
|
|
41
|
-
| Спеціальні числові діапазони (`<5`, `>=10`) або кошики, що не належать до 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
|
## Налаштування контенту у множині
|
|
46
215
|
|
|
@@ -87,7 +87,10 @@ export default config;
|
|
|
87
87
|
|
|
88
88
|
## Використання перекладів у React-компонентах
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
<Tabs group="framework">
|
|
91
|
+
<Tab label="React" value="react">
|
|
92
|
+
|
|
93
|
+
With `react-intlayer`, you can use translations in React components. Here's an example:
|
|
91
94
|
|
|
92
95
|
```jsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
93
96
|
import type { FC } from "react";
|
|
@@ -106,7 +109,158 @@ const MyComponent: FC = () => {
|
|
|
106
109
|
export default MyComponent;
|
|
107
110
|
```
|
|
108
111
|
|
|
109
|
-
|
|
112
|
+
This component fetches the corresponding translation based on the current locale set in your application.
|
|
113
|
+
|
|
114
|
+
</Tab>
|
|
115
|
+
<Tab label="Next.js" value="nextjs">
|
|
116
|
+
|
|
117
|
+
With `next-intlayer`, you can use translations in React Server Components or Client Components. Here's an example in a Client Component:
|
|
118
|
+
|
|
119
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
120
|
+
"use client";
|
|
121
|
+
|
|
122
|
+
import type { FC } from "react";
|
|
123
|
+
import { useIntlayer } from "next-intlayer";
|
|
124
|
+
|
|
125
|
+
const MyComponent: FC = () => {
|
|
126
|
+
const content = useIntlayer("multi_lang");
|
|
127
|
+
|
|
128
|
+
return (
|
|
129
|
+
<div>
|
|
130
|
+
<p>{content.welcomeMessage}</p>
|
|
131
|
+
</div>
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export default MyComponent;
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
</Tab>
|
|
139
|
+
<Tab label="Vue" value="vue">
|
|
140
|
+
|
|
141
|
+
With `vue-intlayer`, you can use translations in Vue components. Here's an example:
|
|
142
|
+
|
|
143
|
+
```vue fileName="**/*.vue"
|
|
144
|
+
<script setup lang="ts">
|
|
145
|
+
import { useIntlayer } from "vue-intlayer";
|
|
146
|
+
|
|
147
|
+
const content = useIntlayer("multi_lang");
|
|
148
|
+
</script>
|
|
149
|
+
|
|
150
|
+
<template>
|
|
151
|
+
<div>
|
|
152
|
+
<p>{{ content.welcomeMessage }}</p>
|
|
153
|
+
</div>
|
|
154
|
+
</template>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
</Tab>
|
|
158
|
+
<Tab label="Svelte" value="svelte">
|
|
159
|
+
|
|
160
|
+
With `svelte-intlayer`, you can use translations in Svelte components. The hook returns a Svelte store. Here's an example:
|
|
161
|
+
|
|
162
|
+
```svelte fileName="**/*.svelte"
|
|
163
|
+
<script lang="ts">
|
|
164
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
165
|
+
|
|
166
|
+
const content = useIntlayer("multi_lang");
|
|
167
|
+
</script>
|
|
168
|
+
|
|
169
|
+
<div>
|
|
170
|
+
<p>{$content.welcomeMessage}</p>
|
|
171
|
+
</div>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
</Tab>
|
|
175
|
+
<Tab label="Preact" value="preact">
|
|
176
|
+
|
|
177
|
+
With `preact-intlayer`, you can use translations in Preact components. Here's an example:
|
|
178
|
+
|
|
179
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
180
|
+
import type { FC } from "preact";
|
|
181
|
+
import { useIntlayer } from "preact-intlayer";
|
|
182
|
+
|
|
183
|
+
const MyComponent: FC = () => {
|
|
184
|
+
const content = useIntlayer("multi_lang");
|
|
185
|
+
|
|
186
|
+
return (
|
|
187
|
+
<div>
|
|
188
|
+
<p>{content.welcomeMessage}</p>
|
|
189
|
+
</div>
|
|
190
|
+
);
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
export default MyComponent;
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
</Tab>
|
|
197
|
+
<Tab label="Solid" value="solid">
|
|
198
|
+
|
|
199
|
+
With `solid-intlayer`, you can use translations in SolidJS components. Here's an example:
|
|
200
|
+
|
|
201
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
202
|
+
import type { Component } from "solid-js";
|
|
203
|
+
import { useIntlayer } from "solid-intlayer";
|
|
204
|
+
|
|
205
|
+
const MyComponent: Component = () => {
|
|
206
|
+
const content = useIntlayer("multi_lang");
|
|
207
|
+
|
|
208
|
+
return (
|
|
209
|
+
<div>
|
|
210
|
+
<p>{content.welcomeMessage}</p>
|
|
211
|
+
</div>
|
|
212
|
+
);
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
export default MyComponent;
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
</Tab>
|
|
219
|
+
<Tab label="Angular" value="angular">
|
|
220
|
+
|
|
221
|
+
With `angular-intlayer`, you can use translations in Angular components. Here's an example:
|
|
222
|
+
|
|
223
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
224
|
+
import { Component } from "@angular/core";
|
|
225
|
+
import { useIntlayer } from "angular-intlayer";
|
|
226
|
+
|
|
227
|
+
@Component({
|
|
228
|
+
selector: "app-my-component",
|
|
229
|
+
template: `
|
|
230
|
+
<div>
|
|
231
|
+
<p>{{ content().welcomeMessage }}</p>
|
|
232
|
+
</div>
|
|
233
|
+
`,
|
|
234
|
+
})
|
|
235
|
+
export class MyComponent {
|
|
236
|
+
content = useIntlayer("multi_lang");
|
|
237
|
+
}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
</Tab>
|
|
241
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
242
|
+
|
|
243
|
+
With `vanilla-intlayer`, you can use translations by subscribing to content changes. Here's an example:
|
|
244
|
+
|
|
245
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
246
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
247
|
+
|
|
248
|
+
installIntlayer();
|
|
249
|
+
|
|
250
|
+
const content = useIntlayer("multi_lang").onChange((newContent) => {
|
|
251
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
252
|
+
newContent.welcomeMessage
|
|
253
|
+
);
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
// Initial render
|
|
257
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
258
|
+
content.welcomeMessage
|
|
259
|
+
);
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
</Tab>
|
|
263
|
+
</Tabs>
|
|
110
264
|
|
|
111
265
|
## Користувацькі об'єкти контенту
|
|
112
266
|
|