@intlayer/docs 8.7.7 → 8.7.8
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 localised 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 optimise 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
|
|
|
@@ -274,142 +226,6 @@ const appContent = {
|
|
|
274
226
|
export default appContent;
|
|
275
227
|
```
|
|
276
228
|
|
|
277
|
-
```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
|
|
278
|
-
import { t } from "intlayer";
|
|
279
|
-
|
|
280
|
-
/** @type {import('intlayer').Dictionary} */
|
|
281
|
-
const appContent = {
|
|
282
|
-
key: "app",
|
|
283
|
-
content: {
|
|
284
|
-
viteLogo: t({
|
|
285
|
-
"en-GB": "Vite logo",
|
|
286
|
-
en: "Vite logo",
|
|
287
|
-
fr: "Logo Vite",
|
|
288
|
-
es: "Logo Vite",
|
|
289
|
-
}),
|
|
290
|
-
reactLogo: t({
|
|
291
|
-
"en-GB": "React logo",
|
|
292
|
-
en: "React logo",
|
|
293
|
-
fr: "Logo React",
|
|
294
|
-
es: "Logo React",
|
|
295
|
-
}),
|
|
296
|
-
|
|
297
|
-
title: "Vite + React",
|
|
298
|
-
|
|
299
|
-
count: t({
|
|
300
|
-
"en-GB": "count is ",
|
|
301
|
-
en: "count is ",
|
|
302
|
-
fr: "le compte est ",
|
|
303
|
-
es: "el recuento es ",
|
|
304
|
-
}),
|
|
305
|
-
|
|
306
|
-
edit:
|
|
307
|
-
t <
|
|
308
|
-
ReactNode >
|
|
309
|
-
{
|
|
310
|
-
// Remember to import React if you use a React node in your content
|
|
311
|
-
"en-GB": (
|
|
312
|
-
<>
|
|
313
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
314
|
-
</>
|
|
315
|
-
),
|
|
316
|
-
en: (
|
|
317
|
-
<>
|
|
318
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
319
|
-
</>
|
|
320
|
-
),
|
|
321
|
-
fr: (
|
|
322
|
-
<>
|
|
323
|
-
Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
324
|
-
</>
|
|
325
|
-
),
|
|
326
|
-
es: (
|
|
327
|
-
<>
|
|
328
|
-
Edita <code>src/App.tsx</code> y guarda para probar HMR
|
|
329
|
-
</>
|
|
330
|
-
),
|
|
331
|
-
},
|
|
332
|
-
|
|
333
|
-
readTheDocs: t({
|
|
334
|
-
"en-GB": "Click on the Vite and React logos to learn more",
|
|
335
|
-
en: "Click on the Vite and React logos to learn more",
|
|
336
|
-
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
337
|
-
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
338
|
-
}),
|
|
339
|
-
},
|
|
340
|
-
};
|
|
341
|
-
|
|
342
|
-
export default appContent;
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
|
|
346
|
-
const { t } = require("intlayer");
|
|
347
|
-
|
|
348
|
-
/** @type {import('intlayer').Dictionary} */
|
|
349
|
-
const appContent = {
|
|
350
|
-
key: "app",
|
|
351
|
-
content: {
|
|
352
|
-
viteLogo: t({
|
|
353
|
-
"en-GB": "Vite logo",
|
|
354
|
-
en: "Vite logo",
|
|
355
|
-
fr: "Logo Vite",
|
|
356
|
-
es: "Logo Vite",
|
|
357
|
-
}),
|
|
358
|
-
reactLogo: t({
|
|
359
|
-
"en-GB": "React logo",
|
|
360
|
-
en: "React logo",
|
|
361
|
-
fr: "Logo React",
|
|
362
|
-
es: "Logo React",
|
|
363
|
-
}),
|
|
364
|
-
|
|
365
|
-
title: "Vite + React",
|
|
366
|
-
|
|
367
|
-
count: t({
|
|
368
|
-
"en-GB": "count is ",
|
|
369
|
-
en: "count is ",
|
|
370
|
-
fr: "le compte est ",
|
|
371
|
-
es: "el recuento es ",
|
|
372
|
-
}),
|
|
373
|
-
|
|
374
|
-
edit:
|
|
375
|
-
t <
|
|
376
|
-
ReactNode >
|
|
377
|
-
{
|
|
378
|
-
// Remember to import React if you use a React node in your content
|
|
379
|
-
"en-GB": (
|
|
380
|
-
<>
|
|
381
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
382
|
-
</>
|
|
383
|
-
),
|
|
384
|
-
en: (
|
|
385
|
-
<>
|
|
386
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
387
|
-
</>
|
|
388
|
-
),
|
|
389
|
-
fr: (
|
|
390
|
-
<>
|
|
391
|
-
Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
392
|
-
</>
|
|
393
|
-
),
|
|
394
|
-
es: (
|
|
395
|
-
<>
|
|
396
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
397
|
-
</>
|
|
398
|
-
),
|
|
399
|
-
},
|
|
400
|
-
|
|
401
|
-
readTheDocs: t({
|
|
402
|
-
"en-GB": "Click on the Vite and React logos to learn more",
|
|
403
|
-
en: "Click on the Vite and React logos to learn more",
|
|
404
|
-
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
405
|
-
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
406
|
-
}),
|
|
407
|
-
},
|
|
408
|
-
};
|
|
409
|
-
|
|
410
|
-
module.exports = appContent;
|
|
411
|
-
```
|
|
412
|
-
|
|
413
229
|
```json fileName="src/app.content.json" contentDeclarationFormat="json"
|
|
414
230
|
{
|
|
415
231
|
"$schema": "https://intlayer.org/schema.json",
|
|
@@ -483,7 +299,7 @@ module.exports = appContent;
|
|
|
483
299
|
|
|
484
300
|
Access your content dictionaries throughout your application:
|
|
485
301
|
|
|
486
|
-
```tsx {5,9} fileName="src/App.tsx" codeFormat="typescript"
|
|
302
|
+
```tsx {5,9} fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
487
303
|
import { useState, type FC } from "react";
|
|
488
304
|
import reactLogo from "./assets/react.svg";
|
|
489
305
|
import viteLogo from "/vite.svg";
|
|
@@ -530,100 +346,6 @@ const App: FC = () => (
|
|
|
530
346
|
export default App;
|
|
531
347
|
```
|
|
532
348
|
|
|
533
|
-
```tsx {5,9} fileName="src/App.msx" codeFormat="esm"
|
|
534
|
-
import { useState } from "react";
|
|
535
|
-
import reactLogo from "./assets/react.svg";
|
|
536
|
-
import viteLogo from "/vite.svg";
|
|
537
|
-
import "./App.css";
|
|
538
|
-
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
539
|
-
|
|
540
|
-
const AppContent = () => {
|
|
541
|
-
const [count, setCount] = useState(0);
|
|
542
|
-
const content = useIntlayer("app");
|
|
543
|
-
|
|
544
|
-
return (
|
|
545
|
-
<>
|
|
546
|
-
<div>
|
|
547
|
-
<a href="https://vitejs.dev" target="_blank">
|
|
548
|
-
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
549
|
-
</a>
|
|
550
|
-
<a href="https://react.dev" target="_blank">
|
|
551
|
-
<img
|
|
552
|
-
src={reactLogo}
|
|
553
|
-
className="logo react"
|
|
554
|
-
alt={content.reactLogo.value}
|
|
555
|
-
/>
|
|
556
|
-
</a>
|
|
557
|
-
</div>
|
|
558
|
-
<h1>{content.title}</h1>
|
|
559
|
-
<div className="card">
|
|
560
|
-
<button onClick={() => setCount((count) => count + 1)}>
|
|
561
|
-
{content.count}
|
|
562
|
-
{count}
|
|
563
|
-
</button>
|
|
564
|
-
<p>{content.edit}</p>
|
|
565
|
-
</div>
|
|
566
|
-
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
567
|
-
</>
|
|
568
|
-
);
|
|
569
|
-
};
|
|
570
|
-
|
|
571
|
-
const App = () => (
|
|
572
|
-
<IntlayerProvider>
|
|
573
|
-
<AppContent />
|
|
574
|
-
</IntlayerProvider>
|
|
575
|
-
);
|
|
576
|
-
|
|
577
|
-
export default App;
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
```tsx {5,9} fileName="src/App.csx" codeFormat="commonjs"
|
|
581
|
-
const { useState } = require("react");
|
|
582
|
-
const reactLogo = require("./assets/react.svg");
|
|
583
|
-
const viteLogo = require("/vite.svg");
|
|
584
|
-
require("./App.css");
|
|
585
|
-
const { IntlayerProvider, useIntlayer } = require("react-intlayer");
|
|
586
|
-
|
|
587
|
-
const AppContent = () => {
|
|
588
|
-
const [count, setCount] = useState(0);
|
|
589
|
-
const content = useIntlayer("app");
|
|
590
|
-
|
|
591
|
-
return (
|
|
592
|
-
<>
|
|
593
|
-
<div>
|
|
594
|
-
<a href="https://vitejs.dev" target="_blank">
|
|
595
|
-
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
596
|
-
</a>
|
|
597
|
-
<a href="https://react.dev" target="_blank">
|
|
598
|
-
<img
|
|
599
|
-
src={reactLogo}
|
|
600
|
-
className="logo react"
|
|
601
|
-
alt={content.reactLogo.value}
|
|
602
|
-
/>
|
|
603
|
-
</a>
|
|
604
|
-
</div>
|
|
605
|
-
<h1>{content.title}</h1>
|
|
606
|
-
<div className="card">
|
|
607
|
-
<button onClick={() => setCount((count) => count + 1)}>
|
|
608
|
-
{content.count}
|
|
609
|
-
{count}
|
|
610
|
-
</button>
|
|
611
|
-
<p>{content.edit}</p>
|
|
612
|
-
</div>
|
|
613
|
-
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
614
|
-
</>
|
|
615
|
-
);
|
|
616
|
-
};
|
|
617
|
-
|
|
618
|
-
const App = () => (
|
|
619
|
-
<IntlayerProvider>
|
|
620
|
-
<AppContent />
|
|
621
|
-
</IntlayerProvider>
|
|
622
|
-
);
|
|
623
|
-
|
|
624
|
-
module.exports = App;
|
|
625
|
-
```
|
|
626
|
-
|
|
627
349
|
> 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:
|
|
628
350
|
|
|
629
351
|
> ```jsx
|
|
@@ -636,7 +358,7 @@ module.exports = App;
|
|
|
636
358
|
|
|
637
359
|
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.
|
|
638
360
|
|
|
639
|
-
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
361
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat={["typescript", "esm"]}
|
|
640
362
|
import type { FC } from "react";
|
|
641
363
|
import { Locales } from "intlayer";
|
|
642
364
|
import { useLocale } from "react-intlayer";
|
|
@@ -652,36 +374,6 @@ const LocaleSwitcher: FC = () => {
|
|
|
652
374
|
};
|
|
653
375
|
```
|
|
654
376
|
|
|
655
|
-
```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
|
|
656
|
-
import { Locales } from "intlayer";
|
|
657
|
-
import { useLocale } from "react-intlayer";
|
|
658
|
-
|
|
659
|
-
const LocaleSwitcher = () => {
|
|
660
|
-
const { setLocale } = useLocale();
|
|
661
|
-
|
|
662
|
-
return (
|
|
663
|
-
<button onClick={() => setLocale(Locales.English)}>
|
|
664
|
-
Change Language to English
|
|
665
|
-
</button>
|
|
666
|
-
);
|
|
667
|
-
};
|
|
668
|
-
```
|
|
669
|
-
|
|
670
|
-
```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
|
|
671
|
-
const { Locales } = require("intlayer");
|
|
672
|
-
const { useLocale } = require("react-intlayer");
|
|
673
|
-
|
|
674
|
-
const LocaleSwitcher = () => {
|
|
675
|
-
const { setLocale } = useLocale();
|
|
676
|
-
|
|
677
|
-
return (
|
|
678
|
-
<button onClick={() => setLocale(Locales.English)}>
|
|
679
|
-
Change Language to English
|
|
680
|
-
</button>
|
|
681
|
-
);
|
|
682
|
-
};
|
|
683
|
-
```
|
|
684
|
-
|
|
685
377
|
> To learn more about the `useLocale` hook, refer to the [documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/packages/react-intlayer/useLocale.md).
|
|
686
378
|
|
|
687
379
|
### (Optional) Step 7: Add localised Routing to your application
|
|
@@ -699,7 +391,7 @@ Example:
|
|
|
699
391
|
|
|
700
392
|
To add localised 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):
|
|
701
393
|
|
|
702
|
-
```tsx fileName="src/components/LocaleRouter.tsx"
|
|
394
|
+
```tsx fileName="src/components/LocaleRouter.tsx" codeFormat={["typescript", "esm"]}
|
|
703
395
|
// Importing necessary dependencies and functions
|
|
704
396
|
import { type Locales, configuration, getPathWithoutLocale } from "intlayer"; // Utility functions and types from 'intlayer'
|
|
705
397
|
import type { FC, PropsWithChildren } from "react"; // React types for functional components and props
|
|
@@ -813,234 +505,11 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
|
813
505
|
);
|
|
814
506
|
```
|
|
815
507
|
|
|
816
|
-
|
|
817
|
-
// Importing necessary dependencies and functions
|
|
818
|
-
import { configuration, getPathWithoutLocale } from "intlayer"; // Utility functions and types from 'intlayer'
|
|
819
|
-
// Utility functions and types from 'intlayer'
|
|
820
|
-
import { IntlayerProvider } from "react-intlayer"; // Provider for internationalisation context
|
|
821
|
-
import {
|
|
822
|
-
BrowserRouter,
|
|
823
|
-
Routes,
|
|
824
|
-
Route,
|
|
825
|
-
Navigate,
|
|
826
|
-
useLocation,
|
|
827
|
-
} from "react-router-dom"; // Router components for managing navigation
|
|
508
|
+
> Note: If you use `routing.mode: 'no-prefix' | 'search-params'`, you probably don't need to use the `localeMap` function.
|
|
828
509
|
|
|
829
|
-
|
|
830
|
-
const { internationalization, middleware } = configuration;
|
|
831
|
-
const { locales, defaultLocale } = internationalization;
|
|
510
|
+
Then, you can use the `LocaleRouter` component in your application:
|
|
832
511
|
|
|
833
|
-
|
|
834
|
-
* A component that handles localisation and wraps children with the appropriate locale context.
|
|
835
|
-
* It manages URL-based locale detection and validation.
|
|
836
|
-
*/
|
|
837
|
-
const AppLocalized = ({ children, locale }) => {
|
|
838
|
-
const { pathname, search } = useLocation(); // Get the current URL path
|
|
839
|
-
|
|
840
|
-
// Determine the current locale, falling back to the default if not provided
|
|
841
|
-
const currentLocale = locale ?? defaultLocale;
|
|
842
|
-
|
|
843
|
-
// Remove the locale prefix from the path to construct a base path
|
|
844
|
-
const pathWithoutLocale = getPathWithoutLocale(
|
|
845
|
-
pathname // Current URL path
|
|
846
|
-
);
|
|
847
|
-
|
|
848
|
-
/**
|
|
849
|
-
* If middleware.prefixDefault is true, the default locale should always be prefixed.
|
|
850
|
-
*/
|
|
851
|
-
if (middleware.prefixDefault) {
|
|
852
|
-
// Validate the locale
|
|
853
|
-
if (!locale || !locales.includes(locale)) {
|
|
854
|
-
// Redirect to the default locale with the updated path
|
|
855
|
-
return (
|
|
856
|
-
<Navigate
|
|
857
|
-
to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
|
|
858
|
-
replace // Replace the current history entry with the new one
|
|
859
|
-
/>
|
|
860
|
-
);
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
// Wrap children with the IntlayerProvider and set the current locale
|
|
864
|
-
return (
|
|
865
|
-
<IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
|
|
866
|
-
);
|
|
867
|
-
} else {
|
|
868
|
-
/**
|
|
869
|
-
* When middleware.prefixDefault is false, the default locale is not prefixed.
|
|
870
|
-
* Ensure that the current locale is valid and not the default locale.
|
|
871
|
-
*/
|
|
872
|
-
if (
|
|
873
|
-
currentLocale.toString() !== defaultLocale.toString() &&
|
|
874
|
-
!locales
|
|
875
|
-
.filter(
|
|
876
|
-
(locale) => locale.toString() !== defaultLocale.toString() // Exclude the default locale
|
|
877
|
-
)
|
|
878
|
-
.includes(currentLocale) // Check if the current locale is in the list of valid locales
|
|
879
|
-
) {
|
|
880
|
-
// Redirect to the path without locale prefix
|
|
881
|
-
return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
// Wrap children with the IntlayerProvider and set the current locale
|
|
885
|
-
return (
|
|
886
|
-
<IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
|
|
887
|
-
);
|
|
888
|
-
}
|
|
889
|
-
};
|
|
890
|
-
|
|
891
|
-
/**
|
|
892
|
-
* A router component that sets up locale-specific routes.
|
|
893
|
-
* It uses React Router to manage navigation and render localised components.
|
|
894
|
-
*/
|
|
895
|
-
export const LocaleRouter = ({ children }) => (
|
|
896
|
-
<BrowserRouter>
|
|
897
|
-
<Routes>
|
|
898
|
-
{locales
|
|
899
|
-
.filter(
|
|
900
|
-
(locale) => middleware.prefixDefault || locale !== defaultLocale
|
|
901
|
-
)
|
|
902
|
-
.map((locale) => (
|
|
903
|
-
<Route
|
|
904
|
-
// Route pattern to capture the locale (e.g., /en/, /fr/) and match all subsequent paths
|
|
905
|
-
path={`/${locale}/*`}
|
|
906
|
-
key={locale}
|
|
907
|
-
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Wraps children with locale management
|
|
908
|
-
/>
|
|
909
|
-
))}
|
|
910
|
-
|
|
911
|
-
{
|
|
912
|
-
// If prefixing the default locale is disabled, render the children directly at the root path
|
|
913
|
-
!middleware.prefixDefault && (
|
|
914
|
-
<Route
|
|
915
|
-
path="*"
|
|
916
|
-
element={
|
|
917
|
-
<AppLocalized locale={defaultLocale}>{children}</AppLocalized>
|
|
918
|
-
} // Wraps children with locale management
|
|
919
|
-
/>
|
|
920
|
-
)
|
|
921
|
-
}
|
|
922
|
-
</Routes>
|
|
923
|
-
</BrowserRouter>
|
|
924
|
-
);
|
|
925
|
-
```
|
|
926
|
-
|
|
927
|
-
```jsx fileName="src/components/LocaleRouter.cjx" codeFormat="commonjs"
|
|
928
|
-
// Importing necessary dependencies and functions
|
|
929
|
-
const { configuration, getPathWithoutLocale } = require("intlayer"); // Utility functions and types from 'intlayer'
|
|
930
|
-
const { IntlayerProvider, useLocale } = require("react-intlayer"); // Provider for internationalisation context
|
|
931
|
-
const {
|
|
932
|
-
BrowserRouter,
|
|
933
|
-
Routes,
|
|
934
|
-
Route,
|
|
935
|
-
Navigate,
|
|
936
|
-
useLocation,
|
|
937
|
-
} = require("react-router-dom"); // Router components for managing navigation
|
|
938
|
-
|
|
939
|
-
// Destructuring configuration from Intlayer
|
|
940
|
-
const { internationalization, middleware } = configuration;
|
|
941
|
-
const { locales, defaultLocale } = internationalization;
|
|
942
|
-
|
|
943
|
-
/**
|
|
944
|
-
* A component that handles localisation and wraps children with the appropriate locale context.
|
|
945
|
-
* It manages URL-based locale detection and validation.
|
|
946
|
-
*/
|
|
947
|
-
const AppLocalized = ({ children, locale }) => {
|
|
948
|
-
const { pathname, search } = useLocation(); // Get the current URL path
|
|
949
|
-
|
|
950
|
-
// Determine the current locale, falling back to the default if not provided
|
|
951
|
-
const currentLocale = locale ?? defaultLocale;
|
|
952
|
-
|
|
953
|
-
// Remove the locale prefix from the path to construct a base path
|
|
954
|
-
const pathWithoutLocale = getPathWithoutLocale(
|
|
955
|
-
pathname // Current URL path
|
|
956
|
-
);
|
|
957
|
-
|
|
958
|
-
/**
|
|
959
|
-
* If middleware.prefixDefault is true, the default locale should always be prefixed.
|
|
960
|
-
*/
|
|
961
|
-
if (middleware.prefixDefault) {
|
|
962
|
-
// Validate the locale
|
|
963
|
-
if (!locale || !locales.includes(locale)) {
|
|
964
|
-
// Redirect to the default locale with the updated path
|
|
965
|
-
return (
|
|
966
|
-
<Navigate
|
|
967
|
-
to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
|
|
968
|
-
replace // Replace the current history entry with the new one
|
|
969
|
-
/>
|
|
970
|
-
);
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
// Wrap children with the IntlayerProvider and set the current locale
|
|
974
|
-
return (
|
|
975
|
-
<IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
|
|
976
|
-
);
|
|
977
|
-
} else {
|
|
978
|
-
/**
|
|
979
|
-
* When middleware.prefixDefault is false, the default locale is not prefixed.
|
|
980
|
-
* Ensure that the current locale is valid and not the default locale.
|
|
981
|
-
*/
|
|
982
|
-
if (
|
|
983
|
-
currentLocale.toString() !== defaultLocale.toString() &&
|
|
984
|
-
!locales
|
|
985
|
-
.filter(
|
|
986
|
-
(locale) => locale.toString() !== defaultLocale.toString() // Exclude the default locale
|
|
987
|
-
)
|
|
988
|
-
.includes(currentLocale) // Check if the current locale is in the list of valid locales
|
|
989
|
-
) {
|
|
990
|
-
// Redirect to the path without locale prefix
|
|
991
|
-
return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
|
|
992
|
-
}
|
|
993
|
-
|
|
994
|
-
// Wrap children with the IntlayerProvider and set the current locale
|
|
995
|
-
return (
|
|
996
|
-
<IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
|
|
997
|
-
);
|
|
998
|
-
}
|
|
999
|
-
};
|
|
1000
|
-
|
|
1001
|
-
/**
|
|
1002
|
-
* A router component that sets up locale-specific routes.
|
|
1003
|
-
* It uses React Router to manage navigation and render localised components.
|
|
1004
|
-
*/
|
|
1005
|
-
const LocaleRouter = ({ children }) => (
|
|
1006
|
-
<BrowserRouter>
|
|
1007
|
-
<Routes>
|
|
1008
|
-
{locales
|
|
1009
|
-
.filter(
|
|
1010
|
-
(locale) => middleware.prefixDefault || locale !== defaultLocale
|
|
1011
|
-
)
|
|
1012
|
-
.map((locale) => (
|
|
1013
|
-
<Route
|
|
1014
|
-
// Route pattern to capture the locale (e.g., /en/, /fr/) and match all subsequent paths
|
|
1015
|
-
path={`/${locale}/*`}
|
|
1016
|
-
key={locale}
|
|
1017
|
-
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Wraps children with locale management
|
|
1018
|
-
/>
|
|
1019
|
-
))}
|
|
1020
|
-
|
|
1021
|
-
{
|
|
1022
|
-
// If prefixing the default locale is disabled, render the children directly at the root path
|
|
1023
|
-
!middleware.prefixDefault && (
|
|
1024
|
-
<Route
|
|
1025
|
-
path="*"
|
|
1026
|
-
element={
|
|
1027
|
-
<AppLocalized locale={defaultLocale}>{children}</AppLocalized>
|
|
1028
|
-
} // Wraps children with locale management
|
|
1029
|
-
/>
|
|
1030
|
-
)
|
|
1031
|
-
}
|
|
1032
|
-
</Routes>
|
|
1033
|
-
</BrowserRouter>
|
|
1034
|
-
);
|
|
1035
|
-
|
|
1036
|
-
exports.LocaleRouter = LocaleRouter;
|
|
1037
|
-
```
|
|
1038
|
-
|
|
1039
|
-
> Note: If you use `routing.mode: 'no-prefix' | 'search-params'`, you probably don't need to use the `localeMap` function.
|
|
1040
|
-
|
|
1041
|
-
Then, you can use the `LocaleRouter` component in your application:
|
|
1042
|
-
|
|
1043
|
-
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
512
|
+
```tsx fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
1044
513
|
import { LocaleRouter } from "./components/LocaleRouter";
|
|
1045
514
|
import type { FC } from "react";
|
|
1046
515
|
|
|
@@ -1053,50 +522,11 @@ const App: FC = () => (
|
|
|
1053
522
|
);
|
|
1054
523
|
```
|
|
1055
524
|
|
|
1056
|
-
```jsx fileName="src/App.mjx" codeFormat="esm"
|
|
1057
|
-
import { LocaleRouter } from "./components/LocaleRouter";
|
|
1058
|
-
|
|
1059
|
-
// ... Your AppContent component
|
|
1060
|
-
|
|
1061
|
-
const App = () => (
|
|
1062
|
-
<LocaleRouter>
|
|
1063
|
-
<AppContent />
|
|
1064
|
-
</LocaleRouter>
|
|
1065
|
-
);
|
|
1066
|
-
```
|
|
1067
|
-
|
|
1068
|
-
```jsx fileName="src/App.cjx" codeFormat="commonjs"
|
|
1069
|
-
const { LocaleRouter } = require("./components/LocaleRouter");
|
|
1070
|
-
|
|
1071
|
-
// ... Your AppContent component
|
|
1072
|
-
|
|
1073
|
-
const App = () => (
|
|
1074
|
-
<LocaleRouter>
|
|
1075
|
-
<AppContent />
|
|
1076
|
-
</LocaleRouter>
|
|
1077
|
-
);
|
|
1078
|
-
```
|
|
1079
|
-
|
|
1080
525
|
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.
|
|
1081
526
|
|
|
1082
527
|
> Note that to use the `intlayerProxy` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
|
|
1083
528
|
|
|
1084
|
-
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1085
|
-
import { defineConfig } from "vite";
|
|
1086
|
-
import react from "@vitejs/plugin-react-swc";
|
|
1087
|
-
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1088
|
-
|
|
1089
|
-
// https://vitejs.dev/config/
|
|
1090
|
-
export default defineConfig({
|
|
1091
|
-
plugins: [
|
|
1092
|
-
intlayerProxy(), // should be placed first
|
|
1093
|
-
react(),
|
|
1094
|
-
intlayer(),
|
|
1095
|
-
],
|
|
1096
|
-
});
|
|
1097
|
-
```
|
|
1098
|
-
|
|
1099
|
-
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
529
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
1100
530
|
import { defineConfig } from "vite";
|
|
1101
531
|
import react from "@vitejs/plugin-react-swc";
|
|
1102
532
|
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
@@ -1111,26 +541,11 @@ export default defineConfig({
|
|
|
1111
541
|
});
|
|
1112
542
|
```
|
|
1113
543
|
|
|
1114
|
-
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1115
|
-
const { defineConfig } = require("vite");
|
|
1116
|
-
const react = require("@vitejs/plugin-react-swc");
|
|
1117
|
-
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1118
|
-
|
|
1119
|
-
// https://vitejs.dev/config/
|
|
1120
|
-
module.exports = defineConfig({
|
|
1121
|
-
plugins: [
|
|
1122
|
-
intlayerProxy(), // should be placed first
|
|
1123
|
-
react(),
|
|
1124
|
-
intlayer(),
|
|
1125
|
-
],
|
|
1126
|
-
});
|
|
1127
|
-
```
|
|
1128
|
-
|
|
1129
544
|
### (Optional) Step 8: Change the URL when the locale changes
|
|
1130
545
|
|
|
1131
546
|
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.
|
|
1132
547
|
|
|
1133
|
-
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
548
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat={["typescript", "esm"]}
|
|
1134
549
|
import { useLocation, useNavigate } from "react-router-dom";
|
|
1135
550
|
import {
|
|
1136
551
|
Locales,
|
|
@@ -1195,134 +610,6 @@ const LocaleSwitcher: FC = () => {
|
|
|
1195
610
|
};
|
|
1196
611
|
```
|
|
1197
612
|
|
|
1198
|
-
```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
|
|
1199
|
-
import { useLocation, useNavigate } from "react-router-dom";
|
|
1200
|
-
import {
|
|
1201
|
-
Locales,
|
|
1202
|
-
getHTMLTextDir,
|
|
1203
|
-
getLocaleName,
|
|
1204
|
-
getLocalizedUrl,
|
|
1205
|
-
} from "intlayer";
|
|
1206
|
-
import { useLocale } from "react-intlayer";
|
|
1207
|
-
|
|
1208
|
-
const LocaleSwitcher = () => {
|
|
1209
|
-
const { pathname, search } = useLocation(); // Get the current URL path. Example: /fr/about?foo=bar
|
|
1210
|
-
const navigate = useNavigate();
|
|
1211
|
-
|
|
1212
|
-
const { locale, availableLocales, setLocale } = useLocale({
|
|
1213
|
-
onLocaleChange: (locale) => {
|
|
1214
|
-
// Construct the URL with the updated locale
|
|
1215
|
-
// Example: /es/about?foo=bar
|
|
1216
|
-
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
1217
|
-
|
|
1218
|
-
// Update the URL path
|
|
1219
|
-
navigate(pathWithLocale);
|
|
1220
|
-
},
|
|
1221
|
-
});
|
|
1222
|
-
|
|
1223
|
-
return (
|
|
1224
|
-
<div>
|
|
1225
|
-
<button popoverTarget="localePopover">{getLocaleName(locale)}</button>
|
|
1226
|
-
<div id="localePopover" popover="auto">
|
|
1227
|
-
{availableLocales.map((localeItem) => (
|
|
1228
|
-
<a
|
|
1229
|
-
href={getLocalizedUrl(location.pathname, localeItem)}
|
|
1230
|
-
hrefLang={localeItem}
|
|
1231
|
-
aria-current={locale === localeItem ? "page" : undefined}
|
|
1232
|
-
onClick={(e) => {
|
|
1233
|
-
e.preventDefault();
|
|
1234
|
-
setLocale(localeItem);
|
|
1235
|
-
}}
|
|
1236
|
-
key={localeItem}
|
|
1237
|
-
>
|
|
1238
|
-
<span>
|
|
1239
|
-
{/* Locale - e.g. FR */}
|
|
1240
|
-
{localeItem}
|
|
1241
|
-
</span>
|
|
1242
|
-
<span>
|
|
1243
|
-
{/* Language in its own Locale - e.g. Français */}
|
|
1244
|
-
{getLocaleName(localeItem, locale)}
|
|
1245
|
-
</span>
|
|
1246
|
-
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1247
|
-
{/* Language in current Locale - e.g. Francés with current locale set to Locales.SPANISH */}
|
|
1248
|
-
{getLocaleName(localeItem)}
|
|
1249
|
-
</span>
|
|
1250
|
-
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1251
|
-
{/* Language in English - e.g. French */}
|
|
1252
|
-
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1253
|
-
</span>
|
|
1254
|
-
</a>
|
|
1255
|
-
))}
|
|
1256
|
-
</div>
|
|
1257
|
-
</div>
|
|
1258
|
-
);
|
|
1259
|
-
};
|
|
1260
|
-
```
|
|
1261
|
-
|
|
1262
|
-
```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
|
|
1263
|
-
const { useLocation, useNavigate } = require("react-router-dom");
|
|
1264
|
-
const {
|
|
1265
|
-
Locales,
|
|
1266
|
-
getHTMLTextDir,
|
|
1267
|
-
getLocaleName,
|
|
1268
|
-
getLocalizedUrl,
|
|
1269
|
-
} = require("intlayer");
|
|
1270
|
-
const { useLocale } = require("react-intlayer");
|
|
1271
|
-
|
|
1272
|
-
const LocaleSwitcher = () => {
|
|
1273
|
-
const { pathname, search } = useLocation(); // Get the current URL path. Example: /fr/about?foo=bar
|
|
1274
|
-
const navigate = useNavigate();
|
|
1275
|
-
|
|
1276
|
-
const { locale, availableLocales, setLocale } = useLocale({
|
|
1277
|
-
onLocaleChange: (locale) => {
|
|
1278
|
-
// Construct the URL with the updated locale
|
|
1279
|
-
// Example: /es/about?foo=bar
|
|
1280
|
-
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
1281
|
-
|
|
1282
|
-
// Update the URL path
|
|
1283
|
-
navigate(pathWithLocale);
|
|
1284
|
-
},
|
|
1285
|
-
});
|
|
1286
|
-
|
|
1287
|
-
return (
|
|
1288
|
-
<div>
|
|
1289
|
-
<button popoverTarget="localePopover">{getLocaleName(locale)}</button>
|
|
1290
|
-
<div id="localePopover" popover="auto">
|
|
1291
|
-
{availableLocales.map((localeItem) => (
|
|
1292
|
-
<a
|
|
1293
|
-
href={getLocalizedUrl(location.pathname, localeItem)}
|
|
1294
|
-
hrefLang={localeItem}
|
|
1295
|
-
aria-current={locale === localeItem ? "page" : undefined}
|
|
1296
|
-
onClick={(e) => {
|
|
1297
|
-
e.preventDefault();
|
|
1298
|
-
setLocale(localeItem);
|
|
1299
|
-
}}
|
|
1300
|
-
key={localeItem}
|
|
1301
|
-
>
|
|
1302
|
-
<span>
|
|
1303
|
-
{/* Locale - e.g. FR */}
|
|
1304
|
-
{localeItem}
|
|
1305
|
-
</span>
|
|
1306
|
-
<span>
|
|
1307
|
-
{/* Language in its own Locale - e.g. Français */}
|
|
1308
|
-
{getLocaleName(localeItem, locale)}
|
|
1309
|
-
</span>
|
|
1310
|
-
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1311
|
-
{/* Language in current Locale - e.g. Francés with current locale set to Locales.SPANISH */}
|
|
1312
|
-
{getLocaleName(localeItem)}
|
|
1313
|
-
</span>
|
|
1314
|
-
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1315
|
-
{/* Language in English - e.g. French */}
|
|
1316
|
-
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1317
|
-
</span>
|
|
1318
|
-
</a>
|
|
1319
|
-
))}
|
|
1320
|
-
</div>
|
|
1321
|
-
</div>
|
|
1322
|
-
);
|
|
1323
|
-
};
|
|
1324
|
-
```
|
|
1325
|
-
|
|
1326
613
|
> Documentation references:
|
|
1327
614
|
>
|
|
1328
615
|
> - [`useLocale` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/packages/react-intlayer/useLocale.md)
|
|
@@ -1352,7 +639,7 @@ By updating these attributes dynamically when the locale changes, you guarantee
|
|
|
1352
639
|
|
|
1353
640
|
Create a custom hook to manage the HTML attributes. The hook listens for locale changes and updates the attributes accordingly:
|
|
1354
641
|
|
|
1355
|
-
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
|
|
642
|
+
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat={["typescript", "esm"]}
|
|
1356
643
|
import { useEffect } from "react";
|
|
1357
644
|
import { useLocale } from "react-intlayer";
|
|
1358
645
|
import { getHTMLTextDir } from "intlayer";
|
|
@@ -1377,63 +664,11 @@ export const useI18nHTMLAttributes = () => {
|
|
|
1377
664
|
};
|
|
1378
665
|
```
|
|
1379
666
|
|
|
1380
|
-
```jsx fileName="src/hooks/useI18nHTMLAttributes.msx" codeFormat="esm"
|
|
1381
|
-
import { useEffect } from "react";
|
|
1382
|
-
import { useLocale } from "react-intlayer";
|
|
1383
|
-
import { getHTMLTextDir } from "intlayer";
|
|
1384
|
-
|
|
1385
|
-
/**
|
|
1386
|
-
* Updates the HTML <html> element's `lang` and `dir` attributes based on the current locale.
|
|
1387
|
-
* - `lang`: Informs browsers and search engines of the page's language.
|
|
1388
|
-
* - `dir`: Ensures the correct reading order (e.g., 'ltr' for English, 'rtl' for Arabic).
|
|
1389
|
-
*
|
|
1390
|
-
* This dynamic update is essential for proper text rendering, accessibility, and SEO.
|
|
1391
|
-
*/
|
|
1392
|
-
export const useI18nHTMLAttributes = () => {
|
|
1393
|
-
const { locale } = useLocale();
|
|
1394
|
-
|
|
1395
|
-
useEffect(() => {
|
|
1396
|
-
// Update the language attribute to the current locale.
|
|
1397
|
-
document.documentElement.lang = locale;
|
|
1398
|
-
|
|
1399
|
-
// Set the text direction based on the current locale.
|
|
1400
|
-
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1401
|
-
}, [locale]);
|
|
1402
|
-
};
|
|
1403
|
-
```
|
|
1404
|
-
|
|
1405
|
-
```jsx fileName="src/hooks/useI18nHTMLAttributes.csx" codeFormat="commonjs"
|
|
1406
|
-
const { useEffect } = require("react");
|
|
1407
|
-
const { useLocale } = require("react-intlayer");
|
|
1408
|
-
const { getHTMLTextDir } = require("intlayer");
|
|
1409
|
-
|
|
1410
|
-
/**
|
|
1411
|
-
* Updates the HTML <html> element's `lang` and `dir` attributes based on the current locale.
|
|
1412
|
-
* - `lang`: Informs browsers and search engines of the page's language.
|
|
1413
|
-
* - `dir`: Ensures the correct reading order (e.g., 'ltr' for English, 'rtl' for Arabic).
|
|
1414
|
-
*
|
|
1415
|
-
* This dynamic update is essential for proper text rendering, accessibility, and SEO.
|
|
1416
|
-
*/
|
|
1417
|
-
const useI18nHTMLAttributes = () => {
|
|
1418
|
-
const { locale } = useLocale();
|
|
1419
|
-
|
|
1420
|
-
useEffect(() => {
|
|
1421
|
-
// Update the language attribute to the current locale.
|
|
1422
|
-
document.documentElement.lang = locale;
|
|
1423
|
-
|
|
1424
|
-
// Set the text direction based on the current locale.
|
|
1425
|
-
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1426
|
-
}, [locale]);
|
|
1427
|
-
};
|
|
1428
|
-
|
|
1429
|
-
module.exports = { useI18nHTMLAttributes };
|
|
1430
|
-
```
|
|
1431
|
-
|
|
1432
667
|
#### Using the Hook in Your Application
|
|
1433
668
|
|
|
1434
669
|
Integrate the hook into your main component so that the HTML attributes update whenever the locale changes:
|
|
1435
670
|
|
|
1436
|
-
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
671
|
+
```tsx fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
1437
672
|
import type { FC } from "react";
|
|
1438
673
|
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1439
674
|
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
@@ -1455,49 +690,6 @@ const App: FC = () => (
|
|
|
1455
690
|
export default App;
|
|
1456
691
|
```
|
|
1457
692
|
|
|
1458
|
-
```jsx fileName="src/App.msx" codeFormat="esm"
|
|
1459
|
-
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1460
|
-
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
1461
|
-
import "./App.css";
|
|
1462
|
-
|
|
1463
|
-
const AppContent = () => {
|
|
1464
|
-
// Apply the hook to update the <html> tag's lang and dir attributes based on the locale.
|
|
1465
|
-
useI18nHTMLAttributes();
|
|
1466
|
-
|
|
1467
|
-
// ... Rest of your component
|
|
1468
|
-
};
|
|
1469
|
-
|
|
1470
|
-
const App = () => (
|
|
1471
|
-
<IntlayerProvider>
|
|
1472
|
-
<AppContent />
|
|
1473
|
-
</IntlayerProvider>
|
|
1474
|
-
);
|
|
1475
|
-
|
|
1476
|
-
export default App;
|
|
1477
|
-
```
|
|
1478
|
-
|
|
1479
|
-
```jsx fileName="src/App.csx" codeFormat="commonjs"
|
|
1480
|
-
const { FC } = require("react");
|
|
1481
|
-
const { IntlayerProvider, useIntlayer } = require("react-intlayer");
|
|
1482
|
-
const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
|
|
1483
|
-
require("./App.css");
|
|
1484
|
-
|
|
1485
|
-
const AppContent = () => {
|
|
1486
|
-
// Apply the hook to update the <html> tag's lang and dir attributes based on the locale.
|
|
1487
|
-
useI18nHTMLAttributes();
|
|
1488
|
-
|
|
1489
|
-
// ... Rest of your component
|
|
1490
|
-
};
|
|
1491
|
-
|
|
1492
|
-
const App = () => (
|
|
1493
|
-
<IntlayerProvider>
|
|
1494
|
-
<AppContent />
|
|
1495
|
-
</IntlayerProvider>
|
|
1496
|
-
);
|
|
1497
|
-
|
|
1498
|
-
module.exports = App;
|
|
1499
|
-
```
|
|
1500
|
-
|
|
1501
693
|
By applying these changes, your application will:
|
|
1502
694
|
|
|
1503
695
|
- Ensure the **language** (`lang`) attribute correctly reflects the current locale, which is important for SEO and browser behaviour.
|
|
@@ -1516,7 +708,7 @@ This behaviour is useful for several reasons:
|
|
|
1516
708
|
|
|
1517
709
|
Below is the implementation of a localised `Link` component in TypeScript:
|
|
1518
710
|
|
|
1519
|
-
```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
|
|
711
|
+
```tsx fileName="src/components/Link.tsx" codeFormat={["typescript", "esm"]}
|
|
1520
712
|
import { getLocalizedUrl } from "intlayer";
|
|
1521
713
|
import {
|
|
1522
714
|
forwardRef,
|
|
@@ -1562,94 +754,95 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
1562
754
|
Link.displayName = "Link";
|
|
1563
755
|
```
|
|
1564
756
|
|
|
1565
|
-
|
|
1566
|
-
import { getLocalizedUrl } from "intlayer";
|
|
1567
|
-
import { useLocale } from "react-intlayer";
|
|
1568
|
-
import { forwardRef } from "react";
|
|
757
|
+
#### How It Works
|
|
1569
758
|
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
* If the URL starts with http:// or https://, it is considered external.
|
|
1573
|
-
*/
|
|
1574
|
-
export const checkIsExternalLink = (href?: string): boolean =>
|
|
1575
|
-
/^https?:\/\//.test(href ?? "");
|
|
759
|
+
- **Detecting External Links**:
|
|
760
|
+
The helper function `checkIsExternalLink` determines whether a URL is external. External links are left unchanged because they do not require localisation.
|
|
1576
761
|
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
* For internal links, it uses `getLocalizedUrl` to prefix the URL with the locale (e.g., /fr/about).
|
|
1580
|
-
* This ensures that navigation remains within the same locale context.
|
|
1581
|
-
*/
|
|
1582
|
-
export const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1583
|
-
const { locale } = useLocale();
|
|
1584
|
-
const isExternalLink = checkIsExternalLink(href);
|
|
762
|
+
- **Retrieving the Current Locale**:
|
|
763
|
+
The `useLocale` hook provides the current locale (e.g., `fr` for French).
|
|
1585
764
|
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
|
|
765
|
+
- **Localising the URL**:
|
|
766
|
+
For internal links (i.e., non-external), `getLocalizedUrl` is used to automatically prefix the URL with the current locale. This means that if your user is in French, passing `/about` as the `href` will transform it to `/fr/about`.
|
|
1589
767
|
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
{children}
|
|
1593
|
-
</a>
|
|
1594
|
-
);
|
|
1595
|
-
});
|
|
768
|
+
- **Returning the Link**:
|
|
769
|
+
The component returns an `<a>` element with the localised URL, ensuring that navigation is consistent with the locale.
|
|
1596
770
|
|
|
1597
|
-
Link
|
|
1598
|
-
```
|
|
771
|
+
By integrating this `Link` component across your application, you maintain a coherent and language-aware user experience while also benefiting from improved SEO and usability.
|
|
1599
772
|
|
|
1600
|
-
|
|
1601
|
-
const { getLocalizedUrl } = require("intlayer");
|
|
1602
|
-
const { useLocale } = require("react-intlayer");
|
|
1603
|
-
const { forwardRef } = require("react");
|
|
773
|
+
### (Optional) Sitemap and robots.txt (build-time)
|
|
1604
774
|
|
|
1605
|
-
|
|
1606
|
-
* Utility function to check whether a given URL is external.
|
|
1607
|
-
* If the URL starts with http:// or https://, it is considered external.
|
|
1608
|
-
*/
|
|
1609
|
-
const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
|
|
775
|
+
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.
|
|
1610
776
|
|
|
1611
|
-
|
|
1612
|
-
* A custom Link component that adapts the href attribute based on the current locale.
|
|
1613
|
-
* For internal links, it uses `getLocalizedUrl` to prefix the URL with the locale (e.g., /fr/about).
|
|
1614
|
-
* This ensures that navigation stays within the same locale context.
|
|
1615
|
-
*/
|
|
1616
|
-
const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1617
|
-
const { locale } = useLocale();
|
|
1618
|
-
const isExternalLink = checkIsExternalLink(href);
|
|
777
|
+
#### Sitemap
|
|
1619
778
|
|
|
1620
|
-
|
|
1621
|
-
const localizedHref = isExternalLink ? href : getLocalizedUrl(href, locale);
|
|
779
|
+
Intlayer’s sitemap generator respects your locale setup and includes the usual metadata for crawlers.
|
|
1622
780
|
|
|
1623
|
-
|
|
1624
|
-
<a
|
|
1625
|
-
href={localizedHref}
|
|
1626
|
-
ref={ref}
|
|
1627
|
-
{...props}
|
|
1628
|
-
aria-current={isExternalLink ? "external" : undefined}
|
|
1629
|
-
>
|
|
1630
|
-
{children}
|
|
1631
|
-
</a>
|
|
1632
|
-
);
|
|
1633
|
-
});
|
|
781
|
+
> 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.
|
|
1634
782
|
|
|
1635
|
-
|
|
1636
|
-
```
|
|
783
|
+
#### Robots.txt
|
|
1637
784
|
|
|
1638
|
-
|
|
785
|
+
Use `getMultilingualUrls` so `Disallow` entries cover every localized spelling of sensitive paths.
|
|
1639
786
|
|
|
1640
|
-
-
|
|
1641
|
-
The helper function `checkIsExternalLink` determines whether a URL is external. External links are left unchanged because they do not require localisation.
|
|
787
|
+
#### 1. Add `generate-seo.mjs` at the project root
|
|
1642
788
|
|
|
1643
|
-
-
|
|
1644
|
-
|
|
789
|
+
```javascript fileName="generate-seo.mjs"
|
|
790
|
+
import fs from "fs";
|
|
791
|
+
import path from "path";
|
|
792
|
+
import { fileURLToPath } from "url";
|
|
793
|
+
import { generateSitemap, getMultilingualUrls } from "intlayer";
|
|
1645
794
|
|
|
1646
|
-
|
|
1647
|
-
For internal links (i.e., non-external), `getLocalizedUrl` is used to automatically prefix the URL with the current locale. This means that if your user is in French, passing `/about` as the `href` will transform it to `/fr/about`.
|
|
795
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
1648
796
|
|
|
1649
|
-
|
|
1650
|
-
|
|
797
|
+
const SITE_URL = (process.env.SITE_URL || "http://localhost:5173").replace(
|
|
798
|
+
/\/$/,
|
|
799
|
+
""
|
|
800
|
+
);
|
|
1651
801
|
|
|
1652
|
-
|
|
802
|
+
const pathList = [
|
|
803
|
+
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
804
|
+
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
805
|
+
];
|
|
806
|
+
|
|
807
|
+
const sitemapXml = generateSitemap(pathList, { siteUrl: SITE_URL });
|
|
808
|
+
fs.writeFileSync(path.join(__dirname, "public", "sitemap.xml"), sitemapXml);
|
|
809
|
+
|
|
810
|
+
const getAllMultilingualUrls = (urls) =>
|
|
811
|
+
urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
|
|
812
|
+
|
|
813
|
+
const disallowedPaths = getAllMultilingualUrls(["/admin", "/private"]);
|
|
814
|
+
|
|
815
|
+
const robotsTxt = [
|
|
816
|
+
"User-agent: *",
|
|
817
|
+
"Allow: /",
|
|
818
|
+
...disallowedPaths.map((path) => `Disallow: ${path}`),
|
|
819
|
+
"",
|
|
820
|
+
`Sitemap: ${SITE_URL}/sitemap.xml`,
|
|
821
|
+
].join("\n");
|
|
822
|
+
|
|
823
|
+
fs.writeFileSync(path.join(__dirname, "public", "robots.txt"), robotsTxt);
|
|
824
|
+
|
|
825
|
+
console.log("SEO files generated successfully.");
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
`intlayer` must be installed so the script can import it. Set `SITE_URL` in the environment for production (for example in CI).
|
|
829
|
+
|
|
830
|
+
> 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.
|
|
831
|
+
|
|
832
|
+
#### 2. Run the script before Vite
|
|
833
|
+
|
|
834
|
+
```json fileName="package.json"
|
|
835
|
+
{
|
|
836
|
+
"scripts": {
|
|
837
|
+
"dev": "vite",
|
|
838
|
+
"prebuild": "node generate-seo.mjs",
|
|
839
|
+
"build": "vite build",
|
|
840
|
+
"preview": "vite preview"
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
```
|
|
844
|
+
|
|
845
|
+
Adjust if you use pnpm or yarn. You can also invoke the same script from CI or another step if that fits your workflow.
|
|
1653
846
|
|
|
1654
847
|
### Configure TypeScript
|
|
1655
848
|
|