@intlayer/docs 9.4.1 → 9.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/blog/ar/hreflang_guide_multilingual_seo.md +317 -0
- package/blog/ar/intlayer_with_i18next.md +0 -2
- package/blog/ar/intlayer_with_next-i18next.md +0 -4
- package/blog/ar/intlayer_with_vue-i18n.md +0 -4
- package/blog/de/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/de/intlayer_with_vue-i18n.md +0 -4
- package/blog/en/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/en/intlayer_with_i18next.md +0 -2
- package/blog/en/intlayer_with_next-i18next.md +0 -2
- package/blog/en/intlayer_with_next-intl.md +0 -2
- package/blog/en/intlayer_with_react-intl.md +0 -2
- package/blog/en/intlayer_with_vue-i18n.md +0 -2
- package/blog/en-GB/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/es/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/fr/hreflang_guide_multilingual_seo.md +315 -0
- package/blog/hi/hreflang_guide_multilingual_seo.md +323 -0
- package/blog/hi/intlayer_with_i18next.md +0 -2
- package/blog/hi/intlayer_with_next-i18next.md +0 -4
- package/blog/hi/intlayer_with_vue-i18n.md +0 -4
- package/blog/id/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/id/intlayer_with_i18next.md +0 -2
- package/blog/id/intlayer_with_next-i18next.md +0 -4
- package/blog/id/intlayer_with_vue-i18n.md +0 -4
- package/blog/it/hreflang_guide_multilingual_seo.md +315 -0
- package/blog/it/intlayer_with_i18next.md +0 -2
- package/blog/it/intlayer_with_next-i18next.md +0 -4
- package/blog/it/intlayer_with_vue-i18n.md +0 -4
- package/blog/ja/hreflang_guide_multilingual_seo.md +320 -0
- package/blog/ko/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/ko/intlayer_with_i18next.md +0 -2
- package/blog/ko/intlayer_with_next-i18next.md +0 -4
- package/blog/ko/intlayer_with_vue-i18n.md +0 -4
- package/blog/pl/hreflang_guide_multilingual_seo.md +316 -0
- package/blog/pt/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/pt/intlayer_with_i18next.md +0 -2
- package/blog/pt/intlayer_with_next-i18next.md +0 -4
- package/blog/pt/intlayer_with_vue-i18n.md +0 -4
- package/blog/ru/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/tr/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/tr/intlayer_with_i18next.md +0 -2
- package/blog/tr/intlayer_with_next-i18next.md +0 -4
- package/blog/tr/intlayer_with_vue-i18n.md +0 -4
- package/blog/uk/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/uk/intlayer_with_i18next.md +0 -2
- package/blog/uk/intlayer_with_next-i18next.md +0 -2
- package/blog/uk/intlayer_with_next-intl.md +0 -2
- package/blog/uk/intlayer_with_react-intl.md +0 -2
- package/blog/uk/intlayer_with_vue-i18n.md +0 -2
- package/blog/vi/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/vi/intlayer_with_i18next.md +0 -2
- package/blog/vi/intlayer_with_next-i18next.md +0 -4
- package/blog/vi/intlayer_with_vue-i18n.md +0 -4
- package/blog/zh/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/zh/intlayer_with_i18next.md +0 -2
- package/blog/zh/intlayer_with_next-i18next.md +0 -2
- package/blog/zh/intlayer_with_next-intl.md +0 -2
- package/blog/zh/intlayer_with_react-intl.md +0 -2
- package/blog/zh/intlayer_with_vue-i18n.md +0 -2
- package/dist/cjs/common.cjs +29 -6
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +20 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/common.mjs +29 -6
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +20 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/analytics.md +458 -12
- package/docs/ar/configuration.md +98 -0
- package/docs/ar/dictionary/content_file.md +4 -4
- package/docs/ar/dictionary/html.md +117 -1
- package/docs/ar/dictionary/markdown.md +18 -1
- package/docs/ar/dictionary/plurial.md +5 -2
- package/docs/ar/how_works_intlayer.md +92 -0
- package/docs/ar/interest_of_intlayer.md +106 -9
- package/docs/ar/intlayer_CMS.md +92 -0
- package/docs/ar/intlayer_visual_editor.md +87 -1
- package/docs/ar/intlayer_with_adonisjs.md +121 -0
- package/docs/ar/intlayer_with_analog.md +116 -8
- package/docs/ar/intlayer_with_angular_19.md +115 -8
- package/docs/ar/intlayer_with_angular_21.md +109 -8
- package/docs/ar/intlayer_with_astro.md +117 -20
- package/docs/ar/intlayer_with_astro_lit.md +118 -10
- package/docs/ar/intlayer_with_astro_preact.md +118 -10
- package/docs/ar/intlayer_with_astro_react.md +118 -10
- package/docs/ar/intlayer_with_astro_solid.md +118 -10
- package/docs/ar/intlayer_with_astro_svelte.md +118 -10
- package/docs/ar/intlayer_with_astro_vanilla.md +112 -10
- package/docs/ar/intlayer_with_astro_vue.md +118 -10
- package/docs/ar/intlayer_with_create_react_app.md +105 -0
- package/docs/ar/intlayer_with_elysia.md +121 -0
- package/docs/ar/intlayer_with_express.md +114 -0
- package/docs/ar/intlayer_with_fastify.md +115 -0
- package/docs/ar/intlayer_with_hono.md +114 -0
- package/docs/ar/intlayer_with_htmx.md +771 -0
- package/docs/ar/intlayer_with_lynx+react.md +7 -14
- package/docs/ar/intlayer_with_nestjs.md +115 -0
- package/docs/ar/intlayer_with_nextjs_14.md +144 -120
- package/docs/ar/intlayer_with_nextjs_15.md +126 -51
- package/docs/ar/intlayer_with_nextjs_16.md +127 -49
- package/docs/ar/intlayer_with_nextjs_compiler.md +122 -13
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +121 -9
- package/docs/ar/intlayer_with_nextjs_page_router.md +139 -107
- package/docs/ar/intlayer_with_nuxt.md +110 -8
- package/docs/ar/intlayer_with_react_native+expo.md +102 -7
- package/docs/ar/intlayer_with_react_router_v7.md +119 -10
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +122 -22
- package/docs/ar/intlayer_with_solid_start.md +115 -1
- package/docs/ar/intlayer_with_storybook.md +7 -20
- package/docs/ar/intlayer_with_svelte_kit.md +107 -17
- package/docs/ar/intlayer_with_tanstack+solid.md +124 -22
- package/docs/ar/intlayer_with_tanstack.md +134 -43
- package/docs/ar/intlayer_with_vanilla.md +117 -9
- package/docs/ar/intlayer_with_vite+lit.md +118 -8
- package/docs/ar/intlayer_with_vite+preact.md +148 -40
- package/docs/ar/intlayer_with_vite+react.md +108 -20
- package/docs/ar/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/ar/intlayer_with_vite+solid.md +114 -5
- package/docs/ar/intlayer_with_vite+svelte.md +118 -8
- package/docs/ar/intlayer_with_vite+vanilla.md +125 -8
- package/docs/ar/intlayer_with_vite+vue.md +105 -9
- package/docs/ar/introduction.md +104 -1
- package/docs/ar/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ar/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ar/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ar/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ar/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ar/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/bn/introduction.md +0 -1
- package/docs/cs/interest_of_intlayer.md +0 -1
- package/docs/cs/intlayer_with_storybook.md +0 -12
- package/docs/cs/intlayer_with_vanilla.md +2 -1
- package/docs/cs/introduction.md +0 -1
- package/docs/de/analytics.md +458 -12
- package/docs/de/configuration.md +99 -1
- package/docs/de/dictionary/content_file.md +4 -4
- package/docs/de/dictionary/markdown.md +3 -0
- package/docs/de/dictionary/plurial.md +6 -3
- package/docs/de/how_works_intlayer.md +93 -1
- package/docs/de/interest_of_intlayer.md +97 -2
- package/docs/de/intlayer_CMS.md +93 -1
- package/docs/de/intlayer_visual_editor.md +88 -2
- package/docs/de/intlayer_with_adonisjs.md +121 -1
- package/docs/de/intlayer_with_analog.md +111 -2
- package/docs/de/intlayer_with_angular_19.md +109 -2
- package/docs/de/intlayer_with_angular_21.md +103 -2
- package/docs/de/intlayer_with_astro.md +111 -14
- package/docs/de/intlayer_with_astro_lit.md +112 -4
- package/docs/de/intlayer_with_astro_preact.md +112 -4
- package/docs/de/intlayer_with_astro_react.md +112 -4
- package/docs/de/intlayer_with_astro_solid.md +112 -4
- package/docs/de/intlayer_with_astro_svelte.md +112 -4
- package/docs/de/intlayer_with_astro_vanilla.md +106 -4
- package/docs/de/intlayer_with_astro_vue.md +112 -4
- package/docs/de/intlayer_with_create_react_app.md +107 -2
- package/docs/de/intlayer_with_elysia.md +121 -1
- package/docs/de/intlayer_with_express.md +115 -1
- package/docs/de/intlayer_with_fastify.md +115 -1
- package/docs/de/intlayer_with_hono.md +115 -1
- package/docs/de/intlayer_with_htmx.md +770 -0
- package/docs/de/intlayer_with_lynx+react.md +0 -7
- package/docs/de/intlayer_with_nestjs.md +115 -1
- package/docs/de/intlayer_with_nextjs_14.md +138 -110
- package/docs/de/intlayer_with_nextjs_15.md +120 -45
- package/docs/de/intlayer_with_nextjs_16.md +147 -51
- package/docs/de/intlayer_with_nextjs_compiler.md +113 -3
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/de/intlayer_with_nextjs_page_router.md +121 -95
- package/docs/de/intlayer_with_nuxt.md +104 -2
- package/docs/de/intlayer_with_react_native+expo.md +103 -8
- package/docs/de/intlayer_with_react_router_v7.md +113 -4
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/de/intlayer_with_solid_start.md +117 -2
- package/docs/de/intlayer_with_storybook.md +0 -13
- package/docs/de/intlayer_with_svelte_kit.md +99 -2
- package/docs/de/intlayer_with_tanstack+solid.md +119 -16
- package/docs/de/intlayer_with_tanstack.md +231 -152
- package/docs/de/intlayer_with_vanilla.md +111 -3
- package/docs/de/intlayer_with_vite+lit.md +113 -2
- package/docs/de/intlayer_with_vite+preact.md +170 -33
- package/docs/de/intlayer_with_vite+react.md +102 -6
- package/docs/de/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/de/intlayer_with_vite+solid.md +113 -2
- package/docs/de/intlayer_with_vite+svelte.md +113 -2
- package/docs/de/intlayer_with_vite+vanilla.md +119 -2
- package/docs/de/intlayer_with_vite+vue.md +98 -2
- package/docs/de/introduction.md +105 -2
- package/docs/de/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/de/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/de/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/de/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/de/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en/configuration.md +99 -1
- package/docs/en/dictionary/content_file.md +4 -4
- package/docs/en/how_works_intlayer.md +93 -1
- package/docs/en/interest_of_intlayer.md +97 -2
- package/docs/en/intlayer_CMS.md +93 -1
- package/docs/en/intlayer_visual_editor.md +88 -2
- package/docs/en/intlayer_with_adonisjs.md +121 -1
- package/docs/en/intlayer_with_analog.md +111 -2
- package/docs/en/intlayer_with_angular_19.md +109 -2
- package/docs/en/intlayer_with_angular_21.md +103 -2
- package/docs/en/intlayer_with_astro.md +107 -4
- package/docs/en/intlayer_with_astro_lit.md +112 -4
- package/docs/en/intlayer_with_astro_preact.md +112 -4
- package/docs/en/intlayer_with_astro_react.md +112 -4
- package/docs/en/intlayer_with_astro_solid.md +112 -4
- package/docs/en/intlayer_with_astro_svelte.md +112 -4
- package/docs/en/intlayer_with_astro_vanilla.md +106 -4
- package/docs/en/intlayer_with_astro_vue.md +112 -4
- package/docs/en/intlayer_with_create_react_app.md +105 -2
- package/docs/en/intlayer_with_elysia.md +121 -1
- package/docs/en/intlayer_with_express.md +115 -1
- package/docs/en/intlayer_with_fastify.md +115 -1
- package/docs/en/intlayer_with_hono.md +115 -1
- package/docs/en/intlayer_with_htmx.md +754 -0
- package/docs/en/intlayer_with_lynx+react.md +0 -7
- package/docs/en/intlayer_with_nestjs.md +115 -1
- package/docs/en/intlayer_with_nextjs_14.md +120 -43
- package/docs/en/intlayer_with_nextjs_15.md +120 -44
- package/docs/en/intlayer_with_nextjs_16.md +121 -43
- package/docs/en/intlayer_with_nextjs_compiler.md +111 -2
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/en/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/en/intlayer_with_nuxt.md +104 -2
- package/docs/en/intlayer_with_react_native+expo.md +103 -8
- package/docs/en/intlayer_with_react_router_v7.md +113 -4
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +112 -5
- package/docs/en/intlayer_with_solid_start.md +117 -2
- package/docs/en/intlayer_with_storybook.md +0 -13
- package/docs/en/intlayer_with_svelte_kit.md +99 -2
- package/docs/en/intlayer_with_tanstack+solid.md +120 -16
- package/docs/en/intlayer_with_tanstack.md +114 -16
- package/docs/en/intlayer_with_vanilla.md +111 -3
- package/docs/en/intlayer_with_vite+lit.md +113 -2
- package/docs/en/intlayer_with_vite+preact.md +143 -34
- package/docs/en/intlayer_with_vite+react.md +101 -4
- package/docs/en/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/en/intlayer_with_vite+solid.md +113 -2
- package/docs/en/intlayer_with_vite+svelte.md +113 -2
- package/docs/en/intlayer_with_vite+vanilla.md +119 -2
- package/docs/en/intlayer_with_vite+vue.md +98 -2
- package/docs/en/introduction.md +105 -2
- package/docs/en/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/en/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/en/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/en/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/en/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en-GB/analytics.md +527 -58
- package/docs/en-GB/configuration.md +99 -1
- package/docs/en-GB/dictionary/content_file.md +4 -4
- package/docs/en-GB/dictionary/html.md +117 -1
- package/docs/en-GB/dictionary/markdown.md +18 -1
- package/docs/en-GB/dictionary/plurial.md +5 -2
- package/docs/en-GB/dictionary/translation.md +1 -1
- package/docs/en-GB/how_works_intlayer.md +93 -1
- package/docs/en-GB/interest_of_intlayer.md +97 -2
- package/docs/en-GB/intlayer_CMS.md +93 -1
- package/docs/en-GB/intlayer_visual_editor.md +88 -2
- package/docs/en-GB/intlayer_with_adonisjs.md +121 -1
- package/docs/en-GB/intlayer_with_analog.md +111 -2
- package/docs/en-GB/intlayer_with_angular_19.md +109 -2
- package/docs/en-GB/intlayer_with_angular_21.md +103 -2
- package/docs/en-GB/intlayer_with_astro.md +111 -14
- package/docs/en-GB/intlayer_with_astro_lit.md +112 -4
- package/docs/en-GB/intlayer_with_astro_preact.md +112 -4
- package/docs/en-GB/intlayer_with_astro_react.md +112 -4
- package/docs/en-GB/intlayer_with_astro_solid.md +112 -4
- package/docs/en-GB/intlayer_with_astro_svelte.md +112 -4
- package/docs/en-GB/intlayer_with_astro_vanilla.md +106 -4
- package/docs/en-GB/intlayer_with_astro_vue.md +112 -4
- package/docs/en-GB/intlayer_with_create_react_app.md +105 -2
- package/docs/en-GB/intlayer_with_elysia.md +121 -1
- package/docs/en-GB/intlayer_with_express.md +115 -1
- package/docs/en-GB/intlayer_with_fastify.md +115 -1
- package/docs/en-GB/intlayer_with_hono.md +115 -1
- package/docs/en-GB/intlayer_with_htmx.md +757 -0
- package/docs/en-GB/intlayer_with_lynx+react.md +0 -7
- package/docs/en-GB/intlayer_with_nestjs.md +115 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +120 -44
- package/docs/en-GB/intlayer_with_nextjs_15.md +123 -45
- package/docs/en-GB/intlayer_with_nextjs_16.md +121 -44
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +121 -12
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +122 -137
- package/docs/en-GB/intlayer_with_nuxt.md +104 -2
- package/docs/en-GB/intlayer_with_react_native+expo.md +103 -8
- package/docs/en-GB/intlayer_with_react_router_v7.md +113 -4
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/en-GB/intlayer_with_solid_start.md +117 -2
- package/docs/en-GB/intlayer_with_storybook.md +0 -13
- package/docs/en-GB/intlayer_with_svelte_kit.md +99 -2
- package/docs/en-GB/intlayer_with_tanstack+solid.md +120 -16
- package/docs/en-GB/intlayer_with_tanstack.md +255 -167
- package/docs/en-GB/intlayer_with_vanilla.md +111 -3
- package/docs/en-GB/intlayer_with_vite+lit.md +113 -2
- package/docs/en-GB/intlayer_with_vite+preact.md +179 -32
- package/docs/en-GB/intlayer_with_vite+react.md +101 -13
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/en-GB/intlayer_with_vite+solid.md +118 -2
- package/docs/en-GB/intlayer_with_vite+svelte.md +113 -11
- package/docs/en-GB/intlayer_with_vite+vanilla.md +119 -2
- package/docs/en-GB/intlayer_with_vite+vue.md +102 -8
- package/docs/en-GB/introduction.md +105 -2
- package/docs/en-GB/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/en-GB/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/es/analytics.md +458 -12
- package/docs/es/configuration.md +99 -1
- package/docs/es/dictionary/content_file.md +4 -4
- package/docs/es/dictionary/markdown.md +18 -1
- package/docs/es/dictionary/plurial.md +5 -2
- package/docs/es/how_works_intlayer.md +93 -1
- package/docs/es/interest_of_intlayer.md +97 -2
- package/docs/es/intlayer_CMS.md +93 -1
- package/docs/es/intlayer_visual_editor.md +88 -2
- package/docs/es/intlayer_with_adonisjs.md +121 -1
- package/docs/es/intlayer_with_analog.md +111 -2
- package/docs/es/intlayer_with_angular_19.md +109 -2
- package/docs/es/intlayer_with_angular_21.md +103 -2
- package/docs/es/intlayer_with_astro.md +111 -14
- package/docs/es/intlayer_with_astro_lit.md +112 -4
- package/docs/es/intlayer_with_astro_preact.md +112 -4
- package/docs/es/intlayer_with_astro_react.md +112 -4
- package/docs/es/intlayer_with_astro_solid.md +112 -4
- package/docs/es/intlayer_with_astro_svelte.md +112 -4
- package/docs/es/intlayer_with_astro_vanilla.md +106 -4
- package/docs/es/intlayer_with_astro_vue.md +112 -4
- package/docs/es/intlayer_with_create_react_app.md +107 -2
- package/docs/es/intlayer_with_elysia.md +121 -1
- package/docs/es/intlayer_with_express.md +115 -1
- package/docs/es/intlayer_with_fastify.md +115 -1
- package/docs/es/intlayer_with_hono.md +115 -1
- package/docs/es/intlayer_with_htmx.md +763 -0
- package/docs/es/intlayer_with_lynx+react.md +0 -7
- package/docs/es/intlayer_with_nestjs.md +115 -1
- package/docs/es/intlayer_with_nextjs_14.md +120 -44
- package/docs/es/intlayer_with_nextjs_15.md +123 -45
- package/docs/es/intlayer_with_nextjs_16.md +142 -52
- package/docs/es/intlayer_with_nextjs_compiler.md +122 -12
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/es/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/es/intlayer_with_nuxt.md +104 -2
- package/docs/es/intlayer_with_react_native+expo.md +103 -8
- package/docs/es/intlayer_with_react_router_v7.md +113 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/es/intlayer_with_solid_start.md +117 -2
- package/docs/es/intlayer_with_storybook.md +0 -13
- package/docs/es/intlayer_with_svelte_kit.md +99 -2
- package/docs/es/intlayer_with_tanstack+solid.md +119 -16
- package/docs/es/intlayer_with_tanstack.md +252 -147
- package/docs/es/intlayer_with_vanilla.md +111 -3
- package/docs/es/intlayer_with_vite+lit.md +113 -2
- package/docs/es/intlayer_with_vite+preact.md +143 -34
- package/docs/es/intlayer_with_vite+react.md +101 -4
- package/docs/es/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/es/intlayer_with_vite+solid.md +114 -2
- package/docs/es/intlayer_with_vite+svelte.md +113 -2
- package/docs/es/intlayer_with_vite+vanilla.md +119 -2
- package/docs/es/intlayer_with_vite+vue.md +99 -3
- package/docs/es/introduction.md +105 -2
- package/docs/es/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/es/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/es/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/es/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/es/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/fr/analytics.md +437 -13
- package/docs/fr/configuration.md +99 -1
- package/docs/fr/dictionary/content_file.md +4 -4
- package/docs/fr/dictionary/markdown.md +18 -1
- package/docs/fr/dictionary/plurial.md +5 -2
- package/docs/fr/how_works_intlayer.md +93 -1
- package/docs/fr/interest_of_intlayer.md +97 -2
- package/docs/fr/intlayer_CMS.md +93 -1
- package/docs/fr/intlayer_visual_editor.md +88 -2
- package/docs/fr/intlayer_with_adonisjs.md +121 -1
- package/docs/fr/intlayer_with_analog.md +111 -2
- package/docs/fr/intlayer_with_angular_19.md +109 -2
- package/docs/fr/intlayer_with_angular_21.md +103 -2
- package/docs/fr/intlayer_with_astro.md +111 -14
- package/docs/fr/intlayer_with_astro_lit.md +112 -4
- package/docs/fr/intlayer_with_astro_preact.md +112 -4
- package/docs/fr/intlayer_with_astro_react.md +112 -4
- package/docs/fr/intlayer_with_astro_solid.md +112 -4
- package/docs/fr/intlayer_with_astro_svelte.md +112 -4
- package/docs/fr/intlayer_with_astro_vanilla.md +106 -4
- package/docs/fr/intlayer_with_astro_vue.md +112 -4
- package/docs/fr/intlayer_with_create_react_app.md +107 -2
- package/docs/fr/intlayer_with_elysia.md +121 -1
- package/docs/fr/intlayer_with_express.md +115 -1
- package/docs/fr/intlayer_with_fastify.md +115 -1
- package/docs/fr/intlayer_with_hono.md +115 -1
- package/docs/fr/intlayer_with_htmx.md +756 -0
- package/docs/fr/intlayer_with_lynx+react.md +0 -7
- package/docs/fr/intlayer_with_nestjs.md +115 -1
- package/docs/fr/intlayer_with_nextjs_14.md +138 -110
- package/docs/fr/intlayer_with_nextjs_15.md +124 -46
- package/docs/fr/intlayer_with_nextjs_16.md +121 -43
- package/docs/fr/intlayer_with_nextjs_compiler.md +122 -12
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/fr/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/fr/intlayer_with_nuxt.md +104 -2
- package/docs/fr/intlayer_with_react_native+expo.md +103 -8
- package/docs/fr/intlayer_with_react_router_v7.md +117 -10
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/fr/intlayer_with_solid_start.md +117 -2
- package/docs/fr/intlayer_with_storybook.md +0 -13
- package/docs/fr/intlayer_with_svelte_kit.md +99 -2
- package/docs/fr/intlayer_with_tanstack+solid.md +119 -16
- package/docs/fr/intlayer_with_tanstack.md +235 -128
- package/docs/fr/intlayer_with_vanilla.md +111 -3
- package/docs/fr/intlayer_with_vite+lit.md +113 -2
- package/docs/fr/intlayer_with_vite+preact.md +143 -34
- package/docs/fr/intlayer_with_vite+react.md +101 -4
- package/docs/fr/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/fr/intlayer_with_vite+solid.md +114 -2
- package/docs/fr/intlayer_with_vite+svelte.md +113 -2
- package/docs/fr/intlayer_with_vite+vanilla.md +119 -2
- package/docs/fr/intlayer_with_vite+vue.md +99 -3
- package/docs/fr/introduction.md +105 -2
- package/docs/fr/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/fr/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/fr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/hi/analytics.md +488 -21
- package/docs/hi/configuration.md +98 -0
- package/docs/hi/dictionary/content_file.md +4 -4
- package/docs/hi/dictionary/html.md +100 -3
- package/docs/hi/dictionary/markdown.md +3 -0
- package/docs/hi/dictionary/plurial.md +6 -3
- package/docs/hi/how_works_intlayer.md +92 -0
- package/docs/hi/interest_of_intlayer.md +106 -9
- package/docs/hi/intlayer_CMS.md +92 -0
- package/docs/hi/intlayer_visual_editor.md +87 -1
- package/docs/hi/intlayer_with_adonisjs.md +121 -0
- package/docs/hi/intlayer_with_analog.md +116 -8
- package/docs/hi/intlayer_with_angular_19.md +115 -8
- package/docs/hi/intlayer_with_angular_21.md +109 -8
- package/docs/hi/intlayer_with_astro.md +117 -20
- package/docs/hi/intlayer_with_astro_lit.md +118 -10
- package/docs/hi/intlayer_with_astro_preact.md +118 -10
- package/docs/hi/intlayer_with_astro_react.md +118 -10
- package/docs/hi/intlayer_with_astro_solid.md +118 -10
- package/docs/hi/intlayer_with_astro_svelte.md +118 -10
- package/docs/hi/intlayer_with_astro_vanilla.md +112 -10
- package/docs/hi/intlayer_with_astro_vue.md +118 -10
- package/docs/hi/intlayer_with_create_react_app.md +106 -1
- package/docs/hi/intlayer_with_elysia.md +121 -0
- package/docs/hi/intlayer_with_express.md +114 -0
- package/docs/hi/intlayer_with_fastify.md +115 -0
- package/docs/hi/intlayer_with_hono.md +114 -0
- package/docs/hi/intlayer_with_htmx.md +771 -0
- package/docs/hi/intlayer_with_lynx+react.md +7 -14
- package/docs/hi/intlayer_with_nestjs.md +115 -0
- package/docs/hi/intlayer_with_nextjs_14.md +144 -120
- package/docs/hi/intlayer_with_nextjs_15.md +129 -51
- package/docs/hi/intlayer_with_nextjs_16.md +129 -50
- package/docs/hi/intlayer_with_nextjs_compiler.md +121 -12
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +121 -9
- package/docs/hi/intlayer_with_nextjs_page_router.md +123 -96
- package/docs/hi/intlayer_with_nuxt.md +110 -8
- package/docs/hi/intlayer_with_react_native+expo.md +102 -7
- package/docs/hi/intlayer_with_react_router_v7.md +119 -10
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +122 -22
- package/docs/hi/intlayer_with_solid_start.md +115 -1
- package/docs/hi/intlayer_with_storybook.md +7 -20
- package/docs/hi/intlayer_with_svelte_kit.md +105 -8
- package/docs/hi/intlayer_with_tanstack+solid.md +124 -22
- package/docs/hi/intlayer_with_tanstack.md +269 -155
- package/docs/hi/intlayer_with_vanilla.md +117 -9
- package/docs/hi/intlayer_with_vite+lit.md +118 -8
- package/docs/hi/intlayer_with_vite+preact.md +170 -41
- package/docs/hi/intlayer_with_vite+react.md +108 -20
- package/docs/hi/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/hi/intlayer_with_vite+solid.md +118 -8
- package/docs/hi/intlayer_with_vite+svelte.md +120 -9
- package/docs/hi/intlayer_with_vite+vanilla.md +125 -8
- package/docs/hi/intlayer_with_vite+vue.md +104 -8
- package/docs/hi/introduction.md +104 -1
- package/docs/hi/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/hi/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/hi/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/hi/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/hi/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/hi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/id/analytics.md +488 -21
- package/docs/id/configuration.md +98 -0
- package/docs/id/dictionary/content_file.md +4 -4
- package/docs/id/dictionary/markdown.md +3 -0
- package/docs/id/dictionary/plurial.md +5 -2
- package/docs/id/how_works_intlayer.md +92 -0
- package/docs/id/interest_of_intlayer.md +96 -1
- package/docs/id/intlayer_CMS.md +92 -0
- package/docs/id/intlayer_visual_editor.md +87 -1
- package/docs/id/intlayer_with_adonisjs.md +121 -0
- package/docs/id/intlayer_with_analog.md +109 -1
- package/docs/id/intlayer_with_angular_19.md +108 -1
- package/docs/id/intlayer_with_angular_21.md +102 -1
- package/docs/id/intlayer_with_astro.md +110 -13
- package/docs/id/intlayer_with_astro_lit.md +111 -3
- package/docs/id/intlayer_with_astro_preact.md +111 -3
- package/docs/id/intlayer_with_astro_react.md +111 -3
- package/docs/id/intlayer_with_astro_solid.md +111 -3
- package/docs/id/intlayer_with_astro_svelte.md +111 -3
- package/docs/id/intlayer_with_astro_vanilla.md +105 -3
- package/docs/id/intlayer_with_astro_vue.md +111 -3
- package/docs/id/intlayer_with_create_react_app.md +106 -1
- package/docs/id/intlayer_with_elysia.md +121 -0
- package/docs/id/intlayer_with_express.md +114 -0
- package/docs/id/intlayer_with_fastify.md +115 -0
- package/docs/id/intlayer_with_hono.md +114 -0
- package/docs/id/intlayer_with_htmx.md +761 -0
- package/docs/id/intlayer_with_lynx+react.md +0 -7
- package/docs/id/intlayer_with_nestjs.md +115 -0
- package/docs/id/intlayer_with_nextjs_14.md +132 -66
- package/docs/id/intlayer_with_nextjs_15.md +119 -43
- package/docs/id/intlayer_with_nextjs_16.md +122 -42
- package/docs/id/intlayer_with_nextjs_compiler.md +122 -14
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/id/intlayer_with_nextjs_page_router.md +111 -94
- package/docs/id/intlayer_with_nuxt.md +103 -1
- package/docs/id/intlayer_with_react_native+expo.md +102 -7
- package/docs/id/intlayer_with_react_router_v7.md +112 -3
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +116 -16
- package/docs/id/intlayer_with_solid_start.md +115 -1
- package/docs/id/intlayer_with_storybook.md +0 -13
- package/docs/id/intlayer_with_svelte_kit.md +98 -1
- package/docs/id/intlayer_with_tanstack+solid.md +117 -15
- package/docs/id/intlayer_with_tanstack.md +229 -129
- package/docs/id/intlayer_with_vanilla.md +110 -2
- package/docs/id/intlayer_with_vite+lit.md +111 -1
- package/docs/id/intlayer_with_vite+preact.md +141 -33
- package/docs/id/intlayer_with_vite+react.md +101 -13
- package/docs/id/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/id/intlayer_with_vite+solid.md +112 -1
- package/docs/id/intlayer_with_vite+svelte.md +111 -1
- package/docs/id/intlayer_with_vite+vanilla.md +118 -1
- package/docs/id/intlayer_with_vite+vue.md +97 -1
- package/docs/id/introduction.md +104 -1
- package/docs/id/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/id/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/id/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/id/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/id/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/id/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/it/analytics.md +488 -21
- package/docs/it/configuration.md +99 -1
- package/docs/it/dictionary/content_file.md +4 -4
- package/docs/it/dictionary/markdown.md +18 -1
- package/docs/it/dictionary/plurial.md +5 -2
- package/docs/it/how_works_intlayer.md +93 -1
- package/docs/it/interest_of_intlayer.md +97 -2
- package/docs/it/intlayer_CMS.md +93 -1
- package/docs/it/intlayer_visual_editor.md +88 -2
- package/docs/it/intlayer_with_adonisjs.md +121 -1
- package/docs/it/intlayer_with_analog.md +111 -2
- package/docs/it/intlayer_with_angular_19.md +109 -2
- package/docs/it/intlayer_with_angular_21.md +103 -2
- package/docs/it/intlayer_with_astro.md +111 -14
- package/docs/it/intlayer_with_astro_lit.md +112 -4
- package/docs/it/intlayer_with_astro_preact.md +112 -4
- package/docs/it/intlayer_with_astro_react.md +112 -4
- package/docs/it/intlayer_with_astro_solid.md +112 -4
- package/docs/it/intlayer_with_astro_svelte.md +112 -4
- package/docs/it/intlayer_with_astro_vanilla.md +106 -4
- package/docs/it/intlayer_with_astro_vue.md +112 -4
- package/docs/it/intlayer_with_create_react_app.md +107 -2
- package/docs/it/intlayer_with_elysia.md +121 -1
- package/docs/it/intlayer_with_express.md +115 -1
- package/docs/it/intlayer_with_fastify.md +115 -1
- package/docs/it/intlayer_with_hono.md +115 -1
- package/docs/it/intlayer_with_htmx.md +761 -0
- package/docs/it/intlayer_with_lynx+react.md +0 -7
- package/docs/it/intlayer_with_nestjs.md +115 -1
- package/docs/it/intlayer_with_nextjs_14.md +138 -115
- package/docs/it/intlayer_with_nextjs_15.md +124 -47
- package/docs/it/intlayer_with_nextjs_16.md +123 -44
- package/docs/it/intlayer_with_nextjs_compiler.md +123 -14
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/it/intlayer_with_nextjs_page_router.md +119 -95
- package/docs/it/intlayer_with_nuxt.md +104 -2
- package/docs/it/intlayer_with_react_native+expo.md +103 -8
- package/docs/it/intlayer_with_react_router_v7.md +113 -4
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/it/intlayer_with_solid_start.md +117 -2
- package/docs/it/intlayer_with_storybook.md +0 -13
- package/docs/it/intlayer_with_svelte_kit.md +99 -2
- package/docs/it/intlayer_with_tanstack+solid.md +119 -16
- package/docs/it/intlayer_with_tanstack.md +232 -131
- package/docs/it/intlayer_with_vanilla.md +111 -3
- package/docs/it/intlayer_with_vite+lit.md +113 -2
- package/docs/it/intlayer_with_vite+preact.md +143 -34
- package/docs/it/intlayer_with_vite+react.md +102 -14
- package/docs/it/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/it/intlayer_with_vite+solid.md +114 -2
- package/docs/it/intlayer_with_vite+svelte.md +113 -2
- package/docs/it/intlayer_with_vite+vanilla.md +119 -2
- package/docs/it/intlayer_with_vite+vue.md +99 -3
- package/docs/it/introduction.md +105 -2
- package/docs/it/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/it/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/it/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/it/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/it/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ja/analytics.md +458 -12
- package/docs/ja/configuration.md +99 -1
- package/docs/ja/dictionary/content_file.md +4 -4
- package/docs/ja/dictionary/plurial.md +5 -2
- package/docs/ja/how_works_intlayer.md +93 -1
- package/docs/ja/interest_of_intlayer.md +107 -10
- package/docs/ja/intlayer_CMS.md +93 -1
- package/docs/ja/intlayer_visual_editor.md +88 -2
- package/docs/ja/intlayer_with_adonisjs.md +121 -1
- package/docs/ja/intlayer_with_analog.md +119 -10
- package/docs/ja/intlayer_with_angular_19.md +117 -10
- package/docs/ja/intlayer_with_angular_21.md +111 -10
- package/docs/ja/intlayer_with_astro.md +119 -22
- package/docs/ja/intlayer_with_astro_lit.md +120 -12
- package/docs/ja/intlayer_with_astro_preact.md +120 -12
- package/docs/ja/intlayer_with_astro_react.md +120 -12
- package/docs/ja/intlayer_with_astro_solid.md +120 -12
- package/docs/ja/intlayer_with_astro_svelte.md +120 -12
- package/docs/ja/intlayer_with_astro_vanilla.md +114 -12
- package/docs/ja/intlayer_with_astro_vue.md +120 -12
- package/docs/ja/intlayer_with_create_react_app.md +107 -2
- package/docs/ja/intlayer_with_elysia.md +121 -1
- package/docs/ja/intlayer_with_express.md +121 -1
- package/docs/ja/intlayer_with_fastify.md +115 -1
- package/docs/ja/intlayer_with_hono.md +115 -1
- package/docs/ja/intlayer_with_htmx.md +769 -0
- package/docs/ja/intlayer_with_lynx+react.md +8 -15
- package/docs/ja/intlayer_with_nestjs.md +115 -1
- package/docs/ja/intlayer_with_nextjs_14.md +128 -51
- package/docs/ja/intlayer_with_nextjs_15.md +136 -59
- package/docs/ja/intlayer_with_nextjs_16.md +131 -52
- package/docs/ja/intlayer_with_nextjs_compiler.md +123 -15
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +123 -11
- package/docs/ja/intlayer_with_nextjs_page_router.md +215 -110
- package/docs/ja/intlayer_with_nuxt.md +112 -10
- package/docs/ja/intlayer_with_react_native+expo.md +103 -8
- package/docs/ja/intlayer_with_react_router_v7.md +121 -11
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +123 -23
- package/docs/ja/intlayer_with_solid_start.md +117 -2
- package/docs/ja/intlayer_with_storybook.md +8 -21
- package/docs/ja/intlayer_with_svelte_kit.md +107 -10
- package/docs/ja/intlayer_with_tanstack+solid.md +128 -24
- package/docs/ja/intlayer_with_tanstack.md +254 -203
- package/docs/ja/intlayer_with_vanilla.md +119 -11
- package/docs/ja/intlayer_with_vite+lit.md +121 -10
- package/docs/ja/intlayer_with_vite+preact.md +151 -23
- package/docs/ja/intlayer_with_vite+react.md +109 -12
- package/docs/ja/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/ja/intlayer_with_vite+solid.md +121 -10
- package/docs/ja/intlayer_with_vite+svelte.md +121 -10
- package/docs/ja/intlayer_with_vite+vanilla.md +127 -10
- package/docs/ja/intlayer_with_vite+vue.md +107 -11
- package/docs/ja/introduction.md +105 -2
- package/docs/ja/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ja/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ja/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ko/analytics.md +457 -11
- package/docs/ko/configuration.md +99 -1
- package/docs/ko/dictionary/content_file.md +4 -4
- package/docs/ko/dictionary/markdown.md +18 -1
- package/docs/ko/dictionary/plurial.md +6 -3
- package/docs/ko/how_works_intlayer.md +93 -1
- package/docs/ko/interest_of_intlayer.md +98 -3
- package/docs/ko/intlayer_CMS.md +93 -1
- package/docs/ko/intlayer_visual_editor.md +88 -2
- package/docs/ko/intlayer_with_adonisjs.md +121 -1
- package/docs/ko/intlayer_with_analog.md +111 -2
- package/docs/ko/intlayer_with_angular_19.md +110 -3
- package/docs/ko/intlayer_with_angular_21.md +104 -3
- package/docs/ko/intlayer_with_astro.md +119 -19
- package/docs/ko/intlayer_with_astro_lit.md +112 -4
- package/docs/ko/intlayer_with_astro_preact.md +112 -4
- package/docs/ko/intlayer_with_astro_react.md +112 -4
- package/docs/ko/intlayer_with_astro_solid.md +112 -4
- package/docs/ko/intlayer_with_astro_svelte.md +112 -4
- package/docs/ko/intlayer_with_astro_vanilla.md +106 -4
- package/docs/ko/intlayer_with_astro_vue.md +112 -4
- package/docs/ko/intlayer_with_create_react_app.md +107 -5
- package/docs/ko/intlayer_with_elysia.md +121 -1
- package/docs/ko/intlayer_with_express.md +115 -1
- package/docs/ko/intlayer_with_fastify.md +115 -2
- package/docs/ko/intlayer_with_hono.md +115 -1
- package/docs/ko/intlayer_with_htmx.md +763 -0
- package/docs/ko/intlayer_with_lynx+react.md +0 -7
- package/docs/ko/intlayer_with_nestjs.md +115 -1
- package/docs/ko/intlayer_with_nextjs_14.md +118 -42
- package/docs/ko/intlayer_with_nextjs_15.md +118 -43
- package/docs/ko/intlayer_with_nextjs_16.md +121 -43
- package/docs/ko/intlayer_with_nextjs_compiler.md +110 -1
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +117 -7
- package/docs/ko/intlayer_with_nextjs_page_router.md +110 -94
- package/docs/ko/intlayer_with_nuxt.md +104 -2
- package/docs/ko/intlayer_with_react_native+expo.md +103 -8
- package/docs/ko/intlayer_with_react_router_v7.md +116 -10
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +113 -11
- package/docs/ko/intlayer_with_solid_start.md +122 -7
- package/docs/ko/intlayer_with_storybook.md +0 -14
- package/docs/ko/intlayer_with_svelte_kit.md +99 -2
- package/docs/ko/intlayer_with_tanstack+solid.md +121 -17
- package/docs/ko/intlayer_with_tanstack.md +260 -191
- package/docs/ko/intlayer_with_vanilla.md +111 -2
- package/docs/ko/intlayer_with_vite+lit.md +114 -3
- package/docs/ko/intlayer_with_vite+preact.md +143 -34
- package/docs/ko/intlayer_with_vite+react.md +101 -5
- package/docs/ko/intlayer_with_vite+react_compiler.md +107 -10
- package/docs/ko/intlayer_with_vite+solid.md +115 -2
- package/docs/ko/intlayer_with_vite+svelte.md +114 -6
- package/docs/ko/intlayer_with_vite+vanilla.md +121 -11
- package/docs/ko/intlayer_with_vite+vue.md +99 -3
- package/docs/ko/introduction.md +105 -2
- package/docs/ko/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ko/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ko/packages/express-intlayer/t.md +9 -6
- package/docs/ko/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/nl/interest_of_intlayer.md +0 -1
- package/docs/nl/intlayer_with_storybook.md +0 -12
- package/docs/nl/intlayer_with_vanilla.md +2 -1
- package/docs/nl/introduction.md +0 -1
- package/docs/pl/analytics.md +488 -21
- package/docs/pl/configuration.md +98 -0
- package/docs/pl/dictionary/content_file.md +4 -4
- package/docs/pl/dictionary/markdown.md +3 -0
- package/docs/pl/dictionary/plurial.md +5 -2
- package/docs/pl/how_works_intlayer.md +92 -0
- package/docs/pl/interest_of_intlayer.md +96 -1
- package/docs/pl/intlayer_CMS.md +92 -0
- package/docs/pl/intlayer_visual_editor.md +87 -1
- package/docs/pl/intlayer_with_adonisjs.md +120 -0
- package/docs/pl/intlayer_with_analog.md +116 -8
- package/docs/pl/intlayer_with_angular_19.md +115 -8
- package/docs/pl/intlayer_with_angular_21.md +109 -8
- package/docs/pl/intlayer_with_astro.md +117 -20
- package/docs/pl/intlayer_with_astro_lit.md +118 -10
- package/docs/pl/intlayer_with_astro_preact.md +118 -10
- package/docs/pl/intlayer_with_astro_react.md +118 -10
- package/docs/pl/intlayer_with_astro_solid.md +118 -10
- package/docs/pl/intlayer_with_astro_svelte.md +118 -10
- package/docs/pl/intlayer_with_astro_vanilla.md +112 -10
- package/docs/pl/intlayer_with_astro_vue.md +118 -10
- package/docs/pl/intlayer_with_create_react_app.md +106 -1
- package/docs/pl/intlayer_with_elysia.md +120 -0
- package/docs/pl/intlayer_with_express.md +114 -0
- package/docs/pl/intlayer_with_fastify.md +114 -0
- package/docs/pl/intlayer_with_hono.md +114 -0
- package/docs/pl/intlayer_with_htmx.md +767 -0
- package/docs/pl/intlayer_with_lynx+react.md +7 -14
- package/docs/pl/intlayer_with_nestjs.md +114 -0
- package/docs/pl/intlayer_with_nextjs_14.md +127 -50
- package/docs/pl/intlayer_with_nextjs_15.md +141 -62
- package/docs/pl/intlayer_with_nextjs_16.md +128 -51
- package/docs/pl/intlayer_with_nextjs_compiler.md +122 -13
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +122 -10
- package/docs/pl/intlayer_with_nextjs_page_router.md +115 -97
- package/docs/pl/intlayer_with_nuxt.md +110 -8
- package/docs/pl/intlayer_with_react_native+expo.md +102 -7
- package/docs/pl/intlayer_with_react_router_v7.md +131 -22
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +121 -20
- package/docs/pl/intlayer_with_solid_start.md +115 -1
- package/docs/pl/intlayer_with_storybook.md +7 -20
- package/docs/pl/intlayer_with_svelte_kit.md +105 -8
- package/docs/pl/intlayer_with_tanstack+solid.md +124 -22
- package/docs/pl/intlayer_with_tanstack.md +238 -160
- package/docs/pl/intlayer_with_vanilla.md +117 -9
- package/docs/pl/intlayer_with_vite+lit.md +118 -8
- package/docs/pl/intlayer_with_vite+preact.md +148 -40
- package/docs/pl/intlayer_with_vite+react.md +108 -20
- package/docs/pl/intlayer_with_vite+react_compiler.md +108 -3
- package/docs/pl/intlayer_with_vite+solid.md +112 -5
- package/docs/pl/intlayer_with_vite+svelte.md +118 -8
- package/docs/pl/intlayer_with_vite+vanilla.md +125 -8
- package/docs/pl/intlayer_with_vite+vue.md +104 -8
- package/docs/pl/introduction.md +104 -1
- package/docs/pl/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/pl/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/pl/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/pl/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/pl/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/pl/packages/next-intlayer/useIntlayer.md +3 -0
- package/docs/pl/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/pt/analytics.md +488 -21
- package/docs/pt/configuration.md +99 -1
- package/docs/pt/dictionary/content_file.md +4 -4
- package/docs/pt/dictionary/html.md +18 -1
- package/docs/pt/dictionary/markdown.md +3 -0
- package/docs/pt/dictionary/plurial.md +5 -2
- package/docs/pt/how_works_intlayer.md +93 -1
- package/docs/pt/interest_of_intlayer.md +98 -3
- package/docs/pt/intlayer_CMS.md +93 -1
- package/docs/pt/intlayer_visual_editor.md +88 -2
- package/docs/pt/intlayer_with_adonisjs.md +121 -1
- package/docs/pt/intlayer_with_analog.md +112 -3
- package/docs/pt/intlayer_with_angular_19.md +109 -2
- package/docs/pt/intlayer_with_angular_21.md +103 -2
- package/docs/pt/intlayer_with_astro.md +111 -14
- package/docs/pt/intlayer_with_astro_lit.md +112 -4
- package/docs/pt/intlayer_with_astro_preact.md +112 -4
- package/docs/pt/intlayer_with_astro_react.md +112 -4
- package/docs/pt/intlayer_with_astro_solid.md +112 -4
- package/docs/pt/intlayer_with_astro_svelte.md +112 -4
- package/docs/pt/intlayer_with_astro_vanilla.md +106 -4
- package/docs/pt/intlayer_with_astro_vue.md +111 -3
- package/docs/pt/intlayer_with_create_react_app.md +107 -2
- package/docs/pt/intlayer_with_elysia.md +121 -1
- package/docs/pt/intlayer_with_express.md +115 -1
- package/docs/pt/intlayer_with_fastify.md +115 -2
- package/docs/pt/intlayer_with_hono.md +115 -1
- package/docs/pt/intlayer_with_htmx.md +771 -0
- package/docs/pt/intlayer_with_lynx+react.md +0 -7
- package/docs/pt/intlayer_with_nestjs.md +115 -1
- package/docs/pt/intlayer_with_nextjs_14.md +138 -117
- package/docs/pt/intlayer_with_nextjs_15.md +120 -45
- package/docs/pt/intlayer_with_nextjs_16.md +122 -45
- package/docs/pt/intlayer_with_nextjs_compiler.md +122 -12
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/pt/intlayer_with_nextjs_page_router.md +121 -95
- package/docs/pt/intlayer_with_nuxt.md +104 -2
- package/docs/pt/intlayer_with_react_native+expo.md +103 -8
- package/docs/pt/intlayer_with_react_router_v7.md +140 -33
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +115 -8
- package/docs/pt/intlayer_with_solid_start.md +121 -6
- package/docs/pt/intlayer_with_storybook.md +0 -13
- package/docs/pt/intlayer_with_svelte_kit.md +99 -2
- package/docs/pt/intlayer_with_tanstack+solid.md +120 -16
- package/docs/pt/intlayer_with_tanstack.md +252 -144
- package/docs/pt/intlayer_with_vanilla.md +111 -3
- package/docs/pt/intlayer_with_vite+lit.md +113 -2
- package/docs/pt/intlayer_with_vite+preact.md +143 -34
- package/docs/pt/intlayer_with_vite+react.md +101 -4
- package/docs/pt/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/pt/intlayer_with_vite+solid.md +114 -2
- package/docs/pt/intlayer_with_vite+svelte.md +113 -2
- package/docs/pt/intlayer_with_vite+vanilla.md +119 -2
- package/docs/pt/intlayer_with_vite+vue.md +98 -2
- package/docs/pt/introduction.md +105 -2
- package/docs/pt/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/pt/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/pt/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ru/analytics.md +458 -12
- package/docs/ru/cli/doc-review.md +0 -2
- package/docs/ru/configuration.md +99 -1
- package/docs/ru/dictionary/content_file.md +4 -4
- package/docs/ru/dictionary/markdown.md +0 -2
- package/docs/ru/dictionary/plurial.md +6 -3
- package/docs/ru/dictionary/translation.md +1 -1
- package/docs/ru/how_works_intlayer.md +93 -1
- package/docs/ru/interest_of_intlayer.md +97 -2
- package/docs/ru/intlayer_CMS.md +93 -1
- package/docs/ru/intlayer_visual_editor.md +88 -2
- package/docs/ru/intlayer_with_adonisjs.md +121 -1
- package/docs/ru/intlayer_with_analog.md +111 -2
- package/docs/ru/intlayer_with_angular_19.md +109 -2
- package/docs/ru/intlayer_with_angular_21.md +103 -2
- package/docs/ru/intlayer_with_astro.md +111 -14
- package/docs/ru/intlayer_with_astro_lit.md +112 -4
- package/docs/ru/intlayer_with_astro_preact.md +112 -4
- package/docs/ru/intlayer_with_astro_react.md +112 -4
- package/docs/ru/intlayer_with_astro_solid.md +112 -4
- package/docs/ru/intlayer_with_astro_svelte.md +112 -4
- package/docs/ru/intlayer_with_astro_vanilla.md +106 -4
- package/docs/ru/intlayer_with_astro_vue.md +112 -4
- package/docs/ru/intlayer_with_create_react_app.md +107 -2
- package/docs/ru/intlayer_with_elysia.md +121 -1
- package/docs/ru/intlayer_with_express.md +115 -1
- package/docs/ru/intlayer_with_fastify.md +115 -1
- package/docs/ru/intlayer_with_hono.md +115 -1
- package/docs/ru/intlayer_with_htmx.md +767 -0
- package/docs/ru/intlayer_with_lynx+react.md +0 -7
- package/docs/ru/intlayer_with_nestjs.md +115 -1
- package/docs/ru/intlayer_with_nextjs_14.md +138 -114
- package/docs/ru/intlayer_with_nextjs_15.md +123 -62
- package/docs/ru/intlayer_with_nextjs_16.md +122 -45
- package/docs/ru/intlayer_with_nextjs_compiler.md +123 -14
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +115 -3
- package/docs/ru/intlayer_with_nextjs_page_router.md +110 -95
- package/docs/ru/intlayer_with_nuxt.md +104 -2
- package/docs/ru/intlayer_with_react_native+expo.md +103 -8
- package/docs/ru/intlayer_with_react_router_v7.md +113 -4
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/ru/intlayer_with_solid_start.md +117 -2
- package/docs/ru/intlayer_with_storybook.md +0 -13
- package/docs/ru/intlayer_with_svelte_kit.md +99 -2
- package/docs/ru/intlayer_with_tanstack+solid.md +119 -16
- package/docs/ru/intlayer_with_tanstack.md +230 -151
- package/docs/ru/intlayer_with_vanilla.md +111 -3
- package/docs/ru/intlayer_with_vite+lit.md +113 -2
- package/docs/ru/intlayer_with_vite+preact.md +143 -34
- package/docs/ru/intlayer_with_vite+react.md +102 -14
- package/docs/ru/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/ru/intlayer_with_vite+solid.md +114 -2
- package/docs/ru/intlayer_with_vite+svelte.md +115 -12
- package/docs/ru/intlayer_with_vite+vanilla.md +119 -2
- package/docs/ru/intlayer_with_vite+vue.md +99 -3
- package/docs/ru/introduction.md +105 -2
- package/docs/ru/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/ru/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/ru/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/tr/analytics.md +488 -21
- package/docs/tr/cli/doc-review.md +0 -2
- package/docs/tr/configuration.md +98 -0
- package/docs/tr/dictionary/content_file.md +4 -4
- package/docs/tr/dictionary/markdown.md +3 -0
- package/docs/tr/dictionary/plurial.md +6 -3
- package/docs/tr/how_works_intlayer.md +92 -0
- package/docs/tr/interest_of_intlayer.md +96 -1
- package/docs/tr/intlayer_CMS.md +92 -0
- package/docs/tr/intlayer_visual_editor.md +87 -1
- package/docs/tr/intlayer_with_adonisjs.md +121 -0
- package/docs/tr/intlayer_with_analog.md +109 -1
- package/docs/tr/intlayer_with_angular_19.md +108 -1
- package/docs/tr/intlayer_with_angular_21.md +102 -1
- package/docs/tr/intlayer_with_astro.md +117 -27
- package/docs/tr/intlayer_with_astro_lit.md +111 -3
- package/docs/tr/intlayer_with_astro_preact.md +111 -3
- package/docs/tr/intlayer_with_astro_react.md +111 -3
- package/docs/tr/intlayer_with_astro_solid.md +111 -3
- package/docs/tr/intlayer_with_astro_svelte.md +111 -3
- package/docs/tr/intlayer_with_astro_vanilla.md +105 -3
- package/docs/tr/intlayer_with_astro_vue.md +111 -3
- package/docs/tr/intlayer_with_create_react_app.md +106 -1
- package/docs/tr/intlayer_with_elysia.md +121 -0
- package/docs/tr/intlayer_with_express.md +114 -0
- package/docs/tr/intlayer_with_fastify.md +115 -0
- package/docs/tr/intlayer_with_hono.md +114 -0
- package/docs/tr/intlayer_with_htmx.md +761 -0
- package/docs/tr/intlayer_with_lynx+react.md +0 -7
- package/docs/tr/intlayer_with_nestjs.md +115 -0
- package/docs/tr/intlayer_with_nextjs_14.md +125 -51
- package/docs/tr/intlayer_with_nextjs_15.md +119 -44
- package/docs/tr/intlayer_with_nextjs_16.md +120 -43
- package/docs/tr/intlayer_with_nextjs_compiler.md +121 -13
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/tr/intlayer_with_nextjs_page_router.md +124 -120
- package/docs/tr/intlayer_with_nuxt.md +103 -1
- package/docs/tr/intlayer_with_react_native+expo.md +102 -7
- package/docs/tr/intlayer_with_react_router_v7.md +112 -3
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +110 -3
- package/docs/tr/intlayer_with_solid_start.md +115 -1
- package/docs/tr/intlayer_with_storybook.md +0 -13
- package/docs/tr/intlayer_with_svelte_kit.md +98 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +117 -15
- package/docs/tr/intlayer_with_tanstack.md +259 -128
- package/docs/tr/intlayer_with_vanilla.md +110 -2
- package/docs/tr/intlayer_with_vite+lit.md +111 -1
- package/docs/tr/intlayer_with_vite+preact.md +141 -33
- package/docs/tr/intlayer_with_vite+react.md +100 -3
- package/docs/tr/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/tr/intlayer_with_vite+solid.md +112 -1
- package/docs/tr/intlayer_with_vite+svelte.md +111 -1
- package/docs/tr/intlayer_with_vite+vanilla.md +118 -1
- package/docs/tr/intlayer_with_vite+vue.md +99 -4
- package/docs/tr/introduction.md +104 -1
- package/docs/tr/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/tr/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/tr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/uk/analytics.md +488 -21
- package/docs/uk/configuration.md +98 -0
- package/docs/uk/dictionary/content_file.md +4 -4
- package/docs/uk/dictionary/markdown.md +3 -0
- package/docs/uk/dictionary/plurial.md +6 -3
- package/docs/uk/how_works_intlayer.md +92 -0
- package/docs/uk/interest_of_intlayer.md +96 -1
- package/docs/uk/intlayer_CMS.md +92 -0
- package/docs/uk/intlayer_visual_editor.md +87 -1
- package/docs/uk/intlayer_with_adonisjs.md +121 -0
- package/docs/uk/intlayer_with_analog.md +109 -1
- package/docs/uk/intlayer_with_angular_19.md +108 -1
- package/docs/uk/intlayer_with_angular_21.md +102 -1
- package/docs/uk/intlayer_with_astro.md +110 -13
- package/docs/uk/intlayer_with_astro_lit.md +111 -3
- package/docs/uk/intlayer_with_astro_preact.md +111 -3
- package/docs/uk/intlayer_with_astro_react.md +111 -3
- package/docs/uk/intlayer_with_astro_solid.md +111 -3
- package/docs/uk/intlayer_with_astro_svelte.md +111 -3
- package/docs/uk/intlayer_with_astro_vanilla.md +105 -3
- package/docs/uk/intlayer_with_astro_vue.md +111 -3
- package/docs/uk/intlayer_with_create_react_app.md +106 -1
- package/docs/uk/intlayer_with_elysia.md +121 -0
- package/docs/uk/intlayer_with_express.md +114 -0
- package/docs/uk/intlayer_with_fastify.md +115 -0
- package/docs/uk/intlayer_with_hono.md +114 -0
- package/docs/uk/intlayer_with_htmx.md +760 -0
- package/docs/uk/intlayer_with_lynx+react.md +0 -7
- package/docs/uk/intlayer_with_nestjs.md +115 -0
- package/docs/uk/intlayer_with_nextjs_14.md +119 -44
- package/docs/uk/intlayer_with_nextjs_15.md +133 -56
- package/docs/uk/intlayer_with_nextjs_16.md +121 -44
- package/docs/uk/intlayer_with_nextjs_compiler.md +122 -14
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/uk/intlayer_with_nextjs_page_router.md +111 -96
- package/docs/uk/intlayer_with_nuxt.md +103 -1
- package/docs/uk/intlayer_with_react_native+expo.md +102 -7
- package/docs/uk/intlayer_with_react_router_v7.md +112 -3
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +110 -3
- package/docs/uk/intlayer_with_solid_start.md +115 -1
- package/docs/uk/intlayer_with_storybook.md +0 -13
- package/docs/uk/intlayer_with_svelte_kit.md +98 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +117 -15
- package/docs/uk/intlayer_with_tanstack.md +235 -132
- package/docs/uk/intlayer_with_vanilla.md +110 -2
- package/docs/uk/intlayer_with_vite+lit.md +111 -1
- package/docs/uk/intlayer_with_vite+preact.md +167 -31
- package/docs/uk/intlayer_with_vite+react.md +101 -13
- package/docs/uk/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/uk/intlayer_with_vite+solid.md +112 -1
- package/docs/uk/intlayer_with_vite+svelte.md +111 -1
- package/docs/uk/intlayer_with_vite+vanilla.md +118 -1
- package/docs/uk/intlayer_with_vite+vue.md +97 -1
- package/docs/uk/introduction.md +104 -1
- package/docs/uk/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/uk/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/uk/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/uk/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/uk/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/uk/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ur/intlayer_with_storybook.md +0 -12
- package/docs/ur/intlayer_with_vanilla.md +2 -1
- package/docs/ur/introduction.md +0 -1
- package/docs/vi/analytics.md +488 -21
- package/docs/vi/configuration.md +98 -0
- package/docs/vi/dictionary/content_file.md +4 -4
- package/docs/vi/dictionary/markdown.md +3 -0
- package/docs/vi/dictionary/plurial.md +5 -2
- package/docs/vi/how_works_intlayer.md +92 -0
- package/docs/vi/interest_of_intlayer.md +96 -1
- package/docs/vi/intlayer_CMS.md +92 -0
- package/docs/vi/intlayer_visual_editor.md +87 -1
- package/docs/vi/intlayer_with_adonisjs.md +121 -0
- package/docs/vi/intlayer_with_analog.md +109 -1
- package/docs/vi/intlayer_with_angular_19.md +108 -1
- package/docs/vi/intlayer_with_angular_21.md +102 -1
- package/docs/vi/intlayer_with_astro.md +110 -13
- package/docs/vi/intlayer_with_astro_lit.md +111 -3
- package/docs/vi/intlayer_with_astro_preact.md +111 -3
- package/docs/vi/intlayer_with_astro_react.md +111 -3
- package/docs/vi/intlayer_with_astro_solid.md +111 -3
- package/docs/vi/intlayer_with_astro_svelte.md +111 -3
- package/docs/vi/intlayer_with_astro_vanilla.md +105 -3
- package/docs/vi/intlayer_with_astro_vue.md +111 -3
- package/docs/vi/intlayer_with_create_react_app.md +106 -1
- package/docs/vi/intlayer_with_elysia.md +121 -0
- package/docs/vi/intlayer_with_express.md +114 -0
- package/docs/vi/intlayer_with_fastify.md +115 -0
- package/docs/vi/intlayer_with_hono.md +114 -0
- package/docs/vi/intlayer_with_htmx.md +760 -0
- package/docs/vi/intlayer_with_lynx+react.md +0 -7
- package/docs/vi/intlayer_with_nestjs.md +115 -0
- package/docs/vi/intlayer_with_nextjs_14.md +133 -53
- package/docs/vi/intlayer_with_nextjs_15.md +133 -56
- package/docs/vi/intlayer_with_nextjs_16.md +121 -44
- package/docs/vi/intlayer_with_nextjs_compiler.md +122 -14
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +114 -2
- package/docs/vi/intlayer_with_nextjs_page_router.md +111 -92
- package/docs/vi/intlayer_with_nuxt.md +103 -1
- package/docs/vi/intlayer_with_react_native+expo.md +102 -7
- package/docs/vi/intlayer_with_react_router_v7.md +112 -3
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +116 -16
- package/docs/vi/intlayer_with_solid_start.md +115 -1
- package/docs/vi/intlayer_with_storybook.md +0 -13
- package/docs/vi/intlayer_with_svelte_kit.md +98 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +117 -15
- package/docs/vi/intlayer_with_tanstack.md +249 -169
- package/docs/vi/intlayer_with_vanilla.md +110 -2
- package/docs/vi/intlayer_with_vite+lit.md +111 -1
- package/docs/vi/intlayer_with_vite+preact.md +147 -14
- package/docs/vi/intlayer_with_vite+react.md +101 -13
- package/docs/vi/intlayer_with_vite+react_compiler.md +106 -1
- package/docs/vi/intlayer_with_vite+solid.md +112 -1
- package/docs/vi/intlayer_with_vite+svelte.md +111 -1
- package/docs/vi/intlayer_with_vite+vanilla.md +118 -1
- package/docs/vi/intlayer_with_vite+vue.md +97 -1
- package/docs/vi/introduction.md +104 -1
- package/docs/vi/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/vi/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/vi/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/vi/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/vi/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/vi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/zh/analytics.md +458 -12
- package/docs/zh/configuration.md +99 -1
- package/docs/zh/dictionary/content_file.md +4 -4
- package/docs/zh/dictionary/markdown.md +18 -1
- package/docs/zh/dictionary/plurial.md +6 -3
- package/docs/zh/how_works_intlayer.md +93 -1
- package/docs/zh/interest_of_intlayer.md +108 -13
- package/docs/zh/intlayer_CMS.md +93 -1
- package/docs/zh/intlayer_visual_editor.md +88 -2
- package/docs/zh/intlayer_with_adonisjs.md +121 -1
- package/docs/zh/intlayer_with_analog.md +118 -9
- package/docs/zh/intlayer_with_angular_19.md +117 -10
- package/docs/zh/intlayer_with_angular_21.md +110 -9
- package/docs/zh/intlayer_with_astro.md +108 -4
- package/docs/zh/intlayer_with_astro_lit.md +114 -7
- package/docs/zh/intlayer_with_astro_preact.md +114 -7
- package/docs/zh/intlayer_with_astro_react.md +114 -7
- package/docs/zh/intlayer_with_astro_solid.md +114 -7
- package/docs/zh/intlayer_with_astro_svelte.md +114 -7
- package/docs/zh/intlayer_with_astro_vanilla.md +108 -7
- package/docs/zh/intlayer_with_astro_vue.md +114 -7
- package/docs/zh/intlayer_with_create_react_app.md +110 -6
- package/docs/zh/intlayer_with_elysia.md +121 -1
- package/docs/zh/intlayer_with_express.md +115 -1
- package/docs/zh/intlayer_with_fastify.md +115 -1
- package/docs/zh/intlayer_with_hono.md +115 -1
- package/docs/zh/intlayer_with_htmx.md +769 -0
- package/docs/zh/intlayer_with_lynx+react.md +8 -13
- package/docs/zh/intlayer_with_nestjs.md +115 -1
- package/docs/zh/intlayer_with_nextjs_14.md +120 -45
- package/docs/zh/intlayer_with_nextjs_15.md +121 -44
- package/docs/zh/intlayer_with_nextjs_16.md +121 -42
- package/docs/zh/intlayer_with_nextjs_compiler.md +121 -14
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +122 -10
- package/docs/zh/intlayer_with_nextjs_page_router.md +110 -94
- package/docs/zh/intlayer_with_nuxt.md +111 -9
- package/docs/zh/intlayer_with_react_native+expo.md +103 -8
- package/docs/zh/intlayer_with_react_router_v7.md +131 -28
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +134 -30
- package/docs/zh/intlayer_with_solid_start.md +122 -7
- package/docs/zh/intlayer_with_storybook.md +7 -20
- package/docs/zh/intlayer_with_svelte_kit.md +106 -9
- package/docs/zh/intlayer_with_tanstack+solid.md +129 -29
- package/docs/zh/intlayer_with_tanstack.md +251 -191
- package/docs/zh/intlayer_with_vanilla.md +118 -10
- package/docs/zh/intlayer_with_vite+lit.md +121 -8
- package/docs/zh/intlayer_with_vite+preact.md +150 -41
- package/docs/zh/intlayer_with_vite+react.md +104 -12
- package/docs/zh/intlayer_with_vite+react_compiler.md +107 -2
- package/docs/zh/intlayer_with_vite+solid.md +113 -2
- package/docs/zh/intlayer_with_vite+svelte.md +127 -14
- package/docs/zh/intlayer_with_vite+vanilla.md +126 -9
- package/docs/zh/intlayer_with_vite+vue.md +99 -3
- package/docs/zh/introduction.md +105 -2
- package/docs/zh/migration_from_i18next_to_intlayer.md +0 -2
- package/docs/zh/migration_from_next-i18next_to_intlayer.md +0 -2
- package/docs/zh/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +0 -2
- package/docs/zh/migration_from_react-i18next_to_intlayer.md +0 -2
- package/docs/zh/migration_from_vue-i18n_to_intlayer.md +0 -2
- package/docs/zh/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/zh/releases/v6.md +1 -1
- package/docs/zh-TW/introduction.md +0 -1
- package/package.json +7 -7
- package/src/common.ts +45 -18
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +20 -0
|
@@ -0,0 +1,769 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-08-29
|
|
3
|
+
updatedAt: 2026-08-29
|
|
4
|
+
title: "htmx i18n - アプリを翻訳するための完全ガイド"
|
|
5
|
+
description: "i18nextはもう不要。2026年の多言語(i18n)htmxアプリ構築ガイド。AIエージェントで翻訳し、バンドルサイズ、SEO、パフォーマンスを最適化します。"
|
|
6
|
+
keywords:
|
|
7
|
+
- Internationalization
|
|
8
|
+
- Documentation
|
|
9
|
+
- Intlayer
|
|
10
|
+
- htmx
|
|
11
|
+
- Hypermedia
|
|
12
|
+
- JavaScript
|
|
13
|
+
- Backend
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- environment
|
|
17
|
+
- htmx
|
|
18
|
+
history:
|
|
19
|
+
- version: 9.4.1
|
|
20
|
+
date: 2026-08-29
|
|
21
|
+
changes: "Initial history"
|
|
22
|
+
author: aymericzip
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Intlayerを使用してhtmxアプリケーションを翻訳する | 国際化(i18n)
|
|
26
|
+
|
|
27
|
+
htmxはそれ自体のコンテンツをレンダリングしません。訪問者が読むすべてのラベルはサーバーが生成したHTMLであり、すべてのスワップは別のHTTPリクエストです。したがって、htmxアプリの国際化はサーバーの関心事です。ロケールは各リクエストで解決される必要があり、各フラグメントはそのロケールでレンダリングされる必要があります。
|
|
28
|
+
|
|
29
|
+
Intlayerはバックエンド統合を通じてこれをカバーし、リクエストごとにロケールを検出し、HTMLを構築するハンドラーに対して宣言されたコンテンツを公開します。
|
|
30
|
+
|
|
31
|
+
## 目次
|
|
32
|
+
|
|
33
|
+
<TOC/>
|
|
34
|
+
|
|
35
|
+
## htmxアプリでのi18nの3つのルール
|
|
36
|
+
|
|
37
|
+
<AccordionGroup>
|
|
38
|
+
<Accordion header="ロケールは最初のリクエストだけではなく、すべてのリクエストで解決される必要があります">
|
|
39
|
+
|
|
40
|
+
A single page can trigger dozens of swaps. Each one is a fresh request with no memory of the page that issued it. If the locale lives in a variable set during the initial render, every fragment after it falls back to the default language.
|
|
41
|
+
|
|
42
|
+
The Intlayer middleware resolves the locale from the request itself, so a fragment served at minute ten answers in the same language as the page served at minute zero.
|
|
43
|
+
|
|
44
|
+
</Accordion>
|
|
45
|
+
|
|
46
|
+
<Accordion header="ロケールはリクエストと共に移動する必要があります">
|
|
47
|
+
|
|
48
|
+
Two carriers work with htmx. A cookie (`INTLAYER_LOCALE`) is sent by the browser automatically on every request, including htmx ones. A header (`x-intlayer-locale`) can be attached to htmx requests with the `hx-headers` attribute. Both are read by default.
|
|
49
|
+
|
|
50
|
+
</Accordion>
|
|
51
|
+
|
|
52
|
+
<Accordion header="交換されたHTMLはまだHTMLです">
|
|
53
|
+
|
|
54
|
+
フラグメントに挿入された翻訳値はマークアップです。他の動的な値と同じように、それをエスケープしてください。そうすれば、`<` を含む翻訳が、それが交換されるドキュメントを破壊することはありません。
|
|
55
|
+
|
|
56
|
+
</Accordion>
|
|
57
|
+
</AccordionGroup>
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## ステップバイステップガイド
|
|
62
|
+
|
|
63
|
+
<iframe
|
|
64
|
+
src="https://ide.intlayer.org/aymericzip/intlayer-htmx-template?file=intlayer.config.ts"
|
|
65
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
66
|
+
title="デモ CodeSandbox - Intlayerを使用してアプリケーションを国際化する方法"
|
|
67
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
68
|
+
loading="lazy"
|
|
69
|
+
/>
|
|
70
|
+
|
|
71
|
+
[Application Template](https://github.com/aymericzip/intlayer-htmx-template) を GitHub で参照してください。
|
|
72
|
+
|
|
73
|
+
<Steps>
|
|
74
|
+
|
|
75
|
+
<Step number={1} title="依存関係をインストール">
|
|
76
|
+
|
|
77
|
+
`intlayer` とサーバーの統合をインストールします。
|
|
78
|
+
|
|
79
|
+
<Tabs group="backend" defaultTab="express">
|
|
80
|
+
<Tab label="Express" value="express">
|
|
81
|
+
|
|
82
|
+
```bash packageManager="npm"
|
|
83
|
+
npm install intlayer express-intlayer cookie-parser
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```bash packageManager="pnpm"
|
|
87
|
+
pnpm add intlayer express-intlayer cookie-parser
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```bash packageManager="yarn"
|
|
91
|
+
yarn add intlayer express-intlayer cookie-parser
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```bash packageManager="bun"
|
|
95
|
+
bun add intlayer express-intlayer cookie-parser
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
</Tab>
|
|
99
|
+
<Tab label="Fastify" value="fastify">
|
|
100
|
+
|
|
101
|
+
```bash packageManager="npm"
|
|
102
|
+
npm install intlayer fastify-intlayer @fastify/cookie @fastify/formbody
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```bash packageManager="pnpm"
|
|
106
|
+
pnpm add intlayer fastify-intlayer @fastify/cookie @fastify/formbody
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
```bash packageManager="yarn"
|
|
110
|
+
yarn add intlayer fastify-intlayer @fastify/cookie @fastify/formbody
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```bash packageManager="bun"
|
|
114
|
+
bun add intlayer fastify-intlayer @fastify/cookie @fastify/formbody
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
</Tab>
|
|
118
|
+
<Tab label="Hono" value="hono">
|
|
119
|
+
|
|
120
|
+
```bash packageManager="npm"
|
|
121
|
+
npm install intlayer hono-intlayer
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```bash packageManager="pnpm"
|
|
125
|
+
pnpm add intlayer hono-intlayer
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```bash packageManager="yarn"
|
|
129
|
+
yarn add intlayer hono-intlayer
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
```bash packageManager="bun"
|
|
133
|
+
bun add intlayer hono-intlayer
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
</Tab>
|
|
137
|
+
<Tab label="Elysia" value="elysia">
|
|
138
|
+
|
|
139
|
+
```bash packageManager="npm"
|
|
140
|
+
npm install intlayer elysia-intlayer
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```bash packageManager="pnpm"
|
|
144
|
+
pnpm add intlayer elysia-intlayer
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
```bash packageManager="yarn"
|
|
148
|
+
yarn add intlayer elysia-intlayer
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
bun add intlayer elysia-intlayer
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
</Tab>
|
|
156
|
+
</Tabs>
|
|
157
|
+
|
|
158
|
+
> ExpressとFastifyはそれぞれのcookieパーサーを通じてlocale cookieを読み取るため、これらと一緒にインストールする必要があります。HonoとElysiaはネイティブにcookieを解析します。
|
|
159
|
+
|
|
160
|
+
htmx自体は単一のscriptタグであり、ステップ4で追加されます。
|
|
161
|
+
|
|
162
|
+
</Step>
|
|
163
|
+
|
|
164
|
+
<Step number={2} title="プロジェクトの設定">
|
|
165
|
+
|
|
166
|
+
プロジェクトのルートに`intlayer.config.ts`を作成します:
|
|
167
|
+
|
|
168
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
169
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
170
|
+
|
|
171
|
+
const config: IntlayerConfig = {
|
|
172
|
+
internationalization: {
|
|
173
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, Locales.ARABIC],
|
|
174
|
+
defaultLocale: Locales.ENGLISH,
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
export default config;
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
> 全オプションのリストについては、[設定ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)を参照してください。
|
|
182
|
+
|
|
183
|
+
</Step>
|
|
184
|
+
|
|
185
|
+
<Step number={3} title="コンテンツを宣言する">
|
|
186
|
+
|
|
187
|
+
サーバーがレンダリングするすべてのラベルを宣言します。フラグメント内にのみ表示されるものも含めて:
|
|
188
|
+
|
|
189
|
+
```typescript fileName="src/app.content.ts" contentDeclarationFormat={["typescript", "esm"]}
|
|
190
|
+
import { insert, t, type Dictionary } from "intlayer";
|
|
191
|
+
|
|
192
|
+
const appContent = {
|
|
193
|
+
key: "app",
|
|
194
|
+
content: {
|
|
195
|
+
pageTitle: "Intlayer + htmx",
|
|
196
|
+
|
|
197
|
+
localeLabel: t({
|
|
198
|
+
ja: "言語",
|
|
199
|
+
en: "Language",
|
|
200
|
+
fr: "Langue",
|
|
201
|
+
es: "Idioma",
|
|
202
|
+
ar: "اللغة",
|
|
203
|
+
}),
|
|
204
|
+
|
|
205
|
+
cartSummary: insert(
|
|
206
|
+
t({
|
|
207
|
+
ja: "カート内のアイテム: {{count}}",
|
|
208
|
+
en: "Items in your cart: {{count}}",
|
|
209
|
+
fr: "Articles dans votre panier : {{count}}",
|
|
210
|
+
es: "Artículos en tu carrito: {{count}}",
|
|
211
|
+
ar: "المنتجات في سلتك: {{count}}",
|
|
212
|
+
})
|
|
213
|
+
),
|
|
214
|
+
|
|
215
|
+
addItem: t({
|
|
216
|
+
ja: "アイテムを追加",
|
|
217
|
+
en: "Add an item",
|
|
218
|
+
fr: "Ajouter un article",
|
|
219
|
+
es: "Añadir un artículo",
|
|
220
|
+
ar: "أضف منتجًا",
|
|
221
|
+
}),
|
|
222
|
+
},
|
|
223
|
+
} satisfies Dictionary;
|
|
224
|
+
|
|
225
|
+
export default appContent;
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
> コンテンツ宣言は `contentDir` 以下(デフォルトは `./src`)のどこにでも配置でき、`.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}` にマッチします。[コンテンツ宣言ドキュメンテーション](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/content_file.md)を参照してください。
|
|
229
|
+
|
|
230
|
+
</Step>
|
|
231
|
+
|
|
232
|
+
<Step number={4} title="Intlayer ミドルウェアを登録する">
|
|
233
|
+
|
|
234
|
+
各リクエストのlocaleを解決し、ハンドラーに公開するミドルウェア。
|
|
235
|
+
|
|
236
|
+
<Tabs group="backend" defaultTab="express">
|
|
237
|
+
<Tab label="Express" value="express">
|
|
238
|
+
|
|
239
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
240
|
+
import cookieParser from "cookie-parser";
|
|
241
|
+
import express from "express";
|
|
242
|
+
import { intlayer } from "express-intlayer";
|
|
243
|
+
|
|
244
|
+
const app = express();
|
|
245
|
+
|
|
246
|
+
// Cookie parserが最初に実行される必要があります: `express-intlayer`は
|
|
247
|
+
// `req.cookies`を通じてlocale cookieを読み込みます。
|
|
248
|
+
app.use(cookieParser());
|
|
249
|
+
app.use(express.urlencoded({ extended: false }));
|
|
250
|
+
app.use(intlayer());
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
解決されたlocaleは`res.locals.locale`にあります。
|
|
254
|
+
|
|
255
|
+
</Tab>
|
|
256
|
+
<Tab label="Fastify" value="fastify">
|
|
257
|
+
|
|
258
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
259
|
+
typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
260
|
+
import cookie from "@fastify/cookie";
|
|
261
|
+
import formbody from "@fastify/formbody";
|
|
262
|
+
import Fastify from "fastify";
|
|
263
|
+
import { intlayer } from "fastify-intlayer";
|
|
264
|
+
|
|
265
|
+
const fastify = Fastify();
|
|
266
|
+
|
|
267
|
+
await fastify.register(cookie);
|
|
268
|
+
await fastify.register(formbody);
|
|
269
|
+
await fastify.register(intlayer);
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
解決されたロケールは `req.intlayer.locale` にあります。
|
|
273
|
+
|
|
274
|
+
</Tab>
|
|
275
|
+
<Tab label="Hono" value="hono">
|
|
276
|
+
|
|
277
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
278
|
+
import { Hono } from "hono";
|
|
279
|
+
import { intlayer } from "hono-intlayer";
|
|
280
|
+
|
|
281
|
+
const app = new Hono();
|
|
282
|
+
|
|
283
|
+
app.use("*", intlayer());
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
解決されたロケールは `c.get("locale")` です。
|
|
287
|
+
|
|
288
|
+
</Tab>
|
|
289
|
+
<Tab label="Elysia" value="elysia">
|
|
290
|
+
|
|
291
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
292
|
+
import { Elysia } from "elysia";
|
|
293
|
+
import { intlayer } from "elysia-intlayer";
|
|
294
|
+
|
|
295
|
+
const app = new Elysia().use(intlayer());
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
解決済みロケールは、ルートコンテキストの `intlayer!.locale` です。
|
|
299
|
+
|
|
300
|
+
</Tab>
|
|
301
|
+
</Tabs>
|
|
302
|
+
|
|
303
|
+
デフォルトでは、ロケールは `INTLAYER_LOCALE` クッキーから取得され、次に `x-intlayer-locale` ヘッダー、その後 `Accept-Language` ネゴシエーションから取得されます。
|
|
304
|
+
|
|
305
|
+
</Step>
|
|
306
|
+
|
|
307
|
+
<Step number={5} title="リクエストロケールでフラグメントをレンダリングする">
|
|
308
|
+
|
|
309
|
+
フラグメントレンダラーをロケールの純粋な関数として記述し、ミドルウェアが解決したロケールを渡します。明示的に渡すことで、フラグメントがどのサーバー上にあるかに関わらず、それを要求したリクエストに関連付けられます。
|
|
310
|
+
|
|
311
|
+
```typescript fileName="src/views.ts" codeFormat={["typescript", "esm"]}
|
|
312
|
+
import { currency, getIntlayer, type Locale } from "intlayer";
|
|
313
|
+
|
|
314
|
+
const HTML_ENTITIES: Record<string, string> = {
|
|
315
|
+
"&": "&",
|
|
316
|
+
"<": "<",
|
|
317
|
+
">": ">",
|
|
318
|
+
'"': """,
|
|
319
|
+
"'": "'",
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
/** 翻訳された値がマークアップから抜け出さないようにエスケープします。 */
|
|
323
|
+
const escapeHtml = (value: string): string =>
|
|
324
|
+
value.replace(
|
|
325
|
+
/[&<>"']/g,
|
|
326
|
+
(character) => HTML_ENTITIES[character] ?? character
|
|
327
|
+
);
|
|
328
|
+
|
|
329
|
+
export const renderCart = (locale: Locale, itemCount: number): string => {
|
|
330
|
+
const content = getIntlayer("app", locale);
|
|
331
|
+
|
|
332
|
+
return `<section id="cart">
|
|
333
|
+
<p>${escapeHtml(String(content.cartSummary({ count: itemCount })))}</p>
|
|
334
|
+
<p>${escapeHtml(currency(itemCount * 12.5, { locale, currency: "EUR" }))}</p>
|
|
335
|
+
<button
|
|
336
|
+
hx-post="/cart/items"
|
|
337
|
+
hx-vals='{"itemCount": ${itemCount}}'
|
|
338
|
+
hx-target="#cart"
|
|
339
|
+
hx-swap="outerHTML"
|
|
340
|
+
>${escapeHtml(String(content.addItem))}</button>
|
|
341
|
+
</section>`;
|
|
342
|
+
};
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
ルートから提供する:
|
|
346
|
+
|
|
347
|
+
<Tabs group="backend" defaultTab="express">
|
|
348
|
+
<Tab label="Express" value="express">
|
|
349
|
+
|
|
350
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
351
|
+
app.post("/cart/items", (req, res) => {
|
|
352
|
+
// リクエストボディからitemCountを取得し、デフォルト値は0
|
|
353
|
+
const itemCount = Number(req.body?.itemCount ?? 0) + 1;
|
|
354
|
+
|
|
355
|
+
// renderCart関数を使用してHTMLを生成し、レスポンスを返す
|
|
356
|
+
res.type("html").send(renderCart(res.locals.locale, itemCount));
|
|
357
|
+
});
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
</Tab>
|
|
361
|
+
<Tab label="Fastify" value="fastify">
|
|
362
|
+
|
|
363
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
364
|
+
fastify.post("/cart/items", async (req, reply) => {
|
|
365
|
+
// リクエストボディからitemCountを取得し、デフォルト値は0
|
|
366
|
+
const itemCount =
|
|
367
|
+
Number((req.body as { itemCount?: string })?.itemCount ?? 0) + 1;
|
|
368
|
+
|
|
369
|
+
// renderCart関数を使用してHTMLを生成し、レスポンスを返す
|
|
370
|
+
return reply
|
|
371
|
+
.type("text/html")
|
|
372
|
+
.send(renderCart(req.intlayer.locale, itemCount));
|
|
373
|
+
});
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
</Tab>
|
|
377
|
+
<Tab label="Hono" value="hono">
|
|
378
|
+
|
|
379
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
380
|
+
app.post("/cart/items", async (c) => {
|
|
381
|
+
const body = await c.req.parseBody();
|
|
382
|
+
const itemCount = Number(body["itemCount"] ?? 0) + 1;
|
|
383
|
+
|
|
384
|
+
return c.html(renderCart(c.get("locale"), itemCount));
|
|
385
|
+
});
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
</Tab>
|
|
389
|
+
<Tab label="Elysia" value="elysia">
|
|
390
|
+
|
|
391
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
392
|
+
app.post("/cart/items", ({ body, intlayer }) => {
|
|
393
|
+
const itemCount =
|
|
394
|
+
Number((body as { itemCount?: string })?.itemCount ?? 0) + 1;
|
|
395
|
+
|
|
396
|
+
return new Response(renderCart(intlayer!.locale, itemCount), {
|
|
397
|
+
headers: { "content-type": "text/html" },
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
</Tab>
|
|
403
|
+
</Tabs>
|
|
404
|
+
|
|
405
|
+
同じフラグメントは、クッキーが `fr` であるビジターに対してはフランス語で、クッキーが `ar` であるビジターに対してはアラビア語で応答するようになりました。呼び出すマークアップに変更はありません。
|
|
406
|
+
|
|
407
|
+
</Step>
|
|
408
|
+
|
|
409
|
+
<Step number={6} title="最初のページを配信する">
|
|
410
|
+
|
|
411
|
+
`<body>` を単独でレンダリングして、ステップ 7 のロケール切り替え機能でそれ全体をスワップできるようにしてから、htmx を読み込むドキュメントでラップします:
|
|
412
|
+
|
|
413
|
+
```typescript fileName="src/views.ts" codeFormat={["typescript", "esm"]}
|
|
414
|
+
import { getHTMLTextDir, getIntlayer, type Locale } from "intlayer";
|
|
415
|
+
|
|
416
|
+
export const renderBody = (locale: Locale, itemCount: number): string => {
|
|
417
|
+
const content = getIntlayer("app", locale);
|
|
418
|
+
|
|
419
|
+
return `<body lang="${locale}" dir="${getHTMLTextDir(locale)}">
|
|
420
|
+
<main>
|
|
421
|
+
<h1>${escapeHtml(String(content.pageTitle))}</h1>
|
|
422
|
+
${renderLocaleSwitcher(locale)}
|
|
423
|
+
${renderCart(locale, itemCount)}
|
|
424
|
+
</main>
|
|
425
|
+
</body>`;
|
|
426
|
+
};
|
|
427
|
+
|
|
428
|
+
export const renderPage = (locale: Locale, itemCount: number): string =>
|
|
429
|
+
`<!doctype html>
|
|
430
|
+
<html lang="${locale}" dir="${getHTMLTextDir(locale)}">
|
|
431
|
+
<head>
|
|
432
|
+
<meta charset="utf-8" />
|
|
433
|
+
<title>${escapeHtml(String(getIntlayer("app", locale).pageTitle))}</title>
|
|
434
|
+
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
|
|
435
|
+
</head>
|
|
436
|
+
${renderBody(locale, itemCount)}
|
|
437
|
+
</html>`;
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
`getHTMLTextDir` は、ロケールに対して `ltr`、`rtl`、または `auto` を返します。これにより、アラビア語とヘブライ語が正しくレイアウトされるようになります。
|
|
441
|
+
|
|
442
|
+
</Step>
|
|
443
|
+
|
|
444
|
+
<Step number={7} title="言語を切り替える">
|
|
445
|
+
|
|
446
|
+
言語の切り替えは、他のリクエストと同様です。サーバーはこの選択をミドルウェアが読み込むクッキーに保存し、その後、ページを新しいロケールで再レンダリングして返します。
|
|
447
|
+
|
|
448
|
+
`<select>`を使用してスイッチャーをレンダリングし、自身をpostして全体の`<body>`を置き換えるため、フラグメント周囲の静的ラベルも変更されます:
|
|
449
|
+
|
|
450
|
+
```typescript fileName="src/views.ts" codeFormat={["typescript", "esm"]}
|
|
451
|
+
import { getIntlayer, getLocaleName, type Locale, locales } from "intlayer";
|
|
452
|
+
|
|
453
|
+
const renderLocaleSwitcher = (locale: Locale): string => {
|
|
454
|
+
const content = getIntlayer("app", locale);
|
|
455
|
+
|
|
456
|
+
const options = locales
|
|
457
|
+
.map(
|
|
458
|
+
(availableLocale: Locale) =>
|
|
459
|
+
`<option value="${availableLocale}"${availableLocale === locale ? " selected" : ""}>${escapeHtml(getLocaleName(availableLocale, locale))}</option>`
|
|
460
|
+
)
|
|
461
|
+
.join("");
|
|
462
|
+
|
|
463
|
+
return `<form>
|
|
464
|
+
<label for="locale">${escapeHtml(String(content.localeLabel))}</label>
|
|
465
|
+
<select
|
|
466
|
+
id="locale"
|
|
467
|
+
name="locale"
|
|
468
|
+
hx-post="/locale"
|
|
469
|
+
hx-trigger="change"
|
|
470
|
+
hx-target="body"
|
|
471
|
+
hx-swap="outerHTML"
|
|
472
|
+
>${options}</select>
|
|
473
|
+
</form>`;
|
|
474
|
+
};
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
> `getLocaleName(availableLocale, locale)` は、現在表示されている言語で各言語を記述します。2番目の引数を渡さない場合は、代わりに各言語をそれ自身の言語で記述します。
|
|
478
|
+
|
|
479
|
+
POSTを処理するには、値を検証し、cookieを設定し、新しいbodyを返します:
|
|
480
|
+
|
|
481
|
+
<Tabs group="backend" defaultTab="express">
|
|
482
|
+
<Tab label="Express" value="express">
|
|
483
|
+
|
|
484
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
485
|
+
import { isDeclaredLocale } from "intlayer";
|
|
486
|
+
|
|
487
|
+
app.post("/locale", (req, res) => {
|
|
488
|
+
// リクエストボディからロケールを取得
|
|
489
|
+
const requestedLocale = String(req.body?.locale);
|
|
490
|
+
|
|
491
|
+
// 宣言されたロケールかどうかを確認
|
|
492
|
+
if (!isDeclaredLocale(requestedLocale)) {
|
|
493
|
+
res.status(400).send("Unknown locale");
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
res.cookie("INTLAYER_LOCALE", requestedLocale, {
|
|
498
|
+
sameSite: "lax",
|
|
499
|
+
path: "/",
|
|
500
|
+
});
|
|
501
|
+
res.type("html").send(renderBody(requestedLocale, 0));
|
|
502
|
+
});
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
</Tab>
|
|
506
|
+
<Tab label="Fastify" value="fastify">
|
|
507
|
+
|
|
508
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
509
|
+
import { isDeclaredLocale } from "intlayer";
|
|
510
|
+
|
|
511
|
+
fastify.post("/locale", async (req, reply) => {
|
|
512
|
+
const requestedLocale = String((req.body as { locale?: string })?.locale);
|
|
513
|
+
|
|
514
|
+
if (!isDeclaredLocale(requestedLocale)) {
|
|
515
|
+
return reply.status(400).send("Unknown locale");
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
return reply
|
|
519
|
+
.setCookie("INTLAYER_LOCALE", requestedLocale, {
|
|
520
|
+
sameSite: "lax",
|
|
521
|
+
path: "/",
|
|
522
|
+
})
|
|
523
|
+
.type("text/html")
|
|
524
|
+
.send(renderBody(requestedLocale, 0));
|
|
525
|
+
});
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
</Tab>
|
|
529
|
+
<Tab label="Hono" value="hono">
|
|
530
|
+
|
|
531
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
532
|
+
import { setCookie } from "hono/cookie";
|
|
533
|
+
import { isDeclaredLocale } from "intlayer";
|
|
534
|
+
|
|
535
|
+
app.post("/locale", async (c) => {
|
|
536
|
+
// ボディをパースしてrequestLocaleを取得
|
|
537
|
+
const body = await c.req.parseBody();
|
|
538
|
+
const requestedLocale = String(body["locale"]);
|
|
539
|
+
|
|
540
|
+
// 宣言されたロケールかどうかをチェック
|
|
541
|
+
if (!isDeclaredLocale(requestedLocale)) {
|
|
542
|
+
return c.text("Unknown locale", 400);
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
// クッキーを設定
|
|
546
|
+
setCookie(c, "INTLAYER_LOCALE", requestedLocale, {
|
|
547
|
+
sameSite: "Lax",
|
|
548
|
+
path: "/",
|
|
549
|
+
});
|
|
550
|
+
// HTMLレスポンスを返す
|
|
551
|
+
return c.html(renderBody(requestedLocale, 0));
|
|
552
|
+
});
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
</Tab>
|
|
556
|
+
<Tab label="Elysia" value="elysia">
|
|
557
|
+
|
|
558
|
+
```typescript fileName="src/index.ts" codeFormat={["typescript", "esm"]}
|
|
559
|
+
import { isDeclaredLocale } from "intlayer";
|
|
560
|
+
|
|
561
|
+
app.post("/locale", ({ body, cookie, status }) => {
|
|
562
|
+
const requestedLocale = String((body as { locale?: string })?.locale);
|
|
563
|
+
|
|
564
|
+
if (!isDeclaredLocale(requestedLocale)) {
|
|
565
|
+
return status(400, "Unknown locale");
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
cookie["INTLAYER_LOCALE"]!.set({
|
|
569
|
+
value: requestedLocale,
|
|
570
|
+
sameSite: "lax",
|
|
571
|
+
path: "/",
|
|
572
|
+
});
|
|
573
|
+
|
|
574
|
+
return new Response(renderBody(requestedLocale, 0), {
|
|
575
|
+
headers: { "content-type": "text/html" },
|
|
576
|
+
});
|
|
577
|
+
});
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
</Tab>
|
|
581
|
+
</Tabs>
|
|
582
|
+
|
|
583
|
+
> `isDeclaredLocale` は任意の文字列をあなたが設定したロケールの1つに絞り込むため、予期しない値がレンダラーに到達することはありません。
|
|
584
|
+
|
|
585
|
+
</Step>
|
|
586
|
+
|
|
587
|
+
<Step number={8} title="スワップ後に lang と dir を同期させた状態に保つ" isOptional={true}>
|
|
588
|
+
|
|
589
|
+
swapは`<body>`を置き換えることができますが、その周りの`<html>`は置き換えられません。swappedされたbodyに`lang`と`dir`をレンダリングし、headからroot要素に一度コピーして戻します:
|
|
590
|
+
|
|
591
|
+
```html fileName="src/views.ts"
|
|
592
|
+
<script>
|
|
593
|
+
document.addEventListener("htmx:afterSwap", () => {
|
|
594
|
+
document.documentElement.lang = document.body.lang;
|
|
595
|
+
document.documentElement.dir = document.body.dir;
|
|
596
|
+
});
|
|
597
|
+
</script>
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
これがない場合、アラビア語への切り替えはbody内で右から左へレンダリングされますが、ドキュメントは前の言語を支援技術とクローラーに引き続き広告します。
|
|
601
|
+
|
|
602
|
+
</Step>
|
|
603
|
+
|
|
604
|
+
<Step number={9} title="localeをクッキーの代わりにヘッダーとして送信する" isOptional={true}>
|
|
605
|
+
|
|
606
|
+
Cookieが適切でない場合は、祖先要素の`hx-headers`を使用して、すべてのhtmxリクエストにlocaleを付与します。子孫はそれを継承します:
|
|
607
|
+
|
|
608
|
+
```html
|
|
609
|
+
<body hx-headers='{"x-intlayer-locale": "fr"}'>
|
|
610
|
+
...
|
|
611
|
+
</body>
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
ミドルウェアはデフォルトで`x-intlayer-locale`を読み取ります。設定でキャリアの名前を変更できます:
|
|
615
|
+
|
|
616
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
617
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
618
|
+
|
|
619
|
+
// Intlayerの設定
|
|
620
|
+
const config: IntlayerConfig = {
|
|
621
|
+
// ... その他の設定オプション
|
|
622
|
+
routing: {
|
|
623
|
+
storage: [
|
|
624
|
+
{ type: "header", name: "my-locale-header" },
|
|
625
|
+
{ type: "cookie", name: "my-locale-cookie" },
|
|
626
|
+
],
|
|
627
|
+
},
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
export default config;
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
</Step>
|
|
634
|
+
|
|
635
|
+
</Steps>
|
|
636
|
+
|
|
637
|
+
### TypeScriptの設定
|
|
638
|
+
|
|
639
|
+
自動生成された型を含めることで、実行時に空の文字列になるのではなく、宣言されていないキーがコンパイルエラーになります。
|
|
640
|
+
|
|
641
|
+
```json5 fileName="tsconfig.json"
|
|
642
|
+
{
|
|
643
|
+
// ... 既存の TypeScript 設定
|
|
644
|
+
"include": [
|
|
645
|
+
// ... 既存の TypeScript 設定
|
|
646
|
+
".intlayer/**/*.ts", // 自動生成された型を含める
|
|
647
|
+
],
|
|
648
|
+
}
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
### Git 設定
|
|
652
|
+
|
|
653
|
+
Intlayer によって生成されたファイルを無視することをお勧めします:
|
|
654
|
+
|
|
655
|
+
```plaintext fileName=".gitignore"
|
|
656
|
+
# Intlayer によって生成されたファイルを無視
|
|
657
|
+
.intlayer
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
### VS Code Extension
|
|
661
|
+
|
|
662
|
+
Intlayer を使用した開発体験を向上させるために、公式の **Intlayer VS Code Extension** をインストールできます。
|
|
663
|
+
|
|
664
|
+
[VS Code Marketplace からインストール](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
665
|
+
|
|
666
|
+
このエクステンションは以下を提供します:
|
|
667
|
+
|
|
668
|
+
- **翻訳キーの自動補完**。
|
|
669
|
+
- **欠落している翻訳のリアルタイムエラー検出**。
|
|
670
|
+
- **翻訳済みコンテンツのインラインプレビュー**。
|
|
671
|
+
- **翻訳を簡単に作成・更新するクイックアクション**。
|
|
672
|
+
|
|
673
|
+
エクステンションの使用方法の詳細については、[Intlayer VS Code エクステンションのドキュメント](https://intlayer.org/doc/vs-code-extension)を参照してください。
|
|
674
|
+
|
|
675
|
+
---
|
|
676
|
+
|
|
677
|
+
### さらに進める
|
|
678
|
+
|
|
679
|
+
さらに進めるには、[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md)を使用してコンテンツを外部化できます。これにより、翻訳者はデプロイメントなしでコピーを変更できます。
|
|
680
|
+
|
|
681
|
+
## よくある質問
|
|
682
|
+
|
|
683
|
+
<FAQ>
|
|
684
|
+
|
|
685
|
+
<Question title="なぜスワップされたフラグメントが間違った言語で戻ってくるのですか?">
|
|
686
|
+
|
|
687
|
+
フラグメントリクエストにロケールが含まれていなかったため。htmxリクエストはそれを発行したページから独立しているため、`INTLAYER_LOCALE` cookieまたは`hx-headers`で設定された`x-intlayer-locale`ヘッダーを通じて、各リクエストにロケールを含める必要があります。ExpressおよびFastifyでcookie parserがIntlayer middlewareの前に実行されていることを確認してください。そうでない場合、cookieは読み込まれず、すべてのリクエストが`Accept-Language`にフォールバックします。
|
|
688
|
+
|
|
689
|
+
</Question>
|
|
690
|
+
|
|
691
|
+
<Question title="ロケールを`getIntlayer`に渡すべきか、それともリクエストコンテキストに依存すべきか?">
|
|
692
|
+
|
|
693
|
+
それを渡してください。インテグレーションは解決されたロケール(`res.locals.locale`、`req.intlayer.locale`、`c.get("locale")`、`intlayer!.locale`)を公開しており、`getIntlayer`に渡すことで各レンダラーをロケールの純粋な関数にします。これはテストしやすく、サーバーを変更した場合でもフラグメントレンダラーをポータブルに保つことができます。
|
|
694
|
+
|
|
695
|
+
</Question>
|
|
696
|
+
|
|
697
|
+
<Question title="htmxと一緒にクライアント側のi18nライブラリが必要ですか?">
|
|
698
|
+
|
|
699
|
+
いいえ。訪問者が見るものはすべてサーバーによって生成されるため、ブラウザで翻訳するものはありません。これはまた、htmxアプリのi18nのページ重量コストがほぼゼロである理由です。カタログがクライアントに送信されることはありません。
|
|
700
|
+
|
|
701
|
+
</Question>
|
|
702
|
+
|
|
703
|
+
<Question title="SEO用にURLもローカライズするにはどうすればよいですか?">
|
|
704
|
+
|
|
705
|
+
ロケールプレフィックス(`/fr/cart`)の下でページを提供し、Cookie ではなくルートハンドラーのパスからロケールを読み取ります。これはフルページレンダリングの場合です。フラグメントは引き続き Cookie またはヘッダーを使用できます。[configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)でルーティングオプションを、[custom URL rewrites](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/custom_url_rewrites.md)を参照してください。
|
|
706
|
+
|
|
707
|
+
</Question>
|
|
708
|
+
|
|
709
|
+
<Question title="右から左への言語にはどのように対応しますか?">
|
|
710
|
+
|
|
711
|
+
`getHTMLTextDir(locale)` は `ltr`、`rtl`、または `auto` を返します。初期レンダリングではドキュメントに設定し、ステップ 8 に示すようにスワップ後に再度適用します。CSS 論理プロパティ(`margin-left` ではなく `margin-inline-start`)を使用して、レイアウトが従うようにします。
|
|
712
|
+
|
|
713
|
+
</Question>
|
|
714
|
+
|
|
715
|
+
<Question title="翻訳された値をエスケープする必要がありますか?">
|
|
716
|
+
|
|
717
|
+
はい、テンプレート文字列に挿入するすべてのものに対して、他の動的値とまったく同じようにエスケープする必要があります。CMSまたは翻訳者から来るコンテンツは、あなたが制御するマークアップではありません。ステップ5は最小限のエスケーパーを示しています。
|
|
718
|
+
|
|
719
|
+
</Question>
|
|
720
|
+
|
|
721
|
+
<Question title="同じコンテンツをAPI応答にも使用できますか?">
|
|
722
|
+
|
|
723
|
+
はい。バックエンド統合は `t()` と `getIntlayer()` をあらゆるハンドラーに公開するため、トーストに表示されるエラーメッセージとフラグメントにレンダリングされるラベルは、同じ宣言されたコンテンツから取得されます。[Express](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_express.md)、[Fastify](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_fastify.md)、[Hono](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_hono.md)、[Elysia](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_elysia.md)ガイドを参照してください。
|
|
724
|
+
|
|
725
|
+
</Question>
|
|
726
|
+
|
|
727
|
+
<Question title="コンテンツをキーごとに移動する必要がありますか?">
|
|
728
|
+
|
|
729
|
+
いいえ。`npx intlayer extract` を実行すると、Intlayer がソースファイルを読み込み、ユーザー向けの文字列を抽出して、各ファイルの隣に `.content` ファイルを書き込みます。これにより、カタログに文字列を 1 つずつコピーするのではなく、diff を確認できます。[extract コマンド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/extract.md)を参照してください。
|
|
730
|
+
|
|
731
|
+
</Question>
|
|
732
|
+
|
|
733
|
+
<Question title="既存の JSON 翻訳ファイルを保持できますか?">
|
|
734
|
+
|
|
735
|
+
はい。[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)はgetextカタログに対して同じことを行い、[per locale files](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/per_locale_file.md)では、ロケールを1つのファイルにグループ化する代わりに、言語別にコンテンツを分割できます。
|
|
736
|
+
|
|
737
|
+
</Question>
|
|
738
|
+
|
|
739
|
+
<Question title="AIで自動的にアプリを翻訳するにはどうしたらいいですか?">
|
|
740
|
+
|
|
741
|
+
`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) を参照してください。
|
|
742
|
+
|
|
743
|
+
</Question>
|
|
744
|
+
|
|
745
|
+
<Question title="Intlayer は gender、条件分岐、補間値に対応していますか?">
|
|
746
|
+
|
|
747
|
+
はい:[性別ベースのコンテンツ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/gender.md)、条件、[列挙](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/enumeration.md)、補間値用の[挿入](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/insertion.md)、および数値、日付、通貨用の[フォーマッター](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/formatters.md)。
|
|
748
|
+
|
|
749
|
+
</Question>
|
|
750
|
+
|
|
751
|
+
<Question title="どのようなエディターとAIエージェントツールが利用可能ですか?">
|
|
752
|
+
|
|
753
|
+
5つ、すべてオプションです:
|
|
754
|
+
|
|
755
|
+
- **[VS Code拡張機能](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/vs_code_extension.md)**: キーからそれを宣言するコンテンツファイルにジャンプし、ファイルからコンテンツを抽出し、コマンドパレットからbuild、fill、test、push、pullを実行します。
|
|
756
|
+
- **[LSPサーバー](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/lsp.md)**: LSPに対応した任意のエディターで同じ認識を提供し、定義へのジャンプ、翻訳された値のホバープレビュー、キーのオートコンプリート、キーが宣言されていない場合の警告を含みます。
|
|
757
|
+
- **[MCPサーバー](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/mcp_server.md)**: IntlayerのドキュメントとCLIをCursor、VS Code、Claude Desktop、Claude Code、ChatGPTに公開します。
|
|
758
|
+
- **[Agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/agent_skills.md)**: `intlayer-config`、`intlayer-cli`、`intlayer-content` などの焦点を絞ったスキル。
|
|
759
|
+
- **[ESLint plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/eslint.md)**: `no-raw-text` ハードコードされた文字列にフラグを立てます。
|
|
760
|
+
|
|
761
|
+
</Question>
|
|
762
|
+
|
|
763
|
+
<Question title="Intlayer は無料でオープンソースですか?">
|
|
764
|
+
|
|
765
|
+
はい、Apache 2.0 ライセンスの下で、商用利用を含みます。ホストされている [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md) はオプションの有料サービスであり、[自己ホスト](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/self_hosting.md) することもできます。
|
|
766
|
+
|
|
767
|
+
</Question>
|
|
768
|
+
|
|
769
|
+
</FAQ>
|