@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
|
@@ -1,708 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2026-04-24
|
|
3
|
-
updatedAt: 2026-08-30
|
|
4
|
-
title: "Astro + Vanilla JS i18n - あなたのアプリを翻訳する完全ガイド"
|
|
5
|
-
description: "i18nextはもう不要。2026年に多言語(i18n)Astro + Vanilla JSアプリを構築するためのガイド。AIエージェントで翻訳し、バンドルサイズ、SEO、パフォーマンスを最適化します。"
|
|
6
|
-
keywords:
|
|
7
|
-
- 国際化
|
|
8
|
-
- ドキュメント
|
|
9
|
-
- Intlayer
|
|
10
|
-
- Astro
|
|
11
|
-
- Vanilla JS
|
|
12
|
-
- JavaScript
|
|
13
|
-
- TypeScript
|
|
14
|
-
slugs:
|
|
15
|
-
- doc
|
|
16
|
-
- environment
|
|
17
|
-
- astro
|
|
18
|
-
- vanilla
|
|
19
|
-
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
20
|
-
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
21
|
-
history:
|
|
22
|
-
- version: 8.9.0
|
|
23
|
-
date: 2026-05-04
|
|
24
|
-
changes: "Solid の useIntlayer API の使用法を直接プロパティアクセスに更新"
|
|
25
|
-
- version: 8.7.7
|
|
26
|
-
date: 2026-04-24
|
|
27
|
-
changes: "Astro + Vanilla JSの初期ドキュメント"
|
|
28
|
-
author: aymericzip
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
# Intlayerを使用したAstro + Vanilla JSサイトの翻訳 | 国際化 (i18n)
|
|
32
|
-
|
|
33
|
-
<Tabs defaultTab="code">
|
|
34
|
-
<Tab label="コード" value="code">
|
|
35
|
-
|
|
36
|
-
<iframe
|
|
37
|
-
src="https://ide.intlayer.org/aymericzip/intlayer-astro-template?file=intlayer.config.ts"
|
|
38
|
-
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
39
|
-
title="Demo CodeSandbox - Intlayerを使用してアプリケーションを国際化する方法"
|
|
40
|
-
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
41
|
-
loading="lazy"
|
|
42
|
-
/>
|
|
43
|
-
|
|
44
|
-
</Tab>
|
|
45
|
-
<Tab label="デモ" value="demo">
|
|
46
|
-
|
|
47
|
-
<iframe
|
|
48
|
-
src="https://intlayer-astro-template.vercel.app"
|
|
49
|
-
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
50
|
-
title="デモ - intlayer-astro-template"
|
|
51
|
-
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
52
|
-
loading="lazy"
|
|
53
|
-
/>
|
|
54
|
-
|
|
55
|
-
</Tab>
|
|
56
|
-
</Tabs>
|
|
57
|
-
|
|
58
|
-
## 目次
|
|
59
|
-
|
|
60
|
-
<TOC/>
|
|
61
|
-
|
|
62
|
-
## 代替手段ではなく Interlayer を使用する理由
|
|
63
|
-
|
|
64
|
-
「astro-i18n」や「i18next」などの主要なソリューションと比較して、Intlayer は次のような統合された最適化を備えたソリューションです。
|
|
65
|
-
|
|
66
|
-
<AccordionGroup>
|
|
67
|
-
<Accordion header="Full Astro coverage">
|
|
68
|
-
|
|
69
|
-
Intlayer は、**多言語ルーティング**、**サイトマップ**、および国際化 (i18n) の拡張に必要なすべての機能を提供することで、Astro と完全に連携するように最適化されています。
|
|
70
|
-
|
|
71
|
-
</Accordion>
|
|
72
|
-
<Accordion header="Bundle サイズ">
|
|
73
|
-
|
|
74
|
-
大量の JSON ファイルをページにロードするのではなく、必要なコンテンツのみをロードします。 Intlayer は、**バンドルとページのサイズを最大 50% 削減**するのに役立ちます。
|
|
75
|
-
|
|
76
|
-
</Accordion>
|
|
77
|
-
<Accordion header="保守性">
|
|
78
|
-
|
|
79
|
-
アプリケーションのコンテンツのスコープを設定すると、大規模なアプリケーションの **メンテナンスが容易になります**。コンテンツ コードベース全体を確認するという精神的な負担を負うことなく、単一の機能フォルダーを複製または削除できます。さらに、Intlayer は**完全に型指定**されており、コンテンツの正確性を保証します。
|
|
80
|
-
|
|
81
|
-
</Accordion>
|
|
82
|
-
<Accordion header="AI Agent">
|
|
83
|
-
|
|
84
|
-
コンテンツを同じ場所に配置すると、大規模言語モデル (LLM) によって **必要なコンテキストが削減**されます。 Intlayer には、翻訳の欠落をテストする **CLI**、**[LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**、**[MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)** などのツール スイートも付属しています。および **[agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/agent_skills.md)** により、AI エージェントの開発者エクスペリエンス (DX) がさらにスムーズになります。
|
|
85
|
-
|
|
86
|
-
</Accordion>
|
|
87
|
-
<Accordion header="自動化">
|
|
88
|
-
|
|
89
|
-
AI プロバイダーの費用で、選択した LLM を使用して CI/CD パイプラインで自動化を変換します。 Intlayer は、コンテンツ抽出を自動化する **コンパイラー** と、**バックグラウンドでの翻訳**を支援する [Web プラットフォーム](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md) も提供します。
|
|
90
|
-
|
|
91
|
-
</Accordion>
|
|
92
|
-
<Accordion header="パフォーマンス">
|
|
93
|
-
|
|
94
|
-
大量の JSON ファイルをコンポーネントに接続すると、パフォーマンスと反応性の問題が発生する可能性があります。 Intlayer は、ビルド時のコンテンツの読み込みを最適化します。
|
|
95
|
-
|
|
96
|
-
</Accordion>
|
|
97
|
-
<Accordion header="none-dev でのスケーリング">
|
|
98
|
-
|
|
99
|
-
Intlayer は単なる i18n ソリューションではなく、**自己ホスト型 [ビジュアル エディター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md)** と **[完全な CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)** を提供します。 **リアルタイム**で多言語コンテンツを管理できるようになり、翻訳者、コピーライター、その他のチーム メンバーとのコラボレーションがシームレスになります。コンテンツはローカルおよび/またはリモートに保存できます。
|
|
100
|
-
|
|
101
|
-
</Accordion>
|
|
102
|
-
</AccordionGroup>
|
|
103
|
-
|
|
104
|
-
## Astro + Vanilla JSへのIntlayer設定ステップバイステップガイド
|
|
105
|
-
|
|
106
|
-
GitHubで[アプリケーションテンプレート](https://github.com/aymericzip/intlayer-astro-template)を表示。
|
|
107
|
-
|
|
108
|
-
<Steps>
|
|
109
|
-
<Step number={1} title="依存関係のインストール">
|
|
110
|
-
|
|
111
|
-
お好みのパッケージマネージャーを使用して、必要なパッケージをインストールします:
|
|
112
|
-
|
|
113
|
-
```bash packageManager="npm"
|
|
114
|
-
npx intlayer init --interactive
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```bash packageManager="pnpm"
|
|
118
|
-
pnpm dlx intlayer init --interactive
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
```bash packageManager="yarn"
|
|
122
|
-
yarn dlx intlayer init --interactive
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
```bash packageManager="bun"
|
|
126
|
-
bunx intlayer init --interactive
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
> `--interactive` フラグはオプションです。AI エージェントの場合は `intlayer-cli init` を使用してください。
|
|
130
|
-
|
|
131
|
-
> このコマンドは環境を検出し、必要なパッケージをインストールします。例えば:
|
|
132
|
-
|
|
133
|
-
```bash packageManager="npm"
|
|
134
|
-
npm install intlayer astro-intlayer vanilla-intlayer
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
```bash packageManager="pnpm"
|
|
138
|
-
pnpm add intlayer astro-intlayer vanilla-intlayer
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
```bash packageManager="yarn"
|
|
142
|
-
yarn add intlayer astro-intlayer vanilla-intlayer
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
```bash packageManager="bun"
|
|
146
|
-
bun add intlayer astro-intlayer vanilla-intlayer
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
- **intlayer**
|
|
150
|
-
設定管理、翻訳、[コンテンツ宣言](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/content_file.md)、トランスパイル、および[CLIコマンド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/index.md)のための国際化ツールを提供するコアパッケージ。
|
|
151
|
-
|
|
152
|
-
- **astro-intlayer**
|
|
153
|
-
Intlayerを[Viteバンドラー](https://vite.dev/guide/why.html#why-bundle-for-production)と統合するためのAstro統合プラグイン、およびユーザーの優先ロケールの検出、クッキーの管理、URLリダイレクトの処理を行うミドルウェアが含まれています。
|
|
154
|
-
|
|
155
|
-
- **vanilla-intlayer**
|
|
156
|
-
IntlayerをVanilla JavaScript / TypeScriptアプリケーションと統合するパッケージ。UIフレームワークを使用せずに、Astroの `<script>` タグの任意の部分が言語変更に応答できるように、pub/subシングルトン (`IntlayerClient`) とコールバックベースのヘルパー (`useIntlayer`、`useLocale` など) を提供します。
|
|
157
|
-
|
|
158
|
-
</Step>
|
|
159
|
-
<Step number={2} title="プロジェクトの設定">
|
|
160
|
-
|
|
161
|
-
アプリケーションの言語を設定するための設定ファイルを作成します:
|
|
162
|
-
|
|
163
|
-
```typescript fileName="intlayer.config.ts"
|
|
164
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
165
|
-
|
|
166
|
-
const config: IntlayerConfig = {
|
|
167
|
-
internationalization: {
|
|
168
|
-
locales: [
|
|
169
|
-
Locales.ENGLISH,
|
|
170
|
-
Locales.FRENCH,
|
|
171
|
-
Locales.SPANISH,
|
|
172
|
-
// その他のロケール
|
|
173
|
-
],
|
|
174
|
-
defaultLocale: Locales.ENGLISH,
|
|
175
|
-
},
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
export default config;
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
> この設定ファイルを使用して、ローカライズされたURL、ミドルウェアのリダイレクト、クッキー名、コンテンツ宣言の場所と拡張子、コンソールでのIntlayerログの無効化などを設定できます。利用可能なパラメータの全リストについては、[設定ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)を参照してください。
|
|
182
|
-
|
|
183
|
-
</Step>
|
|
184
|
-
<Step number={3} title="Astro設定へのIntlayerの統合">
|
|
185
|
-
|
|
186
|
-
Astroの設定にintlayerプラグインを追加します。Vanilla JSの場合、追加のUIフレームワーク統合は必要ありません。
|
|
187
|
-
|
|
188
|
-
```typescript fileName="astro.config.ts"
|
|
189
|
-
// @ts-check
|
|
190
|
-
|
|
191
|
-
import { intlayer } from "astro-intlayer";
|
|
192
|
-
import { defineConfig } from "astro/config";
|
|
193
|
-
|
|
194
|
-
// https://astro.build/config
|
|
195
|
-
export default defineConfig({
|
|
196
|
-
integrations: [intlayer()],
|
|
197
|
-
});
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
> Astro統合プラグイン `intlayer()` は、IntlayerをAstroと統合するために使用されます。コンテンツ宣言ファイルの構築を確実にし、開発モードで監視します。Astroアプリケーション内でIntlayerの環境変数を定義し、パフォーマンス最適化のためのエイリアスを提供します。
|
|
201
|
-
|
|
202
|
-
</Step>
|
|
203
|
-
<Step number={4} title="コンテンツの宣言">
|
|
204
|
-
|
|
205
|
-
翻訳を保存するためのコンテンツ宣言を作成・管理します:
|
|
206
|
-
|
|
207
|
-
```typescript fileName="src/app.content.ts"
|
|
208
|
-
import { t, type Dictionary } from "intlayer";
|
|
209
|
-
|
|
210
|
-
const appContent = {
|
|
211
|
-
key: "app",
|
|
212
|
-
content: {
|
|
213
|
-
greeting: t({
|
|
214
|
-
en: "Hello World",
|
|
215
|
-
fr: "Bonjour le monde",
|
|
216
|
-
es: "Hola mundo",
|
|
217
|
-
ja: "こんにちは世界",
|
|
218
|
-
}),
|
|
219
|
-
description: t({
|
|
220
|
-
en: "Welcome to my multilingual Astro site.",
|
|
221
|
-
fr: "Bienvenue sur mon site Astro multilingue.",
|
|
222
|
-
es: "Bienvenido a mi sitio Astro multilingüe.",
|
|
223
|
-
ja: "多言語対応のAstroサイトへようこそ。",
|
|
224
|
-
}),
|
|
225
|
-
switchLocale: t({
|
|
226
|
-
en: "Switch language:",
|
|
227
|
-
fr: "Changer de langue :",
|
|
228
|
-
es: "Cambiar idioma:",
|
|
229
|
-
ja: "言語を切り替える:",
|
|
230
|
-
}),
|
|
231
|
-
},
|
|
232
|
-
} satisfies Dictionary;
|
|
233
|
-
|
|
234
|
-
export default appContent;
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
> コンテンツ宣言は、`contentDir`(デフォルトは `./src`)に含まれ、コンテンツ宣言ファイルの拡張子(デフォルトは `.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}`)と一致していれば、アプリケーション内のどこにでも定義できます。
|
|
238
|
-
|
|
239
|
-
> 詳細については、[コンテンツ宣言のドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/content_file.md)を参照してください。
|
|
240
|
-
|
|
241
|
-
</Step>
|
|
242
|
-
<Step number={5} title="Astroでのコンテンツの使用">
|
|
243
|
-
|
|
244
|
-
Vanilla JSの場合、初期のサーバーサイドレンダリングには `.astro` ファイル内で `getIntlayer` を使用してすべてのレンダリングが行われます。その後、`<script>` ブロックがクライアントサイドで `vanilla-intlayer` を初期化し、言語の切り替えを処理します。
|
|
245
|
-
|
|
246
|
-
```astro fileName="src/pages/[...locale]/index.astro"
|
|
247
|
-
---
|
|
248
|
-
import {
|
|
249
|
-
getIntlayer,
|
|
250
|
-
getLocaleFromPath,
|
|
251
|
-
getLocalizedUrl,
|
|
252
|
-
getPrefix,
|
|
253
|
-
getLocaleName,
|
|
254
|
-
localeMap,
|
|
255
|
-
locales,
|
|
256
|
-
defaultLocale,
|
|
257
|
-
getPathWithoutLocale,
|
|
258
|
-
type LocalesValues,
|
|
259
|
-
} from "intlayer";
|
|
260
|
-
|
|
261
|
-
export const getStaticPaths = () => {
|
|
262
|
-
return localeMap(({ locale }) => ({
|
|
263
|
-
params: { locale: getPrefix(locale).localePrefix },
|
|
264
|
-
}));
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
|
|
268
|
-
const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
|
|
269
|
-
const { greeting, description, switchLocale } = getIntlayer("app", locale);
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
<!doctype html>
|
|
273
|
-
<html lang={locale} dir={getHTMLTextDir(locale)}>
|
|
274
|
-
<head>
|
|
275
|
-
<meta charset="utf-8" />
|
|
276
|
-
<meta name="viewport" content="width=device-width" />
|
|
277
|
-
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
278
|
-
<title>{greeting}</title>
|
|
279
|
-
|
|
280
|
-
<!-- 正規リンク -->
|
|
281
|
-
<link
|
|
282
|
-
rel="canonical"
|
|
283
|
-
href={new URL(getLocalizedUrl(Astro.url.pathname, locale), Astro.site)}
|
|
284
|
-
/>
|
|
285
|
-
|
|
286
|
-
<!-- Hreflangリンク -->
|
|
287
|
-
{
|
|
288
|
-
localeMap(({ locale: mapLocale }) => (
|
|
289
|
-
<link
|
|
290
|
-
rel="alternate"
|
|
291
|
-
hreflang={mapLocale}
|
|
292
|
-
href={new URL(
|
|
293
|
-
getLocalizedUrl(Astro.url.pathname, mapLocale),
|
|
294
|
-
Astro.site
|
|
295
|
-
)}
|
|
296
|
-
/>
|
|
297
|
-
))
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
<link
|
|
301
|
-
rel="alternate"
|
|
302
|
-
hreflang="x-default"
|
|
303
|
-
href={new URL(
|
|
304
|
-
getLocalizedUrl(Astro.url.pathname, defaultLocale),
|
|
305
|
-
Astro.site
|
|
306
|
-
)}
|
|
307
|
-
/>
|
|
308
|
-
</head>
|
|
309
|
-
<body>
|
|
310
|
-
<main>
|
|
311
|
-
<h1 id="greeting">{greeting}</h1>
|
|
312
|
-
<p id="description">{description}</p>
|
|
313
|
-
|
|
314
|
-
<div class="locale-switcher">
|
|
315
|
-
<span class="switcher-label">{switchLocale}</span>
|
|
316
|
-
<div class="locale-buttons">
|
|
317
|
-
{
|
|
318
|
-
locales.map((localeItem) => (
|
|
319
|
-
<a
|
|
320
|
-
href={localeItem === locale ? undefined : getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
321
|
-
class={`locale-btn ${localeItem === locale ? "active" : ""}`}
|
|
322
|
-
data-locale={localeItem}
|
|
323
|
-
aria-disabled={localeItem === locale}
|
|
324
|
-
>
|
|
325
|
-
{getLocaleName(localeItem)}
|
|
326
|
-
</a>
|
|
327
|
-
))
|
|
328
|
-
}
|
|
329
|
-
</div>
|
|
330
|
-
</div>
|
|
331
|
-
</main>
|
|
332
|
-
</body>
|
|
333
|
-
</html>
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
> `alt`、`title`、`href`、`aria-label` などの `文字列` 属性でコンテンツを使用したい場合は、次のように関数の値を使用できます。
|
|
337
|
-
|
|
338
|
-
> ```tsx
|
|
339
|
-
> <img src={content.image.src.value} alt={content.image.value} />
|
|
340
|
-
> <img src={content.image.src.toString()} alt={content.image.toString()} />
|
|
341
|
-
> <img src={String(content.image.src)} alt={String(content.image)} />
|
|
342
|
-
> ```
|
|
343
|
-
|
|
344
|
-
> **ルーティング設定に関する注意:**
|
|
345
|
-
> 使用するディレクトリ構造は、`intlayer.config.ts` の `middleware.routing` 設定によります:
|
|
346
|
-
>
|
|
347
|
-
> - **`prefix-no-default`(デフォルト):** ルート(プレフィックスなし)にデフォルト言語を保持し、他の言語にはプレフィックスを付けます。すべてのケースをキャッチするために `[...locale]` を使用します。
|
|
348
|
-
> - **`prefix-all`:** すべてのURLに言語プレフィックスが付きます。ルートを個別に処理する必要がない場合は、標準の `[locale]` を使用できます。
|
|
349
|
-
> - **`search-param` または `no-prefix`:** ロケールフォルダは不要です。ロケールは検索パラメータまたはクッキーを通じて処理されます。
|
|
350
|
-
|
|
351
|
-
</Step>
|
|
352
|
-
<Step number={6} title="言語切り替え機能の追加">
|
|
353
|
-
|
|
354
|
-
AstroでのVanilla JSの場合、言語切り替えは通常のリンクとしてサーバーサイドでレンダリングされ、クライアントサイドで `<script>` ブロックを通じてハイドレーションされます。ユーザーが言語リンクをクリックすると、`vanilla-intlayer` がローカライズされたURLに移動する前に `setLocale` を通じて言語クッキーを設定します。
|
|
355
|
-
|
|
356
|
-
```astro fileName="src/pages/[...locale]/index.astro"
|
|
357
|
-
<!-- サーバーサイドのマークアップは上記のステップ5を参照 -->
|
|
358
|
-
|
|
359
|
-
<script>
|
|
360
|
-
import { installIntlayer, useLocale } from "vanilla-intlayer";
|
|
361
|
-
import { getLocaleFromPath, getLocalizedUrl, type LocalesValues } from "intlayer";
|
|
362
|
-
|
|
363
|
-
// 現在のURLからロケールを使用してクライアントサイドのIntlayerを初期化
|
|
364
|
-
const locale = getLocaleFromPath(window.location.pathname);
|
|
365
|
-
installIntlayer({ locale: locale as LocalesValues });
|
|
366
|
-
|
|
367
|
-
const { setLocale } = useLocale({
|
|
368
|
-
onLocaleChange: (newLocale: LocalesValues) => {
|
|
369
|
-
window.location.href = getLocalizedUrl(window.location.pathname, newLocale);
|
|
370
|
-
},
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
// 言語切り替えリンクにクリックイベントをアタッチ
|
|
374
|
-
const localeLinks = document.querySelectorAll("[data-locale]");
|
|
375
|
-
localeLinks.forEach((link) => {
|
|
376
|
-
link.addEventListener("click", (e) => {
|
|
377
|
-
const localeValue = link.getAttribute("data-locale") as LocalesValues;
|
|
378
|
-
if (localeValue && localeValue !== locale) {
|
|
379
|
-
e.preventDefault();
|
|
380
|
-
setLocale(localeValue);
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
|
-
});
|
|
384
|
-
</script>
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
> **固定の維持に関する注意:**
|
|
388
|
-
> `installIntlayer` は、サーバーによって定義されたロケールでIntlayerシングルトンを初期化します。`onLocaleChange` を伴う `useLocale` は、移動前にミドルウェアを介して言語クッキーを設定し、将来の訪問時にユーザーの好みが記憶されるようにします。
|
|
389
|
-
|
|
390
|
-
> **プログレッシブエンハンスメントに関する注意:**
|
|
391
|
-
> 言語切り替えリンクは、JavaScriptがなくても標準の `<a>` タグとして機能します。JSが利用可能な場合、`setLocale` の呼び出しが移動前にクッキーを更新するため、ミドルウェアが正しいリダイレクトを実行できます。
|
|
392
|
-
|
|
393
|
-
</Step>
|
|
394
|
-
<Step number={7} title="サイトマップとRobots.txt">
|
|
395
|
-
|
|
396
|
-
Intlayerは、動的にローカライズされたサイトマップとrobots.txtファイルを生成するためのユーティリティを提供します。
|
|
397
|
-
|
|
398
|
-
#### サイトマップ
|
|
399
|
-
|
|
400
|
-
Intlayer には、アプリケーションのサイトマップを簡単に作成できるサイトマップ ジェネレーターが組み込まれています。ローカライズされたルートを処理し、検索エンジンに必要なメタデータを追加します。
|
|
401
|
-
|
|
402
|
-
> Intlayer によって生成されたサイトマップは、`xhtml:link` 名前空間 (Hreflang XML Extensions) をサポートしています。生の URL のみを表示するデフォルトのサイトマップ ジェネレーターとは異なり、Intlayer はページのすべての言語バージョン (例: `/about`、`/about?lang=fr`、`/about?lang=es`) 間に必要な双方向リンクを自動的に作成します。これにより、検索エンジンが正しい言語バージョンを正しい対象者に正しくインデックス付けして提供できるようになります。
|
|
403
|
-
|
|
404
|
-
すべてのローカライズされたルートを含むサイトマップを生成するために、`src/pages/sitemap.xml.ts` を作成します。
|
|
405
|
-
|
|
406
|
-
```typescript fileName="src/pages/sitemap.xml.ts"
|
|
407
|
-
import type { APIRoute } from "astro";
|
|
408
|
-
import { generateSitemap, type SitemapUrlEntry } from "intlayer";
|
|
409
|
-
|
|
410
|
-
const pathList: SitemapUrlEntry[] = [
|
|
411
|
-
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
412
|
-
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
413
|
-
];
|
|
414
|
-
|
|
415
|
-
const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
|
|
416
|
-
|
|
417
|
-
export const GET: APIRoute = async ({ site }) => {
|
|
418
|
-
const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
|
|
419
|
-
|
|
420
|
-
return new Response(xmlOutput, {
|
|
421
|
-
headers: { "Content-Type": "application/xml" },
|
|
422
|
-
});
|
|
423
|
-
};
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
#### Robots.txt
|
|
427
|
-
|
|
428
|
-
検索エンジンのクロールを制御するために `src/pages/robots.txt.ts` を作成します。
|
|
429
|
-
|
|
430
|
-
```typescript fileName="src/pages/robots.txt.ts"
|
|
431
|
-
import type { APIRoute } from "astro";
|
|
432
|
-
import { getMultilingualUrls } from "intlayer";
|
|
433
|
-
|
|
434
|
-
const getAllMultilingualUrls = (urls: string[]) =>
|
|
435
|
-
urls.flatMap((url) => Object.values(getMultilingualUrls(url)) as string[]);
|
|
436
|
-
|
|
437
|
-
const disallowedPaths = getAllMultilingualUrls(["/admin", "/private"]);
|
|
438
|
-
|
|
439
|
-
export const GET: APIRoute = ({ site }) => {
|
|
440
|
-
const robotsTxt = [
|
|
441
|
-
"User-agent: *",
|
|
442
|
-
"Allow: /",
|
|
443
|
-
...disallowedPaths.map((path) => `Disallow: ${path}`),
|
|
444
|
-
"",
|
|
445
|
-
`Sitemap: ${new URL("/sitemap.xml", site).href}`,
|
|
446
|
-
].join("\n");
|
|
447
|
-
|
|
448
|
-
return new Response(robotsTxt, {
|
|
449
|
-
headers: { "Content-Type": "text/plain" },
|
|
450
|
-
});
|
|
451
|
-
};
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
</Step>
|
|
455
|
-
<Step number={15} title="Extract the content of your components" isOptional={true}>
|
|
456
|
-
|
|
457
|
-
If you have an existing codebase, transforming thousands of files can be time-consuming.
|
|
458
|
-
|
|
459
|
-
To ease this process, Intlayer propose a [compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md) / [extractor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/extract.md) to transform your components and extract the content.
|
|
460
|
-
|
|
461
|
-
To set it up, you can add a `compiler` section in your `intlayer.config.ts` file:
|
|
462
|
-
|
|
463
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
464
|
-
import { type IntlayerConfig } from "intlayer";
|
|
465
|
-
|
|
466
|
-
const config: IntlayerConfig = {
|
|
467
|
-
// ... Rest of your config
|
|
468
|
-
compiler: {
|
|
469
|
-
/**
|
|
470
|
-
* Indicates if the compiler should be enabled.
|
|
471
|
-
*/
|
|
472
|
-
enabled: true,
|
|
473
|
-
|
|
474
|
-
/**
|
|
475
|
-
* Defines the output files path
|
|
476
|
-
*/
|
|
477
|
-
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
478
|
-
|
|
479
|
-
/**
|
|
480
|
-
* Indicates if the components should be saved after being transformed.
|
|
481
|
-
*
|
|
482
|
-
* - If `true`, the compiler will rewrite the component file in the disk. So the transformation will be permanent, and the compiler will skip the transformation for the next process. That way, the compiler can transform the app, and then it can be removed.
|
|
483
|
-
*
|
|
484
|
-
* - If `false`, the compiler will inject the `useIntlayer()` function call into the code in the build output only, and keep the base codebase intact. The transformation will be done only in memory.
|
|
485
|
-
*/
|
|
486
|
-
saveComponents: false,
|
|
487
|
-
|
|
488
|
-
/**
|
|
489
|
-
* Dictionary key prefix
|
|
490
|
-
*/
|
|
491
|
-
dictionaryKeyPrefix: "",
|
|
492
|
-
},
|
|
493
|
-
};
|
|
494
|
-
|
|
495
|
-
export default config;
|
|
496
|
-
```
|
|
497
|
-
|
|
498
|
-
<Tabs>
|
|
499
|
-
<Tab value='Extract command'>
|
|
500
|
-
|
|
501
|
-
Run the extractor to transform your components and extract the content
|
|
502
|
-
|
|
503
|
-
```bash packageManager="npm"
|
|
504
|
-
npx intlayer extract
|
|
505
|
-
```
|
|
506
|
-
|
|
507
|
-
```bash packageManager="pnpm"
|
|
508
|
-
pnpm intlayer extract
|
|
509
|
-
```
|
|
510
|
-
|
|
511
|
-
```bash packageManager="yarn"
|
|
512
|
-
yarn intlayer extract
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
```bash packageManager="bun"
|
|
516
|
-
bun x intlayer extract
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
</Tab>
|
|
520
|
-
<Tab value='Babel compiler'>
|
|
521
|
-
|
|
522
|
-
> Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
|
|
523
|
-
|
|
524
|
-
Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
|
|
525
|
-
|
|
526
|
-
```ts fileName="vite.config.ts"
|
|
527
|
-
import { defineConfig } from "vite";
|
|
528
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
529
|
-
|
|
530
|
-
export default defineConfig({
|
|
531
|
-
plugins: [
|
|
532
|
-
intlayer(),
|
|
533
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
534
|
-
],
|
|
535
|
-
});
|
|
536
|
-
```
|
|
537
|
-
|
|
538
|
-
```bash packageManager="npm"
|
|
539
|
-
npm run build # Or npm run dev
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
```bash packageManager="pnpm"
|
|
543
|
-
pnpm run build # Or pnpm run dev
|
|
544
|
-
```
|
|
545
|
-
|
|
546
|
-
```bash packageManager="yarn"
|
|
547
|
-
yarn build # Or yarn dev
|
|
548
|
-
```
|
|
549
|
-
|
|
550
|
-
```bash packageManager="bun"
|
|
551
|
-
bun run build # Or bun run dev
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
</Tab>
|
|
555
|
-
</Tabs>
|
|
556
|
-
|
|
557
|
-
</Step>
|
|
558
|
-
|
|
559
|
-
</Steps>
|
|
560
|
-
|
|
561
|
-
### TypeScriptの設定
|
|
562
|
-
|
|
563
|
-
Intlayerはモジュール拡張を使用してTypeScriptの利点を活かし、コードベースをより堅牢にします。
|
|
564
|
-
|
|
565
|
-

|
|
566
|
-
|
|
567
|
-

|
|
568
|
-
|
|
569
|
-
TypeScriptの設定に自動生成された型が含まれていることを確認してください。
|
|
570
|
-
|
|
571
|
-
```json5 fileName="tsconfig.json"
|
|
572
|
-
{
|
|
573
|
-
// ... 既存のTypeScript設定
|
|
574
|
-
include: [
|
|
575
|
-
// ... 既存のTypeScript設定
|
|
576
|
-
".intlayer/**/*.ts", // 自動生成された型を含める
|
|
577
|
-
],
|
|
578
|
-
}
|
|
579
|
-
```
|
|
580
|
-
|
|
581
|
-
### Gitの設定
|
|
582
|
-
|
|
583
|
-
Intlayerによって生成されたファイルを無視することをお勧めします。これにより、それらをGitリポジトリにコミットすることを避けることができます。
|
|
584
|
-
|
|
585
|
-
そのためには、`.gitignore`ファイルに以下の指示を追加してください:
|
|
586
|
-
|
|
587
|
-
```bash
|
|
588
|
-
# Intlayerによって生成されたファイルを無視
|
|
589
|
-
.intlayer
|
|
590
|
-
```
|
|
591
|
-
|
|
592
|
-
### VS Code拡張機能
|
|
593
|
-
|
|
594
|
-
Intlayerを使用した開発体験を向上させるために、**公式のIntlayer VS Code拡張機能**をインストールできます。
|
|
595
|
-
|
|
596
|
-
[VS Code Marketplaceからインストール](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
597
|
-
|
|
598
|
-
この拡張機能は以下を提供します:
|
|
599
|
-
|
|
600
|
-
- 翻訳キーの**オートコンプリート**。
|
|
601
|
-
- 欠落している翻訳の**リアルタイムエラー検出**。
|
|
602
|
-
- 翻訳されたコンテンツの**インラインプレビュー**。
|
|
603
|
-
- 翻訳を簡単に作成・更新するための**クイックアクション**。
|
|
604
|
-
|
|
605
|
-
拡張機能の使用方法の詳細については、[Intlayer VS Code拡張機能のドキュメント](https://intlayer.org/doc/vs-code-extension)を参照してください。
|
|
606
|
-
|
|
607
|
-
### さらに詳しく
|
|
608
|
-
|
|
609
|
-
さらに詳しく知りたい場合は、[ビジュアルエディター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)を実装したり、[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md)を使用してコンテンツを外部化したりすることもできます。
|
|
610
|
-
|
|
611
|
-
## よくある質問
|
|
612
|
-
|
|
613
|
-
<FAQ>
|
|
614
|
-
|
|
615
|
-
<Question title="UIフレームワークなしでAstroサイトを国際化するための利用可能なソリューションにはどのようなものがありますか?">
|
|
616
|
-
|
|
617
|
-
Astroの組み込み`i18n`オプションはロケールプレフィックスとリダイレクトを処理しますが、コンテンツの管理はユーザーに委ねられています。そこから、以下の選択肢があります。
|
|
618
|
-
|
|
619
|
-
- **手書きの辞書**:各ページでインポートされるプレーンなJSONまたはTypeScriptオブジェクト。依存関係はありませんが、型付け、複数形ルール、翻訳漏れを見つけるためのツールはありません。
|
|
620
|
-
- **`Intlayer`**:最も高度なソリューションです。コードベースのどこにでも宣言されたコンテンツ([各コンポーネントの隣、または一元化された場所](https://intlayer.org/blog/per-component-vs-centralized-i18n))、ビルド時にコンパイルされ型付けされます。AI翻訳、CIでの翻訳漏れチェック、ビジュアルエディター、CMSを備えています。
|
|
621
|
-
|
|
622
|
-
UIフレームワークがない場合、i18nライブラリのランタイムコストは避けたいものです。Intlayerはビルド時にコンテンツを解決するため、静的なAstroページは翻訳されたHTMLを配信し、辞書は一切含まれません。[Intlayerの利点](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/interest_of_intlayer.md)をご覧ください。
|
|
623
|
-
|
|
624
|
-
</Question>
|
|
625
|
-
<Question title="i18nはAstroのbundleサイズにどれくらい影響しますか?">
|
|
626
|
-
|
|
627
|
-
名前空間ベースのセットアップよりもはるかに少ないです。なぜなら、ページはレンダリングしないカタログをダウンロードしないからです。Astroページはビルド時にレンダリングされるため、翻訳されたHTMLを配信し、辞書は一切含まれません。islandのみが辞書を受け取ります。ビルド時コンパイラは、コンポーネントが使用する正確なエントリにコンテンツ呼び出しを解決し、[動的辞書](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dynamic_dictionaries/index.md)は残りをロケールごとに分割します。通常の代替案と比較して、Intlayerはbundleとページサイズを最大50%削減します。[bundle最適化](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/bundle_optimization.md)と[ベンチマーク](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/benchmark/index.md)をご覧ください。
|
|
628
|
-
|
|
629
|
-
</Question>
|
|
630
|
-
<Question title="コンポーネントを書き直さずに`i18next`や手書きの辞書から移行できますか?">
|
|
631
|
-
|
|
632
|
-
ほとんどの場合可能です。[i18next移行ガイド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/migration_from_i18next_to_intlayer.md)に従ってコンテンツを移行してください。段階的に移行することもできます。[sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/plugins/sync-json.md)は、既存のJSONカタログを信頼できる情報源として保持し、それらからIntlayer辞書を生成するため、コンポーネントを一つずつ移行する間も両方のレイヤーが同期を保ちます。
|
|
633
|
-
|
|
634
|
-
</Question>
|
|
635
|
-
<Question title="既存のJSON翻訳ファイルを保持できますか?">
|
|
636
|
-
|
|
637
|
-
はい、できます。[sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/plugins/sync-json.md)は、`/messages/{locale}/{namespace}.json`ファイルを信頼できる情報源として保持し、双方向でそれらからIntlayer辞書を生成します。[sync PO plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/plugins/sync-po.md)はgettextカタログに対しても同様の機能を提供し、[per locale files](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/per_locale_file.md)を使用すると、ロケールを1つのファイルにまとめるのではなく、言語ごとにコンテンツを分割できます。
|
|
638
|
-
|
|
639
|
-
</Question>
|
|
640
|
-
<Question title="コンテンツをキーごとに移動する必要がありますか?">
|
|
641
|
-
|
|
642
|
-
いいえ。`npx intlayer extract`を実行すると、Intlayerはコンポーネントを読み取り、ユーザー向けの文字列を抽出し、それぞれの隣に`.content`ファイルを書き込みます。これにより、文字列をカタログに一つずつコピーする代わりに、差分を確認できます。このガイドのステップ15でその手順を説明しています。
|
|
643
|
-
|
|
644
|
-
完全に自動化されたパイプラインの場合、[Intlayer Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md)がビルド時に同じことを行います。変更があるたびにJSX、TSX、Vue、Svelteのソースをスキャンし、辞書を生成し、ホットモジュールリプレイスメントを通じて同期を保つため、手動でキーを管理する必要は一切ありません。
|
|
645
|
-
|
|
646
|
-
コンパイラをオンにする前に知っておくべき2つの制限があります。静的解析によって機能するため、APIエラーコードやCMSフィールドなど、ランタイムにのみ存在する文字列は対象外となります。また、`className="active"`のようなアプリケーションロジックとユーザー向けのテキストを区別する必要があり、大規模なコードベースではいくつかの注釈が必要になります。[extract command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/extract.md)は、ユーザーが関与することでこれら両方を回避します。
|
|
647
|
-
|
|
648
|
-
</Question>
|
|
649
|
-
<Question title="利用可能なエディターとAIエージェントツールにはどのようなものがありますか?">
|
|
650
|
-
|
|
651
|
-
5つのツールがあり、すべてオプションです。
|
|
652
|
-
|
|
653
|
-
- **[VS Code extension](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/vs_code_extension.md)**: `useIntlayer`キーからそれを宣言するコンテンツファイルにジャンプしたり、コンポーネントからコンテンツを抽出したり、コマンドパレットまたは専用のIntlayerタブからビルド、フィル、テスト、プッシュ、プルを実行したりできます。
|
|
654
|
-
- **[LSP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/lsp.md)**: LSPをサポートする任意のエディターで同様の認識機能を提供します。定義へのジャンプ、すべての参照の検索、翻訳された値のホバープレビュー、キーとフィールドのオートコンプリート、キーがどこにも宣言されていない場合の警告などがあります。また、`i18next`、`react-i18next`、`next-intl`、`use-intl`の呼び出しも解決するため、移行中に役立ちます。
|
|
655
|
-
- **[MCP server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/mcp_server.md)**: IntlayerのドキュメントとCLIをCursor、VS Code、Claude Desktop、Claude Code、ChatGPTに公開します。これにより、アシスタントは推測ではなく現在のドキュメントから回答し、`intlayer fill`などのコマンドを自分で実行できます。
|
|
656
|
-
- **[Agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/agent_skills.md)**: `intlayer-config`、`intlayer-cli`、`intlayer-content`などの特化したスキルに加え、フレームワークごとのスキルがあり、エージェントにルーティング設定とコンテンツノードタイプを教えます。
|
|
657
|
-
- **[ESLint plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/eslint.md)**: `no-raw-text`はハードコードされた文字列にフラグを立て、静的辞書キーと未使用コンテンツに関する追加ルールを提供します。
|
|
658
|
-
|
|
659
|
-
</Question>
|
|
660
|
-
<Question title="翻訳を機能させるためにページにJavaScriptが必要ですか?">
|
|
661
|
-
|
|
662
|
-
いいえ、必要ありません。Astroはビルド時にページをレンダリングし、Intlayerはそのレンダリング中にコンテンツを解決するため、生成されたHTMLにはすでに翻訳されたテキストが含まれています。`vanilla-intlayer`は、ブラウザでインタラクティブにする部分にのみ必要です。
|
|
663
|
-
|
|
664
|
-
</Question>
|
|
665
|
-
<Question title="後からコンテンツを変更せずにインタラクティブなislandを追加できますか?">
|
|
666
|
-
|
|
667
|
-
はい、可能です。それが単一コンテンツレイヤーの利点です。同じ宣言がページ上の`astro-intlayer`と、追加するどのislandのフレームワークバインディング([React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_astro_react.md)、[Vue](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_astro_vue.md)、[Svelte](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_astro_svelte.md)、[Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_astro_solid.md)、[Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_astro_preact.md)、[Lit](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_astro_lit.md)のいずれであっても)によって読み取られます。
|
|
668
|
-
|
|
669
|
-
</Question>
|
|
670
|
-
<Question title="ローカライズされたルーティングとロケールスイッチャーはどのように設定しますか?">
|
|
671
|
-
|
|
672
|
-
ステップ6でスイッチャーについて説明しています。`routing.mode`はURLスキームを決定します。`"prefix-no-default"`(デフォルト)、`"prefix-all"`、`"no-prefix"`、または`"search-params"`があり、`routing.domains`はロケールを独自のドメインにマッピングします。`getLocalizedUrl`は現在のパスを書き換え、言語を切り替えても読者が同じページに留まるようにします。[設定リファレンス](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)をご覧ください。
|
|
673
|
-
|
|
674
|
-
</Question>
|
|
675
|
-
<Question title="ローカライズされたsitemapとhreflangタグはどのように生成しますか?">
|
|
676
|
-
|
|
677
|
-
ステップ7で`sitemap.xml`と`robots.txt`について説明しています。`getMultilingualUrls`は、宣言されたすべてのロケール(検索エンジンがページの適切な言語バージョンを提供するために使用する`x-default`を含む)の代替URLを構築します。
|
|
678
|
-
|
|
679
|
-
</Question>
|
|
680
|
-
<Question title="AIでサイトを自動翻訳するにはどうすればよいですか?">
|
|
681
|
-
|
|
682
|
-
`npx intlayer fill`を実行します。これにより、選択したLLMを使用して、ご自身のプロバイダーとAPIキーで不足している翻訳を埋めます。`--git-diff`を使用すると、ブランチで変更されたコンテンツに実行を限定できます。[fill command](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/fill.md)と[CI/CD integration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/CI_CD.md)をご覧ください。
|
|
683
|
-
|
|
684
|
-
</Question>
|
|
685
|
-
<Question title="Intlayerは複数形、性別、リッチテキストをサポートしていますか?">
|
|
686
|
-
|
|
687
|
-
はい、サポートしています。[複数形](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/plurial.md)、[性別に基づくコンテンツ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/gender.md)、条件、[挿入](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/insertion.md)、長文テキスト用の[Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/markdown.md)、そして数値、日付、通貨用の[フォーマッター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/formatters.md)に対応しています。
|
|
688
|
-
|
|
689
|
-
</Question>
|
|
690
|
-
<Question title="翻訳者はコードに触れずにコンテンツを編集できますか?">
|
|
691
|
-
|
|
692
|
-
[ビジュアルエディター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)を使用できます。これはご自身のインフラストラクチャで動作し、実行中のアプリ上で誰でもテキストを直接編集できます。または、コンテンツを外部化してデプロイなしで変更できる[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md)も利用できます。
|
|
693
|
-
|
|
694
|
-
</Question>
|
|
695
|
-
<Question title="ビジュアルエディターのコストはどれくらいですか?不要な場合はオーバースペックですか?">
|
|
696
|
-
|
|
697
|
-
Intlayerの[ビジュアルエディター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)は、セットアップされていない場合はアプリケーションへの**コストはゼロ**です。追加のロジックは、明示的に有効化され、必要な場合にのみ読み込まれます。
|
|
698
|
-
|
|
699
|
-
有効にした場合でも、ロジックの大半は[app.intlayer.org](https://app.intlayer.org)のサーバーエディターまたは`intlayer-editor`パッケージによって処理されるため、負荷は極めて軽量です(有効化時に動的に読み込まれる+5 kBのみ)。ビジュアル編集を必要とせず、シンプルな翻訳ソリューションのみが必要な場合、Intlayerがアプリにオーバーヘッドを追加することはありません。
|
|
700
|
-
|
|
701
|
-
</Question>
|
|
702
|
-
<Question title="Intlayerは無料でオープンソースですか?">
|
|
703
|
-
|
|
704
|
-
はい、Apache 2.0ライセンスの下で、商用利用を含め無料でオープンソースです。ホスト型CMSはオプションの有料サービスですが、[セルフホスト](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/self_hosting.md)することも可能です。
|
|
705
|
-
|
|
706
|
-
</Question>
|
|
707
|
-
|
|
708
|
-
</FAQ>
|