@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/pt/releases/v9.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-06-14
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: Novo Intlayer v9 - O que há de novo?
|
|
5
5
|
description: Descubra o que há de novo no Intlayer v9. Apresentando pacotes de compatibilidade drop-in para bibliotecas i18n populares e suporte para Collections e Variants.
|
|
6
6
|
keywords:
|
|
@@ -9,9 +9,13 @@ keywords:
|
|
|
9
9
|
- Migration
|
|
10
10
|
- Collections
|
|
11
11
|
- Variants
|
|
12
|
+
- CMS SDK
|
|
13
|
+
- Self-Hosting
|
|
14
|
+
- Docker
|
|
12
15
|
- i18next
|
|
13
16
|
- next-intl
|
|
14
17
|
- vue-i18n
|
|
18
|
+
youtubeVideo: https://www.youtube.com/watch?v=zmCN4z_B4jk
|
|
15
19
|
slugs:
|
|
16
20
|
- doc
|
|
17
21
|
- releases
|
|
@@ -23,6 +27,14 @@ author: aymericzip
|
|
|
23
27
|
|
|
24
28
|
Bem-vindo ao Intlayer v9! Este grande lançamento marca um marco enorme na simplificação do caminho de migração para o Intlayer com **Compat Adapter Packages** para as principais bibliotecas de i18n (`react-i18next`, `next-intl`, `vue-i18n`, etc.) e adiciona suporte para estruturas de conteúdo ricas: **Collections** e **Variants**.
|
|
25
29
|
|
|
30
|
+
<iframe
|
|
31
|
+
src="https://www.youtube.com/embed/zmCN4z_B4jk"
|
|
32
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
33
|
+
title="Demo Video - New Intlayer v9 - What's new?"
|
|
34
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
35
|
+
loading="lazy"
|
|
36
|
+
/>
|
|
37
|
+
|
|
26
38
|
## Tabela de conteúdos
|
|
27
39
|
|
|
28
40
|
<TOC levels={[2]} maxDepth={1} />
|
|
@@ -109,36 +121,40 @@ O Intlayer v9 vai além de objetos estáticos de chave-valor, permitindo que os
|
|
|
109
121
|
|
|
110
122
|
Defina uma lista gerenciada por CMS de itens ordenados (ex: FAQs, produtos ou listas de blog):
|
|
111
123
|
|
|
112
|
-
```ts fileName="faq.content.ts"
|
|
124
|
+
```ts fileName="faq.1.content.ts"
|
|
113
125
|
import { t, type Dictionary } from "intlayer";
|
|
114
126
|
|
|
115
127
|
export default {
|
|
116
128
|
key: "faq",
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
item: 1,
|
|
130
|
+
content: {
|
|
131
|
+
question: t({ en: "What is Intlayer?", fr: "Qu'est-ce qu'Intlayer ?" }),
|
|
132
|
+
answer: t({ en: "An i18n toolkit.", fr: "Une boîte à outils i18n." }),
|
|
133
|
+
},
|
|
134
|
+
} satisfies Dictionary;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```ts fileName="faq.2.content.ts"
|
|
138
|
+
import { t, type Dictionary } from "intlayer";
|
|
139
|
+
|
|
140
|
+
export default {
|
|
141
|
+
key: "faq",
|
|
142
|
+
item: 2,
|
|
143
|
+
content: {
|
|
144
|
+
question: t({ en: "Is it free?", fr: "Est-ce gratuit ?" }),
|
|
145
|
+
answer: t({ en: "Yes, open-source.", fr: "Oui, open-source." }),
|
|
146
|
+
},
|
|
131
147
|
} satisfies Dictionary;
|
|
132
148
|
```
|
|
133
149
|
|
|
134
150
|
#### Uso:
|
|
135
151
|
|
|
136
152
|
```ts
|
|
137
|
-
//
|
|
153
|
+
// Fetch all items as an array
|
|
138
154
|
const allFaqs = useIntlayer("faq"); // -> { question: string, answer: string }[]
|
|
139
155
|
|
|
140
|
-
//
|
|
141
|
-
const faq = useIntlayer("faq", { item:
|
|
156
|
+
// Fetch a single item by index
|
|
157
|
+
const faq = useIntlayer("faq", { item: 2 }); // -> { question: string, answer: string }
|
|
142
158
|
```
|
|
143
159
|
|
|
144
160
|
### 2. Variants
|
|
@@ -192,28 +208,52 @@ export default {
|
|
|
192
208
|
```ts
|
|
193
209
|
// Busca apenas o item solicitado dinamicamente (requer Suspense)
|
|
194
210
|
const product = useIntlayer("product-copy", {
|
|
195
|
-
id: "prod_123",
|
|
196
|
-
category: "books",
|
|
211
|
+
variant: { id: "prod_123", category: "books" },
|
|
197
212
|
});
|
|
198
213
|
```
|
|
199
214
|
|
|
200
215
|
---
|
|
201
216
|
|
|
202
|
-
##
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
217
|
+
## `@intlayer/analytics`: rastreamento de exposição de conteúdo e testes A/B
|
|
218
|
+
|
|
219
|
+
Um novo pacote opcional, [`@intlayer/analytics`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md), mostra qual conteúdo é realmente exibido aos seus visitantes — e fecha o ciclo com **Collections & Variants**, permitindo testar conteúdo em A/B e medir conversões por variante.
|
|
220
|
+
|
|
221
|
+
- **Rastreamento em nível de provider**: `IntlayerProvider` (React / Next.js / React Native) registra automaticamente eventos `page_view` no carregamento, na mudança de rota e na mudança de idioma.
|
|
222
|
+
- **Rastreamento em nível de nó**: cada resolução de `useIntlayer` reporta um evento `content_exposure` — qual chave de dicionário, caminho de chave, idioma e, quando aplicável, qual **variante** A/B foi exibida. Exposições repetidas do mesmo nó dentro de uma janela de envio são combinadas em um único evento.
|
|
223
|
+
- **Atribuição determinística de A/B**: `getVariant(experimentKey, variants)` atribui uma variante a cada sessão **sem ida e volta ao servidor**, portanto não há cintilação antes da primeira renderização.
|
|
224
|
+
- **`useConversion()`**: atribui uma meta (cadastro, clique, compra…) à variante à qual a sessão foi exposta.
|
|
225
|
+
- **Custo zero quando não instalado**: mesmo padrão tree-shakeable do `@intlayer/editor` — `import()` dinâmico envolto em `try/catch`, mais uma variável de ambiente em tempo de compilação (`INTLAYER_ANALYTICS_ENABLED`) que elimina completamente a integração do bundle para apps que não a ativam.
|
|
226
|
+
- **Sem novo esquema de configuração**: reutiliza `editor.backendURL` (endpoint de ingestão / auto-hospedagem) e `editor.clientId` (chave do projeto, também o interruptor de ativação).
|
|
227
|
+
- **Respeita a privacidade**: hash anônimo de sessão (SHA-256, sem armazenar ids brutos), sem armazenamento de IP, geolocalização aproximada apenas por país, requisições enviadas em lote a cada ~20 segundos.
|
|
228
|
+
- **Painel**: uma nova página **Analytics** (exibida na barra lateral assim que um projeto é selecionado) mostra usuários ativos, usuários de hoje, usuários dos últimos 7/30/90 dias, um gráfico de evolução de visitantes e a divisão por idioma e localização.
|
|
229
|
+
|
|
230
|
+
```tsx fileName="CTAButton.tsx" codeFormat="tsx"
|
|
231
|
+
import { useConversion } from "react-intlayer";
|
|
232
|
+
|
|
233
|
+
const CTAButton = () => {
|
|
234
|
+
const trackConversion = useConversion();
|
|
235
|
+
|
|
236
|
+
return (
|
|
237
|
+
<button
|
|
238
|
+
onClick={() =>
|
|
239
|
+
trackConversion({
|
|
240
|
+
experimentKey: "homepage-hero",
|
|
241
|
+
variant: "black_friday",
|
|
242
|
+
goal: "cta_click",
|
|
243
|
+
})
|
|
244
|
+
}
|
|
245
|
+
>
|
|
246
|
+
Get started
|
|
247
|
+
</button>
|
|
248
|
+
);
|
|
213
249
|
};
|
|
214
250
|
```
|
|
215
251
|
|
|
216
|
-
|
|
252
|
+
```bash packageManager="npm"
|
|
253
|
+
npm install @intlayer/analytics
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Já disponível para React, Next.js e React Native (via `react-intlayer`); outras integrações de frameworks (Vue, Svelte, Angular, …) estão planejadas, seguindo o mesmo padrão de lançamento do `@intlayer/editor`. Consulte a [documentação do Analytics](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md) para o guia completo.
|
|
217
257
|
|
|
218
258
|
---
|
|
219
259
|
|
|
@@ -296,13 +336,68 @@ npm install intlayer react-native-intlayer
|
|
|
296
336
|
|
|
297
337
|
---
|
|
298
338
|
|
|
339
|
+
## SDK do CMS: use o Intlayer como um banco de dados de conteúdo headless
|
|
340
|
+
|
|
341
|
+
O Intlayer v9 traz um SDK limpo e com autenticação automática em `@intlayer/api` para interagir com o CMS de forma programática — buscar projetos, buscar dicionários e enviá-los ou atualizá-los a partir do seu próprio servidor, scripts ou CI. A autenticação (OAuth2 `client_credentials`) é tratada e renovada para você.
|
|
342
|
+
|
|
343
|
+
O SDK é dividido em **duas importações separadas**, para que seu bundle inclua apenas os domínios que você realmente usa:
|
|
344
|
+
|
|
345
|
+
1. `createIntlayerCMS` — um **autenticador** leve que guarda as credenciais e o token gerenciado (nenhum cliente de domínio incluído).
|
|
346
|
+
2. `dictionaryEndpoint`, `projectEndpoint`, … — **vinculadores de endpoint** por domínio, cada um importado de seu próprio subcaminho.
|
|
347
|
+
|
|
348
|
+
```ts fileName="cms.ts"
|
|
349
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
350
|
+
import { dictionaryEndpoint } from "@intlayer/api/dictionary";
|
|
351
|
+
|
|
352
|
+
// A configuração é opcional: as credenciais recorrem a INTLAYER_CLIENT_ID /
|
|
353
|
+
// INTLAYER_CLIENT_SECRET resolvidos por `@intlayer/config/built`.
|
|
354
|
+
const cms = createIntlayerCMS();
|
|
355
|
+
|
|
356
|
+
// Leitura
|
|
357
|
+
const { data: dictionaries } = await dictionaryEndpoint(cms).getDictionaries();
|
|
358
|
+
|
|
359
|
+
// Escrita — use o CMS como um banco de dados
|
|
360
|
+
await dictionaryEndpoint(cms).pushDictionaries([myDictionary]);
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
> Segurança: as credenciais do CMS concedem acesso de escrita ao seu conteúdo. Crie o autenticador sempre **no lado do servidor** — nunca envie `clientId` / `clientSecret` para o navegador.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Auto-hospedagem
|
|
368
|
+
|
|
369
|
+
O Intlayer v9 traz suporte de primeira classe para executar sua própria instância do Intlayer com um único comando — sem necessidade de conta no Intlayer Cloud.
|
|
370
|
+
|
|
371
|
+
```sh
|
|
372
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
O instalador baixa um `docker-compose.yml` e um `.env`, gera automaticamente os secrets necessários e executa `docker compose up -d`. Tudo — o dashboard, a API, o banco de dados, o armazenamento de objetos e o e-mail transacional — roda localmente em contêineres.
|
|
376
|
+
|
|
377
|
+
### Serviços incluídos
|
|
378
|
+
|
|
379
|
+
| Serviço | Finalidade |
|
|
380
|
+
| --------------------------------------- | ------------------------------------------------------------------------------- |
|
|
381
|
+
| **app** (TanStack Start) | Interface do dashboard na porta `3000` |
|
|
382
|
+
| **backend** (Fastify/Bun) | API REST na porta `3100` |
|
|
383
|
+
| **MongoDB 7** (single-node replica set) | Banco de dados principal |
|
|
384
|
+
| **Redis 7** | Filas de tarefas e cache |
|
|
385
|
+
| **MinIO** | Armazenamento de objetos compatível com S3 (avatares, capturas de tela) |
|
|
386
|
+
| **Mailpit** | Sumidouro SMTP local + interface web para e-mails transacionais na porta `8025` |
|
|
387
|
+
|
|
388
|
+
O Chromium (usado para geração de capturas de tela com Puppeteer) está incluído na imagem do backend — nenhum contêiner adicional é necessário.
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
299
392
|
## Notas de migração da v8
|
|
300
393
|
|
|
301
394
|
Se você estiver atualizando da v8, observe que a v9 não inclui breaking changes. Mas aqui estão as principais mudanças:
|
|
302
395
|
|
|
303
396
|
- **Compilador desativado por padrão**: `compiler.enabled` agora tem o valor padrão `false`. Se você depende da extração dos seus arquivos `.content.ts` em tempo de build, defina `compiler.enabled: true` no seu `intlayer.config.ts`.
|
|
397
|
+
- **Plugin Vite**: O compilador e o proxy de roteamento de locale agora estão integrados em `intlayer()`. Se você registrou anteriormente `intlayerCompiler()` ou `intlayerProxy()` manualmente, pode removê-los — eles são deduplicados automaticamente, então mantê-los não causa problemas. Use `routing.enableProxy: false` para desativar o proxy.
|
|
304
398
|
- **Locales & Dialects**: Se estiver usando dependências externas de i18n, adicione seus respectivos plugins de compatibilidade na sua configuração ou setup do bundler para reescrever os imports automaticamente.
|
|
305
399
|
- **Custom Selectors**: Ao chamar `useIntlayer`, o segundo parâmetro agora é reservado para um objeto de opções contendo `{ locale, item, variant }`. Se você passava anteriormente uma string de locale diretamente, ainda pode fazer isso, mas o uso do objeto de opções é recomendado para seleções avançadas.
|
|
400
|
+
- **React Native**: `react-native-intlayer` agora reexporta toda a API do `react-intlayer`. Em um aplicativo React Native, importe tudo de `react-native-intlayer` e remova a dependência direta de `react-intlayer`. Os imports existentes de `react-intlayer` continuam funcionando.
|
|
306
401
|
|
|
307
402
|
---
|
|
308
403
|
|
|
@@ -310,4 +405,7 @@ Se você estiver atualizando da v8, observe que a v9 não inclui breaking change
|
|
|
310
405
|
|
|
311
406
|
- [Guia de Compat Adapter Packages](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/compat/index.md)
|
|
312
407
|
- [Dicionários Dinâmicos - Collections & Variants](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dynamic_dictionaries/index.md)
|
|
408
|
+
- [Analytics - Rastreamento de exposição de conteúdo e testes A/B](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md)
|
|
313
409
|
- [Referência de Configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md)
|
|
410
|
+
- [SDK do CMS - Acesso programático com @intlayer/api](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_CMS.md)
|
|
411
|
+
- [Guia de Auto-hospedagem](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/self_hosting.md)
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-06-30
|
|
3
|
+
updatedAt: 2026-06-30
|
|
4
|
+
title: Auto-hospedagem do Intlayer
|
|
5
|
+
description: Execute uma instância completa do Intlayer na sua própria infraestrutura com um único comando. Nenhuma conta Intlayer Cloud é necessária.
|
|
6
|
+
keywords:
|
|
7
|
+
- Auto-hospedagem
|
|
8
|
+
- Docker
|
|
9
|
+
- Docker Compose
|
|
10
|
+
- Intlayer
|
|
11
|
+
- CMS
|
|
12
|
+
- Instalação
|
|
13
|
+
- Infraestrutura
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- self-hosting
|
|
17
|
+
author: aymericzip
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Auto-hospedagem do Intlayer
|
|
21
|
+
|
|
22
|
+
O Intlayer pode ser executado inteiramente na sua própria infraestrutura — nenhuma conta Intlayer Cloud é necessária. Um único comando inicializa uma stack pronta para produção:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
O instalador baixa um `docker-compose.yml` e um `.env`, gera automaticamente os segredos necessários e inicia todos os containers com `docker compose up -d`.
|
|
29
|
+
|
|
30
|
+
## Sumário
|
|
31
|
+
|
|
32
|
+
<TOC/>
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Arquitetura
|
|
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
|
+
O Chromium (usado para a geração de screenshots do Puppeteer) é empacotado dentro da imagem do backend — nenhum container separado é necessário.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Pré-requisitos
|
|
58
|
+
|
|
59
|
+
- **Docker** ≥ 24 e **Docker Compose** ≥ v2. Se algum deles estiver faltando, o instalador exibe o link de instalação e sai.
|
|
60
|
+
- Portas `3000`, `3100`, `8025`, `9000` e `9001` disponíveis no host.
|
|
61
|
+
- Um host Linux ou macOS (ou WSL2 no Windows).
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Início rápido
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
O que o instalador faz:
|
|
72
|
+
|
|
73
|
+
1. Verifica se `docker` e `docker compose` estão presentes.
|
|
74
|
+
2. Baixa `docker-compose.yml` e `.env.example` para `./intlayer/`.
|
|
75
|
+
3. Se nenhum `.env` existir, copia o exemplo e gera segredos aleatórios para `BETTER_AUTH_SECRET`, `S3_ACCESS_KEY_ID` e `S3_SECRET_ACCESS_KEY` via `openssl rand`.
|
|
76
|
+
4. Executa `docker compose pull` + `docker compose up -d`.
|
|
77
|
+
5. Imprime as URLs: dashboard `:3000`, API `:3100`, UI de e-mail `:8025`, console MinIO `:9001`.
|
|
78
|
+
|
|
79
|
+
Após a stack estar ativa, abra **http://localhost:3000** e crie sua primeira conta.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Serviços
|
|
84
|
+
|
|
85
|
+
| Serviço | Imagem | Porta(s) do Host | Finalidade |
|
|
86
|
+
| ----------- | ------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- |
|
|
87
|
+
| **app** | built from `apps/app/Dockerfile` | `3000` | Dashboard TanStack Start (UI do CMS) |
|
|
88
|
+
| **backend** | built from `apps/backend/Dockerfile` | `3100` | API REST Fastify (endpoint `/health`) |
|
|
89
|
+
| **mongo** | `mongo:7` | internal | Conjunto de réplicas de nó único (`rs0`) |
|
|
90
|
+
| **redis** | `redis:7-alpine` | internal | Filas de trabalho (BullMQ) e cache (ioredis) |
|
|
91
|
+
| **minio** | `minio/minio` | `9000` (S3), `9001` (console) | Armazenamento de objetos compatível com S3 para avatares e screenshots |
|
|
92
|
+
| **mailpit** | `axllent/mailpit` | `1025` (SMTP), `8025` (web UI) | Sink local de e-mail transacional |
|
|
93
|
+
|
|
94
|
+
As portas internas (mongo, redis) não são expostas ao host por padrão.
|
|
95
|
+
|
|
96
|
+
> A porta `9000` do MinIO deve ser acessível pelo navegador porque os ativos carregados (avatares, screenshots) são carregados diretamente de `S3_PUBLIC_URL=http://localhost:9000/intlayer`.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Variáveis de ambiente
|
|
101
|
+
|
|
102
|
+
O instalador gera um arquivo `.env` pronto para uso. A tabela abaixo descreve cada variável.
|
|
103
|
+
|
|
104
|
+
### Obrigatórias (auto-geradas ou solicitadas)
|
|
105
|
+
|
|
106
|
+
| Variável | Exemplo | Descrição |
|
|
107
|
+
| ---------------------- | ----------------------------------------------- | ---------------------------------------------------------------- |
|
|
108
|
+
| `NODE_ENV` | `production` | Ambiente de tempo de execução |
|
|
109
|
+
| `PORT` | `3100` | Porta de escuta do backend |
|
|
110
|
+
| `BACKEND_URL` | `http://localhost:3100` | URL pública da API do backend |
|
|
111
|
+
| `APP_URL` | `http://localhost:3000` | URL pública do dashboard |
|
|
112
|
+
| `DOMAIN` | `localhost` | Domínio do cookie |
|
|
113
|
+
| `MONGODB_URI` | `mongodb://mongo:27017/intlayer?replicaSet=rs0` | URI de conexão completa do MongoDB |
|
|
114
|
+
| `REDIS_URL` | `redis://redis:6379` | URL de conexão do Redis |
|
|
115
|
+
| `BETTER_AUTH_SECRET` | _(generated)_ | Segredo de 32 bytes para assinatura de sessão |
|
|
116
|
+
| `MAIL_PROVIDER` | `smtp` | Transporte de e-mail: `smtp` ou `resend` |
|
|
117
|
+
| `MAIL_SMTP_HOST` | `mailpit` | Nome de host SMTP (nome do container Mailpit) |
|
|
118
|
+
| `MAIL_SMTP_PORT` | `1025` | Porta SMTP |
|
|
119
|
+
| `MAIL_FROM` | `Intlayer <no-reply@localhost>` | Endereço do remetente |
|
|
120
|
+
| `S3_ENDPOINT` | `http://minio:9000` | Endpoint compatível com S3 |
|
|
121
|
+
| `S3_PUBLIC_URL` | `http://localhost:9000/intlayer` | URL pública para carregamento de ativos no navegador |
|
|
122
|
+
| `S3_BUCKET_NAME` | `intlayer` | Nome do bucket |
|
|
123
|
+
| `S3_ACCESS_KEY_ID` | _(generated)_ | Chave de acesso do MinIO |
|
|
124
|
+
| `S3_SECRET_ACCESS_KEY` | _(generated)_ | Chave secreta do MinIO |
|
|
125
|
+
| `VITE_BACKEND_URL` | `http://localhost:3100` | URL do backend incorporada ao dashboard no momento da compilação |
|
|
126
|
+
| `VITE_DOMAIN` | `localhost` | Domínio incorporado ao dashboard no momento da compilação |
|
|
127
|
+
|
|
128
|
+
### Opcionais (recursos são degradados graciosamente quando ausentes)
|
|
129
|
+
|
|
130
|
+
| Variável | Recurso |
|
|
131
|
+
| -------------------------------------------------------- | -------------------------------------------------------------------- |
|
|
132
|
+
| `OPENAI_API_KEY` | Tradução assistida por IA e auditoria de conteúdo |
|
|
133
|
+
| `STRIPE_SECRET_KEY`, `STRIPE_WEBHOOK_SECRET`, `STRIPE_*` | Gerenciamento de faturamento e assinaturas |
|
|
134
|
+
| `RESEND_API_KEY` | E-mail transacional via Resend (sobrescreve Mailpit quando definido) |
|
|
135
|
+
| `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` | Login OAuth do GitHub |
|
|
136
|
+
| `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` | Login OAuth do Google |
|
|
137
|
+
| `GITLAB_CLIENT_ID`, `GITLAB_CLIENT_SECRET` | Login OAuth do GitLab |
|
|
138
|
+
| `MICROSOFT_CLIENT_ID`, `MICROSOFT_CLIENT_SECRET` | Login OAuth da Microsoft |
|
|
139
|
+
| `LINKEDIN_CLIENT_ID`, `LINKEDIN_CLIENT_SECRET` | Login OAuth do LinkedIn |
|
|
140
|
+
| `ATLASSIAN_CLIENT_ID`, `ATLASSIAN_CLIENT_SECRET` | Login OAuth da Atlassian |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Conectando seu projeto Intlayer
|
|
145
|
+
|
|
146
|
+
Uma vez que a stack esteja em execução, aponte seu projeto para o backend e dashboard auto-hospedados em vez de `intlayer.org`.
|
|
147
|
+
|
|
148
|
+
### Configuração do projeto
|
|
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 do dashboard CMS auto-hospedado.
|
|
160
|
+
* Padrão: https://app.intlayer.org
|
|
161
|
+
*/
|
|
162
|
+
cmsURL: process.env.INTLAYER_CMS_URL, // e.g. http://localhost:3000
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* URL da API do backend auto-hospedado.
|
|
166
|
+
* Padrão: https://back.intlayer.org
|
|
167
|
+
*/
|
|
168
|
+
backendURL: process.env.INTLAYER_BACKEND_URL, // e.g. http://localhost:3100
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export default config;
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Defina as variáveis de ambiente no arquivo `.env` do seu projeto:
|
|
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
|
+
Crie credenciais de acesso no seu dashboard auto-hospedado em **Projetos → Chaves de acesso** em `http://localhost:3000/projects`.
|
|
185
|
+
|
|
186
|
+
### SDK `@intlayer/api`
|
|
187
|
+
|
|
188
|
+
Ao usar o SDK `@intlayer/api` programaticamente, passe `backendURL` explicitamente:
|
|
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
|
+
## Atualizando
|
|
208
|
+
|
|
209
|
+
Reexecutar o instalador em uma implantação existente realiza uma atualização contínua:
|
|
210
|
+
|
|
211
|
+
```sh
|
|
212
|
+
curl -fsSL https://intlayer.org/install.sh | sh
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Isso baixa as imagens mais recentes e reinicia os containers com `docker compose pull && docker compose up -d`. Os volumes existentes (`mongo-data`, `redis-data`, `minio-data`) são preservados — sem perda de dados.
|
|
216
|
+
|
|
217
|
+
Para atualizar manualmente de dentro do diretório `./intlayer/`:
|
|
218
|
+
|
|
219
|
+
```sh
|
|
220
|
+
docker compose pull
|
|
221
|
+
docker compose up -d
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Backup e restauração
|
|
227
|
+
|
|
228
|
+
Todos os dados persistentes residem em três volumes Docker nomeados.
|
|
229
|
+
|
|
230
|
+
### Backup
|
|
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
|
+
### Restauração
|
|
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
|
+
# Repita para redis-data e minio-data
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Usando um proxy reverso (Nginx / Caddy)
|
|
263
|
+
|
|
264
|
+
Para implantações em produção, coloque um proxy reverso na frente dos containers do aplicativo e do backend, em vez de expô-los diretamente.
|
|
265
|
+
|
|
266
|
+
### Exemplo de 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
|
+
Atualize as seguintes variáveis `.env` para corresponder aos seus domínios públicos:
|
|
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
|
+
> As variáveis `VITE_*` são incorporadas à imagem do dashboard no momento da compilação. Se você as alterar após a imagem ser construída, precisará reconstruir a imagem do `app` (`docker compose build app`) ou usar a injeção de configuração em tempo de execução.
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Solução de problemas
|
|
307
|
+
|
|
308
|
+
### Backend em loop de falha na primeira inicialização
|
|
309
|
+
|
|
310
|
+
MongoDB e Redis devem estar saudáveis antes que o backend possa iniciar. O arquivo compose usa `depends_on` com `condition: service_healthy`. Se você notar reinícios repetidos do backend, verifique se os healthchecks do `mongo` e `redis` estão passando:
|
|
311
|
+
|
|
312
|
+
```sh
|
|
313
|
+
docker compose ps
|
|
314
|
+
docker compose logs mongo
|
|
315
|
+
docker compose logs redis
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Dashboard não consegue acessar a API
|
|
319
|
+
|
|
320
|
+
Verifique se `VITE_BACKEND_URL` corresponde à URL onde o backend é acessível a partir do **navegador** (não da rede Docker). Se você alterou a porta do backend ou adicionou um proxy reverso, reconstrua a imagem do dashboard:
|
|
321
|
+
|
|
322
|
+
```sh
|
|
323
|
+
docker compose build app
|
|
324
|
+
docker compose up -d app
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### E-mail não está sendo enviado
|
|
328
|
+
|
|
329
|
+
Por padrão, todos os e-mails de saída são capturados pelo Mailpit. Abra `http://localhost:8025` para ver as mensagens enviadas. Para enviar e-mails reais, defina `MAIL_PROVIDER=resend` e `RESEND_API_KEY=<sua-chave>` no `.env`, então reinicie o backend:
|
|
330
|
+
|
|
331
|
+
```sh
|
|
332
|
+
docker compose restart backend
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Bucket MinIO ausente
|
|
336
|
+
|
|
337
|
+
Se o serviço `minio-init` de execução única não foi executado (ou executou antes que o MinIO estivesse pronto), crie o bucket manualmente:
|
|
338
|
+
|
|
339
|
+
```sh
|
|
340
|
+
docker compose run --rm minio-init
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Links úteis
|
|
346
|
+
|
|
347
|
+
- [Documentação do Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_CMS.md)
|
|
348
|
+
- [Referência de configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md)
|
|
349
|
+
- [SDK do CMS — `@intlayer/api`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/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 для преобразований, но по-прежнему вычисляет (evaluates) `babel.config.js` для конфигурации плагинов, плагины Babel запускаются в качестве предварительного этапа до SWC.
|
package/docs/ru/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/ru/login.md)** - Аутентификация в Intlayer CMS и получение учетных данных для доступа
|
|
128
|
+
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/login.md)** - Аутентификация в Intlayer CMS и получение учетных данных для доступа
|
|
129
129
|
|
|
130
130
|
### Основные команды
|
|
131
131
|
|
package/docs/ru/cli/scan.md
CHANGED
|
@@ -150,10 +150,10 @@ await scan("https://example.com", {
|
|
|
150
150
|
});
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
Для более низкоуровневого доступа функция `scanWebsite` из модуля `@intlayer/
|
|
153
|
+
Для более низкоуровневого доступа функция `scanWebsite` из модуля `@intlayer/engine/scan` возвращает структурированный объект `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);
|