@intlayer/docs 9.0.0-canary.9 → 9.0.1
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/blog/ar/internationalization_and_SEO.md +6 -0
- package/blog/ar/intlayer_with_i18next.md +4 -4
- package/blog/ar/intlayer_with_next-i18next.md +4 -4
- package/blog/ar/intlayer_with_next-intl.md +4 -4
- package/blog/ar/intlayer_with_react-i18next.md +4 -4
- package/blog/ar/intlayer_with_react-intl.md +4 -4
- package/blog/ar/intlayer_with_vue-i18n.md +4 -4
- package/blog/ar/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/de/internationalization_and_SEO.md +6 -0
- package/blog/de/intlayer_with_i18next.md +4 -4
- package/blog/de/intlayer_with_next-i18next.md +4 -4
- package/blog/de/intlayer_with_next-intl.md +4 -4
- package/blog/de/intlayer_with_react-i18next.md +4 -4
- package/blog/de/intlayer_with_react-intl.md +4 -4
- package/blog/de/intlayer_with_vue-i18n.md +4 -4
- package/blog/de/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/en/internationalization_and_SEO.md +6 -0
- package/blog/en/intlayer_with_i18next.md +4 -4
- package/blog/en/intlayer_with_next-i18next.md +4 -4
- package/blog/en/intlayer_with_next-intl.md +4 -4
- package/blog/en/intlayer_with_react-i18next.md +4 -4
- package/blog/en/intlayer_with_react-intl.md +4 -4
- package/blog/en/intlayer_with_vue-i18n.md +4 -4
- package/blog/en/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/en/rag_powered_documentation_assistant.md +6 -0
- package/blog/en-GB/internationalization_and_SEO.md +6 -0
- package/blog/en-GB/intlayer_with_i18next.md +4 -4
- package/blog/en-GB/intlayer_with_next-i18next.md +4 -4
- package/blog/en-GB/intlayer_with_next-intl.md +4 -4
- package/blog/en-GB/intlayer_with_react-i18next.md +4 -4
- package/blog/en-GB/intlayer_with_react-intl.md +4 -4
- package/blog/en-GB/intlayer_with_vue-i18n.md +4 -4
- package/blog/en-GB/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/es/internationalization_and_SEO.md +6 -0
- package/blog/es/intlayer_with_i18next.md +4 -4
- package/blog/es/intlayer_with_next-i18next.md +4 -4
- package/blog/es/intlayer_with_next-intl.md +4 -4
- package/blog/es/intlayer_with_react-i18next.md +4 -4
- package/blog/es/intlayer_with_react-intl.md +4 -4
- package/blog/es/intlayer_with_vue-i18n.md +4 -4
- package/blog/es/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/fr/internationalization_and_SEO.md +6 -0
- package/blog/fr/intlayer_with_i18next.md +4 -4
- package/blog/fr/intlayer_with_next-i18next.md +4 -4
- package/blog/fr/intlayer_with_next-intl.md +4 -4
- package/blog/fr/intlayer_with_react-i18next.md +4 -4
- package/blog/fr/intlayer_with_react-intl.md +4 -4
- package/blog/fr/intlayer_with_vue-i18n.md +4 -4
- package/blog/fr/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/hi/internationalization_and_SEO.md +6 -0
- package/blog/hi/intlayer_with_i18next.md +4 -4
- package/blog/hi/intlayer_with_next-i18next.md +4 -4
- package/blog/hi/intlayer_with_next-intl.md +4 -4
- package/blog/hi/intlayer_with_react-i18next.md +4 -4
- package/blog/hi/intlayer_with_react-intl.md +4 -4
- package/blog/hi/intlayer_with_vue-i18n.md +4 -4
- package/blog/hi/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/id/internationalization_and_SEO.md +6 -0
- package/blog/id/intlayer_with_i18next.md +4 -4
- package/blog/id/intlayer_with_next-i18next.md +4 -4
- package/blog/id/intlayer_with_next-intl.md +4 -4
- package/blog/id/intlayer_with_react-i18next.md +4 -4
- package/blog/id/intlayer_with_react-intl.md +4 -4
- package/blog/id/intlayer_with_vue-i18n.md +4 -4
- package/blog/id/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/it/internationalization_and_SEO.md +6 -0
- package/blog/it/intlayer_with_i18next.md +4 -4
- package/blog/it/intlayer_with_next-i18next.md +4 -4
- package/blog/it/intlayer_with_next-intl.md +4 -4
- package/blog/it/intlayer_with_react-i18next.md +4 -4
- package/blog/it/intlayer_with_react-intl.md +4 -4
- package/blog/it/intlayer_with_vue-i18n.md +4 -4
- package/blog/it/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/ja/internationalization_and_SEO.md +6 -0
- package/blog/ja/intlayer_with_i18next.md +4 -4
- package/blog/ja/intlayer_with_next-i18next.md +4 -4
- package/blog/ja/intlayer_with_next-intl.md +4 -4
- package/blog/ja/intlayer_with_react-i18next.md +4 -4
- package/blog/ja/intlayer_with_react-intl.md +4 -4
- package/blog/ja/intlayer_with_vue-i18n.md +4 -4
- package/blog/ja/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/ko/internationalization_and_SEO.md +6 -0
- package/blog/ko/intlayer_with_i18next.md +4 -4
- package/blog/ko/intlayer_with_next-i18next.md +4 -4
- package/blog/ko/intlayer_with_next-intl.md +4 -4
- package/blog/ko/intlayer_with_react-i18next.md +4 -4
- package/blog/ko/intlayer_with_react-intl.md +4 -4
- package/blog/ko/intlayer_with_vue-i18n.md +4 -4
- package/blog/ko/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/pl/internationalization_and_SEO.md +6 -0
- package/blog/pl/intlayer_with_i18next.md +4 -4
- package/blog/pl/intlayer_with_next-i18next.md +4 -4
- package/blog/pl/intlayer_with_next-intl.md +4 -4
- package/blog/pl/intlayer_with_react-i18next.md +4 -4
- package/blog/pl/intlayer_with_react-intl.md +4 -4
- package/blog/pl/intlayer_with_vue-i18n.md +4 -4
- package/blog/pl/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/pt/internationalization_and_SEO.md +6 -0
- package/blog/pt/intlayer_with_i18next.md +4 -4
- package/blog/pt/intlayer_with_next-i18next.md +4 -4
- package/blog/pt/intlayer_with_next-intl.md +4 -4
- package/blog/pt/intlayer_with_react-i18next.md +4 -4
- package/blog/pt/intlayer_with_react-intl.md +4 -4
- package/blog/pt/intlayer_with_vue-i18n.md +4 -4
- package/blog/pt/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/ru/internationalization_and_SEO.md +6 -0
- package/blog/ru/intlayer_with_i18next.md +4 -4
- package/blog/ru/intlayer_with_next-i18next.md +4 -4
- package/blog/ru/intlayer_with_next-intl.md +4 -4
- package/blog/ru/intlayer_with_react-i18next.md +4 -4
- package/blog/ru/intlayer_with_react-intl.md +4 -4
- package/blog/ru/intlayer_with_vue-i18n.md +4 -4
- package/blog/ru/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/tr/internationalization_and_SEO.md +6 -0
- package/blog/tr/intlayer_with_i18next.md +4 -4
- package/blog/tr/intlayer_with_next-i18next.md +4 -4
- package/blog/tr/intlayer_with_next-intl.md +4 -4
- package/blog/tr/intlayer_with_react-i18next.md +4 -4
- package/blog/tr/intlayer_with_react-intl.md +4 -4
- package/blog/tr/intlayer_with_vue-i18n.md +4 -4
- package/blog/tr/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/uk/internationalization_and_SEO.md +6 -0
- package/blog/uk/intlayer_with_i18next.md +4 -4
- package/blog/uk/intlayer_with_next-i18next.md +4 -4
- package/blog/uk/intlayer_with_next-intl.md +4 -4
- package/blog/uk/intlayer_with_react-i18next.md +4 -4
- package/blog/uk/intlayer_with_react-intl.md +4 -4
- package/blog/uk/intlayer_with_vue-i18n.md +4 -4
- package/blog/uk/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/vi/internationalization_and_SEO.md +6 -0
- package/blog/vi/intlayer_with_i18next.md +4 -4
- package/blog/vi/intlayer_with_next-i18next.md +4 -4
- package/blog/vi/intlayer_with_next-intl.md +4 -4
- package/blog/vi/intlayer_with_react-i18next.md +4 -4
- package/blog/vi/intlayer_with_react-intl.md +4 -4
- package/blog/vi/intlayer_with_vue-i18n.md +4 -4
- package/blog/vi/nextjs-multilingual-seo-comparison.md +6 -0
- package/blog/zh/internationalization_and_SEO.md +6 -0
- package/blog/zh/nextjs-multilingual-seo-comparison.md +6 -0
- package/dist/cjs/authors.cjs.map +1 -1
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +2 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +0 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +60 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +0 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +0 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/authors.mjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +2 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +60 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/authors.d.ts +16 -8
- package/dist/types/authors.d.ts.map +1 -1
- package/dist/types/blog.d.ts +0 -1
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts +0 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/doc.d.ts +0 -1
- package/dist/types/doc.d.ts.map +1 -1
- package/dist/types/frequentQuestions.d.ts +0 -1
- package/dist/types/frequentQuestions.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +0 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +3 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +0 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts +0 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/dist/types/legal.d.ts +0 -1
- package/dist/types/legal.d.ts.map +1 -1
- package/docs/ar/bundle_optimization.md +16 -0
- package/docs/ar/cli/index.md +1 -1
- package/docs/ar/cli/scan.md +2 -2
- package/docs/ar/configuration.md +42 -1
- package/docs/ar/how_works_intlayer.md +2 -2
- package/docs/ar/intlayer_CMS.md +14 -122
- package/docs/ar/intlayer_with_adonisjs.md +4 -4
- package/docs/ar/intlayer_with_analog.md +4 -4
- package/docs/ar/intlayer_with_angular_19.md +4 -4
- package/docs/ar/intlayer_with_angular_21.md +4 -4
- package/docs/ar/intlayer_with_astro_lit.md +7 -7
- package/docs/ar/intlayer_with_astro_preact.md +4 -4
- package/docs/ar/intlayer_with_astro_react.md +4 -4
- package/docs/ar/intlayer_with_astro_solid.md +4 -4
- package/docs/ar/intlayer_with_astro_svelte.md +4 -4
- package/docs/ar/intlayer_with_astro_vanilla.md +4 -4
- package/docs/ar/intlayer_with_astro_vue.md +4 -4
- package/docs/ar/intlayer_with_create_react_app.md +4 -4
- package/docs/ar/intlayer_with_express.md +4 -4
- package/docs/ar/intlayer_with_fastify.md +4 -4
- package/docs/ar/intlayer_with_hono.md +4 -4
- package/docs/ar/intlayer_with_lynx+react.md +4 -4
- package/docs/ar/intlayer_with_nestjs.md +4 -4
- package/docs/ar/intlayer_with_next-i18next.md +4 -4
- package/docs/ar/intlayer_with_nextjs_14.md +4 -4
- package/docs/ar/intlayer_with_nextjs_15.md +6 -8
- package/docs/ar/intlayer_with_nextjs_16.md +6 -8
- package/docs/ar/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/ar/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/ar/intlayer_with_nuxt.md +5 -5
- package/docs/ar/intlayer_with_react_native+expo.md +4 -4
- package/docs/ar/intlayer_with_react_router_v7.md +5 -5
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +5 -5
- package/docs/ar/intlayer_with_svelte_kit.md +4 -4
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -5
- package/docs/ar/intlayer_with_tanstack.md +6 -7
- package/docs/ar/intlayer_with_vite+lit.md +4 -4
- package/docs/ar/intlayer_with_vite+preact.md +5 -5
- package/docs/ar/intlayer_with_vite+react.md +5 -5
- package/docs/ar/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/ar/intlayer_with_vite+solid.md +5 -5
- package/docs/ar/intlayer_with_vite+svelte.md +4 -4
- package/docs/ar/intlayer_with_vite+vanilla.md +4 -4
- package/docs/ar/intlayer_with_vite+vue.md +5 -5
- package/docs/ar/live-sync.md +174 -0
- package/docs/ar/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/ar/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/ar/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/ar/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/ar/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/ar/releases/v9.md +128 -33
- package/docs/ar/self_hosting.md +350 -0
- package/docs/bn/bundle_optimization.md +16 -0
- package/docs/bn/cli/index.md +1 -1
- package/docs/bn/cli/scan.md +2 -2
- package/docs/bn/configuration.md +45 -1
- package/docs/bn/intlayer_CMS.md +570 -0
- package/docs/bn/intlayer_with_angular_21.md +4 -4
- package/docs/bn/intlayer_with_fastify.md +4 -4
- package/docs/bn/intlayer_with_hono.md +4 -4
- package/docs/bn/intlayer_with_vite+lit.md +4 -4
- package/docs/bn/intlayer_with_vite+vanilla.md +4 -4
- package/docs/bn/releases/v9.md +349 -0
- package/docs/cs/bundle_optimization.md +16 -0
- package/docs/cs/cli/index.md +1 -1
- package/docs/cs/cli/scan.md +2 -2
- package/docs/cs/configuration.md +45 -1
- package/docs/cs/intlayer_with_angular_21.md +4 -4
- package/docs/cs/intlayer_with_fastify.md +4 -4
- package/docs/cs/intlayer_with_hono.md +4 -4
- package/docs/cs/intlayer_with_vite+lit.md +4 -4
- package/docs/cs/intlayer_with_vite+vanilla.md +4 -4
- package/docs/cs/releases/v9.md +349 -0
- package/docs/de/bundle_optimization.md +16 -0
- package/docs/de/cli/index.md +1 -1
- package/docs/de/cli/scan.md +2 -2
- package/docs/de/configuration.md +42 -1
- package/docs/de/how_works_intlayer.md +2 -2
- package/docs/de/intlayer_CMS.md +86 -100
- package/docs/de/intlayer_with_adonisjs.md +4 -4
- package/docs/de/intlayer_with_analog.md +4 -4
- package/docs/de/intlayer_with_angular_19.md +4 -4
- package/docs/de/intlayer_with_angular_21.md +4 -4
- package/docs/de/intlayer_with_astro_lit.md +7 -7
- package/docs/de/intlayer_with_astro_preact.md +4 -4
- package/docs/de/intlayer_with_astro_react.md +4 -4
- package/docs/de/intlayer_with_astro_solid.md +4 -4
- package/docs/de/intlayer_with_astro_svelte.md +4 -4
- package/docs/de/intlayer_with_astro_vanilla.md +4 -4
- package/docs/de/intlayer_with_astro_vue.md +4 -4
- package/docs/de/intlayer_with_create_react_app.md +4 -4
- package/docs/de/intlayer_with_express.md +4 -4
- package/docs/de/intlayer_with_fastify.md +4 -4
- package/docs/de/intlayer_with_hono.md +4 -4
- package/docs/de/intlayer_with_lynx+react.md +4 -4
- package/docs/de/intlayer_with_nestjs.md +4 -4
- package/docs/de/intlayer_with_next-i18next.md +4 -4
- package/docs/de/intlayer_with_nextjs_14.md +4 -4
- package/docs/de/intlayer_with_nextjs_15.md +6 -8
- package/docs/de/intlayer_with_nextjs_16.md +6 -8
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/de/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/de/intlayer_with_nuxt.md +5 -5
- package/docs/de/intlayer_with_react_native+expo.md +4 -4
- package/docs/de/intlayer_with_react_router_v7.md +5 -5
- package/docs/de/intlayer_with_svelte_kit.md +4 -4
- package/docs/de/intlayer_with_tanstack+solid.md +5 -5
- package/docs/de/intlayer_with_tanstack.md +6 -7
- package/docs/de/intlayer_with_vite+lit.md +4 -4
- package/docs/de/intlayer_with_vite+preact.md +5 -5
- package/docs/de/intlayer_with_vite+react.md +5 -5
- package/docs/de/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/de/intlayer_with_vite+solid.md +5 -5
- package/docs/de/intlayer_with_vite+vanilla.md +4 -4
- package/docs/de/intlayer_with_vite+vue.md +5 -5
- package/docs/de/live-sync.md +174 -0
- package/docs/de/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/de/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/de/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/de/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/de/releases/v9.md +131 -33
- package/docs/de/self_hosting.md +350 -0
- package/docs/en/analytics.md +222 -0
- package/docs/en/bundle_optimization.md +16 -0
- package/docs/en/cli/index.md +1 -1
- package/docs/en/cli/scan.md +2 -2
- package/docs/en/configuration.md +42 -1
- package/docs/en/dictionary/content_file.md +2 -2
- package/docs/en/how_works_intlayer.md +2 -2
- package/docs/en/intlayer_CMS.md +143 -107
- package/docs/en/intlayer_with_adonisjs.md +4 -4
- package/docs/en/intlayer_with_analog.md +4 -4
- package/docs/en/intlayer_with_angular_19.md +4 -4
- package/docs/en/intlayer_with_angular_21.md +4 -4
- package/docs/en/intlayer_with_astro.md +4 -4
- package/docs/en/intlayer_with_astro_lit.md +7 -7
- package/docs/en/intlayer_with_astro_preact.md +4 -4
- package/docs/en/intlayer_with_astro_react.md +4 -4
- package/docs/en/intlayer_with_astro_solid.md +4 -4
- package/docs/en/intlayer_with_astro_svelte.md +4 -4
- package/docs/en/intlayer_with_astro_vanilla.md +4 -4
- package/docs/en/intlayer_with_astro_vue.md +4 -4
- package/docs/en/intlayer_with_create_react_app.md +4 -4
- package/docs/en/intlayer_with_express.md +4 -4
- package/docs/en/intlayer_with_fastify.md +4 -4
- package/docs/en/intlayer_with_hono.md +4 -4
- package/docs/en/intlayer_with_lynx+react.md +4 -4
- package/docs/en/intlayer_with_nestjs.md +4 -4
- package/docs/en/intlayer_with_next-i18next.md +4 -4
- package/docs/en/intlayer_with_nextjs_14.md +4 -4
- package/docs/en/intlayer_with_nextjs_15.md +5 -7
- package/docs/en/intlayer_with_nextjs_16.md +6 -8
- package/docs/en/intlayer_with_nextjs_compiler.md +6 -8
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/en/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/en/intlayer_with_nuxt.md +5 -5
- package/docs/en/intlayer_with_react_native+expo.md +4 -4
- package/docs/en/intlayer_with_react_router_v7.md +5 -5
- package/docs/en/intlayer_with_svelte_kit.md +4 -4
- package/docs/en/intlayer_with_tanstack+solid.md +5 -5
- package/docs/en/intlayer_with_tanstack.md +6 -7
- package/docs/en/intlayer_with_vite+lit.md +4 -4
- package/docs/en/intlayer_with_vite+preact.md +5 -5
- package/docs/en/intlayer_with_vite+react.md +5 -5
- package/docs/en/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/en/intlayer_with_vite+solid.md +5 -5
- package/docs/en/intlayer_with_vite+svelte.md +4 -4
- package/docs/en/intlayer_with_vite+vanilla.md +4 -4
- package/docs/en/intlayer_with_vite+vue.md +5 -5
- package/docs/en/live-sync.md +184 -0
- package/docs/en/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/en/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/en/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/en/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/en/releases/v9.md +124 -29
- package/docs/en/self_hosting.md +310 -0
- package/docs/en-GB/bundle_optimization.md +16 -0
- package/docs/en-GB/cli/index.md +1 -1
- package/docs/en-GB/cli/scan.md +2 -2
- package/docs/en-GB/configuration.md +42 -1
- package/docs/en-GB/how_works_intlayer.md +2 -2
- package/docs/en-GB/intlayer_CMS.md +14 -122
- package/docs/en-GB/intlayer_with_adonisjs.md +4 -4
- package/docs/en-GB/intlayer_with_analog.md +4 -4
- package/docs/en-GB/intlayer_with_angular_19.md +4 -4
- package/docs/en-GB/intlayer_with_angular_21.md +4 -4
- package/docs/en-GB/intlayer_with_astro_lit.md +7 -7
- package/docs/en-GB/intlayer_with_astro_preact.md +4 -4
- package/docs/en-GB/intlayer_with_astro_react.md +4 -4
- package/docs/en-GB/intlayer_with_astro_solid.md +4 -4
- package/docs/en-GB/intlayer_with_astro_svelte.md +4 -4
- package/docs/en-GB/intlayer_with_astro_vanilla.md +4 -4
- package/docs/en-GB/intlayer_with_astro_vue.md +4 -4
- package/docs/en-GB/intlayer_with_create_react_app.md +8 -8
- package/docs/en-GB/intlayer_with_express.md +4 -4
- package/docs/en-GB/intlayer_with_fastify.md +4 -4
- package/docs/en-GB/intlayer_with_hono.md +4 -4
- package/docs/en-GB/intlayer_with_lynx+react.md +8 -8
- package/docs/en-GB/intlayer_with_nestjs.md +4 -4
- package/docs/en-GB/intlayer_with_next-i18next.md +4 -4
- package/docs/en-GB/intlayer_with_nextjs_14.md +4 -4
- package/docs/en-GB/intlayer_with_nextjs_15.md +6 -8
- package/docs/en-GB/intlayer_with_nextjs_16.md +6 -8
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/en-GB/intlayer_with_nuxt.md +5 -5
- package/docs/en-GB/intlayer_with_react_native+expo.md +4 -4
- package/docs/en-GB/intlayer_with_react_router_v7.md +5 -5
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +5 -5
- package/docs/en-GB/intlayer_with_svelte_kit.md +4 -4
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -5
- package/docs/en-GB/intlayer_with_tanstack.md +6 -7
- package/docs/en-GB/intlayer_with_vite+lit.md +4 -4
- package/docs/en-GB/intlayer_with_vite+preact.md +5 -5
- package/docs/en-GB/intlayer_with_vite+react.md +5 -5
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/en-GB/intlayer_with_vite+solid.md +5 -5
- package/docs/en-GB/intlayer_with_vite+svelte.md +4 -4
- package/docs/en-GB/intlayer_with_vite+vanilla.md +4 -4
- package/docs/en-GB/intlayer_with_vite+vue.md +5 -5
- package/docs/en-GB/live-sync.md +173 -0
- package/docs/en-GB/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/en-GB/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/en-GB/releases/v9.md +117 -26
- package/docs/en-GB/self_hosting.md +350 -0
- package/docs/es/bundle_optimization.md +16 -0
- package/docs/es/cli/index.md +1 -1
- package/docs/es/cli/scan.md +2 -2
- package/docs/es/configuration.md +42 -1
- package/docs/es/how_works_intlayer.md +2 -2
- package/docs/es/intlayer_CMS.md +85 -104
- package/docs/es/intlayer_with_adonisjs.md +4 -4
- package/docs/es/intlayer_with_analog.md +4 -4
- package/docs/es/intlayer_with_angular_19.md +4 -4
- package/docs/es/intlayer_with_angular_21.md +4 -4
- package/docs/es/intlayer_with_astro_lit.md +7 -7
- package/docs/es/intlayer_with_astro_preact.md +4 -4
- package/docs/es/intlayer_with_astro_react.md +4 -4
- package/docs/es/intlayer_with_astro_solid.md +4 -4
- package/docs/es/intlayer_with_astro_svelte.md +4 -4
- package/docs/es/intlayer_with_astro_vanilla.md +4 -4
- package/docs/es/intlayer_with_astro_vue.md +4 -4
- package/docs/es/intlayer_with_create_react_app.md +4 -4
- package/docs/es/intlayer_with_express.md +4 -4
- package/docs/es/intlayer_with_fastify.md +4 -4
- package/docs/es/intlayer_with_hono.md +4 -4
- package/docs/es/intlayer_with_lynx+react.md +4 -4
- package/docs/es/intlayer_with_nestjs.md +4 -4
- package/docs/es/intlayer_with_next-i18next.md +4 -4
- package/docs/es/intlayer_with_nextjs_14.md +4 -4
- package/docs/es/intlayer_with_nextjs_15.md +6 -8
- package/docs/es/intlayer_with_nextjs_16.md +6 -8
- package/docs/es/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/es/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/es/intlayer_with_nuxt.md +5 -5
- package/docs/es/intlayer_with_react_native+expo.md +4 -4
- package/docs/es/intlayer_with_react_router_v7.md +5 -5
- package/docs/es/intlayer_with_svelte_kit.md +4 -4
- package/docs/es/intlayer_with_tanstack+solid.md +5 -5
- package/docs/es/intlayer_with_tanstack.md +6 -7
- package/docs/es/intlayer_with_vite+lit.md +4 -4
- package/docs/es/intlayer_with_vite+preact.md +5 -5
- package/docs/es/intlayer_with_vite+react.md +5 -5
- package/docs/es/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/es/intlayer_with_vite+solid.md +5 -5
- package/docs/es/intlayer_with_vite+svelte.md +4 -4
- package/docs/es/intlayer_with_vite+vanilla.md +4 -4
- package/docs/es/intlayer_with_vite+vue.md +5 -5
- package/docs/es/live-sync.md +176 -0
- package/docs/es/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/es/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/es/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/es/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/es/releases/v9.md +131 -33
- package/docs/es/self_hosting.md +350 -0
- package/docs/fr/bundle_optimization.md +16 -0
- package/docs/fr/cli/index.md +1 -1
- package/docs/fr/cli/scan.md +2 -2
- package/docs/fr/configuration.md +42 -1
- package/docs/fr/how_works_intlayer.md +2 -2
- package/docs/fr/intlayer_CMS.md +86 -100
- package/docs/fr/intlayer_with_adonisjs.md +4 -4
- package/docs/fr/intlayer_with_analog.md +4 -4
- package/docs/fr/intlayer_with_angular_19.md +4 -4
- package/docs/fr/intlayer_with_angular_21.md +4 -4
- package/docs/fr/intlayer_with_astro_lit.md +7 -7
- package/docs/fr/intlayer_with_astro_preact.md +4 -4
- package/docs/fr/intlayer_with_astro_react.md +4 -4
- package/docs/fr/intlayer_with_astro_solid.md +4 -4
- package/docs/fr/intlayer_with_astro_svelte.md +4 -4
- package/docs/fr/intlayer_with_astro_vanilla.md +4 -4
- package/docs/fr/intlayer_with_astro_vue.md +4 -4
- package/docs/fr/intlayer_with_create_react_app.md +4 -4
- package/docs/fr/intlayer_with_express.md +4 -4
- package/docs/fr/intlayer_with_fastify.md +4 -4
- package/docs/fr/intlayer_with_hono.md +4 -4
- package/docs/fr/intlayer_with_lynx+react.md +4 -4
- package/docs/fr/intlayer_with_nestjs.md +4 -4
- package/docs/fr/intlayer_with_next-i18next.md +4 -4
- package/docs/fr/intlayer_with_nextjs_14.md +4 -4
- package/docs/fr/intlayer_with_nextjs_15.md +6 -8
- package/docs/fr/intlayer_with_nextjs_16.md +6 -8
- package/docs/fr/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/fr/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/fr/intlayer_with_nuxt.md +5 -5
- package/docs/fr/intlayer_with_react_native+expo.md +4 -4
- package/docs/fr/intlayer_with_react_router_v7.md +5 -5
- package/docs/fr/intlayer_with_svelte_kit.md +4 -4
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -5
- package/docs/fr/intlayer_with_tanstack.md +6 -7
- package/docs/fr/intlayer_with_vite+lit.md +4 -4
- package/docs/fr/intlayer_with_vite+preact.md +5 -5
- package/docs/fr/intlayer_with_vite+react.md +5 -5
- package/docs/fr/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/fr/intlayer_with_vite+solid.md +5 -5
- package/docs/fr/intlayer_with_vite+svelte.md +4 -4
- package/docs/fr/intlayer_with_vite+vanilla.md +4 -4
- package/docs/fr/intlayer_with_vite+vue.md +5 -5
- package/docs/fr/live-sync.md +174 -0
- package/docs/fr/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/fr/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/fr/releases/v9.md +131 -25
- package/docs/fr/self_hosting.md +350 -0
- package/docs/hi/bundle_optimization.md +16 -0
- package/docs/hi/cli/index.md +1 -1
- package/docs/hi/cli/scan.md +2 -2
- package/docs/hi/configuration.md +42 -1
- package/docs/hi/how_works_intlayer.md +2 -2
- package/docs/hi/intlayer_CMS.md +14 -122
- package/docs/hi/intlayer_with_adonisjs.md +4 -4
- package/docs/hi/intlayer_with_analog.md +4 -4
- package/docs/hi/intlayer_with_angular_19.md +4 -4
- package/docs/hi/intlayer_with_angular_21.md +4 -4
- package/docs/hi/intlayer_with_astro_vue.md +4 -4
- package/docs/hi/intlayer_with_create_react_app.md +4 -4
- package/docs/hi/intlayer_with_express.md +4 -4
- package/docs/hi/intlayer_with_fastify.md +4 -4
- package/docs/hi/intlayer_with_hono.md +4 -4
- package/docs/hi/intlayer_with_lynx+react.md +4 -4
- package/docs/hi/intlayer_with_nestjs.md +4 -4
- package/docs/hi/intlayer_with_next-i18next.md +4 -4
- package/docs/hi/intlayer_with_nextjs_14.md +4 -4
- package/docs/hi/intlayer_with_nextjs_15.md +6 -8
- package/docs/hi/intlayer_with_nextjs_16.md +6 -8
- package/docs/hi/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/hi/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/hi/intlayer_with_nuxt.md +5 -5
- package/docs/hi/intlayer_with_react_native+expo.md +4 -4
- package/docs/hi/intlayer_with_react_router_v7.md +5 -5
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +5 -5
- package/docs/hi/intlayer_with_svelte_kit.md +4 -4
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -5
- package/docs/hi/intlayer_with_tanstack.md +6 -7
- package/docs/hi/intlayer_with_vite+lit.md +4 -4
- package/docs/hi/intlayer_with_vite+preact.md +5 -5
- package/docs/hi/intlayer_with_vite+react.md +5 -5
- package/docs/hi/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/hi/intlayer_with_vite+solid.md +5 -5
- package/docs/hi/intlayer_with_vite+svelte.md +4 -4
- package/docs/hi/intlayer_with_vite+vanilla.md +4 -4
- package/docs/hi/intlayer_with_vite+vue.md +5 -5
- package/docs/hi/live-sync.md +174 -0
- package/docs/hi/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/hi/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/hi/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/hi/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/hi/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/hi/packages/intlayer/index.md +4 -4
- package/docs/hi/releases/v9.md +129 -33
- package/docs/hi/self_hosting.md +350 -0
- package/docs/id/bundle_optimization.md +16 -0
- package/docs/id/cli/index.md +1 -1
- package/docs/id/cli/scan.md +2 -2
- package/docs/id/configuration.md +42 -1
- package/docs/id/how_works_intlayer.md +2 -2
- package/docs/id/intlayer_CMS.md +5 -139
- package/docs/id/intlayer_with_adonisjs.md +4 -4
- package/docs/id/intlayer_with_analog.md +4 -4
- package/docs/id/intlayer_with_angular_19.md +4 -4
- package/docs/id/intlayer_with_angular_21.md +4 -4
- package/docs/id/intlayer_with_astro_lit.md +7 -7
- package/docs/id/intlayer_with_astro_preact.md +4 -4
- package/docs/id/intlayer_with_astro_react.md +4 -4
- package/docs/id/intlayer_with_astro_solid.md +4 -4
- package/docs/id/intlayer_with_astro_svelte.md +4 -4
- package/docs/id/intlayer_with_astro_vanilla.md +4 -4
- package/docs/id/intlayer_with_astro_vue.md +4 -4
- package/docs/id/intlayer_with_create_react_app.md +4 -4
- package/docs/id/intlayer_with_express.md +4 -4
- package/docs/id/intlayer_with_fastify.md +4 -4
- package/docs/id/intlayer_with_hono.md +4 -4
- package/docs/id/intlayer_with_lynx+react.md +4 -4
- package/docs/id/intlayer_with_nestjs.md +4 -4
- package/docs/id/intlayer_with_next-i18next.md +4 -4
- package/docs/id/intlayer_with_nextjs_14.md +4 -4
- package/docs/id/intlayer_with_nextjs_15.md +5 -7
- package/docs/id/intlayer_with_nextjs_16.md +6 -8
- package/docs/id/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/id/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/id/intlayer_with_nuxt.md +5 -5
- package/docs/id/intlayer_with_react_native+expo.md +4 -4
- package/docs/id/intlayer_with_react_router_v7.md +5 -5
- package/docs/id/intlayer_with_svelte_kit.md +4 -4
- package/docs/id/intlayer_with_tanstack+solid.md +5 -5
- package/docs/id/intlayer_with_tanstack.md +6 -7
- package/docs/id/intlayer_with_vite+lit.md +4 -4
- package/docs/id/intlayer_with_vite+preact.md +5 -5
- package/docs/id/intlayer_with_vite+react.md +5 -5
- package/docs/id/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/id/intlayer_with_vite+solid.md +5 -5
- package/docs/id/intlayer_with_vite+svelte.md +4 -4
- package/docs/id/intlayer_with_vite+vanilla.md +4 -4
- package/docs/id/intlayer_with_vite+vue.md +5 -5
- package/docs/id/live-sync.md +185 -0
- package/docs/id/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/id/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/id/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/id/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/id/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/id/releases/v9.md +101 -33
- package/docs/id/self_hosting.md +350 -0
- package/docs/it/bundle_optimization.md +16 -0
- package/docs/it/cli/index.md +1 -1
- package/docs/it/cli/scan.md +2 -2
- package/docs/it/configuration.md +42 -1
- package/docs/it/how_works_intlayer.md +2 -2
- package/docs/it/intlayer_CMS.md +87 -94
- package/docs/it/intlayer_with_adonisjs.md +4 -4
- package/docs/it/intlayer_with_analog.md +4 -4
- package/docs/it/intlayer_with_angular_19.md +4 -4
- package/docs/it/intlayer_with_angular_21.md +4 -4
- package/docs/it/intlayer_with_astro_lit.md +7 -7
- package/docs/it/intlayer_with_astro_preact.md +4 -4
- package/docs/it/intlayer_with_astro_react.md +4 -4
- package/docs/it/intlayer_with_astro_solid.md +4 -4
- package/docs/it/intlayer_with_astro_svelte.md +4 -4
- package/docs/it/intlayer_with_astro_vanilla.md +4 -4
- package/docs/it/intlayer_with_astro_vue.md +4 -4
- package/docs/it/intlayer_with_create_react_app.md +4 -4
- package/docs/it/intlayer_with_express.md +4 -4
- package/docs/it/intlayer_with_fastify.md +4 -4
- package/docs/it/intlayer_with_hono.md +4 -4
- package/docs/it/intlayer_with_lynx+react.md +4 -4
- package/docs/it/intlayer_with_nestjs.md +4 -4
- package/docs/it/intlayer_with_next-i18next.md +4 -4
- package/docs/it/intlayer_with_nextjs_14.md +4 -4
- package/docs/it/intlayer_with_nextjs_15.md +6 -8
- package/docs/it/intlayer_with_nextjs_16.md +6 -8
- package/docs/it/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/it/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/it/intlayer_with_nuxt.md +5 -5
- package/docs/it/intlayer_with_react_native+expo.md +4 -4
- package/docs/it/intlayer_with_react_router_v7.md +5 -5
- package/docs/it/intlayer_with_svelte_kit.md +4 -4
- package/docs/it/intlayer_with_tanstack+solid.md +5 -5
- package/docs/it/intlayer_with_tanstack.md +6 -7
- package/docs/it/intlayer_with_vite+lit.md +4 -4
- package/docs/it/intlayer_with_vite+preact.md +5 -5
- package/docs/it/intlayer_with_vite+react.md +6 -6
- package/docs/it/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/it/intlayer_with_vite+solid.md +5 -5
- package/docs/it/intlayer_with_vite+svelte.md +4 -4
- package/docs/it/intlayer_with_vite+vanilla.md +4 -4
- package/docs/it/intlayer_with_vite+vue.md +5 -5
- package/docs/it/live-sync.md +174 -0
- package/docs/it/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/it/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/it/migration_from_next-intl_to_intlayer.md +4 -4
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/it/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/it/releases/v9.md +131 -33
- package/docs/it/self_hosting.md +350 -0
- package/docs/ja/bundle_optimization.md +16 -0
- package/docs/ja/cli/index.md +1 -1
- package/docs/ja/cli/scan.md +2 -2
- package/docs/ja/configuration.md +42 -1
- package/docs/ja/how_works_intlayer.md +2 -2
- package/docs/ja/intlayer_CMS.md +149 -102
- package/docs/ja/intlayer_with_adonisjs.md +4 -4
- package/docs/ja/intlayer_with_analog.md +4 -4
- package/docs/ja/intlayer_with_angular_19.md +4 -4
- package/docs/ja/intlayer_with_angular_21.md +4 -4
- package/docs/ja/intlayer_with_astro_lit.md +7 -7
- package/docs/ja/intlayer_with_astro_preact.md +4 -4
- package/docs/ja/intlayer_with_astro_react.md +4 -4
- package/docs/ja/intlayer_with_astro_solid.md +4 -4
- package/docs/ja/intlayer_with_astro_svelte.md +4 -4
- package/docs/ja/intlayer_with_astro_vanilla.md +4 -4
- package/docs/ja/intlayer_with_astro_vue.md +4 -4
- package/docs/ja/intlayer_with_create_react_app.md +4 -4
- package/docs/ja/intlayer_with_express.md +4 -4
- package/docs/ja/intlayer_with_fastify.md +4 -4
- package/docs/ja/intlayer_with_hono.md +4 -4
- package/docs/ja/intlayer_with_lynx+react.md +4 -4
- package/docs/ja/intlayer_with_nestjs.md +4 -4
- package/docs/ja/intlayer_with_next-i18next.md +4 -4
- package/docs/ja/intlayer_with_nextjs_14.md +4 -4
- package/docs/ja/intlayer_with_nextjs_15.md +6 -8
- package/docs/ja/intlayer_with_nextjs_16.md +6 -8
- package/docs/ja/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/ja/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/ja/intlayer_with_nuxt.md +5 -5
- package/docs/ja/intlayer_with_react_native+expo.md +4 -4
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -5
- package/docs/ja/intlayer_with_tanstack.md +6 -7
- package/docs/ja/intlayer_with_vite+lit.md +4 -4
- package/docs/ja/intlayer_with_vite+preact.md +5 -5
- package/docs/ja/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/ja/intlayer_with_vite+solid.md +5 -5
- package/docs/ja/intlayer_with_vite+svelte.md +4 -4
- package/docs/ja/intlayer_with_vite+vanilla.md +4 -4
- package/docs/ja/intlayer_with_vite+vue.md +5 -5
- package/docs/ja/live-sync.md +185 -0
- package/docs/ja/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/ja/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/ja/releases/v9.md +101 -33
- package/docs/ja/self_hosting.md +350 -0
- package/docs/ko/bundle_optimization.md +16 -0
- package/docs/ko/cli/index.md +1 -1
- package/docs/ko/cli/scan.md +2 -2
- package/docs/ko/configuration.md +42 -1
- package/docs/ko/how_works_intlayer.md +2 -2
- package/docs/ko/intlayer_CMS.md +147 -100
- package/docs/ko/intlayer_with_adonisjs.md +4 -4
- package/docs/ko/intlayer_with_analog.md +4 -4
- package/docs/ko/intlayer_with_angular_19.md +4 -4
- package/docs/ko/intlayer_with_angular_21.md +4 -4
- package/docs/ko/intlayer_with_astro_vue.md +4 -4
- package/docs/ko/intlayer_with_create_react_app.md +4 -4
- package/docs/ko/intlayer_with_express.md +4 -4
- package/docs/ko/intlayer_with_fastify.md +4 -4
- package/docs/ko/intlayer_with_hono.md +4 -4
- package/docs/ko/intlayer_with_nestjs.md +4 -4
- package/docs/ko/intlayer_with_next-i18next.md +4 -4
- package/docs/ko/intlayer_with_nextjs_15.md +6 -8
- package/docs/ko/intlayer_with_nextjs_16.md +6 -8
- package/docs/ko/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/ko/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/ko/intlayer_with_nuxt.md +5 -5
- package/docs/ko/intlayer_with_react_native+expo.md +4 -4
- package/docs/ko/intlayer_with_react_router_v7.md +5 -5
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +5 -5
- package/docs/ko/intlayer_with_svelte_kit.md +4 -4
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -5
- package/docs/ko/intlayer_with_tanstack.md +6 -7
- package/docs/ko/intlayer_with_vite+lit.md +4 -4
- package/docs/ko/intlayer_with_vite+preact.md +5 -5
- package/docs/ko/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/ko/intlayer_with_vite+solid.md +5 -5
- package/docs/ko/intlayer_with_vite+svelte.md +4 -4
- package/docs/ko/intlayer_with_vite+vanilla.md +4 -4
- package/docs/ko/intlayer_with_vite+vue.md +5 -5
- package/docs/ko/live-sync.md +187 -0
- package/docs/ko/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/ko/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/ko/releases/v9.md +100 -33
- package/docs/ko/self_hosting.md +350 -0
- package/docs/nl/bundle_optimization.md +16 -0
- package/docs/nl/cli/index.md +1 -1
- package/docs/nl/cli/scan.md +2 -2
- package/docs/nl/configuration.md +45 -1
- package/docs/nl/intlayer_with_angular_21.md +4 -4
- package/docs/nl/intlayer_with_fastify.md +4 -4
- package/docs/nl/intlayer_with_hono.md +4 -4
- package/docs/nl/intlayer_with_vite+lit.md +4 -4
- package/docs/nl/intlayer_with_vite+vanilla.md +4 -4
- package/docs/nl/releases/v9.md +349 -0
- package/docs/pl/bundle_optimization.md +16 -0
- package/docs/pl/cli/index.md +1 -1
- package/docs/pl/cli/scan.md +2 -2
- package/docs/pl/configuration.md +45 -1
- package/docs/pl/how_works_intlayer.md +2 -2
- package/docs/pl/intlayer_CMS.md +14 -133
- package/docs/pl/intlayer_with_adonisjs.md +4 -4
- package/docs/pl/intlayer_with_analog.md +4 -4
- package/docs/pl/intlayer_with_angular_19.md +4 -4
- package/docs/pl/intlayer_with_angular_21.md +4 -4
- package/docs/pl/intlayer_with_astro_lit.md +7 -7
- package/docs/pl/intlayer_with_astro_preact.md +4 -4
- package/docs/pl/intlayer_with_astro_react.md +4 -4
- package/docs/pl/intlayer_with_astro_solid.md +4 -4
- package/docs/pl/intlayer_with_astro_svelte.md +4 -4
- package/docs/pl/intlayer_with_astro_vanilla.md +4 -4
- package/docs/pl/intlayer_with_astro_vue.md +4 -4
- package/docs/pl/intlayer_with_create_react_app.md +4 -4
- package/docs/pl/intlayer_with_express.md +4 -4
- package/docs/pl/intlayer_with_fastify.md +4 -4
- package/docs/pl/intlayer_with_hono.md +4 -4
- package/docs/pl/intlayer_with_lynx+react.md +4 -4
- package/docs/pl/intlayer_with_nestjs.md +4 -4
- package/docs/pl/intlayer_with_next-i18next.md +4 -4
- package/docs/pl/intlayer_with_nextjs_14.md +4 -4
- package/docs/pl/intlayer_with_nextjs_15.md +5 -7
- package/docs/pl/intlayer_with_nextjs_16.md +6 -8
- package/docs/pl/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/pl/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/pl/intlayer_with_nuxt.md +5 -5
- package/docs/pl/intlayer_with_react_native+expo.md +4 -4
- package/docs/pl/intlayer_with_react_router_v7.md +5 -5
- package/docs/pl/intlayer_with_svelte_kit.md +4 -4
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -5
- package/docs/pl/intlayer_with_tanstack.md +6 -7
- package/docs/pl/intlayer_with_vite+lit.md +4 -4
- package/docs/pl/intlayer_with_vite+preact.md +5 -5
- package/docs/pl/intlayer_with_vite+react.md +5 -5
- package/docs/pl/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/pl/intlayer_with_vite+solid.md +5 -5
- package/docs/pl/intlayer_with_vite+svelte.md +4 -4
- package/docs/pl/intlayer_with_vite+vanilla.md +4 -4
- package/docs/pl/intlayer_with_vite+vue.md +5 -5
- package/docs/pl/live-sync.md +185 -0
- package/docs/pl/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/pl/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/pl/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/pl/releases/v9.md +128 -33
- package/docs/pl/self_hosting.md +350 -0
- package/docs/pt/bundle_optimization.md +16 -0
- package/docs/pt/cli/index.md +1 -1
- package/docs/pt/cli/scan.md +2 -2
- package/docs/pt/configuration.md +45 -1
- package/docs/pt/how_works_intlayer.md +2 -2
- package/docs/pt/intlayer_CMS.md +87 -109
- package/docs/pt/intlayer_with_adonisjs.md +4 -4
- package/docs/pt/intlayer_with_analog.md +4 -4
- package/docs/pt/intlayer_with_angular_19.md +4 -4
- package/docs/pt/intlayer_with_angular_21.md +4 -4
- package/docs/pt/intlayer_with_astro_lit.md +7 -7
- package/docs/pt/intlayer_with_astro_preact.md +4 -4
- package/docs/pt/intlayer_with_astro_react.md +4 -4
- package/docs/pt/intlayer_with_astro_solid.md +4 -4
- package/docs/pt/intlayer_with_astro_svelte.md +4 -4
- package/docs/pt/intlayer_with_astro_vanilla.md +4 -4
- package/docs/pt/intlayer_with_astro_vue.md +4 -4
- package/docs/pt/intlayer_with_create_react_app.md +4 -4
- package/docs/pt/intlayer_with_express.md +4 -4
- package/docs/pt/intlayer_with_fastify.md +4 -4
- package/docs/pt/intlayer_with_hono.md +4 -4
- package/docs/pt/intlayer_with_lynx+react.md +4 -4
- package/docs/pt/intlayer_with_nestjs.md +4 -4
- package/docs/pt/intlayer_with_next-i18next.md +4 -4
- package/docs/pt/intlayer_with_nextjs_14.md +4 -4
- package/docs/pt/intlayer_with_nextjs_15.md +6 -8
- package/docs/pt/intlayer_with_nextjs_16.md +6 -8
- package/docs/pt/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/pt/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/pt/intlayer_with_nuxt.md +5 -5
- package/docs/pt/intlayer_with_react_native+expo.md +4 -4
- package/docs/pt/intlayer_with_react_router_v7.md +5 -5
- package/docs/pt/intlayer_with_svelte_kit.md +4 -4
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -5
- package/docs/pt/intlayer_with_tanstack.md +6 -7
- package/docs/pt/intlayer_with_vite+lit.md +4 -4
- package/docs/pt/intlayer_with_vite+preact.md +5 -5
- package/docs/pt/intlayer_with_vite+react.md +5 -5
- package/docs/pt/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/pt/intlayer_with_vite+solid.md +5 -5
- package/docs/pt/intlayer_with_vite+svelte.md +4 -4
- package/docs/pt/intlayer_with_vite+vanilla.md +4 -4
- package/docs/pt/intlayer_with_vite+vue.md +5 -5
- package/docs/pt/live-sync.md +174 -0
- package/docs/pt/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/pt/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/pt/releases/v9.md +131 -33
- package/docs/pt/self_hosting.md +350 -0
- package/docs/ru/bundle_optimization.md +16 -0
- package/docs/ru/cli/index.md +1 -1
- package/docs/ru/cli/scan.md +2 -2
- package/docs/ru/configuration.md +42 -1
- package/docs/ru/how_works_intlayer.md +2 -2
- package/docs/ru/intlayer_CMS.md +149 -102
- package/docs/ru/intlayer_with_adonisjs.md +4 -4
- package/docs/ru/intlayer_with_analog.md +4 -4
- package/docs/ru/intlayer_with_angular_19.md +4 -4
- package/docs/ru/intlayer_with_angular_21.md +4 -4
- package/docs/ru/intlayer_with_astro_vue.md +4 -4
- package/docs/ru/intlayer_with_create_react_app.md +4 -4
- package/docs/ru/intlayer_with_express.md +4 -4
- package/docs/ru/intlayer_with_fastify.md +4 -4
- package/docs/ru/intlayer_with_hono.md +4 -4
- package/docs/ru/intlayer_with_lynx+react.md +4 -4
- package/docs/ru/intlayer_with_nestjs.md +4 -4
- package/docs/ru/intlayer_with_next-i18next.md +4 -4
- package/docs/ru/intlayer_with_nextjs_14.md +4 -4
- package/docs/ru/intlayer_with_nextjs_15.md +6 -8
- package/docs/ru/intlayer_with_nextjs_16.md +6 -8
- package/docs/ru/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/ru/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/ru/intlayer_with_nuxt.md +5 -5
- package/docs/ru/intlayer_with_react_native+expo.md +4 -4
- package/docs/ru/intlayer_with_react_router_v7.md +5 -5
- package/docs/ru/intlayer_with_svelte_kit.md +4 -4
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -5
- package/docs/ru/intlayer_with_tanstack.md +6 -7
- package/docs/ru/intlayer_with_vite+lit.md +4 -4
- package/docs/ru/intlayer_with_vite+preact.md +5 -5
- package/docs/ru/intlayer_with_vite+react.md +5 -5
- package/docs/ru/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/ru/intlayer_with_vite+solid.md +5 -5
- package/docs/ru/intlayer_with_vite+svelte.md +4 -4
- package/docs/ru/intlayer_with_vite+vanilla.md +4 -4
- package/docs/ru/intlayer_with_vite+vue.md +5 -5
- package/docs/ru/live-sync.md +185 -0
- package/docs/ru/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/ru/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/ru/releases/v9.md +129 -33
- package/docs/ru/self_hosting.md +350 -0
- package/docs/tr/bundle_optimization.md +16 -0
- package/docs/tr/cli/index.md +1 -1
- package/docs/tr/cli/scan.md +2 -2
- package/docs/tr/configuration.md +42 -1
- package/docs/tr/how_works_intlayer.md +2 -2
- package/docs/tr/intlayer_CMS.md +14 -121
- package/docs/tr/intlayer_with_adonisjs.md +4 -4
- package/docs/tr/intlayer_with_analog.md +4 -4
- package/docs/tr/intlayer_with_angular_19.md +4 -4
- package/docs/tr/intlayer_with_angular_21.md +4 -4
- package/docs/tr/intlayer_with_astro_lit.md +7 -7
- package/docs/tr/intlayer_with_astro_preact.md +4 -4
- package/docs/tr/intlayer_with_astro_react.md +4 -4
- package/docs/tr/intlayer_with_astro_solid.md +4 -4
- package/docs/tr/intlayer_with_astro_svelte.md +4 -4
- package/docs/tr/intlayer_with_astro_vanilla.md +4 -4
- package/docs/tr/intlayer_with_astro_vue.md +4 -4
- package/docs/tr/intlayer_with_create_react_app.md +4 -4
- package/docs/tr/intlayer_with_express.md +4 -4
- package/docs/tr/intlayer_with_fastify.md +4 -4
- package/docs/tr/intlayer_with_hono.md +4 -4
- package/docs/tr/intlayer_with_lynx+react.md +4 -4
- package/docs/tr/intlayer_with_nestjs.md +4 -4
- package/docs/tr/intlayer_with_next-i18next.md +4 -4
- package/docs/tr/intlayer_with_nextjs_14.md +4 -4
- package/docs/tr/intlayer_with_nextjs_15.md +6 -8
- package/docs/tr/intlayer_with_nextjs_16.md +6 -8
- package/docs/tr/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/tr/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/tr/intlayer_with_nuxt.md +5 -5
- package/docs/tr/intlayer_with_react_native+expo.md +4 -4
- package/docs/tr/intlayer_with_react_router_v7.md +5 -5
- package/docs/tr/intlayer_with_svelte_kit.md +4 -4
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -5
- package/docs/tr/intlayer_with_tanstack.md +6 -7
- package/docs/tr/intlayer_with_vite+lit.md +4 -4
- package/docs/tr/intlayer_with_vite+preact.md +5 -5
- package/docs/tr/intlayer_with_vite+react.md +5 -5
- package/docs/tr/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/tr/intlayer_with_vite+solid.md +5 -5
- package/docs/tr/intlayer_with_vite+svelte.md +4 -4
- package/docs/tr/intlayer_with_vite+vanilla.md +4 -4
- package/docs/tr/intlayer_with_vite+vue.md +5 -5
- package/docs/tr/live-sync.md +173 -0
- package/docs/tr/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/tr/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/tr/releases/v9.md +116 -33
- package/docs/tr/self_hosting.md +350 -0
- package/docs/uk/bundle_optimization.md +16 -0
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/cli/scan.md +2 -2
- package/docs/uk/configuration.md +42 -1
- package/docs/uk/how_works_intlayer.md +2 -2
- package/docs/uk/intlayer_CMS.md +14 -133
- package/docs/uk/intlayer_with_adonisjs.md +4 -4
- package/docs/uk/intlayer_with_analog.md +4 -4
- package/docs/uk/intlayer_with_angular_19.md +4 -4
- package/docs/uk/intlayer_with_angular_21.md +4 -4
- package/docs/uk/intlayer_with_astro_lit.md +7 -7
- package/docs/uk/intlayer_with_astro_preact.md +4 -4
- package/docs/uk/intlayer_with_astro_react.md +4 -4
- package/docs/uk/intlayer_with_astro_solid.md +4 -4
- package/docs/uk/intlayer_with_astro_svelte.md +4 -4
- package/docs/uk/intlayer_with_astro_vanilla.md +4 -4
- package/docs/uk/intlayer_with_astro_vue.md +4 -4
- package/docs/uk/intlayer_with_create_react_app.md +4 -4
- package/docs/uk/intlayer_with_express.md +4 -4
- package/docs/uk/intlayer_with_fastify.md +4 -4
- package/docs/uk/intlayer_with_hono.md +4 -4
- package/docs/uk/intlayer_with_lynx+react.md +4 -4
- package/docs/uk/intlayer_with_nestjs.md +4 -4
- package/docs/uk/intlayer_with_next-i18next.md +4 -4
- package/docs/uk/intlayer_with_nextjs_14.md +4 -4
- package/docs/uk/intlayer_with_nextjs_15.md +6 -8
- package/docs/uk/intlayer_with_nextjs_16.md +6 -8
- package/docs/uk/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/uk/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/uk/intlayer_with_nuxt.md +5 -5
- package/docs/uk/intlayer_with_react_native+expo.md +4 -4
- package/docs/uk/intlayer_with_react_router_v7.md +5 -5
- package/docs/uk/intlayer_with_svelte_kit.md +4 -4
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -5
- package/docs/uk/intlayer_with_tanstack.md +6 -7
- package/docs/uk/intlayer_with_vite+lit.md +4 -4
- package/docs/uk/intlayer_with_vite+preact.md +5 -5
- package/docs/uk/intlayer_with_vite+react.md +5 -5
- package/docs/uk/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/uk/intlayer_with_vite+solid.md +5 -5
- package/docs/uk/intlayer_with_vite+svelte.md +4 -4
- package/docs/uk/intlayer_with_vite+vanilla.md +4 -4
- package/docs/uk/intlayer_with_vite+vue.md +5 -5
- package/docs/uk/live-sync.md +185 -0
- package/docs/uk/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/uk/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/uk/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/uk/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/uk/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/uk/releases/v9.md +128 -33
- package/docs/uk/self_hosting.md +350 -0
- package/docs/ur/bundle_optimization.md +16 -0
- package/docs/ur/cli/index.md +1 -1
- package/docs/ur/cli/scan.md +2 -2
- package/docs/ur/configuration.md +45 -1
- package/docs/ur/intlayer_with_angular_21.md +4 -4
- package/docs/ur/intlayer_with_fastify.md +4 -4
- package/docs/ur/intlayer_with_hono.md +4 -4
- package/docs/ur/intlayer_with_vite+lit.md +4 -4
- package/docs/ur/intlayer_with_vite+vanilla.md +4 -4
- package/docs/vi/bundle_optimization.md +16 -0
- package/docs/vi/cli/index.md +1 -1
- package/docs/vi/cli/scan.md +2 -2
- package/docs/vi/configuration.md +42 -1
- package/docs/vi/how_works_intlayer.md +2 -2
- package/docs/vi/intlayer_CMS.md +5 -139
- package/docs/vi/intlayer_with_adonisjs.md +4 -4
- package/docs/vi/intlayer_with_analog.md +4 -4
- package/docs/vi/intlayer_with_angular_19.md +4 -4
- package/docs/vi/intlayer_with_angular_21.md +4 -4
- package/docs/vi/intlayer_with_astro_lit.md +7 -7
- package/docs/vi/intlayer_with_astro_preact.md +4 -4
- package/docs/vi/intlayer_with_astro_react.md +4 -4
- package/docs/vi/intlayer_with_astro_solid.md +4 -4
- package/docs/vi/intlayer_with_astro_svelte.md +4 -4
- package/docs/vi/intlayer_with_astro_vanilla.md +4 -4
- package/docs/vi/intlayer_with_astro_vue.md +4 -4
- package/docs/vi/intlayer_with_create_react_app.md +4 -4
- package/docs/vi/intlayer_with_express.md +4 -4
- package/docs/vi/intlayer_with_fastify.md +4 -4
- package/docs/vi/intlayer_with_hono.md +4 -4
- package/docs/vi/intlayer_with_lynx+react.md +4 -4
- package/docs/vi/intlayer_with_nestjs.md +4 -4
- package/docs/vi/intlayer_with_next-i18next.md +4 -4
- package/docs/vi/intlayer_with_nextjs_14.md +4 -4
- package/docs/vi/intlayer_with_nextjs_15.md +5 -7
- package/docs/vi/intlayer_with_nextjs_16.md +6 -8
- package/docs/vi/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/vi/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/vi/intlayer_with_nuxt.md +5 -5
- package/docs/vi/intlayer_with_react_native+expo.md +4 -4
- package/docs/vi/intlayer_with_react_router_v7.md +5 -5
- package/docs/vi/intlayer_with_svelte_kit.md +4 -4
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -5
- package/docs/vi/intlayer_with_tanstack.md +6 -7
- package/docs/vi/intlayer_with_vite+lit.md +4 -4
- package/docs/vi/intlayer_with_vite+preact.md +5 -5
- package/docs/vi/intlayer_with_vite+react.md +5 -5
- package/docs/vi/intlayer_with_vite+react_compiler.md +5 -5
- package/docs/vi/intlayer_with_vite+solid.md +5 -5
- package/docs/vi/intlayer_with_vite+svelte.md +4 -4
- package/docs/vi/intlayer_with_vite+vanilla.md +4 -4
- package/docs/vi/intlayer_with_vite+vue.md +5 -5
- package/docs/vi/live-sync.md +185 -0
- package/docs/vi/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/vi/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/vi/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/vi/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/vi/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/vi/releases/v9.md +101 -33
- package/docs/vi/self_hosting.md +350 -0
- package/docs/zh/bundle_optimization.md +16 -0
- package/docs/zh/cli/index.md +1 -1
- package/docs/zh/cli/scan.md +2 -2
- package/docs/zh/configuration.md +42 -1
- package/docs/zh/how_works_intlayer.md +2 -2
- package/docs/zh/intlayer_CMS.md +5 -129
- package/docs/zh/intlayer_with_adonisjs.md +4 -4
- package/docs/zh/intlayer_with_angular_21.md +4 -4
- package/docs/zh/intlayer_with_astro.md +4 -4
- package/docs/zh/intlayer_with_astro_lit.md +7 -7
- package/docs/zh/intlayer_with_astro_preact.md +4 -4
- package/docs/zh/intlayer_with_astro_react.md +4 -4
- package/docs/zh/intlayer_with_astro_solid.md +4 -4
- package/docs/zh/intlayer_with_astro_svelte.md +4 -4
- package/docs/zh/intlayer_with_astro_vanilla.md +4 -4
- package/docs/zh/intlayer_with_astro_vue.md +4 -4
- package/docs/zh/intlayer_with_create_react_app.md +4 -4
- package/docs/zh/intlayer_with_express.md +4 -4
- package/docs/zh/intlayer_with_fastify.md +4 -4
- package/docs/zh/intlayer_with_hono.md +4 -4
- package/docs/zh/intlayer_with_nestjs.md +4 -4
- package/docs/zh/intlayer_with_next-i18next.md +4 -4
- package/docs/zh/intlayer_with_nextjs_14.md +4 -4
- package/docs/zh/intlayer_with_nextjs_15.md +6 -8
- package/docs/zh/intlayer_with_nextjs_16.md +6 -8
- package/docs/zh/intlayer_with_nextjs_compiler.md +5 -7
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +6 -8
- package/docs/zh/intlayer_with_nextjs_page_router.md +4 -4
- package/docs/zh/intlayer_with_react_native+expo.md +4 -4
- package/docs/zh/intlayer_with_react_router_v7.md +5 -5
- package/docs/zh/intlayer_with_vite+solid.md +5 -5
- package/docs/zh/intlayer_with_vite+svelte.md +4 -4
- package/docs/zh/intlayer_with_vite+vue.md +5 -5
- package/docs/zh/live-sync.md +175 -0
- package/docs/zh/migration_from_i18next_to_intlayer.md +4 -4
- package/docs/zh/migration_from_next-i18next_to_intlayer.md +4 -4
- package/docs/zh/migration_from_next-intl_to_intlayer.md +5 -7
- package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +4 -4
- package/docs/zh/migration_from_react-i18next_to_intlayer.md +5 -7
- package/docs/zh/migration_from_vue-i18n_to_intlayer.md +4 -4
- package/docs/zh/releases/v9.md +101 -25
- package/docs/zh/self_hosting.md +350 -0
- package/docs/zh-TW/bundle_optimization.md +16 -0
- package/docs/zh-TW/intlayer_with_angular_21.md +4 -4
- package/package.json +10 -10
- package/src/generated/docs.entry.ts +60 -0
package/docs/en/releases/v9.md
CHANGED
|
@@ -1,27 +1,45 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-06-14
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: New Intlayer v9 - What's new?
|
|
5
|
-
description: Discover what's new in Intlayer v9. Introducing drop-in compatibility packages for popular i18n libraries
|
|
5
|
+
description: Discover what's new in Intlayer v9. Introducing drop-in compatibility packages for popular i18n libraries, support for Collections and Variants, self-hosting via Docker Compose, and the new @intlayer/analytics package for content A/B testing.
|
|
6
6
|
keywords:
|
|
7
7
|
- Intlayer
|
|
8
8
|
- Compatibility
|
|
9
9
|
- Migration
|
|
10
10
|
- Collections
|
|
11
11
|
- Variants
|
|
12
|
+
- CMS SDK
|
|
13
|
+
- Self-Hosting
|
|
14
|
+
- Docker
|
|
15
|
+
- Analytics
|
|
16
|
+
- A/B Testing
|
|
12
17
|
- i18next
|
|
13
18
|
- next-intl
|
|
14
19
|
- vue-i18n
|
|
20
|
+
youtubeVideo: https://www.youtube.com/watch?v=zmCN4z_B4jk
|
|
15
21
|
slugs:
|
|
16
22
|
- doc
|
|
17
23
|
- releases
|
|
18
24
|
- v9
|
|
25
|
+
history:
|
|
26
|
+
- version: 9.0.0
|
|
27
|
+
date: 2026-07-08
|
|
28
|
+
changes: "Add @intlayer/analytics: page/locale + content-exposure tracking, A/B testing, and the dashboard Analytics page"
|
|
19
29
|
author: aymericzip
|
|
20
30
|
---
|
|
21
31
|
|
|
22
32
|
# New Intlayer v9 - What's new?
|
|
23
33
|
|
|
24
|
-
Welcome to Intlayer v9! This major release marks a huge milestone in simplifying the migration path to Intlayer with **Compat Adapter Packages** for major i18n libraries (`react-i18next`, `next-intl`, `vue-i18n`, etc.)
|
|
34
|
+
Welcome to Intlayer v9! This major release marks a huge milestone in simplifying the migration path to Intlayer with **Compat Adapter Packages** for major i18n libraries (`react-i18next`, `next-intl`, `vue-i18n`, etc.), adds support for rich content structures (**Collections** and **Variants**), and introduces **`@intlayer/analytics`** to track content exposure and run A/B tests.
|
|
35
|
+
|
|
36
|
+
<iframe
|
|
37
|
+
src="https://www.youtube.com/embed/zmCN4z_B4jk"
|
|
38
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
39
|
+
title="Demo Video - New Intlayer v9 - What's new?"
|
|
40
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
41
|
+
loading="lazy"
|
|
42
|
+
/>
|
|
25
43
|
|
|
26
44
|
## Table of contents
|
|
27
45
|
|
|
@@ -107,30 +125,42 @@ Intlayer v9 expands beyond static key-value objects, allowing dictionaries to de
|
|
|
107
125
|
|
|
108
126
|
### 1. Collections
|
|
109
127
|
|
|
110
|
-
Define a CMS-managed list of ordered items (e.g. FAQs, products, or blog lists):
|
|
128
|
+
Define a CMS-managed list of ordered items (e.g. FAQs, products, or blog lists). Each item lives in its own `.content.ts` file with the same `key` and an `item` number:
|
|
129
|
+
|
|
130
|
+
```ts fileName="faq.1.content.ts"
|
|
131
|
+
import { t, type Dictionary } from "intlayer";
|
|
132
|
+
|
|
133
|
+
export default {
|
|
134
|
+
key: "faq",
|
|
135
|
+
item: 1,
|
|
136
|
+
content: {
|
|
137
|
+
question: t({ en: "What is Intlayer?", fr: "Qu'est-ce qu'Intlayer ?" }),
|
|
138
|
+
answer: t({ en: "An i18n toolkit.", fr: "Une boîte à outils i18n." }),
|
|
139
|
+
},
|
|
140
|
+
} satisfies Dictionary;
|
|
141
|
+
```
|
|
111
142
|
|
|
112
|
-
```ts fileName="faq.content.ts"
|
|
143
|
+
```ts fileName="faq.2.content.ts"
|
|
113
144
|
import { t, type Dictionary } from "intlayer";
|
|
114
145
|
|
|
115
146
|
export default {
|
|
116
147
|
key: "faq",
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
],
|
|
148
|
+
item: 2,
|
|
149
|
+
content: {
|
|
150
|
+
question: t({ en: "Is it free?", fr: "Est-ce gratuit ?" }),
|
|
151
|
+
answer: t({ en: "Yes, open-source.", fr: "Oui, open-source." }),
|
|
152
|
+
},
|
|
123
153
|
} satisfies Dictionary;
|
|
124
154
|
```
|
|
125
155
|
|
|
126
156
|
#### Usage:
|
|
127
157
|
|
|
128
158
|
```ts
|
|
129
|
-
// Fetch all items
|
|
159
|
+
// Fetch all items as an array
|
|
130
160
|
const allFaqs = useIntlayer("faq"); // -> { question: string, answer: string }[]
|
|
131
161
|
|
|
132
|
-
// Fetch single item by index
|
|
133
|
-
const faq = useIntlayer("faq", { item:
|
|
162
|
+
// Fetch a single item by index
|
|
163
|
+
const faq = useIntlayer("faq", { item: 2 }); // -> { question: string, answer: string }
|
|
134
164
|
```
|
|
135
165
|
|
|
136
166
|
### 2. Variants
|
|
@@ -178,30 +208,54 @@ export default {
|
|
|
178
208
|
#### Usage:
|
|
179
209
|
|
|
180
210
|
```ts
|
|
181
|
-
// Fetches only the requested
|
|
211
|
+
// Fetches only the requested record dynamically (requires Suspense)
|
|
182
212
|
const product = useIntlayer("product-copy", {
|
|
183
|
-
id: "prod_123",
|
|
184
|
-
category: "books",
|
|
213
|
+
variant: { id: "prod_123", category: "books" },
|
|
185
214
|
});
|
|
186
215
|
```
|
|
187
216
|
|
|
188
217
|
---
|
|
189
218
|
|
|
190
|
-
##
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
219
|
+
## `@intlayer/analytics`: content exposure tracking & A/B testing
|
|
220
|
+
|
|
221
|
+
A new optional package, [`@intlayer/analytics`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md), tells you which content is actually shown to your visitors — and closes the loop on **Collections & Variants** by letting you A/B test content and measure conversions per variant.
|
|
222
|
+
|
|
223
|
+
- **Provider-level tracking**: `IntlayerProvider` (React / Next.js / React Native) automatically records `page_view` events on load, route change, and locale change.
|
|
224
|
+
- **Node-level tracking**: every `useIntlayer` resolution reports a `content_exposure` event — which dictionary key, key path, locale, and (when applicable) A/B **variant** was displayed. Repeated exposures within a flush window are coalesced.
|
|
225
|
+
- **Deterministic A/B assignment**: `getVariant(experimentKey, variants)` assigns each session to a variant with **no server round-trip**, so there is no flicker before first render.
|
|
226
|
+
- **`useConversion()`**: attribute a goal (signup, click, purchase…) to the variant a session was exposed to.
|
|
227
|
+
- **Zero cost when not installed**: same tree-shakeable pattern as `@intlayer/editor` — dynamic `import()` wrapped in `try/catch`, plus a compile-time env var (`INTLAYER_ANALYTICS_ENABLED`) that dead-code-eliminates the whole integration for apps that don't opt in.
|
|
228
|
+
- **No new config schema**: reuses `editor.backendURL` (ingestion endpoint / self-hosting) and `editor.clientId` (project key, also the enable switch).
|
|
229
|
+
- **Privacy-respecting**: anonymous session hashing (SHA-256, no raw ids stored), no IP storage, coarse country-only geolocation, batched requests roughly every 20 seconds.
|
|
230
|
+
- **Dashboard**: a new **Analytics** page (shown in the sidebar once a project is selected) reports active users, users today, users over the last 7/30/90 days, a visitor evolution graph, and Locales vs. Location breakdowns.
|
|
231
|
+
|
|
232
|
+
```tsx fileName="CTAButton.tsx" codeFormat="tsx"
|
|
233
|
+
import { useConversion } from "react-intlayer";
|
|
234
|
+
|
|
235
|
+
const CTAButton = () => {
|
|
236
|
+
const trackConversion = useConversion();
|
|
237
|
+
|
|
238
|
+
return (
|
|
239
|
+
<button
|
|
240
|
+
onClick={() =>
|
|
241
|
+
trackConversion({
|
|
242
|
+
experimentKey: "homepage-hero",
|
|
243
|
+
variant: "black_friday",
|
|
244
|
+
goal: "cta_click",
|
|
245
|
+
})
|
|
246
|
+
}
|
|
247
|
+
>
|
|
248
|
+
Get started
|
|
249
|
+
</button>
|
|
250
|
+
);
|
|
201
251
|
};
|
|
202
252
|
```
|
|
203
253
|
|
|
204
|
-
|
|
254
|
+
```bash packageManager="npm"
|
|
255
|
+
npm install @intlayer/analytics
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Available today for React, Next.js, and React Native (via `react-intlayer`); other framework bindings (Vue, Svelte, Angular, …) are planned, following the same rollout pattern as `@intlayer/editor`. See the [Analytics documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md) for the full guide.
|
|
205
259
|
|
|
206
260
|
---
|
|
207
261
|
|
|
@@ -284,6 +338,44 @@ npm install intlayer react-native-intlayer
|
|
|
284
338
|
|
|
285
339
|
---
|
|
286
340
|
|
|
341
|
+
## CMS SDK: use Intlayer as a headless content database
|
|
342
|
+
|
|
343
|
+
Intlayer v9 ships a clean, auto-authenticating SDK in `@intlayer/api` to interact with the CMS programmatically — fetch projects, fetch dictionaries, and push or update them from your own server, scripts, or CI. Authentication (OAuth2 `client_credentials`) is handled and refreshed for you.
|
|
344
|
+
|
|
345
|
+
The SDK is split into **two separate imports** so your bundle includes only the domains you actually use:
|
|
346
|
+
|
|
347
|
+
1. `createIntlayerCMS` — a lightweight **authenticator** holding the credentials and the managed token (no domain client bundled).
|
|
348
|
+
2. `dictionaryEndpoint`, `projectEndpoint`, … — per-domain **endpoint binders**, each imported from its own subpath.
|
|
349
|
+
|
|
350
|
+
```ts fileName="cms.ts"
|
|
351
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
352
|
+
import { dictionaryEndpoint } from "@intlayer/api/dictionary";
|
|
353
|
+
|
|
354
|
+
const cms = createIntlayerCMS();
|
|
355
|
+
|
|
356
|
+
// Read
|
|
357
|
+
const { data: dictionaries } = await dictionaryEndpoint(cms).getDictionaries();
|
|
358
|
+
|
|
359
|
+
// Write — use the CMS like a database
|
|
360
|
+
await dictionaryEndpoint(cms).pushDictionaries([myDictionary]);
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
> Security: the CMS credentials grant write access to your content. Only ever create the authenticator on the **server side** — never ship `clientId` / `clientSecret` to the browser.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Self-Hosting
|
|
368
|
+
|
|
369
|
+
Intlayer v9 ships first-class support for running your own Intlayer instance with a single command. No Intlayer Cloud account required.
|
|
370
|
+
|
|
371
|
+
```sh
|
|
372
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
The installer downloads a `docker-compose.yml` and a `.env`, auto-generates the required secrets, and runs `docker compose up -d`. Everything — the dashboard, the API, the database, object storage, and transactional email — runs locally in containers.
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
287
379
|
## Migration notes from v8
|
|
288
380
|
|
|
289
381
|
If you are upgrading from v8, note that the v9 does not include breaking changes. But here are the key changes:
|
|
@@ -300,5 +392,8 @@ If you are upgrading from v8, note that the v9 does not include breaking changes
|
|
|
300
392
|
|
|
301
393
|
- [Compat Adapter Packages Guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md)
|
|
302
394
|
- [Dynamic Dictionaries - Collections & Variants](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dynamic_dictionaries/index.md)
|
|
395
|
+
- [Analytics - Content exposure tracking & A/B testing](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md)
|
|
303
396
|
- [Configuration Reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
304
397
|
- [React Native & Expo Guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_react_native+expo.md)
|
|
398
|
+
- [CMS SDK - Programmatic access with @intlayer/api](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)
|
|
399
|
+
- [Self-Hosting Guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/self_hosting.md)
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-30
|
|
3
|
+
updatedAt: 2026-07-02
|
|
4
|
+
title: Self-Hosting Intlayer
|
|
5
|
+
description: Run a complete Intlayer instance on your own infrastructure with a single container. No Intlayer Cloud account required.
|
|
6
|
+
keywords:
|
|
7
|
+
- Self-Hosting
|
|
8
|
+
- Docker
|
|
9
|
+
- Intlayer
|
|
10
|
+
- CMS
|
|
11
|
+
- Installation
|
|
12
|
+
- Infrastructure
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- self-hosting
|
|
16
|
+
author: aymericzip
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Self-Hosting Intlayer
|
|
20
|
+
|
|
21
|
+
Intlayer can run on your own infrastructure. No Intlayer Cloud account required. A single all-in-one Docker image bundles the dashboard, the API, and the local datastores (Redis and MinIO) it needs, supervised by [s6-overlay](https://github.com/just-containers/s6-overlay).
|
|
22
|
+
|
|
23
|
+
The only external dependency is **MongoDB**: the backend connects to a MongoDB **Atlas** cluster, which you provide. Everything else runs inside the container.
|
|
24
|
+
|
|
25
|
+
## Table of Contents
|
|
26
|
+
|
|
27
|
+
<TOC/>
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Architecture
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
┌─────────────────────────────┐
|
|
35
|
+
browser ──────▶ │ app (TanStack Start) :3000│ ──┐
|
|
36
|
+
(localhost) └─────────────────────────────┘ │ VITE_BACKEND_URL (baked at build)
|
|
37
|
+
┌─────────────────────────────┐ │
|
|
38
|
+
│ backend (Fastify/Bun) :3100│ ◀─┘
|
|
39
|
+
└──────────────┬──────────────┘
|
|
40
|
+
┌──────────┬─────────┼───────────────────────┐
|
|
41
|
+
▼ ▼ ▼ ▼
|
|
42
|
+
redis:6379 minio:9000 Chromium MongoDB Atlas
|
|
43
|
+
(bundled) (S3 API) (in-image) (external, via DB_*)
|
|
44
|
+
minio:9001
|
|
45
|
+
(console)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Chromium (used for Puppeteer screenshot generation) is bundled inside the image. No separate container is needed. Redis and MinIO run inside the container. MongoDB is **not** hosted by the image; the backend connects to your Atlas cluster over `mongodb+srv://`.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Prerequisites
|
|
53
|
+
|
|
54
|
+
- **Docker** ≥ 24.
|
|
55
|
+
- Ports `3000`, `3100`, `9000`, and `9001` available on the host.
|
|
56
|
+
- A Linux or macOS host (or WSL2 on Windows).
|
|
57
|
+
- A **MongoDB Atlas** cluster (a free tier works). Create one at [mongodb.com/atlas](https://www.mongodb.com/atlas).
|
|
58
|
+
- A **Resend** API key for transactional email. Get one at [resend.com](https://resend.com).
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Quick start
|
|
63
|
+
|
|
64
|
+
Pull and run the published image, supplying your MongoDB Atlas credentials and secrets:
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
docker run -d --name intlayer \
|
|
68
|
+
-p 3000:3000 \
|
|
69
|
+
-p 3100:3100 \
|
|
70
|
+
-p 9000:9000 \
|
|
71
|
+
-p 9001:9001 \
|
|
72
|
+
-v intlayer-data:/data \
|
|
73
|
+
-e DB_ID="<atlas-user>" \
|
|
74
|
+
-e DB_MDP="<atlas-password>" \
|
|
75
|
+
-e DB_CLUSTER="<cluster>.xxxxx.mongodb.net" \
|
|
76
|
+
-e BETTER_AUTH_SECRET="$(openssl rand -hex 32)" \
|
|
77
|
+
-e S3_SECRET_ACCESS_KEY="$(openssl rand -hex 16)" \
|
|
78
|
+
-e RESEND_API_KEY="<your-resend-key>" \
|
|
79
|
+
aymericzip/intlayer-selfhost
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Then open **http://localhost:3000**.
|
|
83
|
+
|
|
84
|
+
> The dashboard is served on `localhost`. See [Limitations](#limitations) — custom domains are not supported by the published image.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## First-run setup
|
|
89
|
+
|
|
90
|
+
On a fresh instance (empty database), opening the dashboard redirects you to the **`/init`** page:
|
|
91
|
+
|
|
92
|
+
1. Create the first account. Because the users collection is empty, this account is automatically promoted to **super admin**.
|
|
93
|
+
2. A verification email is sent (via Resend). Email verification is **mandatory** — this is why `RESEND_API_KEY` must be set before you start.
|
|
94
|
+
3. Click the link in the email, then sign in.
|
|
95
|
+
|
|
96
|
+
Once an admin exists, `/init` redirects to the standard sign-in page.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Services
|
|
101
|
+
|
|
102
|
+
| Service | Location | Host port(s) | Purpose |
|
|
103
|
+
| ----------- | ------------------ | ----------------------------- | ------------------------------------------------------------- |
|
|
104
|
+
| **app** | bundled | `3000` | TanStack Start dashboard (CMS UI) |
|
|
105
|
+
| **backend** | bundled | `3100` | Fastify REST API (`/health` endpoint) |
|
|
106
|
+
| **redis** | bundled | internal | Job queues (BullMQ) and caching (ioredis) |
|
|
107
|
+
| **minio** | bundled | `9000` (S3), `9001` (console) | S3-compatible object storage for avatars and screenshots |
|
|
108
|
+
| **mongo** | **external** (you) | — | MongoDB Atlas, provided via `DB_ID` / `DB_MDP` / `DB_CLUSTER` |
|
|
109
|
+
|
|
110
|
+
> MinIO port `9000` must be reachable by the browser because uploaded assets (avatars, screenshots) are loaded directly from `S3_PUBLIC_URL=http://localhost:9000/intlayer`.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Environment variables
|
|
115
|
+
|
|
116
|
+
### Required
|
|
117
|
+
|
|
118
|
+
| Variable | Example | Description |
|
|
119
|
+
| ---------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
120
|
+
| `DB_ID` | `intlayer` | MongoDB Atlas user |
|
|
121
|
+
| `DB_MDP` | _(your password)_ | MongoDB Atlas password |
|
|
122
|
+
| `DB_CLUSTER` | `cluster0.xxxxx.mongodb.net` | MongoDB Atlas cluster host (used in the `mongodb+srv://` URI) |
|
|
123
|
+
| `BETTER_AUTH_SECRET` | _(generated)_ | 32-byte secret for session signing |
|
|
124
|
+
| `S3_SECRET_ACCESS_KEY` | _(generated)_ | Secret for the bundled MinIO |
|
|
125
|
+
| `RESEND_API_KEY` | _(your key)_ | Transactional email via Resend. Required for first-run setup unless you configure a global SMTP mailer (see [Global mailer](#global-mailer)) |
|
|
126
|
+
|
|
127
|
+
### Baked-in defaults (override only if needed)
|
|
128
|
+
|
|
129
|
+
| Variable | Default | Description |
|
|
130
|
+
| ------------------ | -------------------------------- | ------------------------------------ |
|
|
131
|
+
| `PORT` | `3100` | Backend listening port |
|
|
132
|
+
| `APP_URL` | `http://localhost:3000` | Public URL of the dashboard |
|
|
133
|
+
| `BACKEND_URL` | `http://localhost:3100` | Public URL of the backend API |
|
|
134
|
+
| `DOMAIN` | `localhost` | Cookie domain |
|
|
135
|
+
| `REDIS_URL` | `redis://127.0.0.1:6379` | Bundled Redis |
|
|
136
|
+
| `S3_ENDPOINT` | `http://127.0.0.1:9000` | Bundled MinIO (server-to-server) |
|
|
137
|
+
| `S3_PUBLIC_URL` | `http://localhost:9000/intlayer` | Public URL for browser asset loading |
|
|
138
|
+
| `S3_BUCKET_NAME` | `intlayer` | Bucket name |
|
|
139
|
+
| `S3_ACCESS_KEY_ID` | `intlayer` | MinIO access key |
|
|
140
|
+
|
|
141
|
+
### Optional (features degrade gracefully when absent)
|
|
142
|
+
|
|
143
|
+
| Variable | Feature |
|
|
144
|
+
| -------------------------------------------------------- | ----------------------------------------- |
|
|
145
|
+
| `OPENAI_API_KEY` | AI-assisted translation and content audit |
|
|
146
|
+
| `STRIPE_SECRET_KEY`, `STRIPE_WEBHOOK_SECRET`, `STRIPE_*` | Billing and subscription management |
|
|
147
|
+
| `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` | GitHub OAuth login |
|
|
148
|
+
| `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` | Google OAuth login |
|
|
149
|
+
| `GITLAB_CLIENT_ID`, `GITLAB_CLIENT_SECRET` | GitLab OAuth login |
|
|
150
|
+
| `MICROSOFT_CLIENT_ID`, `MICROSOFT_CLIENT_SECRET` | Microsoft OAuth login |
|
|
151
|
+
|
|
152
|
+
### Global mailer
|
|
153
|
+
|
|
154
|
+
By default, all transactional emails are sent through Resend using `RESEND_API_KEY`. Self-hosted deployments can instead route **every** email — including non-organization emails such as password resets and magic links — through a global mailer configured with environment variables.
|
|
155
|
+
|
|
156
|
+
Set `MAIL_PROVIDER` to activate it. When unset, the default Resend mailer is used.
|
|
157
|
+
|
|
158
|
+
| Variable | Example | Description |
|
|
159
|
+
| -------------------- | ------------------------------ | ----------------------------------------------------------------- |
|
|
160
|
+
| `MAIL_PROVIDER` | `smtp` | Global transport: `smtp` or `resend`. Leave unset to use defaults |
|
|
161
|
+
| `MAIL_FROM` | `Intlayer <no-reply@acme.com>` | Sender header. Accepts a bare address or `Name <email>` format |
|
|
162
|
+
| `MAIL_SMTP_HOST` | `smtp.acme.com` | SMTP host (required when `MAIL_PROVIDER=smtp`) |
|
|
163
|
+
| `MAIL_SMTP_PORT` | `587` | SMTP port (defaults to `587`) |
|
|
164
|
+
| `MAIL_SMTP_SECURE` | `false` | Implicit TLS. Set `true` for port `465` |
|
|
165
|
+
| `MAIL_SMTP_USER` | _(your user)_ | SMTP username (optional; omit for unauthenticated relays) |
|
|
166
|
+
| `MAIL_SMTP_PASSWORD` | _(your password)_ | SMTP password |
|
|
167
|
+
|
|
168
|
+
> Precedence: an organization's own mailer (configured from the **Organization** dashboard) takes priority over the global mailer, which in turn takes priority over the default Resend key.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Connecting your Intlayer project
|
|
173
|
+
|
|
174
|
+
Once the stack is running, point your project at the self-hosted backend and dashboard instead of `intlayer.org`.
|
|
175
|
+
|
|
176
|
+
### Project configuration
|
|
177
|
+
|
|
178
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
179
|
+
import type { IntlayerConfig } from "intlayer";
|
|
180
|
+
|
|
181
|
+
const config: IntlayerConfig = {
|
|
182
|
+
editor: {
|
|
183
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
184
|
+
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* URL of the self-hosted CMS dashboard.
|
|
188
|
+
* Default: https://app.intlayer.org
|
|
189
|
+
*/
|
|
190
|
+
cmsURL: process.env.INTLAYER_CMS_URL, // e.g. http://localhost:3000
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* URL of the self-hosted backend API.
|
|
194
|
+
* Default: https://back.intlayer.org
|
|
195
|
+
*/
|
|
196
|
+
backendURL: process.env.INTLAYER_BACKEND_URL, // e.g. http://localhost:3100
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
export default config;
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Set the environment variables in your project's `.env`:
|
|
204
|
+
|
|
205
|
+
```sh
|
|
206
|
+
INTLAYER_CMS_URL=http://localhost:3000
|
|
207
|
+
INTLAYER_BACKEND_URL=http://localhost:3100
|
|
208
|
+
INTLAYER_CLIENT_ID=<your-client-id>
|
|
209
|
+
INTLAYER_CLIENT_SECRET=<your-client-secret>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Create access credentials in your self-hosted dashboard under **Projects → Access keys** at `http://localhost:3000/projects`.
|
|
213
|
+
|
|
214
|
+
### `@intlayer/api` SDK
|
|
215
|
+
|
|
216
|
+
When using the `@intlayer/api` SDK programmatically, pass `backendURL` explicitly:
|
|
217
|
+
|
|
218
|
+
```typescript fileName="cms.ts" codeFormat="typescript"
|
|
219
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
220
|
+
import { dictionaryEndpoint } from "@intlayer/api/dictionary";
|
|
221
|
+
|
|
222
|
+
const cms = createIntlayerCMS({
|
|
223
|
+
editor: {
|
|
224
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
225
|
+
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
226
|
+
backendURL: process.env.INTLAYER_BACKEND_URL, // http://localhost:3100
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
const { data: dictionaries } = await dictionaryEndpoint(cms).getDictionaries();
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Upgrading
|
|
236
|
+
|
|
237
|
+
Pull the latest image and recreate the container. Your data is preserved in the named volume (MinIO/Redis) and in your Atlas cluster (MongoDB):
|
|
238
|
+
|
|
239
|
+
```sh
|
|
240
|
+
docker pull aymericzip/intlayer-selfhost
|
|
241
|
+
docker stop intlayer && docker rm intlayer
|
|
242
|
+
# re-run the `docker run …` command from Quick start
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Backup and restore
|
|
248
|
+
|
|
249
|
+
MongoDB data lives in your Atlas cluster — back it up with Atlas' own tools. The bundled local datastores live under the `intlayer-data` volume.
|
|
250
|
+
|
|
251
|
+
### Backup
|
|
252
|
+
|
|
253
|
+
```sh
|
|
254
|
+
docker run --rm \
|
|
255
|
+
-v intlayer-data:/data \
|
|
256
|
+
-v "$(pwd)":/backup \
|
|
257
|
+
busybox tar czf /backup/intlayer-data.tar.gz /data
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Restore
|
|
261
|
+
|
|
262
|
+
```sh
|
|
263
|
+
docker run --rm \
|
|
264
|
+
-v intlayer-data:/data \
|
|
265
|
+
-v "$(pwd)":/backup \
|
|
266
|
+
busybox tar xzf /backup/intlayer-data.tar.gz -C /
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Limitations
|
|
272
|
+
|
|
273
|
+
- **MongoDB must be external (Atlas).** The backend connects only over `mongodb+srv://` (built from `DB_ID` / `DB_MDP` / `DB_CLUSTER`), so a plain `mongodb://host:27017` — including the container's own bundled `mongod` — cannot be used. Provide a MongoDB Atlas cluster.
|
|
274
|
+
- **No custom domain.** All browser-facing `VITE_*` URLs are inlined into the app at build time, and the published image ships with `localhost` values. The dashboard must be accessed at `http://localhost:3000`; serving it on a public domain would require rebuilding the image with the target URLs baked in and is not supported out of the box.
|
|
275
|
+
- **Email requires a working mailer.** First-run setup enforces email verification, so either `RESEND_API_KEY` or a [global SMTP mailer](#global-mailer) (`MAIL_PROVIDER=smtp` + `MAIL_SMTP_*`) must be configured. After the first admin signs in, each organization can also configure its own SMTP or Resend mailer from the dashboard.
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Troubleshooting
|
|
280
|
+
|
|
281
|
+
### Dashboard loads but the API resets the connection (`ERR_CONNECTION_RESET` on `:3100`)
|
|
282
|
+
|
|
283
|
+
The backend crashed on startup and is not listening. The most common cause is a missing or invalid MongoDB connection: check that `DB_ID`, `DB_MDP`, and `DB_CLUSTER` are set and correct.
|
|
284
|
+
|
|
285
|
+
```sh
|
|
286
|
+
docker logs intlayer
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Look for `MongoDB connection error` near the top of the log.
|
|
290
|
+
|
|
291
|
+
### First account can't be verified
|
|
292
|
+
|
|
293
|
+
Email verification is mandatory. Make sure a mailer is configured — either `RESEND_API_KEY`, or a [global SMTP mailer](#global-mailer) (`MAIL_PROVIDER=smtp` + `MAIL_SMTP_*`) — then re-check your inbox (and spam). Without a working mailer, the verification link is never delivered. Delivery failures are logged by the backend (`docker logs intlayer`) with the underlying error message.
|
|
294
|
+
|
|
295
|
+
### MinIO bucket missing
|
|
296
|
+
|
|
297
|
+
The `init-minio` one-shot creates the bucket on first boot. If assets fail to load, restart the container so it runs again:
|
|
298
|
+
|
|
299
|
+
```sh
|
|
300
|
+
docker restart intlayer
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Useful links
|
|
306
|
+
|
|
307
|
+
- [Intlayer CMS documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)
|
|
308
|
+
- [Configuration reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
309
|
+
- [CMS SDK — `@intlayer/api`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md#programmatic-access-with-the-intlayerapi-sdk)
|
|
310
|
+
- [Docker Image (aymercizip/intlayer-selfhost)](https://hub.docker.com/repository/docker/aymercizip/intlayer-selfhost/general)
|
|
@@ -231,6 +231,9 @@ Next.js requires the `@intlayer/swc` plugin for the optimise (import rewrite) pa
|
|
|
231
231
|
|
|
232
232
|
> This plugin is not installed by default as SWC plugins are still experimental for Next.js. This may change in the future.
|
|
233
233
|
|
|
234
|
+
<Tabs>
|
|
235
|
+
<Tab value="npm">
|
|
236
|
+
|
|
234
237
|
```bash packageManager="npm"
|
|
235
238
|
npm install -D @intlayer/swc
|
|
236
239
|
```
|
|
@@ -247,6 +250,19 @@ pnpm add -D @intlayer/swc
|
|
|
247
250
|
bun add -d @intlayer/swc
|
|
248
251
|
```
|
|
249
252
|
|
|
253
|
+
</Tab>
|
|
254
|
+
<Tab value="Crates.io (rust)">
|
|
255
|
+
|
|
256
|
+
```toml fileName="Cargo.toml"
|
|
257
|
+
[dependencies]
|
|
258
|
+
intlayer-swc-plugin = "*"
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
[View on Crates.io](https://crates.io/crates/intlayer-swc-plugin)
|
|
262
|
+
|
|
263
|
+
</Tab>
|
|
264
|
+
</Tabs>
|
|
265
|
+
|
|
250
266
|
Once installed, Intlayer will automatically detect and use the plugin.
|
|
251
267
|
|
|
252
268
|
For the **purge and minify** passes (field removal and field rename), install `@intlayer/babel` alongside it and add the Babel plugins. Because Next.js uses SWC for transformation but still evaluates `babel.config.js` for plugin config, the Babel plugins run as a pre-pass before SWC.
|
package/docs/en-GB/cli/index.md
CHANGED
|
@@ -125,7 +125,7 @@ To learn how to configure the available languages or other parameters, take a lo
|
|
|
125
125
|
|
|
126
126
|
### Authentication
|
|
127
127
|
|
|
128
|
-
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/login.md)** - Authenticate with the Intlayer CMS and get the access credentials
|
|
128
|
+
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/cli/login.md)** - Authenticate with the Intlayer CMS and get the access credentials
|
|
129
129
|
|
|
130
130
|
### Core Commands
|
|
131
131
|
|
package/docs/en-GB/cli/scan.md
CHANGED
|
@@ -150,10 +150,10 @@ await scan("https://example.com", {
|
|
|
150
150
|
});
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
For lower-level access, `scanWebsite` from `@intlayer/
|
|
153
|
+
For lower-level access, `scanWebsite` from `@intlayer/engine/scan` returns a structured `ScanResult` object:
|
|
154
154
|
|
|
155
155
|
```ts
|
|
156
|
-
import { scanWebsite } from "@intlayer/
|
|
156
|
+
import { scanWebsite } from "@intlayer/engine/scan";
|
|
157
157
|
|
|
158
158
|
const result = await scanWebsite("https://example.com", { deep: false });
|
|
159
159
|
console.log(result.score, result.totalPageSize, result.events);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-11
|
|
4
4
|
title: Configuration
|
|
5
5
|
description: Learn how to configure Intlayer for your application. Understand the various settings and options available to customize Intlayer to your needs.
|
|
6
6
|
keywords:
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-07-11
|
|
19
|
+
changes: "Add `analytics` configuration"
|
|
17
20
|
- version: 9.0.0
|
|
18
21
|
date: 2026-06-24
|
|
19
22
|
changes: "Add `enableProxy` option to the routing configuration"
|
|
@@ -355,6 +358,30 @@ const config: IntlayerConfig = {
|
|
|
355
358
|
liveSync: true,
|
|
356
359
|
},
|
|
357
360
|
|
|
361
|
+
/**
|
|
362
|
+
* Analytics configuration.
|
|
363
|
+
*/
|
|
364
|
+
analytics: {
|
|
365
|
+
/**
|
|
366
|
+
* Whether analytics collection is enabled (page views, content exposures, A/B events).
|
|
367
|
+
* Requires `editor.clientId` to be set for attribution.
|
|
368
|
+
* Default: false
|
|
369
|
+
*/
|
|
370
|
+
enabled: true,
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Milliseconds between automatic batched flushes to the backend.
|
|
374
|
+
* Default: 20000
|
|
375
|
+
*/
|
|
376
|
+
flushInterval: 20000,
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Fraction of sessions to record, from 0 (none) to 1 (all).
|
|
380
|
+
* Default: 1
|
|
381
|
+
*/
|
|
382
|
+
sampleRate: 1,
|
|
383
|
+
},
|
|
384
|
+
|
|
358
385
|
/**
|
|
359
386
|
* AI-powered translation and generation settings.
|
|
360
387
|
*/
|
|
@@ -670,6 +697,20 @@ Defines settings related to the integrated editor, including server port and act
|
|
|
670
697
|
| `liveSyncPort` | The port of the live sync server. | `number` | `4000` | `4000` | |
|
|
671
698
|
| `liveSyncURL` | The URL of the live sync server. | `string` | `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Points to localhost by default; can be changed for a remote live sync server. |
|
|
672
699
|
|
|
700
|
+
### Analytics Configuration
|
|
701
|
+
|
|
702
|
+
Defines settings related to Intlayer analytics: collecting which content is actually shown to users (page views, content exposures) and powering content A/B testing.
|
|
703
|
+
|
|
704
|
+
Analytics is strictly opt-in: nothing is collected unless `analytics.enabled` is explicitly set to `true` **and** a project key (`editor.clientId`) is configured for attribution. When disabled (the default), the whole analytics integration is dead-code-eliminated from your application bundle.
|
|
705
|
+
|
|
706
|
+
| Field | Description | Type | Default | Example | Note |
|
|
707
|
+
| --------------- | ------------------------------------------------------------------------- | --------- | ------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
708
|
+
| `enabled` | Enables analytics collection (page views, content exposures, A/B events). | `boolean` | `false` | `true` | Requires `editor.clientId` to be set for attribution; otherwise analytics stays disabled even if `enabled` is `true`. |
|
|
709
|
+
| `flushInterval` | Milliseconds between automatic batched flushes to the backend. | `number` | `20000` | `10000` | |
|
|
710
|
+
| `sampleRate` | Fraction of sessions to record, from `0` (none) to `1` (all). | `number` | `1` | `0.5` | Sampling is deterministic per session, so a recorded session reports all of its events (no partial funnels). |
|
|
711
|
+
|
|
712
|
+
---
|
|
713
|
+
|
|
673
714
|
### Routing Configuration
|
|
674
715
|
|
|
675
716
|
Settings that control routing behavior, including URL structure, locale storage, and middleware handling.
|