@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-06-17
|
|
4
4
|
title: Đánh Giá Tài Liệu
|
|
5
5
|
description: Tìm hiểu cách đánh giá các tệp tài liệu về chất lượng, tính nhất quán và độ đầy đủ trên các ngôn ngữ khác nhau.
|
|
6
6
|
keywords:
|
|
@@ -15,6 +15,10 @@ slugs:
|
|
|
15
15
|
- concept
|
|
16
16
|
- cli
|
|
17
17
|
- doc-review
|
|
18
|
+
history:
|
|
19
|
+
- version: 9.0.0
|
|
20
|
+
date: 2026-06-17
|
|
21
|
+
changes: "Thêm tùy chọn --log"
|
|
18
22
|
author: aymericzip
|
|
19
23
|
---
|
|
20
24
|
|
|
@@ -55,8 +59,110 @@ Lệnh này có thể được sử dụng để đánh giá các tệp đã đ
|
|
|
55
59
|
|
|
56
60
|
## Tham số:
|
|
57
61
|
|
|
58
|
-
|
|
62
|
+
**Tùy chọn danh sách tệp:**
|
|
59
63
|
|
|
60
|
-
|
|
64
|
+
- **`--doc-pattern [docPattern...]`**: Các mẫu glob để khớp với các tệp tài liệu cần đánh giá.
|
|
61
65
|
|
|
62
|
-
|
|
66
|
+
> Ví dụ: `npx intlayer doc review --doc-pattern "docs/**/*.md" "src/**/*.mdx"`
|
|
67
|
+
|
|
68
|
+
- **`--excluded-glob-pattern [excludedGlobPattern...]`**: Các mẫu glob để loại trừ khỏi việc đánh giá.
|
|
69
|
+
|
|
70
|
+
> Ví dụ: `npx intlayer doc review --excluded-glob-pattern "docs/internal/**"`
|
|
71
|
+
|
|
72
|
+
- **`--skip-if-modified-before [skipIfModifiedBefore]`**: Bỏ qua tệp nếu nó đã được sửa đổi trước thời gian cho trước.
|
|
73
|
+
- Có thể là thời gian tuyệt đối như "2025-12-05" (chuỗi hoặc Date)
|
|
74
|
+
- Có thể là thời gian tương đối tính bằng ms `1 * 60 * 60 * 1000` (1 giờ)
|
|
75
|
+
- Tùy chọn này kiểm tra thời gian cập nhật của tệp bằng phương thức `fs.stat`. Do đó, nó có thể bị ảnh hưởng bởi Git hoặc các công cụ khác sửa đổi tệp.
|
|
76
|
+
|
|
77
|
+
> Ví dụ: `npx intlayer doc review --skip-if-modified-before "2025-12-05"`
|
|
78
|
+
|
|
79
|
+
- **`--skip-if-modified-after [skipIfModifiedAfter]`**: Bỏ qua tệp nếu nó đã được sửa đổi trong khoảng thời gian cho trước.
|
|
80
|
+
- Có thể là thời gian tuyệt đối như "2025-12-05" (chuỗi hoặc Date)
|
|
81
|
+
- Có thể là thời gian tương đối tính bằng ms `1 * 60 * 60 * 1000` (1 giờ)
|
|
82
|
+
- Tùy chọn này kiểm tra thời gian cập nhật của tệp bằng phương thức `fs.stat`. Do đó, nó có thể bị ảnh hưởng bởi Git hoặc các công cụ khác sửa đổi tệp.
|
|
83
|
+
|
|
84
|
+
> Ví dụ: `npx intlayer doc review --skip-if-modified-after "2025-12-05"`
|
|
85
|
+
|
|
86
|
+
- **`--skip-if-exists`**: Bỏ qua tệp nếu tệp đã tồn tại.
|
|
87
|
+
|
|
88
|
+
> Ví dụ: `npx intlayer doc review --skip-if-exists`
|
|
89
|
+
|
|
90
|
+
**Tùy chọn chế độ đánh giá:**
|
|
91
|
+
|
|
92
|
+
- **`--log`**: Chế độ chỉ ghi log. Không dịch bằng AI; thay vào đó, ghi lại các phần cần lưu ý (kèm số dòng và nội dung) cho ngôn ngữ cơ sở và ngôn ngữ đích, nhằm hỗ trợ một agent khác tạo bản dịch.
|
|
93
|
+
|
|
94
|
+
> Ví dụ: `npx intlayer doc review --log`
|
|
95
|
+
|
|
96
|
+
**Tùy chọn xuất đầu vào:**
|
|
97
|
+
|
|
98
|
+
- **`--locales [locales...]`**: Các ngôn ngữ đích để đánh giá tài liệu.
|
|
99
|
+
|
|
100
|
+
> Ví dụ: `npx intlayer doc review --locales fr es de`
|
|
101
|
+
|
|
102
|
+
- **`--base-locale [baseLocale]`**: Ngôn ngữ nguồn (tài liệu cơ sở) để so sánh.
|
|
103
|
+
|
|
104
|
+
> Ví dụ: `npx intlayer doc review --base-locale en`
|
|
105
|
+
|
|
106
|
+
**Tùy chọn xử lý tệp:**
|
|
107
|
+
|
|
108
|
+
- **`--nb-simultaneous-file-processed [nbSimultaneousFileProcessed]`**: Số lượng tệp được xử lý đồng thời để đánh giá.
|
|
109
|
+
|
|
110
|
+
> Ví dụ: `npx intlayer doc review --nb-simultaneous-file-processed 5`
|
|
111
|
+
|
|
112
|
+
**Tùy chọn AI:**
|
|
113
|
+
|
|
114
|
+
- **`--model [model]`**: Mô hình AI được sử dụng để đánh giá (ví dụ: `gpt-3.5-turbo`).
|
|
115
|
+
- **`--provider [provider]`**: Nhà cung cấp AI được sử dụng để đánh giá.
|
|
116
|
+
- **`--temperature [temperature]`**: Thiết lập nhiệt độ cho mô hình AI.
|
|
117
|
+
- **`--api-key [apiKey]`**: Cung cấp khóa API riêng của bạn cho dịch vụ AI.
|
|
118
|
+
- **`--application-context [applicationContext]`**: Cung cấp ngữ cảnh bổ sung cho việc đánh giá AI.
|
|
119
|
+
- **`--data-serialization [dataSerialization]`**: Định dạng tuần tự hóa dữ liệu sử dụng cho các tính năng AI của Intlayer. Các tùy chọn: `json` (tiêu chuẩn, đáng tin cậy), `toon` (ít token hơn, kém nhất quán hơn).
|
|
120
|
+
- **`--custom-prompt [prompt]`**: Tùy chỉnh prompt cơ bản được sử dụng cho việc đánh giá. (Lưu ý: Trong hầu hết các trường hợp, tùy chọn `--custom-instructions` được khuyến nghị vì nó cung cấp khả năng kiểm soát tốt hơn.)
|
|
121
|
+
|
|
122
|
+
> Ví dụ: `npx intlayer doc review --model deepseek-chat --provider deepseek --temperature 0.5 --api-key sk-1234567890 --application-context "Ứng dụng của tôi là một cửa hàng mèo"`
|
|
123
|
+
|
|
124
|
+
**Tùy chọn biến môi trường:**
|
|
125
|
+
|
|
126
|
+
- **`--env`**: Chỉ định môi trường (ví dụ: `development`, `production`).
|
|
127
|
+
- **`--env-file [envFile]`**: Cung cấp tệp môi trường tùy chỉnh để tải biến.
|
|
128
|
+
- **`--base-dir`**: Chỉ định thư mục gốc cho dự án.
|
|
129
|
+
- **`--no-cache`**: Vô hiệu hóa bộ nhớ đệm.
|
|
130
|
+
|
|
131
|
+
> Ví dụ: `npx intlayer doc review --base-dir ./docs --env-file .env.production.local`
|
|
132
|
+
|
|
133
|
+
**Tùy chọn ghi log:**
|
|
134
|
+
|
|
135
|
+
- **`--verbose`**: Bật ghi log chi tiết để gỡ lỗi. (mặc định là true khi sử dụng CLI)
|
|
136
|
+
|
|
137
|
+
> Ví dụ: `npx intlayer doc review --verbose`
|
|
138
|
+
|
|
139
|
+
**Tùy chọn hướng dẫn tùy chỉnh:**
|
|
140
|
+
|
|
141
|
+
- **`--custom-instructions [customInstructions]`**: Hướng dẫn tùy chỉnh được thêm vào prompt. Hữu ích để áp dụng các quy tắc cụ thể liên quan đến định dạng, dịch URL, v.v.
|
|
142
|
+
|
|
143
|
+
> Ví dụ: `npx intlayer doc review --custom-instructions "Tránh dịch các URL, và giữ nguyên định dạng markdown"`
|
|
144
|
+
|
|
145
|
+
> Ví dụ: `npx intlayer doc review --custom-instructions "$(cat ./instructions.md)"`
|
|
146
|
+
|
|
147
|
+
**Tùy chọn Git:**
|
|
148
|
+
|
|
149
|
+
- **`--git-diff`**: Chỉ chạy trên các tệp có thay đổi từ cơ sở (mặc định `origin/main`) đến nhánh hiện tại (mặc định: `HEAD`).
|
|
150
|
+
- **`--git-diff-base`**: Chỉ định tham chiếu cơ sở cho git diff (mặc định `origin/main`).
|
|
151
|
+
- **`--git-diff-current`**: Chỉ định tham chiếu hiện tại cho git diff (mặc định: `HEAD`).
|
|
152
|
+
- **`--uncommitted`**: Bao gồm các thay đổi chưa được commit.
|
|
153
|
+
- **`--unpushed`**: Bao gồm các thay đổi chưa được đẩy lên.
|
|
154
|
+
- **`--untracked`**: Bao gồm các tệp chưa được theo dõi.
|
|
155
|
+
|
|
156
|
+
> Ví dụ: `npx intlayer doc review --git-diff --git-diff-base origin/main --git-diff-current HEAD`
|
|
157
|
+
|
|
158
|
+
> Ví dụ: `npx intlayer doc review --uncommitted --unpushed --untracked`
|
|
159
|
+
|
|
160
|
+
> Lưu ý rằng đường dẫn tệp đầu ra sẽ được xác định bằng cách thay thế các mẫu sau:
|
|
161
|
+
>
|
|
162
|
+
> - `/{{baseLocale}}/` thành `/{{locale}}/` (Unix)
|
|
163
|
+
> - `\{{baseLocale}}\` thành `\{{locale}}\` (Windows)
|
|
164
|
+
> - `_{{baseLocale}}.` thành `_{{locale}}.`
|
|
165
|
+
> - `{{baseLocale}}_` thành `{{locale}}_`
|
|
166
|
+
> - `.{{baseLocaleName}}.` thành `.{{localeName}}.`
|
|
167
|
+
>
|
|
168
|
+
> Nếu không tìm thấy mẫu, tệp đầu ra sẽ thêm `.{{locale}}` vào phần mở rộng của tệp. Ví dụ, `./my/file.md` sẽ được đánh giá và cập nhật thành `./my/file.fr.md` cho ngôn ngữ Pháp.
|
package/docs/vi/cli/index.md
CHANGED
package/docs/vi/cli/scan.md
CHANGED
package/docs/vi/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-06-17
|
|
4
4
|
title: Cấu hình (Configuration)
|
|
5
5
|
description: Tìm hiểu cách cấu hình Intlayer cho ứng dụng của bạn. Hiểu các cài đặt và tùy chọn khác nhau có sẵn để tùy chỉnh Intlayer theo nhu cầu của bạn.
|
|
6
6
|
keywords:
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.10.0
|
|
18
|
+
date: 2026-06-17
|
|
19
|
+
changes: "Thêm tùy chọn `format` vào cấu hình từ điển"
|
|
17
20
|
- version: 8.9.4
|
|
18
21
|
date: 2026-05-12
|
|
19
22
|
changes: "Thêm hỗ trợ cho nhà cung cấp LM Studio"
|
|
@@ -135,6 +138,7 @@ Intlayer chấp nhận các định dạng tệp cấu hình JSON, JS, MJS và T
|
|
|
135
138
|
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
136
139
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
137
140
|
import { nextjsRewrite } from "intlayer/routing";
|
|
141
|
+
import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
138
142
|
import { z } from "zod";
|
|
139
143
|
|
|
140
144
|
/**
|
|
@@ -583,9 +587,37 @@ const config: IntlayerConfig = {
|
|
|
583
587
|
},
|
|
584
588
|
|
|
585
589
|
/**
|
|
586
|
-
* Cấu hình
|
|
590
|
+
* Cấu hình từ điển.
|
|
587
591
|
*/
|
|
588
|
-
|
|
592
|
+
dictionary: {
|
|
593
|
+
/**
|
|
594
|
+
* Kiểm soát cách các từ điển được nhập.
|
|
595
|
+
* - "static": Nhập tĩnh tại thời điểm xây dựng.
|
|
596
|
+
* - "dynamic": Nhập động sử dụng Suspense.
|
|
597
|
+
* - "fetch": Tìm nạp động qua API đồng bộ trực tiếp.
|
|
598
|
+
*/
|
|
599
|
+
importMode: "static",
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Định dạng tin nhắn mặc định cho tất cả các từ điển trong dự án.
|
|
603
|
+
* - 'intlayer': Định dạng intlayer gốc (mặc định).
|
|
604
|
+
* - 'icu': Định dạng tin nhắn ICU.
|
|
605
|
+
* - 'i18next': Định dạng i18next.
|
|
606
|
+
* - 'vue-i18n': Định dạng Vue I18n.
|
|
607
|
+
* - 'po': Định dạng GNU Gettext PO.
|
|
608
|
+
*/
|
|
609
|
+
format: "icu",
|
|
610
|
+
},
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* Cấu hình plugin.
|
|
614
|
+
*/
|
|
615
|
+
plugins: [
|
|
616
|
+
syncJSON({
|
|
617
|
+
format: "icu",
|
|
618
|
+
source: ({ locale }) => `./messages/${locale}.json`,
|
|
619
|
+
}),
|
|
620
|
+
],
|
|
589
621
|
};
|
|
590
622
|
|
|
591
623
|
export default config;
|
|
@@ -854,20 +886,21 @@ Các cài đặt về cách nội dung được quản lý trong ứng dụng, b
|
|
|
854
886
|
|
|
855
887
|
Tham số điều khiển các hoạt động của dictionary, bao gồm hành vi tự động điền (auto-fill) và thế hệ nội dung.
|
|
856
888
|
|
|
857
|
-
| Trường | Mô tả | Kiểu dữ liệu | Mặc định
|
|
858
|
-
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
859
|
-
| `fill` | Điều khiển cách các tệp đầu ra auto-fill (bản dịch bằng AI) được tạo ra. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `true`
|
|
860
|
-
| `description` | Giúp editor và CMS hiểu được mục đích của dictionary. Cũng được sử dụng làm ngữ cảnh để tạo các bản dịch bằng AI. | `string` | `undefined`
|
|
861
|
-
| `locale` | Chuyển đổi dictionary thành định dạng cho một locale cụ thể. Mỗi trường đã khai báo trở thành một nút dịch. Nếu thiếu, dictionary được coi là đa ngôn ngữ. | `LocalesValues` | `undefined`
|
|
862
|
-
| `contentAutoTransformation` | Liệu có tự động chuyển đổi các chuỗi nội dung thành các nút có kiểu (Markdown, HTML hoặc chèn biến). | `boolean` | <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false`
|
|
863
|
-
| `location` | Chỉ ra nơi lưu trữ các tệp dictionary và cách chúng được đồng bộ hóa với CMS. | `'local'` | <br/> `'remote'` | <br/> `'hybrid'` | <br/> `'plugin'` | <br/> `string` | `'local'`
|
|
864
|
-
| `importMode` | Kiểm soát cách các dictionary được import. | `'static'` | <br/> `'dynamic'` | <br/> `'fetch'` | `'static'`
|
|
865
|
-
| `
|
|
866
|
-
| `
|
|
867
|
-
| `
|
|
868
|
-
| `
|
|
869
|
-
| `
|
|
870
|
-
| `
|
|
889
|
+
| Trường | Mô tả | Kiểu dữ liệu | Mặc định | Ví dụ | Nhận xét |
|
|
890
|
+
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
891
|
+
| `fill` | Điều khiển cách các tệp đầu ra auto-fill (bản dịch bằng AI) được tạo ra. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: Đường dẫn mặc định (cùng tệp với nguồn).<br/>• `false`: Vô hiệu hóa.<br/>• Template string/Hàm bật tạo tệp theo từng locale.<br/>• Đối tượng theo từng locale: Mỗi locale khớp với template của riêng nó; `false` loại bỏ locale đó.<br/>• Việc bao gồm `{{locale}}` bật tạo tệp theo từng locale.<br/>• Cài đặt `fill` ở cấp độ dictionary luôn được ưu tiên hơn cài đặt toàn cầu này. |
|
|
892
|
+
| `description` | Giúp editor và CMS hiểu được mục đích của dictionary. Cũng được sử dụng làm ngữ cảnh để tạo các bản dịch bằng AI. | `string` | `undefined` | `'User profile section'` | |
|
|
893
|
+
| `locale` | Chuyển đổi dictionary thành định dạng cho một locale cụ thể. Mỗi trường đã khai báo trở thành một nút dịch. Nếu thiếu, dictionary được coi là đa ngôn ngữ. | `LocalesValues` | `undefined` | `'en'` | Sử dụng tính năng này nếu dictionary dành cho một locale cụ thể thay vì chứa các bản dịch đa ngôn ngữ. |
|
|
894
|
+
| `contentAutoTransformation` | Liệu có tự động chuyển đổi các chuỗi nội dung thành các nút có kiểu (Markdown, HTML hoặc chèn biến). | `boolean` | <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')` .<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')` .<br/>• Chèn biến : `Hello {{name}}` → `insert('Hello {{name}}')` . |
|
|
895
|
+
| `location` | Chỉ ra nơi lưu trữ các tệp dictionary và cách chúng được đồng bộ hóa với CMS. | `'local'` | <br/> `'remote'` | <br/> `'hybrid'` | <br/> `'plugin'` | <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: Chỉ quản lý cục bộ.<br/>• `'remote'`: Chỉ quản lý từ xa (CMS).<br/>• `'hybrid'`: Cả quản lý cục bộ và từ xa.<br/>• `'plugin'` hoặc các chuỗi tùy chỉnh: Quản lý thông qua plugin hoặc nguồn tùy chỉnh. |
|
|
896
|
+
| `importMode` | Kiểm soát cách các dictionary được import. | `'static'` | <br/> `'dynamic'` | <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: Import tĩnh.<br/>• `'dynamic'`: Import động thông qua Suspense.<br/>• `'fetch'`: Lấy dữ liệu thông qua Live Sync API; dự phòng về `'dynamic'` nếu thất bại.<br/>• Yêu cầu các plugin `@intlayer/babel` và `@intlayer/swc`.<br/>• Các khóa (keys) phải được khai báo tĩnh.<br/>• Bị bỏ qua nếu `optimize` tắt.<br/>• Không ảnh hưởng đến `getIntlayer`, `getDictionary`, v.v. |
|
|
897
|
+
| `format` | Định dạng tin nhắn mặc định cho tất cả các từ điển trong dự án. | `'intlayer'` | <br/> `'icu'` | <br/> `'i18next'` | <br/> `'vue-i18n'` | <br/> `'po'` | `'intlayer'` | `'icu'` | • `'intlayer'`: Định dạng intlayer gốc.<br/>• `'icu'`: Định dạng tin nhắn ICU.<br/>• `'i18next'`: Định dạng i18next.<br/>• `'vue-i18n'`: Định dạng Vue I18n.<br/>• `'po'`: Định dạng GNU Gettext PO. |
|
|
898
|
+
| `priority` | Độ ưu tiên của dictionary. Khi giải quyết xung đột giữa các dictionary, giá trị cao hơn sẽ giành chiến thắng trước các giá trị thấp hơn. | `number` | `undefined` | `1` | |
|
|
899
|
+
| `live` | ĐÃ LỖI THỜI - sử dụng `importMode: 'fetch'`. Từng biểu thị nội dung dictionary có nên được lấy dữ liệu động thông qua Live Sync API hay không. | `boolean` | `undefined` | | Được đổi tên thành `importMode: 'fetch'` trong v8.0.0. |
|
|
900
|
+
| `schema` | Được tạo tự động bởi Intlayer để xác thực JSON schema. | `'https://intlayer.org/schema.json'` | Tự động tạo | | Không chỉnh sửa thủ công. |
|
|
901
|
+
| `title` | Giúp xác định các dictionary trong editor và CMS. | `string` | `undefined` | `'User Profile'` | |
|
|
902
|
+
| `tags` | Phân loại các dictionary và cung cấp ngữ cảnh hoặc hướng dẫn cho editor và AI. | `string[]` | `undefined` | `['user', 'profile']` | |
|
|
903
|
+
| `version` | Phiên bản của dictionary từ xa; giúp theo dõi phiên bản hiện đang được sử dụng. | `string` | `undefined` | `'1.0.0'` | • Được quản lý trong CMS.<br/>• Đừng chỉnh sửa cục bộ. |
|
|
871
904
|
|
|
872
905
|
**Ví dụ về `fill`**:
|
|
873
906
|
|
|
@@ -71,7 +71,10 @@ export default myConditionalContent;
|
|
|
71
71
|
|
|
72
72
|
## Sử dụng Nội dung Có điều kiện với React Intlayer
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
<Tabs group="framework">
|
|
75
|
+
<Tab label="React" value="react">
|
|
76
|
+
|
|
77
|
+
To utilize conditional 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 condition to select the appropriate output.
|
|
75
78
|
|
|
76
79
|
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
77
80
|
import type { FC } from "react";
|
|
@@ -84,25 +87,25 @@ const ConditionalComponent: FC = () => {
|
|
|
84
87
|
<div>
|
|
85
88
|
<p>
|
|
86
89
|
{
|
|
87
|
-
/*
|
|
90
|
+
/* Output: my content when it's true */
|
|
88
91
|
myCondition(true)
|
|
89
92
|
}
|
|
90
93
|
</p>
|
|
91
94
|
<p>
|
|
92
95
|
{
|
|
93
|
-
/*
|
|
96
|
+
/* Output: my content when it's false */
|
|
94
97
|
myCondition(false)
|
|
95
98
|
}
|
|
96
99
|
</p>
|
|
97
100
|
<p>
|
|
98
101
|
{
|
|
99
|
-
/*
|
|
102
|
+
/* Output: my content when the condition fails */
|
|
100
103
|
myCondition("")
|
|
101
104
|
}
|
|
102
105
|
</p>
|
|
103
106
|
<p>
|
|
104
107
|
{
|
|
105
|
-
/*
|
|
108
|
+
/* Output: my content when the condition fails */
|
|
106
109
|
myCondition(undefined)
|
|
107
110
|
}
|
|
108
111
|
</p>
|
|
@@ -113,6 +116,165 @@ const ConditionalComponent: FC = () => {
|
|
|
113
116
|
export default ConditionalComponent;
|
|
114
117
|
```
|
|
115
118
|
|
|
119
|
+
</Tab>
|
|
120
|
+
<Tab label="Next.js" value="nextjs">
|
|
121
|
+
|
|
122
|
+
To utilize conditional content in Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
123
|
+
|
|
124
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
125
|
+
"use client";
|
|
126
|
+
|
|
127
|
+
import type { FC } from "react";
|
|
128
|
+
import { useIntlayer } from "next-intlayer";
|
|
129
|
+
|
|
130
|
+
const ConditionalComponent: FC = () => {
|
|
131
|
+
const { myCondition } = useIntlayer("my_key");
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<div>
|
|
135
|
+
<p>{myCondition(true)}</p>
|
|
136
|
+
<p>{myCondition(false)}</p>
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export default ConditionalComponent;
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
</Tab>
|
|
145
|
+
<Tab label="Vue" value="vue">
|
|
146
|
+
|
|
147
|
+
To utilize conditional content in Vue components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
148
|
+
|
|
149
|
+
```vue fileName="**/*.vue"
|
|
150
|
+
<script setup lang="ts">
|
|
151
|
+
import { useIntlayer } from "vue-intlayer";
|
|
152
|
+
|
|
153
|
+
const { myCondition } = useIntlayer("my_key");
|
|
154
|
+
</script>
|
|
155
|
+
|
|
156
|
+
<template>
|
|
157
|
+
<div>
|
|
158
|
+
<p>{{ myCondition(true) }}</p>
|
|
159
|
+
<p>{{ myCondition(false) }}</p>
|
|
160
|
+
</div>
|
|
161
|
+
</template>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
</Tab>
|
|
165
|
+
<Tab label="Svelte" value="svelte">
|
|
166
|
+
|
|
167
|
+
To utilize conditional content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:
|
|
168
|
+
|
|
169
|
+
```svelte fileName="**/*.svelte"
|
|
170
|
+
<script lang="ts">
|
|
171
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
172
|
+
|
|
173
|
+
const content = useIntlayer("my_key");
|
|
174
|
+
</script>
|
|
175
|
+
|
|
176
|
+
<div>
|
|
177
|
+
<p>{$content.myCondition(true)}</p>
|
|
178
|
+
<p>{$content.myCondition(false)}</p>
|
|
179
|
+
</div>
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
</Tab>
|
|
183
|
+
<Tab label="Preact" value="preact">
|
|
184
|
+
|
|
185
|
+
To utilize conditional content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
186
|
+
|
|
187
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
188
|
+
import type { FC } from "preact";
|
|
189
|
+
import { useIntlayer } from "preact-intlayer";
|
|
190
|
+
|
|
191
|
+
const ConditionalComponent: FC = () => {
|
|
192
|
+
const { myCondition } = useIntlayer("my_key");
|
|
193
|
+
|
|
194
|
+
return (
|
|
195
|
+
<div>
|
|
196
|
+
<p>{myCondition(true)}</p>
|
|
197
|
+
<p>{myCondition(false)}</p>
|
|
198
|
+
</div>
|
|
199
|
+
);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
export default ConditionalComponent;
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
</Tab>
|
|
206
|
+
<Tab label="Solid" value="solid">
|
|
207
|
+
|
|
208
|
+
To utilize conditional content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
209
|
+
|
|
210
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
211
|
+
import type { Component } from "solid-js";
|
|
212
|
+
import { useIntlayer } from "solid-intlayer";
|
|
213
|
+
|
|
214
|
+
const ConditionalComponent: Component = () => {
|
|
215
|
+
const { myCondition } = useIntlayer("my_key");
|
|
216
|
+
|
|
217
|
+
return (
|
|
218
|
+
<div>
|
|
219
|
+
<p>{myCondition(true)}</p>
|
|
220
|
+
<p>{myCondition(false)}</p>
|
|
221
|
+
</div>
|
|
222
|
+
);
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
export default ConditionalComponent;
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
</Tab>
|
|
229
|
+
<Tab label="Angular" value="angular">
|
|
230
|
+
|
|
231
|
+
To utilize conditional content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
232
|
+
|
|
233
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
234
|
+
import { Component } from "@angular/core";
|
|
235
|
+
import { useIntlayer } from "angular-intlayer";
|
|
236
|
+
|
|
237
|
+
@Component({
|
|
238
|
+
selector: "app-conditional",
|
|
239
|
+
template: `
|
|
240
|
+
<div>
|
|
241
|
+
<p>{{ content().myCondition(true) }}</p>
|
|
242
|
+
<p>{{ content().myCondition(false) }}</p>
|
|
243
|
+
</div>
|
|
244
|
+
`,
|
|
245
|
+
})
|
|
246
|
+
export class ConditionalComponent {
|
|
247
|
+
content = useIntlayer("my_key");
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
</Tab>
|
|
252
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
253
|
+
|
|
254
|
+
To utilize conditional content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:
|
|
255
|
+
|
|
256
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
257
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
258
|
+
|
|
259
|
+
installIntlayer();
|
|
260
|
+
|
|
261
|
+
const content = useIntlayer("my_key").onChange((newContent) => {
|
|
262
|
+
document.getElementById("true-content")!.textContent =
|
|
263
|
+
newContent.myCondition(true);
|
|
264
|
+
document.getElementById("false-content")!.textContent =
|
|
265
|
+
newContent.myCondition(false);
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
// Initial render
|
|
269
|
+
document.getElementById("true-content")!.textContent =
|
|
270
|
+
content.myCondition(true);
|
|
271
|
+
document.getElementById("false-content")!.textContent =
|
|
272
|
+
content.myCondition(false);
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
</Tab>
|
|
276
|
+
</Tabs>
|
|
277
|
+
|
|
116
278
|
## Tài Nguyên Bổ Sung
|
|
117
279
|
|
|
118
280
|
Để biết thêm thông tin chi tiết về cấu hình và cách sử dụng, vui lòng tham khảo các tài nguyên sau:
|