@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
package/docs/ja/releases/v8.md
CHANGED
|
@@ -1328,10 +1328,6 @@ Intlayer は、ロケールとルーティングモードに基づいてサイ
|
|
|
1328
1328
|
import { createFileRoute } from "@tanstack/react-router";
|
|
1329
1329
|
import { generateSitemap } from "intlayer";
|
|
1330
1330
|
|
|
1331
|
-
const SITE_URL = (
|
|
1332
|
-
import.meta.env.VITE_SITE_URL ?? "http://localhost:3000"
|
|
1333
|
-
).replace(/\/$/, "");
|
|
1334
|
-
|
|
1335
1331
|
export const Route = createFileRoute("/sitemap.xml")({
|
|
1336
1332
|
server: {
|
|
1337
1333
|
handlers: {
|
|
@@ -1341,7 +1337,7 @@ export const Route = createFileRoute("/sitemap.xml")({
|
|
|
1341
1337
|
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
1342
1338
|
{ path: "/about", changefreq: "monthly", priority: 0.8 },
|
|
1343
1339
|
],
|
|
1344
|
-
{ siteUrl:
|
|
1340
|
+
{ siteUrl: "https://example.com" }
|
|
1345
1341
|
);
|
|
1346
1342
|
|
|
1347
1343
|
return new Response(sitemap, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-20
|
|
4
4
|
title: "Astro i18n - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
6
6
|
keywords:
|
|
@@ -401,7 +401,7 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
|
|
|
401
401
|
```
|
|
402
402
|
|
|
403
403
|
> **영속성에 대한 참고 사항:**
|
|
404
|
-
> 클라이언트 측 `useLocale`의 `setLocale`은 사용자의 언어 설정을 쿠키에 저장합니다. 이를 통해 Intlayer
|
|
404
|
+
> 클라이언트 측 `useLocale`의 `setLocale`은 사용자의 언어 설정을 쿠키에 저장합니다. 이를 통해 Intlayer는 선택 사항을 기억하고 향후 방문 시 사용자를 선호하는 언어로 자동 리디렉션할 수 있습니다. 온디맨드 렌더링 페이지(`output: 'server'` 또는 `prerender = false`인 어댑터)는 HTML이 전송되기 전에 Intlayer 미들웨어에 의해 리디렉션되며, 정적 파일로 제공되는 사전 렌더링 페이지는 통합 플러그인이 모든 페이지에 삽입하는 작은 스크립트에 의해 리디렉션됩니다. 둘 다 끄려면 `routing.enableProxy`를 `false`로 설정하세요. `astro dev`에서는 `routing.enableProxy`가 `true`로 설정되지 않는 한 쿠키가 리디렉션 소스로 무시되므로 오래된 쿠키가 작업 중인 페이지를 가로채지 않습니다.
|
|
405
405
|
>
|
|
406
406
|
> **서버 / 클라이언트 상호 호환성:**
|
|
407
407
|
> `astro-intlayer`는 프론트매터에서는 서버 훅(`Astro.locals` 읽기)으로 확인되고, `<script>` 블록과 아일랜드에서는 `vanilla-intlayer`의 클라이언트 훅으로 확인되며 동일한 이름과 데이터 구조를 가집니다. `setLocale`과 `onChange`는 클라이언트에서만 동작하므로, 클라이언트 스토어를 초기화하려면 클라이언트에서 `installIntlayer()`를 한 번 호출하세요. `astro-intlayer/client`는 클라이언트 엔트리를 명시적으로 노출합니다.
|
|
@@ -428,10 +428,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
428
428
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
429
429
|
];
|
|
430
430
|
|
|
431
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
432
|
-
|
|
433
431
|
export const GET: APIRoute = async ({ site }) => {
|
|
434
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
432
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
433
|
+
siteUrl: "https://example.com",
|
|
434
|
+
});
|
|
435
435
|
|
|
436
436
|
return new Response(xmlOutput, {
|
|
437
437
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -478,7 +478,6 @@ export const GET: APIRoute = ({ site }) => {
|
|
|
478
478
|
- Intlayer + Solid: [Intlayer with Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_solid.md)
|
|
479
479
|
- Intlayer + Preact: [Intlayer with Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_preact.md)
|
|
480
480
|
- Intlayer + Lit: [Intlayer with Lit](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_lit.md)
|
|
481
|
-
- Intlayer + Vanilla JS: [Intlayer with Vanilla JS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_vanilla.md)
|
|
482
481
|
</Step>
|
|
483
482
|
|
|
484
483
|
<Step number={15} title="컴포넌트에서 콘텐츠 추출" isOptional={true}>
|
|
@@ -548,21 +547,7 @@ bun x intlayer extract
|
|
|
548
547
|
</Tab>
|
|
549
548
|
<Tab value='Babel compiler'>
|
|
550
549
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함시키세요:
|
|
554
|
-
|
|
555
|
-
```ts fileName="vite.config.ts"
|
|
556
|
-
import { defineConfig } from "vite";
|
|
557
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
558
|
-
|
|
559
|
-
export default defineConfig({
|
|
560
|
-
plugins: [
|
|
561
|
-
intlayer(),
|
|
562
|
-
intlayerCompiler(), // 컴파일러 플러그인 추가
|
|
563
|
-
],
|
|
564
|
-
});
|
|
565
|
-
```
|
|
550
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
566
551
|
|
|
567
552
|
```bash packageManager="npm"
|
|
568
553
|
npm run build # 또는 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 - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Lit 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
23
26
|
- version: 8.9.0
|
|
24
27
|
date: 2026-05-04
|
|
25
28
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -163,7 +166,7 @@ bun x intlayer init
|
|
|
163
166
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
164
167
|
|
|
165
168
|
- **astro-intlayer**
|
|
166
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
169
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
167
170
|
|
|
168
171
|
- **lit**
|
|
169
172
|
빠르고 가벼운 웹 컴포넌트를 빌드하기 위한 핵심 Lit 패키지입니다.
|
|
@@ -257,19 +260,21 @@ export default litDemoContent;
|
|
|
257
260
|
</Step>
|
|
258
261
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
259
262
|
|
|
260
|
-
`intlayer`에서 내보낸
|
|
263
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
264
|
+
|
|
265
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
266
|
+
|
|
267
|
+
Lit 커스텀 엘리먼트는 클라이언트 사이드 `<script>`를 통해 임포트되어 body에 배치됩니다.
|
|
261
268
|
|
|
262
269
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
263
270
|
---
|
|
271
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
264
272
|
import {
|
|
265
|
-
getIntlayer,
|
|
266
|
-
getLocaleFromPath,
|
|
267
273
|
getLocalizedUrl,
|
|
268
|
-
getHTMLTextDir,
|
|
269
274
|
getPrefix,
|
|
270
275
|
localeMap,
|
|
271
276
|
defaultLocale,
|
|
272
|
-
|
|
277
|
+
getHTMLTextDir,
|
|
273
278
|
} from "intlayer";
|
|
274
279
|
|
|
275
280
|
export const getStaticPaths = () => {
|
|
@@ -278,8 +283,11 @@ export const getStaticPaths = () => {
|
|
|
278
283
|
}));
|
|
279
284
|
};
|
|
280
285
|
|
|
281
|
-
|
|
282
|
-
const {
|
|
286
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
287
|
+
const { locale } = useLocale();
|
|
288
|
+
|
|
289
|
+
// 해당 로케일의 'lit-demo' 사전 내용
|
|
290
|
+
const { greeting } = useIntlayer("lit-demo");
|
|
283
291
|
---
|
|
284
292
|
|
|
285
293
|
<!doctype html>
|
|
@@ -338,6 +346,8 @@ const { greeting } = getIntlayer("lit-demo", locale);
|
|
|
338
346
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
339
347
|
> ```
|
|
340
348
|
|
|
349
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
350
|
+
|
|
341
351
|
> **라우팅 설정에 관한 참고 사항:**
|
|
342
352
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
343
353
|
>
|
|
@@ -494,10 +504,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
494
504
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
495
505
|
];
|
|
496
506
|
|
|
497
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
498
|
-
|
|
499
507
|
export const GET: APIRoute = async ({ site }) => {
|
|
500
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
508
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
509
|
+
siteUrl: "https://example.com",
|
|
510
|
+
});
|
|
501
511
|
|
|
502
512
|
return new Response(xmlOutput, {
|
|
503
513
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -601,21 +611,7 @@ bun x intlayer extract
|
|
|
601
611
|
</Tab>
|
|
602
612
|
<Tab value='Babel compiler'>
|
|
603
613
|
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함합니다:
|
|
607
|
-
|
|
608
|
-
```ts fileName="vite.config.ts"
|
|
609
|
-
import { defineConfig } from "vite";
|
|
610
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
611
|
-
|
|
612
|
-
export default defineConfig({
|
|
613
|
-
plugins: [
|
|
614
|
-
intlayer(),
|
|
615
|
-
intlayerCompiler(), // 컴파일러 플러그인 추가
|
|
616
|
-
],
|
|
617
|
-
});
|
|
618
|
-
```
|
|
614
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
619
615
|
|
|
620
616
|
```bash packageManager="npm"
|
|
621
617
|
npm run build # 또는 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 - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Preact 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -162,7 +165,7 @@ bun x intlayer init
|
|
|
162
165
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
163
166
|
|
|
164
167
|
- **astro-intlayer**
|
|
165
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
168
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
166
169
|
|
|
167
170
|
- **preact**
|
|
168
171
|
핵심 Preact 패키지 - React의 빠르고 가벼운 대안입니다.
|
|
@@ -253,19 +256,21 @@ export default appContent;
|
|
|
253
256
|
</Step>
|
|
254
257
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
255
258
|
|
|
256
|
-
`intlayer`에서 내보낸
|
|
259
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
260
|
+
|
|
261
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
262
|
+
|
|
263
|
+
또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Preact 아일랜드를 포함해야 합니다.
|
|
257
264
|
|
|
258
265
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
259
266
|
---
|
|
267
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
260
268
|
import {
|
|
261
|
-
getIntlayer,
|
|
262
|
-
getLocaleFromPath,
|
|
263
269
|
getLocalizedUrl,
|
|
264
|
-
getHTMLTextDir,
|
|
265
270
|
getPrefix,
|
|
266
271
|
localeMap,
|
|
267
272
|
defaultLocale,
|
|
268
|
-
|
|
273
|
+
getHTMLTextDir,
|
|
269
274
|
} from "intlayer";
|
|
270
275
|
import { PreactIsland } from "../../components/preact/PreactIsland";
|
|
271
276
|
|
|
@@ -275,8 +280,11 @@ export const getStaticPaths = () => {
|
|
|
275
280
|
}));
|
|
276
281
|
};
|
|
277
282
|
|
|
278
|
-
|
|
279
|
-
const {
|
|
283
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
284
|
+
const { locale } = useLocale();
|
|
285
|
+
|
|
286
|
+
// 해당 로케일의 'app' 사전 내용
|
|
287
|
+
const { title } = useIntlayer("app");
|
|
280
288
|
---
|
|
281
289
|
|
|
282
290
|
<!doctype html>
|
|
@@ -332,6 +340,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
332
340
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
333
341
|
> ```
|
|
334
342
|
|
|
343
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
344
|
+
|
|
335
345
|
> **라우팅 설정에 관한 참고 사항:**
|
|
336
346
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
337
347
|
>
|
|
@@ -448,10 +458,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
448
458
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
449
459
|
];
|
|
450
460
|
|
|
451
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
452
|
-
|
|
453
461
|
export const GET: APIRoute = async ({ site }) => {
|
|
454
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
462
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
463
|
+
siteUrl: "https://example.com",
|
|
464
|
+
});
|
|
455
465
|
|
|
456
466
|
return new Response(xmlOutput, {
|
|
457
467
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -555,21 +565,7 @@ bun x intlayer extract
|
|
|
555
565
|
</Tab>
|
|
556
566
|
<Tab value='Babel compiler'>
|
|
557
567
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
561
|
-
|
|
562
|
-
```ts fileName="vite.config.ts"
|
|
563
|
-
import { defineConfig } from "vite";
|
|
564
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
565
|
-
|
|
566
|
-
export default defineConfig({
|
|
567
|
-
plugins: [
|
|
568
|
-
intlayer(),
|
|
569
|
-
intlayerCompiler(), // 컴파일러 플러그인 추가
|
|
570
|
-
],
|
|
571
|
-
});
|
|
572
|
-
```
|
|
568
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
573
569
|
|
|
574
570
|
```bash packageManager="npm"
|
|
575
571
|
npm run build # 또는 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 - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + React 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -165,7 +168,7 @@ bun x intlayer init
|
|
|
165
168
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
166
169
|
|
|
167
170
|
- **astro-intlayer**
|
|
168
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
171
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
169
172
|
|
|
170
173
|
- **react**, **react-dom**
|
|
171
174
|
브라우저에서 React 컴포넌트를 렌더링하는 데 필요한 핵심 React 패키지입니다.
|
|
@@ -254,19 +257,21 @@ export default appContent;
|
|
|
254
257
|
</Step>
|
|
255
258
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
256
259
|
|
|
257
|
-
`intlayer`에서 내보낸
|
|
260
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
261
|
+
|
|
262
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
263
|
+
|
|
264
|
+
또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 React 아일랜드를 포함해야 합니다.
|
|
258
265
|
|
|
259
266
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
260
267
|
---
|
|
268
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
261
269
|
import {
|
|
262
|
-
getIntlayer,
|
|
263
|
-
getLocaleFromPath,
|
|
264
270
|
getLocalizedUrl,
|
|
265
|
-
getHTMLTextDir,
|
|
266
271
|
getPrefix,
|
|
267
272
|
localeMap,
|
|
268
273
|
defaultLocale,
|
|
269
|
-
|
|
274
|
+
getHTMLTextDir,
|
|
270
275
|
} from "intlayer";
|
|
271
276
|
import { ReactIsland } from "../../components/react/ReactIsland";
|
|
272
277
|
|
|
@@ -276,8 +281,11 @@ export const getStaticPaths = () => {
|
|
|
276
281
|
}));
|
|
277
282
|
};
|
|
278
283
|
|
|
279
|
-
|
|
280
|
-
const {
|
|
284
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
285
|
+
const { locale } = useLocale();
|
|
286
|
+
|
|
287
|
+
// 해당 로케일의 'app' 사전 내용
|
|
288
|
+
const { title } = useIntlayer("app");
|
|
281
289
|
---
|
|
282
290
|
|
|
283
291
|
<!doctype html>
|
|
@@ -333,6 +341,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
333
341
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
334
342
|
> ```
|
|
335
343
|
|
|
344
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
345
|
+
|
|
336
346
|
> **라우팅 설정에 관한 참고 사항:**
|
|
337
347
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
338
348
|
>
|
|
@@ -445,10 +455,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
445
455
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
446
456
|
];
|
|
447
457
|
|
|
448
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
449
|
-
|
|
450
458
|
export const GET: APIRoute = async ({ site }) => {
|
|
451
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
459
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
460
|
+
siteUrl: "https://example.com",
|
|
461
|
+
});
|
|
452
462
|
|
|
453
463
|
return new Response(xmlOutput, {
|
|
454
464
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -552,21 +562,7 @@ bun x intlayer extract
|
|
|
552
562
|
</Tab>
|
|
553
563
|
<Tab value='Babel compiler'>
|
|
554
564
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
558
|
-
|
|
559
|
-
```ts fileName="vite.config.ts"
|
|
560
|
-
import { defineConfig } from "vite";
|
|
561
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
562
|
-
|
|
563
|
-
export default defineConfig({
|
|
564
|
-
plugins: [
|
|
565
|
-
intlayer(),
|
|
566
|
-
intlayerCompiler(), // 컴파일러 플러그인을 추가합니다
|
|
567
|
-
],
|
|
568
|
-
});
|
|
569
|
-
```
|
|
565
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
570
566
|
|
|
571
567
|
```bash packageManager="npm"
|
|
572
568
|
npm run build # 또는 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 - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Solid 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -162,7 +165,7 @@ bun x intlayer init
|
|
|
162
165
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
163
166
|
|
|
164
167
|
- **astro-intlayer**
|
|
165
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
168
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
166
169
|
|
|
167
170
|
- **solid-js**
|
|
168
171
|
핵심 Solid 패키지입니다.
|
|
@@ -250,19 +253,21 @@ export default appContent;
|
|
|
250
253
|
</Step>
|
|
251
254
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
252
255
|
|
|
253
|
-
`intlayer`에서 내보낸
|
|
256
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
257
|
+
|
|
258
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
259
|
+
|
|
260
|
+
또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Solid 아일랜드를 포함해야 합니다.
|
|
254
261
|
|
|
255
262
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
256
263
|
---
|
|
264
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
257
265
|
import {
|
|
258
|
-
getIntlayer,
|
|
259
|
-
getLocaleFromPath,
|
|
260
266
|
getLocalizedUrl,
|
|
261
|
-
getHTMLTextDir,
|
|
262
267
|
getPrefix,
|
|
263
268
|
localeMap,
|
|
264
269
|
defaultLocale,
|
|
265
|
-
|
|
270
|
+
getHTMLTextDir,
|
|
266
271
|
} from "intlayer";
|
|
267
272
|
import { SolidIsland } from "../../components/solid/SolidIsland";
|
|
268
273
|
|
|
@@ -272,8 +277,11 @@ export const getStaticPaths = () => {
|
|
|
272
277
|
}));
|
|
273
278
|
};
|
|
274
279
|
|
|
275
|
-
|
|
276
|
-
const {
|
|
280
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
281
|
+
const { locale } = useLocale();
|
|
282
|
+
|
|
283
|
+
// 해당 로케일의 'app' 사전 내용
|
|
284
|
+
const { title } = useIntlayer("app");
|
|
277
285
|
---
|
|
278
286
|
|
|
279
287
|
<!doctype html>
|
|
@@ -329,6 +337,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
329
337
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
330
338
|
> ```
|
|
331
339
|
|
|
340
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
341
|
+
|
|
332
342
|
> **라우팅 설정에 관한 참고 사항:**
|
|
333
343
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
334
344
|
>
|
|
@@ -445,10 +455,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
445
455
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
446
456
|
];
|
|
447
457
|
|
|
448
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
449
|
-
|
|
450
458
|
export const GET: APIRoute = async ({ site }) => {
|
|
451
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
459
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
460
|
+
siteUrl: "https://example.com",
|
|
461
|
+
});
|
|
452
462
|
|
|
453
463
|
return new Response(xmlOutput, {
|
|
454
464
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -552,21 +562,7 @@ bun x intlayer extract
|
|
|
552
562
|
</Tab>
|
|
553
563
|
<Tab value='Babel compiler'>
|
|
554
564
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
558
|
-
|
|
559
|
-
```ts fileName="vite.config.ts"
|
|
560
|
-
import { defineConfig } from "vite";
|
|
561
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
562
|
-
|
|
563
|
-
export default defineConfig({
|
|
564
|
-
plugins: [
|
|
565
|
-
intlayer(),
|
|
566
|
-
intlayerCompiler(), // 컴파일러 플러그인 추가
|
|
567
|
-
],
|
|
568
|
-
});
|
|
569
|
-
```
|
|
565
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
570
566
|
|
|
571
567
|
```bash packageManager="npm"
|
|
572
568
|
npm run build # 또는 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 - 앱을 번역하는 완전 가이드"
|
|
5
5
|
description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Svelte 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
|
|
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
|
|
22
25
|
- version: 8.9.0
|
|
23
26
|
date: 2026-05-04
|
|
24
27
|
changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -162,7 +165,7 @@ bun x intlayer init
|
|
|
162
165
|
설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
|
|
163
166
|
|
|
164
167
|
- **astro-intlayer**
|
|
165
|
-
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합
|
|
168
|
+
Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
|
|
166
169
|
|
|
167
170
|
- **svelte**
|
|
168
171
|
핵심 Svelte 패키지입니다.
|
|
@@ -250,19 +253,21 @@ export default appContent;
|
|
|
250
253
|
</Step>
|
|
251
254
|
<Step number={5} title="Astro에서 콘텐츠 사용">
|
|
252
255
|
|
|
253
|
-
`intlayer`에서 내보낸
|
|
256
|
+
`astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
|
|
257
|
+
|
|
258
|
+
로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
|
|
259
|
+
|
|
260
|
+
또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Svelte 아일랜드를 포함해야 합니다.
|
|
254
261
|
|
|
255
262
|
```astro fileName="src/pages/[...locale]/index.astro"
|
|
256
263
|
---
|
|
264
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
257
265
|
import {
|
|
258
|
-
getIntlayer,
|
|
259
|
-
getLocaleFromPath,
|
|
260
266
|
getLocalizedUrl,
|
|
261
|
-
getHTMLTextDir,
|
|
262
267
|
getPrefix,
|
|
263
268
|
localeMap,
|
|
264
269
|
defaultLocale,
|
|
265
|
-
|
|
270
|
+
getHTMLTextDir,
|
|
266
271
|
} from "intlayer";
|
|
267
272
|
import SvelteIsland from "../../components/svelte/SvelteIsland.svelte";
|
|
268
273
|
|
|
@@ -272,8 +277,11 @@ export const getStaticPaths = () => {
|
|
|
272
277
|
}));
|
|
273
278
|
};
|
|
274
279
|
|
|
275
|
-
|
|
276
|
-
const {
|
|
280
|
+
// 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
|
|
281
|
+
const { locale } = useLocale();
|
|
282
|
+
|
|
283
|
+
// 해당 로케일의 'app' 사전 내용
|
|
284
|
+
const { title } = useIntlayer("app");
|
|
277
285
|
---
|
|
278
286
|
|
|
279
287
|
<!doctype html>
|
|
@@ -329,6 +337,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
329
337
|
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
330
338
|
> ```
|
|
331
339
|
|
|
340
|
+
> `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
|
|
341
|
+
|
|
332
342
|
> **라우팅 설정에 관한 참고 사항:**
|
|
333
343
|
> 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
|
|
334
344
|
>
|
|
@@ -449,10 +459,10 @@ const pathList: SitemapUrlEntry[] = [
|
|
|
449
459
|
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
450
460
|
];
|
|
451
461
|
|
|
452
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
453
|
-
|
|
454
462
|
export const GET: APIRoute = async ({ site }) => {
|
|
455
|
-
const xmlOutput = generateSitemap(pathList, {
|
|
463
|
+
const xmlOutput = generateSitemap(pathList, {
|
|
464
|
+
siteUrl: "https://example.com",
|
|
465
|
+
});
|
|
456
466
|
|
|
457
467
|
return new Response(xmlOutput, {
|
|
458
468
|
headers: { "Content-Type": "application/xml" },
|
|
@@ -556,21 +566,7 @@ bun x intlayer extract
|
|
|
556
566
|
</Tab>
|
|
557
567
|
<Tab value='Babel compiler'>
|
|
558
568
|
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
|
|
562
|
-
|
|
563
|
-
```ts fileName="vite.config.ts"
|
|
564
|
-
import { defineConfig } from "vite";
|
|
565
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
566
|
-
|
|
567
|
-
export default defineConfig({
|
|
568
|
-
plugins: [
|
|
569
|
-
intlayer(),
|
|
570
|
-
intlayerCompiler(), // 컴파일러 플러그인을 추가합니다
|
|
571
|
-
],
|
|
572
|
-
});
|
|
573
|
-
```
|
|
569
|
+
애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
|
|
574
570
|
|
|
575
571
|
```bash packageManager="npm"
|
|
576
572
|
npm run build # 또는 npm run dev
|