@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
|
@@ -27,46 +27,180 @@ author: aymericzip
|
|
|
27
27
|
|
|
28
28
|
## Определение переводов
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
<Tabs group="framework">
|
|
31
|
+
<Tab label="React" value="react">
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
With `react-intlayer`, you can use translations in React components. Here's an example:
|
|
33
34
|
|
|
34
|
-
```
|
|
35
|
-
import {
|
|
35
|
+
```jsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
36
|
+
import type { FC } from "react";
|
|
37
|
+
import { useIntlayer } from "react-intlayer";
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
39
|
+
const MyComponent: FC = () => {
|
|
40
|
+
const content = useIntlayer("multi_lang");
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
} satisfies Dictionary<Content>;
|
|
42
|
+
return (
|
|
43
|
+
<div>
|
|
44
|
+
<p>{content.welcomeMessage}</p>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export default MyComponent;
|
|
51
50
|
```
|
|
52
51
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
52
|
+
This component fetches the corresponding translation based on the current locale set in your application.
|
|
53
|
+
|
|
54
|
+
</Tab>
|
|
55
|
+
<Tab label="Next.js" value="nextjs">
|
|
56
|
+
|
|
57
|
+
With `next-intlayer`, you can use translations in React Server Components or Client Components. Here's an example in a Client Component:
|
|
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 MyComponent: FC = () => {
|
|
66
|
+
const content = useIntlayer("multi_lang");
|
|
67
|
+
|
|
68
|
+
return (
|
|
69
|
+
<div>
|
|
70
|
+
<p>{content.welcomeMessage}</p>
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export default MyComponent;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
</Tab>
|
|
79
|
+
<Tab label="Vue" value="vue">
|
|
80
|
+
|
|
81
|
+
With `vue-intlayer`, you can use translations in Vue components. Here's an example:
|
|
82
|
+
|
|
83
|
+
```vue fileName="**/*.vue"
|
|
84
|
+
<script setup lang="ts">
|
|
85
|
+
import { useIntlayer } from "vue-intlayer";
|
|
86
|
+
|
|
87
|
+
const content = useIntlayer("multi_lang");
|
|
88
|
+
</script>
|
|
89
|
+
|
|
90
|
+
<template>
|
|
91
|
+
<div>
|
|
92
|
+
<p>{{ content.welcomeMessage }}</p>
|
|
93
|
+
</div>
|
|
94
|
+
</template>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
</Tab>
|
|
98
|
+
<Tab label="Svelte" value="svelte">
|
|
99
|
+
|
|
100
|
+
With `svelte-intlayer`, you can use translations in Svelte components. The hook returns a Svelte store. Here's an example:
|
|
101
|
+
|
|
102
|
+
```svelte fileName="**/*.svelte"
|
|
103
|
+
<script lang="ts">
|
|
104
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
105
|
+
|
|
106
|
+
const content = useIntlayer("multi_lang");
|
|
107
|
+
</script>
|
|
108
|
+
|
|
109
|
+
<div>
|
|
110
|
+
<p>{$content.welcomeMessage}</p>
|
|
111
|
+
</div>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
</Tab>
|
|
115
|
+
<Tab label="Preact" value="preact">
|
|
116
|
+
|
|
117
|
+
With `preact-intlayer`, you can use translations in Preact components. 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 MyComponent: FC = () => {
|
|
124
|
+
const content = useIntlayer("multi_lang");
|
|
125
|
+
|
|
126
|
+
return (
|
|
127
|
+
<div>
|
|
128
|
+
<p>{content.welcomeMessage}</p>
|
|
129
|
+
</div>
|
|
130
|
+
);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default MyComponent;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
</Tab>
|
|
137
|
+
<Tab label="Solid" value="solid">
|
|
138
|
+
|
|
139
|
+
With `solid-intlayer`, you can use translations in SolidJS components. 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 MyComponent: Component = () => {
|
|
146
|
+
const content = useIntlayer("multi_lang");
|
|
147
|
+
|
|
148
|
+
return (
|
|
149
|
+
<div>
|
|
150
|
+
<p>{content.welcomeMessage}</p>
|
|
151
|
+
</div>
|
|
152
|
+
);
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export default MyComponent;
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
</Tab>
|
|
159
|
+
<Tab label="Angular" value="angular">
|
|
160
|
+
|
|
161
|
+
With `angular-intlayer`, you can use translations in Angular components. 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-my-component",
|
|
169
|
+
template: `
|
|
170
|
+
<div>
|
|
171
|
+
<p>{{ content().welcomeMessage }}</p>
|
|
172
|
+
</div>
|
|
173
|
+
`,
|
|
174
|
+
})
|
|
175
|
+
export class MyComponent {
|
|
176
|
+
content = useIntlayer("multi_lang");
|
|
67
177
|
}
|
|
68
178
|
```
|
|
69
179
|
|
|
180
|
+
</Tab>
|
|
181
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
182
|
+
|
|
183
|
+
With `vanilla-intlayer`, you can use translations by subscribing to content changes. 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("multi_lang").onChange((newContent) => {
|
|
191
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
192
|
+
newContent.welcomeMessage
|
|
193
|
+
);
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
// Initial render
|
|
197
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
198
|
+
content.welcomeMessage
|
|
199
|
+
);
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
</Tab>
|
|
203
|
+
</Tabs>
|
|
70
204
|
## Конфигурация локалей
|
|
71
205
|
|
|
72
206
|
Для обеспечения правильной обработки переводов вы можете настроить поддерживаемые локали в файле `intlayer.config.ts`. Эта конфигурация позволяет определить языки, которые поддерживает ваше приложение:
|
|
@@ -85,7 +219,10 @@ export default config;
|
|
|
85
219
|
|
|
86
220
|
## Использование переводов в React-компонентах
|
|
87
221
|
|
|
88
|
-
|
|
222
|
+
<Tabs group="framework">
|
|
223
|
+
<Tab label="React" value="react">
|
|
224
|
+
|
|
225
|
+
With `react-intlayer`, you can use translations in React components. Here's an example:
|
|
89
226
|
|
|
90
227
|
```jsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
91
228
|
import type { FC } from "react";
|
|
@@ -104,7 +241,158 @@ const MyComponent: FC = () => {
|
|
|
104
241
|
export default MyComponent;
|
|
105
242
|
```
|
|
106
243
|
|
|
107
|
-
|
|
244
|
+
This component fetches the corresponding translation based on the current locale set in your application.
|
|
245
|
+
|
|
246
|
+
</Tab>
|
|
247
|
+
<Tab label="Next.js" value="nextjs">
|
|
248
|
+
|
|
249
|
+
With `next-intlayer`, you can use translations in React Server Components or Client Components. Here's an example in a Client Component:
|
|
250
|
+
|
|
251
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
252
|
+
"use client";
|
|
253
|
+
|
|
254
|
+
import type { FC } from "react";
|
|
255
|
+
import { useIntlayer } from "next-intlayer";
|
|
256
|
+
|
|
257
|
+
const MyComponent: FC = () => {
|
|
258
|
+
const content = useIntlayer("multi_lang");
|
|
259
|
+
|
|
260
|
+
return (
|
|
261
|
+
<div>
|
|
262
|
+
<p>{content.welcomeMessage}</p>
|
|
263
|
+
</div>
|
|
264
|
+
);
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
export default MyComponent;
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
</Tab>
|
|
271
|
+
<Tab label="Vue" value="vue">
|
|
272
|
+
|
|
273
|
+
With `vue-intlayer`, you can use translations in Vue components. Here's an example:
|
|
274
|
+
|
|
275
|
+
```vue fileName="**/*.vue"
|
|
276
|
+
<script setup lang="ts">
|
|
277
|
+
import { useIntlayer } from "vue-intlayer";
|
|
278
|
+
|
|
279
|
+
const content = useIntlayer("multi_lang");
|
|
280
|
+
</script>
|
|
281
|
+
|
|
282
|
+
<template>
|
|
283
|
+
<div>
|
|
284
|
+
<p>{{ content.welcomeMessage }}</p>
|
|
285
|
+
</div>
|
|
286
|
+
</template>
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
</Tab>
|
|
290
|
+
<Tab label="Svelte" value="svelte">
|
|
291
|
+
|
|
292
|
+
With `svelte-intlayer`, you can use translations in Svelte components. The hook returns a Svelte store. Here's an example:
|
|
293
|
+
|
|
294
|
+
```svelte fileName="**/*.svelte"
|
|
295
|
+
<script lang="ts">
|
|
296
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
297
|
+
|
|
298
|
+
const content = useIntlayer("multi_lang");
|
|
299
|
+
</script>
|
|
300
|
+
|
|
301
|
+
<div>
|
|
302
|
+
<p>{$content.welcomeMessage}</p>
|
|
303
|
+
</div>
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
</Tab>
|
|
307
|
+
<Tab label="Preact" value="preact">
|
|
308
|
+
|
|
309
|
+
With `preact-intlayer`, you can use translations in Preact components. Here's an example:
|
|
310
|
+
|
|
311
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
312
|
+
import type { FC } from "preact";
|
|
313
|
+
import { useIntlayer } from "preact-intlayer";
|
|
314
|
+
|
|
315
|
+
const MyComponent: FC = () => {
|
|
316
|
+
const content = useIntlayer("multi_lang");
|
|
317
|
+
|
|
318
|
+
return (
|
|
319
|
+
<div>
|
|
320
|
+
<p>{content.welcomeMessage}</p>
|
|
321
|
+
</div>
|
|
322
|
+
);
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
export default MyComponent;
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
</Tab>
|
|
329
|
+
<Tab label="Solid" value="solid">
|
|
330
|
+
|
|
331
|
+
With `solid-intlayer`, you can use translations in SolidJS components. Here's an example:
|
|
332
|
+
|
|
333
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
334
|
+
import type { Component } from "solid-js";
|
|
335
|
+
import { useIntlayer } from "solid-intlayer";
|
|
336
|
+
|
|
337
|
+
const MyComponent: Component = () => {
|
|
338
|
+
const content = useIntlayer("multi_lang");
|
|
339
|
+
|
|
340
|
+
return (
|
|
341
|
+
<div>
|
|
342
|
+
<p>{content.welcomeMessage}</p>
|
|
343
|
+
</div>
|
|
344
|
+
);
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
export default MyComponent;
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
</Tab>
|
|
351
|
+
<Tab label="Angular" value="angular">
|
|
352
|
+
|
|
353
|
+
With `angular-intlayer`, you can use translations in Angular components. Here's an example:
|
|
354
|
+
|
|
355
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
356
|
+
import { Component } from "@angular/core";
|
|
357
|
+
import { useIntlayer } from "angular-intlayer";
|
|
358
|
+
|
|
359
|
+
@Component({
|
|
360
|
+
selector: "app-my-component",
|
|
361
|
+
template: `
|
|
362
|
+
<div>
|
|
363
|
+
<p>{{ content().welcomeMessage }}</p>
|
|
364
|
+
</div>
|
|
365
|
+
`,
|
|
366
|
+
})
|
|
367
|
+
export class MyComponent {
|
|
368
|
+
content = useIntlayer("multi_lang");
|
|
369
|
+
}
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
</Tab>
|
|
373
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
374
|
+
|
|
375
|
+
With `vanilla-intlayer`, you can use translations by subscribing to content changes. Here's an example:
|
|
376
|
+
|
|
377
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
378
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
379
|
+
|
|
380
|
+
installIntlayer();
|
|
381
|
+
|
|
382
|
+
const content = useIntlayer("multi_lang").onChange((newContent) => {
|
|
383
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
384
|
+
newContent.welcomeMessage
|
|
385
|
+
);
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
// Initial render
|
|
389
|
+
document.getElementById("welcome-message")!.textContent = String(
|
|
390
|
+
content.welcomeMessage
|
|
391
|
+
);
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
</Tab>
|
|
395
|
+
</Tabs>
|
|
108
396
|
|
|
109
397
|
## Пользовательские объекты контента
|
|
110
398
|
|
|
@@ -838,53 +838,6 @@ bun run build # Or bun run dev
|
|
|
838
838
|
|
|
839
839
|
</Steps>
|
|
840
840
|
|
|
841
|
-
### Настройка TypeScript
|
|
842
|
-
|
|
843
|
-
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать вашу кодовую базу более надежной.
|
|
844
|
-
|
|
845
|
-

|
|
846
|
-
|
|
847
|
-

|
|
848
|
-
|
|
849
|
-
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы.
|
|
850
|
-
|
|
851
|
-
```json5 fileName="tsconfig.json"
|
|
852
|
-
{
|
|
853
|
-
// ... Ваши существующие настройки TypeScript
|
|
854
|
-
"include": [
|
|
855
|
-
// ... Ваши существующие конфигурации TypeScript
|
|
856
|
-
".intlayer/**/*.ts", // Включить автоматически сгенерированные типы
|
|
857
|
-
],
|
|
858
|
-
}
|
|
859
|
-
```
|
|
860
|
-
|
|
861
|
-
### Конфигурация Git
|
|
862
|
-
|
|
863
|
-
Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш репозиторий Git.
|
|
864
|
-
|
|
865
|
-
Для этого вы можете добавить следующие инструкции в ваш файл `.gitignore`:
|
|
866
|
-
|
|
867
|
-
```# Игнорировать файлы, сгенерированные Intlayer
|
|
868
|
-
.intlayer
|
|
869
|
-
```
|
|
870
|
-
|
|
871
|
-
### Расширение VS Code
|
|
872
|
-
|
|
873
|
-
Для улучшения вашего опыта разработки с Intlayer вы можете установить официальное **расширение Intlayer для VS Code**.
|
|
874
|
-
|
|
875
|
-
[Установить из магазина расширений VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
876
|
-
|
|
877
|
-
Это расширение предоставляет:
|
|
878
|
-
|
|
879
|
-
- **Автодополнение** для ключей переводов.
|
|
880
|
-
- **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
|
|
881
|
-
- **Встроенный просмотр** переведенного контента.
|
|
882
|
-
- **Быстрые действия** для удобного создания и обновления переводов.
|
|
883
|
-
|
|
884
|
-
Для получения дополнительной информации о том, как использовать расширение, обратитесь к [документации расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
885
|
-
|
|
886
|
-
---
|
|
887
|
-
|
|
888
841
|
### (Опционально) Sitemap и robots.txt (генерация на сборке)
|
|
889
842
|
|
|
890
843
|
Intlayer предоставляет `generateSitemap` и `getMultilingualUrls` - утилиты, которые формируют многоязычные `sitemap.xml` и `robots.txt` для краулеров и позволяют автоматически записать их в `public/`. Обычно запускают небольшой Node-скрипт **до** Vite (например, npm-хуки `predev` / `prebuild`).
|
|
@@ -959,6 +912,54 @@ console.log("SEO files generated successfully.");
|
|
|
959
912
|
|
|
960
913
|
Подстройте команды для pnpm или yarn. Скрипт можно вызывать из CI или другого шага.
|
|
961
914
|
|
|
915
|
+
### Настройка TypeScript
|
|
916
|
+
|
|
917
|
+
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать вашу codebase более надежной.
|
|
918
|
+
|
|
919
|
+

|
|
920
|
+
|
|
921
|
+

|
|
922
|
+
|
|
923
|
+
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы.
|
|
924
|
+
|
|
925
|
+
```json5 fileName="tsconfig.json"
|
|
926
|
+
{
|
|
927
|
+
// ... Ваши существующие конфигурации TypeScript
|
|
928
|
+
"include": [
|
|
929
|
+
// ... Ваши существующие конфигурации TypeScript
|
|
930
|
+
".intlayer/**/*.ts", // Включите автоматически сгенерированные типы
|
|
931
|
+
],
|
|
932
|
+
}
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
### Конфигурация Git
|
|
936
|
+
|
|
937
|
+
Рекомендуется игнорировать файлы, генерируемые Intlayer. Это позволит избежать их коммита в ваш Git-репозиторий.
|
|
938
|
+
|
|
939
|
+
Для этого вы можете добавить следующие инструкции в ваш файл `.gitignore`:
|
|
940
|
+
|
|
941
|
+
```plaintext fileName=".gitignore"
|
|
942
|
+
# Игнорировать файлы, генерируемые Intlayer
|
|
943
|
+
.intlayer
|
|
944
|
+
```
|
|
945
|
+
|
|
946
|
+
### Расширение VS Code
|
|
947
|
+
|
|
948
|
+
Чтобы улучшить ваш опыт разработки с Intlayer, вы можете установить официальное расширение **Intlayer VS Code Extension**.
|
|
949
|
+
|
|
950
|
+
[Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
951
|
+
|
|
952
|
+
Это расширение предоставляет:
|
|
953
|
+
|
|
954
|
+
- **Автодополнение** для ключей перевода.
|
|
955
|
+
- **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
|
|
956
|
+
- **Встроенный предпросмотр** переведенного контента.
|
|
957
|
+
- **Быстрые действия** для легкого создания и обновления переводов.
|
|
958
|
+
|
|
959
|
+
Для получения более подробной информации о том, как использовать расширение, обратитесь к [документации Intlayer VS Code Extension](https://intlayer.org/ru/doc/vs-code-extension).
|
|
960
|
+
|
|
961
|
+
---
|
|
962
|
+
|
|
962
963
|
### Продвинутые возможности
|
|
963
964
|
|
|
964
965
|
Для расширения возможностей вы можете реализовать [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) или вынести ваш контент во внешний [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).
|