@intlayer/docs 9.4.1 → 9.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/blog/ar/hreflang_guide_multilingual_seo.md +317 -0
- package/blog/ar/intlayer_with_i18next.md +0 -2
- package/blog/ar/intlayer_with_next-i18next.md +0 -4
- package/blog/ar/intlayer_with_vue-i18n.md +0 -4
- package/blog/de/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/de/intlayer_with_vue-i18n.md +0 -4
- package/blog/en/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/en/intlayer_with_i18next.md +0 -2
- package/blog/en/intlayer_with_next-i18next.md +0 -2
- package/blog/en/intlayer_with_next-intl.md +0 -2
- package/blog/en/intlayer_with_react-intl.md +0 -2
- package/blog/en/intlayer_with_vue-i18n.md +0 -2
- package/blog/en-GB/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/es/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/fr/hreflang_guide_multilingual_seo.md +315 -0
- package/blog/hi/hreflang_guide_multilingual_seo.md +323 -0
- package/blog/hi/intlayer_with_i18next.md +0 -2
- package/blog/hi/intlayer_with_next-i18next.md +0 -4
- package/blog/hi/intlayer_with_vue-i18n.md +0 -4
- package/blog/id/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/id/intlayer_with_i18next.md +0 -2
- package/blog/id/intlayer_with_next-i18next.md +0 -4
- package/blog/id/intlayer_with_vue-i18n.md +0 -4
- package/blog/it/hreflang_guide_multilingual_seo.md +315 -0
- package/blog/it/intlayer_with_i18next.md +0 -2
- package/blog/it/intlayer_with_next-i18next.md +0 -4
- package/blog/it/intlayer_with_vue-i18n.md +0 -4
- package/blog/ja/hreflang_guide_multilingual_seo.md +320 -0
- package/blog/ko/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/ko/intlayer_with_i18next.md +0 -2
- package/blog/ko/intlayer_with_next-i18next.md +0 -4
- package/blog/ko/intlayer_with_vue-i18n.md +0 -4
- package/blog/pl/hreflang_guide_multilingual_seo.md +316 -0
- package/blog/pt/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/pt/intlayer_with_i18next.md +0 -2
- package/blog/pt/intlayer_with_next-i18next.md +0 -4
- package/blog/pt/intlayer_with_vue-i18n.md +0 -4
- package/blog/ru/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/tr/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/tr/intlayer_with_i18next.md +0 -2
- package/blog/tr/intlayer_with_next-i18next.md +0 -4
- package/blog/tr/intlayer_with_vue-i18n.md +0 -4
- package/blog/uk/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/uk/intlayer_with_i18next.md +0 -2
- package/blog/uk/intlayer_with_next-i18next.md +0 -2
- package/blog/uk/intlayer_with_next-intl.md +0 -2
- package/blog/uk/intlayer_with_react-intl.md +0 -2
- package/blog/uk/intlayer_with_vue-i18n.md +0 -2
- package/blog/vi/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/vi/intlayer_with_i18next.md +0 -2
- package/blog/vi/intlayer_with_next-i18next.md +0 -4
- package/blog/vi/intlayer_with_vue-i18n.md +0 -4
- package/blog/zh/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/zh/intlayer_with_i18next.md +0 -2
- package/blog/zh/intlayer_with_next-i18next.md +0 -2
- package/blog/zh/intlayer_with_next-intl.md +0 -2
- package/blog/zh/intlayer_with_react-intl.md +0 -2
- package/blog/zh/intlayer_with_vue-i18n.md +0 -2
- package/dist/cjs/common.cjs +29 -6
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +20 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/common.mjs +29 -6
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +20 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/analytics.md +458 -12
- package/docs/ar/configuration.md +98 -0
- package/docs/ar/dictionary/content_file.md +4 -4
- package/docs/ar/dictionary/html.md +117 -1
- package/docs/ar/dictionary/markdown.md +18 -1
- package/docs/ar/dictionary/plurial.md +5 -2
- package/docs/ar/how_works_intlayer.md +92 -0
- package/docs/ar/interest_of_intlayer.md +106 -9
- package/docs/ar/intlayer_CMS.md +92 -0
- package/docs/ar/intlayer_visual_editor.md +87 -1
- package/docs/ar/intlayer_with_adonisjs.md +121 -0
- package/docs/ar/intlayer_with_analog.md +116 -8
- package/docs/ar/intlayer_with_angular_19.md +115 -8
- package/docs/ar/intlayer_with_angular_21.md +109 -8
- package/docs/ar/intlayer_with_astro.md +117 -20
- package/docs/ar/intlayer_with_astro_lit.md +118 -10
- package/docs/ar/intlayer_with_astro_preact.md +118 -10
- package/docs/ar/intlayer_with_astro_react.md +118 -10
- package/docs/ar/intlayer_with_astro_solid.md +118 -10
- package/docs/ar/intlayer_with_astro_svelte.md +118 -10
- package/docs/ar/intlayer_with_astro_vanilla.md +112 -10
- package/docs/ar/intlayer_with_astro_vue.md +118 -10
- package/docs/ar/intlayer_with_create_react_app.md +105 -0
- package/docs/ar/intlayer_with_elysia.md +121 -0
- package/docs/ar/intlayer_with_express.md +114 -0
- package/docs/ar/intlayer_with_fastify.md +115 -0
- package/docs/ar/intlayer_with_hono.md +114 -0
- package/docs/ar/intlayer_with_htmx.md +771 -0
- package/docs/ar/intlayer_with_lynx+react.md +7 -14
- package/docs/ar/intlayer_with_nestjs.md +115 -0
- package/docs/ar/intlayer_with_nextjs_14.md +144 -120
- package/docs/ar/intlayer_with_nextjs_15.md +126 -51
- package/docs/ar/intlayer_with_nextjs_16.md +127 -49
- package/docs/ar/intlayer_with_nextjs_compiler.md +122 -13
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +121 -9
- package/docs/ar/intlayer_with_nextjs_page_router.md +139 -107
- package/docs/ar/intlayer_with_nuxt.md +110 -8
- package/docs/ar/intlayer_with_react_native+expo.md +102 -7
- package/docs/ar/intlayer_with_react_router_v7.md +119 -10
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +122 -22
- package/docs/ar/intlayer_with_solid_start.md +115 -1
- package/docs/ar/intlayer_with_storybook.md +7 -20
- package/docs/ar/intlayer_with_svelte_kit.md +107 -17
- package/docs/ar/intlayer_with_tanstack+solid.md +124 -22
- package/docs/ar/intlayer_with_tanstack.md +134 -43
- package/docs/ar/intlayer_with_vanilla.md +117 -9
- package/docs/ar/intlayer_with_vite+lit.md +118 -8
- package/docs/ar/intlayer_with_vite+preact.md +148 -40
- package/docs/ar/intlayer_with_vite+react.md +108 -20
- package/docs/ar/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/ar/intlayer_with_vite+solid.md +114 -5
- package/docs/ar/intlayer_with_vite+svelte.md +118 -8
- package/docs/ar/intlayer_with_vite+vanilla.md +125 -8
- package/docs/ar/intlayer_with_vite+vue.md +105 -9
- package/docs/ar/introduction.md +104 -1
- package/docs/ar/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ar/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ar/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ar/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ar/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ar/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/bn/introduction.md +0 -1
- package/docs/cs/interest_of_intlayer.md +0 -1
- package/docs/cs/intlayer_with_storybook.md +0 -12
- package/docs/cs/intlayer_with_vanilla.md +2 -1
- package/docs/cs/introduction.md +0 -1
- package/docs/de/analytics.md +458 -12
- package/docs/de/configuration.md +99 -1
- package/docs/de/dictionary/content_file.md +4 -4
- package/docs/de/dictionary/markdown.md +3 -0
- package/docs/de/dictionary/plurial.md +6 -3
- package/docs/de/how_works_intlayer.md +93 -1
- package/docs/de/interest_of_intlayer.md +97 -2
- package/docs/de/intlayer_CMS.md +93 -1
- package/docs/de/intlayer_visual_editor.md +88 -2
- package/docs/de/intlayer_with_adonisjs.md +121 -1
- package/docs/de/intlayer_with_analog.md +111 -2
- package/docs/de/intlayer_with_angular_19.md +109 -2
- package/docs/de/intlayer_with_angular_21.md +103 -2
- package/docs/de/intlayer_with_astro.md +111 -14
- package/docs/de/intlayer_with_astro_lit.md +112 -4
- package/docs/de/intlayer_with_astro_preact.md +112 -4
- package/docs/de/intlayer_with_astro_react.md +112 -4
- package/docs/de/intlayer_with_astro_solid.md +112 -4
- package/docs/de/intlayer_with_astro_svelte.md +112 -4
- package/docs/de/intlayer_with_astro_vanilla.md +106 -4
- package/docs/de/intlayer_with_astro_vue.md +112 -4
- package/docs/de/intlayer_with_create_react_app.md +107 -2
- package/docs/de/intlayer_with_elysia.md +121 -1
- package/docs/de/intlayer_with_express.md +115 -1
- package/docs/de/intlayer_with_fastify.md +115 -1
- package/docs/de/intlayer_with_hono.md +115 -1
- package/docs/de/intlayer_with_htmx.md +770 -0
- package/docs/de/intlayer_with_lynx+react.md +0 -7
- package/docs/de/intlayer_with_nestjs.md +115 -1
- package/docs/de/intlayer_with_nextjs_14.md +138 -110
- package/docs/de/intlayer_with_nextjs_15.md +120 -45
- package/docs/de/intlayer_with_nextjs_16.md +147 -51
- package/docs/de/intlayer_with_nextjs_compiler.md +113 -3
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/de/intlayer_with_nextjs_page_router.md +121 -95
- package/docs/de/intlayer_with_nuxt.md +104 -2
- package/docs/de/intlayer_with_react_native+expo.md +103 -8
- package/docs/de/intlayer_with_react_router_v7.md +113 -4
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/de/intlayer_with_solid_start.md +117 -2
- package/docs/de/intlayer_with_storybook.md +0 -13
- package/docs/de/intlayer_with_svelte_kit.md +99 -2
- package/docs/de/intlayer_with_tanstack+solid.md +119 -16
- package/docs/de/intlayer_with_tanstack.md +231 -152
- package/docs/de/intlayer_with_vanilla.md +111 -3
- package/docs/de/intlayer_with_vite+lit.md +113 -2
- package/docs/de/intlayer_with_vite+preact.md +170 -33
- package/docs/de/intlayer_with_vite+react.md +102 -6
- package/docs/de/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/de/intlayer_with_vite+solid.md +113 -2
- package/docs/de/intlayer_with_vite+svelte.md +113 -2
- package/docs/de/intlayer_with_vite+vanilla.md +119 -2
- package/docs/de/intlayer_with_vite+vue.md +98 -2
- package/docs/de/introduction.md +105 -2
- package/docs/de/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/de/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/de/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/de/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/de/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en/configuration.md +99 -1
- package/docs/en/dictionary/content_file.md +4 -4
- package/docs/en/how_works_intlayer.md +93 -1
- package/docs/en/interest_of_intlayer.md +97 -2
- package/docs/en/intlayer_CMS.md +93 -1
- package/docs/en/intlayer_visual_editor.md +88 -2
- package/docs/en/intlayer_with_adonisjs.md +121 -1
- package/docs/en/intlayer_with_analog.md +111 -2
- package/docs/en/intlayer_with_angular_19.md +109 -2
- package/docs/en/intlayer_with_angular_21.md +103 -2
- package/docs/en/intlayer_with_astro.md +107 -4
- package/docs/en/intlayer_with_astro_lit.md +112 -4
- package/docs/en/intlayer_with_astro_preact.md +112 -4
- package/docs/en/intlayer_with_astro_react.md +112 -4
- package/docs/en/intlayer_with_astro_solid.md +112 -4
- package/docs/en/intlayer_with_astro_svelte.md +112 -4
- package/docs/en/intlayer_with_astro_vanilla.md +106 -4
- package/docs/en/intlayer_with_astro_vue.md +112 -4
- package/docs/en/intlayer_with_create_react_app.md +105 -2
- package/docs/en/intlayer_with_elysia.md +121 -1
- package/docs/en/intlayer_with_express.md +115 -1
- package/docs/en/intlayer_with_fastify.md +115 -1
- package/docs/en/intlayer_with_hono.md +115 -1
- package/docs/en/intlayer_with_htmx.md +754 -0
- package/docs/en/intlayer_with_lynx+react.md +0 -7
- package/docs/en/intlayer_with_nestjs.md +115 -1
- package/docs/en/intlayer_with_nextjs_14.md +120 -43
- package/docs/en/intlayer_with_nextjs_15.md +120 -44
- package/docs/en/intlayer_with_nextjs_16.md +121 -43
- package/docs/en/intlayer_with_nextjs_compiler.md +111 -2
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/en/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/en/intlayer_with_nuxt.md +104 -2
- package/docs/en/intlayer_with_react_native+expo.md +103 -8
- package/docs/en/intlayer_with_react_router_v7.md +113 -4
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +112 -5
- package/docs/en/intlayer_with_solid_start.md +117 -2
- package/docs/en/intlayer_with_storybook.md +0 -13
- package/docs/en/intlayer_with_svelte_kit.md +99 -2
- package/docs/en/intlayer_with_tanstack+solid.md +120 -16
- package/docs/en/intlayer_with_tanstack.md +114 -16
- package/docs/en/intlayer_with_vanilla.md +111 -3
- package/docs/en/intlayer_with_vite+lit.md +113 -2
- package/docs/en/intlayer_with_vite+preact.md +143 -34
- package/docs/en/intlayer_with_vite+react.md +101 -4
- package/docs/en/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/en/intlayer_with_vite+solid.md +113 -2
- package/docs/en/intlayer_with_vite+svelte.md +113 -2
- package/docs/en/intlayer_with_vite+vanilla.md +119 -2
- package/docs/en/intlayer_with_vite+vue.md +98 -2
- package/docs/en/introduction.md +105 -2
- package/docs/en/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/en/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/en/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/en/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/en/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en-GB/analytics.md +527 -58
- package/docs/en-GB/configuration.md +99 -1
- package/docs/en-GB/dictionary/content_file.md +4 -4
- package/docs/en-GB/dictionary/html.md +117 -1
- package/docs/en-GB/dictionary/markdown.md +18 -1
- package/docs/en-GB/dictionary/plurial.md +5 -2
- package/docs/en-GB/dictionary/translation.md +1 -1
- package/docs/en-GB/how_works_intlayer.md +93 -1
- package/docs/en-GB/interest_of_intlayer.md +97 -2
- package/docs/en-GB/intlayer_CMS.md +93 -1
- package/docs/en-GB/intlayer_visual_editor.md +88 -2
- package/docs/en-GB/intlayer_with_adonisjs.md +121 -1
- package/docs/en-GB/intlayer_with_analog.md +111 -2
- package/docs/en-GB/intlayer_with_angular_19.md +109 -2
- package/docs/en-GB/intlayer_with_angular_21.md +103 -2
- package/docs/en-GB/intlayer_with_astro.md +111 -14
- package/docs/en-GB/intlayer_with_astro_lit.md +112 -4
- package/docs/en-GB/intlayer_with_astro_preact.md +112 -4
- package/docs/en-GB/intlayer_with_astro_react.md +112 -4
- package/docs/en-GB/intlayer_with_astro_solid.md +112 -4
- package/docs/en-GB/intlayer_with_astro_svelte.md +112 -4
- package/docs/en-GB/intlayer_with_astro_vanilla.md +106 -4
- package/docs/en-GB/intlayer_with_astro_vue.md +112 -4
- package/docs/en-GB/intlayer_with_create_react_app.md +105 -2
- package/docs/en-GB/intlayer_with_elysia.md +121 -1
- package/docs/en-GB/intlayer_with_express.md +115 -1
- package/docs/en-GB/intlayer_with_fastify.md +115 -1
- package/docs/en-GB/intlayer_with_hono.md +115 -1
- package/docs/en-GB/intlayer_with_htmx.md +757 -0
- package/docs/en-GB/intlayer_with_lynx+react.md +0 -7
- package/docs/en-GB/intlayer_with_nestjs.md +115 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +120 -44
- package/docs/en-GB/intlayer_with_nextjs_15.md +123 -45
- package/docs/en-GB/intlayer_with_nextjs_16.md +121 -44
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +121 -12
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +122 -137
- package/docs/en-GB/intlayer_with_nuxt.md +104 -2
- package/docs/en-GB/intlayer_with_react_native+expo.md +103 -8
- package/docs/en-GB/intlayer_with_react_router_v7.md +113 -4
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/en-GB/intlayer_with_solid_start.md +117 -2
- package/docs/en-GB/intlayer_with_storybook.md +0 -13
- package/docs/en-GB/intlayer_with_svelte_kit.md +99 -2
- package/docs/en-GB/intlayer_with_tanstack+solid.md +120 -16
- package/docs/en-GB/intlayer_with_tanstack.md +255 -167
- package/docs/en-GB/intlayer_with_vanilla.md +111 -3
- package/docs/en-GB/intlayer_with_vite+lit.md +113 -2
- package/docs/en-GB/intlayer_with_vite+preact.md +179 -32
- package/docs/en-GB/intlayer_with_vite+react.md +101 -13
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/en-GB/intlayer_with_vite+solid.md +118 -2
- package/docs/en-GB/intlayer_with_vite+svelte.md +113 -11
- package/docs/en-GB/intlayer_with_vite+vanilla.md +119 -2
- package/docs/en-GB/intlayer_with_vite+vue.md +102 -8
- package/docs/en-GB/introduction.md +105 -2
- package/docs/en-GB/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/en-GB/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/es/analytics.md +458 -12
- package/docs/es/configuration.md +99 -1
- package/docs/es/dictionary/content_file.md +4 -4
- package/docs/es/dictionary/markdown.md +18 -1
- package/docs/es/dictionary/plurial.md +5 -2
- package/docs/es/how_works_intlayer.md +93 -1
- package/docs/es/interest_of_intlayer.md +97 -2
- package/docs/es/intlayer_CMS.md +93 -1
- package/docs/es/intlayer_visual_editor.md +88 -2
- package/docs/es/intlayer_with_adonisjs.md +121 -1
- package/docs/es/intlayer_with_analog.md +111 -2
- package/docs/es/intlayer_with_angular_19.md +109 -2
- package/docs/es/intlayer_with_angular_21.md +103 -2
- package/docs/es/intlayer_with_astro.md +111 -14
- package/docs/es/intlayer_with_astro_lit.md +112 -4
- package/docs/es/intlayer_with_astro_preact.md +112 -4
- package/docs/es/intlayer_with_astro_react.md +112 -4
- package/docs/es/intlayer_with_astro_solid.md +112 -4
- package/docs/es/intlayer_with_astro_svelte.md +112 -4
- package/docs/es/intlayer_with_astro_vanilla.md +106 -4
- package/docs/es/intlayer_with_astro_vue.md +112 -4
- package/docs/es/intlayer_with_create_react_app.md +107 -2
- package/docs/es/intlayer_with_elysia.md +121 -1
- package/docs/es/intlayer_with_express.md +115 -1
- package/docs/es/intlayer_with_fastify.md +115 -1
- package/docs/es/intlayer_with_hono.md +115 -1
- package/docs/es/intlayer_with_htmx.md +763 -0
- package/docs/es/intlayer_with_lynx+react.md +0 -7
- package/docs/es/intlayer_with_nestjs.md +115 -1
- package/docs/es/intlayer_with_nextjs_14.md +120 -44
- package/docs/es/intlayer_with_nextjs_15.md +123 -45
- package/docs/es/intlayer_with_nextjs_16.md +142 -52
- package/docs/es/intlayer_with_nextjs_compiler.md +122 -12
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/es/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/es/intlayer_with_nuxt.md +104 -2
- package/docs/es/intlayer_with_react_native+expo.md +103 -8
- package/docs/es/intlayer_with_react_router_v7.md +113 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/es/intlayer_with_solid_start.md +117 -2
- package/docs/es/intlayer_with_storybook.md +0 -13
- package/docs/es/intlayer_with_svelte_kit.md +99 -2
- package/docs/es/intlayer_with_tanstack+solid.md +119 -16
- package/docs/es/intlayer_with_tanstack.md +252 -147
- package/docs/es/intlayer_with_vanilla.md +111 -3
- package/docs/es/intlayer_with_vite+lit.md +113 -2
- package/docs/es/intlayer_with_vite+preact.md +143 -34
- package/docs/es/intlayer_with_vite+react.md +101 -4
- package/docs/es/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/es/intlayer_with_vite+solid.md +114 -2
- package/docs/es/intlayer_with_vite+svelte.md +113 -2
- package/docs/es/intlayer_with_vite+vanilla.md +119 -2
- package/docs/es/intlayer_with_vite+vue.md +99 -3
- package/docs/es/introduction.md +105 -2
- package/docs/es/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/es/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/es/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/es/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/es/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/fr/analytics.md +437 -13
- package/docs/fr/configuration.md +99 -1
- package/docs/fr/dictionary/content_file.md +4 -4
- package/docs/fr/dictionary/markdown.md +18 -1
- package/docs/fr/dictionary/plurial.md +5 -2
- package/docs/fr/how_works_intlayer.md +93 -1
- package/docs/fr/interest_of_intlayer.md +97 -2
- package/docs/fr/intlayer_CMS.md +93 -1
- package/docs/fr/intlayer_visual_editor.md +88 -2
- package/docs/fr/intlayer_with_adonisjs.md +121 -1
- package/docs/fr/intlayer_with_analog.md +111 -2
- package/docs/fr/intlayer_with_angular_19.md +109 -2
- package/docs/fr/intlayer_with_angular_21.md +103 -2
- package/docs/fr/intlayer_with_astro.md +111 -14
- package/docs/fr/intlayer_with_astro_lit.md +112 -4
- package/docs/fr/intlayer_with_astro_preact.md +112 -4
- package/docs/fr/intlayer_with_astro_react.md +112 -4
- package/docs/fr/intlayer_with_astro_solid.md +112 -4
- package/docs/fr/intlayer_with_astro_svelte.md +112 -4
- package/docs/fr/intlayer_with_astro_vanilla.md +106 -4
- package/docs/fr/intlayer_with_astro_vue.md +112 -4
- package/docs/fr/intlayer_with_create_react_app.md +107 -2
- package/docs/fr/intlayer_with_elysia.md +121 -1
- package/docs/fr/intlayer_with_express.md +115 -1
- package/docs/fr/intlayer_with_fastify.md +115 -1
- package/docs/fr/intlayer_with_hono.md +115 -1
- package/docs/fr/intlayer_with_htmx.md +756 -0
- package/docs/fr/intlayer_with_lynx+react.md +0 -7
- package/docs/fr/intlayer_with_nestjs.md +115 -1
- package/docs/fr/intlayer_with_nextjs_14.md +138 -110
- package/docs/fr/intlayer_with_nextjs_15.md +124 -46
- package/docs/fr/intlayer_with_nextjs_16.md +121 -43
- package/docs/fr/intlayer_with_nextjs_compiler.md +122 -12
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/fr/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/fr/intlayer_with_nuxt.md +104 -2
- package/docs/fr/intlayer_with_react_native+expo.md +103 -8
- package/docs/fr/intlayer_with_react_router_v7.md +117 -10
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/fr/intlayer_with_solid_start.md +117 -2
- package/docs/fr/intlayer_with_storybook.md +0 -13
- package/docs/fr/intlayer_with_svelte_kit.md +99 -2
- package/docs/fr/intlayer_with_tanstack+solid.md +119 -16
- package/docs/fr/intlayer_with_tanstack.md +235 -128
- package/docs/fr/intlayer_with_vanilla.md +111 -3
- package/docs/fr/intlayer_with_vite+lit.md +113 -2
- package/docs/fr/intlayer_with_vite+preact.md +143 -34
- package/docs/fr/intlayer_with_vite+react.md +101 -4
- package/docs/fr/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/fr/intlayer_with_vite+solid.md +114 -2
- package/docs/fr/intlayer_with_vite+svelte.md +113 -2
- package/docs/fr/intlayer_with_vite+vanilla.md +119 -2
- package/docs/fr/intlayer_with_vite+vue.md +99 -3
- package/docs/fr/introduction.md +105 -2
- package/docs/fr/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/fr/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/fr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/hi/analytics.md +488 -21
- package/docs/hi/configuration.md +98 -0
- package/docs/hi/dictionary/content_file.md +4 -4
- package/docs/hi/dictionary/html.md +100 -3
- package/docs/hi/dictionary/markdown.md +3 -0
- package/docs/hi/dictionary/plurial.md +6 -3
- package/docs/hi/how_works_intlayer.md +92 -0
- package/docs/hi/interest_of_intlayer.md +106 -9
- package/docs/hi/intlayer_CMS.md +92 -0
- package/docs/hi/intlayer_visual_editor.md +87 -1
- package/docs/hi/intlayer_with_adonisjs.md +121 -0
- package/docs/hi/intlayer_with_analog.md +116 -8
- package/docs/hi/intlayer_with_angular_19.md +115 -8
- package/docs/hi/intlayer_with_angular_21.md +109 -8
- package/docs/hi/intlayer_with_astro.md +117 -20
- package/docs/hi/intlayer_with_astro_lit.md +118 -10
- package/docs/hi/intlayer_with_astro_preact.md +118 -10
- package/docs/hi/intlayer_with_astro_react.md +118 -10
- package/docs/hi/intlayer_with_astro_solid.md +118 -10
- package/docs/hi/intlayer_with_astro_svelte.md +118 -10
- package/docs/hi/intlayer_with_astro_vanilla.md +112 -10
- package/docs/hi/intlayer_with_astro_vue.md +118 -10
- package/docs/hi/intlayer_with_create_react_app.md +106 -1
- package/docs/hi/intlayer_with_elysia.md +121 -0
- package/docs/hi/intlayer_with_express.md +114 -0
- package/docs/hi/intlayer_with_fastify.md +115 -0
- package/docs/hi/intlayer_with_hono.md +114 -0
- package/docs/hi/intlayer_with_htmx.md +771 -0
- package/docs/hi/intlayer_with_lynx+react.md +7 -14
- package/docs/hi/intlayer_with_nestjs.md +115 -0
- package/docs/hi/intlayer_with_nextjs_14.md +144 -120
- package/docs/hi/intlayer_with_nextjs_15.md +129 -51
- package/docs/hi/intlayer_with_nextjs_16.md +129 -50
- package/docs/hi/intlayer_with_nextjs_compiler.md +121 -12
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +121 -9
- package/docs/hi/intlayer_with_nextjs_page_router.md +123 -96
- package/docs/hi/intlayer_with_nuxt.md +110 -8
- package/docs/hi/intlayer_with_react_native+expo.md +102 -7
- package/docs/hi/intlayer_with_react_router_v7.md +119 -10
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +122 -22
- package/docs/hi/intlayer_with_solid_start.md +115 -1
- package/docs/hi/intlayer_with_storybook.md +7 -20
- package/docs/hi/intlayer_with_svelte_kit.md +105 -8
- package/docs/hi/intlayer_with_tanstack+solid.md +124 -22
- package/docs/hi/intlayer_with_tanstack.md +269 -155
- package/docs/hi/intlayer_with_vanilla.md +117 -9
- package/docs/hi/intlayer_with_vite+lit.md +118 -8
- package/docs/hi/intlayer_with_vite+preact.md +170 -41
- package/docs/hi/intlayer_with_vite+react.md +108 -20
- package/docs/hi/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/hi/intlayer_with_vite+solid.md +118 -8
- package/docs/hi/intlayer_with_vite+svelte.md +120 -9
- package/docs/hi/intlayer_with_vite+vanilla.md +125 -8
- package/docs/hi/intlayer_with_vite+vue.md +104 -8
- package/docs/hi/introduction.md +104 -1
- package/docs/hi/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/hi/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/hi/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/hi/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/hi/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/hi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/id/analytics.md +488 -21
- package/docs/id/configuration.md +98 -0
- package/docs/id/dictionary/content_file.md +4 -4
- package/docs/id/dictionary/markdown.md +3 -0
- package/docs/id/dictionary/plurial.md +5 -2
- package/docs/id/how_works_intlayer.md +92 -0
- package/docs/id/interest_of_intlayer.md +96 -1
- package/docs/id/intlayer_CMS.md +92 -0
- package/docs/id/intlayer_visual_editor.md +87 -1
- package/docs/id/intlayer_with_adonisjs.md +121 -0
- package/docs/id/intlayer_with_analog.md +109 -1
- package/docs/id/intlayer_with_angular_19.md +108 -1
- package/docs/id/intlayer_with_angular_21.md +102 -1
- package/docs/id/intlayer_with_astro.md +110 -13
- package/docs/id/intlayer_with_astro_lit.md +111 -3
- package/docs/id/intlayer_with_astro_preact.md +111 -3
- package/docs/id/intlayer_with_astro_react.md +111 -3
- package/docs/id/intlayer_with_astro_solid.md +111 -3
- package/docs/id/intlayer_with_astro_svelte.md +111 -3
- package/docs/id/intlayer_with_astro_vanilla.md +105 -3
- package/docs/id/intlayer_with_astro_vue.md +111 -3
- package/docs/id/intlayer_with_create_react_app.md +106 -1
- package/docs/id/intlayer_with_elysia.md +121 -0
- package/docs/id/intlayer_with_express.md +114 -0
- package/docs/id/intlayer_with_fastify.md +115 -0
- package/docs/id/intlayer_with_hono.md +114 -0
- package/docs/id/intlayer_with_htmx.md +761 -0
- package/docs/id/intlayer_with_lynx+react.md +0 -7
- package/docs/id/intlayer_with_nestjs.md +115 -0
- package/docs/id/intlayer_with_nextjs_14.md +132 -66
- package/docs/id/intlayer_with_nextjs_15.md +119 -43
- package/docs/id/intlayer_with_nextjs_16.md +122 -42
- package/docs/id/intlayer_with_nextjs_compiler.md +122 -14
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/id/intlayer_with_nextjs_page_router.md +111 -94
- package/docs/id/intlayer_with_nuxt.md +103 -1
- package/docs/id/intlayer_with_react_native+expo.md +102 -7
- package/docs/id/intlayer_with_react_router_v7.md +112 -3
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +116 -16
- package/docs/id/intlayer_with_solid_start.md +115 -1
- package/docs/id/intlayer_with_storybook.md +0 -13
- package/docs/id/intlayer_with_svelte_kit.md +98 -1
- package/docs/id/intlayer_with_tanstack+solid.md +117 -15
- package/docs/id/intlayer_with_tanstack.md +229 -129
- package/docs/id/intlayer_with_vanilla.md +110 -2
- package/docs/id/intlayer_with_vite+lit.md +111 -1
- package/docs/id/intlayer_with_vite+preact.md +141 -33
- package/docs/id/intlayer_with_vite+react.md +101 -13
- package/docs/id/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/id/intlayer_with_vite+solid.md +112 -1
- package/docs/id/intlayer_with_vite+svelte.md +111 -1
- package/docs/id/intlayer_with_vite+vanilla.md +118 -1
- package/docs/id/intlayer_with_vite+vue.md +97 -1
- package/docs/id/introduction.md +104 -1
- package/docs/id/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/id/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/id/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/id/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/id/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/id/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/it/analytics.md +488 -21
- package/docs/it/configuration.md +99 -1
- package/docs/it/dictionary/content_file.md +4 -4
- package/docs/it/dictionary/markdown.md +18 -1
- package/docs/it/dictionary/plurial.md +5 -2
- package/docs/it/how_works_intlayer.md +93 -1
- package/docs/it/interest_of_intlayer.md +97 -2
- package/docs/it/intlayer_CMS.md +93 -1
- package/docs/it/intlayer_visual_editor.md +88 -2
- package/docs/it/intlayer_with_adonisjs.md +121 -1
- package/docs/it/intlayer_with_analog.md +111 -2
- package/docs/it/intlayer_with_angular_19.md +109 -2
- package/docs/it/intlayer_with_angular_21.md +103 -2
- package/docs/it/intlayer_with_astro.md +111 -14
- package/docs/it/intlayer_with_astro_lit.md +112 -4
- package/docs/it/intlayer_with_astro_preact.md +112 -4
- package/docs/it/intlayer_with_astro_react.md +112 -4
- package/docs/it/intlayer_with_astro_solid.md +112 -4
- package/docs/it/intlayer_with_astro_svelte.md +112 -4
- package/docs/it/intlayer_with_astro_vanilla.md +106 -4
- package/docs/it/intlayer_with_astro_vue.md +112 -4
- package/docs/it/intlayer_with_create_react_app.md +107 -2
- package/docs/it/intlayer_with_elysia.md +121 -1
- package/docs/it/intlayer_with_express.md +115 -1
- package/docs/it/intlayer_with_fastify.md +115 -1
- package/docs/it/intlayer_with_hono.md +115 -1
- package/docs/it/intlayer_with_htmx.md +761 -0
- package/docs/it/intlayer_with_lynx+react.md +0 -7
- package/docs/it/intlayer_with_nestjs.md +115 -1
- package/docs/it/intlayer_with_nextjs_14.md +138 -115
- package/docs/it/intlayer_with_nextjs_15.md +124 -47
- package/docs/it/intlayer_with_nextjs_16.md +123 -44
- package/docs/it/intlayer_with_nextjs_compiler.md +123 -14
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/it/intlayer_with_nextjs_page_router.md +119 -95
- package/docs/it/intlayer_with_nuxt.md +104 -2
- package/docs/it/intlayer_with_react_native+expo.md +103 -8
- package/docs/it/intlayer_with_react_router_v7.md +113 -4
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/it/intlayer_with_solid_start.md +117 -2
- package/docs/it/intlayer_with_storybook.md +0 -13
- package/docs/it/intlayer_with_svelte_kit.md +99 -2
- package/docs/it/intlayer_with_tanstack+solid.md +119 -16
- package/docs/it/intlayer_with_tanstack.md +232 -131
- package/docs/it/intlayer_with_vanilla.md +111 -3
- package/docs/it/intlayer_with_vite+lit.md +113 -2
- package/docs/it/intlayer_with_vite+preact.md +143 -34
- package/docs/it/intlayer_with_vite+react.md +102 -14
- package/docs/it/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/it/intlayer_with_vite+solid.md +114 -2
- package/docs/it/intlayer_with_vite+svelte.md +113 -2
- package/docs/it/intlayer_with_vite+vanilla.md +119 -2
- package/docs/it/intlayer_with_vite+vue.md +99 -3
- package/docs/it/introduction.md +105 -2
- package/docs/it/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/it/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/it/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/it/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/it/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ja/analytics.md +458 -12
- package/docs/ja/configuration.md +99 -1
- package/docs/ja/dictionary/content_file.md +4 -4
- package/docs/ja/dictionary/plurial.md +5 -2
- package/docs/ja/how_works_intlayer.md +93 -1
- package/docs/ja/interest_of_intlayer.md +107 -10
- package/docs/ja/intlayer_CMS.md +93 -1
- package/docs/ja/intlayer_visual_editor.md +88 -2
- package/docs/ja/intlayer_with_adonisjs.md +121 -1
- package/docs/ja/intlayer_with_analog.md +119 -10
- package/docs/ja/intlayer_with_angular_19.md +117 -10
- package/docs/ja/intlayer_with_angular_21.md +111 -10
- package/docs/ja/intlayer_with_astro.md +119 -22
- package/docs/ja/intlayer_with_astro_lit.md +120 -12
- package/docs/ja/intlayer_with_astro_preact.md +120 -12
- package/docs/ja/intlayer_with_astro_react.md +120 -12
- package/docs/ja/intlayer_with_astro_solid.md +120 -12
- package/docs/ja/intlayer_with_astro_svelte.md +120 -12
- package/docs/ja/intlayer_with_astro_vanilla.md +114 -12
- package/docs/ja/intlayer_with_astro_vue.md +120 -12
- package/docs/ja/intlayer_with_create_react_app.md +107 -2
- package/docs/ja/intlayer_with_elysia.md +121 -1
- package/docs/ja/intlayer_with_express.md +121 -1
- package/docs/ja/intlayer_with_fastify.md +115 -1
- package/docs/ja/intlayer_with_hono.md +115 -1
- package/docs/ja/intlayer_with_htmx.md +769 -0
- package/docs/ja/intlayer_with_lynx+react.md +8 -15
- package/docs/ja/intlayer_with_nestjs.md +115 -1
- package/docs/ja/intlayer_with_nextjs_14.md +128 -51
- package/docs/ja/intlayer_with_nextjs_15.md +136 -59
- package/docs/ja/intlayer_with_nextjs_16.md +131 -52
- package/docs/ja/intlayer_with_nextjs_compiler.md +123 -15
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +123 -11
- package/docs/ja/intlayer_with_nextjs_page_router.md +215 -110
- package/docs/ja/intlayer_with_nuxt.md +112 -10
- package/docs/ja/intlayer_with_react_native+expo.md +103 -8
- package/docs/ja/intlayer_with_react_router_v7.md +121 -11
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +123 -23
- package/docs/ja/intlayer_with_solid_start.md +117 -2
- package/docs/ja/intlayer_with_storybook.md +8 -21
- package/docs/ja/intlayer_with_svelte_kit.md +107 -10
- package/docs/ja/intlayer_with_tanstack+solid.md +128 -24
- package/docs/ja/intlayer_with_tanstack.md +254 -203
- package/docs/ja/intlayer_with_vanilla.md +119 -11
- package/docs/ja/intlayer_with_vite+lit.md +121 -10
- package/docs/ja/intlayer_with_vite+preact.md +151 -23
- package/docs/ja/intlayer_with_vite+react.md +109 -12
- package/docs/ja/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/ja/intlayer_with_vite+solid.md +121 -10
- package/docs/ja/intlayer_with_vite+svelte.md +121 -10
- package/docs/ja/intlayer_with_vite+vanilla.md +127 -10
- package/docs/ja/intlayer_with_vite+vue.md +107 -11
- package/docs/ja/introduction.md +105 -2
- package/docs/ja/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ja/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ja/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ko/analytics.md +457 -11
- package/docs/ko/configuration.md +99 -1
- package/docs/ko/dictionary/content_file.md +4 -4
- package/docs/ko/dictionary/markdown.md +18 -1
- package/docs/ko/dictionary/plurial.md +6 -3
- package/docs/ko/how_works_intlayer.md +93 -1
- package/docs/ko/interest_of_intlayer.md +98 -3
- package/docs/ko/intlayer_CMS.md +93 -1
- package/docs/ko/intlayer_visual_editor.md +88 -2
- package/docs/ko/intlayer_with_adonisjs.md +121 -1
- package/docs/ko/intlayer_with_analog.md +111 -2
- package/docs/ko/intlayer_with_angular_19.md +110 -3
- package/docs/ko/intlayer_with_angular_21.md +104 -3
- package/docs/ko/intlayer_with_astro.md +119 -19
- package/docs/ko/intlayer_with_astro_lit.md +112 -4
- package/docs/ko/intlayer_with_astro_preact.md +112 -4
- package/docs/ko/intlayer_with_astro_react.md +112 -4
- package/docs/ko/intlayer_with_astro_solid.md +112 -4
- package/docs/ko/intlayer_with_astro_svelte.md +112 -4
- package/docs/ko/intlayer_with_astro_vanilla.md +106 -4
- package/docs/ko/intlayer_with_astro_vue.md +112 -4
- package/docs/ko/intlayer_with_create_react_app.md +107 -5
- package/docs/ko/intlayer_with_elysia.md +121 -1
- package/docs/ko/intlayer_with_express.md +115 -1
- package/docs/ko/intlayer_with_fastify.md +115 -2
- package/docs/ko/intlayer_with_hono.md +115 -1
- package/docs/ko/intlayer_with_htmx.md +763 -0
- package/docs/ko/intlayer_with_lynx+react.md +0 -7
- package/docs/ko/intlayer_with_nestjs.md +115 -1
- package/docs/ko/intlayer_with_nextjs_14.md +118 -42
- package/docs/ko/intlayer_with_nextjs_15.md +118 -43
- package/docs/ko/intlayer_with_nextjs_16.md +121 -43
- package/docs/ko/intlayer_with_nextjs_compiler.md +110 -1
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +117 -7
- package/docs/ko/intlayer_with_nextjs_page_router.md +110 -94
- package/docs/ko/intlayer_with_nuxt.md +104 -2
- package/docs/ko/intlayer_with_react_native+expo.md +103 -8
- package/docs/ko/intlayer_with_react_router_v7.md +116 -10
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +113 -11
- package/docs/ko/intlayer_with_solid_start.md +122 -7
- package/docs/ko/intlayer_with_storybook.md +0 -14
- package/docs/ko/intlayer_with_svelte_kit.md +99 -2
- package/docs/ko/intlayer_with_tanstack+solid.md +121 -17
- package/docs/ko/intlayer_with_tanstack.md +260 -191
- package/docs/ko/intlayer_with_vanilla.md +111 -2
- package/docs/ko/intlayer_with_vite+lit.md +114 -3
- package/docs/ko/intlayer_with_vite+preact.md +143 -34
- package/docs/ko/intlayer_with_vite+react.md +101 -5
- package/docs/ko/intlayer_with_vite+react_compiler.md +107 -10
- package/docs/ko/intlayer_with_vite+solid.md +115 -2
- package/docs/ko/intlayer_with_vite+svelte.md +114 -6
- package/docs/ko/intlayer_with_vite+vanilla.md +121 -11
- package/docs/ko/intlayer_with_vite+vue.md +99 -3
- package/docs/ko/introduction.md +105 -2
- package/docs/ko/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ko/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ko/packages/express-intlayer/t.md +9 -6
- package/docs/ko/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/nl/interest_of_intlayer.md +0 -1
- package/docs/nl/intlayer_with_storybook.md +0 -12
- package/docs/nl/intlayer_with_vanilla.md +2 -1
- package/docs/nl/introduction.md +0 -1
- package/docs/pl/analytics.md +488 -21
- package/docs/pl/configuration.md +98 -0
- package/docs/pl/dictionary/content_file.md +4 -4
- package/docs/pl/dictionary/markdown.md +3 -0
- package/docs/pl/dictionary/plurial.md +5 -2
- package/docs/pl/how_works_intlayer.md +92 -0
- package/docs/pl/interest_of_intlayer.md +96 -1
- package/docs/pl/intlayer_CMS.md +92 -0
- package/docs/pl/intlayer_visual_editor.md +87 -1
- package/docs/pl/intlayer_with_adonisjs.md +120 -0
- package/docs/pl/intlayer_with_analog.md +116 -8
- package/docs/pl/intlayer_with_angular_19.md +115 -8
- package/docs/pl/intlayer_with_angular_21.md +109 -8
- package/docs/pl/intlayer_with_astro.md +117 -20
- package/docs/pl/intlayer_with_astro_lit.md +118 -10
- package/docs/pl/intlayer_with_astro_preact.md +118 -10
- package/docs/pl/intlayer_with_astro_react.md +118 -10
- package/docs/pl/intlayer_with_astro_solid.md +118 -10
- package/docs/pl/intlayer_with_astro_svelte.md +118 -10
- package/docs/pl/intlayer_with_astro_vanilla.md +112 -10
- package/docs/pl/intlayer_with_astro_vue.md +118 -10
- package/docs/pl/intlayer_with_create_react_app.md +106 -1
- package/docs/pl/intlayer_with_elysia.md +120 -0
- package/docs/pl/intlayer_with_express.md +114 -0
- package/docs/pl/intlayer_with_fastify.md +114 -0
- package/docs/pl/intlayer_with_hono.md +114 -0
- package/docs/pl/intlayer_with_htmx.md +767 -0
- package/docs/pl/intlayer_with_lynx+react.md +7 -14
- package/docs/pl/intlayer_with_nestjs.md +114 -0
- package/docs/pl/intlayer_with_nextjs_14.md +127 -50
- package/docs/pl/intlayer_with_nextjs_15.md +141 -62
- package/docs/pl/intlayer_with_nextjs_16.md +128 -51
- package/docs/pl/intlayer_with_nextjs_compiler.md +122 -13
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +122 -10
- package/docs/pl/intlayer_with_nextjs_page_router.md +115 -97
- package/docs/pl/intlayer_with_nuxt.md +110 -8
- package/docs/pl/intlayer_with_react_native+expo.md +102 -7
- package/docs/pl/intlayer_with_react_router_v7.md +131 -22
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +121 -20
- package/docs/pl/intlayer_with_solid_start.md +115 -1
- package/docs/pl/intlayer_with_storybook.md +7 -20
- package/docs/pl/intlayer_with_svelte_kit.md +105 -8
- package/docs/pl/intlayer_with_tanstack+solid.md +124 -22
- package/docs/pl/intlayer_with_tanstack.md +238 -160
- package/docs/pl/intlayer_with_vanilla.md +117 -9
- package/docs/pl/intlayer_with_vite+lit.md +118 -8
- package/docs/pl/intlayer_with_vite+preact.md +148 -40
- package/docs/pl/intlayer_with_vite+react.md +108 -20
- package/docs/pl/intlayer_with_vite+react_compiler.md +108 -3
- package/docs/pl/intlayer_with_vite+solid.md +112 -5
- package/docs/pl/intlayer_with_vite+svelte.md +118 -8
- package/docs/pl/intlayer_with_vite+vanilla.md +125 -8
- package/docs/pl/intlayer_with_vite+vue.md +104 -8
- package/docs/pl/introduction.md +104 -1
- package/docs/pl/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/pl/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/pl/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/pl/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/pl/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/pl/packages/next-intlayer/useIntlayer.md +3 -0
- package/docs/pl/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/pt/analytics.md +488 -21
- package/docs/pt/configuration.md +99 -1
- package/docs/pt/dictionary/content_file.md +4 -4
- package/docs/pt/dictionary/html.md +18 -1
- package/docs/pt/dictionary/markdown.md +3 -0
- package/docs/pt/dictionary/plurial.md +5 -2
- package/docs/pt/how_works_intlayer.md +93 -1
- package/docs/pt/interest_of_intlayer.md +98 -3
- package/docs/pt/intlayer_CMS.md +93 -1
- package/docs/pt/intlayer_visual_editor.md +88 -2
- package/docs/pt/intlayer_with_adonisjs.md +121 -1
- package/docs/pt/intlayer_with_analog.md +112 -3
- package/docs/pt/intlayer_with_angular_19.md +109 -2
- package/docs/pt/intlayer_with_angular_21.md +103 -2
- package/docs/pt/intlayer_with_astro.md +111 -14
- package/docs/pt/intlayer_with_astro_lit.md +112 -4
- package/docs/pt/intlayer_with_astro_preact.md +112 -4
- package/docs/pt/intlayer_with_astro_react.md +112 -4
- package/docs/pt/intlayer_with_astro_solid.md +112 -4
- package/docs/pt/intlayer_with_astro_svelte.md +112 -4
- package/docs/pt/intlayer_with_astro_vanilla.md +106 -4
- package/docs/pt/intlayer_with_astro_vue.md +111 -3
- package/docs/pt/intlayer_with_create_react_app.md +107 -2
- package/docs/pt/intlayer_with_elysia.md +121 -1
- package/docs/pt/intlayer_with_express.md +115 -1
- package/docs/pt/intlayer_with_fastify.md +115 -2
- package/docs/pt/intlayer_with_hono.md +115 -1
- package/docs/pt/intlayer_with_htmx.md +771 -0
- package/docs/pt/intlayer_with_lynx+react.md +0 -7
- package/docs/pt/intlayer_with_nestjs.md +115 -1
- package/docs/pt/intlayer_with_nextjs_14.md +138 -117
- package/docs/pt/intlayer_with_nextjs_15.md +120 -45
- package/docs/pt/intlayer_with_nextjs_16.md +122 -45
- package/docs/pt/intlayer_with_nextjs_compiler.md +122 -12
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/pt/intlayer_with_nextjs_page_router.md +121 -95
- package/docs/pt/intlayer_with_nuxt.md +104 -2
- package/docs/pt/intlayer_with_react_native+expo.md +103 -8
- package/docs/pt/intlayer_with_react_router_v7.md +140 -33
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +115 -8
- package/docs/pt/intlayer_with_solid_start.md +121 -6
- package/docs/pt/intlayer_with_storybook.md +0 -13
- package/docs/pt/intlayer_with_svelte_kit.md +99 -2
- package/docs/pt/intlayer_with_tanstack+solid.md +120 -16
- package/docs/pt/intlayer_with_tanstack.md +252 -144
- package/docs/pt/intlayer_with_vanilla.md +111 -3
- package/docs/pt/intlayer_with_vite+lit.md +113 -2
- package/docs/pt/intlayer_with_vite+preact.md +143 -34
- package/docs/pt/intlayer_with_vite+react.md +101 -4
- package/docs/pt/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/pt/intlayer_with_vite+solid.md +114 -2
- package/docs/pt/intlayer_with_vite+svelte.md +113 -2
- package/docs/pt/intlayer_with_vite+vanilla.md +119 -2
- package/docs/pt/intlayer_with_vite+vue.md +98 -2
- package/docs/pt/introduction.md +105 -2
- package/docs/pt/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/pt/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/pt/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ru/analytics.md +458 -12
- package/docs/ru/cli/doc-review.md +0 -2
- package/docs/ru/configuration.md +99 -1
- package/docs/ru/dictionary/content_file.md +4 -4
- package/docs/ru/dictionary/markdown.md +0 -2
- package/docs/ru/dictionary/plurial.md +6 -3
- package/docs/ru/dictionary/translation.md +1 -1
- package/docs/ru/how_works_intlayer.md +93 -1
- package/docs/ru/interest_of_intlayer.md +97 -2
- package/docs/ru/intlayer_CMS.md +93 -1
- package/docs/ru/intlayer_visual_editor.md +88 -2
- package/docs/ru/intlayer_with_adonisjs.md +121 -1
- package/docs/ru/intlayer_with_analog.md +111 -2
- package/docs/ru/intlayer_with_angular_19.md +109 -2
- package/docs/ru/intlayer_with_angular_21.md +103 -2
- package/docs/ru/intlayer_with_astro.md +111 -14
- package/docs/ru/intlayer_with_astro_lit.md +112 -4
- package/docs/ru/intlayer_with_astro_preact.md +112 -4
- package/docs/ru/intlayer_with_astro_react.md +112 -4
- package/docs/ru/intlayer_with_astro_solid.md +112 -4
- package/docs/ru/intlayer_with_astro_svelte.md +112 -4
- package/docs/ru/intlayer_with_astro_vanilla.md +106 -4
- package/docs/ru/intlayer_with_astro_vue.md +112 -4
- package/docs/ru/intlayer_with_create_react_app.md +107 -2
- package/docs/ru/intlayer_with_elysia.md +121 -1
- package/docs/ru/intlayer_with_express.md +115 -1
- package/docs/ru/intlayer_with_fastify.md +115 -1
- package/docs/ru/intlayer_with_hono.md +115 -1
- package/docs/ru/intlayer_with_htmx.md +767 -0
- package/docs/ru/intlayer_with_lynx+react.md +0 -7
- package/docs/ru/intlayer_with_nestjs.md +115 -1
- package/docs/ru/intlayer_with_nextjs_14.md +138 -114
- package/docs/ru/intlayer_with_nextjs_15.md +123 -62
- package/docs/ru/intlayer_with_nextjs_16.md +122 -45
- package/docs/ru/intlayer_with_nextjs_compiler.md +123 -14
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/ru/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/ru/intlayer_with_nuxt.md +104 -2
- package/docs/ru/intlayer_with_react_native+expo.md +103 -8
- package/docs/ru/intlayer_with_react_router_v7.md +113 -4
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/ru/intlayer_with_solid_start.md +117 -2
- package/docs/ru/intlayer_with_storybook.md +0 -13
- package/docs/ru/intlayer_with_svelte_kit.md +99 -2
- package/docs/ru/intlayer_with_tanstack+solid.md +119 -16
- package/docs/ru/intlayer_with_tanstack.md +230 -151
- package/docs/ru/intlayer_with_vanilla.md +111 -3
- package/docs/ru/intlayer_with_vite+lit.md +113 -2
- package/docs/ru/intlayer_with_vite+preact.md +143 -34
- package/docs/ru/intlayer_with_vite+react.md +102 -14
- package/docs/ru/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/ru/intlayer_with_vite+solid.md +114 -2
- package/docs/ru/intlayer_with_vite+svelte.md +115 -12
- package/docs/ru/intlayer_with_vite+vanilla.md +119 -2
- package/docs/ru/intlayer_with_vite+vue.md +99 -3
- package/docs/ru/introduction.md +105 -2
- package/docs/ru/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ru/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ru/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/tr/analytics.md +488 -21
- package/docs/tr/cli/doc-review.md +0 -2
- package/docs/tr/configuration.md +98 -0
- package/docs/tr/dictionary/content_file.md +4 -4
- package/docs/tr/dictionary/markdown.md +3 -0
- package/docs/tr/dictionary/plurial.md +6 -3
- package/docs/tr/how_works_intlayer.md +92 -0
- package/docs/tr/interest_of_intlayer.md +96 -1
- package/docs/tr/intlayer_CMS.md +92 -0
- package/docs/tr/intlayer_visual_editor.md +87 -1
- package/docs/tr/intlayer_with_adonisjs.md +121 -0
- package/docs/tr/intlayer_with_analog.md +109 -1
- package/docs/tr/intlayer_with_angular_19.md +108 -1
- package/docs/tr/intlayer_with_angular_21.md +102 -1
- package/docs/tr/intlayer_with_astro.md +117 -27
- package/docs/tr/intlayer_with_astro_lit.md +111 -3
- package/docs/tr/intlayer_with_astro_preact.md +111 -3
- package/docs/tr/intlayer_with_astro_react.md +111 -3
- package/docs/tr/intlayer_with_astro_solid.md +111 -3
- package/docs/tr/intlayer_with_astro_svelte.md +111 -3
- package/docs/tr/intlayer_with_astro_vanilla.md +105 -3
- package/docs/tr/intlayer_with_astro_vue.md +111 -3
- package/docs/tr/intlayer_with_create_react_app.md +106 -1
- package/docs/tr/intlayer_with_elysia.md +121 -0
- package/docs/tr/intlayer_with_express.md +114 -0
- package/docs/tr/intlayer_with_fastify.md +115 -0
- package/docs/tr/intlayer_with_hono.md +114 -0
- package/docs/tr/intlayer_with_htmx.md +761 -0
- package/docs/tr/intlayer_with_lynx+react.md +0 -7
- package/docs/tr/intlayer_with_nestjs.md +115 -0
- package/docs/tr/intlayer_with_nextjs_14.md +125 -51
- package/docs/tr/intlayer_with_nextjs_15.md +119 -44
- package/docs/tr/intlayer_with_nextjs_16.md +120 -43
- package/docs/tr/intlayer_with_nextjs_compiler.md +121 -13
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/tr/intlayer_with_nextjs_page_router.md +124 -120
- package/docs/tr/intlayer_with_nuxt.md +103 -1
- package/docs/tr/intlayer_with_react_native+expo.md +102 -7
- package/docs/tr/intlayer_with_react_router_v7.md +112 -3
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +110 -3
- package/docs/tr/intlayer_with_solid_start.md +115 -1
- package/docs/tr/intlayer_with_storybook.md +0 -13
- package/docs/tr/intlayer_with_svelte_kit.md +98 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +117 -15
- package/docs/tr/intlayer_with_tanstack.md +259 -128
- package/docs/tr/intlayer_with_vanilla.md +110 -2
- package/docs/tr/intlayer_with_vite+lit.md +111 -1
- package/docs/tr/intlayer_with_vite+preact.md +141 -33
- package/docs/tr/intlayer_with_vite+react.md +100 -3
- package/docs/tr/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/tr/intlayer_with_vite+solid.md +112 -1
- package/docs/tr/intlayer_with_vite+svelte.md +111 -1
- package/docs/tr/intlayer_with_vite+vanilla.md +118 -1
- package/docs/tr/intlayer_with_vite+vue.md +99 -4
- package/docs/tr/introduction.md +104 -1
- package/docs/tr/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/tr/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/tr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/uk/analytics.md +488 -21
- package/docs/uk/configuration.md +98 -0
- package/docs/uk/dictionary/content_file.md +4 -4
- package/docs/uk/dictionary/markdown.md +3 -0
- package/docs/uk/dictionary/plurial.md +6 -3
- package/docs/uk/how_works_intlayer.md +92 -0
- package/docs/uk/interest_of_intlayer.md +96 -1
- package/docs/uk/intlayer_CMS.md +92 -0
- package/docs/uk/intlayer_visual_editor.md +87 -1
- package/docs/uk/intlayer_with_adonisjs.md +121 -0
- package/docs/uk/intlayer_with_analog.md +109 -1
- package/docs/uk/intlayer_with_angular_19.md +108 -1
- package/docs/uk/intlayer_with_angular_21.md +102 -1
- package/docs/uk/intlayer_with_astro.md +110 -13
- package/docs/uk/intlayer_with_astro_lit.md +111 -3
- package/docs/uk/intlayer_with_astro_preact.md +111 -3
- package/docs/uk/intlayer_with_astro_react.md +111 -3
- package/docs/uk/intlayer_with_astro_solid.md +111 -3
- package/docs/uk/intlayer_with_astro_svelte.md +111 -3
- package/docs/uk/intlayer_with_astro_vanilla.md +105 -3
- package/docs/uk/intlayer_with_astro_vue.md +111 -3
- package/docs/uk/intlayer_with_create_react_app.md +106 -1
- package/docs/uk/intlayer_with_elysia.md +121 -0
- package/docs/uk/intlayer_with_express.md +114 -0
- package/docs/uk/intlayer_with_fastify.md +115 -0
- package/docs/uk/intlayer_with_hono.md +114 -0
- package/docs/uk/intlayer_with_htmx.md +760 -0
- package/docs/uk/intlayer_with_lynx+react.md +0 -7
- package/docs/uk/intlayer_with_nestjs.md +115 -0
- package/docs/uk/intlayer_with_nextjs_14.md +119 -44
- package/docs/uk/intlayer_with_nextjs_15.md +133 -56
- package/docs/uk/intlayer_with_nextjs_16.md +121 -44
- package/docs/uk/intlayer_with_nextjs_compiler.md +122 -14
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/uk/intlayer_with_nextjs_page_router.md +111 -96
- package/docs/uk/intlayer_with_nuxt.md +103 -1
- package/docs/uk/intlayer_with_react_native+expo.md +102 -7
- package/docs/uk/intlayer_with_react_router_v7.md +112 -3
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +110 -3
- package/docs/uk/intlayer_with_solid_start.md +115 -1
- package/docs/uk/intlayer_with_storybook.md +0 -13
- package/docs/uk/intlayer_with_svelte_kit.md +98 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +117 -15
- package/docs/uk/intlayer_with_tanstack.md +235 -132
- package/docs/uk/intlayer_with_vanilla.md +110 -2
- package/docs/uk/intlayer_with_vite+lit.md +111 -1
- package/docs/uk/intlayer_with_vite+preact.md +167 -31
- package/docs/uk/intlayer_with_vite+react.md +101 -13
- package/docs/uk/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/uk/intlayer_with_vite+solid.md +112 -1
- package/docs/uk/intlayer_with_vite+svelte.md +111 -1
- package/docs/uk/intlayer_with_vite+vanilla.md +118 -1
- package/docs/uk/intlayer_with_vite+vue.md +97 -1
- package/docs/uk/introduction.md +104 -1
- package/docs/uk/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/uk/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/uk/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/uk/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/uk/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/uk/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ur/intlayer_with_storybook.md +0 -12
- package/docs/ur/intlayer_with_vanilla.md +2 -1
- package/docs/ur/introduction.md +0 -1
- package/docs/vi/analytics.md +488 -21
- package/docs/vi/configuration.md +98 -0
- package/docs/vi/dictionary/content_file.md +4 -4
- package/docs/vi/dictionary/markdown.md +3 -0
- package/docs/vi/dictionary/plurial.md +5 -2
- package/docs/vi/how_works_intlayer.md +92 -0
- package/docs/vi/interest_of_intlayer.md +96 -1
- package/docs/vi/intlayer_CMS.md +92 -0
- package/docs/vi/intlayer_visual_editor.md +87 -1
- package/docs/vi/intlayer_with_adonisjs.md +121 -0
- package/docs/vi/intlayer_with_analog.md +109 -1
- package/docs/vi/intlayer_with_angular_19.md +108 -1
- package/docs/vi/intlayer_with_angular_21.md +102 -1
- package/docs/vi/intlayer_with_astro.md +110 -13
- package/docs/vi/intlayer_with_astro_lit.md +111 -3
- package/docs/vi/intlayer_with_astro_preact.md +111 -3
- package/docs/vi/intlayer_with_astro_react.md +111 -3
- package/docs/vi/intlayer_with_astro_solid.md +111 -3
- package/docs/vi/intlayer_with_astro_svelte.md +111 -3
- package/docs/vi/intlayer_with_astro_vanilla.md +105 -3
- package/docs/vi/intlayer_with_astro_vue.md +111 -3
- package/docs/vi/intlayer_with_create_react_app.md +106 -1
- package/docs/vi/intlayer_with_elysia.md +121 -0
- package/docs/vi/intlayer_with_express.md +114 -0
- package/docs/vi/intlayer_with_fastify.md +115 -0
- package/docs/vi/intlayer_with_hono.md +114 -0
- package/docs/vi/intlayer_with_htmx.md +760 -0
- package/docs/vi/intlayer_with_lynx+react.md +0 -7
- package/docs/vi/intlayer_with_nestjs.md +115 -0
- package/docs/vi/intlayer_with_nextjs_14.md +133 -53
- package/docs/vi/intlayer_with_nextjs_15.md +133 -56
- package/docs/vi/intlayer_with_nextjs_16.md +121 -44
- package/docs/vi/intlayer_with_nextjs_compiler.md +122 -14
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/vi/intlayer_with_nextjs_page_router.md +111 -92
- package/docs/vi/intlayer_with_nuxt.md +103 -1
- package/docs/vi/intlayer_with_react_native+expo.md +102 -7
- package/docs/vi/intlayer_with_react_router_v7.md +112 -3
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +116 -16
- package/docs/vi/intlayer_with_solid_start.md +115 -1
- package/docs/vi/intlayer_with_storybook.md +0 -13
- package/docs/vi/intlayer_with_svelte_kit.md +98 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +117 -15
- package/docs/vi/intlayer_with_tanstack.md +249 -169
- package/docs/vi/intlayer_with_vanilla.md +110 -2
- package/docs/vi/intlayer_with_vite+lit.md +111 -1
- package/docs/vi/intlayer_with_vite+preact.md +147 -14
- package/docs/vi/intlayer_with_vite+react.md +101 -13
- package/docs/vi/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/vi/intlayer_with_vite+solid.md +112 -1
- package/docs/vi/intlayer_with_vite+svelte.md +111 -1
- package/docs/vi/intlayer_with_vite+vanilla.md +118 -1
- package/docs/vi/intlayer_with_vite+vue.md +97 -1
- package/docs/vi/introduction.md +104 -1
- package/docs/vi/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/vi/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/vi/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/vi/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/vi/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/vi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/zh/analytics.md +458 -12
- package/docs/zh/configuration.md +99 -1
- package/docs/zh/dictionary/content_file.md +4 -4
- package/docs/zh/dictionary/markdown.md +18 -1
- package/docs/zh/dictionary/plurial.md +6 -3
- package/docs/zh/how_works_intlayer.md +93 -1
- package/docs/zh/interest_of_intlayer.md +108 -13
- package/docs/zh/intlayer_CMS.md +93 -1
- package/docs/zh/intlayer_visual_editor.md +88 -2
- package/docs/zh/intlayer_with_adonisjs.md +121 -1
- package/docs/zh/intlayer_with_analog.md +118 -9
- package/docs/zh/intlayer_with_angular_19.md +117 -10
- package/docs/zh/intlayer_with_angular_21.md +110 -9
- package/docs/zh/intlayer_with_astro.md +108 -4
- package/docs/zh/intlayer_with_astro_lit.md +114 -7
- package/docs/zh/intlayer_with_astro_preact.md +114 -7
- package/docs/zh/intlayer_with_astro_react.md +114 -7
- package/docs/zh/intlayer_with_astro_solid.md +114 -7
- package/docs/zh/intlayer_with_astro_svelte.md +114 -7
- package/docs/zh/intlayer_with_astro_vanilla.md +108 -7
- package/docs/zh/intlayer_with_astro_vue.md +114 -7
- package/docs/zh/intlayer_with_create_react_app.md +110 -6
- package/docs/zh/intlayer_with_elysia.md +121 -1
- package/docs/zh/intlayer_with_express.md +115 -1
- package/docs/zh/intlayer_with_fastify.md +115 -1
- package/docs/zh/intlayer_with_hono.md +115 -1
- package/docs/zh/intlayer_with_htmx.md +769 -0
- package/docs/zh/intlayer_with_lynx+react.md +8 -13
- package/docs/zh/intlayer_with_nestjs.md +115 -1
- package/docs/zh/intlayer_with_nextjs_14.md +120 -45
- package/docs/zh/intlayer_with_nextjs_15.md +121 -44
- package/docs/zh/intlayer_with_nextjs_16.md +121 -42
- package/docs/zh/intlayer_with_nextjs_compiler.md +121 -14
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +122 -10
- package/docs/zh/intlayer_with_nextjs_page_router.md +110 -94
- package/docs/zh/intlayer_with_nuxt.md +111 -9
- package/docs/zh/intlayer_with_react_native+expo.md +103 -8
- package/docs/zh/intlayer_with_react_router_v7.md +131 -28
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +134 -30
- package/docs/zh/intlayer_with_solid_start.md +122 -7
- package/docs/zh/intlayer_with_storybook.md +7 -20
- package/docs/zh/intlayer_with_svelte_kit.md +106 -9
- package/docs/zh/intlayer_with_tanstack+solid.md +129 -29
- package/docs/zh/intlayer_with_tanstack.md +251 -191
- package/docs/zh/intlayer_with_vanilla.md +118 -10
- package/docs/zh/intlayer_with_vite+lit.md +121 -8
- package/docs/zh/intlayer_with_vite+preact.md +150 -41
- package/docs/zh/intlayer_with_vite+react.md +104 -12
- package/docs/zh/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/zh/intlayer_with_vite+solid.md +113 -2
- package/docs/zh/intlayer_with_vite+svelte.md +127 -14
- package/docs/zh/intlayer_with_vite+vanilla.md +126 -9
- package/docs/zh/intlayer_with_vite+vue.md +99 -3
- package/docs/zh/introduction.md +105 -2
- package/docs/zh/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/zh/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/zh/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/zh/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/zh/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/zh/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/zh/releases/v6.md +1 -1
- package/docs/zh-TW/introduction.md +0 -1
- package/package.json +7 -7
- package/src/common.ts +45 -18
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +20 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-25
|
|
3
|
-
updatedAt: 2026-08-
|
|
3
|
+
updatedAt: 2026-08-29
|
|
4
4
|
title: "TanStack Start + Solid i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) TanStack Start + Solid app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -50,7 +50,6 @@ This guide demonstrates how to integrate **Intlayer** for seamless international
|
|
|
50
50
|
Compared to main solutions like `react-i18next` or `i18next`, Intlayer is a solution that comes with integrated optimizations such as:
|
|
51
51
|
|
|
52
52
|
<AccordionGroup>
|
|
53
|
-
|
|
54
53
|
<Accordion header="Full TanStack Start coverage">
|
|
55
54
|
|
|
56
55
|
Intlayer is optimized to work perfectly with TanStack Start and Solid by offering **multilingual routing**, **sitemap**, and all the features needed for scaling internationalization (i18n).
|
|
@@ -572,8 +571,6 @@ const RootComponent: ParentComponent = (props) => {
|
|
|
572
571
|
};
|
|
573
572
|
```
|
|
574
573
|
|
|
575
|
-
---
|
|
576
|
-
|
|
577
574
|
</Step>
|
|
578
575
|
|
|
579
576
|
<Step number={11} title="Add middleware">
|
|
@@ -610,8 +607,6 @@ export default defineConfig({
|
|
|
610
607
|
});
|
|
611
608
|
```
|
|
612
609
|
|
|
613
|
-
---
|
|
614
|
-
|
|
615
610
|
</Step>
|
|
616
611
|
|
|
617
612
|
<Step number={12} title="Internationalize your Metadata">
|
|
@@ -805,8 +800,6 @@ You keep the per-locale chunk without paying its cost on the head critical path.
|
|
|
805
800
|
| Client navigations | nothing to resolve | re-entered on every match | served from the router cache |
|
|
806
801
|
| Developer experience | simplest | one `await` | content threaded through `loaderData` |
|
|
807
802
|
|
|
808
|
-
---
|
|
809
|
-
|
|
810
803
|
</Step>
|
|
811
804
|
|
|
812
805
|
<Step number={13} title="Retrieve the locale in your server actions">
|
|
@@ -844,8 +837,6 @@ export const getLocaleServer = createServerFn().handler(async () => {
|
|
|
844
837
|
});
|
|
845
838
|
```
|
|
846
839
|
|
|
847
|
-
---
|
|
848
|
-
|
|
849
840
|
</Step>
|
|
850
841
|
|
|
851
842
|
<Step number={14} title="Manage not found pages">
|
|
@@ -1037,8 +1028,6 @@ bun run build # Or bun run dev
|
|
|
1037
1028
|
</Tab>
|
|
1038
1029
|
</Tabs>
|
|
1039
1030
|
|
|
1040
|
-
---
|
|
1041
|
-
|
|
1042
1031
|
</Step>
|
|
1043
1032
|
|
|
1044
1033
|
<Step number={16} title="Pre-render & Generate Sitemap">
|
|
@@ -1112,8 +1101,6 @@ export const Route = createFileRoute("/sitemap.xml")({
|
|
|
1112
1101
|
});
|
|
1113
1102
|
```
|
|
1114
1103
|
|
|
1115
|
-
---
|
|
1116
|
-
|
|
1117
1104
|
</Step>
|
|
1118
1105
|
|
|
1119
1106
|
<Step number={17} title="Configure TypeScript">
|
|
@@ -1132,8 +1119,6 @@ Ensure your TypeScript configuration includes the autogenerated types:
|
|
|
1132
1119
|
}
|
|
1133
1120
|
```
|
|
1134
1121
|
|
|
1135
|
-
---
|
|
1136
|
-
|
|
1137
1122
|
</Step>
|
|
1138
1123
|
|
|
1139
1124
|
</Steps>
|
|
@@ -1182,3 +1167,122 @@ To go further, you can implement the [visual editor](https://github.com/aymericz
|
|
|
1182
1167
|
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/solid-intlayer/useLocale.md)
|
|
1183
1168
|
- [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
|
|
1184
1169
|
- [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
1170
|
+
|
|
1171
|
+
## Frequently Asked Questions
|
|
1172
|
+
|
|
1173
|
+
<FAQ>
|
|
1174
|
+
|
|
1175
|
+
<Question title="What are the different solutions available to internationalize a TanStack Start and Solid app?">
|
|
1176
|
+
|
|
1177
|
+
TanStack Start ships no i18n layer, and the Solid ecosystem options are thin:
|
|
1178
|
+
|
|
1179
|
+
- **`@solid-primitives/i18n`**: a flat dictionary you assemble and wire into the router yourself.
|
|
1180
|
+
- **`i18next`** with a Solid wrapper: mature catalogs, but no integration with the TanStack router, the `head` function or the pre-render pass.
|
|
1181
|
+
- **`Paraglide`**: compiled messages, focused on the message layer only.
|
|
1182
|
+
- **`Intlayer`**: the most advanced solution. Content declared anywhere in your codebase ([next to each component or centralized](https://intlayer.org/blog/per-component-vs-centralized-i18n)) and compiled at build time, with locale aware routing, sitemap generation, AI translation, a visual editor and a CMS.
|
|
1183
|
+
|
|
1184
|
+
See [why Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/interest_of_intlayer.md) and the [TanStack Start i18n benchmark](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/benchmark/tanstack.md).
|
|
1185
|
+
|
|
1186
|
+
</Question>
|
|
1187
|
+
|
|
1188
|
+
<Question title="How much does i18n add to my TanStack Start bundle size?">
|
|
1189
|
+
|
|
1190
|
+
Much less than a namespace based setup, because a page never downloads a catalog it does not render. Server rendered markup resolves its content on the server, and the build time compiler replaces `useIntlayer` calls with the exact dictionary entries a component uses, so unused keys and unused languages are dropped, and [dynamic dictionaries](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dynamic_dictionaries/index.md) split the rest per locale. Measured against the usual alternatives, Intlayer reduces bundle and page size by up to 50%. See [bundle optimization](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/bundle_optimization.md) and the [benchmark](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/benchmark/tanstack.md).
|
|
1191
|
+
|
|
1192
|
+
</Question>
|
|
1193
|
+
|
|
1194
|
+
<Question title="Can I migrate from `@solid-primitives/i18n` or `i18next` without rewriting my components?">
|
|
1195
|
+
|
|
1196
|
+
Largely. Follow the [i18next migration guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/migration_from_i18next_to_intlayer.md) to move the content over. You can also migrate gradually: the [sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-json.md) keeps your existing JSON catalogs as the source of truth and generates Intlayer dictionaries from them, so both layers stay in sync while you move components across one at a time.
|
|
1197
|
+
|
|
1198
|
+
</Question>
|
|
1199
|
+
|
|
1200
|
+
<Question title="Can I keep my existing JSON translation files?">
|
|
1201
|
+
|
|
1202
|
+
Yes. The [sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-json.md) keeps your `/messages/{locale}/{namespace}.json` files as the source of truth and generates Intlayer dictionaries from them, in both directions. A [sync PO plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-po.md) does the same for gettext catalogs, and [per locale files](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/per_locale_file.md) let you split content by language instead of grouping locales in one file.
|
|
1203
|
+
|
|
1204
|
+
</Question>
|
|
1205
|
+
|
|
1206
|
+
<Question title="Do I have to move my content key by key?">
|
|
1207
|
+
|
|
1208
|
+
No. Run `npx intlayer extract` and Intlayer reads your components, pulls the user facing strings out and writes a `.content` file next to each one, so you review a diff instead of copying strings into a catalog one at a time. Step 15 of this guide walks through it.
|
|
1209
|
+
|
|
1210
|
+
For a fully automated pipeline, the [Intlayer Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compiler.md) does the same at build time: it scans your JSX, TSX, Vue and Svelte source on every change, generates the dictionaries and keeps them in sync through hot module replacement, so there are no keys to maintain by hand at all.
|
|
1211
|
+
|
|
1212
|
+
Two limits are worth knowing before you turn the compiler on. It works by static analysis, so strings that only exist at runtime, such as API error codes or CMS fields, stay out of reach. And it has to tell user facing text apart from application logic like `className="active"` or a status code, which needs a few annotations in a large codebase. The [extract command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/extract.md) avoids both by keeping you in the loop.
|
|
1213
|
+
|
|
1214
|
+
</Question>
|
|
1215
|
+
|
|
1216
|
+
<Question title="What editor and AI agent tooling is available?">
|
|
1217
|
+
|
|
1218
|
+
Five pieces, all optional:
|
|
1219
|
+
|
|
1220
|
+
- **[VS Code extension](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/vs_code_extension.md)**: jump from a `useIntlayer` key to the content file that declares it, extract content from a component, and run build, fill, test, push and pull from the command palette or a dedicated Intlayer tab.
|
|
1221
|
+
- **[LSP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**: the same awareness in any editor that speaks LSP, with go to definition, find all references, hover previews of a translated value, autocompletion of keys and fields, and a warning when a key is not declared anywhere. It also resolves `i18next`, `react-i18next`, `next-intl` and `use-intl` calls, which helps while you migrate.
|
|
1222
|
+
- **[MCP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)**: exposes the Intlayer documentation and CLI to Cursor, VS Code, Claude Desktop, Claude Code and ChatGPT, so an assistant answers from current docs instead of guessing, and can run commands such as `intlayer fill` itself.
|
|
1223
|
+
- **[Agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/agent_skills.md)**: focused skills such as `intlayer-config`, `intlayer-cli` and `intlayer-content`, plus one per framework, that teach an agent your routing setup and the content node types.
|
|
1224
|
+
- **[ESLint plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/eslint.md)**: `no-raw-text` flags hardcoded strings, with further rules for static dictionary keys and unused content.
|
|
1225
|
+
|
|
1226
|
+
</Question>
|
|
1227
|
+
|
|
1228
|
+
<Question title="Does Intlayer support server side rendering and pre-rendering here?">
|
|
1229
|
+
|
|
1230
|
+
Yes. Content resolves during SSR, and step 16 covers the pre-render configuration that emits one static document per localized route, plus the localized sitemap generated from the same route table.
|
|
1231
|
+
|
|
1232
|
+
</Question>
|
|
1233
|
+
|
|
1234
|
+
<Question title="Does changing the locale re-render my whole app?">
|
|
1235
|
+
|
|
1236
|
+
No. Content is backed by Solid signals, so switching language updates only the DOM nodes that read the changed values.
|
|
1237
|
+
|
|
1238
|
+
</Question>
|
|
1239
|
+
|
|
1240
|
+
<Question title="How do I add hreflang tags and a localized sitemap?">
|
|
1241
|
+
|
|
1242
|
+
Use the built-in `generateSitemap` function in a `src/routes/sitemap[.]xml.ts` route. It emits the `xhtml:link` namespace, so every language version of a page links bidirectionally to the others. Localized `head` metadata is covered in step 12.
|
|
1243
|
+
|
|
1244
|
+
</Question>
|
|
1245
|
+
|
|
1246
|
+
<Question title="How do I handle 404 pages on localized routes?">
|
|
1247
|
+
|
|
1248
|
+
Step 14 covers it. `validatePrefix` tells you whether the locale segment of the URL is a declared locale, so `/xx/about` returns a real 404 instead of being indexed as a duplicate page.
|
|
1249
|
+
|
|
1250
|
+
</Question>
|
|
1251
|
+
|
|
1252
|
+
<Question title="Do I have to put the locale in the URL?">
|
|
1253
|
+
|
|
1254
|
+
No. `routing.mode` accepts `"prefix-no-default"` (the default), `"prefix-all"`, `"no-prefix"` and `"search-params"`, and `routing.domains` maps each locale to its own domain. See the [configuration reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
|
|
1255
|
+
|
|
1256
|
+
</Question>
|
|
1257
|
+
|
|
1258
|
+
<Question title="How do I build a locale switcher that keeps the current route?">
|
|
1259
|
+
|
|
1260
|
+
Step 9 shows the component. `useLocale` exposes the active locale, the available locales and a setter that persists the choice, while `getLocalizedUrl` rewrites the current path into the target language so the user stays on the same page.
|
|
1261
|
+
|
|
1262
|
+
</Question>
|
|
1263
|
+
|
|
1264
|
+
<Question title="How do I translate the app automatically with AI?">
|
|
1265
|
+
|
|
1266
|
+
Run `npx intlayer fill`. It fills missing translations with the LLM of your choice, using your own provider and API key, and `--git-diff` limits the run to the content changed on the branch. See the [fill command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/fill.md) and [CI/CD integration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/CI_CD.md).
|
|
1267
|
+
|
|
1268
|
+
</Question>
|
|
1269
|
+
|
|
1270
|
+
<Question title="Does Intlayer support plurals, gender and rich text?">
|
|
1271
|
+
|
|
1272
|
+
Yes: [plural forms](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/plurial.md), [gender based content](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/gender.md), conditions, [insertions](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/insertion.md), [Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/markdown.md) and [formatters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/formatters.md) for numbers, dates and currencies.
|
|
1273
|
+
|
|
1274
|
+
</Question>
|
|
1275
|
+
|
|
1276
|
+
<Question title="How can translators edit the content without touching the code?">
|
|
1277
|
+
|
|
1278
|
+
Through the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md), which runs on your own infrastructure and lets anyone edit text in place on the running app, or the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md), which externalizes content so it can change without a deployment.
|
|
1279
|
+
|
|
1280
|
+
</Question>
|
|
1281
|
+
|
|
1282
|
+
<Question title="Is Intlayer free and open source?">
|
|
1283
|
+
|
|
1284
|
+
Yes, under the Apache 2.0 license, commercial use included. The hosted CMS is an optional paid service that can also be [self hosted](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/self_hosting.md).
|
|
1285
|
+
|
|
1286
|
+
</Question>
|
|
1287
|
+
|
|
1288
|
+
</FAQ>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2026-08-
|
|
3
|
+
updatedAt: 2026-08-29
|
|
4
4
|
title: "TanStack Start i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) TanStack Start app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -67,7 +67,6 @@ This guide demonstrates how to integrate **Intlayer** for seamless international
|
|
|
67
67
|
Compared to main solutions like `react-i18next` or `use-intl`, or `paraglide`, Intlayer is a solution that comes with integrated optimizations such as:
|
|
68
68
|
|
|
69
69
|
<AccordionGroup>
|
|
70
|
-
|
|
71
70
|
<Accordion header="Full TanStack Start coverage">
|
|
72
71
|
|
|
73
72
|
Intlayer is fully optimized for TanStack Start, providing **multilingual routing**, **cookie management**, **sitemap generation**, **dynamic content loading**, and all the features needed to scale your internationalization (i18n) efforts.
|
|
@@ -654,8 +653,6 @@ function RootDocument({ children }: { children: ReactNode }) {
|
|
|
654
653
|
}
|
|
655
654
|
```
|
|
656
655
|
|
|
657
|
-
---
|
|
658
|
-
|
|
659
656
|
</Step>
|
|
660
657
|
|
|
661
658
|
<Step number={11} title="Add middleware">
|
|
@@ -692,8 +689,6 @@ export default defineConfig({
|
|
|
692
689
|
});
|
|
693
690
|
```
|
|
694
691
|
|
|
695
|
-
---
|
|
696
|
-
|
|
697
692
|
</Step>
|
|
698
693
|
|
|
699
694
|
<Step number={12} title="Internationalize your Metadata">
|
|
@@ -887,8 +882,6 @@ You keep the per-locale chunk without paying its cost on the head critical path.
|
|
|
887
882
|
| Client navigations | nothing to resolve | re-entered on every match | served from the router cache |
|
|
888
883
|
| Developer experience | simplest | one `await` | content threaded through `loaderData` |
|
|
889
884
|
|
|
890
|
-
---
|
|
891
|
-
|
|
892
885
|
</Step>
|
|
893
886
|
|
|
894
887
|
<Step number={13} title="Retrieve the locale in your server actions">
|
|
@@ -926,8 +919,6 @@ export const getLocaleServer = createServerFn().handler(async () => {
|
|
|
926
919
|
});
|
|
927
920
|
```
|
|
928
921
|
|
|
929
|
-
---
|
|
930
|
-
|
|
931
922
|
</Step>
|
|
932
923
|
|
|
933
924
|
<Step number={14} title="Manage not found pages">
|
|
@@ -1108,8 +1099,6 @@ bun run build # Or bun run dev
|
|
|
1108
1099
|
</Tab>
|
|
1109
1100
|
</Tabs>
|
|
1110
1101
|
|
|
1111
|
-
---
|
|
1112
|
-
|
|
1113
1102
|
</Step>
|
|
1114
1103
|
|
|
1115
1104
|
<Step number={16} title="Pre-render & Generate Sitemap">
|
|
@@ -1185,8 +1174,6 @@ export const Route = createFileRoute("/sitemap.xml")({
|
|
|
1185
1174
|
});
|
|
1186
1175
|
```
|
|
1187
1176
|
|
|
1188
|
-
---
|
|
1189
|
-
|
|
1190
1177
|
</Step>
|
|
1191
1178
|
|
|
1192
1179
|
<Step number={17} title="Configure TypeScript">
|
|
@@ -1205,8 +1192,6 @@ Ensure your TypeScript configuration includes the autogenerated types:
|
|
|
1205
1192
|
}
|
|
1206
1193
|
```
|
|
1207
1194
|
|
|
1208
|
-
---
|
|
1209
|
-
|
|
1210
1195
|
</Step>
|
|
1211
1196
|
|
|
1212
1197
|
</Steps>
|
|
@@ -1255,3 +1240,116 @@ To go further, you can implement the [visual editor](https://github.com/aymericz
|
|
|
1255
1240
|
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
|
|
1256
1241
|
- [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
|
|
1257
1242
|
- [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
1243
|
+
|
|
1244
|
+
## Frequently Asked Questions
|
|
1245
|
+
|
|
1246
|
+
<FAQ>
|
|
1247
|
+
|
|
1248
|
+
<Question title="What are the different solutions available to internationalize a TanStack Start app?">
|
|
1249
|
+
|
|
1250
|
+
TanStack Start ships no i18n layer of its own, so the choice is a library:
|
|
1251
|
+
|
|
1252
|
+
- **`i18next` / `react-i18next`** and **`react-intl`**: framework agnostic message catalogs, wired manually into the router.
|
|
1253
|
+
- **`Lingui`**: ICU messages with a compile step.
|
|
1254
|
+
- **`Paraglide`**: compiled messages, focused on the message layer only.
|
|
1255
|
+
- **`Intlayer`**: the most advanced solution. Content declared anywhere in your codebase ([next to each component or centralized](https://intlayer.org/blog/per-component-vs-centralized-i18n)) and compiled at build time, with typed keys, locale aware routing, sitemap generation, AI translation, a visual editor and a CMS.
|
|
1256
|
+
|
|
1257
|
+
The difference that matters on TanStack Start is routing and server rendering. Intlayer integrates with the file based router, the `head` function and the pre-render pass, instead of leaving you to assemble a provider, a locale detector and a sitemap by hand. See [why Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/interest_of_intlayer.md) and the [TanStack Start i18n benchmark](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/benchmark/tanstack.md).
|
|
1258
|
+
|
|
1259
|
+
</Question>
|
|
1260
|
+
|
|
1261
|
+
<Question title="How much does i18n add to my TanStack Start bundle size?">
|
|
1262
|
+
|
|
1263
|
+
Much less than a namespace based setup, because a page never downloads a catalog it does not render. Server rendered markup resolves its content on the server, and the build time compiler replaces `useIntlayer` calls with the exact dictionary entries a component uses, so unused keys and unused languages are dropped, and [dynamic dictionaries](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dynamic_dictionaries/index.md) split the rest per locale. Measured against the usual alternatives, Intlayer reduces bundle and page size by up to 50%. See [bundle optimization](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/bundle_optimization.md) and the [benchmark](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/benchmark/tanstack.md).
|
|
1264
|
+
|
|
1265
|
+
</Question>
|
|
1266
|
+
|
|
1267
|
+
<Question title="Can I migrate from `react-i18next` or `react-intl` without rewriting my components?">
|
|
1268
|
+
|
|
1269
|
+
Yes, and there are two paths. You can migrate the content progressively with the [react-i18next migration guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/migration_from_react-i18next_to_intlayer.md) or the [i18next migration guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/migration_from_i18next_to_intlayer.md). Or you can keep your current API entirely: the [compat adapters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md) expose the exact same API as `react-i18next`, `react-intl` and `i18next`, but served by Intlayer dictionaries, so imports change and component code does not.
|
|
1270
|
+
|
|
1271
|
+
</Question>
|
|
1272
|
+
|
|
1273
|
+
<Question title="Can I keep my existing JSON translation files?">
|
|
1274
|
+
|
|
1275
|
+
Yes. The [sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-json.md) keeps your `/messages/{locale}/{namespace}.json` files as the source of truth and generates Intlayer dictionaries from them, in both directions. A [sync PO plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-po.md) does the same for gettext catalogs, and [per locale files](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/per_locale_file.md) let you split content by language instead of grouping locales in one file.
|
|
1276
|
+
|
|
1277
|
+
</Question>
|
|
1278
|
+
|
|
1279
|
+
<Question title="Do I have to move my content key by key?">
|
|
1280
|
+
|
|
1281
|
+
No. Run `npx intlayer extract` and Intlayer reads your components, pulls the user facing strings out and writes a `.content` file next to each one, so you review a diff instead of copying strings into a catalog one at a time. Step 15 of this guide walks through it.
|
|
1282
|
+
|
|
1283
|
+
For a fully automated pipeline, the [Intlayer Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compiler.md) does the same at build time: it scans your JSX, TSX, Vue and Svelte source on every change, generates the dictionaries and keeps them in sync through hot module replacement, so there are no keys to maintain by hand at all.
|
|
1284
|
+
|
|
1285
|
+
Two limits are worth knowing before you turn the compiler on. It works by static analysis, so strings that only exist at runtime, such as API error codes or CMS fields, stay out of reach. And it has to tell user facing text apart from application logic like `className="active"` or a status code, which needs a few annotations in a large codebase. The [extract command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/extract.md) avoids both by keeping you in the loop.
|
|
1286
|
+
|
|
1287
|
+
</Question>
|
|
1288
|
+
|
|
1289
|
+
<Question title="What editor and AI agent tooling is available?">
|
|
1290
|
+
|
|
1291
|
+
Five pieces, all optional:
|
|
1292
|
+
|
|
1293
|
+
- **[VS Code extension](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/vs_code_extension.md)**: jump from a `useIntlayer` key to the content file that declares it, extract content from a component, and run build, fill, test, push and pull from the command palette or a dedicated Intlayer tab.
|
|
1294
|
+
- **[LSP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**: the same awareness in any editor that speaks LSP, with go to definition, find all references, hover previews of a translated value, autocompletion of keys and fields, and a warning when a key is not declared anywhere. It also resolves `i18next`, `react-i18next`, `next-intl` and `use-intl` calls, which helps while you migrate.
|
|
1295
|
+
- **[MCP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)**: exposes the Intlayer documentation and CLI to Cursor, VS Code, Claude Desktop, Claude Code and ChatGPT, so an assistant answers from current docs instead of guessing, and can run commands such as `intlayer fill` itself.
|
|
1296
|
+
- **[Agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/agent_skills.md)**: focused skills such as `intlayer-config`, `intlayer-cli` and `intlayer-content`, plus one per framework, that teach an agent your routing setup and the content node types.
|
|
1297
|
+
- **[ESLint plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/eslint.md)**: `no-raw-text` flags hardcoded strings, with further rules for static dictionary keys and unused content.
|
|
1298
|
+
|
|
1299
|
+
</Question>
|
|
1300
|
+
|
|
1301
|
+
<Question title="Does Intlayer support server side rendering and pre-rendering in TanStack Start?">
|
|
1302
|
+
|
|
1303
|
+
Yes. Content resolves during SSR, and the guide covers the pre-render configuration that emits one static document per localized route. Step 16 shows how to enable `prerender` in `vite.config.ts` and generate a localized sitemap from the same route table.
|
|
1304
|
+
|
|
1305
|
+
</Question>
|
|
1306
|
+
|
|
1307
|
+
<Question title="How do I add hreflang tags and a localized sitemap?">
|
|
1308
|
+
|
|
1309
|
+
Use the built-in `generateSitemap` function in a `src/routes/sitemap[.]xml.ts` route. Unlike a plain URL list, it emits the `xhtml:link` namespace, so every language version of a page links bidirectionally to the others and search engines index the right one for each audience. Localized `head` metadata is covered in step 12.
|
|
1310
|
+
|
|
1311
|
+
</Question>
|
|
1312
|
+
|
|
1313
|
+
<Question title="Do I have to put the locale in the URL?">
|
|
1314
|
+
|
|
1315
|
+
No. `routing.mode` controls the URL scheme: `"prefix-no-default"` (the default, `/about` and `/fr/about`), `"prefix-all"` (`/en/about`), `"no-prefix"` (resolved from cookie, header or domain) or `"search-params"` (`/about?locale=fr`). Locales can also be mapped to separate domains with `routing.domains`. See the [configuration reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
|
|
1316
|
+
|
|
1317
|
+
</Question>
|
|
1318
|
+
|
|
1319
|
+
<Question title="How do I build a locale switcher that keeps the current route?">
|
|
1320
|
+
|
|
1321
|
+
Use `useLocale` together with the localized link component described in step 9. `useLocale` exposes the active locale, the available locales and a setter that persists the choice, while `getLocalizedUrl` rewrites the current path into the target language so the user stays on the same page instead of landing on the home page.
|
|
1322
|
+
|
|
1323
|
+
</Question>
|
|
1324
|
+
|
|
1325
|
+
<Question title="How do I handle 404 pages on localized routes?">
|
|
1326
|
+
|
|
1327
|
+
Step 14 covers it. `validatePrefix` tells you whether the locale segment of the URL is a declared locale, so `/xx/about` returns a real 404 instead of being treated as a path. Without it, an unknown prefix silently resolves and search engines index a duplicate page.
|
|
1328
|
+
|
|
1329
|
+
</Question>
|
|
1330
|
+
|
|
1331
|
+
<Question title="How do I translate a TanStack Start app automatically with AI?">
|
|
1332
|
+
|
|
1333
|
+
Run `npx intlayer fill`. The CLI finds missing translations and fills them with the LLM of your choice, using your own provider and API key. Add `--git-diff` to translate only the content changed on the current branch, which keeps CI runs cheap. See the [fill command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/fill.md) and [CI/CD integration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/CI_CD.md).
|
|
1334
|
+
|
|
1335
|
+
</Question>
|
|
1336
|
+
|
|
1337
|
+
<Question title="Does Intlayer support plurals, gender and rich text?">
|
|
1338
|
+
|
|
1339
|
+
Yes. Content declarations support [plural forms](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/plurial.md), [gender based content](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/gender.md), conditions, [insertions](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/insertion.md) and [Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/markdown.md) for long form text, with [formatters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/formatters.md) for numbers, dates and currencies.
|
|
1340
|
+
|
|
1341
|
+
</Question>
|
|
1342
|
+
|
|
1343
|
+
<Question title="How can translators edit the content without touching the code?">
|
|
1344
|
+
|
|
1345
|
+
Through the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md), which runs on your own infrastructure and lets anyone edit text in place on the running site, or the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md), which externalizes content so it can change without a deployment.
|
|
1346
|
+
|
|
1347
|
+
</Question>
|
|
1348
|
+
|
|
1349
|
+
<Question title="Is Intlayer free and open source?">
|
|
1350
|
+
|
|
1351
|
+
Yes, under the Apache 2.0 license, commercial use included. The hosted CMS is an optional paid service that can also be [self hosted](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/self_hosting.md).
|
|
1352
|
+
|
|
1353
|
+
</Question>
|
|
1354
|
+
|
|
1355
|
+
</FAQ>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-03-31
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-08-29
|
|
4
4
|
title: "Vanilla JS i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) Vanilla JS app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -63,7 +63,6 @@ author: aymericzip
|
|
|
63
63
|
Compared to main solutions like `i18next` or `i18n.js`, Intlayer is a solution that comes with integrated optimizations such as:
|
|
64
64
|
|
|
65
65
|
<AccordionGroup>
|
|
66
|
-
|
|
67
66
|
<Accordion header="Full Vanilla JS coverage">
|
|
68
67
|
|
|
69
68
|
Intlayer is optimized to work perfectly with Vanilla JavaScript by offering **framework-agnostic content management**, **TypeScript support**, and all the features needed for scaling internationalization (i18n).
|
|
@@ -444,7 +443,8 @@ const unsubscribe = useDictionaryDynamic(
|
|
|
444
443
|
```
|
|
445
444
|
|
|
446
445
|
> Note: `useDictionaryDynamic` requires the dictionaries to be available as separate ESM files. This approach is typically used if you have a web server serving the dictionaries.
|
|
447
|
-
|
|
446
|
+
|
|
447
|
+
</Step>
|
|
448
448
|
|
|
449
449
|
</Steps>
|
|
450
450
|
|
|
@@ -481,3 +481,111 @@ For more details on how to use the extension, refer to the [Intlayer VS Code Ext
|
|
|
481
481
|
### Go Further
|
|
482
482
|
|
|
483
483
|
To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) or externalize your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
|
|
484
|
+
|
|
485
|
+
## Frequently Asked Questions
|
|
486
|
+
|
|
487
|
+
<FAQ>
|
|
488
|
+
|
|
489
|
+
<Question title="Can I use Intlayer without a bundler or a framework?">
|
|
490
|
+
|
|
491
|
+
Yes. That is what this guide covers. You import the `vanilla-intlayer` bundle directly in your HTML as step 3 shows, bootstrap it in your entry point, and read your content with `useIntlayer`. No Vite, no webpack and no build pipeline is required.
|
|
492
|
+
|
|
493
|
+
</Question>
|
|
494
|
+
|
|
495
|
+
<Question title="How much does i18n add to my page weight?">
|
|
496
|
+
|
|
497
|
+
Much less than a runtime catalog, because a page never downloads a language it does not render. Content is resolved from dictionaries compiled ahead of time, and lazy loading per locale keeps the other languages out of the initial payload until the visitor switches. Measured against the usual alternatives, Intlayer reduces bundle and page size by up to 50%. See [bundle optimization](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/bundle_optimization.md), [dynamic dictionaries](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dynamic_dictionaries/index.md) and the [benchmark](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/benchmark/index.md).
|
|
498
|
+
|
|
499
|
+
</Question>
|
|
500
|
+
|
|
501
|
+
<Question title="Can I migrate from `i18next` without rewriting my scripts?">
|
|
502
|
+
|
|
503
|
+
Largely. Follow the [i18next migration guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/migration_from_i18next_to_intlayer.md) to move the content over. You can also migrate gradually: the [sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-json.md) keeps your existing JSON catalogs as the source of truth and generates Intlayer dictionaries from them, so both layers stay in sync while you move scripts across one at a time.
|
|
504
|
+
|
|
505
|
+
</Question>
|
|
506
|
+
|
|
507
|
+
<Question title="Can I keep my existing JSON translation files?">
|
|
508
|
+
|
|
509
|
+
Yes. The [sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-json.md) keeps your `/messages/{locale}/{namespace}.json` files as the source of truth and generates Intlayer dictionaries from them, in both directions. A [sync PO plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/plugins/sync-po.md) does the same for gettext catalogs, and [per locale files](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/per_locale_file.md) let you split content by language instead of grouping locales in one file.
|
|
510
|
+
|
|
511
|
+
</Question>
|
|
512
|
+
|
|
513
|
+
<Question title="Do I have to move my content key by key?">
|
|
514
|
+
|
|
515
|
+
No. Run `npx intlayer extract` and Intlayer reads your source files, pulls the user facing strings out and writes a `.content` file next to each one, so you review a diff instead of copying strings into a catalog one at a time. See the [extract command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/extract.md).
|
|
516
|
+
|
|
517
|
+
For a fully automated pipeline, the [Intlayer Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compiler.md) does the same at build time on JSX, TSX, Vue and Svelte source, generating the dictionaries on every change so there are no keys to maintain by hand. It works by static analysis, so strings that only exist at runtime stay out of reach, and it needs a few annotations to tell user facing text apart from application logic.
|
|
518
|
+
|
|
519
|
+
</Question>
|
|
520
|
+
|
|
521
|
+
<Question title="What editor and AI agent tooling is available?">
|
|
522
|
+
|
|
523
|
+
Five pieces, all optional:
|
|
524
|
+
|
|
525
|
+
- **[VS Code extension](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/vs_code_extension.md)**: jump from a `useIntlayer` key to the content file that declares it, extract content from a component, and run build, fill, test, push and pull from the command palette or a dedicated Intlayer tab.
|
|
526
|
+
- **[LSP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**: the same awareness in any editor that speaks LSP, with go to definition, find all references, hover previews of a translated value, autocompletion of keys and fields, and a warning when a key is not declared anywhere. It also resolves `i18next`, `react-i18next`, `next-intl` and `use-intl` calls, which helps while you migrate.
|
|
527
|
+
- **[MCP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)**: exposes the Intlayer documentation and CLI to Cursor, VS Code, Claude Desktop, Claude Code and ChatGPT, so an assistant answers from current docs instead of guessing, and can run commands such as `intlayer fill` itself.
|
|
528
|
+
- **[Agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/agent_skills.md)**: focused skills such as `intlayer-config`, `intlayer-cli` and `intlayer-content`, plus one per framework, that teach an agent your routing setup and the content node types.
|
|
529
|
+
- **[ESLint plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/eslint.md)**: `no-raw-text` flags hardcoded strings, with further rules for static dictionary keys and unused content.
|
|
530
|
+
|
|
531
|
+
</Question>
|
|
532
|
+
|
|
533
|
+
<Question title="What are the different solutions available to internationalize a plain JavaScript site?">
|
|
534
|
+
|
|
535
|
+
- **A hand written dictionary object**, usually one JSON file per language loaded with `fetch`: no dependency, but no typing, no plural rules, and nothing that tells you a translation is missing.
|
|
536
|
+
- **`i18next`** from a CDN: mature and framework agnostic, with a plugin ecosystem, but it adds a runtime and its own catalog loading.
|
|
537
|
+
- **`Intlayer`**: declared content with plural and gender rules, locale detection, right to left support and lazy loading per locale, plus a CLI that fills missing translations with AI and a visual editor for non developers.
|
|
538
|
+
|
|
539
|
+
See [why Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/interest_of_intlayer.md).
|
|
540
|
+
|
|
541
|
+
</Question>
|
|
542
|
+
|
|
543
|
+
<Question title="How do I read a translation and put it in the DOM?">
|
|
544
|
+
|
|
545
|
+
Call `useIntlayer` with your dictionary key and write the value into the node yourself, as step 6 shows. Because there is no framework, nothing re-renders on its own: you update the nodes when the locale changes, which step 7 covers.
|
|
546
|
+
|
|
547
|
+
</Question>
|
|
548
|
+
|
|
549
|
+
<Question title="How is the visitor's language detected?">
|
|
550
|
+
|
|
551
|
+
From the sources listed in `routing.storage`, typically a cookie first, then the `Accept-Language` header, falling back to your default locale. A language the visitor picks explicitly is persisted, so it survives the next visit. See the [configuration reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
|
|
552
|
+
|
|
553
|
+
</Question>
|
|
554
|
+
|
|
555
|
+
<Question title="How do I support right to left languages such as Arabic or Hebrew?">
|
|
556
|
+
|
|
557
|
+
Step 8 covers it. `getHTMLTextDir` returns `ltr`, `rtl` or `auto` for a locale, so you set `lang` and `dir` on the `html` element from the active locale and let your CSS logical properties do the rest.
|
|
558
|
+
|
|
559
|
+
</Question>
|
|
560
|
+
|
|
561
|
+
<Question title="Do visitors download every language?">
|
|
562
|
+
|
|
563
|
+
Not if you do not want them to. Step 9 covers lazy loading dictionaries per locale, so the page loads one language and fetches another only when the visitor switches. See [dynamic dictionaries](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dynamic_dictionaries/index.md).
|
|
564
|
+
|
|
565
|
+
</Question>
|
|
566
|
+
|
|
567
|
+
<Question title="How do I translate the app automatically with AI?">
|
|
568
|
+
|
|
569
|
+
Run `npx intlayer fill`. It fills missing translations with the LLM of your choice, using your own provider and API key, and `--git-diff` limits the run to the content changed on the branch. See the [fill command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/fill.md) and [CI/CD integration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/CI_CD.md).
|
|
570
|
+
|
|
571
|
+
</Question>
|
|
572
|
+
|
|
573
|
+
<Question title="Does Intlayer support plurals, gender and rich text?">
|
|
574
|
+
|
|
575
|
+
Yes: [plural forms](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/plurial.md), [gender based content](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/gender.md), conditions, [insertions](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/insertion.md), [Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/markdown.md) and [formatters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/formatters.md) for numbers, dates and currencies.
|
|
576
|
+
|
|
577
|
+
</Question>
|
|
578
|
+
|
|
579
|
+
<Question title="How can translators edit the content without touching the code?">
|
|
580
|
+
|
|
581
|
+
Through the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md), which runs on your own infrastructure and lets anyone edit text in place on the running app, or the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md), which externalizes content so it can change without a deployment.
|
|
582
|
+
|
|
583
|
+
</Question>
|
|
584
|
+
|
|
585
|
+
<Question title="Is Intlayer free and open source?">
|
|
586
|
+
|
|
587
|
+
Yes, under the Apache 2.0 license, commercial use included. The hosted CMS is an optional paid service that can also be [self hosted](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/self_hosting.md).
|
|
588
|
+
|
|
589
|
+
</Question>
|
|
590
|
+
|
|
591
|
+
</FAQ>
|