@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
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from Lingui to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your application from Lingui to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- lingui
|
|
8
|
+
- intlayer
|
|
9
|
+
- migration
|
|
10
|
+
- compat
|
|
11
|
+
slugs:
|
|
12
|
+
- doc
|
|
13
|
+
- compatibility
|
|
14
|
+
- lingui
|
|
15
|
+
history:
|
|
16
|
+
- version: 9.0.0
|
|
17
|
+
date: 2026-06-13
|
|
18
|
+
changes: "Init history"
|
|
19
|
+
author: aymericzip
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Migrate from Lingui to Intlayer
|
|
23
|
+
|
|
24
|
+
If your project currently relies on Lingui's macro-based compilation, transitioning to Intlayer allows you to maintain your powerful macro workflows while backing them natively with Intlayer's JSON compilation strategy.
|
|
25
|
+
|
|
26
|
+
## What to do
|
|
27
|
+
|
|
28
|
+
To begin, initialize Intlayer in your project:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npx intlayer init
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This creates your `intlayer.config.ts`. Ensure you retain `@lingui/babel-plugin-lingui-macro` / `@lingui/swc-plugin` in your build step to run _before_ the Intlayer compiler. Then, use the bundler plugin alias to route `@lingui/core` and `@lingui/react` to `@intlayer/lingui`.
|
|
35
|
+
|
|
36
|
+
## What it does under the hood
|
|
37
|
+
|
|
38
|
+
Lingui utilizes macros (like `` t`Hello ${name}` `` and `<Trans>`) which are compiled into runtime calls like `i18n._(id, values)`.
|
|
39
|
+
|
|
40
|
+
Under the hood:
|
|
41
|
+
|
|
42
|
+
- **Macros:** They compile precisely as they did before, ensuring no disruption in your source syntax.
|
|
43
|
+
- **Runtime translation:** The aliased `i18n._()` uses Intlayer dictionaries. Both explicitly named IDs and hashed IDs are fully mapped using Intlayer's `.po` sync plugins to aggregate and prune keys securely.
|
|
44
|
+
- **ICU capabilities:** Support for pluralization, selection, and ICU variants remains robust due to Intlayer's unified ICU parser, ensuring identical rendering outputs.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from next-i18next to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Next.js application from next-i18next to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- next-i18next
|
|
8
|
+
- nextjs
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- next-i18next
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from next-i18next to Intlayer
|
|
24
|
+
|
|
25
|
+
For a complete and detailed step-by-step tutorial, please see our full [next-i18next Migration Guide](../migration_from_next-i18next_to_intlayer.md).
|
|
26
|
+
|
|
27
|
+
Intlayer handles all Next.js Pages Router and App Router implementations transparently. Using the adapter lets you migrate your `next-i18next` implementation with zero code rewrite.
|
|
28
|
+
|
|
29
|
+
## What to do
|
|
30
|
+
|
|
31
|
+
To begin, run:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx intlayer init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This creates the required Intlayer setup file. To swap to Intlayer behind the scenes, update your `next.config.ts`:
|
|
38
|
+
|
|
39
|
+
```typescript fileName="next.config.ts"
|
|
40
|
+
import type { NextConfig } from "next";
|
|
41
|
+
import { createNextI18nPlugin } from "@intlayer/next-i18next/plugin";
|
|
42
|
+
|
|
43
|
+
const withIntlayer = createNextI18nPlugin();
|
|
44
|
+
|
|
45
|
+
const nextConfig: NextConfig = {};
|
|
46
|
+
|
|
47
|
+
export default withIntlayer(nextConfig);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## What it does under the hood
|
|
51
|
+
|
|
52
|
+
The `createNextI18nPlugin` composes Next.js's native behavior alongside the core `next-intlayer` plugin, injecting all required Webpack/Turbopack aliases for `next-i18next`, `react-i18next`, and `i18next`.
|
|
53
|
+
|
|
54
|
+
Under the hood:
|
|
55
|
+
|
|
56
|
+
- **`serverSideTranslations` & `appWithTranslation`:** They now function as wrappers for Intlayer's internal loaders, circumventing large static JSON injection.
|
|
57
|
+
- **Client hooks:** Delegates immediately to `@intlayer/react-i18next` retaining all formatting, plurals, and nested namespace features.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from next-intl to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Next.js application from next-intl to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- next-intl
|
|
8
|
+
- nextjs
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- next-intl
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from next-intl to Intlayer
|
|
24
|
+
|
|
25
|
+
For a complete and detailed step-by-step tutorial, please see our full [next-intl Migration Guide](../migration_from_next-intl_to_intlayer.md).
|
|
26
|
+
|
|
27
|
+
Migrating from `next-intl` to Intlayer allows you to maintain your application routing and syntax completely undisturbed.
|
|
28
|
+
|
|
29
|
+
## What to do
|
|
30
|
+
|
|
31
|
+
Execute the following command in your repository:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx intlayer init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
This will create an `intlayer.config.ts`. In your `next.config.ts`, use the plugin wrapper to seamlessly inject the `next-intl` aliases towards `@intlayer/next-intl`.
|
|
38
|
+
|
|
39
|
+
```typescript fileName="next.config.ts"
|
|
40
|
+
import type { NextConfig } from "next";
|
|
41
|
+
import { createNextIntlPlugin } from "@intlayer/next-intl/plugin";
|
|
42
|
+
|
|
43
|
+
const withIntlayer = createNextIntlPlugin();
|
|
44
|
+
|
|
45
|
+
const nextConfig: NextConfig = {};
|
|
46
|
+
|
|
47
|
+
export default withIntlayer(nextConfig);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## What it does under the hood
|
|
51
|
+
|
|
52
|
+
The bundler wrapper replaces translations, but **leaves the `next-intl/navigation` features intact** (e.g. `Link`, `redirect`, `usePathname`).
|
|
53
|
+
|
|
54
|
+
Under the hood:
|
|
55
|
+
|
|
56
|
+
- **ICU runtime:** Plurals (`=0`, `one`, `other`), select/selectordinal, `#` arguments, and formatted args (`{ts, date, long}`) run correctly using the shared `resolveMessage(..., 'icu')` resolver.
|
|
57
|
+
- **`useTranslations()` & `getTranslations()`:** The bare scope calls extract the first key segment as the correct dictionary identifier. Nested namespaces gracefully split into dictionary paths and prefixes.
|
|
58
|
+
- **Rich formatting:** Both `t.rich()` and `t.markup()` are fully natively implemented, converting HTML-like nodes into rendered React chunks.
|
|
59
|
+
- **`useFormatter`:** `relativeTime`, `list`, `dateTimeRange`, and named formats from the configuration bridge to the core native `Intl` formatters.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from Next Translate to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Next.js application from next-translate to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- next-translate
|
|
8
|
+
- nextjs
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- next-translate
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from Next Translate to Intlayer
|
|
24
|
+
|
|
25
|
+
Migrating from `next-translate` to Intlayer is a near drop-in replacement that retains your existing syntax and tags.
|
|
26
|
+
|
|
27
|
+
## What to do
|
|
28
|
+
|
|
29
|
+
Initialize Intlayer in your project:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx intlayer init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The CLI will scaffold your configuration. You can then apply the Intlayer plugin in your `next.config.ts`, which injects build-time subpath aliases mapping `next-translate/useTranslation` to `@intlayer/next-translate`.
|
|
36
|
+
|
|
37
|
+
## What it does under the hood
|
|
38
|
+
|
|
39
|
+
`next-translate` provides hooks like `useTranslation('ns')`, `t('ns:key.path')`, and the `<Trans>` component.
|
|
40
|
+
|
|
41
|
+
Under the hood:
|
|
42
|
+
|
|
43
|
+
- **Interpolation & Plurals:** It relies closely on the `react-i18next` adapter behavior. Handled dynamically are `{{var}}` placeholders and pluralization mapped from suffixes like `key_0`, `key_one`, and `key_other`.
|
|
44
|
+
- **`<Trans>` component:** Directly supported for HTML-ish tag parsing alongside an array-based `components` prop.
|
|
45
|
+
- **Namespaces:** Subpath aliasing ensures that your `useTranslation` references the correct internal dictionary namespaces without manual modification.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from NGX-Translate to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Angular application from ngx-translate to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- ngx-translate
|
|
8
|
+
- angular
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- ngx-translate
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from NGX-Translate to Intlayer
|
|
24
|
+
|
|
25
|
+
Migrating your Angular application from `ngx-translate` to Intlayer is easy with the compat adapter, allowing you to bypass the need to rewrite all your templates.
|
|
26
|
+
|
|
27
|
+
## What to do
|
|
28
|
+
|
|
29
|
+
Begin by running:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx intlayer init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This sets up the `intlayer.config.ts`. Replace your `TranslateModule.forRoot()` setups and import aliases appropriately to point to `@intlayer/ngx-translate`.
|
|
36
|
+
|
|
37
|
+
## What it does under the hood
|
|
38
|
+
|
|
39
|
+
`ngx-translate` uses `TranslateService` (`instant`, `get`, `stream`) alongside the `{{ 'KEY' | translate:params }}` pipe and the `[translate]` directive.
|
|
40
|
+
|
|
41
|
+
Under the hood:
|
|
42
|
+
|
|
43
|
+
- **Services:** `TranslateService` wraps `getIntlayer` and a locale observable, providing exactly the same methods.
|
|
44
|
+
- **Pipes & Directives:** Re-implemented to resolve against Intlayer dictionaries directly.
|
|
45
|
+
- **Loaders:** `TranslateHttpLoader` setups are converted to warning stubs because Intlayer inherently resolves and bundles your dictionaries at build time (or through standard dynamic imports), completely eliminating the need for HTTP loaders.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from NuxtJS I18n to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Nuxt.js application from @nuxtjs/i18n to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- nuxtjs-i18n
|
|
8
|
+
- nuxt
|
|
9
|
+
- vue
|
|
10
|
+
- intlayer
|
|
11
|
+
- migration
|
|
12
|
+
- compat
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- compatibility
|
|
16
|
+
- nuxtjs-i18n
|
|
17
|
+
history:
|
|
18
|
+
- version: 9.0.0
|
|
19
|
+
date: 2026-06-13
|
|
20
|
+
changes: "Init history"
|
|
21
|
+
author: aymericzip
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Migrate from NuxtJS I18n to Intlayer
|
|
25
|
+
|
|
26
|
+
Migrating your Nuxt application from `@nuxtjs/i18n` to Intlayer is a seamless process using the Nuxt adapter module.
|
|
27
|
+
|
|
28
|
+
## What to do
|
|
29
|
+
|
|
30
|
+
To initialize the project, run:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx intlayer init
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This will set up `intlayer.config.ts`. Then, add the Intlayer Nuxt module (e.g. `@intlayer/nuxt-i18n`) in your `nuxt.config.ts` modules array. This automatically applies the compat configuration for your application.
|
|
37
|
+
|
|
38
|
+
## What it does under the hood
|
|
39
|
+
|
|
40
|
+
`@nuxtjs/i18n` wraps `vue-i18n` while providing Nuxt-specific routing composables (`useLocalePath`, `useSwitchLocalePath`, `<NuxtLinkLocale>`).
|
|
41
|
+
|
|
42
|
+
Under the hood:
|
|
43
|
+
|
|
44
|
+
- **Translations:** Relies natively on the `@intlayer/vue-i18n` compat layer for all string translation tasks (fully supporting `vue-i18n` formats, pipe plurals, and reactivity).
|
|
45
|
+
- **Routing:** Mirrors the routing composables using Intlayer's localized URL helpers.
|
|
46
|
+
- **Configuration:** Reads the `availableLocales` and default settings straight from your `intlayer.config.ts` to coordinate Nuxt pages automatically.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from Polyglot.js to Intlayer"
|
|
5
|
+
description: "Learn how to migrate from Polyglot.js to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- polyglot
|
|
8
|
+
- airbnb
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- polyglot
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from Polyglot.js to Intlayer
|
|
24
|
+
|
|
25
|
+
If you are using Airbnb's Polyglot.js, migrating to Intlayer is extremely straightforward using the compat layer.
|
|
26
|
+
|
|
27
|
+
## What to do
|
|
28
|
+
|
|
29
|
+
Simply run the initialization command in your project:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx intlayer init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This generates `intlayer.config.ts`. You can then utilize the bundler plugin alias to transparently redirect Polyglot imports to `@intlayer/polyglot`.
|
|
36
|
+
|
|
37
|
+
## What it does under the hood
|
|
38
|
+
|
|
39
|
+
Polyglot.js syntax typically relies on `polyglot.t('key', {name})` with `%{name}` interpolations and `smart_count` plurals separated by `"singular |||| plural"`.
|
|
40
|
+
|
|
41
|
+
Under the hood:
|
|
42
|
+
|
|
43
|
+
- **Interpolation:** The compat layer handles `%{var}` placeholders natively.
|
|
44
|
+
- **Plurals:** The string is split at `||||` and evaluated against native `Intl.PluralRules` according to the active locale, mirroring Polyglot's own bucket order per locale.
|
|
45
|
+
- **Dictionaries:** You bypass the need to provide huge JSON configurations to `new Polyglot()` – Intlayer handles the dictionaries dynamically and prunes them automatically.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from react-i18next to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your React application from react-i18next to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- react-i18next
|
|
8
|
+
- i18next
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- react-i18next
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from react-i18next to Intlayer
|
|
24
|
+
|
|
25
|
+
For a complete and detailed step-by-step tutorial, please see our full [react-i18next Migration Guide](../migration_from_react-i18next_to_intlayer.md).
|
|
26
|
+
|
|
27
|
+
Using Intlayer's compat adapter allows you to migrate from `react-i18next` without any changes to your source code imports.
|
|
28
|
+
|
|
29
|
+
## What to do
|
|
30
|
+
|
|
31
|
+
To initialize the project, run:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx intlayer init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
During initialization, Intlayer will install `@intlayer/react-i18next` and create `intlayer.config.ts`. In your bundler (like Vite), apply the Intlayer plugin:
|
|
38
|
+
|
|
39
|
+
```typescript fileName="vite.config.ts"
|
|
40
|
+
import { defineConfig } from "vite";
|
|
41
|
+
import react from "@vitejs/plugin-react";
|
|
42
|
+
import { reactI18nextVitePlugin } from "@intlayer/react-i18next/plugin";
|
|
43
|
+
|
|
44
|
+
export default defineConfig({
|
|
45
|
+
plugins: [react(), reactI18nextVitePlugin()],
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## What it does under the hood
|
|
50
|
+
|
|
51
|
+
The `reactI18nextVitePlugin` wraps the core `vite-intlayer` plugin and injects resolve aliases for `react-i18next` and `i18next`, redirecting them to `@intlayer/react-i18next` and `@intlayer/i18next`.
|
|
52
|
+
|
|
53
|
+
Under the hood:
|
|
54
|
+
|
|
55
|
+
- **`useTranslation` & `withTranslation`:** Rewritten to use Intlayer's native hooks, giving you automatic TypeScript completion for your dictionary keys. It seamlessly supports namespaces (e.g. `t('namespace:key')`).
|
|
56
|
+
- **Plurals & Context:** Handles i18next's suffix-based pluralization (`key_one`, `key_other`) using native `Intl.PluralRules` and context suffixes (`key_male`).
|
|
57
|
+
- **`<Trans>` Component:** Re-implemented to support the `components` prop, object and array forms, and numbered tags `<1>...</1>` directly mapping to your React nodes.
|
|
58
|
+
- **`i18n` instance:** Resolves keys directly from Intlayer without fetching large JSON files, resulting in significantly lower bundle sizes.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from React Intl to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your React application from react-intl to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- react-intl
|
|
8
|
+
- formatjs
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- react-intl
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from React Intl to Intlayer
|
|
24
|
+
|
|
25
|
+
If your React application uses `react-intl` (FormatJS), transitioning to Intlayer is a breeze. Our compat layer seamlessly handles ICU MessageFormat and all existing `Formatted*` components.
|
|
26
|
+
|
|
27
|
+
## What to do
|
|
28
|
+
|
|
29
|
+
Start by running the initialization command in your project:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx intlayer init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Then, set up the Intlayer Vite or Next.js plugin in your configuration. This plugin injects build-time aliases to redirect `react-intl` imports to `@intlayer/react-intl`.
|
|
36
|
+
|
|
37
|
+
```typescript fileName="vite.config.ts"
|
|
38
|
+
import { defineConfig } from "vite";
|
|
39
|
+
import react from "@vitejs/plugin-react";
|
|
40
|
+
import reactIntlVitePlugin from "@intlayer/react-intl/plugin";
|
|
41
|
+
|
|
42
|
+
export default defineConfig({
|
|
43
|
+
plugins: [react(), reactIntlVitePlugin()],
|
|
44
|
+
});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## What it does under the hood
|
|
48
|
+
|
|
49
|
+
The bundler plugin aliases `react-intl` to `@intlayer/react-intl`. Instead of parsing large JSON files manually and wrapping your app in an `IntlProvider`, the Intlayer plugin statically extracts keys and uses Intlayer dictionaries at runtime.
|
|
50
|
+
|
|
51
|
+
Under the hood:
|
|
52
|
+
|
|
53
|
+
- **ICU MessageFormat:** Intlayer uses the `resolveMessage(..., 'icu')` resolver which fully supports the ICU pluralization, selection, date/number formatting, and rich text tags natively.
|
|
54
|
+
- **Method & JSX callers:** `intl.formatMessage({ id: 'a.b' })` and `<FormattedMessage id="a.b">` are identified by the Intlayer compiler plugins (`@intlayer/babel` / `@intlayer/swc`), converting flat dotted keys so that the first segment correctly resolves to the Intlayer dictionary key.
|
|
55
|
+
- **Formatters:** `<FormattedNumber>`, `<FormattedDate>`, etc., bridge over to the native `core/formatters` using `Intl`.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from Svelte I18n to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Svelte application from svelte-i18n to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- svelte-i18n
|
|
8
|
+
- svelte
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- svelte-i18n
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from Svelte I18n to Intlayer
|
|
24
|
+
|
|
25
|
+
Moving your Svelte application from `svelte-i18n` to Intlayer takes just a moment using the compat adapter.
|
|
26
|
+
|
|
27
|
+
## What to do
|
|
28
|
+
|
|
29
|
+
Simply run the initialization command in your project:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx intlayer init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This generates `intlayer.config.ts`. Ensure your SvelteKit / Vite plugins are wrapped with Intlayer's alias plugin to seamlessly map `svelte-i18n` to `@intlayer/svelte-i18n`.
|
|
36
|
+
|
|
37
|
+
## What it does under the hood
|
|
38
|
+
|
|
39
|
+
Svelte-i18n relies on heavily used stores (`$_`, `$t`, `$format`, etc.) and ICU MessageFormat.
|
|
40
|
+
|
|
41
|
+
Under the hood:
|
|
42
|
+
|
|
43
|
+
- **Stores:** Intlayer proxies the `svelte-i18n` stores. `$_` becomes a derived store of the current locale returning an Intlayer resolver.
|
|
44
|
+
- **Keys:** Your flat keys (e.g. `$_('home.title')`) are evaluated such that the first path segment represents the Intlayer dictionary.
|
|
45
|
+
- **ICU Syntax:** Fully handled by the shared ICU resolver (`intl-messageformat` equivalent parsing).
|
|
46
|
+
- **Formatters:** `$date`, `$time`, `$number` calls redirect safely to Intlayer's native core formatters.
|
|
47
|
+
- **Babel/SWC Analysis:** The Intlayer analyzer reads the Svelte store callers (`$_`) inside your `.svelte` source files before compilation to automatically build the relevant dictionary chunks.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from Transloco to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Angular application from Transloco to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- transloco
|
|
8
|
+
- angular
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- transloco
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from Transloco to Intlayer
|
|
24
|
+
|
|
25
|
+
If your Angular application currently uses `@jsverse/transloco`, you can migrate to Intlayer using our compat adapter. This transition allows you to maintain your existing template syntax while utilizing Intlayer's powerful dictionary structure.
|
|
26
|
+
|
|
27
|
+
## What to do
|
|
28
|
+
|
|
29
|
+
Simply run the initialization command in your project:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx intlayer init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This will generate the necessary `intlayer.config.ts` configuration. You will then replace your Transloco imports with `@intlayer/transloco` modules or rely on the build aliases.
|
|
36
|
+
|
|
37
|
+
## What it does under the hood
|
|
38
|
+
|
|
39
|
+
Transloco uses scopes and a `TranslocoService` (`translate`, `selectTranslate`), alongside structural directives (`*transloco="let t"`) and pipes (`| transloco`).
|
|
40
|
+
|
|
41
|
+
Under the hood:
|
|
42
|
+
|
|
43
|
+
- **Scopes:** Map naturally to Intlayer dictionary keys, providing a great pruning story for bundle optimization.
|
|
44
|
+
- **Service & Directives:** Intlayer's Angular adapter seamlessly replaces the providers, allowing your existing template pipes and directives to resolve strings against Intlayer dictionaries.
|
|
45
|
+
- **Build time parsing:** The TypeScript analyzer recognizes `instant/get` calls, and fallback pruning ensures correctness even when template usage isn't statically trackable.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-13
|
|
3
|
+
updatedAt: 2026-06-13
|
|
4
|
+
title: "Migrate from Vue I18n to Intlayer"
|
|
5
|
+
description: "Learn how to migrate your Vue application from vue-i18n to Intlayer using the compat adapter."
|
|
6
|
+
keywords:
|
|
7
|
+
- vue-i18n
|
|
8
|
+
- vue
|
|
9
|
+
- intlayer
|
|
10
|
+
- migration
|
|
11
|
+
- compat
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- compatibility
|
|
15
|
+
- vue-i18n
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-06-13
|
|
19
|
+
changes: "Init history"
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Migrate from Vue I18n to Intlayer
|
|
24
|
+
|
|
25
|
+
If your Vue application currently uses `vue-i18n`, you can migrate to Intlayer without rewriting your components or translating hooks. Intlayer provides a compat adapter that perfectly mirrors `vue-i18n`'s API while leveraging Intlayer's powerful features under the hood.
|
|
26
|
+
|
|
27
|
+
## What to do
|
|
28
|
+
|
|
29
|
+
To get started, simply run the initialization command in your project:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx intlayer init
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
During the initialization, Intlayer will set up your configuration file (`intlayer.config.ts`) and prepare your project for migration. You will just need to add the Intlayer plugin to your Vite configuration to automatically alias the `vue-i18n` imports.
|
|
36
|
+
|
|
37
|
+
```typescript fileName="vite.config.ts"
|
|
38
|
+
import { defineConfig } from "vite";
|
|
39
|
+
import vue from "@vitejs/plugin-vue";
|
|
40
|
+
import vueI18nVitePlugin from "@intlayer/vue-i18n/plugin";
|
|
41
|
+
|
|
42
|
+
export default defineConfig({
|
|
43
|
+
plugins: [vue(), vueI18nVitePlugin()],
|
|
44
|
+
});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## What it does under the hood
|
|
48
|
+
|
|
49
|
+
The `vueI18nVitePlugin` injects a module alias into your bundler. Any import of `vue-i18n` in your codebase will be transparently redirected to `@intlayer/vue-i18n`.
|
|
50
|
+
|
|
51
|
+
**Under the hood, the adapter handles the complex `vue-i18n` syntax natively:**
|
|
52
|
+
|
|
53
|
+
- **Interpolation & Plurals:** Resolves `{name}` and list `{0}` interpolations. Pipe plurals (`"car | cars"`) are converted into Intlayer enumeration/plural nodes based on positional semantics.
|
|
54
|
+
- **Formats:** Functions like `d()` and `n()` wrap `Intl` under the hood, honoring the `datetimeFormats` and `numberFormats` defined in your options.
|
|
55
|
+
- **Global & Local State:** `global.locale` is mapped to a `WritableComputedRef` backed by the Intlayer client, so reactivity behaves exactly as expected (e.g. `locale.value = 'fr'`).
|
|
56
|
+
- **Directives:** The `v-t` directive is registered and functions normally.
|
|
57
|
+
|
|
58
|
+
Your application continues rendering exactly as before, but the content is powered by your Intlayer dictionaries, giving you type safety, better bundle optimization, and seamless CMS integration.
|