@intlayer/docs 9.5.5 → 9.5.6
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 +0 -1
- package/blog/ar/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/de/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/en/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/en-GB/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/es/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/fr/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/hi/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/id/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/it/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/ja/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/ko/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/pl/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/pt/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/ru/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/tr/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/uk/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/vi/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/blog/zh/transform_existing_vite_react_app_using_compiler.md +4 -2
- package/docs/ar/intlayer_with_astro.md +19 -32
- package/docs/ar/intlayer_with_astro_lit.md +32 -36
- package/docs/ar/intlayer_with_astro_preact.md +32 -36
- package/docs/ar/intlayer_with_astro_react.md +32 -36
- package/docs/ar/intlayer_with_astro_solid.md +32 -36
- package/docs/ar/intlayer_with_astro_svelte.md +32 -36
- package/docs/ar/intlayer_with_astro_vue.md +32 -36
- package/docs/ar/intlayer_with_react_router_v7.md +12 -1
- package/docs/ar/intlayer_with_solid_start.md +14 -7
- package/docs/ar/intlayer_with_svelte_kit.md +12 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ar/intlayer_with_tanstack.md +13 -6
- package/docs/ar/intlayer_with_vite+lit.md +75 -3
- package/docs/ar/intlayer_with_vite+preact.md +27 -19
- package/docs/ar/intlayer_with_vite+react.md +27 -19
- package/docs/ar/intlayer_with_vite+solid.md +27 -19
- package/docs/ar/intlayer_with_vite+svelte.md +27 -19
- package/docs/ar/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ar/intlayer_with_vite+vue.md +27 -19
- package/docs/ar/introduction.md +0 -1
- package/docs/ar/readme.md +0 -1
- package/docs/ar/releases/v8.md +1 -5
- package/docs/bn/intlayer_with_vite+lit.md +75 -3
- package/docs/bn/intlayer_with_vite+vanilla.md +16 -3
- package/docs/bn/introduction.md +0 -1
- package/docs/cs/intlayer_with_vite+lit.md +75 -3
- package/docs/cs/intlayer_with_vite+vanilla.md +16 -3
- package/docs/cs/introduction.md +0 -1
- package/docs/de/intlayer_with_astro.md +12 -25
- package/docs/de/intlayer_with_astro_lit.md +23 -27
- package/docs/de/intlayer_with_astro_preact.md +23 -27
- package/docs/de/intlayer_with_astro_react.md +23 -27
- package/docs/de/intlayer_with_astro_solid.md +23 -27
- package/docs/de/intlayer_with_astro_svelte.md +23 -27
- package/docs/de/intlayer_with_astro_vue.md +23 -27
- package/docs/de/intlayer_with_react_router_v7.md +12 -1
- package/docs/de/intlayer_with_solid_start.md +14 -7
- package/docs/de/intlayer_with_svelte_kit.md +12 -1
- package/docs/de/intlayer_with_tanstack+solid.md +13 -2
- package/docs/de/intlayer_with_tanstack.md +13 -6
- package/docs/de/intlayer_with_vite+lit.md +75 -3
- package/docs/de/intlayer_with_vite+preact.md +16 -3
- package/docs/de/intlayer_with_vite+react.md +16 -3
- package/docs/de/intlayer_with_vite+solid.md +16 -3
- package/docs/de/intlayer_with_vite+svelte.md +16 -3
- package/docs/de/intlayer_with_vite+vanilla.md +16 -3
- package/docs/de/intlayer_with_vite+vue.md +16 -3
- package/docs/de/introduction.md +0 -1
- package/docs/de/readme.md +0 -1
- package/docs/de/releases/v8.md +1 -5
- package/docs/en/intlayer_with_astro.md +5 -20
- package/docs/en/intlayer_with_astro_lit.md +22 -26
- package/docs/en/intlayer_with_astro_preact.md +22 -26
- package/docs/en/intlayer_with_astro_react.md +22 -26
- package/docs/en/intlayer_with_astro_solid.md +22 -26
- package/docs/en/intlayer_with_astro_svelte.md +22 -26
- package/docs/en/intlayer_with_astro_vanilla.md +20 -13
- package/docs/en/intlayer_with_astro_vue.md +22 -26
- package/docs/en/intlayer_with_react_router_v7.md +12 -1
- package/docs/en/intlayer_with_solid_start.md +14 -7
- package/docs/en/intlayer_with_svelte_kit.md +12 -1
- package/docs/en/intlayer_with_tanstack+solid.md +13 -2
- package/docs/en/intlayer_with_tanstack.md +12 -5
- package/docs/en/intlayer_with_vite+lit.md +75 -3
- package/docs/en/intlayer_with_vite+preact.md +16 -3
- package/docs/en/intlayer_with_vite+react.md +16 -3
- package/docs/en/intlayer_with_vite+solid.md +16 -3
- package/docs/en/intlayer_with_vite+svelte.md +16 -3
- package/docs/en/intlayer_with_vite+vanilla.md +16 -3
- package/docs/en/intlayer_with_vite+vue.md +16 -3
- package/docs/en/introduction.md +0 -1
- package/docs/en/readme.md +0 -1
- package/docs/en/releases/v8.md +1 -5
- package/docs/en-GB/intlayer_with_astro.md +12 -25
- package/docs/en-GB/intlayer_with_astro_lit.md +23 -27
- package/docs/en-GB/intlayer_with_astro_preact.md +23 -27
- package/docs/en-GB/intlayer_with_astro_react.md +23 -27
- package/docs/en-GB/intlayer_with_astro_solid.md +23 -27
- package/docs/en-GB/intlayer_with_astro_svelte.md +23 -27
- package/docs/en-GB/intlayer_with_astro_vue.md +23 -27
- package/docs/en-GB/intlayer_with_react_router_v7.md +12 -1
- package/docs/en-GB/intlayer_with_solid_start.md +14 -7
- package/docs/en-GB/intlayer_with_svelte_kit.md +12 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +13 -2
- package/docs/en-GB/intlayer_with_tanstack.md +13 -6
- package/docs/en-GB/intlayer_with_vite+lit.md +75 -3
- package/docs/en-GB/intlayer_with_vite+preact.md +16 -3
- package/docs/en-GB/intlayer_with_vite+react.md +16 -3
- package/docs/en-GB/intlayer_with_vite+solid.md +25 -15
- package/docs/en-GB/intlayer_with_vite+svelte.md +16 -3
- package/docs/en-GB/intlayer_with_vite+vanilla.md +16 -3
- package/docs/en-GB/intlayer_with_vite+vue.md +16 -3
- package/docs/en-GB/introduction.md +0 -1
- package/docs/en-GB/readme.md +0 -1
- package/docs/en-GB/releases/v8.md +1 -5
- package/docs/es/intlayer_with_astro.md +12 -25
- package/docs/es/intlayer_with_astro_lit.md +23 -27
- package/docs/es/intlayer_with_astro_preact.md +23 -27
- package/docs/es/intlayer_with_astro_react.md +23 -27
- package/docs/es/intlayer_with_astro_solid.md +23 -27
- package/docs/es/intlayer_with_astro_svelte.md +23 -27
- package/docs/es/intlayer_with_astro_vue.md +23 -27
- package/docs/es/intlayer_with_react_router_v7.md +12 -1
- package/docs/es/intlayer_with_solid_start.md +14 -7
- package/docs/es/intlayer_with_svelte_kit.md +12 -1
- package/docs/es/intlayer_with_tanstack+solid.md +13 -2
- package/docs/es/intlayer_with_tanstack.md +13 -6
- package/docs/es/intlayer_with_vite+lit.md +75 -3
- package/docs/es/intlayer_with_vite+preact.md +16 -3
- package/docs/es/intlayer_with_vite+react.md +16 -3
- package/docs/es/intlayer_with_vite+solid.md +16 -3
- package/docs/es/intlayer_with_vite+svelte.md +16 -3
- package/docs/es/intlayer_with_vite+vanilla.md +16 -3
- package/docs/es/intlayer_with_vite+vue.md +16 -3
- package/docs/es/introduction.md +0 -1
- package/docs/es/readme.md +0 -1
- package/docs/es/releases/v8.md +1 -5
- package/docs/fr/intlayer_with_astro.md +13 -26
- package/docs/fr/intlayer_with_astro_lit.md +24 -28
- package/docs/fr/intlayer_with_astro_preact.md +24 -28
- package/docs/fr/intlayer_with_astro_react.md +24 -28
- package/docs/fr/intlayer_with_astro_solid.md +24 -28
- package/docs/fr/intlayer_with_astro_svelte.md +24 -28
- package/docs/fr/intlayer_with_astro_vue.md +24 -28
- package/docs/fr/intlayer_with_react_router_v7.md +15 -4
- package/docs/fr/intlayer_with_solid_start.md +14 -7
- package/docs/fr/intlayer_with_svelte_kit.md +15 -4
- package/docs/fr/intlayer_with_tanstack+solid.md +15 -4
- package/docs/fr/intlayer_with_tanstack.md +13 -6
- package/docs/fr/intlayer_with_vite+lit.md +75 -3
- package/docs/fr/intlayer_with_vite+preact.md +19 -6
- package/docs/fr/intlayer_with_vite+react.md +19 -6
- package/docs/fr/intlayer_with_vite+solid.md +19 -6
- package/docs/fr/intlayer_with_vite+svelte.md +19 -6
- package/docs/fr/intlayer_with_vite+vanilla.md +19 -6
- package/docs/fr/intlayer_with_vite+vue.md +19 -6
- package/docs/fr/introduction.md +0 -1
- package/docs/fr/readme.md +0 -1
- package/docs/fr/releases/v8.md +1 -5
- package/docs/hi/intlayer_with_astro.md +15 -31
- package/docs/hi/intlayer_with_astro_lit.md +26 -33
- package/docs/hi/intlayer_with_astro_preact.md +26 -33
- package/docs/hi/intlayer_with_astro_react.md +26 -33
- package/docs/hi/intlayer_with_astro_solid.md +26 -33
- package/docs/hi/intlayer_with_astro_svelte.md +26 -33
- package/docs/hi/intlayer_with_astro_vue.md +26 -33
- package/docs/hi/intlayer_with_react_router_v7.md +20 -12
- package/docs/hi/intlayer_with_solid_start.md +14 -7
- package/docs/hi/intlayer_with_svelte_kit.md +20 -12
- package/docs/hi/intlayer_with_tanstack+solid.md +13 -2
- package/docs/hi/intlayer_with_tanstack.md +21 -17
- package/docs/hi/intlayer_with_vite+lit.md +75 -3
- package/docs/hi/intlayer_with_vite+preact.md +24 -14
- package/docs/hi/intlayer_with_vite+react.md +24 -14
- package/docs/hi/intlayer_with_vite+solid.md +24 -14
- package/docs/hi/intlayer_with_vite+svelte.md +24 -14
- package/docs/hi/intlayer_with_vite+vanilla.md +16 -3
- package/docs/hi/intlayer_with_vite+vue.md +24 -14
- package/docs/hi/introduction.md +0 -1
- package/docs/hi/readme.md +0 -1
- package/docs/hi/releases/v8.md +1 -5
- package/docs/id/intlayer_with_astro.md +12 -25
- package/docs/id/intlayer_with_astro_lit.md +23 -27
- package/docs/id/intlayer_with_astro_preact.md +23 -27
- package/docs/id/intlayer_with_astro_react.md +23 -27
- package/docs/id/intlayer_with_astro_solid.md +23 -27
- package/docs/id/intlayer_with_astro_svelte.md +23 -27
- package/docs/id/intlayer_with_astro_vue.md +23 -27
- package/docs/id/intlayer_with_react_router_v7.md +12 -1
- package/docs/id/intlayer_with_solid_start.md +14 -7
- package/docs/id/intlayer_with_svelte_kit.md +12 -1
- package/docs/id/intlayer_with_tanstack+solid.md +13 -2
- package/docs/id/intlayer_with_tanstack.md +13 -6
- package/docs/id/intlayer_with_vite+lit.md +75 -3
- package/docs/id/intlayer_with_vite+preact.md +16 -3
- package/docs/id/intlayer_with_vite+react.md +16 -3
- package/docs/id/intlayer_with_vite+solid.md +16 -3
- package/docs/id/intlayer_with_vite+svelte.md +16 -3
- package/docs/id/intlayer_with_vite+vanilla.md +16 -3
- package/docs/id/intlayer_with_vite+vue.md +16 -3
- package/docs/id/introduction.md +0 -1
- package/docs/id/readme.md +0 -1
- package/docs/id/releases/v8.md +1 -5
- package/docs/it/intlayer_with_astro.md +12 -25
- package/docs/it/intlayer_with_astro_lit.md +23 -27
- package/docs/it/intlayer_with_astro_preact.md +23 -27
- package/docs/it/intlayer_with_astro_react.md +23 -27
- package/docs/it/intlayer_with_astro_solid.md +23 -27
- package/docs/it/intlayer_with_astro_svelte.md +23 -27
- package/docs/it/intlayer_with_astro_vue.md +23 -27
- package/docs/it/intlayer_with_react_router_v7.md +12 -1
- package/docs/it/intlayer_with_solid_start.md +14 -7
- package/docs/it/intlayer_with_svelte_kit.md +12 -1
- package/docs/it/intlayer_with_tanstack+solid.md +13 -2
- package/docs/it/intlayer_with_tanstack.md +13 -6
- package/docs/it/intlayer_with_vite+lit.md +75 -3
- package/docs/it/intlayer_with_vite+preact.md +16 -3
- package/docs/it/intlayer_with_vite+react.md +16 -3
- package/docs/it/intlayer_with_vite+solid.md +16 -3
- package/docs/it/intlayer_with_vite+svelte.md +16 -3
- package/docs/it/intlayer_with_vite+vanilla.md +16 -3
- package/docs/it/intlayer_with_vite+vue.md +16 -3
- package/docs/it/introduction.md +0 -1
- package/docs/it/readme.md +0 -1
- package/docs/it/releases/v8.md +1 -5
- package/docs/ja/intlayer_with_astro.md +12 -25
- package/docs/ja/intlayer_with_astro_lit.md +23 -27
- package/docs/ja/intlayer_with_astro_preact.md +23 -27
- package/docs/ja/intlayer_with_astro_react.md +23 -27
- package/docs/ja/intlayer_with_astro_solid.md +23 -27
- package/docs/ja/intlayer_with_astro_svelte.md +23 -27
- package/docs/ja/intlayer_with_astro_vue.md +23 -27
- package/docs/ja/intlayer_with_react_router_v7.md +12 -1
- package/docs/ja/intlayer_with_solid_start.md +14 -7
- package/docs/ja/intlayer_with_svelte_kit.md +21 -15
- package/docs/ja/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ja/intlayer_with_tanstack.md +13 -6
- package/docs/ja/intlayer_with_vite+lit.md +75 -3
- package/docs/ja/intlayer_with_vite+preact.md +16 -3
- package/docs/ja/intlayer_with_vite+react.md +16 -3
- package/docs/ja/intlayer_with_vite+solid.md +16 -3
- package/docs/ja/intlayer_with_vite+svelte.md +16 -3
- package/docs/ja/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ja/intlayer_with_vite+vue.md +16 -3
- package/docs/ja/introduction.md +0 -1
- package/docs/ja/readme.md +0 -1
- package/docs/ja/releases/v8.md +1 -5
- package/docs/ko/intlayer_with_astro.md +6 -21
- package/docs/ko/intlayer_with_astro_lit.md +23 -27
- package/docs/ko/intlayer_with_astro_preact.md +23 -27
- package/docs/ko/intlayer_with_astro_react.md +23 -27
- package/docs/ko/intlayer_with_astro_solid.md +23 -27
- package/docs/ko/intlayer_with_astro_svelte.md +23 -27
- package/docs/ko/intlayer_with_astro_vue.md +23 -27
- package/docs/ko/intlayer_with_react_router_v7.md +12 -1
- package/docs/ko/intlayer_with_solid_start.md +14 -7
- package/docs/ko/intlayer_with_svelte_kit.md +12 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ko/intlayer_with_tanstack.md +13 -6
- package/docs/ko/intlayer_with_vite+lit.md +75 -3
- package/docs/ko/intlayer_with_vite+preact.md +16 -3
- package/docs/ko/intlayer_with_vite+react.md +16 -3
- package/docs/ko/intlayer_with_vite+solid.md +26 -16
- package/docs/ko/intlayer_with_vite+svelte.md +16 -3
- package/docs/ko/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ko/intlayer_with_vite+vue.md +16 -3
- package/docs/ko/introduction.md +0 -1
- package/docs/ko/readme.md +0 -1
- package/docs/ko/releases/v8.md +1 -5
- package/docs/nl/intlayer_with_vite+lit.md +75 -3
- package/docs/nl/intlayer_with_vite+vanilla.md +16 -3
- package/docs/nl/introduction.md +0 -1
- package/docs/pl/intlayer_with_astro.md +6 -21
- package/docs/pl/intlayer_with_astro_lit.md +23 -27
- package/docs/pl/intlayer_with_astro_preact.md +23 -27
- package/docs/pl/intlayer_with_astro_react.md +23 -27
- package/docs/pl/intlayer_with_astro_solid.md +23 -27
- package/docs/pl/intlayer_with_astro_svelte.md +23 -27
- package/docs/pl/intlayer_with_astro_vue.md +23 -27
- package/docs/pl/intlayer_with_react_router_v7.md +12 -1
- package/docs/pl/intlayer_with_solid_start.md +14 -7
- package/docs/pl/intlayer_with_svelte_kit.md +12 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +13 -2
- package/docs/pl/intlayer_with_tanstack.md +13 -6
- package/docs/pl/intlayer_with_vite+lit.md +75 -3
- package/docs/pl/intlayer_with_vite+preact.md +16 -3
- package/docs/pl/intlayer_with_vite+react.md +16 -3
- package/docs/pl/intlayer_with_vite+solid.md +16 -3
- package/docs/pl/intlayer_with_vite+svelte.md +16 -3
- package/docs/pl/intlayer_with_vite+vanilla.md +16 -3
- package/docs/pl/intlayer_with_vite+vue.md +16 -3
- package/docs/pl/introduction.md +0 -1
- package/docs/pl/readme.md +0 -1
- package/docs/pl/releases/v8.md +1 -5
- package/docs/pt/intlayer_with_astro.md +6 -21
- package/docs/pt/intlayer_with_astro_lit.md +23 -27
- package/docs/pt/intlayer_with_astro_preact.md +23 -27
- package/docs/pt/intlayer_with_astro_react.md +23 -27
- package/docs/pt/intlayer_with_astro_solid.md +23 -27
- package/docs/pt/intlayer_with_astro_svelte.md +23 -27
- package/docs/pt/intlayer_with_astro_vue.md +23 -27
- package/docs/pt/intlayer_with_react_router_v7.md +12 -1
- package/docs/pt/intlayer_with_solid_start.md +14 -7
- package/docs/pt/intlayer_with_svelte_kit.md +12 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +13 -2
- package/docs/pt/intlayer_with_tanstack.md +13 -6
- package/docs/pt/intlayer_with_vite+lit.md +75 -3
- package/docs/pt/intlayer_with_vite+preact.md +16 -3
- package/docs/pt/intlayer_with_vite+react.md +16 -3
- package/docs/pt/intlayer_with_vite+solid.md +16 -3
- package/docs/pt/intlayer_with_vite+svelte.md +16 -3
- package/docs/pt/intlayer_with_vite+vanilla.md +16 -3
- package/docs/pt/intlayer_with_vite+vue.md +16 -3
- package/docs/pt/introduction.md +0 -1
- package/docs/pt/readme.md +0 -1
- package/docs/pt/releases/v8.md +1 -5
- package/docs/ru/intlayer_with_astro.md +12 -25
- package/docs/ru/intlayer_with_astro_lit.md +23 -27
- package/docs/ru/intlayer_with_astro_preact.md +23 -27
- package/docs/ru/intlayer_with_astro_react.md +23 -27
- package/docs/ru/intlayer_with_astro_solid.md +23 -27
- package/docs/ru/intlayer_with_astro_svelte.md +23 -27
- package/docs/ru/intlayer_with_astro_vue.md +23 -27
- package/docs/ru/intlayer_with_react_router_v7.md +12 -1
- package/docs/ru/intlayer_with_solid_start.md +14 -7
- package/docs/ru/intlayer_with_svelte_kit.md +12 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +13 -2
- package/docs/ru/intlayer_with_tanstack.md +13 -6
- package/docs/ru/intlayer_with_vite+lit.md +75 -3
- package/docs/ru/intlayer_with_vite+preact.md +16 -3
- package/docs/ru/intlayer_with_vite+react.md +16 -3
- package/docs/ru/intlayer_with_vite+solid.md +16 -3
- package/docs/ru/intlayer_with_vite+svelte.md +16 -3
- package/docs/ru/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ru/intlayer_with_vite+vue.md +16 -3
- package/docs/ru/introduction.md +0 -1
- package/docs/ru/readme.md +0 -1
- package/docs/ru/releases/v8.md +1 -5
- package/docs/tr/intlayer_with_astro.md +12 -25
- package/docs/tr/intlayer_with_astro_lit.md +24 -28
- package/docs/tr/intlayer_with_astro_preact.md +24 -28
- package/docs/tr/intlayer_with_astro_react.md +24 -28
- package/docs/tr/intlayer_with_astro_solid.md +24 -28
- package/docs/tr/intlayer_with_astro_svelte.md +24 -28
- package/docs/tr/intlayer_with_astro_vue.md +24 -28
- package/docs/tr/intlayer_with_react_router_v7.md +12 -1
- package/docs/tr/intlayer_with_solid_start.md +14 -7
- package/docs/tr/intlayer_with_svelte_kit.md +12 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +13 -2
- package/docs/tr/intlayer_with_tanstack.md +13 -6
- package/docs/tr/intlayer_with_vite+lit.md +75 -3
- package/docs/tr/intlayer_with_vite+preact.md +16 -3
- package/docs/tr/intlayer_with_vite+react.md +16 -3
- package/docs/tr/intlayer_with_vite+solid.md +16 -3
- package/docs/tr/intlayer_with_vite+svelte.md +16 -3
- package/docs/tr/intlayer_with_vite+vanilla.md +16 -3
- package/docs/tr/intlayer_with_vite+vue.md +16 -3
- package/docs/tr/introduction.md +0 -1
- package/docs/tr/readme.md +0 -1
- package/docs/tr/releases/v8.md +1 -5
- package/docs/uk/intlayer_with_astro.md +12 -25
- package/docs/uk/intlayer_with_astro_lit.md +23 -27
- package/docs/uk/intlayer_with_astro_preact.md +23 -27
- package/docs/uk/intlayer_with_astro_react.md +23 -27
- package/docs/uk/intlayer_with_astro_solid.md +23 -27
- package/docs/uk/intlayer_with_astro_svelte.md +23 -27
- package/docs/uk/intlayer_with_astro_vue.md +23 -27
- package/docs/uk/intlayer_with_react_router_v7.md +12 -1
- package/docs/uk/intlayer_with_solid_start.md +14 -7
- package/docs/uk/intlayer_with_svelte_kit.md +12 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +13 -2
- package/docs/uk/intlayer_with_tanstack.md +13 -6
- package/docs/uk/intlayer_with_vite+lit.md +75 -3
- package/docs/uk/intlayer_with_vite+preact.md +16 -3
- package/docs/uk/intlayer_with_vite+react.md +16 -3
- package/docs/uk/intlayer_with_vite+solid.md +16 -3
- package/docs/uk/intlayer_with_vite+svelte.md +16 -3
- package/docs/uk/intlayer_with_vite+vanilla.md +16 -3
- package/docs/uk/intlayer_with_vite+vue.md +16 -3
- package/docs/uk/introduction.md +0 -1
- package/docs/uk/readme.md +0 -1
- package/docs/uk/releases/v8.md +1 -5
- package/docs/ur/intlayer_with_vite+lit.md +75 -3
- package/docs/ur/intlayer_with_vite+vanilla.md +16 -3
- package/docs/ur/introduction.md +0 -1
- package/docs/vi/intlayer_with_astro.md +12 -25
- package/docs/vi/intlayer_with_astro_lit.md +23 -27
- package/docs/vi/intlayer_with_astro_preact.md +23 -27
- package/docs/vi/intlayer_with_astro_react.md +23 -27
- package/docs/vi/intlayer_with_astro_solid.md +23 -27
- package/docs/vi/intlayer_with_astro_svelte.md +23 -27
- package/docs/vi/intlayer_with_astro_vue.md +23 -27
- package/docs/vi/intlayer_with_react_router_v7.md +12 -1
- package/docs/vi/intlayer_with_solid_start.md +14 -7
- package/docs/vi/intlayer_with_svelte_kit.md +12 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +13 -2
- package/docs/vi/intlayer_with_tanstack.md +13 -6
- package/docs/vi/intlayer_with_vite+lit.md +75 -3
- package/docs/vi/intlayer_with_vite+preact.md +16 -3
- package/docs/vi/intlayer_with_vite+react.md +16 -3
- package/docs/vi/intlayer_with_vite+solid.md +16 -3
- package/docs/vi/intlayer_with_vite+svelte.md +16 -3
- package/docs/vi/intlayer_with_vite+vanilla.md +16 -3
- package/docs/vi/intlayer_with_vite+vue.md +16 -3
- package/docs/vi/introduction.md +0 -1
- package/docs/vi/readme.md +0 -1
- package/docs/vi/releases/v8.md +1 -5
- package/docs/zh/intlayer_with_astro.md +6 -21
- package/docs/zh/intlayer_with_astro_lit.md +23 -27
- package/docs/zh/intlayer_with_astro_preact.md +23 -27
- package/docs/zh/intlayer_with_astro_react.md +23 -27
- package/docs/zh/intlayer_with_astro_solid.md +23 -27
- package/docs/zh/intlayer_with_astro_svelte.md +23 -27
- package/docs/zh/intlayer_with_astro_vue.md +23 -27
- package/docs/zh/intlayer_with_react_router_v7.md +12 -1
- package/docs/zh/intlayer_with_solid_start.md +14 -7
- package/docs/zh/intlayer_with_svelte_kit.md +12 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +13 -2
- package/docs/zh/intlayer_with_tanstack.md +13 -6
- package/docs/zh/intlayer_with_vite+lit.md +75 -3
- package/docs/zh/intlayer_with_vite+preact.md +16 -3
- package/docs/zh/intlayer_with_vite+react.md +16 -3
- package/docs/zh/intlayer_with_vite+solid.md +16 -3
- package/docs/zh/intlayer_with_vite+svelte.md +16 -3
- package/docs/zh/intlayer_with_vite+vanilla.md +16 -3
- package/docs/zh/intlayer_with_vite+vue.md +16 -3
- package/docs/zh/introduction.md +0 -1
- package/docs/zh/readme.md +0 -1
- package/docs/zh/releases/v8.md +1 -5
- package/docs/zh-TW/introduction.md +0 -1
- package/package.json +6 -6
- package/docs/ar/intlayer_with_astro_vanilla.md +0 -709
- package/docs/de/intlayer_with_astro_vanilla.md +0 -705
- package/docs/en-GB/intlayer_with_astro_vanilla.md +0 -709
- package/docs/es/intlayer_with_astro_vanilla.md +0 -701
- package/docs/fr/intlayer_with_astro_vanilla.md +0 -701
- package/docs/hi/intlayer_with_astro_vanilla.md +0 -720
- package/docs/id/intlayer_with_astro_vanilla.md +0 -705
- package/docs/it/intlayer_with_astro_vanilla.md +0 -705
- package/docs/ja/intlayer_with_astro_vanilla.md +0 -708
- package/docs/ko/intlayer_with_astro_vanilla.md +0 -720
- package/docs/pl/intlayer_with_astro_vanilla.md +0 -705
- package/docs/pt/intlayer_with_astro_vanilla.md +0 -705
- package/docs/ru/intlayer_with_astro_vanilla.md +0 -716
- package/docs/tr/intlayer_with_astro_vanilla.md +0 -705
- package/docs/uk/intlayer_with_astro_vanilla.md +0 -705
- package/docs/vi/intlayer_with_astro_vanilla.md +0 -705
- package/docs/zh/intlayer_with_astro_vanilla.md +0 -704
|
@@ -458,7 +458,7 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
|
|
|
458
458
|
```
|
|
459
459
|
|
|
460
460
|
> **Note on Persistence:**
|
|
461
|
-
> `setLocale` from the client-side `useLocale` saves the user's language preference in a cookie. This allows
|
|
461
|
+
> `setLocale` from the client-side `useLocale` saves the user's language preference in a cookie. This allows Intlayer to remember the choice and automatically redirect the user to their preferred language on future visits: on-demand rendered pages (an adapter with `output: 'server'` or `prerender = false`) are redirected by the Intlayer middleware before any HTML is sent, while prerendered pages, served as static files, are redirected by a small script the integration injects in every page. Set `routing.enableProxy` to `false` to turn both off. In `astro dev`, the cookie is ignored as a redirect source unless `routing.enableProxy` is set to `true`, so a stale cookie cannot hijack the pages you are working on.
|
|
462
462
|
>
|
|
463
463
|
> **Server / client intercompatibility:**
|
|
464
464
|
> `astro-intlayer` resolves to its server hooks in the frontmatter (reading `Astro.locals`) and to the client hooks of `vanilla-intlayer` in `<script>` blocks and islands, with the same names and content shape. `setLocale` and `onChange` only act on the client — call `installIntlayer()` there once to seed the client store. `astro-intlayer/client` exposes the client entry explicitly.
|
|
@@ -485,10 +485,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
485
485
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
486
486
|
];
|
|
487
487
|
|
|
488
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
489
|
-
|
|
490
488
|
export const GET: APIRoute = async ({ site }) => {
|
|
491
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
489
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
490
|
+
siteUrl: "https://example.com",
|
|
491
|
+
});
|
|
492
492
|
|
|
493
493
|
return new Response(xmlOutput, {
|
|
494
494
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -535,7 +535,6 @@ Continue using your favorite framework to build your application.
|
|
|
535
535
|
- Intlayer + Solid: [Intlayer with Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_solid.md)
|
|
536
536
|
- Intlayer + Preact: [Intlayer with Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_preact.md)
|
|
537
537
|
- Intlayer + Lit: [Intlayer with Lit](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_lit.md)
|
|
538
|
-
- Intlayer + Vanilla JS: [Intlayer with Vanilla JS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_vanilla.md)
|
|
539
538
|
</Step>
|
|
540
539
|
|
|
541
540
|
<Step number={15} title="Extract the content of your components" isOptional={true}>
|
|
@@ -605,21 +604,7 @@ bun x intlayer extract
|
|
|
605
604
|
</Tab>
|
|
606
605
|
<Tab value='Babel compiler'>
|
|
607
606
|
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
|
|
611
|
-
|
|
612
|
-
```ts fileName="vite.config.ts"
|
|
613
|
-
import { defineConfig } from "vite";
|
|
614
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
615
|
-
|
|
616
|
-
export default defineConfig({
|
|
617
|
-
plugins: [
|
|
618
|
-
intlayer(),
|
|
619
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
620
|
-
],
|
|
621
|
-
});
|
|
622
|
-
```
|
|
607
|
+
Build your application to transform your components and extract the content
|
|
623
608
|
|
|
624
609
|
```bash packageManager="npm"
|
|
625
610
|
npm run build # Or npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "Astro + Lit i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Lit app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
21
21
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
22
22
|
history:
|
|
23
|
+
- version: 9.5.5
|
|
24
|
+
date: 2026-09-19
|
|
25
|
+
changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
|
|
23
26
|
- version: 8.9.0
|
|
24
27
|
date: 2026-05-04
|
|
25
28
|
changes: "Update Solid useIntlayer API usage to direct property access"
|
|
@@ -151,7 +154,7 @@ bun add intlayer astro-intlayer lit lit-intlayer @astrojs/lit
|
|
|
151
154
|
The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
|
|
152
155
|
|
|
153
156
|
- **astro-intlayer**
|
|
154
|
-
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production),
|
|
157
|
+
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
|
|
155
158
|
|
|
156
159
|
- **lit**
|
|
157
160
|
The core Lit package for building fast, lightweight Web Components.
|
|
@@ -243,19 +246,21 @@ export default litDemoContent;
|
|
|
243
246
|
</Step>
|
|
244
247
|
<Step number={5} title="Use your content in Astro">
|
|
245
248
|
|
|
246
|
-
|
|
249
|
+
Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
|
|
250
|
+
|
|
251
|
+
The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
|
|
252
|
+
|
|
253
|
+
You should also add SEO metadata like hreflang and canonical links to each page. The Lit custom element is then imported via a client-side `<script>` and placed in the body.
|
|
247
254
|
|
|
248
255
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
249
256
|
---
|
|
257
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
250
258
|
import {
|
|
251
|
-
getIntlayer,
|
|
252
|
-
getLocaleFromPath,
|
|
253
259
|
getLocalizedUrl,
|
|
254
260
|
getPrefix,
|
|
255
261
|
localeMap,
|
|
256
262
|
defaultLocale,
|
|
257
263
|
getHTMLTextDir,
|
|
258
|
-
type LocalesValues,
|
|
259
264
|
} from "intlayer";
|
|
260
265
|
|
|
261
266
|
export const getStaticPaths = () => {
|
|
@@ -264,8 +269,11 @@ export const getStaticPaths = () => {
|
|
|
264
269
|
}));
|
|
265
270
|
};
|
|
266
271
|
|
|
267
|
-
|
|
268
|
-
const {
|
|
272
|
+
// Locale resolved by the middleware (e.g. /es/about -> 'es')
|
|
273
|
+
const { locale } = useLocale();
|
|
274
|
+
|
|
275
|
+
// Content of the 'lit-demo' dictionary for that locale
|
|
276
|
+
const { greeting } = useIntlayer("lit-demo");
|
|
269
277
|
---
|
|
270
278
|
|
|
271
279
|
<!doctype html>
|
|
@@ -324,6 +332,8 @@ const { greeting } = getIntlayer("lit-demo", locale);
|
|
|
324
332
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
325
333
|
> ```
|
|
326
334
|
|
|
335
|
+
> `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
|
|
336
|
+
|
|
327
337
|
> **Note on Routing Configuration:**
|
|
328
338
|
> The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
|
|
329
339
|
>
|
|
@@ -480,10 +490,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
480
490
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
481
491
|
];
|
|
482
492
|
|
|
483
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
484
|
-
|
|
485
493
|
export const GET: APIRoute = async ({ site }) => {
|
|
486
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
494
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
495
|
+
siteUrl: "https://example.com",
|
|
496
|
+
});
|
|
487
497
|
|
|
488
498
|
return new Response(xmlOutput, {
|
|
489
499
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -587,21 +597,7 @@ bun x intlayer extract
|
|
|
587
597
|
</Tab>
|
|
588
598
|
<Tab value='Babel compiler'>
|
|
589
599
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
|
|
593
|
-
|
|
594
|
-
```ts fileName="vite.config.ts"
|
|
595
|
-
import { defineConfig } from "vite";
|
|
596
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
597
|
-
|
|
598
|
-
export default defineConfig({
|
|
599
|
-
plugins: [
|
|
600
|
-
intlayer(),
|
|
601
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
602
|
-
],
|
|
603
|
-
});
|
|
604
|
-
```
|
|
600
|
+
Build your application to transform your components and extract the content
|
|
605
601
|
|
|
606
602
|
```bash packageManager="npm"
|
|
607
603
|
npm run build # Or npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "Astro + Preact i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Preact app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
20
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
21
|
history:
|
|
22
|
+
- version: 9.5.5
|
|
23
|
+
date: 2026-09-19
|
|
24
|
+
changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Update Solid useIntlayer API usage to direct property access"
|
|
@@ -150,7 +153,7 @@ bun add intlayer astro-intlayer preact preact-intlayer @astrojs/preact
|
|
|
150
153
|
The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
|
|
151
154
|
|
|
152
155
|
- **astro-intlayer**
|
|
153
|
-
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production),
|
|
156
|
+
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
|
|
154
157
|
|
|
155
158
|
- **preact**
|
|
156
159
|
The core Preact package - a fast, lightweight alternative to React.
|
|
@@ -240,19 +243,21 @@ export default appContent;
|
|
|
240
243
|
</Step>
|
|
241
244
|
<Step number={5} title="Use your content in Astro">
|
|
242
245
|
|
|
243
|
-
|
|
246
|
+
Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
|
|
247
|
+
|
|
248
|
+
The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
|
|
249
|
+
|
|
250
|
+
You should also add SEO metadata like hreflang and canonical links to each page, and embed the Preact island for interactive client-side content.
|
|
244
251
|
|
|
245
252
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
246
253
|
---
|
|
254
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
247
255
|
import {
|
|
248
|
-
getIntlayer,
|
|
249
|
-
getLocaleFromPath,
|
|
250
256
|
getLocalizedUrl,
|
|
251
257
|
getPrefix,
|
|
252
258
|
localeMap,
|
|
253
259
|
defaultLocale,
|
|
254
260
|
getHTMLTextDir,
|
|
255
|
-
type LocalesValues,
|
|
256
261
|
} from "intlayer";
|
|
257
262
|
import { PreactIsland } from "../../components/preact/PreactIsland";
|
|
258
263
|
|
|
@@ -262,8 +267,11 @@ export const getStaticPaths = () => {
|
|
|
262
267
|
}));
|
|
263
268
|
};
|
|
264
269
|
|
|
265
|
-
|
|
266
|
-
const {
|
|
270
|
+
// Locale resolved by the middleware (e.g. /es/about -> 'es')
|
|
271
|
+
const { locale } = useLocale();
|
|
272
|
+
|
|
273
|
+
// Content of the 'app' dictionary for that locale
|
|
274
|
+
const { title } = useIntlayer("app");
|
|
267
275
|
---
|
|
268
276
|
|
|
269
277
|
<!doctype html>
|
|
@@ -319,6 +327,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
319
327
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
320
328
|
> ```
|
|
321
329
|
|
|
330
|
+
> `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
|
|
331
|
+
|
|
322
332
|
> **Note on Routing Configuration:**
|
|
323
333
|
> The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
|
|
324
334
|
>
|
|
@@ -435,10 +445,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
435
445
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
436
446
|
];
|
|
437
447
|
|
|
438
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
439
|
-
|
|
440
448
|
export const GET: APIRoute = async ({ site }) => {
|
|
441
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
449
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
450
|
+
siteUrl: "https://example.com",
|
|
451
|
+
});
|
|
442
452
|
|
|
443
453
|
return new Response(xmlOutput, {
|
|
444
454
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -542,21 +552,7 @@ bun x intlayer extract
|
|
|
542
552
|
</Tab>
|
|
543
553
|
<Tab value='Babel compiler'>
|
|
544
554
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
|
|
548
|
-
|
|
549
|
-
```ts fileName="vite.config.ts"
|
|
550
|
-
import { defineConfig } from "vite";
|
|
551
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
552
|
-
|
|
553
|
-
export default defineConfig({
|
|
554
|
-
plugins: [
|
|
555
|
-
intlayer(),
|
|
556
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
557
|
-
],
|
|
558
|
-
});
|
|
559
|
-
```
|
|
555
|
+
Build your application to transform your components and extract the content
|
|
560
556
|
|
|
561
557
|
```bash packageManager="npm"
|
|
562
558
|
npm run build # Or npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "Astro + React i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + React app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
20
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
21
|
history:
|
|
22
|
+
- version: 9.5.5
|
|
23
|
+
date: 2026-09-19
|
|
24
|
+
changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Update Solid useIntlayer API usage to direct property access"
|
|
@@ -153,7 +156,7 @@ bun add intlayer astro-intlayer react react-dom react-intlayer @astrojs/react
|
|
|
153
156
|
The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
|
|
154
157
|
|
|
155
158
|
- **astro-intlayer**
|
|
156
|
-
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production),
|
|
159
|
+
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
|
|
157
160
|
|
|
158
161
|
- **react**, **react-dom**
|
|
159
162
|
The core React packages needed to render React components in the browser.
|
|
@@ -241,19 +244,21 @@ export default appContent;
|
|
|
241
244
|
</Step>
|
|
242
245
|
<Step number={5} title="Use your content in Astro">
|
|
243
246
|
|
|
244
|
-
|
|
247
|
+
Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
|
|
248
|
+
|
|
249
|
+
The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
|
|
250
|
+
|
|
251
|
+
You should also add SEO metadata like hreflang and canonical links to each page, and embed the React island for interactive client-side content.
|
|
245
252
|
|
|
246
253
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
247
254
|
---
|
|
255
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
248
256
|
import {
|
|
249
|
-
getIntlayer,
|
|
250
|
-
getLocaleFromPath,
|
|
251
257
|
getLocalizedUrl,
|
|
252
258
|
getPrefix,
|
|
253
259
|
localeMap,
|
|
254
260
|
defaultLocale,
|
|
255
261
|
getHTMLTextDir,
|
|
256
|
-
type LocalesValues,
|
|
257
262
|
} from "intlayer";
|
|
258
263
|
import { ReactIsland } from "../../components/react/ReactIsland";
|
|
259
264
|
|
|
@@ -263,8 +268,11 @@ export const getStaticPaths = () => {
|
|
|
263
268
|
}));
|
|
264
269
|
};
|
|
265
270
|
|
|
266
|
-
|
|
267
|
-
const {
|
|
271
|
+
// Locale resolved by the middleware (e.g. /es/about -> 'es')
|
|
272
|
+
const { locale } = useLocale();
|
|
273
|
+
|
|
274
|
+
// Content of the 'app' dictionary for that locale
|
|
275
|
+
const { title } = useIntlayer("app");
|
|
268
276
|
---
|
|
269
277
|
|
|
270
278
|
<!doctype html>
|
|
@@ -320,6 +328,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
320
328
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
321
329
|
> ```
|
|
322
330
|
|
|
331
|
+
> `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
|
|
332
|
+
|
|
323
333
|
> **Note on Routing Configuration:**
|
|
324
334
|
> The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
|
|
325
335
|
>
|
|
@@ -432,10 +442,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
432
442
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
433
443
|
];
|
|
434
444
|
|
|
435
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
436
|
-
|
|
437
445
|
export const GET: APIRoute = async ({ site }) => {
|
|
438
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
446
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
447
|
+
siteUrl: "https://example.com",
|
|
448
|
+
});
|
|
439
449
|
|
|
440
450
|
return new Response(xmlOutput, {
|
|
441
451
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -539,21 +549,7 @@ bun x intlayer extract
|
|
|
539
549
|
</Tab>
|
|
540
550
|
<Tab value='Babel compiler'>
|
|
541
551
|
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
|
|
545
|
-
|
|
546
|
-
```ts fileName="vite.config.ts"
|
|
547
|
-
import { defineConfig } from "vite";
|
|
548
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
549
|
-
|
|
550
|
-
export default defineConfig({
|
|
551
|
-
plugins: [
|
|
552
|
-
intlayer(),
|
|
553
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
554
|
-
],
|
|
555
|
-
});
|
|
556
|
-
```
|
|
552
|
+
Build your application to transform your components and extract the content
|
|
557
553
|
|
|
558
554
|
```bash packageManager="npm"
|
|
559
555
|
npm run build # Or npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "Astro + Solid i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Solid app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
20
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
21
|
history:
|
|
22
|
+
- version: 9.5.5
|
|
23
|
+
date: 2026-09-19
|
|
24
|
+
changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Update Solid useIntlayer API usage to direct property access"
|
|
@@ -150,7 +153,7 @@ bun add intlayer astro-intlayer solid-js solid-intlayer @astrojs/solid-js
|
|
|
150
153
|
The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
|
|
151
154
|
|
|
152
155
|
- **astro-intlayer**
|
|
153
|
-
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production),
|
|
156
|
+
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
|
|
154
157
|
|
|
155
158
|
- **solid-js**
|
|
156
159
|
The core Solid package.
|
|
@@ -237,19 +240,21 @@ export default appContent;
|
|
|
237
240
|
</Step>
|
|
238
241
|
<Step number={5} title="Use your content in Astro">
|
|
239
242
|
|
|
240
|
-
|
|
243
|
+
Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
|
|
244
|
+
|
|
245
|
+
The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
|
|
246
|
+
|
|
247
|
+
You should also add SEO metadata like hreflang and canonical links to each page, and embed the Solid island for interactive client-side content.
|
|
241
248
|
|
|
242
249
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
243
250
|
---
|
|
251
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
244
252
|
import {
|
|
245
|
-
getIntlayer,
|
|
246
|
-
getLocaleFromPath,
|
|
247
253
|
getLocalizedUrl,
|
|
248
254
|
getPrefix,
|
|
249
255
|
localeMap,
|
|
250
256
|
defaultLocale,
|
|
251
257
|
getHTMLTextDir,
|
|
252
|
-
type LocalesValues,
|
|
253
258
|
} from "intlayer";
|
|
254
259
|
import { SolidIsland } from "../../components/solid/SolidIsland";
|
|
255
260
|
|
|
@@ -259,8 +264,11 @@ export const getStaticPaths = () => {
|
|
|
259
264
|
}));
|
|
260
265
|
};
|
|
261
266
|
|
|
262
|
-
|
|
263
|
-
const {
|
|
267
|
+
// Locale resolved by the middleware (e.g. /es/about -> 'es')
|
|
268
|
+
const { locale } = useLocale();
|
|
269
|
+
|
|
270
|
+
// Content of the 'app' dictionary for that locale
|
|
271
|
+
const { title } = useIntlayer("app");
|
|
264
272
|
---
|
|
265
273
|
|
|
266
274
|
<!doctype html>
|
|
@@ -316,6 +324,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
316
324
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
317
325
|
> ```
|
|
318
326
|
|
|
327
|
+
> `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
|
|
328
|
+
|
|
319
329
|
> **Note on Routing Configuration:**
|
|
320
330
|
> The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
|
|
321
331
|
>
|
|
@@ -432,10 +442,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
432
442
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
433
443
|
];
|
|
434
444
|
|
|
435
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
436
|
-
|
|
437
445
|
export const GET: APIRoute = async ({ site }) => {
|
|
438
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
446
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
447
|
+
siteUrl: "https://example.com",
|
|
448
|
+
});
|
|
439
449
|
|
|
440
450
|
return new Response(xmlOutput, {
|
|
441
451
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -539,21 +549,7 @@ bun x intlayer extract
|
|
|
539
549
|
</Tab>
|
|
540
550
|
<Tab value='Babel compiler'>
|
|
541
551
|
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
|
|
545
|
-
|
|
546
|
-
```ts fileName="vite.config.ts"
|
|
547
|
-
import { defineConfig } from "vite";
|
|
548
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
549
|
-
|
|
550
|
-
export default defineConfig({
|
|
551
|
-
plugins: [
|
|
552
|
-
intlayer(),
|
|
553
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
554
|
-
],
|
|
555
|
-
});
|
|
556
|
-
```
|
|
552
|
+
Build your application to transform your components and extract the content
|
|
557
553
|
|
|
558
554
|
```bash packageManager="npm"
|
|
559
555
|
npm run build # Or npm run dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "Astro + Svelte i18n - Complete guide to translate your app"
|
|
5
5
|
description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Svelte app. Translate with AI agents and optimize bundle size, SEO and performances."
|
|
6
6
|
keywords:
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
20
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
21
|
history:
|
|
22
|
+
- version: 9.5.5
|
|
23
|
+
date: 2026-09-19
|
|
24
|
+
changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Update Solid useIntlayer API usage to direct property access"
|
|
@@ -150,7 +153,7 @@ bun add intlayer astro-intlayer svelte svelte-intlayer @astrojs/svelte
|
|
|
150
153
|
The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
|
|
151
154
|
|
|
152
155
|
- **astro-intlayer**
|
|
153
|
-
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production),
|
|
156
|
+
Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
|
|
154
157
|
|
|
155
158
|
- **svelte**
|
|
156
159
|
The core Svelte package.
|
|
@@ -237,19 +240,21 @@ export default appContent;
|
|
|
237
240
|
</Step>
|
|
238
241
|
<Step number={5} title="Use your content in Astro">
|
|
239
242
|
|
|
240
|
-
|
|
243
|
+
Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
|
|
244
|
+
|
|
245
|
+
The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
|
|
246
|
+
|
|
247
|
+
You should also add SEO metadata like hreflang and canonical links to each page, and embed the Svelte island for interactive client-side content.
|
|
241
248
|
|
|
242
249
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
243
250
|
---
|
|
251
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
244
252
|
import {
|
|
245
|
-
getIntlayer,
|
|
246
|
-
getLocaleFromPath,
|
|
247
253
|
getLocalizedUrl,
|
|
248
254
|
getPrefix,
|
|
249
255
|
localeMap,
|
|
250
256
|
defaultLocale,
|
|
251
257
|
getHTMLTextDir,
|
|
252
|
-
type LocalesValues,
|
|
253
258
|
} from "intlayer";
|
|
254
259
|
import SvelteIsland from "../../components/svelte/SvelteIsland.svelte";
|
|
255
260
|
|
|
@@ -259,8 +264,11 @@ export const getStaticPaths = () => {
|
|
|
259
264
|
}));
|
|
260
265
|
};
|
|
261
266
|
|
|
262
|
-
|
|
263
|
-
const {
|
|
267
|
+
// Locale resolved by the middleware (e.g. /es/about -> 'es')
|
|
268
|
+
const { locale } = useLocale();
|
|
269
|
+
|
|
270
|
+
// Content of the 'app' dictionary for that locale
|
|
271
|
+
const { title } = useIntlayer("app");
|
|
264
272
|
---
|
|
265
273
|
|
|
266
274
|
<!doctype html>
|
|
@@ -316,6 +324,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
316
324
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
317
325
|
> ```
|
|
318
326
|
|
|
327
|
+
> `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
|
|
328
|
+
|
|
319
329
|
> **Note on Routing Configuration:**
|
|
320
330
|
> The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
|
|
321
331
|
>
|
|
@@ -436,10 +446,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
436
446
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
437
447
|
];
|
|
438
448
|
|
|
439
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
440
|
-
|
|
441
449
|
export const GET: APIRoute = async ({ site }) => {
|
|
442
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
450
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
451
|
+
siteUrl: "https://example.com",
|
|
452
|
+
});
|
|
443
453
|
|
|
444
454
|
return new Response(xmlOutput, {
|
|
445
455
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -543,21 +553,7 @@ bun x intlayer extract
|
|
|
543
553
|
</Tab>
|
|
544
554
|
<Tab value='Babel compiler'>
|
|
545
555
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
|
|
549
|
-
|
|
550
|
-
```ts fileName="vite.config.ts"
|
|
551
|
-
import { defineConfig } from "vite";
|
|
552
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
553
|
-
|
|
554
|
-
export default defineConfig({
|
|
555
|
-
plugins: [
|
|
556
|
-
intlayer(),
|
|
557
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
558
|
-
],
|
|
559
|
-
});
|
|
560
|
-
```
|
|
556
|
+
Build your application to transform your components and extract the content
|
|
561
557
|
|
|
562
558
|
```bash packageManager="npm"
|
|
563
559
|
npm run build # Or npm run dev
|