@intlayer/docs 9.0.0-canary.9 → 9.0.0
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 +8 -4
- package/blog/ar/intlayer_with_next-i18next.md +8 -4
- package/blog/ar/intlayer_with_next-intl.md +8 -4
- package/blog/ar/intlayer_with_react-i18next.md +8 -4
- package/blog/ar/intlayer_with_react-intl.md +8 -4
- package/blog/ar/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/de/intlayer_with_next-i18next.md +8 -4
- package/blog/de/intlayer_with_next-intl.md +8 -4
- package/blog/de/intlayer_with_react-i18next.md +8 -4
- package/blog/de/intlayer_with_react-intl.md +8 -4
- package/blog/de/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/en/intlayer_with_next-i18next.md +8 -4
- package/blog/en/intlayer_with_next-intl.md +8 -4
- package/blog/en/intlayer_with_react-i18next.md +8 -4
- package/blog/en/intlayer_with_react-intl.md +8 -4
- package/blog/en/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/en-GB/intlayer_with_next-i18next.md +8 -4
- package/blog/en-GB/intlayer_with_next-intl.md +8 -4
- package/blog/en-GB/intlayer_with_react-i18next.md +8 -4
- package/blog/en-GB/intlayer_with_react-intl.md +8 -4
- package/blog/en-GB/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/es/intlayer_with_next-i18next.md +8 -4
- package/blog/es/intlayer_with_next-intl.md +8 -4
- package/blog/es/intlayer_with_react-i18next.md +8 -4
- package/blog/es/intlayer_with_react-intl.md +8 -4
- package/blog/es/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/fr/intlayer_with_next-i18next.md +8 -4
- package/blog/fr/intlayer_with_next-intl.md +8 -4
- package/blog/fr/intlayer_with_react-i18next.md +8 -4
- package/blog/fr/intlayer_with_react-intl.md +8 -4
- package/blog/fr/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/hi/intlayer_with_next-i18next.md +8 -4
- package/blog/hi/intlayer_with_next-intl.md +8 -4
- package/blog/hi/intlayer_with_react-i18next.md +8 -4
- package/blog/hi/intlayer_with_react-intl.md +8 -4
- package/blog/hi/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/id/intlayer_with_next-i18next.md +8 -4
- package/blog/id/intlayer_with_next-intl.md +8 -4
- package/blog/id/intlayer_with_react-i18next.md +8 -4
- package/blog/id/intlayer_with_react-intl.md +8 -4
- package/blog/id/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/it/intlayer_with_next-i18next.md +8 -4
- package/blog/it/intlayer_with_next-intl.md +8 -4
- package/blog/it/intlayer_with_react-i18next.md +8 -4
- package/blog/it/intlayer_with_react-intl.md +8 -4
- package/blog/it/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/ja/intlayer_with_next-i18next.md +8 -4
- package/blog/ja/intlayer_with_next-intl.md +8 -4
- package/blog/ja/intlayer_with_react-i18next.md +8 -4
- package/blog/ja/intlayer_with_react-intl.md +8 -4
- package/blog/ja/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/ko/intlayer_with_next-i18next.md +8 -4
- package/blog/ko/intlayer_with_next-intl.md +8 -4
- package/blog/ko/intlayer_with_react-i18next.md +8 -4
- package/blog/ko/intlayer_with_react-intl.md +8 -4
- package/blog/ko/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/pl/intlayer_with_next-i18next.md +8 -4
- package/blog/pl/intlayer_with_next-intl.md +8 -4
- package/blog/pl/intlayer_with_react-i18next.md +8 -4
- package/blog/pl/intlayer_with_react-intl.md +8 -4
- package/blog/pl/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/pt/intlayer_with_next-i18next.md +8 -4
- package/blog/pt/intlayer_with_next-intl.md +8 -4
- package/blog/pt/intlayer_with_react-i18next.md +8 -4
- package/blog/pt/intlayer_with_react-intl.md +8 -4
- package/blog/pt/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/ru/intlayer_with_next-i18next.md +8 -4
- package/blog/ru/intlayer_with_next-intl.md +8 -4
- package/blog/ru/intlayer_with_react-i18next.md +8 -4
- package/blog/ru/intlayer_with_react-intl.md +8 -4
- package/blog/ru/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/tr/intlayer_with_next-i18next.md +8 -4
- package/blog/tr/intlayer_with_next-intl.md +8 -4
- package/blog/tr/intlayer_with_react-i18next.md +8 -4
- package/blog/tr/intlayer_with_react-intl.md +8 -4
- package/blog/tr/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/uk/intlayer_with_next-i18next.md +8 -4
- package/blog/uk/intlayer_with_next-intl.md +8 -4
- package/blog/uk/intlayer_with_react-i18next.md +8 -4
- package/blog/uk/intlayer_with_react-intl.md +8 -4
- package/blog/uk/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/blog/vi/intlayer_with_next-i18next.md +8 -4
- package/blog/vi/intlayer_with_next-intl.md +8 -4
- package/blog/vi/intlayer_with_react-i18next.md +8 -4
- package/blog/vi/intlayer_with_react-intl.md +8 -4
- package/blog/vi/intlayer_with_vue-i18n.md +8 -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 +8 -4
- package/docs/ar/intlayer_with_analog.md +8 -4
- package/docs/ar/intlayer_with_angular_19.md +8 -4
- package/docs/ar/intlayer_with_angular_21.md +8 -4
- package/docs/ar/intlayer_with_astro_lit.md +11 -7
- package/docs/ar/intlayer_with_astro_preact.md +8 -4
- package/docs/ar/intlayer_with_astro_react.md +8 -4
- package/docs/ar/intlayer_with_astro_solid.md +8 -4
- package/docs/ar/intlayer_with_astro_svelte.md +8 -4
- package/docs/ar/intlayer_with_astro_vanilla.md +8 -4
- package/docs/ar/intlayer_with_astro_vue.md +8 -4
- package/docs/ar/intlayer_with_create_react_app.md +8 -4
- package/docs/ar/intlayer_with_express.md +8 -4
- package/docs/ar/intlayer_with_fastify.md +8 -4
- package/docs/ar/intlayer_with_hono.md +8 -4
- package/docs/ar/intlayer_with_lynx+react.md +8 -4
- package/docs/ar/intlayer_with_nestjs.md +8 -4
- package/docs/ar/intlayer_with_next-i18next.md +8 -4
- package/docs/ar/intlayer_with_nextjs_14.md +8 -4
- package/docs/ar/intlayer_with_nextjs_15.md +10 -8
- package/docs/ar/intlayer_with_nextjs_16.md +10 -8
- package/docs/ar/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/ar/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/ar/intlayer_with_nuxt.md +9 -5
- package/docs/ar/intlayer_with_react_native+expo.md +8 -4
- package/docs/ar/intlayer_with_react_router_v7.md +9 -5
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +9 -5
- package/docs/ar/intlayer_with_svelte_kit.md +8 -4
- package/docs/ar/intlayer_with_tanstack+solid.md +9 -5
- package/docs/ar/intlayer_with_tanstack.md +10 -7
- package/docs/ar/intlayer_with_vite+lit.md +8 -4
- package/docs/ar/intlayer_with_vite+preact.md +9 -5
- package/docs/ar/intlayer_with_vite+react.md +9 -5
- package/docs/ar/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/ar/intlayer_with_vite+solid.md +9 -5
- package/docs/ar/intlayer_with_vite+svelte.md +8 -4
- package/docs/ar/intlayer_with_vite+vanilla.md +8 -4
- package/docs/ar/intlayer_with_vite+vue.md +9 -5
- package/docs/ar/live-sync.md +174 -0
- package/docs/ar/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/ar/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/ar/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/ar/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/ar/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/bn/intlayer_with_fastify.md +8 -4
- package/docs/bn/intlayer_with_hono.md +8 -4
- package/docs/bn/intlayer_with_vite+lit.md +8 -4
- package/docs/bn/intlayer_with_vite+vanilla.md +8 -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 +8 -4
- package/docs/cs/intlayer_with_fastify.md +8 -4
- package/docs/cs/intlayer_with_hono.md +8 -4
- package/docs/cs/intlayer_with_vite+lit.md +8 -4
- package/docs/cs/intlayer_with_vite+vanilla.md +8 -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 +8 -4
- package/docs/de/intlayer_with_analog.md +8 -4
- package/docs/de/intlayer_with_angular_19.md +8 -4
- package/docs/de/intlayer_with_angular_21.md +8 -4
- package/docs/de/intlayer_with_astro_lit.md +11 -7
- package/docs/de/intlayer_with_astro_preact.md +8 -4
- package/docs/de/intlayer_with_astro_react.md +8 -4
- package/docs/de/intlayer_with_astro_solid.md +8 -4
- package/docs/de/intlayer_with_astro_svelte.md +8 -4
- package/docs/de/intlayer_with_astro_vanilla.md +8 -4
- package/docs/de/intlayer_with_astro_vue.md +8 -4
- package/docs/de/intlayer_with_create_react_app.md +8 -4
- package/docs/de/intlayer_with_express.md +8 -4
- package/docs/de/intlayer_with_fastify.md +8 -4
- package/docs/de/intlayer_with_hono.md +8 -4
- package/docs/de/intlayer_with_lynx+react.md +8 -4
- package/docs/de/intlayer_with_nestjs.md +8 -4
- package/docs/de/intlayer_with_next-i18next.md +8 -4
- package/docs/de/intlayer_with_nextjs_14.md +8 -4
- package/docs/de/intlayer_with_nextjs_15.md +10 -8
- package/docs/de/intlayer_with_nextjs_16.md +10 -8
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/de/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/de/intlayer_with_nuxt.md +9 -5
- package/docs/de/intlayer_with_react_native+expo.md +8 -4
- package/docs/de/intlayer_with_react_router_v7.md +9 -5
- package/docs/de/intlayer_with_svelte_kit.md +8 -4
- package/docs/de/intlayer_with_tanstack+solid.md +9 -5
- package/docs/de/intlayer_with_tanstack.md +10 -7
- package/docs/de/intlayer_with_vite+lit.md +8 -4
- package/docs/de/intlayer_with_vite+preact.md +9 -5
- package/docs/de/intlayer_with_vite+react.md +9 -5
- package/docs/de/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/de/intlayer_with_vite+solid.md +9 -5
- package/docs/de/intlayer_with_vite+vanilla.md +8 -4
- package/docs/de/intlayer_with_vite+vue.md +9 -5
- package/docs/de/live-sync.md +174 -0
- package/docs/de/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/de/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/de/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/de/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +8 -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/how_works_intlayer.md +2 -2
- package/docs/en/intlayer_CMS.md +143 -107
- package/docs/en/intlayer_with_adonisjs.md +8 -4
- package/docs/en/intlayer_with_analog.md +8 -4
- package/docs/en/intlayer_with_angular_19.md +8 -4
- package/docs/en/intlayer_with_angular_21.md +8 -4
- package/docs/en/intlayer_with_astro.md +8 -4
- package/docs/en/intlayer_with_astro_lit.md +11 -7
- package/docs/en/intlayer_with_astro_preact.md +8 -4
- package/docs/en/intlayer_with_astro_react.md +8 -4
- package/docs/en/intlayer_with_astro_solid.md +8 -4
- package/docs/en/intlayer_with_astro_svelte.md +8 -4
- package/docs/en/intlayer_with_astro_vanilla.md +8 -4
- package/docs/en/intlayer_with_astro_vue.md +8 -4
- package/docs/en/intlayer_with_create_react_app.md +8 -4
- package/docs/en/intlayer_with_express.md +8 -4
- package/docs/en/intlayer_with_fastify.md +8 -4
- package/docs/en/intlayer_with_hono.md +8 -4
- package/docs/en/intlayer_with_lynx+react.md +8 -4
- package/docs/en/intlayer_with_nestjs.md +8 -4
- package/docs/en/intlayer_with_next-i18next.md +8 -4
- package/docs/en/intlayer_with_nextjs_14.md +8 -4
- package/docs/en/intlayer_with_nextjs_15.md +9 -7
- package/docs/en/intlayer_with_nextjs_16.md +10 -8
- package/docs/en/intlayer_with_nextjs_compiler.md +10 -8
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/en/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/en/intlayer_with_nuxt.md +9 -5
- package/docs/en/intlayer_with_react_native+expo.md +8 -4
- package/docs/en/intlayer_with_react_router_v7.md +9 -5
- package/docs/en/intlayer_with_svelte_kit.md +8 -4
- package/docs/en/intlayer_with_tanstack+solid.md +9 -5
- package/docs/en/intlayer_with_tanstack.md +10 -7
- package/docs/en/intlayer_with_vite+lit.md +8 -4
- package/docs/en/intlayer_with_vite+preact.md +9 -5
- package/docs/en/intlayer_with_vite+react.md +9 -5
- package/docs/en/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/en/intlayer_with_vite+solid.md +9 -5
- package/docs/en/intlayer_with_vite+svelte.md +8 -4
- package/docs/en/intlayer_with_vite+vanilla.md +8 -4
- package/docs/en/intlayer_with_vite+vue.md +9 -5
- package/docs/en/live-sync.md +184 -0
- package/docs/en/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/en/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/en/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/en/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/en-GB/intlayer_with_analog.md +8 -4
- package/docs/en-GB/intlayer_with_angular_19.md +8 -4
- package/docs/en-GB/intlayer_with_angular_21.md +8 -4
- package/docs/en-GB/intlayer_with_astro_lit.md +11 -7
- package/docs/en-GB/intlayer_with_astro_preact.md +8 -4
- package/docs/en-GB/intlayer_with_astro_react.md +8 -4
- package/docs/en-GB/intlayer_with_astro_solid.md +8 -4
- package/docs/en-GB/intlayer_with_astro_svelte.md +8 -4
- package/docs/en-GB/intlayer_with_astro_vanilla.md +8 -4
- package/docs/en-GB/intlayer_with_astro_vue.md +8 -4
- package/docs/en-GB/intlayer_with_create_react_app.md +16 -8
- package/docs/en-GB/intlayer_with_express.md +8 -4
- package/docs/en-GB/intlayer_with_fastify.md +8 -4
- package/docs/en-GB/intlayer_with_hono.md +8 -4
- package/docs/en-GB/intlayer_with_lynx+react.md +16 -8
- package/docs/en-GB/intlayer_with_nestjs.md +8 -4
- package/docs/en-GB/intlayer_with_next-i18next.md +8 -4
- package/docs/en-GB/intlayer_with_nextjs_14.md +8 -4
- package/docs/en-GB/intlayer_with_nextjs_15.md +10 -8
- package/docs/en-GB/intlayer_with_nextjs_16.md +10 -8
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/en-GB/intlayer_with_nuxt.md +9 -5
- package/docs/en-GB/intlayer_with_react_native+expo.md +8 -4
- package/docs/en-GB/intlayer_with_react_router_v7.md +9 -5
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +9 -5
- package/docs/en-GB/intlayer_with_svelte_kit.md +8 -4
- package/docs/en-GB/intlayer_with_tanstack+solid.md +9 -5
- package/docs/en-GB/intlayer_with_tanstack.md +10 -7
- package/docs/en-GB/intlayer_with_vite+lit.md +8 -4
- package/docs/en-GB/intlayer_with_vite+preact.md +9 -5
- package/docs/en-GB/intlayer_with_vite+react.md +9 -5
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/en-GB/intlayer_with_vite+solid.md +9 -5
- package/docs/en-GB/intlayer_with_vite+svelte.md +8 -4
- package/docs/en-GB/intlayer_with_vite+vanilla.md +8 -4
- package/docs/en-GB/intlayer_with_vite+vue.md +9 -5
- package/docs/en-GB/live-sync.md +173 -0
- package/docs/en-GB/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/en-GB/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/es/intlayer_with_analog.md +8 -4
- package/docs/es/intlayer_with_angular_19.md +8 -4
- package/docs/es/intlayer_with_angular_21.md +8 -4
- package/docs/es/intlayer_with_astro_lit.md +11 -7
- package/docs/es/intlayer_with_astro_preact.md +8 -4
- package/docs/es/intlayer_with_astro_react.md +8 -4
- package/docs/es/intlayer_with_astro_solid.md +8 -4
- package/docs/es/intlayer_with_astro_svelte.md +8 -4
- package/docs/es/intlayer_with_astro_vanilla.md +8 -4
- package/docs/es/intlayer_with_astro_vue.md +8 -4
- package/docs/es/intlayer_with_create_react_app.md +8 -4
- package/docs/es/intlayer_with_express.md +8 -4
- package/docs/es/intlayer_with_fastify.md +8 -4
- package/docs/es/intlayer_with_hono.md +8 -4
- package/docs/es/intlayer_with_lynx+react.md +8 -4
- package/docs/es/intlayer_with_nestjs.md +8 -4
- package/docs/es/intlayer_with_next-i18next.md +8 -4
- package/docs/es/intlayer_with_nextjs_14.md +8 -4
- package/docs/es/intlayer_with_nextjs_15.md +10 -8
- package/docs/es/intlayer_with_nextjs_16.md +10 -8
- package/docs/es/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/es/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/es/intlayer_with_nuxt.md +9 -5
- package/docs/es/intlayer_with_react_native+expo.md +8 -4
- package/docs/es/intlayer_with_react_router_v7.md +9 -5
- package/docs/es/intlayer_with_svelte_kit.md +8 -4
- package/docs/es/intlayer_with_tanstack+solid.md +9 -5
- package/docs/es/intlayer_with_tanstack.md +10 -7
- package/docs/es/intlayer_with_vite+lit.md +8 -4
- package/docs/es/intlayer_with_vite+preact.md +9 -5
- package/docs/es/intlayer_with_vite+react.md +9 -5
- package/docs/es/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/es/intlayer_with_vite+solid.md +9 -5
- package/docs/es/intlayer_with_vite+svelte.md +8 -4
- package/docs/es/intlayer_with_vite+vanilla.md +8 -4
- package/docs/es/intlayer_with_vite+vue.md +9 -5
- package/docs/es/live-sync.md +176 -0
- package/docs/es/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/es/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/es/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/es/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/fr/intlayer_with_analog.md +8 -4
- package/docs/fr/intlayer_with_angular_19.md +8 -4
- package/docs/fr/intlayer_with_angular_21.md +8 -4
- package/docs/fr/intlayer_with_astro_lit.md +11 -7
- package/docs/fr/intlayer_with_astro_preact.md +8 -4
- package/docs/fr/intlayer_with_astro_react.md +8 -4
- package/docs/fr/intlayer_with_astro_solid.md +8 -4
- package/docs/fr/intlayer_with_astro_svelte.md +8 -4
- package/docs/fr/intlayer_with_astro_vanilla.md +8 -4
- package/docs/fr/intlayer_with_astro_vue.md +8 -4
- package/docs/fr/intlayer_with_create_react_app.md +8 -4
- package/docs/fr/intlayer_with_express.md +8 -4
- package/docs/fr/intlayer_with_fastify.md +8 -4
- package/docs/fr/intlayer_with_hono.md +8 -4
- package/docs/fr/intlayer_with_lynx+react.md +8 -4
- package/docs/fr/intlayer_with_nestjs.md +8 -4
- package/docs/fr/intlayer_with_next-i18next.md +8 -4
- package/docs/fr/intlayer_with_nextjs_14.md +8 -4
- package/docs/fr/intlayer_with_nextjs_15.md +10 -8
- package/docs/fr/intlayer_with_nextjs_16.md +10 -8
- package/docs/fr/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/fr/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/fr/intlayer_with_nuxt.md +9 -5
- package/docs/fr/intlayer_with_react_native+expo.md +8 -4
- package/docs/fr/intlayer_with_react_router_v7.md +9 -5
- package/docs/fr/intlayer_with_svelte_kit.md +8 -4
- package/docs/fr/intlayer_with_tanstack+solid.md +9 -5
- package/docs/fr/intlayer_with_tanstack.md +10 -7
- package/docs/fr/intlayer_with_vite+lit.md +8 -4
- package/docs/fr/intlayer_with_vite+preact.md +9 -5
- package/docs/fr/intlayer_with_vite+react.md +9 -5
- package/docs/fr/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/fr/intlayer_with_vite+solid.md +9 -5
- package/docs/fr/intlayer_with_vite+svelte.md +8 -4
- package/docs/fr/intlayer_with_vite+vanilla.md +8 -4
- package/docs/fr/intlayer_with_vite+vue.md +9 -5
- package/docs/fr/live-sync.md +174 -0
- package/docs/fr/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/fr/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/hi/intlayer_with_analog.md +8 -4
- package/docs/hi/intlayer_with_angular_19.md +8 -4
- package/docs/hi/intlayer_with_angular_21.md +8 -4
- package/docs/hi/intlayer_with_astro_vue.md +8 -4
- package/docs/hi/intlayer_with_create_react_app.md +8 -4
- package/docs/hi/intlayer_with_express.md +8 -4
- package/docs/hi/intlayer_with_fastify.md +8 -4
- package/docs/hi/intlayer_with_hono.md +8 -4
- package/docs/hi/intlayer_with_lynx+react.md +8 -4
- package/docs/hi/intlayer_with_nestjs.md +8 -4
- package/docs/hi/intlayer_with_next-i18next.md +8 -4
- package/docs/hi/intlayer_with_nextjs_14.md +8 -4
- package/docs/hi/intlayer_with_nextjs_15.md +10 -8
- package/docs/hi/intlayer_with_nextjs_16.md +10 -8
- package/docs/hi/intlayer_with_nextjs_compiler.md +8 -4
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/hi/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/hi/intlayer_with_nuxt.md +9 -5
- package/docs/hi/intlayer_with_react_native+expo.md +8 -4
- package/docs/hi/intlayer_with_react_router_v7.md +9 -5
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +9 -5
- package/docs/hi/intlayer_with_svelte_kit.md +8 -4
- package/docs/hi/intlayer_with_tanstack+solid.md +9 -5
- package/docs/hi/intlayer_with_tanstack.md +10 -7
- package/docs/hi/intlayer_with_vite+lit.md +8 -4
- package/docs/hi/intlayer_with_vite+preact.md +9 -5
- package/docs/hi/intlayer_with_vite+react.md +9 -5
- package/docs/hi/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/hi/intlayer_with_vite+solid.md +9 -5
- package/docs/hi/intlayer_with_vite+svelte.md +8 -4
- package/docs/hi/intlayer_with_vite+vanilla.md +8 -4
- package/docs/hi/intlayer_with_vite+vue.md +9 -5
- package/docs/hi/live-sync.md +174 -0
- package/docs/hi/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/hi/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/hi/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/hi/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/hi/migration_from_vue-i18n_to_intlayer.md +8 -4
- package/docs/hi/packages/intlayer/index.md +8 -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 +8 -4
- package/docs/id/intlayer_with_analog.md +8 -4
- package/docs/id/intlayer_with_angular_19.md +8 -4
- package/docs/id/intlayer_with_angular_21.md +8 -4
- package/docs/id/intlayer_with_astro_lit.md +11 -7
- package/docs/id/intlayer_with_astro_preact.md +8 -4
- package/docs/id/intlayer_with_astro_react.md +8 -4
- package/docs/id/intlayer_with_astro_solid.md +8 -4
- package/docs/id/intlayer_with_astro_svelte.md +8 -4
- package/docs/id/intlayer_with_astro_vanilla.md +8 -4
- package/docs/id/intlayer_with_astro_vue.md +8 -4
- package/docs/id/intlayer_with_create_react_app.md +8 -4
- package/docs/id/intlayer_with_express.md +8 -4
- package/docs/id/intlayer_with_fastify.md +8 -4
- package/docs/id/intlayer_with_hono.md +8 -4
- package/docs/id/intlayer_with_lynx+react.md +8 -4
- package/docs/id/intlayer_with_nestjs.md +8 -4
- package/docs/id/intlayer_with_next-i18next.md +8 -4
- package/docs/id/intlayer_with_nextjs_14.md +8 -4
- package/docs/id/intlayer_with_nextjs_15.md +9 -7
- package/docs/id/intlayer_with_nextjs_16.md +10 -8
- package/docs/id/intlayer_with_nextjs_compiler.md +8 -4
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/id/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/id/intlayer_with_nuxt.md +9 -5
- package/docs/id/intlayer_with_react_native+expo.md +8 -4
- package/docs/id/intlayer_with_react_router_v7.md +9 -5
- package/docs/id/intlayer_with_svelte_kit.md +8 -4
- package/docs/id/intlayer_with_tanstack+solid.md +9 -5
- package/docs/id/intlayer_with_tanstack.md +10 -7
- package/docs/id/intlayer_with_vite+lit.md +8 -4
- package/docs/id/intlayer_with_vite+preact.md +9 -5
- package/docs/id/intlayer_with_vite+react.md +9 -5
- package/docs/id/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/id/intlayer_with_vite+solid.md +9 -5
- package/docs/id/intlayer_with_vite+svelte.md +8 -4
- package/docs/id/intlayer_with_vite+vanilla.md +8 -4
- package/docs/id/intlayer_with_vite+vue.md +9 -5
- package/docs/id/live-sync.md +185 -0
- package/docs/id/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/id/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/id/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/id/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/id/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/it/intlayer_with_analog.md +8 -4
- package/docs/it/intlayer_with_angular_19.md +8 -4
- package/docs/it/intlayer_with_angular_21.md +8 -4
- package/docs/it/intlayer_with_astro_lit.md +11 -7
- package/docs/it/intlayer_with_astro_preact.md +8 -4
- package/docs/it/intlayer_with_astro_react.md +8 -4
- package/docs/it/intlayer_with_astro_solid.md +8 -4
- package/docs/it/intlayer_with_astro_svelte.md +8 -4
- package/docs/it/intlayer_with_astro_vanilla.md +8 -4
- package/docs/it/intlayer_with_astro_vue.md +8 -4
- package/docs/it/intlayer_with_create_react_app.md +8 -4
- package/docs/it/intlayer_with_express.md +8 -4
- package/docs/it/intlayer_with_fastify.md +8 -4
- package/docs/it/intlayer_with_hono.md +8 -4
- package/docs/it/intlayer_with_lynx+react.md +8 -4
- package/docs/it/intlayer_with_nestjs.md +8 -4
- package/docs/it/intlayer_with_next-i18next.md +8 -4
- package/docs/it/intlayer_with_nextjs_14.md +8 -4
- package/docs/it/intlayer_with_nextjs_15.md +10 -8
- package/docs/it/intlayer_with_nextjs_16.md +10 -8
- package/docs/it/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/it/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/it/intlayer_with_nuxt.md +9 -5
- package/docs/it/intlayer_with_react_native+expo.md +8 -4
- package/docs/it/intlayer_with_react_router_v7.md +9 -5
- package/docs/it/intlayer_with_svelte_kit.md +8 -4
- package/docs/it/intlayer_with_tanstack+solid.md +9 -5
- package/docs/it/intlayer_with_tanstack.md +10 -7
- package/docs/it/intlayer_with_vite+lit.md +8 -4
- package/docs/it/intlayer_with_vite+preact.md +9 -5
- package/docs/it/intlayer_with_vite+react.md +10 -6
- package/docs/it/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/it/intlayer_with_vite+solid.md +9 -5
- package/docs/it/intlayer_with_vite+svelte.md +8 -4
- package/docs/it/intlayer_with_vite+vanilla.md +8 -4
- package/docs/it/intlayer_with_vite+vue.md +9 -5
- package/docs/it/live-sync.md +174 -0
- package/docs/it/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/it/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/it/migration_from_next-intl_to_intlayer.md +8 -4
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/it/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/ja/intlayer_with_analog.md +8 -4
- package/docs/ja/intlayer_with_angular_19.md +8 -4
- package/docs/ja/intlayer_with_angular_21.md +8 -4
- package/docs/ja/intlayer_with_astro_lit.md +11 -7
- package/docs/ja/intlayer_with_astro_preact.md +8 -4
- package/docs/ja/intlayer_with_astro_react.md +8 -4
- package/docs/ja/intlayer_with_astro_solid.md +8 -4
- package/docs/ja/intlayer_with_astro_svelte.md +8 -4
- package/docs/ja/intlayer_with_astro_vanilla.md +8 -4
- package/docs/ja/intlayer_with_astro_vue.md +8 -4
- package/docs/ja/intlayer_with_create_react_app.md +8 -4
- package/docs/ja/intlayer_with_express.md +8 -4
- package/docs/ja/intlayer_with_fastify.md +8 -4
- package/docs/ja/intlayer_with_hono.md +8 -4
- package/docs/ja/intlayer_with_lynx+react.md +8 -4
- package/docs/ja/intlayer_with_nestjs.md +8 -4
- package/docs/ja/intlayer_with_next-i18next.md +8 -4
- package/docs/ja/intlayer_with_nextjs_14.md +8 -4
- package/docs/ja/intlayer_with_nextjs_15.md +10 -8
- package/docs/ja/intlayer_with_nextjs_16.md +10 -8
- package/docs/ja/intlayer_with_nextjs_compiler.md +8 -4
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/ja/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/ja/intlayer_with_nuxt.md +9 -5
- package/docs/ja/intlayer_with_react_native+expo.md +8 -4
- package/docs/ja/intlayer_with_tanstack+solid.md +9 -5
- package/docs/ja/intlayer_with_tanstack.md +10 -7
- package/docs/ja/intlayer_with_vite+lit.md +8 -4
- package/docs/ja/intlayer_with_vite+preact.md +9 -5
- package/docs/ja/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/ja/intlayer_with_vite+solid.md +9 -5
- package/docs/ja/intlayer_with_vite+svelte.md +8 -4
- package/docs/ja/intlayer_with_vite+vanilla.md +8 -4
- package/docs/ja/intlayer_with_vite+vue.md +9 -5
- package/docs/ja/live-sync.md +185 -0
- package/docs/ja/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/ja/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/ko/intlayer_with_analog.md +8 -4
- package/docs/ko/intlayer_with_angular_19.md +8 -4
- package/docs/ko/intlayer_with_angular_21.md +8 -4
- package/docs/ko/intlayer_with_astro_vue.md +8 -4
- package/docs/ko/intlayer_with_create_react_app.md +8 -4
- package/docs/ko/intlayer_with_express.md +8 -4
- package/docs/ko/intlayer_with_fastify.md +8 -4
- package/docs/ko/intlayer_with_hono.md +8 -4
- package/docs/ko/intlayer_with_nestjs.md +8 -4
- package/docs/ko/intlayer_with_next-i18next.md +8 -4
- package/docs/ko/intlayer_with_nextjs_15.md +10 -8
- package/docs/ko/intlayer_with_nextjs_16.md +10 -8
- package/docs/ko/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/ko/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/ko/intlayer_with_nuxt.md +9 -5
- package/docs/ko/intlayer_with_react_native+expo.md +8 -4
- package/docs/ko/intlayer_with_react_router_v7.md +9 -5
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +9 -5
- package/docs/ko/intlayer_with_svelte_kit.md +8 -4
- package/docs/ko/intlayer_with_tanstack+solid.md +9 -5
- package/docs/ko/intlayer_with_tanstack.md +10 -7
- package/docs/ko/intlayer_with_vite+lit.md +8 -4
- package/docs/ko/intlayer_with_vite+preact.md +9 -5
- package/docs/ko/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/ko/intlayer_with_vite+solid.md +9 -5
- package/docs/ko/intlayer_with_vite+svelte.md +8 -4
- package/docs/ko/intlayer_with_vite+vanilla.md +8 -4
- package/docs/ko/intlayer_with_vite+vue.md +9 -5
- package/docs/ko/live-sync.md +187 -0
- package/docs/ko/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/ko/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/nl/intlayer_with_fastify.md +8 -4
- package/docs/nl/intlayer_with_hono.md +8 -4
- package/docs/nl/intlayer_with_vite+lit.md +8 -4
- package/docs/nl/intlayer_with_vite+vanilla.md +8 -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 +8 -4
- package/docs/pl/intlayer_with_analog.md +8 -4
- package/docs/pl/intlayer_with_angular_19.md +8 -4
- package/docs/pl/intlayer_with_angular_21.md +8 -4
- package/docs/pl/intlayer_with_astro_lit.md +11 -7
- package/docs/pl/intlayer_with_astro_preact.md +8 -4
- package/docs/pl/intlayer_with_astro_react.md +8 -4
- package/docs/pl/intlayer_with_astro_solid.md +8 -4
- package/docs/pl/intlayer_with_astro_svelte.md +8 -4
- package/docs/pl/intlayer_with_astro_vanilla.md +8 -4
- package/docs/pl/intlayer_with_astro_vue.md +8 -4
- package/docs/pl/intlayer_with_create_react_app.md +8 -4
- package/docs/pl/intlayer_with_express.md +8 -4
- package/docs/pl/intlayer_with_fastify.md +8 -4
- package/docs/pl/intlayer_with_hono.md +8 -4
- package/docs/pl/intlayer_with_lynx+react.md +8 -4
- package/docs/pl/intlayer_with_nestjs.md +8 -4
- package/docs/pl/intlayer_with_next-i18next.md +8 -4
- package/docs/pl/intlayer_with_nextjs_14.md +8 -4
- package/docs/pl/intlayer_with_nextjs_15.md +9 -7
- package/docs/pl/intlayer_with_nextjs_16.md +10 -8
- package/docs/pl/intlayer_with_nextjs_compiler.md +8 -4
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/pl/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/pl/intlayer_with_nuxt.md +9 -5
- package/docs/pl/intlayer_with_react_native+expo.md +8 -4
- package/docs/pl/intlayer_with_react_router_v7.md +9 -5
- package/docs/pl/intlayer_with_svelte_kit.md +8 -4
- package/docs/pl/intlayer_with_tanstack+solid.md +9 -5
- package/docs/pl/intlayer_with_tanstack.md +10 -7
- package/docs/pl/intlayer_with_vite+lit.md +8 -4
- package/docs/pl/intlayer_with_vite+preact.md +9 -5
- package/docs/pl/intlayer_with_vite+react.md +9 -5
- package/docs/pl/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/pl/intlayer_with_vite+solid.md +9 -5
- package/docs/pl/intlayer_with_vite+svelte.md +8 -4
- package/docs/pl/intlayer_with_vite+vanilla.md +8 -4
- package/docs/pl/intlayer_with_vite+vue.md +9 -5
- package/docs/pl/live-sync.md +185 -0
- package/docs/pl/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/pl/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/pl/migration_from_react-i18next_to_intlayer.md +9 -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 +8 -4
- package/docs/pt/intlayer_with_analog.md +8 -4
- package/docs/pt/intlayer_with_angular_19.md +8 -4
- package/docs/pt/intlayer_with_angular_21.md +8 -4
- package/docs/pt/intlayer_with_astro_lit.md +11 -7
- package/docs/pt/intlayer_with_astro_preact.md +8 -4
- package/docs/pt/intlayer_with_astro_react.md +8 -4
- package/docs/pt/intlayer_with_astro_solid.md +8 -4
- package/docs/pt/intlayer_with_astro_svelte.md +8 -4
- package/docs/pt/intlayer_with_astro_vanilla.md +8 -4
- package/docs/pt/intlayer_with_astro_vue.md +8 -4
- package/docs/pt/intlayer_with_create_react_app.md +8 -4
- package/docs/pt/intlayer_with_express.md +8 -4
- package/docs/pt/intlayer_with_fastify.md +8 -4
- package/docs/pt/intlayer_with_hono.md +8 -4
- package/docs/pt/intlayer_with_lynx+react.md +8 -4
- package/docs/pt/intlayer_with_nestjs.md +8 -4
- package/docs/pt/intlayer_with_next-i18next.md +8 -4
- package/docs/pt/intlayer_with_nextjs_14.md +8 -4
- package/docs/pt/intlayer_with_nextjs_15.md +10 -8
- package/docs/pt/intlayer_with_nextjs_16.md +10 -8
- package/docs/pt/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/pt/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/pt/intlayer_with_nuxt.md +9 -5
- package/docs/pt/intlayer_with_react_native+expo.md +8 -4
- package/docs/pt/intlayer_with_react_router_v7.md +9 -5
- package/docs/pt/intlayer_with_svelte_kit.md +8 -4
- package/docs/pt/intlayer_with_tanstack+solid.md +9 -5
- package/docs/pt/intlayer_with_tanstack.md +10 -7
- package/docs/pt/intlayer_with_vite+lit.md +8 -4
- package/docs/pt/intlayer_with_vite+preact.md +9 -5
- package/docs/pt/intlayer_with_vite+react.md +9 -5
- package/docs/pt/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/pt/intlayer_with_vite+solid.md +9 -5
- package/docs/pt/intlayer_with_vite+svelte.md +8 -4
- package/docs/pt/intlayer_with_vite+vanilla.md +8 -4
- package/docs/pt/intlayer_with_vite+vue.md +9 -5
- package/docs/pt/live-sync.md +174 -0
- package/docs/pt/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/pt/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/ru/intlayer_with_analog.md +8 -4
- package/docs/ru/intlayer_with_angular_19.md +8 -4
- package/docs/ru/intlayer_with_angular_21.md +8 -4
- package/docs/ru/intlayer_with_astro_vue.md +8 -4
- package/docs/ru/intlayer_with_create_react_app.md +8 -4
- package/docs/ru/intlayer_with_express.md +8 -4
- package/docs/ru/intlayer_with_fastify.md +8 -4
- package/docs/ru/intlayer_with_hono.md +8 -4
- package/docs/ru/intlayer_with_lynx+react.md +8 -4
- package/docs/ru/intlayer_with_nestjs.md +8 -4
- package/docs/ru/intlayer_with_next-i18next.md +8 -4
- package/docs/ru/intlayer_with_nextjs_14.md +8 -4
- package/docs/ru/intlayer_with_nextjs_15.md +10 -8
- package/docs/ru/intlayer_with_nextjs_16.md +10 -8
- package/docs/ru/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/ru/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/ru/intlayer_with_nuxt.md +9 -5
- package/docs/ru/intlayer_with_react_native+expo.md +8 -4
- package/docs/ru/intlayer_with_react_router_v7.md +9 -5
- package/docs/ru/intlayer_with_svelte_kit.md +8 -4
- package/docs/ru/intlayer_with_tanstack+solid.md +9 -5
- package/docs/ru/intlayer_with_tanstack.md +10 -7
- package/docs/ru/intlayer_with_vite+lit.md +8 -4
- package/docs/ru/intlayer_with_vite+preact.md +9 -5
- package/docs/ru/intlayer_with_vite+react.md +9 -5
- package/docs/ru/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/ru/intlayer_with_vite+solid.md +9 -5
- package/docs/ru/intlayer_with_vite+svelte.md +8 -4
- package/docs/ru/intlayer_with_vite+vanilla.md +8 -4
- package/docs/ru/intlayer_with_vite+vue.md +9 -5
- package/docs/ru/live-sync.md +185 -0
- package/docs/ru/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/ru/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/tr/intlayer_with_analog.md +8 -4
- package/docs/tr/intlayer_with_angular_19.md +8 -4
- package/docs/tr/intlayer_with_angular_21.md +8 -4
- package/docs/tr/intlayer_with_astro_lit.md +11 -7
- package/docs/tr/intlayer_with_astro_preact.md +8 -4
- package/docs/tr/intlayer_with_astro_react.md +8 -4
- package/docs/tr/intlayer_with_astro_solid.md +8 -4
- package/docs/tr/intlayer_with_astro_svelte.md +8 -4
- package/docs/tr/intlayer_with_astro_vanilla.md +8 -4
- package/docs/tr/intlayer_with_astro_vue.md +8 -4
- package/docs/tr/intlayer_with_create_react_app.md +8 -4
- package/docs/tr/intlayer_with_express.md +8 -4
- package/docs/tr/intlayer_with_fastify.md +8 -4
- package/docs/tr/intlayer_with_hono.md +8 -4
- package/docs/tr/intlayer_with_lynx+react.md +8 -4
- package/docs/tr/intlayer_with_nestjs.md +8 -4
- package/docs/tr/intlayer_with_next-i18next.md +8 -4
- package/docs/tr/intlayer_with_nextjs_14.md +8 -4
- package/docs/tr/intlayer_with_nextjs_15.md +10 -8
- package/docs/tr/intlayer_with_nextjs_16.md +10 -8
- package/docs/tr/intlayer_with_nextjs_compiler.md +8 -4
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/tr/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/tr/intlayer_with_nuxt.md +9 -5
- package/docs/tr/intlayer_with_react_native+expo.md +8 -4
- package/docs/tr/intlayer_with_react_router_v7.md +9 -5
- package/docs/tr/intlayer_with_svelte_kit.md +8 -4
- package/docs/tr/intlayer_with_tanstack+solid.md +9 -5
- package/docs/tr/intlayer_with_tanstack.md +10 -7
- package/docs/tr/intlayer_with_vite+lit.md +8 -4
- package/docs/tr/intlayer_with_vite+preact.md +9 -5
- package/docs/tr/intlayer_with_vite+react.md +9 -5
- package/docs/tr/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/tr/intlayer_with_vite+solid.md +9 -5
- package/docs/tr/intlayer_with_vite+svelte.md +8 -4
- package/docs/tr/intlayer_with_vite+vanilla.md +8 -4
- package/docs/tr/intlayer_with_vite+vue.md +9 -5
- package/docs/tr/live-sync.md +173 -0
- package/docs/tr/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/tr/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/uk/intlayer_with_analog.md +8 -4
- package/docs/uk/intlayer_with_angular_19.md +8 -4
- package/docs/uk/intlayer_with_angular_21.md +8 -4
- package/docs/uk/intlayer_with_astro_lit.md +11 -7
- package/docs/uk/intlayer_with_astro_preact.md +8 -4
- package/docs/uk/intlayer_with_astro_react.md +8 -4
- package/docs/uk/intlayer_with_astro_solid.md +8 -4
- package/docs/uk/intlayer_with_astro_svelte.md +8 -4
- package/docs/uk/intlayer_with_astro_vanilla.md +8 -4
- package/docs/uk/intlayer_with_astro_vue.md +8 -4
- package/docs/uk/intlayer_with_create_react_app.md +8 -4
- package/docs/uk/intlayer_with_express.md +8 -4
- package/docs/uk/intlayer_with_fastify.md +8 -4
- package/docs/uk/intlayer_with_hono.md +8 -4
- package/docs/uk/intlayer_with_lynx+react.md +8 -4
- package/docs/uk/intlayer_with_nestjs.md +8 -4
- package/docs/uk/intlayer_with_next-i18next.md +8 -4
- package/docs/uk/intlayer_with_nextjs_14.md +8 -4
- package/docs/uk/intlayer_with_nextjs_15.md +10 -8
- package/docs/uk/intlayer_with_nextjs_16.md +10 -8
- package/docs/uk/intlayer_with_nextjs_compiler.md +8 -4
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/uk/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/uk/intlayer_with_nuxt.md +9 -5
- package/docs/uk/intlayer_with_react_native+expo.md +8 -4
- package/docs/uk/intlayer_with_react_router_v7.md +9 -5
- package/docs/uk/intlayer_with_svelte_kit.md +8 -4
- package/docs/uk/intlayer_with_tanstack+solid.md +9 -5
- package/docs/uk/intlayer_with_tanstack.md +10 -7
- package/docs/uk/intlayer_with_vite+lit.md +8 -4
- package/docs/uk/intlayer_with_vite+preact.md +9 -5
- package/docs/uk/intlayer_with_vite+react.md +9 -5
- package/docs/uk/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/uk/intlayer_with_vite+solid.md +9 -5
- package/docs/uk/intlayer_with_vite+svelte.md +8 -4
- package/docs/uk/intlayer_with_vite+vanilla.md +8 -4
- package/docs/uk/intlayer_with_vite+vue.md +9 -5
- package/docs/uk/live-sync.md +185 -0
- package/docs/uk/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/uk/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/uk/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/uk/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/uk/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/ur/intlayer_with_fastify.md +8 -4
- package/docs/ur/intlayer_with_hono.md +8 -4
- package/docs/ur/intlayer_with_vite+lit.md +8 -4
- package/docs/ur/intlayer_with_vite+vanilla.md +8 -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 +8 -4
- package/docs/vi/intlayer_with_analog.md +8 -4
- package/docs/vi/intlayer_with_angular_19.md +8 -4
- package/docs/vi/intlayer_with_angular_21.md +8 -4
- package/docs/vi/intlayer_with_astro_lit.md +11 -7
- package/docs/vi/intlayer_with_astro_preact.md +8 -4
- package/docs/vi/intlayer_with_astro_react.md +8 -4
- package/docs/vi/intlayer_with_astro_solid.md +8 -4
- package/docs/vi/intlayer_with_astro_svelte.md +8 -4
- package/docs/vi/intlayer_with_astro_vanilla.md +8 -4
- package/docs/vi/intlayer_with_astro_vue.md +8 -4
- package/docs/vi/intlayer_with_create_react_app.md +8 -4
- package/docs/vi/intlayer_with_express.md +8 -4
- package/docs/vi/intlayer_with_fastify.md +8 -4
- package/docs/vi/intlayer_with_hono.md +8 -4
- package/docs/vi/intlayer_with_lynx+react.md +8 -4
- package/docs/vi/intlayer_with_nestjs.md +8 -4
- package/docs/vi/intlayer_with_next-i18next.md +8 -4
- package/docs/vi/intlayer_with_nextjs_14.md +8 -4
- package/docs/vi/intlayer_with_nextjs_15.md +9 -7
- package/docs/vi/intlayer_with_nextjs_16.md +10 -8
- package/docs/vi/intlayer_with_nextjs_compiler.md +8 -4
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/vi/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/vi/intlayer_with_nuxt.md +9 -5
- package/docs/vi/intlayer_with_react_native+expo.md +8 -4
- package/docs/vi/intlayer_with_react_router_v7.md +9 -5
- package/docs/vi/intlayer_with_svelte_kit.md +8 -4
- package/docs/vi/intlayer_with_tanstack+solid.md +9 -5
- package/docs/vi/intlayer_with_tanstack.md +10 -7
- package/docs/vi/intlayer_with_vite+lit.md +8 -4
- package/docs/vi/intlayer_with_vite+preact.md +9 -5
- package/docs/vi/intlayer_with_vite+react.md +9 -5
- package/docs/vi/intlayer_with_vite+react_compiler.md +9 -5
- package/docs/vi/intlayer_with_vite+solid.md +9 -5
- package/docs/vi/intlayer_with_vite+svelte.md +8 -4
- package/docs/vi/intlayer_with_vite+vanilla.md +8 -4
- package/docs/vi/intlayer_with_vite+vue.md +9 -5
- package/docs/vi/live-sync.md +185 -0
- package/docs/vi/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/vi/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/vi/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/vi/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/vi/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/docs/zh/intlayer_with_angular_21.md +8 -4
- package/docs/zh/intlayer_with_astro.md +8 -4
- package/docs/zh/intlayer_with_astro_lit.md +11 -7
- package/docs/zh/intlayer_with_astro_preact.md +8 -4
- package/docs/zh/intlayer_with_astro_react.md +8 -4
- package/docs/zh/intlayer_with_astro_solid.md +8 -4
- package/docs/zh/intlayer_with_astro_svelte.md +8 -4
- package/docs/zh/intlayer_with_astro_vanilla.md +8 -4
- package/docs/zh/intlayer_with_astro_vue.md +8 -4
- package/docs/zh/intlayer_with_create_react_app.md +8 -4
- package/docs/zh/intlayer_with_express.md +8 -4
- package/docs/zh/intlayer_with_fastify.md +8 -4
- package/docs/zh/intlayer_with_hono.md +8 -4
- package/docs/zh/intlayer_with_nestjs.md +8 -4
- package/docs/zh/intlayer_with_next-i18next.md +8 -4
- package/docs/zh/intlayer_with_nextjs_14.md +8 -4
- package/docs/zh/intlayer_with_nextjs_15.md +10 -8
- package/docs/zh/intlayer_with_nextjs_16.md +10 -8
- package/docs/zh/intlayer_with_nextjs_compiler.md +9 -7
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +10 -8
- package/docs/zh/intlayer_with_nextjs_page_router.md +8 -4
- package/docs/zh/intlayer_with_react_native+expo.md +8 -4
- package/docs/zh/intlayer_with_react_router_v7.md +9 -5
- package/docs/zh/intlayer_with_vite+solid.md +9 -5
- package/docs/zh/intlayer_with_vite+svelte.md +8 -4
- package/docs/zh/intlayer_with_vite+vue.md +9 -5
- package/docs/zh/live-sync.md +175 -0
- package/docs/zh/migration_from_i18next_to_intlayer.md +8 -4
- package/docs/zh/migration_from_next-i18next_to_intlayer.md +8 -4
- package/docs/zh/migration_from_next-intl_to_intlayer.md +9 -7
- package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
- package/docs/zh/migration_from_react-i18next_to_intlayer.md +9 -7
- package/docs/zh/migration_from_vue-i18n_to_intlayer.md +8 -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 +8 -4
- package/package.json +10 -10
- package/src/generated/docs.entry.ts +60 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-30
|
|
3
|
+
updatedAt: 2026-06-30
|
|
4
|
+
title: Tự host Intlayer
|
|
5
|
+
description: Chạy một phiên bản Intlayer hoàn chỉnh trên hạ tầng của riêng bạn chỉ với một lệnh duy nhất. Không yêu cầu tài khoản Intlayer Cloud.
|
|
6
|
+
keywords:
|
|
7
|
+
- Self-Hosting
|
|
8
|
+
- Docker
|
|
9
|
+
- Docker Compose
|
|
10
|
+
- Intlayer
|
|
11
|
+
- CMS
|
|
12
|
+
- Installation
|
|
13
|
+
- Infrastructure
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- self-hosting
|
|
17
|
+
author: aymericzip
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Tự host Intlayer
|
|
21
|
+
|
|
22
|
+
Intlayer có thể chạy hoàn toàn trên hạ tầng của riêng bạn — không yêu cầu tài khoản Intlayer Cloud. Chỉ một lệnh duy nhất sẽ khởi động một stack sẵn sàng cho production:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Trình cài đặt sẽ tải xuống `docker-compose.yml` và `.env`, tự động tạo các secret cần thiết, và khởi động tất cả các container với `docker compose up -d`.
|
|
29
|
+
|
|
30
|
+
## Mục lục
|
|
31
|
+
|
|
32
|
+
<TOC/>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Kiến trúc
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
┌─────────────────────────────┐
|
|
40
|
+
browser ──────▶ │ app (TanStack Start) :3000│ ──┐
|
|
41
|
+
└─────────────────────────────┘ │ VITE_BACKEND_URL
|
|
42
|
+
┌─────────────────────────────┐ │
|
|
43
|
+
│ backend (Fastify/Bun) :3100│ ◀─┘
|
|
44
|
+
└──────────────┬──────────────┘
|
|
45
|
+
┌──────────┬─────────┼──────────┬───────────┐
|
|
46
|
+
▼ ▼ ▼ ▼ ▼
|
|
47
|
+
mongo:27017 redis:6379 minio:9000 mailpit:1025 Chromium
|
|
48
|
+
(1-node RS) (S3 API) (SMTP) (in-image)
|
|
49
|
+
minio:9001 mailpit:8025
|
|
50
|
+
(console) (web UI)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Chromium (được sử dụng để tạo ảnh chụp màn hình Puppeteer) được đóng gói bên trong image backend — không cần container riêng.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Điều kiện tiên quyết
|
|
58
|
+
|
|
59
|
+
- **Docker** ≥ 24 và **Docker Compose** ≥ v2. Nếu thiếu một trong hai, trình cài đặt sẽ in liên kết cài đặt và thoát.
|
|
60
|
+
- Các cổng `3000`, `3100`, `8025`, `9000`, và `9001` phải khả dụng trên host.
|
|
61
|
+
- Host chạy Linux hoặc macOS (hoặc WSL2 trên Windows).
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Bắt đầu nhanh
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Những gì trình cài đặt thực hiện:
|
|
72
|
+
|
|
73
|
+
1. Kiểm tra xem `docker` và `docker compose` có tồn tại không.
|
|
74
|
+
2. Tải xuống `docker-compose.yml` và `.env.example` vào `./intlayer/`.
|
|
75
|
+
3. Nếu không có `.env` tồn tại, sao chép file ví dụ và tạo các secret ngẫu nhiên cho `BETTER_AUTH_SECRET`, `S3_ACCESS_KEY_ID`, và `S3_SECRET_ACCESS_KEY` thông qua `openssl rand`.
|
|
76
|
+
4. Chạy `docker compose pull` + `docker compose up -d`.
|
|
77
|
+
5. In các URL: dashboard `:3000`, API `:3100`, UI email `:8025`, console MinIO `:9001`.
|
|
78
|
+
|
|
79
|
+
Sau khi stack hoạt động, mở **http://localhost:3000** và tạo tài khoản đầu tiên của bạn.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Các dịch vụ
|
|
84
|
+
|
|
85
|
+
| Dịch vụ | Image | Cổng Host | Mục đích |
|
|
86
|
+
| ----------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------- |
|
|
87
|
+
| **app** | được xây dựng từ `apps/app/Dockerfile` | `3000` | Dashboard TanStack Start (UI của CMS) |
|
|
88
|
+
| **backend** | được xây dựng từ `apps/backend/Dockerfile` | `3100` | API REST Fastify (endpoint `/health`) |
|
|
89
|
+
| **mongo** | `mongo:7` | nội bộ | Bộ nhân bản một node (`rs0`) |
|
|
90
|
+
| **redis** | `redis:7-alpine` | nội bộ | Hàng đợi công việc (BullMQ) và caching (ioredis) |
|
|
91
|
+
| **minio** | `minio/minio` | `9000` (S3), `9001` (console) | Lưu trữ đối tượng tương thích S3 cho avatar và ảnh chụp màn hình |
|
|
92
|
+
| **mailpit** | `axllent/mailpit` | `1025` (SMTP), `8025` (web UI) | Nơi nhận email giao dịch cục bộ |
|
|
93
|
+
|
|
94
|
+
Các cổng nội bộ (mongo, redis) không được phơi bày ra host theo mặc định.
|
|
95
|
+
|
|
96
|
+
> Cổng MinIO `9000` phải có thể truy cập được bởi trình duyệt vì các tài sản được tải lên (avatars, ảnh chụp màn hình) được tải trực tiếp từ `S3_PUBLIC_URL=http://localhost:9000/intlayer`.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Các biến môi trường
|
|
101
|
+
|
|
102
|
+
Trình cài đặt tạo ra một file `.env` sẵn sàng để sử dụng. Bảng dưới đây mô tả từng biến.
|
|
103
|
+
|
|
104
|
+
### Bắt buộc (tự động tạo hoặc được nhắc nhở)
|
|
105
|
+
|
|
106
|
+
| Biến | Ví dụ | Mô tả |
|
|
107
|
+
| ---------------------- | ----------------------------------------------- | ------------------------------------------------- |
|
|
108
|
+
| `NODE_ENV` | `production` | Môi trường runtime |
|
|
109
|
+
| `PORT` | `3100` | Cổng lắng nghe của Backend |
|
|
110
|
+
| `BACKEND_URL` | `http://localhost:3100` | URL công khai của API backend |
|
|
111
|
+
| `APP_URL` | `http://localhost:3000` | URL công khai của dashboard |
|
|
112
|
+
| `DOMAIN` | `localhost` | Miền cookie |
|
|
113
|
+
| `MONGODB_URI` | `mongodb://mongo:27017/intlayer?replicaSet=rs0` | URI kết nối MongoDB đầy đủ |
|
|
114
|
+
| `REDIS_URL` | `redis://redis:6379` | URL kết nối Redis |
|
|
115
|
+
| `BETTER_AUTH_SECRET` | _(được tạo)_ | Secret 32-byte để ký session |
|
|
116
|
+
| `MAIL_PROVIDER` | `smtp` | Phương thức gửi mail: `smtp` hoặc `resend` |
|
|
117
|
+
| `MAIL_SMTP_HOST` | `mailpit` | Tên host SMTP (tên container Mailpit) |
|
|
118
|
+
| `MAIL_SMTP_PORT` | `1025` | Cổng SMTP |
|
|
119
|
+
| `MAIL_FROM` | `Intlayer <no-reply@localhost>` | Địa chỉ người gửi |
|
|
120
|
+
| `S3_ENDPOINT` | `http://minio:9000` | Endpoint tương thích S3 |
|
|
121
|
+
| `S3_PUBLIC_URL` | `http://localhost:9000/intlayer` | URL công khai để trình duyệt tải tài sản |
|
|
122
|
+
| `S3_BUCKET_NAME` | `intlayer` | Tên bucket |
|
|
123
|
+
| `S3_ACCESS_KEY_ID` | _(được tạo)_ | Khóa truy cập MinIO |
|
|
124
|
+
| `S3_SECRET_ACCESS_KEY` | _(được tạo)_ | Khóa bí mật MinIO |
|
|
125
|
+
| `VITE_BACKEND_URL` | `http://localhost:3100` | URL backend được tích hợp vào dashboard khi build |
|
|
126
|
+
| `VITE_DOMAIN` | `localhost` | Miền được tích hợp vào dashboard khi build |
|
|
127
|
+
|
|
128
|
+
### Tùy chọn (tính năng sẽ suy giảm khi không có)
|
|
129
|
+
|
|
130
|
+
| Biến | Tính năng |
|
|
131
|
+
| -------------------------------------------------------- | -------------------------------------------------------------- |
|
|
132
|
+
| `OPENAI_API_KEY` | Dịch thuật và kiểm tra nội dung có sự hỗ trợ của AI |
|
|
133
|
+
| `STRIPE_SECRET_KEY`, `STRIPE_WEBHOOK_SECRET`, `STRIPE_*` | Quản lý thanh toán và đăng ký |
|
|
134
|
+
| `RESEND_API_KEY` | Email giao dịch qua Resend (ghi đè Mailpit khi được thiết lập) |
|
|
135
|
+
| `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` | Đăng nhập GitHub OAuth |
|
|
136
|
+
| `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` | Đăng nhập Google OAuth |
|
|
137
|
+
| `GITLAB_CLIENT_ID`, `GITLAB_CLIENT_SECRET` | Đăng nhập GitLab OAuth |
|
|
138
|
+
| `MICROSOFT_CLIENT_ID`, `MICROSOFT_CLIENT_SECRET` | Đăng nhập Microsoft OAuth |
|
|
139
|
+
| `LINKEDIN_CLIENT_ID`, `LINKEDIN_CLIENT_SECRET` | Đăng nhập LinkedIn OAuth |
|
|
140
|
+
| `ATLASSIAN_CLIENT_ID`, `ATLASSIAN_CLIENT_SECRET` | Đăng nhập Atlassian OAuth |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Kết nối dự án Intlayer của bạn
|
|
145
|
+
|
|
146
|
+
Khi stack đang chạy, hãy trỏ dự án của bạn đến backend và dashboard được tự host thay vì `intlayer.org`.
|
|
147
|
+
|
|
148
|
+
### Cấu hình dự án
|
|
149
|
+
|
|
150
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
151
|
+
import type { IntlayerConfig } from "intlayer";
|
|
152
|
+
|
|
153
|
+
const config: IntlayerConfig = {
|
|
154
|
+
editor: {
|
|
155
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
156
|
+
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* URL của dashboard CMS được tự host.
|
|
160
|
+
* Mặc định: https://app.intlayer.org
|
|
161
|
+
*/
|
|
162
|
+
cmsURL: process.env.INTLAYER_CMS_URL, // ví dụ: http://localhost:3000
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* URL của API backend được tự host.
|
|
166
|
+
* Mặc định: https://back.intlayer.org
|
|
167
|
+
*/
|
|
168
|
+
backendURL: process.env.INTLAYER_BACKEND_URL, // ví dụ: http://localhost:3100
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export default config;
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Thiết lập các biến môi trường trong file `.env` của dự án bạn:
|
|
176
|
+
|
|
177
|
+
```sh
|
|
178
|
+
INTLAYER_CMS_URL=http://localhost:3000
|
|
179
|
+
INTLAYER_BACKEND_URL=http://localhost:3100
|
|
180
|
+
INTLAYER_CLIENT_ID=<your-client-id>
|
|
181
|
+
INTLAYER_CLIENT_SECRET=<your-client-secret>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Tạo thông tin truy cập trong dashboard được tự host của bạn dưới mục **Projects → Access keys** tại `http://localhost:3000/projects`.
|
|
185
|
+
|
|
186
|
+
### SDK `@intlayer/api`
|
|
187
|
+
|
|
188
|
+
Khi sử dụng SDK `@intlayer/api` theo cách lập trình, hãy truyền `backendURL` một cách rõ ràng:
|
|
189
|
+
|
|
190
|
+
```typescript fileName="cms.ts" codeFormat="typescript"
|
|
191
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
192
|
+
import { dictionaryEndpoint } from "@intlayer/api/dictionary";
|
|
193
|
+
|
|
194
|
+
const cms = createIntlayerCMS({
|
|
195
|
+
editor: {
|
|
196
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
197
|
+
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
198
|
+
backendURL: process.env.INTLAYER_BACKEND_URL, // http://localhost:3100
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
const { data: dictionaries } = await dictionaryEndpoint(cms).getDictionaries();
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Nâng cấp
|
|
208
|
+
|
|
209
|
+
Chạy lại trình cài đặt trên một triển khai hiện có sẽ thực hiện nâng cấp cuốn chiếu (rolling upgrade):
|
|
210
|
+
|
|
211
|
+
```sh
|
|
212
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Thao tác này sẽ kéo các image mới nhất và khởi động lại các container với `docker compose pull && docker compose up -d`. Các volume hiện có (`mongo-data`, `redis-data`, `minio-data`) được bảo toàn — không mất dữ liệu.
|
|
216
|
+
|
|
217
|
+
Để nâng cấp thủ công từ bên trong thư mục `./intlayer/`:
|
|
218
|
+
|
|
219
|
+
```sh
|
|
220
|
+
docker compose pull
|
|
221
|
+
docker compose up -d
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Sao lưu và phục hồi
|
|
227
|
+
|
|
228
|
+
Tất cả dữ liệu bền vững nằm trong ba Docker volume được đặt tên.
|
|
229
|
+
|
|
230
|
+
### Sao lưu
|
|
231
|
+
|
|
232
|
+
```sh
|
|
233
|
+
docker run --rm \
|
|
234
|
+
-v intlayer_mongo-data:/data \
|
|
235
|
+
-v "$(pwd)":/backup \
|
|
236
|
+
busybox tar czf /backup/mongo-data.tar.gz /data
|
|
237
|
+
|
|
238
|
+
docker run --rm \
|
|
239
|
+
-v intlayer_redis-data:/data \
|
|
240
|
+
-v "$(pwd)":/backup \
|
|
241
|
+
busybox tar czf /backup/redis-data.tar.gz /data
|
|
242
|
+
|
|
243
|
+
docker run --rm \
|
|
244
|
+
-v intlayer_minio-data:/data \
|
|
245
|
+
-v "$(pwd)":/backup \
|
|
246
|
+
busybox tar czf /backup/minio-data.tar.gz /data
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Phục hồi
|
|
250
|
+
|
|
251
|
+
```sh
|
|
252
|
+
docker run --rm \
|
|
253
|
+
-v intlayer_mongo-data:/data \
|
|
254
|
+
-v "$(pwd)":/backup \
|
|
255
|
+
busybox tar xzf /backup/mongo-data.tar.gz -C /
|
|
256
|
+
|
|
257
|
+
# Lặp lại cho redis-data và minio-data
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Sử dụng reverse proxy (Nginx / Caddy)
|
|
263
|
+
|
|
264
|
+
Đối với các triển khai production, hãy đặt một reverse proxy phía trước các container app và backend thay vì phơi bày chúng trực tiếp.
|
|
265
|
+
|
|
266
|
+
### Ví dụ Nginx
|
|
267
|
+
|
|
268
|
+
```nginx
|
|
269
|
+
server {
|
|
270
|
+
listen 80;
|
|
271
|
+
server_name cms.example.com;
|
|
272
|
+
|
|
273
|
+
location / {
|
|
274
|
+
proxy_pass http://localhost:3000;
|
|
275
|
+
proxy_set_header Host $host;
|
|
276
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
server {
|
|
281
|
+
listen 80;
|
|
282
|
+
server_name api.example.com;
|
|
283
|
+
|
|
284
|
+
location / {
|
|
285
|
+
proxy_pass http://localhost:3100;
|
|
286
|
+
proxy_set_header Host $host;
|
|
287
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Cập nhật các biến `.env` sau để khớp với các miền công khai của bạn:
|
|
293
|
+
|
|
294
|
+
```sh
|
|
295
|
+
BACKEND_URL=https://api.example.com
|
|
296
|
+
APP_URL=https://cms.example.com
|
|
297
|
+
DOMAIN=example.com
|
|
298
|
+
VITE_BACKEND_URL=https://api.example.com
|
|
299
|
+
VITE_DOMAIN=example.com
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
> Các biến `VITE_*` được tích hợp vào image dashboard tại thời điểm build. Nếu bạn thay đổi chúng sau khi image được build, bạn cần build lại image `app` (`docker compose build app`) hoặc sử dụng cấu hình runtime injection.
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Khắc phục sự cố
|
|
307
|
+
|
|
308
|
+
### Backend bị crash-loop khi khởi động lần đầu
|
|
309
|
+
|
|
310
|
+
MongoDB và Redis phải hoạt động tốt trước khi backend khởi động. File compose sử dụng `depends_on` với `condition: service_healthy`. Nếu bạn thấy backend khởi động lại liên tục, hãy kiểm tra xem healthcheck của `mongo` và `redis` có vượt qua không:
|
|
311
|
+
|
|
312
|
+
```sh
|
|
313
|
+
docker compose ps
|
|
314
|
+
docker compose logs mongo
|
|
315
|
+
docker compose logs redis
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Dashboard không thể kết nối tới API
|
|
319
|
+
|
|
320
|
+
Xác minh rằng `VITE_BACKEND_URL` khớp với URL mà backend có thể truy cập được từ **trình duyệt** (không phải mạng Docker). Nếu bạn đã thay đổi cổng backend hoặc thêm reverse proxy, hãy build lại image dashboard:
|
|
321
|
+
|
|
322
|
+
```sh
|
|
323
|
+
docker compose build app
|
|
324
|
+
docker compose up -d app
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Email không gửi được
|
|
328
|
+
|
|
329
|
+
Theo mặc định, tất cả email gửi đi được Mailpit thu nhận. Mở `http://localhost:8025` để xem các tin nhắn đã gửi. Để gửi email thật, hãy đặt `MAIL_PROVIDER=resend` và `RESEND_API_KEY=<your-key>` trong `.env`, sau đó khởi động lại backend:
|
|
330
|
+
|
|
331
|
+
```sh
|
|
332
|
+
docker compose restart backend
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Thiếu MinIO bucket
|
|
336
|
+
|
|
337
|
+
Nếu dịch vụ một lần chạy `minio-init` không chạy (hoặc chạy trước khi MinIO sẵn sàng), hãy tạo bucket thủ công:
|
|
338
|
+
|
|
339
|
+
```sh
|
|
340
|
+
docker compose run --rm minio-init
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Các liên kết hữu ích
|
|
346
|
+
|
|
347
|
+
- [Tài liệu Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_CMS.md)
|
|
348
|
+
- [Tham chiếu cấu hình](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md)
|
|
349
|
+
- [CMS SDK — `@intlayer/api`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_CMS.md#programmatic-access-with-the-intlayerapi-sdk)
|
|
350
|
+
- [Docker Image (aymercizip/intlayer-selfhost)](https://hub.docker.com/repository/docker/aymercizip/intlayer-selfhost/general)
|
|
@@ -231,6 +231,9 @@ Next.js 需要依靠 `@intlayer/swc` 插件来进行优化步骤(导入重写
|
|
|
231
231
|
|
|
232
232
|
> 该插件并未默认安装,因为 SWC 插件在 Next.js 当中目前仍处于实验阶段。未来这部分有可能会发生改变。
|
|
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
|
安装完毕后,Intlayer 将会自动侦测并使用该插件。
|
|
251
267
|
|
|
252
268
|
至于**清除(purge)和最小化(minify)**步骤(即字段移除和字段重命名),请连同 `@intlayer/babel` 一并安装并加入 Babel 插件。由于 Next.js 依靠 SWC 处理代码转化,但仍会评估 `babel.config.js` 以决定插件配置,因此上述 Babel 插件能够在进入 SWC 前作为预处理步骤得以执行。
|
package/docs/zh/cli/index.md
CHANGED
|
@@ -125,7 +125,7 @@ Intlayer 接受多种配置文件格式:
|
|
|
125
125
|
|
|
126
126
|
### 身份验证
|
|
127
127
|
|
|
128
|
-
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/login.md)** - 在 Intlayer CMS 中进行身份验证并获取访问凭据
|
|
128
|
+
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/login.md)** - 在 Intlayer CMS 中进行身份验证并获取访问凭据
|
|
129
129
|
|
|
130
130
|
### 核心命令
|
|
131
131
|
|
package/docs/zh/cli/scan.md
CHANGED
|
@@ -150,10 +150,10 @@ await scan("https://example.com", {
|
|
|
150
150
|
});
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
对于更低级别的访问,来自 `@intlayer/
|
|
153
|
+
对于更低级别的访问,来自 `@intlayer/engine/scan` 的 `scanWebsite` 会返回一个结构化的 `ScanResult` 对象:
|
|
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);
|
package/docs/zh/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-11
|
|
4
4
|
title: 配置
|
|
5
5
|
description: 了解如何为您的应用程序配置 Intlayer。了解可用于根据您的需求自定义 Intlayer 的各种设置和选项。
|
|
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: "添加 `analytics` 配置"
|
|
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)配置。
|
|
363
|
+
*/
|
|
364
|
+
analytics: {
|
|
365
|
+
/**
|
|
366
|
+
* 是否启用分析数据收集(页面浏览量、内容曝光、A/B 事件)。
|
|
367
|
+
* 需要设置 `editor.clientId` 以进行归因。
|
|
368
|
+
* 默认值:false
|
|
369
|
+
*/
|
|
370
|
+
enabled: true,
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* 自动批量发送到后端之间的毫秒数。
|
|
374
|
+
* 默认值:20000
|
|
375
|
+
*/
|
|
376
|
+
flushInterval: 20000,
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* 要记录的会话比例,从 0(不记录)到 1(全部记录)。
|
|
380
|
+
* 默认值:1
|
|
381
|
+
*/
|
|
382
|
+
sampleRate: 1,
|
|
383
|
+
},
|
|
384
|
+
|
|
358
385
|
/**
|
|
359
386
|
* 使用 AI 进行翻译和生成的设置。
|
|
360
387
|
*/
|
|
@@ -671,6 +698,20 @@ export default config;
|
|
|
671
698
|
|
|
672
699
|
---
|
|
673
700
|
|
|
701
|
+
### 分析配置 (Analytics)
|
|
702
|
+
|
|
703
|
+
定义与 Intlayer 分析相关的设置:收集实际展示给用户的内容(页面浏览量、内容曝光),并支持内容的 A/B 测试。
|
|
704
|
+
|
|
705
|
+
分析功能严格采用选择加入(opt-in)模式:除非将 `analytics.enabled` 显式设置为 `true` **并且** 配置了用于归因的项目密钥(`editor.clientId`),否则不会收集任何数据。禁用时(默认),整个分析集成会从应用程序打包结果中被移除(死代码消除)。
|
|
706
|
+
|
|
707
|
+
| 字段 | 描述 | 类型 | 默认值 | 示例 | 说明 |
|
|
708
|
+
| --------------- | ------------------------------------------------------ | --------- | ------- | ------- | --------------------------------------------------------------------------------------------- |
|
|
709
|
+
| `enabled` | 启用分析数据收集(页面浏览量、内容曝光、A/B 事件)。 | `boolean` | `false` | `true` | 需要设置 `editor.clientId` 以进行归因;否则即使 `enabled` 为 `true`,分析功能仍保持禁用状态。 |
|
|
710
|
+
| `flushInterval` | 自动批量发送到后端之间的毫秒数。 | `number` | `20000` | `10000` | |
|
|
711
|
+
| `sampleRate` | 要记录的会话比例,从 `0`(不记录)到 `1`(全部记录)。 | `number` | `1` | `0.5` | 采样按会话确定性进行,因此被记录的会话会报告其所有事件(不会出现部分漏斗)。 |
|
|
712
|
+
|
|
713
|
+
---
|
|
714
|
+
|
|
674
715
|
### 路由配置 (Routing)
|
|
675
716
|
|
|
676
717
|
控制路由行为的设置,包括 URL 结构、区域设置存储和中间件管理。
|
|
@@ -219,9 +219,9 @@ Intlayer 由多个包组成,每个包在翻译过程中都有特定的角色
|
|
|
219
219
|
|
|
220
220
|
`@intlayer/dictionaries-entry`、`@intlayer/unmerged-dictionaries-entry` 和 `@intlayer/dynamic-dictionaries-entry` 包返回 Intlayer 字典的入口路径。由于浏览器无法搜索文件系统,因此无法使用像 Webpack 或 Rollup 这样的打包工具来获取字典的入口路径。这些包设计为别名,以便在 Vite、Webpack 和 Turbopack 等各种打包工具中进行打包优化。
|
|
221
221
|
|
|
222
|
-
### @intlayer/
|
|
222
|
+
### @intlayer/engine
|
|
223
223
|
|
|
224
|
-
`@intlayer/
|
|
224
|
+
`@intlayer/engine` 包用于监视内容文件,并在每次修改时重新生成被修改的字典。
|
|
225
225
|
|
|
226
226
|
### @intlayer/editor
|
|
227
227
|
|
package/docs/zh/intlayer_CMS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-08-23
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: Intlayer CMS | 将您的内容外部化到 Intlayer CMS
|
|
5
5
|
description: 将您的内容外部化到 Intlayer CMS,以将内容管理委托给您的团队。
|
|
6
6
|
keywords:
|
|
@@ -18,6 +18,9 @@ slugs:
|
|
|
18
18
|
- cms
|
|
19
19
|
youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
|
|
20
20
|
history:
|
|
21
|
+
- version: 9.0.0
|
|
22
|
+
date: 2026-07-08
|
|
23
|
+
changes: "将「实时同步」章节移动到独立页面(live-sync.md),此处仅保留简短介绍和链接"
|
|
21
24
|
- version: 6.0.1
|
|
22
25
|
date: 2025-09-22
|
|
23
26
|
changes: "添加实时同步文档"
|
|
@@ -245,134 +248,7 @@ bun x intlayer dictionary push -d my-first-dictionary-key --env production
|
|
|
245
248
|
|
|
246
249
|
实时同步让您的应用在运行时反映 CMS 内容的更改。无需重新构建或重新部署。启用后,更新会被流式传输到实时同步服务器,刷新您的应用读取的字典。
|
|
247
250
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
通过更新您的 Intlayer 配置来启用实时同步:
|
|
251
|
-
|
|
252
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
253
|
-
import type { IntlayerConfig } from "intlayer";
|
|
254
|
-
|
|
255
|
-
const config: IntlayerConfig = {
|
|
256
|
-
// ... 其他配置设置
|
|
257
|
-
editor: {
|
|
258
|
-
/**
|
|
259
|
-
* 当检测到更改时,启用本地配置的热重载。
|
|
260
|
-
* 例如,当添加或更新字典时,应用程序会更新页面上显示的内容。
|
|
261
|
-
*
|
|
262
|
-
* 由于热重载需要与服务器保持持续连接,
|
|
263
|
-
* 因此仅对 `enterprise` 计划的客户开放。
|
|
264
|
-
*
|
|
265
|
-
* 默认值:false
|
|
266
|
-
*/
|
|
267
|
-
liveSync: true,
|
|
268
|
-
},
|
|
269
|
-
dictionary: {
|
|
270
|
-
/**
|
|
271
|
-
* 控制字典的导入方式:
|
|
272
|
-
*
|
|
273
|
-
* - "live":字典通过 Live Sync API 动态获取。
|
|
274
|
-
* 替换 useIntlayer 为 useDictionaryDynamic。
|
|
275
|
-
*
|
|
276
|
-
* 注意:Live 模式使用 Live Sync API 获取字典。如果 API 调用失败,
|
|
277
|
-
* 字典将动态导入。
|
|
278
|
-
* 注意:只有带有远程内容和 "live" 标志的字典使用 live 模式。
|
|
279
|
-
* 其他字典为了性能使用动态模式。
|
|
280
|
-
*/
|
|
281
|
-
importMode: "fetch",
|
|
282
|
-
},
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
export default config;
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
启动 Live Sync 服务器以包裹您的应用程序:
|
|
289
|
-
|
|
290
|
-
使用 Next.js 的示例:
|
|
291
|
-
|
|
292
|
-
```json5 fileName="package.json"
|
|
293
|
-
{
|
|
294
|
-
"scripts": {
|
|
295
|
-
// ... 其他脚本
|
|
296
|
-
"build": "next build",
|
|
297
|
-
"dev": "next dev",
|
|
298
|
-
"start": "npx intlayer live --with 'next start'",
|
|
299
|
-
},
|
|
300
|
-
}
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
使用 Vite 的示例:
|
|
304
|
-
|
|
305
|
-
```json5 fileName="package.json"
|
|
306
|
-
{
|
|
307
|
-
"scripts": {
|
|
308
|
-
// ... 其他脚本
|
|
309
|
-
"build": "vite build",
|
|
310
|
-
"dev": "vite dev",
|
|
311
|
-
"start": "npx intlayer live --with 'vite start'",
|
|
312
|
-
},
|
|
313
|
-
}
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
Live Sync 服务器包裹您的应用程序,并在更新内容到达时自动应用。
|
|
317
|
-
|
|
318
|
-
为了接收来自 CMS 的变更通知,Live Sync 服务器会与后端保持 SSE 连接。当 CMS 中的内容发生变化时,后端会将更新转发给 Live Sync 服务器,服务器会写入新的字典。您的应用将在下一次导航或浏览器刷新时反映更新, 无需重新构建。
|
|
319
|
-
|
|
320
|
-
流程图(CMS/后端 -> Live Sync 服务器 -> 应用服务器 -> 前端):
|
|
321
|
-
|
|
322
|
-

|
|
323
|
-
|
|
324
|
-
工作原理:
|
|
325
|
-
|
|
326
|
-

|
|
327
|
-
|
|
328
|
-
### 开发工作流程(本地)
|
|
329
|
-
|
|
330
|
-
- 在开发过程中,应用启动时会获取所有远程字典,因此您可以快速测试更新。
|
|
331
|
-
- 要在本地使用 Next.js 测试 Live Sync,请包装您的开发服务器:
|
|
332
|
-
|
|
333
|
-
```json5 fileName="package.json"
|
|
334
|
-
{
|
|
335
|
-
"scripts": {
|
|
336
|
-
// ... 其他脚本
|
|
337
|
-
"dev": "npx intlayer live --with 'next dev'",
|
|
338
|
-
// "dev": "npx intlayer live --with 'vite dev'", // 适用于 Vite
|
|
339
|
-
},
|
|
340
|
-
}
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
启用优化,以便 Intlayer 在开发期间应用实时导入转换:
|
|
344
|
-
|
|
345
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
346
|
-
import type { IntlayerConfig } from "intlayer";
|
|
347
|
-
|
|
348
|
-
const config: IntlayerConfig = {
|
|
349
|
-
editor: {
|
|
350
|
-
applicationURL: "http://localhost:5173",
|
|
351
|
-
liveSyncURL: "http://localhost:4000",
|
|
352
|
-
liveSync: true,
|
|
353
|
-
},
|
|
354
|
-
dictionary: {
|
|
355
|
-
importMode: "fetch",
|
|
356
|
-
},
|
|
357
|
-
build: {
|
|
358
|
-
optimize: true,
|
|
359
|
-
},
|
|
360
|
-
};
|
|
361
|
-
|
|
362
|
-
export default config;
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
此设置将您的开发服务器与实时同步服务器包装在一起,在启动时获取远程字典,并通过 SSE 从 CMS 流式传输更新。刷新页面以查看更改。
|
|
366
|
-
|
|
367
|
-
注意事项和限制:
|
|
368
|
-
|
|
369
|
-
- 将实时同步源添加到您的站点安全策略(CSP)中。确保实时同步 URL 被允许在 `connect-src` 中(如果相关,也包括 `frame-ancestors`)。
|
|
370
|
-
- 实时同步不适用于静态输出。对于 Next.js,页面必须是动态的才能在运行时接收更新(例如,适当使用 `generateStaticParams`、`generateMetadata`、`getServerSideProps` 或 `getStaticProps`,以避免完全静态的限制)。
|
|
371
|
-
- 应用程序 URL 应与您在编辑器配置中设置的 URL (`applicationURL`) 匹配。
|
|
372
|
-
- CMS URL
|
|
373
|
-
- 确保项目配置已推送到 Intlayer CMS。
|
|
374
|
-
|
|
375
|
-
- 可视化编辑器使用 iframe 来显示您的网站。确保您网站的内容安全策略(CSP)允许 CMS URL 作为 `frame-ancestors`(默认是 'https://intlayer.org')。检查编辑器控制台是否有任何错误。
|
|
251
|
+
完整的设置指南(启用方式、启动 Live Sync 服务器、本地开发工作流程和限制条件)请参阅 [Live Sync 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/live-sync.md)。
|
|
376
252
|
|
|
377
253
|
## 调试
|
|
378
254
|
|
|
@@ -60,19 +60,23 @@ See [Application Template](https://github.com/aymericzip/intlayer-adonis-templat
|
|
|
60
60
|
要开始使用 `adonis-intlayer`,请使用 npm 安装该包:
|
|
61
61
|
|
|
62
62
|
```bash packageManager="npm"
|
|
63
|
-
npx intlayer
|
|
63
|
+
npx intlayer@canary init --interactive # v9
|
|
64
|
+
# npx intlayer init # v8
|
|
64
65
|
```
|
|
65
66
|
|
|
66
67
|
```bash packageManager="pnpm"
|
|
67
|
-
pnpm dlx intlayer
|
|
68
|
+
pnpm dlx intlayer@canary init --interactive # v9
|
|
69
|
+
# pnpm dlx intlayer init # v8
|
|
68
70
|
```
|
|
69
71
|
|
|
70
72
|
```bash packageManager="yarn"
|
|
71
|
-
yarn dlx intlayer
|
|
73
|
+
yarn dlx intlayer@canary init --interactive # v9
|
|
74
|
+
# yarn dlx intlayer init # v8
|
|
72
75
|
```
|
|
73
76
|
|
|
74
77
|
```bash packageManager="bun"
|
|
75
|
-
bunx intlayer
|
|
78
|
+
bunx intlayer@canary init --interactive # v9
|
|
79
|
+
# bunx intlayer init # v8
|
|
76
80
|
```
|
|
77
81
|
|
|
78
82
|
> `--interactive` 标志是可选的。如果您是 AI 代理,请使用 `intlayer-cli init`。
|