@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
|
@@ -29,8 +29,174 @@ Trong Intlayer, hàm `file` cho phép nhúng nội dung tệp tin bên ngoài v
|
|
|
29
29
|
|
|
30
30
|
## Tại sao sử dụng `file` thay vì `import`, `require` hoặc `fs`?
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
<Tabs group="framework">
|
|
33
|
+
<Tab label="React" value="react">
|
|
33
34
|
|
|
35
|
+
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.
|
|
36
|
+
|
|
37
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
38
|
+
import type { FC } from "react";
|
|
39
|
+
import { useIntlayer } from "react-intlayer";
|
|
40
|
+
|
|
41
|
+
const FileComponent: FC = () => {
|
|
42
|
+
const { myFile } = useIntlayer("my_key");
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<div>
|
|
46
|
+
<pre>{myFile}</pre>
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default FileComponent;
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
</Tab>
|
|
55
|
+
<Tab label="Next.js" value="nextjs">
|
|
56
|
+
|
|
57
|
+
To use embedded file content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
58
|
+
|
|
59
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
60
|
+
"use client";
|
|
61
|
+
|
|
62
|
+
import type { FC } from "react";
|
|
63
|
+
import { useIntlayer } from "next-intlayer";
|
|
64
|
+
|
|
65
|
+
const FileComponent: FC = () => {
|
|
66
|
+
const { myFile } = useIntlayer("my_key");
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<div>
|
|
70
|
+
<pre>{myFile}</pre>
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export default FileComponent;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
</Tab>
|
|
79
|
+
<Tab label="Vue" value="vue">
|
|
80
|
+
|
|
81
|
+
To use embedded file content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
82
|
+
|
|
83
|
+
```vue fileName="**/*.vue"
|
|
84
|
+
<script setup lang="ts">
|
|
85
|
+
import { useIntlayer } from "vue-intlayer";
|
|
86
|
+
|
|
87
|
+
const { myFile } = useIntlayer("my_key");
|
|
88
|
+
</script>
|
|
89
|
+
|
|
90
|
+
<template>
|
|
91
|
+
<div>
|
|
92
|
+
<pre>{{ myFile }}</pre>
|
|
93
|
+
</div>
|
|
94
|
+
</template>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
</Tab>
|
|
98
|
+
<Tab label="Svelte" value="svelte">
|
|
99
|
+
|
|
100
|
+
To use embedded file content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
101
|
+
|
|
102
|
+
```svelte fileName="**/*.svelte"
|
|
103
|
+
<script lang="ts">
|
|
104
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
105
|
+
|
|
106
|
+
const content = useIntlayer("my_key");
|
|
107
|
+
</script>
|
|
108
|
+
|
|
109
|
+
<div>
|
|
110
|
+
<pre>{$content.myFile}</pre>
|
|
111
|
+
</div>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
</Tab>
|
|
115
|
+
<Tab label="Preact" value="preact">
|
|
116
|
+
|
|
117
|
+
To use embedded file content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
118
|
+
|
|
119
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
120
|
+
import type { FC } from "preact";
|
|
121
|
+
import { useIntlayer } from "preact-intlayer";
|
|
122
|
+
|
|
123
|
+
const FileComponent: FC = () => {
|
|
124
|
+
const { myFile } = useIntlayer("my_key");
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<div>
|
|
128
|
+
<pre>{myFile}</pre>
|
|
129
|
+
</div>
|
|
130
|
+
);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default FileComponent;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
</Tab>
|
|
137
|
+
<Tab label="Solid" value="solid">
|
|
138
|
+
|
|
139
|
+
To use embedded file content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
140
|
+
|
|
141
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
142
|
+
import type { Component } from "solid-js";
|
|
143
|
+
import { useIntlayer } from "solid-intlayer";
|
|
144
|
+
|
|
145
|
+
const FileComponent: Component = () => {
|
|
146
|
+
const { myFile } = useIntlayer("my_key");
|
|
147
|
+
|
|
148
|
+
return (
|
|
149
|
+
<div>
|
|
150
|
+
<pre>{myFile}</pre>
|
|
151
|
+
</div>
|
|
152
|
+
);
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export default FileComponent;
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
</Tab>
|
|
159
|
+
<Tab label="Angular" value="angular">
|
|
160
|
+
|
|
161
|
+
To use embedded file content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
162
|
+
|
|
163
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
164
|
+
import { Component } from "@angular/core";
|
|
165
|
+
import { useIntlayer } from "angular-intlayer";
|
|
166
|
+
|
|
167
|
+
@Component({
|
|
168
|
+
selector: "app-file",
|
|
169
|
+
template: `
|
|
170
|
+
<div>
|
|
171
|
+
<pre>{{ content().myFile }}</pre>
|
|
172
|
+
</div>
|
|
173
|
+
`,
|
|
174
|
+
})
|
|
175
|
+
export class FileComponent {
|
|
176
|
+
content = useIntlayer("my_key");
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
</Tab>
|
|
181
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
182
|
+
|
|
183
|
+
To use embedded file content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
184
|
+
|
|
185
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
186
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
187
|
+
|
|
188
|
+
installIntlayer();
|
|
189
|
+
|
|
190
|
+
const content = useIntlayer("my_key").onChange((newContent) => {
|
|
191
|
+
document.getElementById("file-content")!.textContent = newContent.myFile;
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
// Initial render
|
|
195
|
+
document.getElementById("file-content")!.textContent = content.myFile;
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
</Tab>
|
|
199
|
+
</Tabs>
|
|
34
200
|
## Cài đặt Nội dung Tệp tin
|
|
35
201
|
|
|
36
202
|
Để nhúng nội dung tệp vào dự án Intlayer của bạn, hãy sử dụng hàm `file` trong một module nội dung. Dưới đây là các ví dụ minh họa các cách triển khai khác nhau.
|
|
@@ -63,7 +229,10 @@ export default myFileContent;
|
|
|
63
229
|
|
|
64
230
|
## Sử dụng Nội dung Tệp trong React Intlayer
|
|
65
231
|
|
|
66
|
-
|
|
232
|
+
<Tabs group="framework">
|
|
233
|
+
<Tab label="React" value="react">
|
|
234
|
+
|
|
235
|
+
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
236
|
|
|
68
237
|
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
69
238
|
import type { FC } from "react";
|
|
@@ -82,6 +251,153 @@ const FileComponent: FC = () => {
|
|
|
82
251
|
export default FileComponent;
|
|
83
252
|
```
|
|
84
253
|
|
|
254
|
+
</Tab>
|
|
255
|
+
<Tab label="Next.js" value="nextjs">
|
|
256
|
+
|
|
257
|
+
To use embedded file content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
258
|
+
|
|
259
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
260
|
+
"use client";
|
|
261
|
+
|
|
262
|
+
import type { FC } from "react";
|
|
263
|
+
import { useIntlayer } from "next-intlayer";
|
|
264
|
+
|
|
265
|
+
const FileComponent: FC = () => {
|
|
266
|
+
const { myFile } = useIntlayer("my_key");
|
|
267
|
+
|
|
268
|
+
return (
|
|
269
|
+
<div>
|
|
270
|
+
<pre>{myFile}</pre>
|
|
271
|
+
</div>
|
|
272
|
+
);
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
export default FileComponent;
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
</Tab>
|
|
279
|
+
<Tab label="Vue" value="vue">
|
|
280
|
+
|
|
281
|
+
To use embedded file content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
282
|
+
|
|
283
|
+
```vue fileName="**/*.vue"
|
|
284
|
+
<script setup lang="ts">
|
|
285
|
+
import { useIntlayer } from "vue-intlayer";
|
|
286
|
+
|
|
287
|
+
const { myFile } = useIntlayer("my_key");
|
|
288
|
+
</script>
|
|
289
|
+
|
|
290
|
+
<template>
|
|
291
|
+
<div>
|
|
292
|
+
<pre>{{ myFile }}</pre>
|
|
293
|
+
</div>
|
|
294
|
+
</template>
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
</Tab>
|
|
298
|
+
<Tab label="Svelte" value="svelte">
|
|
299
|
+
|
|
300
|
+
To use embedded file content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
301
|
+
|
|
302
|
+
```svelte fileName="**/*.svelte"
|
|
303
|
+
<script lang="ts">
|
|
304
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
305
|
+
|
|
306
|
+
const content = useIntlayer("my_key");
|
|
307
|
+
</script>
|
|
308
|
+
|
|
309
|
+
<div>
|
|
310
|
+
<pre>{$content.myFile}</pre>
|
|
311
|
+
</div>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
</Tab>
|
|
315
|
+
<Tab label="Preact" value="preact">
|
|
316
|
+
|
|
317
|
+
To use embedded file content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
318
|
+
|
|
319
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
320
|
+
import type { FC } from "preact";
|
|
321
|
+
import { useIntlayer } from "preact-intlayer";
|
|
322
|
+
|
|
323
|
+
const FileComponent: FC = () => {
|
|
324
|
+
const { myFile } = useIntlayer("my_key");
|
|
325
|
+
|
|
326
|
+
return (
|
|
327
|
+
<div>
|
|
328
|
+
<pre>{myFile}</pre>
|
|
329
|
+
</div>
|
|
330
|
+
);
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
export default FileComponent;
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
</Tab>
|
|
337
|
+
<Tab label="Solid" value="solid">
|
|
338
|
+
|
|
339
|
+
To use embedded file content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
340
|
+
|
|
341
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
342
|
+
import type { Component } from "solid-js";
|
|
343
|
+
import { useIntlayer } from "solid-intlayer";
|
|
344
|
+
|
|
345
|
+
const FileComponent: Component = () => {
|
|
346
|
+
const { myFile } = useIntlayer("my_key");
|
|
347
|
+
|
|
348
|
+
return (
|
|
349
|
+
<div>
|
|
350
|
+
<pre>{myFile}</pre>
|
|
351
|
+
</div>
|
|
352
|
+
);
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
export default FileComponent;
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
</Tab>
|
|
359
|
+
<Tab label="Angular" value="angular">
|
|
360
|
+
|
|
361
|
+
To use embedded file content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
362
|
+
|
|
363
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
364
|
+
import { Component } from "@angular/core";
|
|
365
|
+
import { useIntlayer } from "angular-intlayer";
|
|
366
|
+
|
|
367
|
+
@Component({
|
|
368
|
+
selector: "app-file",
|
|
369
|
+
template: `
|
|
370
|
+
<div>
|
|
371
|
+
<pre>{{ content().myFile }}</pre>
|
|
372
|
+
</div>
|
|
373
|
+
`,
|
|
374
|
+
})
|
|
375
|
+
export class FileComponent {
|
|
376
|
+
content = useIntlayer("my_key");
|
|
377
|
+
}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
</Tab>
|
|
381
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
382
|
+
|
|
383
|
+
To use embedded file content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
384
|
+
|
|
385
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
386
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
387
|
+
|
|
388
|
+
installIntlayer();
|
|
389
|
+
|
|
390
|
+
const content = useIntlayer("my_key").onChange((newContent) => {
|
|
391
|
+
document.getElementById("file-content")!.textContent = newContent.myFile;
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
// Initial render
|
|
395
|
+
document.getElementById("file-content")!.textContent = content.myFile;
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
</Tab>
|
|
399
|
+
</Tabs>
|
|
400
|
+
|
|
85
401
|
## Ví dụ Markdown Đa ngôn ngữ
|
|
86
402
|
|
|
87
403
|
Để hỗ trợ các tệp Markdown có thể chỉnh sửa đa ngôn ngữ, bạn có thể sử dụng `file` kết hợp với `t()` và `md()` để định nghĩa các phiên bản ngôn ngữ khác nhau của một tệp nội dung Markdown.
|
|
@@ -71,7 +71,10 @@ export default myGenderContent;
|
|
|
71
71
|
|
|
72
72
|
## Sử dụng Nội dung Dựa trên Giới tính với React Intlayer
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
<Tabs group="framework">
|
|
75
|
+
<Tab label="React" value="react">
|
|
76
|
+
|
|
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
|
|
|
76
79
|
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
77
80
|
import type { FC } from "react";
|
|
@@ -84,37 +87,37 @@ const GenderComponent: FC = () => {
|
|
|
84
87
|
<div>
|
|
85
88
|
<p>
|
|
86
89
|
{
|
|
87
|
-
/*
|
|
90
|
+
/* Output: my content for male users */
|
|
88
91
|
myGender("male")
|
|
89
92
|
}
|
|
90
93
|
</p>
|
|
91
94
|
<p>
|
|
92
95
|
{
|
|
93
|
-
/*
|
|
96
|
+
/* Output: my content for female users */
|
|
94
97
|
myGender("female")
|
|
95
98
|
}
|
|
96
99
|
</p>
|
|
97
100
|
<p>
|
|
98
101
|
{
|
|
99
|
-
/*
|
|
102
|
+
/* Output: my content for male users */
|
|
100
103
|
myGender("m")
|
|
101
104
|
}
|
|
102
105
|
</p>
|
|
103
106
|
<p>
|
|
104
107
|
{
|
|
105
|
-
/*
|
|
108
|
+
/* Output: my content for female users */
|
|
106
109
|
myGender("f")
|
|
107
110
|
}
|
|
108
111
|
</p>
|
|
109
112
|
<p>
|
|
110
113
|
{
|
|
111
|
-
/*
|
|
114
|
+
/* Output: my content when gender is not specified */
|
|
112
115
|
myGender("")
|
|
113
116
|
}
|
|
114
117
|
</p>
|
|
115
118
|
<p>
|
|
116
119
|
{
|
|
117
|
-
/*
|
|
120
|
+
/* Output: my content when gender is not specified */
|
|
118
121
|
myGender(undefined)
|
|
119
122
|
}
|
|
120
123
|
</p>
|
|
@@ -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
|
## Tài Nguyên Bổ Sung
|
|
129
290
|
|
|
130
291
|
Để biết thêm thông tin chi tiết về cấu hình và cách sử dụng, hãy tham khảo các tài nguyên sau:
|