@intlayer/docs 8.7.6 → 8.7.8-canary.0
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/blog/ar/i18n_using_next-i18next.md +1 -1
- package/blog/ar/i18n_using_next-intl.md +1 -1
- package/blog/ar/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/de/i18n_using_next-i18next.md +1 -1
- package/blog/de/i18n_using_next-intl.md +1 -1
- package/blog/de/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/en/i18n_using_next-i18next.md +1 -1
- package/blog/en/i18n_using_next-intl.md +1 -1
- package/blog/en/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/en-GB/i18n_using_next-i18next.md +1 -1
- package/blog/en-GB/i18n_using_next-intl.md +1 -1
- package/blog/en-GB/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/es/i18n_using_next-i18next.md +1 -1
- package/blog/es/i18n_using_next-intl.md +1 -1
- package/blog/es/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/fr/i18n_using_next-i18next.md +1 -1
- package/blog/fr/i18n_using_next-intl.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/hi/i18n_using_next-i18next.md +1 -1
- package/blog/hi/i18n_using_next-intl.md +1 -1
- package/blog/hi/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/id/i18n_using_next-i18next.md +1 -1
- package/blog/id/i18n_using_next-intl.md +1 -1
- package/blog/it/i18n_using_next-i18next.md +1 -1
- package/blog/it/i18n_using_next-intl.md +1 -1
- package/blog/it/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/ja/i18n_using_next-i18next.md +1 -1
- package/blog/ja/i18n_using_next-intl.md +1 -1
- package/blog/ko/i18n_using_next-i18next.md +1 -1
- package/blog/ko/i18n_using_next-intl.md +1 -1
- package/blog/pl/i18n_using_next-i18next.md +1 -1
- package/blog/pl/i18n_using_next-intl.md +1 -1
- package/blog/pt/i18n_using_next-i18next.md +1 -1
- package/blog/pt/i18n_using_next-intl.md +1 -1
- package/blog/pt/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/ru/i18n_using_next-i18next.md +1 -1
- package/blog/ru/i18n_using_next-intl.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/react-native.md +0 -4
- package/blog/tr/i18n_using_next-i18next.md +1 -1
- package/blog/tr/i18n_using_next-intl.md +1 -1
- package/blog/uk/i18n_using_next-i18next.md +1 -1
- package/blog/uk/i18n_using_next-intl.md +1 -1
- package/blog/vi/i18n_using_next-i18next.md +1 -1
- package/blog/vi/i18n_using_next-intl.md +1 -1
- package/blog/zh/i18n_using_next-i18next.md +1 -1
- package/blog/zh/i18n_using_next-intl.md +1 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +140 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +140 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/common.d.ts +1 -0
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +7 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/dictionary/condition.md +2 -116
- package/docs/ar/dictionary/content_file.md +2 -202
- package/docs/ar/dictionary/enumeration.md +2 -116
- package/docs/ar/dictionary/file.md +3 -103
- package/docs/ar/dictionary/function_fetching.md +3 -105
- package/docs/ar/dictionary/gender.md +2 -140
- package/docs/ar/dictionary/insertion.md +3 -57
- package/docs/ar/dictionary/nesting.md +3 -121
- package/docs/ar/dictionary/translation.md +4 -146
- package/docs/ar/interest_of_intlayer.md +2 -59
- package/docs/ar/intlayer_CMS.md +3 -228
- package/docs/ar/intlayer_visual_editor.md +1 -72
- package/docs/ar/intlayer_with_adonisjs.md +3 -109
- package/docs/ar/intlayer_with_analog.md +21 -41
- package/docs/ar/intlayer_with_angular.md +15 -41
- package/docs/ar/intlayer_with_astro.md +187 -58
- package/docs/ar/intlayer_with_astro_lit.md +619 -0
- package/docs/ar/intlayer_with_astro_preact.md +568 -0
- package/docs/ar/intlayer_with_astro_react.md +566 -0
- package/docs/ar/intlayer_with_astro_solid.md +566 -0
- package/docs/ar/intlayer_with_astro_svelte.md +570 -0
- package/docs/ar/intlayer_with_astro_vanilla.md +547 -0
- package/docs/ar/intlayer_with_astro_vue.md +588 -0
- package/docs/ar/intlayer_with_create_react_app.md +8 -388
- package/docs/ar/intlayer_with_express.md +5 -177
- package/docs/ar/intlayer_with_fastify.md +5 -193
- package/docs/ar/intlayer_with_hono.md +2 -2
- package/docs/ar/intlayer_with_lynx+react.md +2 -116
- package/docs/ar/intlayer_with_nestjs.md +3 -33
- package/docs/ar/intlayer_with_nextjs_14.md +58 -491
- package/docs/ar/intlayer_with_nextjs_15.md +56 -815
- package/docs/ar/intlayer_with_nextjs_16.md +40 -883
- package/docs/ar/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +12 -506
- package/docs/ar/intlayer_with_nextjs_page_router.md +37 -652
- package/docs/ar/intlayer_with_nuxt.md +16 -98
- package/docs/ar/intlayer_with_react_native+expo.md +31 -283
- package/docs/ar/intlayer_with_react_router_v7.md +15 -91
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +15 -91
- package/docs/ar/intlayer_with_storybook.md +1 -37
- package/docs/ar/intlayer_with_svelte_kit.md +29 -71
- package/docs/ar/intlayer_with_tanstack+solid.md +14 -70
- package/docs/ar/intlayer_with_tanstack.md +14 -62
- package/docs/ar/intlayer_with_vanilla.md +28 -108
- package/docs/ar/intlayer_with_vite+lit.md +98 -156
- package/docs/ar/intlayer_with_vite+preact.md +101 -710
- package/docs/ar/intlayer_with_vite+react.md +113 -797
- package/docs/ar/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/ar/intlayer_with_vite+solid.md +79 -152
- package/docs/ar/intlayer_with_vite+svelte.md +104 -132
- package/docs/ar/intlayer_with_vite+vanilla.md +105 -155
- package/docs/ar/intlayer_with_vite+vue.md +92 -253
- package/docs/ar/introduction.md +2 -58
- package/docs/ar/packages/express-intlayer/t.md +6 -181
- package/docs/ar/packages/hono-intlayer/t.md +1 -45
- package/docs/ar/packages/intlayer/getConfiguration.md +2 -54
- package/docs/ar/packages/intlayer/getEnumeration.md +2 -60
- package/docs/ar/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/ar/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/ar/packages/intlayer/getLocaleName.md +1 -43
- package/docs/ar/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/ar/packages/intlayer/getMultilingualUrls.md +2 -60
- package/docs/ar/packages/intlayer/getPathWithoutLocale.md +1 -20
- package/docs/ar/packages/intlayer/getPrefix.md +1 -12
- package/docs/ar/packages/intlayer/getTranslation.md +3 -87
- package/docs/ar/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/ar/packages/next-intlayer/t.md +5 -137
- package/docs/ar/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/ar/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/ar/packages/next-intlayer/useLocale.md +1 -51
- package/docs/ar/packages/react-intlayer/t.md +4 -106
- package/docs/ar/packages/react-intlayer/useDictionary.md +3 -115
- package/docs/ar/packages/react-intlayer/useI18n.md +4 -107
- package/docs/ar/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/ar/packages/react-intlayer/useLocale.md +3 -103
- package/docs/ar/per_locale_file.md +3 -35
- package/docs/bn/intlayer_with_fastify.md +5 -193
- package/docs/bn/intlayer_with_hono.md +5 -158
- package/docs/bn/intlayer_with_storybook.md +1 -37
- package/docs/bn/intlayer_with_vanilla.md +28 -108
- package/docs/bn/intlayer_with_vite+lit.md +98 -119
- package/docs/bn/intlayer_with_vite+vanilla.md +105 -155
- package/docs/bn/introduction.md +2 -58
- package/docs/cs/intlayer_with_fastify.md +5 -193
- package/docs/cs/intlayer_with_hono.md +5 -158
- package/docs/cs/intlayer_with_storybook.md +1 -37
- package/docs/cs/intlayer_with_vanilla.md +28 -108
- package/docs/cs/intlayer_with_vite+lit.md +98 -156
- package/docs/cs/intlayer_with_vite+vanilla.md +105 -155
- package/docs/cs/introduction.md +2 -58
- package/docs/de/dictionary/condition.md +2 -116
- package/docs/de/dictionary/content_file.md +2 -201
- package/docs/de/dictionary/enumeration.md +2 -116
- package/docs/de/dictionary/file.md +3 -100
- package/docs/de/dictionary/function_fetching.md +3 -103
- package/docs/de/dictionary/gender.md +2 -181
- package/docs/de/dictionary/insertion.md +3 -57
- package/docs/de/dictionary/nesting.md +3 -123
- package/docs/de/dictionary/translation.md +4 -146
- package/docs/de/interest_of_intlayer.md +2 -59
- package/docs/de/intlayer_CMS.md +3 -226
- package/docs/de/intlayer_visual_editor.md +1 -72
- package/docs/de/intlayer_with_adonisjs.md +3 -108
- package/docs/de/intlayer_with_analog.md +21 -41
- package/docs/de/intlayer_with_angular.md +15 -41
- package/docs/de/intlayer_with_astro.md +181 -56
- package/docs/de/intlayer_with_astro_lit.md +615 -0
- package/docs/de/intlayer_with_astro_preact.md +564 -0
- package/docs/de/intlayer_with_astro_react.md +562 -0
- package/docs/de/intlayer_with_astro_solid.md +562 -0
- package/docs/de/intlayer_with_astro_svelte.md +566 -0
- package/docs/de/intlayer_with_astro_vanilla.md +543 -0
- package/docs/de/intlayer_with_astro_vue.md +584 -0
- package/docs/de/intlayer_with_create_react_app.md +33 -686
- package/docs/de/intlayer_with_express.md +5 -182
- package/docs/de/intlayer_with_fastify.md +5 -193
- package/docs/de/intlayer_with_hono.md +5 -158
- package/docs/de/intlayer_with_lynx+react.md +2 -75
- package/docs/de/intlayer_with_nestjs.md +3 -33
- package/docs/de/intlayer_with_nextjs_14.md +51 -573
- package/docs/de/intlayer_with_nextjs_15.md +61 -823
- package/docs/de/intlayer_with_nextjs_16.md +45 -870
- package/docs/de/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +11 -499
- package/docs/de/intlayer_with_nextjs_page_router.md +36 -632
- package/docs/de/intlayer_with_nuxt.md +16 -98
- package/docs/de/intlayer_with_react_native+expo.md +31 -286
- package/docs/de/intlayer_with_react_router_v7.md +15 -91
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +14 -62
- package/docs/de/intlayer_with_storybook.md +1 -37
- package/docs/de/intlayer_with_svelte_kit.md +29 -71
- package/docs/de/intlayer_with_tanstack+solid.md +14 -70
- package/docs/de/intlayer_with_tanstack.md +14 -62
- package/docs/de/intlayer_with_vanilla.md +28 -108
- package/docs/de/intlayer_with_vite+lit.md +98 -162
- package/docs/de/intlayer_with_vite+preact.md +104 -713
- package/docs/de/intlayer_with_vite+react.md +105 -789
- package/docs/de/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/de/intlayer_with_vite+solid.md +79 -153
- package/docs/de/intlayer_with_vite+svelte.md +104 -132
- package/docs/de/intlayer_with_vite+vanilla.md +105 -155
- package/docs/de/intlayer_with_vite+vue.md +92 -285
- package/docs/de/introduction.md +2 -61
- package/docs/de/packages/express-intlayer/t.md +6 -182
- package/docs/de/packages/hono-intlayer/t.md +3 -95
- package/docs/de/packages/intlayer/getConfiguration.md +2 -54
- package/docs/de/packages/intlayer/getEnumeration.md +2 -60
- package/docs/de/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/de/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/de/packages/intlayer/getLocaleName.md +1 -43
- package/docs/de/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/de/packages/intlayer/getMultilingualUrls.md +2 -60
- package/docs/de/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/de/packages/intlayer/getPrefix.md +1 -15
- package/docs/de/packages/intlayer/getTranslation.md +3 -86
- package/docs/de/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/de/packages/next-intlayer/t.md +5 -137
- package/docs/de/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/de/packages/next-intlayer/useIntlayer.md +3 -120
- package/docs/de/packages/next-intlayer/useLocale.md +1 -51
- package/docs/de/packages/react-intlayer/t.md +4 -109
- package/docs/de/packages/react-intlayer/useDictionary.md +3 -127
- package/docs/de/packages/react-intlayer/useI18n.md +4 -107
- package/docs/de/packages/react-intlayer/useIntlayer.md +3 -114
- package/docs/de/packages/react-intlayer/useLocale.md +3 -103
- package/docs/de/per_locale_file.md +3 -35
- package/docs/en/benchmark/___NOTE.md +16 -0
- package/docs/en/dictionary/condition.md +2 -116
- package/docs/en/dictionary/content_file.md +2 -200
- package/docs/en/dictionary/enumeration.md +4 -202
- package/docs/en/dictionary/file.md +3 -100
- package/docs/en/dictionary/function_fetching.md +3 -103
- package/docs/en/dictionary/gender.md +2 -140
- package/docs/en/dictionary/insertion.md +3 -57
- package/docs/en/dictionary/nesting.md +3 -121
- package/docs/en/dictionary/translation.md +4 -146
- package/docs/en/interest_of_intlayer.md +2 -58
- package/docs/en/intlayer_CMS.md +3 -227
- package/docs/en/intlayer_visual_editor.md +1 -72
- package/docs/en/intlayer_with_adonisjs.md +3 -107
- package/docs/en/intlayer_with_analog.md +21 -41
- package/docs/en/intlayer_with_angular.md +15 -41
- package/docs/en/intlayer_with_astro.md +397 -38
- package/docs/en/intlayer_with_astro_lit.md +616 -0
- package/docs/en/intlayer_with_astro_preact.md +571 -0
- package/docs/en/intlayer_with_astro_react.md +564 -0
- package/docs/en/intlayer_with_astro_solid.md +564 -0
- package/docs/en/intlayer_with_astro_svelte.md +568 -0
- package/docs/en/intlayer_with_astro_vanilla.md +543 -0
- package/docs/en/intlayer_with_astro_vue.md +586 -0
- package/docs/en/intlayer_with_create_react_app.md +34 -686
- package/docs/en/intlayer_with_express.md +5 -179
- package/docs/en/intlayer_with_fastify.md +5 -193
- package/docs/en/intlayer_with_hono.md +5 -158
- package/docs/en/intlayer_with_lynx+react.md +3 -109
- package/docs/en/intlayer_with_nestjs.md +3 -31
- package/docs/en/intlayer_with_nextjs_14.md +47 -777
- package/docs/en/intlayer_with_nextjs_15.md +39 -822
- package/docs/en/intlayer_with_nextjs_16.md +40 -891
- package/docs/en/intlayer_with_nextjs_compiler.md +2 -70
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +11 -488
- package/docs/en/intlayer_with_nextjs_page_router.md +102 -713
- package/docs/en/intlayer_with_nuxt.md +16 -98
- package/docs/en/intlayer_with_react_native+expo.md +31 -291
- package/docs/en/intlayer_with_react_router_v7.md +15 -107
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +15 -99
- package/docs/en/intlayer_with_storybook.md +1 -37
- package/docs/en/intlayer_with_svelte_kit.md +28 -78
- package/docs/en/intlayer_with_tanstack+solid.md +14 -70
- package/docs/en/intlayer_with_tanstack.md +14 -70
- package/docs/en/intlayer_with_vanilla.md +28 -108
- package/docs/en/intlayer_with_vite+lit.md +98 -162
- package/docs/en/intlayer_with_vite+preact.md +100 -717
- package/docs/en/intlayer_with_vite+react.md +104 -796
- package/docs/en/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/en/intlayer_with_vite+solid.md +79 -211
- package/docs/en/intlayer_with_vite+svelte.md +104 -138
- package/docs/en/intlayer_with_vite+vanilla.md +105 -155
- package/docs/en/intlayer_with_vite+vue.md +92 -244
- package/docs/en/introduction.md +2 -58
- package/docs/en/packages/express-intlayer/t.md +6 -181
- package/docs/en/packages/hono-intlayer/t.md +3 -95
- package/docs/en/packages/intlayer/getConfiguration.md +2 -54
- package/docs/en/packages/intlayer/getEnumeration.md +2 -60
- package/docs/en/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/en/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/en/packages/intlayer/getLocaleName.md +1 -43
- package/docs/en/packages/intlayer/getLocalizedUrl.md +3 -71
- package/docs/en/packages/intlayer/getMultilingualUrls.md +3 -79
- package/docs/en/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/en/packages/intlayer/getPrefix.md +1 -15
- package/docs/en/packages/intlayer/getTranslation.md +3 -87
- package/docs/en/packages/next-intlayer/t.md +5 -137
- package/docs/en/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/en/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/en/packages/next-intlayer/useLocale.md +1 -51
- package/docs/en/packages/react-intlayer/t.md +4 -109
- package/docs/en/packages/react-intlayer/useI18n.md +4 -107
- package/docs/en/packages/react-intlayer/useLocale.md +3 -103
- package/docs/en/per_locale_file.md +3 -33
- package/docs/en-GB/dictionary/condition.md +2 -116
- package/docs/en-GB/dictionary/content_file.md +2 -213
- package/docs/en-GB/dictionary/enumeration.md +2 -116
- package/docs/en-GB/dictionary/file.md +3 -100
- package/docs/en-GB/dictionary/function_fetching.md +3 -103
- package/docs/en-GB/dictionary/gender.md +2 -140
- package/docs/en-GB/dictionary/insertion.md +3 -81
- package/docs/en-GB/dictionary/nesting.md +3 -121
- package/docs/en-GB/dictionary/translation.md +4 -146
- package/docs/en-GB/interest_of_intlayer.md +2 -58
- package/docs/en-GB/intlayer_CMS.md +3 -223
- package/docs/en-GB/intlayer_visual_editor.md +1 -72
- package/docs/en-GB/intlayer_with_adonisjs.md +3 -109
- package/docs/en-GB/intlayer_with_analog.md +21 -41
- package/docs/en-GB/intlayer_with_angular.md +15 -41
- package/docs/en-GB/intlayer_with_astro.md +183 -53
- package/docs/en-GB/intlayer_with_astro_lit.md +619 -0
- package/docs/en-GB/intlayer_with_astro_preact.md +568 -0
- package/docs/en-GB/intlayer_with_astro_react.md +566 -0
- package/docs/en-GB/intlayer_with_astro_solid.md +566 -0
- package/docs/en-GB/intlayer_with_astro_svelte.md +570 -0
- package/docs/en-GB/intlayer_with_astro_vanilla.md +547 -0
- package/docs/en-GB/intlayer_with_astro_vue.md +588 -0
- package/docs/en-GB/intlayer_with_create_react_app.md +33 -707
- package/docs/en-GB/intlayer_with_express.md +5 -182
- package/docs/en-GB/intlayer_with_fastify.md +5 -193
- package/docs/en-GB/intlayer_with_hono.md +5 -158
- package/docs/en-GB/intlayer_with_lynx+react.md +2 -116
- package/docs/en-GB/intlayer_with_nestjs.md +3 -31
- package/docs/en-GB/intlayer_with_nextjs_14.md +77 -773
- package/docs/en-GB/intlayer_with_nextjs_15.md +59 -839
- package/docs/en-GB/intlayer_with_nextjs_16.md +39 -822
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +11 -500
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +38 -634
- package/docs/en-GB/intlayer_with_nuxt.md +16 -103
- package/docs/en-GB/intlayer_with_react_native+expo.md +31 -284
- package/docs/en-GB/intlayer_with_react_router_v7.md +14 -30
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +14 -30
- package/docs/en-GB/intlayer_with_storybook.md +1 -37
- package/docs/en-GB/intlayer_with_svelte_kit.md +28 -10
- package/docs/en-GB/intlayer_with_tanstack+solid.md +14 -70
- package/docs/en-GB/intlayer_with_tanstack.md +13 -1
- package/docs/en-GB/intlayer_with_vanilla.md +28 -108
- package/docs/en-GB/intlayer_with_vite+lit.md +98 -162
- package/docs/en-GB/intlayer_with_vite+preact.md +98 -647
- package/docs/en-GB/intlayer_with_vite+react.md +99 -906
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/en-GB/intlayer_with_vite+solid.md +78 -88
- package/docs/en-GB/intlayer_with_vite+svelte.md +103 -71
- package/docs/en-GB/intlayer_with_vite+vanilla.md +105 -155
- package/docs/en-GB/intlayer_with_vite+vue.md +91 -195
- package/docs/en-GB/introduction.md +2 -58
- package/docs/en-GB/packages/express-intlayer/t.md +6 -181
- package/docs/en-GB/packages/hono-intlayer/t.md +3 -95
- package/docs/en-GB/packages/intlayer/getConfiguration.md +2 -54
- package/docs/en-GB/packages/intlayer/getEnumeration.md +2 -60
- package/docs/en-GB/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/en-GB/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/en-GB/packages/intlayer/getLocaleName.md +1 -43
- package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/en-GB/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/en-GB/packages/intlayer/getPrefix.md +1 -15
- package/docs/en-GB/packages/intlayer/getTranslation.md +4 -107
- package/docs/en-GB/packages/intlayer/getTranslationContent.md +3 -98
- package/docs/en-GB/packages/next-intlayer/t.md +5 -141
- package/docs/en-GB/packages/next-intlayer/useDictionary.md +3 -124
- package/docs/en-GB/packages/next-intlayer/useIntlayer.md +3 -119
- package/docs/en-GB/packages/next-intlayer/useLocale.md +1 -51
- package/docs/en-GB/packages/react-intlayer/t.md +4 -110
- package/docs/en-GB/packages/react-intlayer/useDictionary.md +3 -117
- package/docs/en-GB/packages/react-intlayer/useI18n.md +3 -106
- package/docs/en-GB/packages/react-intlayer/useIntlayer.md +3 -114
- package/docs/en-GB/packages/react-intlayer/useLocale.md +3 -102
- package/docs/en-GB/per_locale_file.md +3 -33
- package/docs/es/dictionary/condition.md +2 -116
- package/docs/es/dictionary/content_file.md +2 -233
- package/docs/es/dictionary/enumeration.md +2 -116
- package/docs/es/dictionary/file.md +3 -100
- package/docs/es/dictionary/function_fetching.md +3 -103
- package/docs/es/dictionary/gender.md +2 -140
- package/docs/es/dictionary/insertion.md +3 -57
- package/docs/es/dictionary/nesting.md +3 -121
- package/docs/es/dictionary/translation.md +4 -146
- package/docs/es/interest_of_intlayer.md +2 -58
- package/docs/es/intlayer_CMS.md +3 -227
- package/docs/es/intlayer_visual_editor.md +1 -72
- package/docs/es/intlayer_with_adonisjs.md +3 -107
- package/docs/es/intlayer_with_analog.md +21 -41
- package/docs/es/intlayer_with_angular.md +15 -41
- package/docs/es/intlayer_with_astro.md +178 -52
- package/docs/es/intlayer_with_astro_lit.md +612 -0
- package/docs/es/intlayer_with_astro_preact.md +562 -0
- package/docs/es/intlayer_with_astro_react.md +560 -0
- package/docs/es/intlayer_with_astro_solid.md +560 -0
- package/docs/es/intlayer_with_astro_svelte.md +564 -0
- package/docs/es/intlayer_with_astro_vanilla.md +539 -0
- package/docs/es/intlayer_with_astro_vue.md +582 -0
- package/docs/es/intlayer_with_create_react_app.md +33 -649
- package/docs/es/intlayer_with_express.md +5 -179
- package/docs/es/intlayer_with_fastify.md +5 -193
- package/docs/es/intlayer_with_hono.md +5 -158
- package/docs/es/intlayer_with_lynx+react.md +2 -108
- package/docs/es/intlayer_with_nestjs.md +3 -31
- package/docs/es/intlayer_with_nextjs_14.md +53 -678
- package/docs/es/intlayer_with_nextjs_15.md +56 -812
- package/docs/es/intlayer_with_nextjs_16.md +40 -890
- package/docs/es/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +11 -486
- package/docs/es/intlayer_with_nextjs_page_router.md +37 -648
- package/docs/es/intlayer_with_nuxt.md +16 -98
- package/docs/es/intlayer_with_react_native+expo.md +31 -284
- package/docs/es/intlayer_with_react_router_v7.md +15 -92
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +15 -92
- package/docs/es/intlayer_with_storybook.md +1 -37
- package/docs/es/intlayer_with_svelte_kit.md +29 -71
- package/docs/es/intlayer_with_tanstack+solid.md +14 -70
- package/docs/es/intlayer_with_tanstack.md +14 -62
- package/docs/es/intlayer_with_vanilla.md +28 -108
- package/docs/es/intlayer_with_vite+lit.md +98 -162
- package/docs/es/intlayer_with_vite+preact.md +100 -709
- package/docs/es/intlayer_with_vite+react.md +105 -789
- package/docs/es/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/es/intlayer_with_vite+solid.md +79 -152
- package/docs/es/intlayer_with_vite+svelte.md +104 -132
- package/docs/es/intlayer_with_vite+vanilla.md +105 -155
- package/docs/es/intlayer_with_vite+vue.md +92 -255
- package/docs/es/introduction.md +2 -60
- package/docs/es/packages/express-intlayer/t.md +6 -183
- package/docs/es/packages/hono-intlayer/t.md +3 -95
- package/docs/es/packages/intlayer/getConfiguration.md +2 -54
- package/docs/es/packages/intlayer/getEnumeration.md +2 -60
- package/docs/es/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/es/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/es/packages/intlayer/getLocaleName.md +1 -43
- package/docs/es/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/es/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/es/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/es/packages/intlayer/getPrefix.md +1 -15
- package/docs/es/packages/intlayer/getTranslation.md +3 -87
- package/docs/es/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/es/packages/next-intlayer/index.md +2 -60
- package/docs/es/packages/next-intlayer/t.md +5 -137
- package/docs/es/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/es/packages/next-intlayer/useIntlayer.md +3 -119
- package/docs/es/packages/next-intlayer/useLocale.md +1 -51
- package/docs/es/packages/react-intlayer/index.md +2 -60
- package/docs/es/packages/react-intlayer/t.md +4 -110
- package/docs/es/packages/react-intlayer/useDictionary.md +3 -113
- package/docs/es/packages/react-intlayer/useI18n.md +4 -107
- package/docs/es/packages/react-intlayer/useIntlayer.md +3 -110
- package/docs/es/packages/react-intlayer/useLocale.md +3 -103
- package/docs/es/per_locale_file.md +3 -34
- package/docs/fr/dictionary/condition.md +2 -116
- package/docs/fr/dictionary/content_file.md +2 -200
- package/docs/fr/dictionary/enumeration.md +2 -116
- package/docs/fr/dictionary/file.md +3 -100
- package/docs/fr/dictionary/function_fetching.md +3 -103
- package/docs/fr/dictionary/gender.md +2 -141
- package/docs/fr/dictionary/insertion.md +3 -57
- package/docs/fr/dictionary/nesting.md +3 -121
- package/docs/fr/dictionary/translation.md +4 -146
- package/docs/fr/interest_of_intlayer.md +2 -59
- package/docs/fr/intlayer_CMS.md +3 -227
- package/docs/fr/intlayer_visual_editor.md +1 -72
- package/docs/fr/intlayer_with_adonisjs.md +3 -107
- package/docs/fr/intlayer_with_analog.md +21 -41
- package/docs/fr/intlayer_with_angular.md +15 -41
- package/docs/fr/intlayer_with_astro.md +175 -49
- package/docs/fr/intlayer_with_astro_lit.md +612 -0
- package/docs/fr/intlayer_with_astro_preact.md +567 -0
- package/docs/fr/intlayer_with_astro_react.md +560 -0
- package/docs/fr/intlayer_with_astro_solid.md +560 -0
- package/docs/fr/intlayer_with_astro_svelte.md +564 -0
- package/docs/fr/intlayer_with_astro_vanilla.md +539 -0
- package/docs/fr/intlayer_with_astro_vue.md +582 -0
- package/docs/fr/intlayer_with_create_react_app.md +9 -645
- package/docs/fr/intlayer_with_express.md +4 -110
- package/docs/fr/intlayer_with_fastify.md +5 -193
- package/docs/fr/intlayer_with_hono.md +5 -158
- package/docs/fr/intlayer_with_lynx+react.md +2 -108
- package/docs/fr/intlayer_with_nestjs.md +3 -31
- package/docs/fr/intlayer_with_nextjs_14.md +51 -573
- package/docs/fr/intlayer_with_nextjs_15.md +64 -842
- package/docs/fr/intlayer_with_nextjs_16.md +44 -867
- package/docs/fr/intlayer_with_nextjs_compiler.md +2 -64
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +11 -522
- package/docs/fr/intlayer_with_nextjs_page_router.md +37 -647
- package/docs/fr/intlayer_with_nuxt.md +16 -99
- package/docs/fr/intlayer_with_react_native+expo.md +31 -284
- package/docs/fr/intlayer_with_react_router_v7.md +15 -94
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +15 -94
- package/docs/fr/intlayer_with_storybook.md +1 -37
- package/docs/fr/intlayer_with_svelte_kit.md +29 -71
- package/docs/fr/intlayer_with_tanstack+solid.md +14 -70
- package/docs/fr/intlayer_with_tanstack.md +14 -62
- package/docs/fr/intlayer_with_vanilla.md +28 -108
- package/docs/fr/intlayer_with_vite+lit.md +98 -162
- package/docs/fr/intlayer_with_vite+preact.md +100 -709
- package/docs/fr/intlayer_with_vite+react.md +104 -788
- package/docs/fr/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/fr/intlayer_with_vite+solid.md +79 -152
- package/docs/fr/intlayer_with_vite+svelte.md +104 -132
- package/docs/fr/intlayer_with_vite+vanilla.md +105 -155
- package/docs/fr/intlayer_with_vite+vue.md +92 -251
- package/docs/fr/introduction.md +2 -60
- package/docs/fr/packages/express-intlayer/t.md +6 -184
- package/docs/fr/packages/hono-intlayer/t.md +3 -95
- package/docs/fr/packages/intlayer/getConfiguration.md +2 -54
- package/docs/fr/packages/intlayer/getEnumeration.md +2 -60
- package/docs/fr/packages/intlayer/getHTMLTextDir.md +2 -39
- package/docs/fr/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/fr/packages/intlayer/getLocaleName.md +1 -43
- package/docs/fr/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/fr/packages/intlayer/getMultilingualUrls.md +2 -60
- package/docs/fr/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/fr/packages/intlayer/getPrefix.md +1 -15
- package/docs/fr/packages/intlayer/getTranslation.md +3 -87
- package/docs/fr/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/fr/packages/next-intlayer/t.md +5 -137
- package/docs/fr/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/fr/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/fr/packages/next-intlayer/useLocale.md +1 -51
- package/docs/fr/packages/react-intlayer/index.md +2 -60
- package/docs/fr/packages/react-intlayer/t.md +4 -109
- package/docs/fr/packages/react-intlayer/useDictionary.md +3 -114
- package/docs/fr/packages/react-intlayer/useI18n.md +4 -107
- package/docs/fr/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/fr/packages/react-intlayer/useLocale.md +3 -103
- package/docs/fr/per_locale_file.md +3 -35
- package/docs/hi/dictionary/condition.md +2 -116
- package/docs/hi/dictionary/content_file.md +2 -201
- package/docs/hi/dictionary/enumeration.md +2 -116
- package/docs/hi/dictionary/file.md +3 -100
- package/docs/hi/dictionary/function_fetching.md +3 -103
- package/docs/hi/dictionary/gender.md +2 -141
- package/docs/hi/dictionary/insertion.md +3 -57
- package/docs/hi/dictionary/nesting.md +3 -121
- package/docs/hi/dictionary/translation.md +4 -149
- package/docs/hi/interest_of_intlayer.md +2 -58
- package/docs/hi/intlayer_CMS.md +3 -227
- package/docs/hi/intlayer_visual_editor.md +1 -72
- package/docs/hi/intlayer_with_adonisjs.md +3 -109
- package/docs/hi/intlayer_with_analog.md +21 -41
- package/docs/hi/intlayer_with_angular.md +15 -41
- package/docs/hi/intlayer_with_astro.md +183 -57
- package/docs/hi/intlayer_with_astro_lit.md +615 -0
- package/docs/hi/intlayer_with_astro_preact.md +564 -0
- package/docs/hi/intlayer_with_astro_react.md +562 -0
- package/docs/hi/intlayer_with_astro_solid.md +562 -0
- package/docs/hi/intlayer_with_astro_svelte.md +566 -0
- package/docs/hi/intlayer_with_astro_vanilla.md +543 -0
- package/docs/hi/intlayer_with_astro_vue.md +584 -0
- package/docs/hi/intlayer_with_create_react_app.md +8 -444
- package/docs/hi/intlayer_with_express.md +6 -195
- package/docs/hi/intlayer_with_fastify.md +5 -193
- package/docs/hi/intlayer_with_hono.md +2 -2
- package/docs/hi/intlayer_with_lynx+react.md +2 -116
- package/docs/hi/intlayer_with_nestjs.md +3 -31
- package/docs/hi/intlayer_with_nextjs_14.md +60 -512
- package/docs/hi/intlayer_with_nextjs_15.md +60 -822
- package/docs/hi/intlayer_with_nextjs_16.md +40 -883
- package/docs/hi/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +11 -498
- package/docs/hi/intlayer_with_nextjs_page_router.md +37 -648
- package/docs/hi/intlayer_with_nuxt.md +16 -101
- package/docs/hi/intlayer_with_react_native+expo.md +31 -284
- package/docs/hi/intlayer_with_react_router_v7.md +15 -91
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +15 -91
- package/docs/hi/intlayer_with_storybook.md +1 -37
- package/docs/hi/intlayer_with_svelte_kit.md +29 -71
- package/docs/hi/intlayer_with_tanstack+solid.md +14 -70
- package/docs/hi/intlayer_with_tanstack.md +14 -62
- package/docs/hi/intlayer_with_vanilla.md +28 -108
- package/docs/hi/intlayer_with_vite+lit.md +98 -156
- package/docs/hi/intlayer_with_vite+preact.md +98 -619
- package/docs/hi/intlayer_with_vite+react.md +123 -816
- package/docs/hi/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/hi/intlayer_with_vite+solid.md +79 -151
- package/docs/hi/intlayer_with_vite+svelte.md +104 -132
- package/docs/hi/intlayer_with_vite+vanilla.md +105 -87
- package/docs/hi/intlayer_with_vite+vue.md +92 -250
- package/docs/hi/introduction.md +2 -62
- package/docs/hi/packages/express-intlayer/t.md +6 -181
- package/docs/hi/packages/hono-intlayer/t.md +1 -45
- package/docs/hi/packages/intlayer/getConfiguration.md +2 -54
- package/docs/hi/packages/intlayer/getEnumeration.md +2 -60
- package/docs/hi/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/hi/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/hi/packages/intlayer/getLocaleName.md +1 -43
- package/docs/hi/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/hi/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/hi/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/hi/packages/intlayer/getPrefix.md +1 -19
- package/docs/hi/packages/intlayer/getTranslation.md +3 -87
- package/docs/hi/packages/intlayer/getTranslationContent.md +3 -86
- package/docs/hi/packages/intlayer/index.md +4 -129
- package/docs/hi/packages/next-intlayer/t.md +5 -138
- package/docs/hi/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/hi/packages/next-intlayer/useIntlayer.md +3 -120
- package/docs/hi/packages/next-intlayer/useLocale.md +1 -51
- package/docs/hi/packages/react-intlayer/t.md +4 -106
- package/docs/hi/packages/react-intlayer/useDictionary.md +3 -115
- package/docs/hi/packages/react-intlayer/useI18n.md +3 -111
- package/docs/hi/packages/react-intlayer/useIntlayer.md +3 -113
- package/docs/hi/packages/react-intlayer/useLocale.md +3 -103
- package/docs/hi/per_locale_file.md +3 -34
- package/docs/id/dictionary/condition.md +2 -110
- package/docs/id/dictionary/content_file.md +2 -200
- package/docs/id/dictionary/enumeration.md +2 -116
- package/docs/id/dictionary/file.md +3 -105
- package/docs/id/dictionary/function_fetching.md +3 -103
- package/docs/id/dictionary/gender.md +2 -140
- package/docs/id/dictionary/insertion.md +3 -57
- package/docs/id/dictionary/nesting.md +3 -121
- package/docs/id/dictionary/translation.md +4 -147
- package/docs/id/interest_of_intlayer.md +2 -58
- package/docs/id/intlayer_CMS.md +3 -227
- package/docs/id/intlayer_visual_editor.md +1 -72
- package/docs/id/intlayer_with_adonisjs.md +3 -109
- package/docs/id/intlayer_with_analog.md +21 -41
- package/docs/id/intlayer_with_angular.md +15 -41
- package/docs/id/intlayer_with_astro.md +182 -64
- package/docs/id/intlayer_with_astro_lit.md +615 -0
- package/docs/id/intlayer_with_astro_preact.md +564 -0
- package/docs/id/intlayer_with_astro_react.md +562 -0
- package/docs/id/intlayer_with_astro_solid.md +562 -0
- package/docs/id/intlayer_with_astro_svelte.md +566 -0
- package/docs/id/intlayer_with_astro_vanilla.md +543 -0
- package/docs/id/intlayer_with_astro_vue.md +584 -0
- package/docs/id/intlayer_with_create_react_app.md +39 -694
- package/docs/id/intlayer_with_express.md +5 -181
- package/docs/id/intlayer_with_fastify.md +5 -193
- package/docs/id/intlayer_with_hono.md +2 -2
- package/docs/id/intlayer_with_lynx+react.md +3 -109
- package/docs/id/intlayer_with_nestjs.md +3 -31
- package/docs/id/intlayer_with_nextjs_14.md +59 -796
- package/docs/id/intlayer_with_nextjs_15.md +37 -815
- package/docs/id/intlayer_with_nextjs_16.md +41 -884
- package/docs/id/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +11 -501
- package/docs/id/intlayer_with_nextjs_page_router.md +102 -713
- package/docs/id/intlayer_with_nuxt.md +16 -99
- package/docs/id/intlayer_with_react_native+expo.md +31 -291
- package/docs/id/intlayer_with_react_router_v7.md +15 -99
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +15 -99
- package/docs/id/intlayer_with_storybook.md +1 -37
- package/docs/id/intlayer_with_svelte_kit.md +29 -71
- package/docs/id/intlayer_with_tanstack+solid.md +14 -70
- package/docs/id/intlayer_with_tanstack.md +14 -62
- package/docs/id/intlayer_with_vanilla.md +28 -108
- package/docs/id/intlayer_with_vite+lit.md +98 -156
- package/docs/id/intlayer_with_vite+preact.md +103 -712
- package/docs/id/intlayer_with_vite+react.md +115 -803
- package/docs/id/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/id/intlayer_with_vite+solid.md +79 -150
- package/docs/id/intlayer_with_vite+svelte.md +104 -132
- package/docs/id/intlayer_with_vite+vanilla.md +105 -155
- package/docs/id/intlayer_with_vite+vue.md +92 -258
- package/docs/id/introduction.md +2 -60
- package/docs/id/packages/express-intlayer/t.md +6 -181
- package/docs/id/packages/hono-intlayer/t.md +1 -45
- package/docs/id/packages/intlayer/getConfiguration.md +2 -54
- package/docs/id/packages/intlayer/getEnumeration.md +2 -60
- package/docs/id/packages/intlayer/getHTMLTextDir.md +2 -39
- package/docs/id/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/id/packages/intlayer/getLocaleName.md +1 -44
- package/docs/id/packages/intlayer/getLocalizedUrl.md +2 -59
- package/docs/id/packages/intlayer/getMultilingualUrls.md +2 -64
- package/docs/id/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/id/packages/intlayer/getPrefix.md +1 -12
- package/docs/id/packages/intlayer/getTranslation.md +3 -87
- package/docs/id/packages/intlayer/getTranslationContent.md +3 -86
- package/docs/id/packages/next-intlayer/t.md +5 -137
- package/docs/id/packages/next-intlayer/useDictionary.md +3 -121
- package/docs/id/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/id/packages/next-intlayer/useLocale.md +1 -51
- package/docs/id/packages/react-intlayer/t.md +4 -109
- package/docs/id/packages/react-intlayer/useDictionary.md +3 -113
- package/docs/id/packages/react-intlayer/useI18n.md +4 -123
- package/docs/id/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/id/packages/react-intlayer/useLocale.md +3 -103
- package/docs/id/per_locale_file.md +3 -35
- package/docs/it/dictionary/condition.md +2 -116
- package/docs/it/dictionary/content_file.md +2 -201
- package/docs/it/dictionary/enumeration.md +2 -116
- package/docs/it/dictionary/file.md +3 -100
- package/docs/it/dictionary/function_fetching.md +3 -103
- package/docs/it/dictionary/gender.md +2 -140
- package/docs/it/dictionary/insertion.md +3 -57
- package/docs/it/dictionary/nesting.md +3 -121
- package/docs/it/dictionary/translation.md +4 -146
- package/docs/it/interest_of_intlayer.md +2 -59
- package/docs/it/intlayer_CMS.md +3 -227
- package/docs/it/intlayer_visual_editor.md +1 -72
- package/docs/it/intlayer_with_adonisjs.md +3 -109
- package/docs/it/intlayer_with_analog.md +21 -41
- package/docs/it/intlayer_with_angular.md +15 -41
- package/docs/it/intlayer_with_astro.md +187 -61
- package/docs/it/intlayer_with_astro_lit.md +615 -0
- package/docs/it/intlayer_with_astro_preact.md +564 -0
- package/docs/it/intlayer_with_astro_react.md +562 -0
- package/docs/it/intlayer_with_astro_solid.md +562 -0
- package/docs/it/intlayer_with_astro_svelte.md +566 -0
- package/docs/it/intlayer_with_astro_vanilla.md +543 -0
- package/docs/it/intlayer_with_astro_vue.md +584 -0
- package/docs/it/intlayer_with_create_react_app.md +9 -551
- package/docs/it/intlayer_with_express.md +5 -182
- package/docs/it/intlayer_with_fastify.md +5 -193
- package/docs/it/intlayer_with_hono.md +2 -2
- package/docs/it/intlayer_with_lynx+react.md +2 -116
- package/docs/it/intlayer_with_nestjs.md +3 -31
- package/docs/it/intlayer_with_nextjs_14.md +51 -575
- package/docs/it/intlayer_with_nextjs_15.md +55 -813
- package/docs/it/intlayer_with_nextjs_16.md +40 -883
- package/docs/it/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +11 -498
- package/docs/it/intlayer_with_nextjs_page_router.md +37 -650
- package/docs/it/intlayer_with_nuxt.md +16 -101
- package/docs/it/intlayer_with_react_native+expo.md +31 -286
- package/docs/it/intlayer_with_react_router_v7.md +15 -93
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +15 -93
- package/docs/it/intlayer_with_storybook.md +1 -37
- package/docs/it/intlayer_with_svelte_kit.md +29 -71
- package/docs/it/intlayer_with_tanstack+solid.md +14 -70
- package/docs/it/intlayer_with_tanstack.md +14 -62
- package/docs/it/intlayer_with_vanilla.md +28 -108
- package/docs/it/intlayer_with_vite+lit.md +98 -162
- package/docs/it/intlayer_with_vite+preact.md +102 -711
- package/docs/it/intlayer_with_vite+react.md +112 -797
- package/docs/it/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/it/intlayer_with_vite+solid.md +79 -151
- package/docs/it/intlayer_with_vite+svelte.md +104 -132
- package/docs/it/intlayer_with_vite+vanilla.md +105 -155
- package/docs/it/intlayer_with_vite+vue.md +80 -281
- package/docs/it/introduction.md +2 -60
- package/docs/it/packages/express-intlayer/t.md +6 -181
- package/docs/it/packages/hono-intlayer/t.md +1 -45
- package/docs/it/packages/intlayer/getConfiguration.md +2 -54
- package/docs/it/packages/intlayer/getEnumeration.md +2 -60
- package/docs/it/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/it/packages/intlayer/getLocaleLang.md +1 -20
- package/docs/it/packages/intlayer/getLocaleName.md +1 -43
- package/docs/it/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/it/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/it/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/it/packages/intlayer/getPrefix.md +1 -12
- package/docs/it/packages/intlayer/getTranslation.md +3 -86
- package/docs/it/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/it/packages/next-intlayer/t.md +5 -141
- package/docs/it/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/it/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/it/packages/next-intlayer/useLocale.md +1 -51
- package/docs/it/packages/react-intlayer/t.md +4 -109
- package/docs/it/packages/react-intlayer/useDictionary.md +3 -115
- package/docs/it/packages/react-intlayer/useI18n.md +4 -107
- package/docs/it/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/it/packages/react-intlayer/useLocale.md +3 -103
- package/docs/it/per_locale_file.md +3 -35
- package/docs/ja/dictionary/condition.md +2 -116
- package/docs/ja/dictionary/content_file.md +2 -204
- package/docs/ja/dictionary/enumeration.md +2 -116
- package/docs/ja/dictionary/file.md +3 -100
- package/docs/ja/dictionary/function_fetching.md +3 -103
- package/docs/ja/dictionary/gender.md +2 -140
- package/docs/ja/dictionary/insertion.md +3 -57
- package/docs/ja/dictionary/nesting.md +3 -121
- package/docs/ja/dictionary/translation.md +6 -160
- package/docs/ja/interest_of_intlayer.md +2 -58
- package/docs/ja/intlayer_CMS.md +3 -227
- package/docs/ja/intlayer_visual_editor.md +1 -75
- package/docs/ja/intlayer_with_adonisjs.md +3 -109
- package/docs/ja/intlayer_with_analog.md +21 -41
- package/docs/ja/intlayer_with_angular.md +15 -41
- package/docs/ja/intlayer_with_astro.md +184 -53
- package/docs/ja/intlayer_with_astro_lit.md +618 -0
- package/docs/ja/intlayer_with_astro_preact.md +572 -0
- package/docs/ja/intlayer_with_astro_react.md +565 -0
- package/docs/ja/intlayer_with_astro_solid.md +565 -0
- package/docs/ja/intlayer_with_astro_svelte.md +569 -0
- package/docs/ja/intlayer_with_astro_vanilla.md +546 -0
- package/docs/ja/intlayer_with_astro_vue.md +587 -0
- package/docs/ja/intlayer_with_create_react_app.md +7 -387
- package/docs/ja/intlayer_with_express.md +5 -182
- package/docs/ja/intlayer_with_fastify.md +5 -193
- package/docs/ja/intlayer_with_hono.md +2 -2
- package/docs/ja/intlayer_with_lynx+react.md +2 -116
- package/docs/ja/intlayer_with_nestjs.md +3 -31
- package/docs/ja/intlayer_with_nextjs_14.md +54 -682
- package/docs/ja/intlayer_with_nextjs_15.md +56 -836
- package/docs/ja/intlayer_with_nextjs_16.md +40 -883
- package/docs/ja/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +12 -551
- package/docs/ja/intlayer_with_nextjs_page_router.md +73 -745
- package/docs/ja/intlayer_with_nuxt.md +16 -99
- package/docs/ja/intlayer_with_react_native+expo.md +31 -287
- package/docs/ja/intlayer_with_react_router_v7.md +32 -61
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +15 -91
- package/docs/ja/intlayer_with_storybook.md +1 -37
- package/docs/ja/intlayer_with_svelte_kit.md +27 -69
- package/docs/ja/intlayer_with_tanstack+solid.md +14 -70
- package/docs/ja/intlayer_with_tanstack.md +13 -1
- package/docs/ja/intlayer_with_vanilla.md +28 -108
- package/docs/ja/intlayer_with_vite+lit.md +98 -162
- package/docs/ja/intlayer_with_vite+preact.md +88 -62
- package/docs/ja/intlayer_with_vite+react.md +88 -62
- package/docs/ja/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/ja/intlayer_with_vite+solid.md +80 -161
- package/docs/ja/intlayer_with_vite+svelte.md +104 -132
- package/docs/ja/intlayer_with_vite+vanilla.md +105 -155
- package/docs/ja/intlayer_with_vite+vue.md +92 -264
- package/docs/ja/introduction.md +2 -59
- package/docs/ja/packages/express-intlayer/t.md +6 -188
- package/docs/ja/packages/hono-intlayer/t.md +1 -45
- package/docs/ja/packages/intlayer/getConfiguration.md +2 -54
- package/docs/ja/packages/intlayer/getEnumeration.md +2 -60
- package/docs/ja/packages/intlayer/getHTMLTextDir.md +2 -39
- package/docs/ja/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/ja/packages/intlayer/getLocaleName.md +1 -43
- package/docs/ja/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/ja/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/ja/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/ja/packages/intlayer/getPrefix.md +1 -12
- package/docs/ja/packages/intlayer/getTranslation.md +3 -87
- package/docs/ja/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/ja/packages/next-intlayer/t.md +5 -137
- package/docs/ja/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/ja/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/ja/packages/next-intlayer/useLocale.md +1 -51
- package/docs/ja/packages/react-intlayer/t.md +4 -109
- package/docs/ja/packages/react-intlayer/useDictionary.md +3 -115
- package/docs/ja/packages/react-intlayer/useI18n.md +4 -107
- package/docs/ja/packages/react-intlayer/useIntlayer.md +2 -95
- package/docs/ja/packages/react-intlayer/useLocale.md +3 -103
- package/docs/ja/per_locale_file.md +3 -34
- package/docs/ko/cli/index.md +1 -1
- package/docs/ko/dictionary/condition.md +2 -116
- package/docs/ko/dictionary/content_file.md +2 -201
- package/docs/ko/dictionary/enumeration.md +2 -116
- package/docs/ko/dictionary/file.md +3 -100
- package/docs/ko/dictionary/function_fetching.md +3 -103
- package/docs/ko/dictionary/gender.md +2 -140
- package/docs/ko/dictionary/insertion.md +3 -57
- package/docs/ko/dictionary/nesting.md +3 -121
- package/docs/ko/dictionary/translation.md +5 -161
- package/docs/ko/interest_of_intlayer.md +2 -60
- package/docs/ko/intlayer_CMS.md +3 -227
- package/docs/ko/intlayer_visual_editor.md +1 -72
- package/docs/ko/intlayer_with_adonisjs.md +3 -109
- package/docs/ko/intlayer_with_analog.md +21 -41
- package/docs/ko/intlayer_with_angular.md +15 -41
- package/docs/ko/intlayer_with_astro.md +169 -58
- package/docs/ko/intlayer_with_astro_lit.md +598 -0
- package/docs/ko/intlayer_with_astro_preact.md +552 -0
- package/docs/ko/intlayer_with_astro_react.md +545 -0
- package/docs/ko/intlayer_with_astro_solid.md +545 -0
- package/docs/ko/intlayer_with_astro_svelte.md +549 -0
- package/docs/ko/intlayer_with_astro_vanilla.md +526 -0
- package/docs/ko/intlayer_with_astro_vue.md +567 -0
- package/docs/ko/intlayer_with_create_react_app.md +38 -693
- package/docs/ko/intlayer_with_express.md +5 -182
- package/docs/ko/intlayer_with_fastify.md +5 -193
- package/docs/ko/intlayer_with_hono.md +2 -2
- package/docs/ko/intlayer_with_lynx+react.md +2 -116
- package/docs/ko/intlayer_with_nestjs.md +3 -31
- package/docs/ko/intlayer_with_nextjs_14.md +55 -693
- package/docs/ko/intlayer_with_nextjs_15.md +73 -859
- package/docs/ko/intlayer_with_nextjs_16.md +40 -883
- package/docs/ko/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +13 -548
- package/docs/ko/intlayer_with_nextjs_page_router.md +66 -652
- package/docs/ko/intlayer_with_nuxt.md +16 -99
- package/docs/ko/intlayer_with_react_native+expo.md +31 -286
- package/docs/ko/intlayer_with_react_router_v7.md +15 -91
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +15 -91
- package/docs/ko/intlayer_with_storybook.md +1 -37
- package/docs/ko/intlayer_with_svelte_kit.md +29 -71
- package/docs/ko/intlayer_with_tanstack+solid.md +14 -70
- package/docs/ko/intlayer_with_tanstack.md +13 -1
- package/docs/ko/intlayer_with_vanilla.md +28 -108
- package/docs/ko/intlayer_with_vite+lit.md +98 -162
- package/docs/ko/intlayer_with_vite+preact.md +102 -711
- package/docs/ko/intlayer_with_vite+react.md +123 -805
- package/docs/ko/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/ko/intlayer_with_vite+solid.md +79 -151
- package/docs/ko/intlayer_with_vite+svelte.md +104 -130
- package/docs/ko/intlayer_with_vite+vanilla.md +105 -155
- package/docs/ko/intlayer_with_vite+vue.md +92 -269
- package/docs/ko/introduction.md +2 -60
- package/docs/ko/packages/express-intlayer/t.md +5 -158
- package/docs/ko/packages/hono-intlayer/t.md +1 -45
- package/docs/ko/packages/intlayer/getConfiguration.md +2 -54
- package/docs/ko/packages/intlayer/getEnumeration.md +2 -60
- package/docs/ko/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/ko/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/ko/packages/intlayer/getLocaleName.md +1 -43
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/ko/packages/intlayer/getMultilingualUrls.md +2 -64
- package/docs/ko/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/ko/packages/intlayer/getPrefix.md +1 -12
- package/docs/ko/packages/intlayer/getTranslation.md +3 -87
- package/docs/ko/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/ko/packages/next-intlayer/t.md +5 -139
- package/docs/ko/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/ko/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/ko/packages/next-intlayer/useLocale.md +1 -51
- package/docs/ko/packages/react-intlayer/t.md +5 -133
- package/docs/ko/packages/react-intlayer/useDictionary.md +3 -113
- package/docs/ko/packages/react-intlayer/useI18n.md +4 -107
- package/docs/ko/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/ko/packages/react-intlayer/useLocale.md +3 -103
- package/docs/ko/per_locale_file.md +3 -34
- package/docs/nl/intlayer_with_fastify.md +5 -193
- package/docs/nl/intlayer_with_hono.md +5 -158
- package/docs/nl/intlayer_with_storybook.md +1 -37
- package/docs/nl/intlayer_with_vanilla.md +28 -108
- package/docs/nl/intlayer_with_vite+lit.md +98 -156
- package/docs/nl/intlayer_with_vite+vanilla.md +105 -155
- package/docs/nl/introduction.md +2 -58
- package/docs/pl/dictionary/condition.md +2 -111
- package/docs/pl/dictionary/content_file.md +2 -205
- package/docs/pl/dictionary/enumeration.md +2 -116
- package/docs/pl/dictionary/file.md +3 -102
- package/docs/pl/dictionary/function_fetching.md +3 -103
- package/docs/pl/dictionary/gender.md +2 -141
- package/docs/pl/dictionary/insertion.md +3 -57
- package/docs/pl/dictionary/nesting.md +3 -121
- package/docs/pl/dictionary/translation.md +4 -147
- package/docs/pl/interest_of_intlayer.md +2 -58
- package/docs/pl/intlayer_CMS.md +3 -227
- package/docs/pl/intlayer_visual_editor.md +1 -72
- package/docs/pl/intlayer_with_adonisjs.md +3 -109
- package/docs/pl/intlayer_with_analog.md +21 -41
- package/docs/pl/intlayer_with_angular.md +15 -41
- package/docs/pl/intlayer_with_astro.md +179 -89
- package/docs/pl/intlayer_with_astro_lit.md +615 -0
- package/docs/pl/intlayer_with_astro_preact.md +564 -0
- package/docs/pl/intlayer_with_astro_react.md +562 -0
- package/docs/pl/intlayer_with_astro_solid.md +562 -0
- package/docs/pl/intlayer_with_astro_svelte.md +566 -0
- package/docs/pl/intlayer_with_astro_vanilla.md +543 -0
- package/docs/pl/intlayer_with_astro_vue.md +584 -0
- package/docs/pl/intlayer_with_create_react_app.md +39 -696
- package/docs/pl/intlayer_with_express.md +5 -180
- package/docs/pl/intlayer_with_fastify.md +5 -193
- package/docs/pl/intlayer_with_hono.md +2 -2
- package/docs/pl/intlayer_with_lynx+react.md +3 -109
- package/docs/pl/intlayer_with_nestjs.md +3 -31
- package/docs/pl/intlayer_with_nextjs_14.md +54 -789
- package/docs/pl/intlayer_with_nextjs_15.md +39 -843
- package/docs/pl/intlayer_with_nextjs_16.md +60 -903
- package/docs/pl/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +11 -499
- package/docs/pl/intlayer_with_nextjs_page_router.md +69 -751
- package/docs/pl/intlayer_with_nuxt.md +16 -100
- package/docs/pl/intlayer_with_react_native+expo.md +31 -292
- package/docs/pl/intlayer_with_react_router_v7.md +15 -101
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +16 -94
- package/docs/pl/intlayer_with_storybook.md +1 -37
- package/docs/pl/intlayer_with_svelte_kit.md +29 -71
- package/docs/pl/intlayer_with_tanstack+solid.md +14 -70
- package/docs/pl/intlayer_with_tanstack.md +14 -62
- package/docs/pl/intlayer_with_vanilla.md +28 -108
- package/docs/pl/intlayer_with_vite+lit.md +98 -156
- package/docs/pl/intlayer_with_vite+preact.md +102 -711
- package/docs/pl/intlayer_with_vite+react.md +121 -840
- package/docs/pl/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/pl/intlayer_with_vite+solid.md +79 -151
- package/docs/pl/intlayer_with_vite+svelte.md +104 -132
- package/docs/pl/intlayer_with_vite+vanilla.md +105 -155
- package/docs/pl/intlayer_with_vite+vue.md +92 -267
- package/docs/pl/introduction.md +2 -48
- package/docs/pl/packages/express-intlayer/t.md +6 -181
- package/docs/pl/packages/hono-intlayer/t.md +1 -45
- package/docs/pl/packages/intlayer/getConfiguration.md +2 -54
- package/docs/pl/packages/intlayer/getEnumeration.md +2 -60
- package/docs/pl/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/pl/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/pl/packages/intlayer/getLocaleName.md +1 -43
- package/docs/pl/packages/intlayer/getLocalizedUrl.md +2 -59
- package/docs/pl/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/pl/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/pl/packages/intlayer/getPrefix.md +1 -19
- package/docs/pl/packages/intlayer/getTranslation.md +3 -87
- package/docs/pl/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/pl/packages/next-intlayer/t.md +5 -137
- package/docs/pl/packages/next-intlayer/useDictionary.md +3 -120
- package/docs/pl/packages/next-intlayer/useIntlayer.md +2 -82
- package/docs/pl/packages/next-intlayer/useLocale.md +1 -51
- package/docs/pl/packages/react-intlayer/t.md +4 -109
- package/docs/pl/packages/react-intlayer/useDictionary.md +3 -115
- package/docs/pl/packages/react-intlayer/useI18n.md +3 -91
- package/docs/pl/packages/react-intlayer/useIntlayer.md +3 -114
- package/docs/pl/packages/react-intlayer/useLocale.md +3 -103
- package/docs/pl/per_locale_file.md +3 -34
- package/docs/pt/dictionary/condition.md +2 -116
- package/docs/pt/dictionary/content_file.md +2 -202
- package/docs/pt/dictionary/enumeration.md +2 -116
- package/docs/pt/dictionary/file.md +3 -101
- package/docs/pt/dictionary/function_fetching.md +3 -103
- package/docs/pt/dictionary/gender.md +2 -140
- package/docs/pt/dictionary/insertion.md +3 -57
- package/docs/pt/dictionary/nesting.md +3 -121
- package/docs/pt/dictionary/translation.md +4 -146
- package/docs/pt/interest_of_intlayer.md +2 -60
- package/docs/pt/intlayer_CMS.md +3 -227
- package/docs/pt/intlayer_visual_editor.md +1 -72
- package/docs/pt/intlayer_with_adonisjs.md +3 -109
- package/docs/pt/intlayer_with_analog.md +21 -41
- package/docs/pt/intlayer_with_angular.md +15 -41
- package/docs/pt/intlayer_with_astro.md +184 -58
- package/docs/pt/intlayer_with_astro_lit.md +597 -0
- package/docs/pt/intlayer_with_astro_preact.md +564 -0
- package/docs/pt/intlayer_with_astro_react.md +562 -0
- package/docs/pt/intlayer_with_astro_solid.md +562 -0
- package/docs/pt/intlayer_with_astro_svelte.md +566 -0
- package/docs/pt/intlayer_with_astro_vanilla.md +543 -0
- package/docs/pt/intlayer_with_astro_vue.md +584 -0
- package/docs/pt/intlayer_with_create_react_app.md +53 -654
- package/docs/pt/intlayer_with_express.md +5 -183
- package/docs/pt/intlayer_with_fastify.md +5 -193
- package/docs/pt/intlayer_with_hono.md +2 -2
- package/docs/pt/intlayer_with_lynx+react.md +2 -116
- package/docs/pt/intlayer_with_nestjs.md +3 -33
- package/docs/pt/intlayer_with_nextjs_14.md +51 -575
- package/docs/pt/intlayer_with_nextjs_15.md +56 -819
- package/docs/pt/intlayer_with_nextjs_16.md +40 -883
- package/docs/pt/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +11 -499
- package/docs/pt/intlayer_with_nextjs_page_router.md +87 -707
- package/docs/pt/intlayer_with_nuxt.md +16 -98
- package/docs/pt/intlayer_with_react_native+expo.md +31 -283
- package/docs/pt/intlayer_with_react_router_v7.md +3 -98
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +15 -91
- package/docs/pt/intlayer_with_storybook.md +1 -37
- package/docs/pt/intlayer_with_svelte_kit.md +29 -71
- package/docs/pt/intlayer_with_tanstack+solid.md +14 -70
- package/docs/pt/intlayer_with_tanstack.md +14 -62
- package/docs/pt/intlayer_with_vanilla.md +28 -108
- package/docs/pt/intlayer_with_vite+lit.md +98 -162
- package/docs/pt/intlayer_with_vite+preact.md +100 -709
- package/docs/pt/intlayer_with_vite+react.md +104 -797
- package/docs/pt/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/pt/intlayer_with_vite+solid.md +79 -149
- package/docs/pt/intlayer_with_vite+svelte.md +104 -132
- package/docs/pt/intlayer_with_vite+vanilla.md +105 -155
- package/docs/pt/intlayer_with_vite+vue.md +80 -263
- package/docs/pt/introduction.md +2 -59
- package/docs/pt/packages/express-intlayer/t.md +6 -181
- package/docs/pt/packages/hono-intlayer/t.md +1 -45
- package/docs/pt/packages/intlayer/getConfiguration.md +2 -54
- package/docs/pt/packages/intlayer/getEnumeration.md +2 -60
- package/docs/pt/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/pt/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/pt/packages/intlayer/getLocaleName.md +1 -43
- package/docs/pt/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/pt/packages/intlayer/getMultilingualUrls.md +2 -60
- package/docs/pt/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/pt/packages/intlayer/getPrefix.md +1 -19
- package/docs/pt/packages/intlayer/getTranslation.md +3 -87
- package/docs/pt/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/pt/packages/next-intlayer/t.md +5 -137
- package/docs/pt/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/pt/packages/next-intlayer/useIntlayer.md +3 -119
- package/docs/pt/packages/next-intlayer/useLocale.md +1 -51
- package/docs/pt/packages/react-intlayer/t.md +4 -109
- package/docs/pt/packages/react-intlayer/useDictionary.md +3 -113
- package/docs/pt/packages/react-intlayer/useI18n.md +4 -107
- package/docs/pt/packages/react-intlayer/useIntlayer.md +3 -114
- package/docs/pt/packages/react-intlayer/useLocale.md +3 -103
- package/docs/pt/per_locale_file.md +3 -35
- package/docs/ru/dictionary/condition.md +2 -116
- package/docs/ru/dictionary/content_file.md +2 -204
- package/docs/ru/dictionary/enumeration.md +2 -116
- package/docs/ru/dictionary/file.md +3 -102
- package/docs/ru/dictionary/function_fetching.md +3 -103
- package/docs/ru/dictionary/gender.md +2 -140
- package/docs/ru/dictionary/insertion.md +3 -57
- package/docs/ru/dictionary/nesting.md +3 -121
- package/docs/ru/dictionary/translation.md +4 -147
- package/docs/ru/interest_of_intlayer.md +2 -60
- package/docs/ru/intlayer_CMS.md +3 -225
- package/docs/ru/intlayer_visual_editor.md +1 -72
- package/docs/ru/intlayer_with_adonisjs.md +3 -109
- package/docs/ru/intlayer_with_analog.md +21 -41
- package/docs/ru/intlayer_with_angular.md +15 -41
- package/docs/ru/intlayer_with_astro.md +172 -45
- package/docs/ru/intlayer_with_astro_lit.md +614 -0
- package/docs/ru/intlayer_with_astro_preact.md +568 -0
- package/docs/ru/intlayer_with_astro_react.md +561 -0
- package/docs/ru/intlayer_with_astro_solid.md +561 -0
- package/docs/ru/intlayer_with_astro_svelte.md +565 -0
- package/docs/ru/intlayer_with_astro_vanilla.md +542 -0
- package/docs/ru/intlayer_with_astro_vue.md +583 -0
- package/docs/ru/intlayer_with_create_react_app.md +9 -677
- package/docs/ru/intlayer_with_express.md +4 -112
- package/docs/ru/intlayer_with_fastify.md +5 -193
- package/docs/ru/intlayer_with_hono.md +2 -2
- package/docs/ru/intlayer_with_lynx+react.md +2 -116
- package/docs/ru/intlayer_with_nestjs.md +3 -33
- package/docs/ru/intlayer_with_nextjs_14.md +50 -534
- package/docs/ru/intlayer_with_nextjs_15.md +60 -834
- package/docs/ru/intlayer_with_nextjs_16.md +60 -903
- package/docs/ru/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +11 -542
- package/docs/ru/intlayer_with_nextjs_page_router.md +38 -610
- package/docs/ru/intlayer_with_nuxt.md +16 -100
- package/docs/ru/intlayer_with_react_native+expo.md +31 -286
- package/docs/ru/intlayer_with_react_router_v7.md +15 -91
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +15 -91
- package/docs/ru/intlayer_with_storybook.md +1 -37
- package/docs/ru/intlayer_with_svelte_kit.md +29 -71
- package/docs/ru/intlayer_with_tanstack+solid.md +14 -70
- package/docs/ru/intlayer_with_tanstack.md +14 -62
- package/docs/ru/intlayer_with_vanilla.md +28 -108
- package/docs/ru/intlayer_with_vite+lit.md +98 -162
- package/docs/ru/intlayer_with_vite+preact.md +102 -711
- package/docs/ru/intlayer_with_vite+react.md +111 -807
- package/docs/ru/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/ru/intlayer_with_vite+solid.md +79 -153
- package/docs/ru/intlayer_with_vite+svelte.md +104 -132
- package/docs/ru/intlayer_with_vite+vanilla.md +105 -155
- package/docs/ru/intlayer_with_vite+vue.md +92 -266
- package/docs/ru/introduction.md +2 -62
- package/docs/ru/packages/express-intlayer/t.md +6 -183
- package/docs/ru/packages/hono-intlayer/t.md +1 -45
- package/docs/ru/packages/intlayer/getConfiguration.md +2 -54
- package/docs/ru/packages/intlayer/getEnumeration.md +2 -60
- package/docs/ru/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/ru/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/ru/packages/intlayer/getLocaleName.md +1 -43
- package/docs/ru/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/ru/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/ru/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/ru/packages/intlayer/getPrefix.md +1 -15
- package/docs/ru/packages/intlayer/getTranslation.md +3 -87
- package/docs/ru/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/ru/packages/next-intlayer/t.md +5 -139
- package/docs/ru/packages/next-intlayer/useDictionary.md +3 -119
- package/docs/ru/packages/next-intlayer/useIntlayer.md +3 -120
- package/docs/ru/packages/next-intlayer/useLocale.md +1 -51
- package/docs/ru/packages/react-intlayer/t.md +4 -111
- package/docs/ru/packages/react-intlayer/useDictionary.md +3 -115
- package/docs/ru/packages/react-intlayer/useI18n.md +4 -107
- package/docs/ru/packages/react-intlayer/useIntlayer.md +3 -118
- package/docs/ru/packages/react-intlayer/useLocale.md +2 -58
- package/docs/ru/per_locale_file.md +3 -35
- package/docs/tr/dictionary/condition.md +2 -116
- package/docs/tr/dictionary/content_file.md +2 -201
- package/docs/tr/dictionary/enumeration.md +2 -116
- package/docs/tr/dictionary/file.md +3 -100
- package/docs/tr/dictionary/function_fetching.md +3 -103
- package/docs/tr/dictionary/gender.md +2 -140
- package/docs/tr/dictionary/insertion.md +3 -57
- package/docs/tr/dictionary/nesting.md +3 -121
- package/docs/tr/dictionary/translation.md +4 -119
- package/docs/tr/interest_of_intlayer.md +2 -58
- package/docs/tr/intlayer_CMS.md +3 -227
- package/docs/tr/intlayer_visual_editor.md +1 -72
- package/docs/tr/intlayer_with_adonisjs.md +3 -109
- package/docs/tr/intlayer_with_analog.md +21 -41
- package/docs/tr/intlayer_with_angular.md +15 -41
- package/docs/tr/intlayer_with_astro.md +187 -61
- package/docs/tr/intlayer_with_astro_lit.md +615 -0
- package/docs/tr/intlayer_with_astro_preact.md +564 -0
- package/docs/tr/intlayer_with_astro_react.md +562 -0
- package/docs/tr/intlayer_with_astro_solid.md +562 -0
- package/docs/tr/intlayer_with_astro_svelte.md +566 -0
- package/docs/tr/intlayer_with_astro_vanilla.md +543 -0
- package/docs/tr/intlayer_with_astro_vue.md +584 -0
- package/docs/tr/intlayer_with_create_react_app.md +33 -685
- package/docs/tr/intlayer_with_express.md +5 -179
- package/docs/tr/intlayer_with_fastify.md +5 -193
- package/docs/tr/intlayer_with_hono.md +2 -2
- package/docs/tr/intlayer_with_lynx+react.md +2 -108
- package/docs/tr/intlayer_with_nestjs.md +3 -31
- package/docs/tr/intlayer_with_nextjs_14.md +12 -431
- package/docs/tr/intlayer_with_nextjs_15.md +59 -815
- package/docs/tr/intlayer_with_nextjs_16.md +60 -903
- package/docs/tr/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +11 -498
- package/docs/tr/intlayer_with_nextjs_page_router.md +37 -622
- package/docs/tr/intlayer_with_nuxt.md +16 -98
- package/docs/tr/intlayer_with_react_native+expo.md +31 -265
- package/docs/tr/intlayer_with_react_router_v7.md +15 -91
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +15 -91
- package/docs/tr/intlayer_with_storybook.md +1 -37
- package/docs/tr/intlayer_with_svelte_kit.md +29 -71
- package/docs/tr/intlayer_with_tanstack+solid.md +14 -70
- package/docs/tr/intlayer_with_tanstack.md +14 -62
- package/docs/tr/intlayer_with_vanilla.md +28 -108
- package/docs/tr/intlayer_with_vite+lit.md +98 -156
- package/docs/tr/intlayer_with_vite+preact.md +102 -711
- package/docs/tr/intlayer_with_vite+react.md +107 -791
- package/docs/tr/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/tr/intlayer_with_vite+solid.md +79 -149
- package/docs/tr/intlayer_with_vite+svelte.md +104 -132
- package/docs/tr/intlayer_with_vite+vanilla.md +105 -155
- package/docs/tr/intlayer_with_vite+vue.md +92 -196
- package/docs/tr/introduction.md +2 -58
- package/docs/tr/packages/express-intlayer/t.md +6 -181
- package/docs/tr/packages/hono-intlayer/t.md +1 -45
- package/docs/tr/packages/intlayer/getConfiguration.md +2 -54
- package/docs/tr/packages/intlayer/getEnumeration.md +2 -60
- package/docs/tr/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/tr/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/tr/packages/intlayer/getLocaleName.md +1 -43
- package/docs/tr/packages/intlayer/getLocalizedUrl.md +3 -79
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +2 -60
- package/docs/tr/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/tr/packages/intlayer/getPrefix.md +1 -15
- package/docs/tr/packages/intlayer/getTranslation.md +3 -87
- package/docs/tr/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/tr/packages/next-intlayer/t.md +5 -137
- package/docs/tr/packages/next-intlayer/useDictionary.md +3 -118
- package/docs/tr/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/tr/packages/next-intlayer/useLocale.md +1 -51
- package/docs/tr/packages/react-intlayer/t.md +4 -109
- package/docs/tr/packages/react-intlayer/useDictionary.md +3 -113
- package/docs/tr/packages/react-intlayer/useI18n.md +8 -214
- package/docs/tr/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/tr/packages/react-intlayer/useLocale.md +3 -103
- package/docs/tr/per_locale_file.md +3 -33
- package/docs/uk/dictionary/condition.md +2 -116
- package/docs/uk/dictionary/content_file.md +2 -218
- package/docs/uk/dictionary/enumeration.md +2 -116
- package/docs/uk/dictionary/file.md +3 -100
- package/docs/uk/dictionary/function_fetching.md +3 -103
- package/docs/uk/dictionary/gender.md +2 -140
- package/docs/uk/dictionary/insertion.md +3 -57
- package/docs/uk/dictionary/nesting.md +3 -121
- package/docs/uk/dictionary/translation.md +4 -156
- package/docs/uk/interest_of_intlayer.md +2 -60
- package/docs/uk/intlayer_CMS.md +3 -227
- package/docs/uk/intlayer_visual_editor.md +1 -72
- package/docs/uk/intlayer_with_adonisjs.md +3 -109
- package/docs/uk/intlayer_with_analog.md +21 -41
- package/docs/uk/intlayer_with_angular.md +15 -41
- package/docs/uk/intlayer_with_astro.md +187 -70
- package/docs/uk/intlayer_with_astro_lit.md +615 -0
- package/docs/uk/intlayer_with_astro_preact.md +564 -0
- package/docs/uk/intlayer_with_astro_react.md +562 -0
- package/docs/uk/intlayer_with_astro_solid.md +562 -0
- package/docs/uk/intlayer_with_astro_svelte.md +566 -0
- package/docs/uk/intlayer_with_astro_vanilla.md +543 -0
- package/docs/uk/intlayer_with_astro_vue.md +584 -0
- package/docs/uk/intlayer_with_create_react_app.md +39 -697
- package/docs/uk/intlayer_with_express.md +5 -184
- package/docs/uk/intlayer_with_fastify.md +5 -193
- package/docs/uk/intlayer_with_hono.md +2 -2
- package/docs/uk/intlayer_with_lynx+react.md +3 -118
- package/docs/uk/intlayer_with_nestjs.md +3 -31
- package/docs/uk/intlayer_with_nextjs_14.md +54 -797
- package/docs/uk/intlayer_with_nextjs_15.md +42 -708
- package/docs/uk/intlayer_with_nextjs_16.md +60 -903
- package/docs/uk/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +11 -499
- package/docs/uk/intlayer_with_nextjs_page_router.md +37 -659
- package/docs/uk/intlayer_with_nuxt.md +16 -106
- package/docs/uk/intlayer_with_react_native+expo.md +31 -293
- package/docs/uk/intlayer_with_react_router_v7.md +15 -99
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +15 -93
- package/docs/uk/intlayer_with_storybook.md +1 -37
- package/docs/uk/intlayer_with_svelte_kit.md +28 -70
- package/docs/uk/intlayer_with_tanstack+solid.md +14 -70
- package/docs/uk/intlayer_with_tanstack.md +14 -62
- package/docs/uk/intlayer_with_vanilla.md +28 -108
- package/docs/uk/intlayer_with_vite+lit.md +98 -156
- package/docs/uk/intlayer_with_vite+preact.md +105 -714
- package/docs/uk/intlayer_with_vite+react.md +113 -822
- package/docs/uk/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/uk/intlayer_with_vite+solid.md +79 -151
- package/docs/uk/intlayer_with_vite+svelte.md +104 -132
- package/docs/uk/intlayer_with_vite+vanilla.md +105 -155
- package/docs/uk/intlayer_with_vite+vue.md +92 -268
- package/docs/uk/introduction.md +2 -61
- package/docs/uk/packages/express-intlayer/t.md +6 -187
- package/docs/uk/packages/hono-intlayer/t.md +1 -45
- package/docs/uk/packages/intlayer/getConfiguration.md +2 -54
- package/docs/uk/packages/intlayer/getEnumeration.md +2 -60
- package/docs/uk/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/uk/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/uk/packages/intlayer/getLocaleName.md +1 -43
- package/docs/uk/packages/intlayer/getLocalizedUrl.md +3 -71
- package/docs/uk/packages/intlayer/getMultilingualUrls.md +3 -79
- package/docs/uk/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/uk/packages/intlayer/getPrefix.md +1 -15
- package/docs/uk/packages/intlayer/getTranslation.md +3 -87
- package/docs/uk/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/uk/packages/next-intlayer/t.md +5 -141
- package/docs/uk/packages/next-intlayer/useDictionary.md +3 -126
- package/docs/uk/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/uk/packages/next-intlayer/useLocale.md +1 -51
- package/docs/uk/packages/react-intlayer/t.md +4 -113
- package/docs/uk/packages/react-intlayer/useDictionary.md +3 -118
- package/docs/uk/packages/react-intlayer/useI18n.md +4 -107
- package/docs/uk/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/uk/packages/react-intlayer/useLocale.md +3 -103
- package/docs/uk/per_locale_file.md +3 -34
- package/docs/ur/intlayer_with_fastify.md +5 -193
- package/docs/ur/intlayer_with_hono.md +5 -158
- package/docs/ur/intlayer_with_storybook.md +1 -37
- package/docs/ur/intlayer_with_vanilla.md +28 -108
- package/docs/ur/intlayer_with_vite+lit.md +98 -156
- package/docs/ur/intlayer_with_vite+vanilla.md +105 -155
- package/docs/ur/introduction.md +2 -58
- package/docs/vi/dictionary/condition.md +2 -116
- package/docs/vi/dictionary/content_file.md +2 -200
- package/docs/vi/dictionary/enumeration.md +2 -116
- package/docs/vi/dictionary/file.md +3 -102
- package/docs/vi/dictionary/function_fetching.md +3 -103
- package/docs/vi/dictionary/gender.md +2 -140
- package/docs/vi/dictionary/insertion.md +3 -57
- package/docs/vi/dictionary/nesting.md +3 -121
- package/docs/vi/dictionary/translation.md +4 -146
- package/docs/vi/interest_of_intlayer.md +2 -60
- package/docs/vi/intlayer_CMS.md +3 -227
- package/docs/vi/intlayer_visual_editor.md +1 -72
- package/docs/vi/intlayer_with_adonisjs.md +3 -109
- package/docs/vi/intlayer_with_analog.md +21 -41
- package/docs/vi/intlayer_with_angular.md +15 -41
- package/docs/vi/intlayer_with_astro.md +184 -66
- package/docs/vi/intlayer_with_astro_lit.md +615 -0
- package/docs/vi/intlayer_with_astro_preact.md +564 -0
- package/docs/vi/intlayer_with_astro_react.md +562 -0
- package/docs/vi/intlayer_with_astro_solid.md +562 -0
- package/docs/vi/intlayer_with_astro_svelte.md +566 -0
- package/docs/vi/intlayer_with_astro_vanilla.md +543 -0
- package/docs/vi/intlayer_with_astro_vue.md +584 -0
- package/docs/vi/intlayer_with_create_react_app.md +39 -693
- package/docs/vi/intlayer_with_express.md +5 -179
- package/docs/vi/intlayer_with_fastify.md +5 -193
- package/docs/vi/intlayer_with_hono.md +2 -2
- package/docs/vi/intlayer_with_lynx+react.md +3 -111
- package/docs/vi/intlayer_with_nestjs.md +3 -31
- package/docs/vi/intlayer_with_nextjs_14.md +54 -785
- package/docs/vi/intlayer_with_nextjs_15.md +34 -1171
- package/docs/vi/intlayer_with_nextjs_16.md +60 -903
- package/docs/vi/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +10 -516
- package/docs/vi/intlayer_with_nextjs_page_router.md +69 -742
- package/docs/vi/intlayer_with_nuxt.md +16 -98
- package/docs/vi/intlayer_with_react_native+expo.md +31 -293
- package/docs/vi/intlayer_with_react_router_v7.md +15 -101
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +15 -101
- package/docs/vi/intlayer_with_storybook.md +1 -37
- package/docs/vi/intlayer_with_svelte_kit.md +29 -71
- package/docs/vi/intlayer_with_tanstack+solid.md +14 -70
- package/docs/vi/intlayer_with_tanstack.md +14 -62
- package/docs/vi/intlayer_with_vanilla.md +28 -108
- package/docs/vi/intlayer_with_vite+lit.md +98 -156
- package/docs/vi/intlayer_with_vite+preact.md +103 -712
- package/docs/vi/intlayer_with_vite+react.md +105 -787
- package/docs/vi/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/vi/intlayer_with_vite+solid.md +79 -150
- package/docs/vi/intlayer_with_vite+svelte.md +104 -132
- package/docs/vi/intlayer_with_vite+vanilla.md +105 -155
- package/docs/vi/intlayer_with_vite+vue.md +92 -252
- package/docs/vi/introduction.md +2 -58
- package/docs/vi/packages/express-intlayer/t.md +6 -181
- package/docs/vi/packages/hono-intlayer/t.md +1 -45
- package/docs/vi/packages/intlayer/getConfiguration.md +2 -54
- package/docs/vi/packages/intlayer/getEnumeration.md +2 -62
- package/docs/vi/packages/intlayer/getHTMLTextDir.md +2 -38
- package/docs/vi/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/vi/packages/intlayer/getLocaleName.md +1 -54
- package/docs/vi/packages/intlayer/getLocalizedUrl.md +2 -59
- package/docs/vi/packages/intlayer/getMultilingualUrls.md +2 -62
- package/docs/vi/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/vi/packages/intlayer/getPrefix.md +1 -15
- package/docs/vi/packages/intlayer/getTranslation.md +3 -98
- package/docs/vi/packages/intlayer/getTranslationContent.md +3 -86
- package/docs/vi/packages/next-intlayer/t.md +5 -137
- package/docs/vi/packages/next-intlayer/useDictionary.md +3 -123
- package/docs/vi/packages/next-intlayer/useIntlayer.md +3 -117
- package/docs/vi/packages/next-intlayer/useLocale.md +1 -51
- package/docs/vi/packages/react-intlayer/t.md +4 -111
- package/docs/vi/packages/react-intlayer/useDictionary.md +3 -114
- package/docs/vi/packages/react-intlayer/useI18n.md +5 -124
- package/docs/vi/packages/react-intlayer/useIntlayer.md +3 -114
- package/docs/vi/packages/react-intlayer/useLocale.md +3 -103
- package/docs/vi/per_locale_file.md +3 -35
- package/docs/zh/dictionary/condition.md +2 -116
- package/docs/zh/dictionary/content_file.md +2 -201
- package/docs/zh/dictionary/enumeration.md +2 -116
- package/docs/zh/dictionary/file.md +3 -101
- package/docs/zh/dictionary/function_fetching.md +3 -103
- package/docs/zh/dictionary/gender.md +2 -140
- package/docs/zh/dictionary/insertion.md +3 -57
- package/docs/zh/dictionary/nesting.md +3 -121
- package/docs/zh/dictionary/translation.md +5 -159
- package/docs/zh/interest_of_intlayer.md +2 -59
- package/docs/zh/intlayer_CMS.md +3 -224
- package/docs/zh/intlayer_visual_editor.md +1 -72
- package/docs/zh/intlayer_with_adonisjs.md +3 -109
- package/docs/zh/intlayer_with_analog.md +21 -41
- package/docs/zh/intlayer_with_angular.md +15 -41
- package/docs/zh/intlayer_with_astro.md +169 -58
- package/docs/zh/intlayer_with_astro_lit.md +598 -0
- package/docs/zh/intlayer_with_astro_preact.md +547 -0
- package/docs/zh/intlayer_with_astro_react.md +545 -0
- package/docs/zh/intlayer_with_astro_solid.md +545 -0
- package/docs/zh/intlayer_with_astro_svelte.md +549 -0
- package/docs/zh/intlayer_with_astro_vanilla.md +526 -0
- package/docs/zh/intlayer_with_astro_vue.md +567 -0
- package/docs/zh/intlayer_with_create_react_app.md +33 -680
- package/docs/zh/intlayer_with_express.md +5 -182
- package/docs/zh/intlayer_with_fastify.md +5 -193
- package/docs/zh/intlayer_with_hono.md +5 -158
- package/docs/zh/intlayer_with_lynx+react.md +2 -116
- package/docs/zh/intlayer_with_nestjs.md +3 -31
- package/docs/zh/intlayer_with_nextjs_14.md +56 -597
- package/docs/zh/intlayer_with_nextjs_15.md +56 -818
- package/docs/zh/intlayer_with_nextjs_16.md +60 -903
- package/docs/zh/intlayer_with_nextjs_compiler.md +2 -62
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +11 -541
- package/docs/zh/intlayer_with_nextjs_page_router.md +39 -636
- package/docs/zh/intlayer_with_nuxt.md +16 -101
- package/docs/zh/intlayer_with_react_native+expo.md +31 -286
- package/docs/zh/intlayer_with_react_router_v7.md +15 -92
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +15 -92
- package/docs/zh/intlayer_with_storybook.md +1 -37
- package/docs/zh/intlayer_with_svelte_kit.md +29 -71
- package/docs/zh/intlayer_with_tanstack+solid.md +14 -70
- package/docs/zh/intlayer_with_tanstack.md +14 -2
- package/docs/zh/intlayer_with_vanilla.md +28 -108
- package/docs/zh/intlayer_with_vite+lit.md +98 -162
- package/docs/zh/intlayer_with_vite+preact.md +104 -713
- package/docs/zh/intlayer_with_vite+react.md +106 -786
- package/docs/zh/intlayer_with_vite+react_compiler.md +87 -1
- package/docs/zh/intlayer_with_vite+solid.md +79 -151
- package/docs/zh/intlayer_with_vite+svelte.md +104 -132
- package/docs/zh/intlayer_with_vite+vanilla.md +105 -155
- package/docs/zh/intlayer_with_vite+vue.md +92 -256
- package/docs/zh/introduction.md +2 -59
- package/docs/zh/packages/express-intlayer/t.md +6 -183
- package/docs/zh/packages/hono-intlayer/t.md +2 -70
- package/docs/zh/packages/intlayer/getConfiguration.md +2 -54
- package/docs/zh/packages/intlayer/getEnumeration.md +2 -60
- package/docs/zh/packages/intlayer/getHTMLTextDir.md +2 -39
- package/docs/zh/packages/intlayer/getLocaleLang.md +1 -19
- package/docs/zh/packages/intlayer/getLocaleName.md +1 -43
- package/docs/zh/packages/intlayer/getLocalizedUrl.md +2 -45
- package/docs/zh/packages/intlayer/getMultilingualUrls.md +2 -64
- package/docs/zh/packages/intlayer/getPathWithoutLocale.md +1 -19
- package/docs/zh/packages/intlayer/getPrefix.md +1 -12
- package/docs/zh/packages/intlayer/getTranslation.md +3 -87
- package/docs/zh/packages/intlayer/getTranslationContent.md +3 -87
- package/docs/zh/packages/next-intlayer/t.md +5 -139
- package/docs/zh/packages/next-intlayer/useDictionary.md +3 -120
- package/docs/zh/packages/next-intlayer/useIntlayer.md +3 -119
- package/docs/zh/packages/next-intlayer/useLocale.md +1 -51
- package/docs/zh/packages/react-intlayer/t.md +4 -107
- package/docs/zh/packages/react-intlayer/useDictionary.md +3 -116
- package/docs/zh/packages/react-intlayer/useI18n.md +4 -107
- package/docs/zh/packages/react-intlayer/useIntlayer.md +3 -109
- package/docs/zh/packages/react-intlayer/useLocale.md +3 -103
- package/docs/zh/per_locale_file.md +3 -35
- package/package.json +6 -6
- package/src/common.ts +2 -1
- package/src/generated/docs.entry.ts +140 -0
|
@@ -16,6 +16,7 @@ slugs:
|
|
|
16
16
|
- environment
|
|
17
17
|
- vite-and-react
|
|
18
18
|
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
19
|
+
applicationShowcase: https://intlayer-vite-react-template.vercel.app
|
|
19
20
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
20
21
|
history:
|
|
21
22
|
- version: 7.5.9
|
|
@@ -56,13 +57,24 @@ With Intlayer, you can:
|
|
|
56
57
|
<Tab label="Code" value="code">
|
|
57
58
|
|
|
58
59
|
<iframe
|
|
59
|
-
src="https://
|
|
60
|
+
src="https://ide.intlayer.org/aymericzip/intlayer-vite-react-template?file=intlayer.config.ts"
|
|
60
61
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
61
62
|
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
62
63
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
63
64
|
loading="lazy"
|
|
64
65
|
/>
|
|
65
66
|
|
|
67
|
+
</Tab>
|
|
68
|
+
<Tab label="Demo" value="demo">
|
|
69
|
+
|
|
70
|
+
<iframe
|
|
71
|
+
src="https://intlayer-vite-react-template.vercel.app"
|
|
72
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
73
|
+
title="Demo — intlayer-vite-react-template"
|
|
74
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
75
|
+
loading="lazy"
|
|
76
|
+
/>
|
|
77
|
+
|
|
66
78
|
</Tab>
|
|
67
79
|
</Tabs>
|
|
68
80
|
|
|
@@ -109,7 +121,7 @@ bun x intlayer init
|
|
|
109
121
|
|
|
110
122
|
Create a config file to configure the languages of your application:
|
|
111
123
|
|
|
112
|
-
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
124
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
113
125
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
114
126
|
|
|
115
127
|
const config: IntlayerConfig = {
|
|
@@ -127,62 +139,13 @@ const config: IntlayerConfig = {
|
|
|
127
139
|
export default config;
|
|
128
140
|
```
|
|
129
141
|
|
|
130
|
-
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
131
|
-
import { Locales } from "intlayer";
|
|
132
|
-
|
|
133
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
134
|
-
const config = {
|
|
135
|
-
internationalization: {
|
|
136
|
-
locales: [
|
|
137
|
-
Locales.ENGLISH,
|
|
138
|
-
Locales.FRENCH,
|
|
139
|
-
Locales.SPANISH,
|
|
140
|
-
// Your other locales
|
|
141
|
-
],
|
|
142
|
-
defaultLocale: Locales.ENGLISH,
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
export default config;
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
150
|
-
const { Locales } = require("intlayer");
|
|
151
|
-
|
|
152
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
153
|
-
const config = {
|
|
154
|
-
internationalization: {
|
|
155
|
-
locales: [
|
|
156
|
-
Locales.ENGLISH,
|
|
157
|
-
Locales.FRENCH,
|
|
158
|
-
Locales.SPANISH,
|
|
159
|
-
// Your other locales
|
|
160
|
-
],
|
|
161
|
-
defaultLocale: Locales.ENGLISH,
|
|
162
|
-
},
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
module.exports = config;
|
|
166
|
-
```
|
|
167
|
-
|
|
168
142
|
> Through this configuration file, you can set up localized URLs, middleware redirection, cookie names, the location and extension of your content declarations, disable Intlayer logs in the console, and more. For a complete list of available parameters, refer to the [configuration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
|
|
169
143
|
|
|
170
144
|
### Step 3: Integrate Intlayer in Your Vite Configuration
|
|
171
145
|
|
|
172
146
|
Add the intlayer plugin into your configuration.
|
|
173
147
|
|
|
174
|
-
```typescript fileName="vite.config.ts" codeFormat="typescript"
|
|
175
|
-
import { defineConfig } from "vite";
|
|
176
|
-
import react from "@vitejs/plugin-react-swc";
|
|
177
|
-
import { intlayer } from "vite-intlayer";
|
|
178
|
-
|
|
179
|
-
// https://vitejs.dev/config/
|
|
180
|
-
export default defineConfig({
|
|
181
|
-
plugins: [react(), intlayer()],
|
|
182
|
-
});
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
```javascript fileName="vite.config.mjs" codeFormat="esm"
|
|
148
|
+
```typescript fileName="vite.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
186
149
|
import { defineConfig } from "vite";
|
|
187
150
|
import react from "@vitejs/plugin-react-swc";
|
|
188
151
|
import { intlayer } from "vite-intlayer";
|
|
@@ -193,24 +156,13 @@ export default defineConfig({
|
|
|
193
156
|
});
|
|
194
157
|
```
|
|
195
158
|
|
|
196
|
-
```javascript fileName="vite.config.cjs" codeFormat="commonjs"
|
|
197
|
-
const { defineConfig } = require("vite");
|
|
198
|
-
const react = require("@vitejs/plugin-react-swc");
|
|
199
|
-
const { intlayer } = require("vite-intlayer");
|
|
200
|
-
|
|
201
|
-
// https://vitejs.dev/config/
|
|
202
|
-
module.exports = defineConfig({
|
|
203
|
-
plugins: [react(), intlayer()],
|
|
204
|
-
});
|
|
205
|
-
```
|
|
206
|
-
|
|
207
159
|
> The `intlayer()` Vite plugin is used to integrate Intlayer with Vite. It ensures the building of content declaration files and monitors them in development mode. It defines Intlayer environment variables within the Vite application. Additionally, it provides aliases to optimize performance.
|
|
208
160
|
|
|
209
161
|
### Step 4: Declare Your Content
|
|
210
162
|
|
|
211
163
|
Create and manage your content declarations to store translations:
|
|
212
164
|
|
|
213
|
-
```tsx fileName="src/app.content.tsx" contentDeclarationFormat="typescript"
|
|
165
|
+
```tsx fileName="src/app.content.tsx" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
214
166
|
import { t, type Dictionary } from "intlayer";
|
|
215
167
|
import type { ReactNode } from "react";
|
|
216
168
|
|
|
@@ -265,124 +217,6 @@ const appContent = {
|
|
|
265
217
|
export default appContent;
|
|
266
218
|
```
|
|
267
219
|
|
|
268
|
-
```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
|
|
269
|
-
import { t } from "intlayer";
|
|
270
|
-
|
|
271
|
-
/** @type {import('intlayer').Dictionary} */
|
|
272
|
-
const appContent = {
|
|
273
|
-
key: "app",
|
|
274
|
-
content: {
|
|
275
|
-
viteLogo: t({
|
|
276
|
-
en: "Vite logo",
|
|
277
|
-
fr: "Logo Vite",
|
|
278
|
-
es: "Logo Vite",
|
|
279
|
-
}),
|
|
280
|
-
reactLogo: t({
|
|
281
|
-
en: "React logo",
|
|
282
|
-
fr: "Logo React",
|
|
283
|
-
es: "Logo React",
|
|
284
|
-
}),
|
|
285
|
-
|
|
286
|
-
title: "Vite + React",
|
|
287
|
-
|
|
288
|
-
count: t({
|
|
289
|
-
en: "count is ",
|
|
290
|
-
fr: "le compte est ",
|
|
291
|
-
es: "el recuento es ",
|
|
292
|
-
}),
|
|
293
|
-
|
|
294
|
-
edit:
|
|
295
|
-
t <
|
|
296
|
-
ReactNode >
|
|
297
|
-
{
|
|
298
|
-
// N'oubliez pas d'importer React si vous utilisez un React node dans votre contenu
|
|
299
|
-
en: (
|
|
300
|
-
<>
|
|
301
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
302
|
-
</>
|
|
303
|
-
),
|
|
304
|
-
fr: (
|
|
305
|
-
<>
|
|
306
|
-
Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
307
|
-
</>
|
|
308
|
-
),
|
|
309
|
-
es: (
|
|
310
|
-
<>
|
|
311
|
-
Edita <code>src/App.tsx</code> y guarda para probar HMR
|
|
312
|
-
</>
|
|
313
|
-
),
|
|
314
|
-
},
|
|
315
|
-
|
|
316
|
-
readTheDocs: t({
|
|
317
|
-
en: "Click on the Vite and React logos to learn more",
|
|
318
|
-
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
319
|
-
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
320
|
-
}),
|
|
321
|
-
},
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
export default appContent;
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
|
|
328
|
-
const { t } = require("intlayer");
|
|
329
|
-
|
|
330
|
-
/** @type {import('intlayer').Dictionary} */
|
|
331
|
-
const appContent = {
|
|
332
|
-
key: "app",
|
|
333
|
-
content: {
|
|
334
|
-
viteLogo: t({
|
|
335
|
-
en: "Vite logo",
|
|
336
|
-
fr: "Logo Vite",
|
|
337
|
-
es: "Logo Vite",
|
|
338
|
-
}),
|
|
339
|
-
reactLogo: t({
|
|
340
|
-
en: "React logo",
|
|
341
|
-
fr: "Logo React",
|
|
342
|
-
es: "Logo React",
|
|
343
|
-
}),
|
|
344
|
-
|
|
345
|
-
title: "Vite + React",
|
|
346
|
-
|
|
347
|
-
count: t({
|
|
348
|
-
en: "count is ",
|
|
349
|
-
fr: "le compte est ",
|
|
350
|
-
es: "el recuento es ",
|
|
351
|
-
}),
|
|
352
|
-
|
|
353
|
-
edit:
|
|
354
|
-
t <
|
|
355
|
-
ReactNode >
|
|
356
|
-
{
|
|
357
|
-
// N'oubliez pas d'importer React si vous utilisez un React node dans votre contenu
|
|
358
|
-
en: (
|
|
359
|
-
<>
|
|
360
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
361
|
-
</>
|
|
362
|
-
),
|
|
363
|
-
fr: (
|
|
364
|
-
<>
|
|
365
|
-
Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
366
|
-
</>
|
|
367
|
-
),
|
|
368
|
-
es: (
|
|
369
|
-
<>
|
|
370
|
-
Edita <code>src/App.tsx</code> y guarda para probar HMR
|
|
371
|
-
</>
|
|
372
|
-
),
|
|
373
|
-
},
|
|
374
|
-
|
|
375
|
-
readTheDocs: t({
|
|
376
|
-
en: "Click on the Vite and React logos to learn more",
|
|
377
|
-
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
378
|
-
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
379
|
-
}),
|
|
380
|
-
},
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
module.exports = appContent;
|
|
384
|
-
```
|
|
385
|
-
|
|
386
220
|
```json fileName="src/app.content.json" contentDeclarationFormat="json"
|
|
387
221
|
{
|
|
388
222
|
"$schema": "https://intlayer.org/schema.json",
|
|
@@ -450,7 +284,7 @@ module.exports = appContent;
|
|
|
450
284
|
|
|
451
285
|
Access your content dictionaries throughout your application:
|
|
452
286
|
|
|
453
|
-
```tsx {5,9} fileName="src/App.tsx" codeFormat="typescript"
|
|
287
|
+
```tsx {5,9} fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
454
288
|
import { useState, type FC } from "react";
|
|
455
289
|
import reactLogo from "./assets/react.svg";
|
|
456
290
|
import viteLogo from "/vite.svg";
|
|
@@ -497,100 +331,6 @@ const App: FC = () => (
|
|
|
497
331
|
export default App;
|
|
498
332
|
```
|
|
499
333
|
|
|
500
|
-
```tsx {5,9} fileName="src/App.msx" codeFormat="esm"
|
|
501
|
-
import { useState } from "react";
|
|
502
|
-
import reactLogo from "./assets/react.svg";
|
|
503
|
-
import viteLogo from "/vite.svg";
|
|
504
|
-
import "./App.css";
|
|
505
|
-
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
506
|
-
|
|
507
|
-
const AppContent = () => {
|
|
508
|
-
const [count, setCount] = useState(0);
|
|
509
|
-
const content = useIntlayer("app");
|
|
510
|
-
|
|
511
|
-
return (
|
|
512
|
-
<>
|
|
513
|
-
<div>
|
|
514
|
-
<a href="https://vitejs.dev" target="_blank">
|
|
515
|
-
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
516
|
-
</a>
|
|
517
|
-
<a href="https://react.dev" target="_blank">
|
|
518
|
-
<img
|
|
519
|
-
src={reactLogo}
|
|
520
|
-
className="logo react"
|
|
521
|
-
alt={content.reactLogo.value}
|
|
522
|
-
/>
|
|
523
|
-
</a>
|
|
524
|
-
</div>
|
|
525
|
-
<h1>{content.title}</h1>
|
|
526
|
-
<div className="card">
|
|
527
|
-
<button onClick={() => setCount((count) => count + 1)}>
|
|
528
|
-
{content.count}
|
|
529
|
-
{count}
|
|
530
|
-
</button>
|
|
531
|
-
<p>{content.edit}</p>
|
|
532
|
-
</div>
|
|
533
|
-
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
534
|
-
</>
|
|
535
|
-
);
|
|
536
|
-
};
|
|
537
|
-
|
|
538
|
-
const App = () => (
|
|
539
|
-
<IntlayerProvider>
|
|
540
|
-
<AppContent />
|
|
541
|
-
</IntlayerProvider>
|
|
542
|
-
);
|
|
543
|
-
|
|
544
|
-
export default App;
|
|
545
|
-
```
|
|
546
|
-
|
|
547
|
-
```tsx {5,9} fileName="src/App.csx" codeFormat="commonjs"
|
|
548
|
-
const { useState } = require("react");
|
|
549
|
-
const reactLogo = require("./assets/react.svg");
|
|
550
|
-
const viteLogo = require("/vite.svg");
|
|
551
|
-
require("./App.css");
|
|
552
|
-
const { IntlayerProvider, useIntlayer } = require("react-intlayer");
|
|
553
|
-
|
|
554
|
-
const AppContent = () => {
|
|
555
|
-
const [count, setCount] = useState(0);
|
|
556
|
-
const content = useIntlayer("app");
|
|
557
|
-
|
|
558
|
-
return (
|
|
559
|
-
<>
|
|
560
|
-
<div>
|
|
561
|
-
<a href="https://vitejs.dev" target="_blank">
|
|
562
|
-
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
563
|
-
</a>
|
|
564
|
-
<a href="https://react.dev" target="_blank">
|
|
565
|
-
<img
|
|
566
|
-
src={reactLogo}
|
|
567
|
-
className="logo react"
|
|
568
|
-
alt={content.reactLogo.value}
|
|
569
|
-
/>
|
|
570
|
-
</a>
|
|
571
|
-
</div>
|
|
572
|
-
<h1>{content.title}</h1>
|
|
573
|
-
<div className="card">
|
|
574
|
-
<button onClick={() => setCount((count) => count + 1)}>
|
|
575
|
-
{content.count}
|
|
576
|
-
{count}
|
|
577
|
-
</button>
|
|
578
|
-
<p>{content.edit}</p>
|
|
579
|
-
</div>
|
|
580
|
-
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
581
|
-
</>
|
|
582
|
-
);
|
|
583
|
-
};
|
|
584
|
-
|
|
585
|
-
const App = () => (
|
|
586
|
-
<IntlayerProvider>
|
|
587
|
-
<AppContent />
|
|
588
|
-
</IntlayerProvider>
|
|
589
|
-
);
|
|
590
|
-
|
|
591
|
-
module.exports = App;
|
|
592
|
-
```
|
|
593
|
-
|
|
594
334
|
> If you want to use your content in a `string` attribute, such as `alt`, `title`, `href`, `aria-label`, etc., you must call the value of the function, like:
|
|
595
335
|
|
|
596
336
|
> ```jsx
|
|
@@ -605,7 +345,7 @@ module.exports = App;
|
|
|
605
345
|
|
|
606
346
|
To change the language of your content, you can use the `setLocale` function provided by the `useLocale` hook. This function allows you to set the locale of the application and update the content accordingly.
|
|
607
347
|
|
|
608
|
-
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
348
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat={["typescript", "esm"]}
|
|
609
349
|
import type { FC } from "react";
|
|
610
350
|
import { Locales } from "intlayer";
|
|
611
351
|
import { useLocale } from "react-intlayer";
|
|
@@ -621,36 +361,6 @@ const LocaleSwitcher: FC = () => {
|
|
|
621
361
|
};
|
|
622
362
|
```
|
|
623
363
|
|
|
624
|
-
```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
|
|
625
|
-
import { Locales } from "intlayer";
|
|
626
|
-
import { useLocale } from "react-intlayer";
|
|
627
|
-
|
|
628
|
-
const LocaleSwitcher = () => {
|
|
629
|
-
const { setLocale } = useLocale();
|
|
630
|
-
|
|
631
|
-
return (
|
|
632
|
-
<button onClick={() => setLocale(Locales.English)}>
|
|
633
|
-
Change Language to English
|
|
634
|
-
</button>
|
|
635
|
-
);
|
|
636
|
-
};
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
|
|
640
|
-
const { Locales } = require("intlayer");
|
|
641
|
-
const { useLocale } = require("react-intlayer");
|
|
642
|
-
|
|
643
|
-
const LocaleSwitcher = () => {
|
|
644
|
-
const { setLocale } = useLocale();
|
|
645
|
-
|
|
646
|
-
return (
|
|
647
|
-
<button onClick={() => setLocale(Locales.English)}>
|
|
648
|
-
Change Language to English
|
|
649
|
-
</button>
|
|
650
|
-
);
|
|
651
|
-
};
|
|
652
|
-
```
|
|
653
|
-
|
|
654
364
|
> To Learn more about the `useLocale` hook, refer to the [documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md).
|
|
655
365
|
|
|
656
366
|
### (Optional) Step 7: Add localized Routing to your application
|
|
@@ -668,7 +378,7 @@ Example:
|
|
|
668
378
|
|
|
669
379
|
To add localized routing to your application, you can create a `LocaleRouter` component that wraps your application's routes and handles locale-based routing. Here is an example using [React Router](https://reactrouter.com/home):
|
|
670
380
|
|
|
671
|
-
```tsx fileName="src/components/LocaleRouter.tsx"
|
|
381
|
+
```tsx fileName="src/components/LocaleRouter.tsx" codeFormat={["typescript", "esm"]}
|
|
672
382
|
import { localeMap } from "intlayer"; // Utility functions and types from 'intlayer'
|
|
673
383
|
import type { FC, PropsWithChildren } from "react"; // React types for functional components and props
|
|
674
384
|
import { IntlayerProvider } from "react-intlayer"; // Provider for internationalization context
|
|
@@ -696,71 +406,13 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
|
696
406
|
);
|
|
697
407
|
```
|
|
698
408
|
|
|
699
|
-
|
|
700
|
-
import { localeMap } from 'intlayer'; // Utility functions and types from 'intlayer'
|
|
701
|
-
import type { FC, PropsWithChildren } from 'react'; // React types for functional components and props
|
|
702
|
-
import { IntlayerProvider } from "react-intlayer"; // Provider for internationalization context
|
|
703
|
-
import { BrowserRouter, Route, Routes } from 'react-router-dom'; // Router components for managing navigation
|
|
409
|
+
> Note: If you use `routing.mode: 'no-prefix' | 'search-params'`, you probably don't need to use the `localeMap` function.
|
|
704
410
|
|
|
705
|
-
|
|
706
|
-
* A router component that sets up locale-specific routes.
|
|
707
|
-
* It uses React Router to manage navigation and render localized components.
|
|
708
|
-
*/
|
|
709
|
-
export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
710
|
-
<BrowserRouter>
|
|
711
|
-
<Routes>
|
|
712
|
-
{localeMap(({ locale, urlPrefix }) => (
|
|
713
|
-
<Route
|
|
714
|
-
// Route pattern to capture the locale (e.g., /en/, /fr/) and match all subsequent paths
|
|
715
|
-
path={`${urlPrefix}/*`}
|
|
716
|
-
key={locale}
|
|
717
|
-
element={
|
|
718
|
-
<IntlayerProvider locale={locale}>{children}</IntlayerProvider>
|
|
719
|
-
} // Wraps children with locale management
|
|
720
|
-
/>
|
|
721
|
-
))}
|
|
722
|
-
</Routes>
|
|
723
|
-
</BrowserRouter>
|
|
724
|
-
);
|
|
725
|
-
```
|
|
411
|
+
Then, you can use the `LocaleRouter` component in your application:
|
|
726
412
|
|
|
727
|
-
```
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
const { IntlayerProvider } = require("react-intlayer"); // Provider for internationalization context
|
|
731
|
-
const { BrowserRouter, Route, Routes } = require("react-router-dom"); // Router components for managing navigation
|
|
732
|
-
|
|
733
|
-
/**
|
|
734
|
-
* A router component that sets up locale-specific routes.
|
|
735
|
-
* It uses React Router to manage navigation and render localized components.
|
|
736
|
-
*/
|
|
737
|
-
const LocaleRouter = ({ children }) =>
|
|
738
|
-
React.createElement(
|
|
739
|
-
BrowserRouter,
|
|
740
|
-
{},
|
|
741
|
-
React.createElement(
|
|
742
|
-
Routes,
|
|
743
|
-
{},
|
|
744
|
-
localeMap(({ locale, urlPrefix }) =>
|
|
745
|
-
React.createElement(Route, {
|
|
746
|
-
path: `${urlPrefix}/*`,
|
|
747
|
-
key: locale,
|
|
748
|
-
element: React.createElement(IntlayerProvider, { locale }, children),
|
|
749
|
-
})
|
|
750
|
-
)
|
|
751
|
-
)
|
|
752
|
-
);
|
|
753
|
-
|
|
754
|
-
exports.LocaleRouter = LocaleRouter;
|
|
755
|
-
```
|
|
756
|
-
|
|
757
|
-
> Note: If you use `routing.mode: 'no-prefix' | 'search-params'`, you probably don't need to use the `localeMap` function.
|
|
758
|
-
|
|
759
|
-
Then, you can use the `LocaleRouter` component in your application:
|
|
760
|
-
|
|
761
|
-
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
762
|
-
import { LocaleRouter } from "./components/LocaleRouter";
|
|
763
|
-
import type { FC } from "react";
|
|
413
|
+
```tsx fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
414
|
+
import { LocaleRouter } from "./components/LocaleRouter";
|
|
415
|
+
import type { FC } from "react";
|
|
764
416
|
|
|
765
417
|
// ... Your AppContent component
|
|
766
418
|
|
|
@@ -771,50 +423,11 @@ const App: FC = () => (
|
|
|
771
423
|
);
|
|
772
424
|
```
|
|
773
425
|
|
|
774
|
-
```jsx fileName="src/App.mjx" codeFormat="esm"
|
|
775
|
-
import { LocaleRouter } from "./components/LocaleRouter";
|
|
776
|
-
|
|
777
|
-
// ... Your AppContent component
|
|
778
|
-
|
|
779
|
-
const App = () => (
|
|
780
|
-
<LocaleRouter>
|
|
781
|
-
<AppContent />
|
|
782
|
-
</LocaleRouter>
|
|
783
|
-
);
|
|
784
|
-
```
|
|
785
|
-
|
|
786
|
-
```jsx fileName="src/App.cjx" codeFormat="commonjs"
|
|
787
|
-
const { LocaleRouter } = require("./components/LocaleRouter");
|
|
788
|
-
|
|
789
|
-
// ... Your AppContent component
|
|
790
|
-
|
|
791
|
-
const App = () => (
|
|
792
|
-
<LocaleRouter>
|
|
793
|
-
<AppContent />
|
|
794
|
-
</LocaleRouter>
|
|
795
|
-
);
|
|
796
|
-
```
|
|
797
|
-
|
|
798
426
|
In parallel, you can also use the `intlayerProxy` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
|
|
799
427
|
|
|
800
428
|
> Note that to use the `intlayerProxy` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
|
|
801
429
|
|
|
802
|
-
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
803
|
-
import { defineConfig } from "vite";
|
|
804
|
-
import react from "@vitejs/plugin-react-swc";
|
|
805
|
-
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
806
|
-
|
|
807
|
-
// https://vitejs.dev/config/
|
|
808
|
-
export default defineConfig({
|
|
809
|
-
plugins: [
|
|
810
|
-
intlayerProxy(), // should be placed first
|
|
811
|
-
react(),
|
|
812
|
-
intlayer(),
|
|
813
|
-
],
|
|
814
|
-
});
|
|
815
|
-
```
|
|
816
|
-
|
|
817
|
-
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
430
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
818
431
|
import { defineConfig } from "vite";
|
|
819
432
|
import react from "@vitejs/plugin-react-swc";
|
|
820
433
|
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
@@ -829,26 +442,11 @@ export default defineConfig({
|
|
|
829
442
|
});
|
|
830
443
|
```
|
|
831
444
|
|
|
832
|
-
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
833
|
-
const { defineConfig } = require("vite");
|
|
834
|
-
const react = require("@vitejs/plugin-react-swc");
|
|
835
|
-
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
836
|
-
|
|
837
|
-
// https://vitejs.dev/config/
|
|
838
|
-
module.exports = defineConfig({
|
|
839
|
-
plugins: [
|
|
840
|
-
intlayerProxy(), // should be placed first
|
|
841
|
-
react(),
|
|
842
|
-
intlayer(),
|
|
843
|
-
],
|
|
844
|
-
});
|
|
845
|
-
```
|
|
846
|
-
|
|
847
445
|
### (Optional) Step 8: Change the URL when the locale changes
|
|
848
446
|
|
|
849
447
|
To change the URL when the locale changes, you can use the `onLocaleChange` prop provided by the `useLocale` hook. In parallel, you can use the `useLocation` and `useNavigate` hooks from `react-router-dom` to update the URL path.
|
|
850
448
|
|
|
851
|
-
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
449
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat={["typescript", "esm"]}
|
|
852
450
|
import { useLocation, useNavigate } from "react-router-dom";
|
|
853
451
|
import {
|
|
854
452
|
Locales,
|
|
@@ -913,134 +511,6 @@ const LocaleSwitcher: FC = () => {
|
|
|
913
511
|
};
|
|
914
512
|
```
|
|
915
513
|
|
|
916
|
-
```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
|
|
917
|
-
import { useLocation, useNavigate } from "react-router-dom";
|
|
918
|
-
import {
|
|
919
|
-
Locales,
|
|
920
|
-
getHTMLTextDir,
|
|
921
|
-
getLocaleName,
|
|
922
|
-
getLocalizedUrl,
|
|
923
|
-
} from "intlayer";
|
|
924
|
-
import { useLocale } from "react-intlayer";
|
|
925
|
-
|
|
926
|
-
const LocaleSwitcher = () => {
|
|
927
|
-
const { pathname, search } = useLocation(); // Get the current URL path. Example: /fr/about?foo=bar
|
|
928
|
-
const navigate = useNavigate();
|
|
929
|
-
|
|
930
|
-
const { locale, availableLocales, setLocale } = useLocale({
|
|
931
|
-
onLocaleChange: (locale) => {
|
|
932
|
-
// Construct the URL with the updated locale
|
|
933
|
-
// Example: /es/about?foo=bar
|
|
934
|
-
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
935
|
-
|
|
936
|
-
// Update the URL path
|
|
937
|
-
navigate(pathWithLocale);
|
|
938
|
-
},
|
|
939
|
-
});
|
|
940
|
-
|
|
941
|
-
return (
|
|
942
|
-
<div>
|
|
943
|
-
<button popoverTarget="localePopover">{getLocaleName(locale)}</button>
|
|
944
|
-
<div id="localePopover" popover="auto">
|
|
945
|
-
{availableLocales.map((localeItem) => (
|
|
946
|
-
<a
|
|
947
|
-
href={getLocalizedUrl(location.pathname, localeItem)}
|
|
948
|
-
hrefLang={localeItem}
|
|
949
|
-
aria-current={locale === localeItem ? "page" : undefined}
|
|
950
|
-
onClick={(e) => {
|
|
951
|
-
e.preventDefault();
|
|
952
|
-
setLocale(localeItem);
|
|
953
|
-
}}
|
|
954
|
-
key={localeItem}
|
|
955
|
-
>
|
|
956
|
-
<span>
|
|
957
|
-
{/* Locale - e.g. FR */}
|
|
958
|
-
{localeItem}
|
|
959
|
-
</span>
|
|
960
|
-
<span>
|
|
961
|
-
{/* Language in its own Locale - e.g. Français */}
|
|
962
|
-
{getLocaleName(localeItem, locale)}
|
|
963
|
-
</span>
|
|
964
|
-
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
965
|
-
{/* Language in current Locale - e.g. Francés with current locale set to Locales.SPANISH */}
|
|
966
|
-
{getLocaleName(localeItem)}
|
|
967
|
-
</span>
|
|
968
|
-
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
969
|
-
{/* Language in English - e.g. French */}
|
|
970
|
-
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
971
|
-
</span>
|
|
972
|
-
</a>
|
|
973
|
-
))}
|
|
974
|
-
</div>
|
|
975
|
-
</div>
|
|
976
|
-
);
|
|
977
|
-
};
|
|
978
|
-
```
|
|
979
|
-
|
|
980
|
-
```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
|
|
981
|
-
const { useLocation, useNavigate } = require("react-router-dom");
|
|
982
|
-
const {
|
|
983
|
-
Locales,
|
|
984
|
-
getHTMLTextDir,
|
|
985
|
-
getLocaleName,
|
|
986
|
-
getLocalizedUrl,
|
|
987
|
-
} = require("intlayer");
|
|
988
|
-
const { useLocale } = require("react-intlayer");
|
|
989
|
-
|
|
990
|
-
const LocaleSwitcher = () => {
|
|
991
|
-
const { pathname, search } = useLocation(); // Get the current URL path. Example: /fr/about?foo=bar
|
|
992
|
-
const navigate = useNavigate();
|
|
993
|
-
|
|
994
|
-
const { locale, availableLocales, setLocale } = useLocale({
|
|
995
|
-
onLocaleChange: (locale) => {
|
|
996
|
-
// Construct the URL with the updated locale
|
|
997
|
-
// Example: /es/about?foo=bar
|
|
998
|
-
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
999
|
-
|
|
1000
|
-
// Update the URL path
|
|
1001
|
-
navigate(pathWithLocale);
|
|
1002
|
-
},
|
|
1003
|
-
});
|
|
1004
|
-
|
|
1005
|
-
return (
|
|
1006
|
-
<div>
|
|
1007
|
-
<button popoverTarget="localePopover">{getLocaleName(locale)}</button>
|
|
1008
|
-
<div id="localePopover" popover="auto">
|
|
1009
|
-
{availableLocales.map((localeItem) => (
|
|
1010
|
-
<a
|
|
1011
|
-
href={getLocalizedUrl(location.pathname, localeItem)}
|
|
1012
|
-
hrefLang={localeItem}
|
|
1013
|
-
aria-current={locale === localeItem ? "page" : undefined}
|
|
1014
|
-
onClick={(e) => {
|
|
1015
|
-
e.preventDefault();
|
|
1016
|
-
setLocale(localeItem);
|
|
1017
|
-
}}
|
|
1018
|
-
key={localeItem}
|
|
1019
|
-
>
|
|
1020
|
-
<span>
|
|
1021
|
-
{/* Locale - e.g. FR */}
|
|
1022
|
-
{localeItem}
|
|
1023
|
-
</span>
|
|
1024
|
-
<span>
|
|
1025
|
-
{/* Language in its own Locale - e.g. Français */}
|
|
1026
|
-
{getLocaleName(localeItem, locale)}
|
|
1027
|
-
</span>
|
|
1028
|
-
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1029
|
-
{/* Language in current Locale - e.g. Francés with current locale set to Locales.SPANISH */}
|
|
1030
|
-
{getLocaleName(localeItem)}
|
|
1031
|
-
</span>
|
|
1032
|
-
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1033
|
-
{/* Language in English - e.g. French */}
|
|
1034
|
-
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1035
|
-
</span>
|
|
1036
|
-
</a>
|
|
1037
|
-
))}
|
|
1038
|
-
</div>
|
|
1039
|
-
</div>
|
|
1040
|
-
);
|
|
1041
|
-
};
|
|
1042
|
-
```
|
|
1043
|
-
|
|
1044
514
|
> Documentation references:
|
|
1045
515
|
>
|
|
1046
516
|
> - [`useLocale` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
|
|
@@ -1070,7 +540,7 @@ By updating these attributes dynamically when the locale changes, you guarantee
|
|
|
1070
540
|
|
|
1071
541
|
Create a custom hook to manage the HTML attributes. The hook listens for locale changes and updates the attributes accordingly:
|
|
1072
542
|
|
|
1073
|
-
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
|
|
543
|
+
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat={["typescript", "esm"]}
|
|
1074
544
|
import { useEffect } from "react";
|
|
1075
545
|
import { useLocale } from "react-intlayer";
|
|
1076
546
|
import { getHTMLTextDir } from "intlayer";
|
|
@@ -1095,63 +565,11 @@ export const useI18nHTMLAttributes = () => {
|
|
|
1095
565
|
};
|
|
1096
566
|
```
|
|
1097
567
|
|
|
1098
|
-
```jsx fileName="src/hooks/useI18nHTMLAttributes.msx" codeFormat="esm"
|
|
1099
|
-
import { useEffect } from "react";
|
|
1100
|
-
import { useLocale } from "react-intlayer";
|
|
1101
|
-
import { getHTMLTextDir } from "intlayer";
|
|
1102
|
-
|
|
1103
|
-
/**
|
|
1104
|
-
* Updates the HTML <html> element's `lang` and `dir` attributes based on the current locale.
|
|
1105
|
-
* - `lang`: Informs browsers and search engines of the page's language.
|
|
1106
|
-
* - `dir`: Ensures the correct reading order (e.g., 'ltr' for English, 'rtl' for Arabic).
|
|
1107
|
-
*
|
|
1108
|
-
* This dynamic update is essential for proper text rendering, accessibility, and SEO.
|
|
1109
|
-
*/
|
|
1110
|
-
export const useI18nHTMLAttributes = () => {
|
|
1111
|
-
const { locale } = useLocale();
|
|
1112
|
-
|
|
1113
|
-
useEffect(() => {
|
|
1114
|
-
// Update the language attribute to the current locale.
|
|
1115
|
-
document.documentElement.lang = locale;
|
|
1116
|
-
|
|
1117
|
-
// Set the text direction based on the current locale.
|
|
1118
|
-
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1119
|
-
}, [locale]);
|
|
1120
|
-
};
|
|
1121
|
-
```
|
|
1122
|
-
|
|
1123
|
-
```jsx fileName="src/hooks/useI18nHTMLAttributes.csx" codeFormat="commonjs"
|
|
1124
|
-
const { useEffect } = require("react");
|
|
1125
|
-
const { useLocale } = require("react-intlayer");
|
|
1126
|
-
const { getHTMLTextDir } = require("intlayer");
|
|
1127
|
-
|
|
1128
|
-
/**
|
|
1129
|
-
* Updates the HTML <html> element's `lang` and `dir` attributes based on the current locale.
|
|
1130
|
-
* - `lang`: Informs browsers and search engines of the page's language.
|
|
1131
|
-
* - `dir`: Ensures the correct reading order (e.g., 'ltr' for English, 'rtl' for Arabic).
|
|
1132
|
-
*
|
|
1133
|
-
* This dynamic update is essential for proper text rendering, accessibility, and SEO.
|
|
1134
|
-
*/
|
|
1135
|
-
const useI18nHTMLAttributes = () => {
|
|
1136
|
-
const { locale } = useLocale();
|
|
1137
|
-
|
|
1138
|
-
useEffect(() => {
|
|
1139
|
-
// Update the language attribute to the current locale.
|
|
1140
|
-
document.documentElement.lang = locale;
|
|
1141
|
-
|
|
1142
|
-
// Set the text direction based on the current locale.
|
|
1143
|
-
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1144
|
-
}, [locale]);
|
|
1145
|
-
};
|
|
1146
|
-
|
|
1147
|
-
module.exports = { useI18nHTMLAttributes };
|
|
1148
|
-
```
|
|
1149
|
-
|
|
1150
568
|
#### Using the Hook in Your Application
|
|
1151
569
|
|
|
1152
570
|
Integrate the hook into your main component so that the HTML attributes update whenever the locale changes:
|
|
1153
571
|
|
|
1154
|
-
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
572
|
+
```tsx fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
1155
573
|
import type { FC } from "react";
|
|
1156
574
|
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1157
575
|
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
@@ -1173,49 +591,6 @@ const App: FC = () => (
|
|
|
1173
591
|
export default App;
|
|
1174
592
|
```
|
|
1175
593
|
|
|
1176
|
-
```jsx fileName="src/App.msx" codeFormat="esm"
|
|
1177
|
-
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1178
|
-
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
1179
|
-
import "./App.css";
|
|
1180
|
-
|
|
1181
|
-
const AppContent = () => {
|
|
1182
|
-
// Apply the hook to update the <html> tag's lang and dir attributes based on the locale.
|
|
1183
|
-
useI18nHTMLAttributes();
|
|
1184
|
-
|
|
1185
|
-
// ... Rest of your component
|
|
1186
|
-
};
|
|
1187
|
-
|
|
1188
|
-
const App = () => (
|
|
1189
|
-
<IntlayerProvider>
|
|
1190
|
-
<AppContent />
|
|
1191
|
-
</IntlayerProvider>
|
|
1192
|
-
);
|
|
1193
|
-
|
|
1194
|
-
export default App;
|
|
1195
|
-
```
|
|
1196
|
-
|
|
1197
|
-
```jsx fileName="src/App.csx" codeFormat="commonjs"
|
|
1198
|
-
const { FC } = require("react");
|
|
1199
|
-
const { IntlayerProvider, useIntlayer } = require("react-intlayer");
|
|
1200
|
-
const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
|
|
1201
|
-
require("./App.css");
|
|
1202
|
-
|
|
1203
|
-
const AppContent = () => {
|
|
1204
|
-
// Apply the hook to update the <html> tag's lang and dir attributes based on the locale.
|
|
1205
|
-
useI18nHTMLAttributes();
|
|
1206
|
-
|
|
1207
|
-
// ... Rest of your component
|
|
1208
|
-
};
|
|
1209
|
-
|
|
1210
|
-
const App = () => (
|
|
1211
|
-
<IntlayerProvider>
|
|
1212
|
-
<AppContent />
|
|
1213
|
-
</IntlayerProvider>
|
|
1214
|
-
);
|
|
1215
|
-
|
|
1216
|
-
module.exports = App;
|
|
1217
|
-
```
|
|
1218
|
-
|
|
1219
594
|
By applying these changes, your application will:
|
|
1220
595
|
|
|
1221
596
|
- Ensure the **language** (`lang`) attribute correctly reflects the current locale, which is important for SEO and browser behavior.
|
|
@@ -1234,7 +609,7 @@ This behavior is useful for several reasons:
|
|
|
1234
609
|
|
|
1235
610
|
Below is the implementation of a localized `Link` component in TypeScript:
|
|
1236
611
|
|
|
1237
|
-
```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
|
|
612
|
+
```tsx fileName="src/components/Link.tsx" codeFormat={["typescript", "esm"]}
|
|
1238
613
|
import { getLocalizedUrl } from "intlayer";
|
|
1239
614
|
import {
|
|
1240
615
|
forwardRef,
|
|
@@ -1280,79 +655,6 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
1280
655
|
Link.displayName = "Link";
|
|
1281
656
|
```
|
|
1282
657
|
|
|
1283
|
-
```jsx fileName="src/components/Link.mjx" codeFormat="esm"
|
|
1284
|
-
import { getLocalizedUrl } from "intlayer";
|
|
1285
|
-
import { useLocale } from "react-intlayer";
|
|
1286
|
-
import { forwardRef } from "react";
|
|
1287
|
-
|
|
1288
|
-
/**
|
|
1289
|
-
* Utility function to check whether a given URL is external.
|
|
1290
|
-
* If the URL starts with http:// or https://, it's considered external.
|
|
1291
|
-
*/
|
|
1292
|
-
export const checkIsExternalLink = (href?: string): boolean =>
|
|
1293
|
-
/^https?:\/\//.test(href ?? "");
|
|
1294
|
-
|
|
1295
|
-
/**
|
|
1296
|
-
* A custom Link component that adapts the href attribute based on the current locale.
|
|
1297
|
-
* For internal links, it uses `getLocalizedUrl` to prefix the URL with the locale (e.g., /fr/about).
|
|
1298
|
-
* This ensures that navigation stays within the same locale context.
|
|
1299
|
-
*/
|
|
1300
|
-
export const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1301
|
-
const { locale } = useLocale();
|
|
1302
|
-
const isExternalLink = checkIsExternalLink(href);
|
|
1303
|
-
|
|
1304
|
-
// If the link is internal and a valid href is provided, get the localized URL.
|
|
1305
|
-
const hrefI18n =
|
|
1306
|
-
href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
|
|
1307
|
-
|
|
1308
|
-
return (
|
|
1309
|
-
<a href={hrefI18n} ref={ref} {...props}>
|
|
1310
|
-
{children}
|
|
1311
|
-
</a>
|
|
1312
|
-
);
|
|
1313
|
-
});
|
|
1314
|
-
|
|
1315
|
-
Link.displayName = "Link";
|
|
1316
|
-
```
|
|
1317
|
-
|
|
1318
|
-
```jsx fileName="src/components/Link.csx" codeFormat="commonjs"
|
|
1319
|
-
const { getLocalizedUrl } = require("intlayer");
|
|
1320
|
-
const { useLocale } = require("react-intlayer");
|
|
1321
|
-
const { forwardRef } = require("react");
|
|
1322
|
-
|
|
1323
|
-
/**
|
|
1324
|
-
* Utility function to check whether a given URL is external.
|
|
1325
|
-
* If the URL starts with http:// or https://, it's considered external.
|
|
1326
|
-
*/
|
|
1327
|
-
const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
|
|
1328
|
-
|
|
1329
|
-
/**
|
|
1330
|
-
* A custom Link component that adapts the href attribute based on the current locale.
|
|
1331
|
-
* For internal links, it uses `getLocalizedUrl` to prefix the URL with the locale (e.g., /fr/about).
|
|
1332
|
-
* This ensures that navigation stays within the same locale context.
|
|
1333
|
-
*/
|
|
1334
|
-
const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1335
|
-
const { locale } = useLocale();
|
|
1336
|
-
const isExternalLink = checkIsExternalLink(href);
|
|
1337
|
-
|
|
1338
|
-
// If the link is internal and a valid href is provided, get the localized URL.
|
|
1339
|
-
const localizedHref = isExternalLink ? href : getLocalizedUrl(href, locale);
|
|
1340
|
-
|
|
1341
|
-
return (
|
|
1342
|
-
<a
|
|
1343
|
-
href={localizedHref}
|
|
1344
|
-
ref={ref}
|
|
1345
|
-
{...props}
|
|
1346
|
-
aria-current={isExternalLink ? "external" : undefined}
|
|
1347
|
-
>
|
|
1348
|
-
{children}
|
|
1349
|
-
</a>
|
|
1350
|
-
);
|
|
1351
|
-
});
|
|
1352
|
-
|
|
1353
|
-
Link.displayName = "Link";
|
|
1354
|
-
```
|
|
1355
|
-
|
|
1356
658
|
#### How It Works
|
|
1357
659
|
|
|
1358
660
|
- **Detecting External Links**:
|
|
@@ -1377,7 +679,7 @@ To ease this process, Intlayer propose a [compiler](https://github.com/aymericzi
|
|
|
1377
679
|
|
|
1378
680
|
To set it up, you can add a `compiler` section in your `intlayer.config.ts` file:
|
|
1379
681
|
|
|
1380
|
-
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
682
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
1381
683
|
import { type IntlayerConfig } from "intlayer";
|
|
1382
684
|
|
|
1383
685
|
const config: IntlayerConfig = {
|
|
@@ -1412,74 +714,6 @@ const config: IntlayerConfig = {
|
|
|
1412
714
|
export default config;
|
|
1413
715
|
```
|
|
1414
716
|
|
|
1415
|
-
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1416
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
1417
|
-
const config = {
|
|
1418
|
-
// ... Rest of your config
|
|
1419
|
-
compiler: {
|
|
1420
|
-
/**
|
|
1421
|
-
* Indicates if the compiler should be enabled.
|
|
1422
|
-
*/
|
|
1423
|
-
enabled: true,
|
|
1424
|
-
|
|
1425
|
-
/**
|
|
1426
|
-
* Defines the output files path
|
|
1427
|
-
*/
|
|
1428
|
-
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1429
|
-
|
|
1430
|
-
/**
|
|
1431
|
-
* Indicates if the components should be saved after being transformed.
|
|
1432
|
-
*
|
|
1433
|
-
* - If `true`, the compiler will rewrite the component file in the disk. So the transformation will be permanent, and the compiler will skip the transformation for the next process. That way, the compiler can transform the app, and then it can be removed.
|
|
1434
|
-
*
|
|
1435
|
-
* - If `false`, the compiler will inject the `useIntlayer()` function call into the code in the build output only, and keep the base codebase intact. The transformation will be done only in memory.
|
|
1436
|
-
*/
|
|
1437
|
-
saveComponents: false,
|
|
1438
|
-
|
|
1439
|
-
/**
|
|
1440
|
-
* Dictionary key prefix
|
|
1441
|
-
*/
|
|
1442
|
-
dictionaryKeyPrefix: "",
|
|
1443
|
-
},
|
|
1444
|
-
};
|
|
1445
|
-
|
|
1446
|
-
export default config;
|
|
1447
|
-
```
|
|
1448
|
-
|
|
1449
|
-
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1450
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
1451
|
-
const config = {
|
|
1452
|
-
// ... Rest of your config
|
|
1453
|
-
compiler: {
|
|
1454
|
-
/**
|
|
1455
|
-
* Indicates if the compiler should be enabled.
|
|
1456
|
-
*/
|
|
1457
|
-
enabled: true,
|
|
1458
|
-
|
|
1459
|
-
/**
|
|
1460
|
-
* Defines the output files path
|
|
1461
|
-
*/
|
|
1462
|
-
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1463
|
-
|
|
1464
|
-
/**
|
|
1465
|
-
* Indicates if the components should be saved after being transformed.
|
|
1466
|
-
*
|
|
1467
|
-
* - If `true`, the compiler will rewrite the component file in the disk. So the transformation will be permanent, and the compiler will skip the transformation for the next process. That way, the compiler can transform the app, and then it can be removed.
|
|
1468
|
-
*
|
|
1469
|
-
* - If `false`, the compiler will inject the `useIntlayer()` function call into the code in the build output only, and keep the base codebase intact. The transformation will be done only in memory.
|
|
1470
|
-
*/
|
|
1471
|
-
saveComponents: false,
|
|
1472
|
-
|
|
1473
|
-
/**
|
|
1474
|
-
* Dictionary key prefix
|
|
1475
|
-
*/
|
|
1476
|
-
dictionaryKeyPrefix: "",
|
|
1477
|
-
},
|
|
1478
|
-
};
|
|
1479
|
-
|
|
1480
|
-
module.exports = config;
|
|
1481
|
-
```
|
|
1482
|
-
|
|
1483
717
|
<Tabs>
|
|
1484
718
|
<Tab value='Extract command'>
|
|
1485
719
|
|
|
@@ -1537,6 +771,80 @@ bun run build # Or bun run dev
|
|
|
1537
771
|
</Tab>
|
|
1538
772
|
</Tabs>
|
|
1539
773
|
|
|
774
|
+
### (Optional) Sitemap and robots.txt (build-time)
|
|
775
|
+
|
|
776
|
+
Intlayer includes formatters such as `generateSitemap` and `getMultilingualUrls` that produce crawler-ready multilingual `sitemap.xml` and `robots.txt` output you can write into your project’s `public/` folder. In practice you run a small Node script **before** Vite (for example `predev` / `prebuild` npm hooks) so those files exist when you build or serve the app.
|
|
777
|
+
|
|
778
|
+
#### Sitemap
|
|
779
|
+
|
|
780
|
+
Intlayer’s sitemap generator respects your locale setup and includes the usual metadata for crawlers.
|
|
781
|
+
|
|
782
|
+
> The generated sitemap supports the `xhtml:link` namespace (hreflang XML extensions). Unlike basic generators that only emit flat URLs, Intlayer wires bidirectional links between every localized variant of each page (for example `/about`, `/fr/about`, or `/about?lang=fr`, depending on your routing mode), which helps search engines relate localized URLs.
|
|
783
|
+
|
|
784
|
+
#### Robots.txt
|
|
785
|
+
|
|
786
|
+
Use `getMultilingualUrls` so `Disallow` entries cover every localized spelling of sensitive paths.
|
|
787
|
+
|
|
788
|
+
#### 1. Add `generate-seo.mjs` at the project root
|
|
789
|
+
|
|
790
|
+
```javascript fileName="generate-seo.mjs"
|
|
791
|
+
import fs from "fs";
|
|
792
|
+
import path from "path";
|
|
793
|
+
import { fileURLToPath } from "url";
|
|
794
|
+
import { generateSitemap, getMultilingualUrls } from "intlayer";
|
|
795
|
+
|
|
796
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
797
|
+
|
|
798
|
+
const SITE_URL = (process.env.SITE_URL || "http://localhost:5173").replace(
|
|
799
|
+
/\/$/,
|
|
800
|
+
""
|
|
801
|
+
);
|
|
802
|
+
|
|
803
|
+
const pathList = [
|
|
804
|
+
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
805
|
+
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
806
|
+
];
|
|
807
|
+
|
|
808
|
+
const sitemapXml = generateSitemap(pathList, { siteUrl: SITE_URL });
|
|
809
|
+
fs.writeFileSync(path.join(__dirname, "public", "sitemap.xml"), sitemapXml);
|
|
810
|
+
|
|
811
|
+
const getAllMultilingualUrls = (urls) =>
|
|
812
|
+
urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
|
|
813
|
+
|
|
814
|
+
const disallowedPaths = getAllMultilingualUrls(["/admin", "/private"]);
|
|
815
|
+
|
|
816
|
+
const robotsTxt = [
|
|
817
|
+
"User-agent: *",
|
|
818
|
+
"Allow: /",
|
|
819
|
+
...disallowedPaths.map((path) => `Disallow: ${path}`),
|
|
820
|
+
"",
|
|
821
|
+
`Sitemap: ${SITE_URL}/sitemap.xml`,
|
|
822
|
+
].join("\n");
|
|
823
|
+
|
|
824
|
+
fs.writeFileSync(path.join(__dirname, "public", "robots.txt"), robotsTxt);
|
|
825
|
+
|
|
826
|
+
console.log("SEO files generated successfully.");
|
|
827
|
+
```
|
|
828
|
+
|
|
829
|
+
`intlayer` must be installed so the script can import it. Set `SITE_URL` in the environment for production (for example in CI).
|
|
830
|
+
|
|
831
|
+
> Prefer `generate-seo.mjs` for Node ESM. If you use `generate-seo.js` instead, ensure `"type": "module"` is set in `package.json`, or run Node with ESM enabled.
|
|
832
|
+
|
|
833
|
+
#### 2. Run the script before Vite
|
|
834
|
+
|
|
835
|
+
```json fileName="package.json"
|
|
836
|
+
{
|
|
837
|
+
"scripts": {
|
|
838
|
+
"dev": "vite",
|
|
839
|
+
"prebuild": "node generate-seo.mjs",
|
|
840
|
+
"build": "vite build",
|
|
841
|
+
"preview": "vite preview"
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
Adjust if you use pnpm or yarn. You can also invoke the same script from CI or another step if that fits your workflow.
|
|
847
|
+
|
|
1540
848
|
### Configure TypeScript
|
|
1541
849
|
|
|
1542
850
|
Intlayer use module augmentation to get benefits of TypeScript and make your codebase stronger.
|