@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 @@ history:
|
|
|
56
57
|
<Tab label="Код" 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="Демонстрация CodeSandbox. Как интернационализировать ваше приложение с помощью 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="Демо" 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="Демо — 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
|
Создайте файл конфигурации для настройки языков вашего приложения:
|
|
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
|
-
// Ваши другие локали
|
|
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
|
-
// Ваши другие локали
|
|
160
|
-
],
|
|
161
|
-
defaultLocale: Locales.ENGLISH,
|
|
162
|
-
},
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
module.exports = config;
|
|
166
|
-
```
|
|
167
|
-
|
|
168
142
|
> Через этот файл конфигурации вы можете настроить локализованные URL-адреса, перенаправление в middleware, имена cookie, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
|
|
169
143
|
|
|
170
144
|
### Шаг 3: Интеграция Intlayer в вашу конфигурацию Vite
|
|
171
145
|
|
|
172
146
|
Добавьте плагин intlayer в вашу конфигурацию.
|
|
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
|
> Плагин Vite `intlayer()` используется для интеграции Intlayer с Vite. Он обеспечивает создание файлов деклараций контента и отслеживает их в режиме разработки. Он определяет переменные окружения Intlayer внутри приложения Vite. Кроме того, он предоставляет алиасы для оптимизации производительности.
|
|
208
160
|
|
|
209
161
|
### Шаг 4: Объявите Ваш Контент
|
|
210
162
|
|
|
211
163
|
Создайте и управляйте декларациями контента для хранения переводов:
|
|
212
164
|
|
|
213
|
-
```tsx fileName="src/app.content.tsx" contentDeclarationFormat="typescript"
|
|
165
|
+
```tsx fileName="src/app.content.tsx" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
214
166
|
import { t, type Dictionary } from "intlayer";
|
|
215
167
|
import type { ReactNode } from "react";
|
|
216
168
|
|
|
@@ -265,135 +217,6 @@ const appContent = {
|
|
|
265
217
|
export default appContent;
|
|
266
218
|
```
|
|
267
219
|
|
|
268
|
-
```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
|
|
269
|
-
import { t } from "intlayer";
|
|
270
|
-
|
|
271
|
-
/** @type {import('intlayer').Dictionary} */
|
|
272
|
-
const appContent = {
|
|
273
|
-
key: "app",
|
|
274
|
-
content: {
|
|
275
|
-
viteLogo: t({
|
|
276
|
-
ru: "Логотип Vite",
|
|
277
|
-
en: "Vite logo",
|
|
278
|
-
fr: "Logo Vite",
|
|
279
|
-
es: "Logo Vite",
|
|
280
|
-
}),
|
|
281
|
-
reactLogo: t({
|
|
282
|
-
ru: "Логотип React",
|
|
283
|
-
en: "React logo",
|
|
284
|
-
fr: "Logo React",
|
|
285
|
-
es: "Logo React",
|
|
286
|
-
}),
|
|
287
|
-
|
|
288
|
-
title: "Vite + React",
|
|
289
|
-
|
|
290
|
-
count: t({
|
|
291
|
-
ru: "счет: ",
|
|
292
|
-
en: "count is ",
|
|
293
|
-
fr: "le compte est ",
|
|
294
|
-
es: "el recuento es ",
|
|
295
|
-
}),
|
|
296
|
-
|
|
297
|
-
edit:
|
|
298
|
-
t <
|
|
299
|
-
ReactNode >
|
|
300
|
-
{
|
|
301
|
-
// Не забудьте импортировать React, если используете React-узел в вашем контенте
|
|
302
|
-
ru: (
|
|
303
|
-
<>
|
|
304
|
-
Редактируйте <code>src/App.tsx</code> и сохраните, чтобы проверить
|
|
305
|
-
HMR
|
|
306
|
-
</>
|
|
307
|
-
),
|
|
308
|
-
en: (
|
|
309
|
-
<>
|
|
310
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
311
|
-
</>
|
|
312
|
-
),
|
|
313
|
-
fr: (
|
|
314
|
-
<>
|
|
315
|
-
Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
316
|
-
</>
|
|
317
|
-
),
|
|
318
|
-
es: (
|
|
319
|
-
<>
|
|
320
|
-
Edita <code>src/App.tsx</code> y guarda para probar HMR
|
|
321
|
-
</>
|
|
322
|
-
),
|
|
323
|
-
},
|
|
324
|
-
|
|
325
|
-
readTheDocs: t({
|
|
326
|
-
ru: "Нажмите на логотипы Vite и React, чтобы узнать больше",
|
|
327
|
-
en: "Click on the Vite and React logos to learn more",
|
|
328
|
-
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
329
|
-
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
330
|
-
}),
|
|
331
|
-
},
|
|
332
|
-
};
|
|
333
|
-
|
|
334
|
-
export default appContent;
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
|
|
338
|
-
const { t } = require("intlayer");
|
|
339
|
-
|
|
340
|
-
/** @type {import('intlayer').Dictionary} */
|
|
341
|
-
const appContent = {
|
|
342
|
-
key: "app",
|
|
343
|
-
content: {
|
|
344
|
-
viteLogo: t({
|
|
345
|
-
en: "Vite logo",
|
|
346
|
-
fr: "Logo Vite",
|
|
347
|
-
es: "Logo Vite",
|
|
348
|
-
}),
|
|
349
|
-
reactLogo: t({
|
|
350
|
-
en: "React logo",
|
|
351
|
-
fr: "Logo React",
|
|
352
|
-
es: "Logo React",
|
|
353
|
-
}),
|
|
354
|
-
|
|
355
|
-
title: "Vite + React",
|
|
356
|
-
|
|
357
|
-
count: t({
|
|
358
|
-
en: "count is ",
|
|
359
|
-
fr: "le compte est ",
|
|
360
|
-
es: "el recuento es ",
|
|
361
|
-
}),
|
|
362
|
-
|
|
363
|
-
edit:
|
|
364
|
-
t <
|
|
365
|
-
ReactNode >
|
|
366
|
-
{
|
|
367
|
-
// Не забудьте импортировать React, если вы используете React node в вашем контенте
|
|
368
|
-
en: (
|
|
369
|
-
<>
|
|
370
|
-
Edit <code>src/App.tsx</code> and save to test HMR
|
|
371
|
-
</>
|
|
372
|
-
),
|
|
373
|
-
fr: (
|
|
374
|
-
<>
|
|
375
|
-
Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
376
|
-
</>
|
|
377
|
-
),
|
|
378
|
-
es: (
|
|
379
|
-
<>
|
|
380
|
-
Edita <code>src/App.tsx</code> y guarda para probar HMR
|
|
381
|
-
</>
|
|
382
|
-
),
|
|
383
|
-
},
|
|
384
|
-
|
|
385
|
-
readTheDocs: t({
|
|
386
|
-
en: "Click on the Vite and React logos to learn more",
|
|
387
|
-
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
388
|
-
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
389
|
-
ru: "Нажмите на логотипы Vite и React, чтобы узнать больше",
|
|
390
|
-
}),
|
|
391
|
-
},
|
|
392
|
-
};
|
|
393
|
-
|
|
394
|
-
module.exports = appContent;
|
|
395
|
-
```
|
|
396
|
-
|
|
397
220
|
```json fileName="src/app.content.json" contentDeclarationFormat="json"
|
|
398
221
|
{
|
|
399
222
|
"$schema": "https://intlayer.org/schema.json",
|
|
@@ -464,7 +287,7 @@ module.exports = appContent;
|
|
|
464
287
|
|
|
465
288
|
Получайте доступ к вашим словарям контента по всему приложению:
|
|
466
289
|
|
|
467
|
-
```tsx {5,9} fileName="src/App.tsx" codeFormat="typescript"
|
|
290
|
+
```tsx {5,9} fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
468
291
|
import { useState, type FC } from "react";
|
|
469
292
|
import reactLogo from "./assets/react.svg";
|
|
470
293
|
import viteLogo from "/vite.svg";
|
|
@@ -511,101 +334,6 @@ const App: FC = () => (
|
|
|
511
334
|
export default App;
|
|
512
335
|
```
|
|
513
336
|
|
|
514
|
-
```tsx {5,9} fileName="src/App.msx" codeFormat="esm"
|
|
515
|
-
import { useState } from "react";
|
|
516
|
-
import reactLogo from "./assets/react.svg";
|
|
517
|
-
import viteLogo from "/vite.svg";
|
|
518
|
-
import "./App.css";
|
|
519
|
-
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
520
|
-
|
|
521
|
-
const AppContent = () => {
|
|
522
|
-
const [count, setCount] = useState(0);
|
|
523
|
-
const content = useIntlayer("app");
|
|
524
|
-
|
|
525
|
-
return (
|
|
526
|
-
<>
|
|
527
|
-
<div>
|
|
528
|
-
<a href="https://vitejs.dev" target="_blank">
|
|
529
|
-
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
530
|
-
</a>
|
|
531
|
-
<a href="https://react.dev" target="_blank">
|
|
532
|
-
<img
|
|
533
|
-
src={reactLogo}
|
|
534
|
-
className="logo react"
|
|
535
|
-
alt={content.reactLogo.value}
|
|
536
|
-
/>
|
|
537
|
-
</a>
|
|
538
|
-
</div>
|
|
539
|
-
<h1>{content.title}</h1>
|
|
540
|
-
<div className="card">
|
|
541
|
-
<button onClick={() => setCount((count) => count + 1)}>
|
|
542
|
-
{content.count}
|
|
543
|
-
{count}
|
|
544
|
-
</button>
|
|
545
|
-
<p>{content.edit}</p>
|
|
546
|
-
</div>
|
|
547
|
-
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
548
|
-
</>
|
|
549
|
-
);
|
|
550
|
-
};
|
|
551
|
-
|
|
552
|
-
const App = () => (
|
|
553
|
-
<IntlayerProvider>
|
|
554
|
-
<AppContent />
|
|
555
|
-
</IntlayerProvider>
|
|
556
|
-
);
|
|
557
|
-
|
|
558
|
-
export default App;
|
|
559
|
-
```
|
|
560
|
-
|
|
561
|
-
```tsx {5,9} fileName="src/App.csx" codeFormat="commonjs"
|
|
562
|
-
const { useState } = require("react");
|
|
563
|
-
const reactLogo = require("./assets/react.svg");
|
|
564
|
-
const viteLogo = require("/vite.svg");
|
|
565
|
-
require("./App.css");
|
|
566
|
-
const { IntlayerProvider, useIntlayer } = require("react-intlayer");
|
|
567
|
-
|
|
568
|
-
const AppContent = () => {
|
|
569
|
-
const [count, setCount] = useState(0);
|
|
570
|
-
const content = useIntlayer("app");
|
|
571
|
-
|
|
572
|
-
return (
|
|
573
|
-
<>
|
|
574
|
-
<div>
|
|
575
|
-
<a href="https://vitejs.dev" target="_blank">
|
|
576
|
-
<img src={viteLogo} className="logo" alt={content.viteLogo.value} />
|
|
577
|
-
</a>
|
|
578
|
-
<a href="https://react.dev" target="_blank">
|
|
579
|
-
<img
|
|
580
|
-
src={reactLogo}
|
|
581
|
-
className="logo react"
|
|
582
|
-
alt={content.reactLogo.value} // альтернативный текст для логотипа React
|
|
583
|
-
alt={content.reactLogo.value}
|
|
584
|
-
/>
|
|
585
|
-
</a>
|
|
586
|
-
</div>
|
|
587
|
-
<h1>{content.title}</h1>
|
|
588
|
-
<div className="card">
|
|
589
|
-
<button onClick={() => setCount((count) => count + 1)}>
|
|
590
|
-
{content.count}
|
|
591
|
-
{count}
|
|
592
|
-
</button>
|
|
593
|
-
<p>{content.edit}</p>
|
|
594
|
-
</div>
|
|
595
|
-
<p className="read-the-docs">{content.readTheDocs}</p>
|
|
596
|
-
</>
|
|
597
|
-
);
|
|
598
|
-
};
|
|
599
|
-
|
|
600
|
-
const App = () => (
|
|
601
|
-
<IntlayerProvider>
|
|
602
|
-
<AppContent />
|
|
603
|
-
</IntlayerProvider>
|
|
604
|
-
);
|
|
605
|
-
|
|
606
|
-
module.exports = App;
|
|
607
|
-
```
|
|
608
|
-
|
|
609
337
|
> Если вы хотите использовать ваш контент в атрибуте типа `string`, таком как `alt`, `title`, `href`, `aria-label` и т.д., вы должны вызвать значение функции, например:
|
|
610
338
|
|
|
611
339
|
> ```jsx
|
|
@@ -620,7 +348,7 @@ module.exports = App;
|
|
|
620
348
|
|
|
621
349
|
Чтобы изменить язык вашего контента, вы можете использовать функцию `setLocale`, предоставляемую хуком `useLocale`. Эта функция позволяет установить локаль приложения и обновить контент соответственно.
|
|
622
350
|
|
|
623
|
-
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
351
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat={["typescript", "esm"]}
|
|
624
352
|
import type { FC } from "react";
|
|
625
353
|
import { Locales } from "intlayer";
|
|
626
354
|
import { useLocale } from "react-intlayer";
|
|
@@ -636,36 +364,6 @@ const LocaleSwitcher: FC = () => {
|
|
|
636
364
|
};
|
|
637
365
|
```
|
|
638
366
|
|
|
639
|
-
```jsx fileName="src/components/LocaleSwitcher.msx" codeFormat="esm"
|
|
640
|
-
import { Locales } from "intlayer";
|
|
641
|
-
import { useLocale } from "react-intlayer";
|
|
642
|
-
|
|
643
|
-
const LocaleSwitcher = () => {
|
|
644
|
-
const { setLocale } = useLocale();
|
|
645
|
-
|
|
646
|
-
return (
|
|
647
|
-
<button onClick={() => setLocale(Locales.English)}>
|
|
648
|
-
Изменить язык на английский
|
|
649
|
-
</button>
|
|
650
|
-
);
|
|
651
|
-
};
|
|
652
|
-
```
|
|
653
|
-
|
|
654
|
-
```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
|
|
655
|
-
const { Locales } = require("intlayer");
|
|
656
|
-
const { useLocale } = require("react-intlayer");
|
|
657
|
-
|
|
658
|
-
const LocaleSwitcher = () => {
|
|
659
|
-
const { setLocale } = useLocale();
|
|
660
|
-
|
|
661
|
-
return (
|
|
662
|
-
<button onClick={() => setLocale(Locales.English)}>
|
|
663
|
-
Изменить язык на английский
|
|
664
|
-
</button>
|
|
665
|
-
);
|
|
666
|
-
};
|
|
667
|
-
```
|
|
668
|
-
|
|
669
367
|
> Чтобы узнать больше о хуке `useLocale`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md).
|
|
670
368
|
|
|
671
369
|
### (Необязательно) Шаг 7: Добавьте локализованную маршрутизацию в ваше приложение
|
|
@@ -683,7 +381,7 @@ const LocaleSwitcher = () => {
|
|
|
683
381
|
|
|
684
382
|
Чтобы добавить локализованную маршрутизацию в ваше приложение, вы можете создать компонент `LocaleRouter`, который оборачивает маршруты вашего приложения и обрабатывает маршрутизацию на основе локали. Вот пример с использованием [React Router](https://reactrouter.com/home):
|
|
685
383
|
|
|
686
|
-
```tsx fileName="src/components/LocaleRouter.tsx"
|
|
384
|
+
```tsx fileName="src/components/LocaleRouter.tsx" codeFormat={["typescript", "esm"]}
|
|
687
385
|
import { localeMap } from "intlayer"; // Утилиты и типы из 'intlayer'
|
|
688
386
|
import type { FC, PropsWithChildren } from "react"; // Типы React для функциональных компонентов и пропсов
|
|
689
387
|
import { IntlayerProvider } from "react-intlayer"; // Провайдер для контекста интернационализации
|
|
@@ -711,69 +409,11 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
|
711
409
|
);
|
|
712
410
|
```
|
|
713
411
|
|
|
714
|
-
```jsx fileName="src/components/LocaleRouter.mjx" codeFormat="esm"
|
|
715
|
-
import { localeMap } from 'intlayer'; // Утилиты и типы из 'intlayer'
|
|
716
|
-
import type { FC, PropsWithChildren } from 'react'; // Типы React для функциональных компонентов и пропсов
|
|
717
|
-
import { IntlayerProvider } from "react-intlayer"; // Провайдер для контекста интернационализации
|
|
718
|
-
import { BrowserRouter, Route, Routes } from 'react-router-dom'; // Компоненты роутера для управления навигацией
|
|
719
|
-
|
|
720
|
-
/**
|
|
721
|
-
* Компонент маршрутизатора, который настраивает маршруты для конкретных локалей.
|
|
722
|
-
* Использует React Router для управления навигацией и рендеринга локализованных компонентов.
|
|
723
|
-
*/
|
|
724
|
-
export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
725
|
-
<BrowserRouter>
|
|
726
|
-
<Routes>
|
|
727
|
-
{localeMap(({ locale, urlPrefix }) => (
|
|
728
|
-
<Route
|
|
729
|
-
// Шаблон маршрута для захвата локали (например, /en/, /fr/) и сопоставления всех последующих путей
|
|
730
|
-
path={`${urlPrefix}/*`}
|
|
731
|
-
key={locale}
|
|
732
|
-
element={
|
|
733
|
-
<IntlayerProvider locale={locale}>{children}</IntlayerProvider>
|
|
734
|
-
} // Оборачивает дочерние элементы с управлением локалью
|
|
735
|
-
/>
|
|
736
|
-
))}
|
|
737
|
-
</Routes>
|
|
738
|
-
</BrowserRouter>
|
|
739
|
-
);
|
|
740
|
-
```
|
|
741
|
-
|
|
742
|
-
```jsx fileName="src/components/LocaleRouter.cjx" codeFormat="commonjs"
|
|
743
|
-
const { localeMap } = require("intlayer"); // Утилиты и типы из 'intlayer'
|
|
744
|
-
const React = require("react"); // Импорт React
|
|
745
|
-
const { IntlayerProvider } = require("react-intlayer"); // Провайдер для контекста интернационализации
|
|
746
|
-
const { BrowserRouter, Route, Routes } = require("react-router-dom"); // Компоненты роутера для управления навигацией
|
|
747
|
-
|
|
748
|
-
/**
|
|
749
|
-
* Компонент роутера, который настраивает маршруты для конкретных локалей.
|
|
750
|
-
* Использует React Router для управления навигацией и отображения локализованных компонентов.
|
|
751
|
-
*/
|
|
752
|
-
const LocaleRouter = ({ children }) =>
|
|
753
|
-
React.createElement(
|
|
754
|
-
BrowserRouter,
|
|
755
|
-
{},
|
|
756
|
-
React.createElement(
|
|
757
|
-
Routes,
|
|
758
|
-
{},
|
|
759
|
-
localeMap(({ locale, urlPrefix }) =>
|
|
760
|
-
React.createElement(Route, {
|
|
761
|
-
path: `${urlPrefix}/*`,
|
|
762
|
-
key: locale,
|
|
763
|
-
element: React.createElement(IntlayerProvider, { locale }, children),
|
|
764
|
-
})
|
|
765
|
-
)
|
|
766
|
-
)
|
|
767
|
-
);
|
|
768
|
-
|
|
769
|
-
exports.LocaleRouter = LocaleRouter;
|
|
770
|
-
```
|
|
771
|
-
|
|
772
412
|
> Примечание: если вы используете `routing.mode: 'no-prefix' | 'search-params'`, скорее всего, вам не нужно использовать функцию `localeMap`.
|
|
773
413
|
|
|
774
414
|
Затем вы можете использовать компонент `LocaleRouter` в вашем приложении:
|
|
775
415
|
|
|
776
|
-
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
416
|
+
```tsx fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
777
417
|
import { LocaleRouter } from "./components/LocaleRouter";
|
|
778
418
|
import type { FC } from "react";
|
|
779
419
|
|
|
@@ -786,35 +426,11 @@ const App: FC = () => (
|
|
|
786
426
|
);
|
|
787
427
|
```
|
|
788
428
|
|
|
789
|
-
```jsx fileName="src/App.mjx" codeFormat="esm"
|
|
790
|
-
import { LocaleRouter } from "./components/LocaleRouter";
|
|
791
|
-
|
|
792
|
-
// ... Ваш компонент AppContent
|
|
793
|
-
|
|
794
|
-
const App = () => (
|
|
795
|
-
<LocaleRouter>
|
|
796
|
-
<AppContent />
|
|
797
|
-
</LocaleRouter>
|
|
798
|
-
);
|
|
799
|
-
```
|
|
800
|
-
|
|
801
|
-
```jsx fileName="src/App.cjx" codeFormat="commonjs"
|
|
802
|
-
const { LocaleRouter } = require("./components/LocaleRouter");
|
|
803
|
-
|
|
804
|
-
// ... Ваш компонент AppContent
|
|
805
|
-
|
|
806
|
-
const App = () => (
|
|
807
|
-
<LocaleRouter>
|
|
808
|
-
<AppContent />
|
|
809
|
-
</LocaleRouter>
|
|
810
|
-
);
|
|
811
|
-
```
|
|
812
|
-
|
|
813
429
|
Параллельно вы также можете использовать `intlayerProxy` для добавления маршрутизации на стороне сервера в ваше приложение. Этот плагин автоматически определит текущую локаль на основе URL и установит соответствующее cookie с локалью. Если локаль не указана, плагин определит наиболее подходящую локаль на основе языковых предпочтений браузера пользователя. Если локаль не будет обнаружена, произойдет перенаправление на локаль по умолчанию.
|
|
814
430
|
|
|
815
431
|
Обратите внимание, что для использования `intlayerProxy` в продакшене необходимо переместить пакет `vite-intlayer` из `devDependencies` в `dependencies`.
|
|
816
432
|
|
|
817
|
-
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
433
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
818
434
|
import { defineConfig } from "vite";
|
|
819
435
|
import react from "@vitejs/plugin-react-swc";
|
|
820
436
|
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
@@ -826,109 +442,14 @@ export default defineConfig({
|
|
|
826
442
|
react(),
|
|
827
443
|
intlayer(),
|
|
828
444
|
],
|
|
829
|
-
});
|
|
830
|
-
```
|
|
831
|
-
|
|
832
|
-
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
833
|
-
import { defineConfig } from "vite";
|
|
834
|
-
import react from "@vitejs/plugin-react-swc";
|
|
835
|
-
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
836
|
-
|
|
837
|
-
// https://vitejs.dev/config/
|
|
838
|
-
export default defineConfig({
|
|
839
|
-
plugins: [
|
|
840
|
-
intlayerProxy(), // should be placed first
|
|
841
|
-
react(),
|
|
842
|
-
intlayer(),
|
|
843
|
-
],
|
|
844
|
-
});
|
|
845
|
-
```
|
|
846
|
-
|
|
847
|
-
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
848
|
-
const { defineConfig } = require("vite");
|
|
849
|
-
const react = require("@vitejs/plugin-react-swc");
|
|
850
|
-
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
851
|
-
|
|
852
|
-
// https://vitejs.dev/config/
|
|
853
|
-
module.exports = defineConfig({
|
|
854
|
-
plugins: [
|
|
855
|
-
intlayerProxy(), // should be placed first
|
|
856
|
-
react(),
|
|
857
|
-
intlayer(),
|
|
858
|
-
],
|
|
859
|
-
});
|
|
860
|
-
```
|
|
861
|
-
|
|
862
|
-
### (Необязательно) Шаг 8: Изменение URL при смене локали
|
|
863
|
-
|
|
864
|
-
Чтобы изменить URL при смене локали, вы можете использовать проп `onLocaleChange`, предоставляемый хуком `useLocale`. Параллельно можно использовать хуки `useLocation` и `useNavigate` из `react-router-dom` для обновления пути URL.
|
|
865
|
-
|
|
866
|
-
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
867
|
-
import { useLocation, useNavigate } from "react-router-dom";
|
|
868
|
-
import {
|
|
869
|
-
Locales,
|
|
870
|
-
getHTMLTextDir,
|
|
871
|
-
getLocaleName,
|
|
872
|
-
getLocalizedUrl,
|
|
873
|
-
} from "intlayer";
|
|
874
|
-
import { useLocale } from "react-intlayer";
|
|
875
|
-
import { type FC } from "react";
|
|
876
|
-
|
|
877
|
-
const LocaleSwitcher: FC = () => {
|
|
878
|
-
const { pathname, search } = useLocation(); // Получаем текущий путь URL. Пример: /fr/about?foo=bar
|
|
879
|
-
const navigate = useNavigate();
|
|
880
|
-
|
|
881
|
-
const { locale, availableLocales, setLocale } = useLocale({
|
|
882
|
-
onLocaleChange: (locale) => {
|
|
883
|
-
// Формируем URL с обновлённой локалью
|
|
884
|
-
// Пример: /es/about?foo=bar
|
|
885
|
-
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
886
|
-
|
|
887
|
-
// Обновляем путь URL
|
|
888
|
-
navigate(pathWithLocale);
|
|
889
|
-
},
|
|
890
|
-
});
|
|
891
|
-
|
|
892
|
-
return (
|
|
893
|
-
<div>
|
|
894
|
-
<button popoverTarget="localePopover">{getLocaleName(locale)}</button>
|
|
895
|
-
<div id="localePopover" popover="auto">
|
|
896
|
-
{availableLocales.map((localeItem) => (
|
|
897
|
-
<a
|
|
898
|
-
href={getLocalizedUrl(location.pathname, localeItem)}
|
|
899
|
-
hrefLang={localeItem}
|
|
900
|
-
aria-current={locale === localeItem ? "page" : undefined}
|
|
901
|
-
onClick={(e) => {
|
|
902
|
-
e.preventDefault();
|
|
903
|
-
setLocale(localeItem);
|
|
904
|
-
}}
|
|
905
|
-
key={localeItem}
|
|
906
|
-
>
|
|
907
|
-
<span>
|
|
908
|
-
{/* Локаль - например, FR */}
|
|
909
|
-
{localeItem}
|
|
910
|
-
</span>
|
|
911
|
-
<span>
|
|
912
|
-
{/* Язык на его собственной локали - например, Français */}
|
|
913
|
-
{getLocaleName(localeItem, locale)}
|
|
914
|
-
</span>
|
|
915
|
-
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
916
|
-
{/* Язык на текущей локали - например, Francés при текущей локали Locales.SPANISH */}
|
|
917
|
-
{getLocaleName(localeItem)}
|
|
918
|
-
</span>
|
|
919
|
-
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
920
|
-
{/* Язык на английском - например, French */}
|
|
921
|
-
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
922
|
-
</span>
|
|
923
|
-
</a>
|
|
924
|
-
))}
|
|
925
|
-
</div>
|
|
926
|
-
</div>
|
|
927
|
-
);
|
|
928
|
-
};
|
|
445
|
+
});
|
|
929
446
|
```
|
|
930
447
|
|
|
931
|
-
|
|
448
|
+
### (Необязательно) Шаг 8: Изменение URL при смене локали
|
|
449
|
+
|
|
450
|
+
Чтобы изменить URL при смене локали, вы можете использовать проп `onLocaleChange`, предоставляемый хуком `useLocale`. Параллельно можно использовать хуки `useLocation` и `useNavigate` из `react-router-dom` для обновления пути URL.
|
|
451
|
+
|
|
452
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat={["typescript", "esm"]}
|
|
932
453
|
import { useLocation, useNavigate } from "react-router-dom";
|
|
933
454
|
import {
|
|
934
455
|
Locales,
|
|
@@ -937,82 +458,19 @@ import {
|
|
|
937
458
|
getLocalizedUrl,
|
|
938
459
|
} from "intlayer";
|
|
939
460
|
import { useLocale } from "react-intlayer";
|
|
461
|
+
import { type FC } from "react";
|
|
940
462
|
|
|
941
|
-
const LocaleSwitcher = () => {
|
|
942
|
-
const { pathname, search } = useLocation(); //
|
|
943
|
-
const navigate = useNavigate();
|
|
944
|
-
|
|
945
|
-
const { locale, availableLocales, setLocale } = useLocale({
|
|
946
|
-
onLocaleChange: (locale) => {
|
|
947
|
-
// Сформировать URL с обновленной локалью
|
|
948
|
-
// Пример: /es/about?foo=bar
|
|
949
|
-
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
950
|
-
|
|
951
|
-
// Обновить путь URL
|
|
952
|
-
navigate(pathWithLocale);
|
|
953
|
-
},
|
|
954
|
-
});
|
|
955
|
-
|
|
956
|
-
return (
|
|
957
|
-
<div>
|
|
958
|
-
<button popoverTarget="localePopover">{getLocaleName(locale)}</button>
|
|
959
|
-
<div id="localePopover" popover="auto">
|
|
960
|
-
{availableLocales.map((localeItem) => (
|
|
961
|
-
<a
|
|
962
|
-
href={getLocalizedUrl(location.pathname, localeItem)}
|
|
963
|
-
hrefLang={localeItem}
|
|
964
|
-
aria-current={locale === localeItem ? "page" : undefined}
|
|
965
|
-
onClick={(e) => {
|
|
966
|
-
e.preventDefault();
|
|
967
|
-
setLocale(localeItem);
|
|
968
|
-
}}
|
|
969
|
-
key={localeItem}
|
|
970
|
-
>
|
|
971
|
-
<span>
|
|
972
|
-
{/* Локаль - например, FR */}
|
|
973
|
-
{localeItem}
|
|
974
|
-
</span>
|
|
975
|
-
<span>
|
|
976
|
-
{/* Язык на его собственной локали - например, Français */}
|
|
977
|
-
{getLocaleName(localeItem, locale)}
|
|
978
|
-
</span>
|
|
979
|
-
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
980
|
-
{/* Язык на текущем локале - например, Francés при установленном локале Locales.SPANISH */}
|
|
981
|
-
{getLocaleName(localeItem)}
|
|
982
|
-
</span>
|
|
983
|
-
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
984
|
-
{/* Язык на английском - например, French */}
|
|
985
|
-
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
986
|
-
</span>
|
|
987
|
-
</a>
|
|
988
|
-
))}
|
|
989
|
-
</div>
|
|
990
|
-
</div>
|
|
991
|
-
);
|
|
992
|
-
};
|
|
993
|
-
```
|
|
994
|
-
|
|
995
|
-
```jsx fileName="src/components/LocaleSwitcher.csx" codeFormat="commonjs"
|
|
996
|
-
const { useLocation, useNavigate } = require("react-router-dom");
|
|
997
|
-
const {
|
|
998
|
-
Locales,
|
|
999
|
-
getHTMLTextDir,
|
|
1000
|
-
getLocaleName,
|
|
1001
|
-
getLocalizedUrl,
|
|
1002
|
-
} = require("intlayer");
|
|
1003
|
-
const { useLocale } = require("react-intlayer");
|
|
1004
|
-
|
|
1005
|
-
const LocaleSwitcher = () => {
|
|
1006
|
-
const { pathname, search } = useLocation(); // Получить текущий путь URL. Пример: /fr/about?foo=bar
|
|
463
|
+
const LocaleSwitcher: FC = () => {
|
|
464
|
+
const { pathname, search } = useLocation(); // Получаем текущий путь URL. Пример: /fr/about?foo=bar
|
|
1007
465
|
const navigate = useNavigate();
|
|
1008
466
|
|
|
1009
467
|
const { locale, availableLocales, setLocale } = useLocale({
|
|
1010
468
|
onLocaleChange: (locale) => {
|
|
1011
|
-
//
|
|
469
|
+
// Формируем URL с обновлённой локалью
|
|
1012
470
|
// Пример: /es/about?foo=bar
|
|
1013
471
|
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
1014
472
|
|
|
1015
|
-
//
|
|
473
|
+
// Обновляем путь URL
|
|
1016
474
|
navigate(pathWithLocale);
|
|
1017
475
|
},
|
|
1018
476
|
});
|
|
@@ -1041,7 +499,7 @@ const LocaleSwitcher = () => {
|
|
|
1041
499
|
{getLocaleName(localeItem, locale)}
|
|
1042
500
|
</span>
|
|
1043
501
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1044
|
-
{/* Язык на текущей локали - например, Francés при
|
|
502
|
+
{/* Язык на текущей локали - например, Francés при текущей локали Locales.SPANISH */}
|
|
1045
503
|
{getLocaleName(localeItem)}
|
|
1046
504
|
</span>
|
|
1047
505
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
@@ -1085,7 +543,7 @@ const LocaleSwitcher = () => {
|
|
|
1085
543
|
|
|
1086
544
|
Создайте пользовательский хук для управления атрибутами HTML. Хук отслеживает изменения локали и обновляет атрибуты соответствующим образом:
|
|
1087
545
|
|
|
1088
|
-
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
|
|
546
|
+
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx" codeFormat={["typescript", "esm"]}
|
|
1089
547
|
import { useEffect } from "react";
|
|
1090
548
|
import { useLocale } from "react-intlayer";
|
|
1091
549
|
import { getHTMLTextDir } from "intlayer";
|
|
@@ -1110,63 +568,11 @@ export const useI18nHTMLAttributes = () => {
|
|
|
1110
568
|
};
|
|
1111
569
|
```
|
|
1112
570
|
|
|
1113
|
-
```jsx fileName="src/hooks/useI18nHTMLAttributes.msx" codeFormat="esm"
|
|
1114
|
-
import { useEffect } from "react";
|
|
1115
|
-
import { useLocale } from "react-intlayer";
|
|
1116
|
-
import { getHTMLTextDir } from "intlayer";
|
|
1117
|
-
|
|
1118
|
-
/**
|
|
1119
|
-
* Обновляет атрибуты `lang` и `dir` элемента HTML <html> в зависимости от текущей локали.
|
|
1120
|
-
* - `lang`: Информирует браузеры и поисковые системы о языке страницы.
|
|
1121
|
-
* - `dir`: Обеспечивает правильный порядок чтения (например, 'ltr' для английского, 'rtl' для арабского).
|
|
1122
|
-
*
|
|
1123
|
-
* Это динамическое обновление необходимо для правильного отображения текста, доступности и SEO.
|
|
1124
|
-
*/
|
|
1125
|
-
export const useI18nHTMLAttributes = () => {
|
|
1126
|
-
const { locale } = useLocale();
|
|
1127
|
-
|
|
1128
|
-
useEffect(() => {
|
|
1129
|
-
// Обновить атрибут языка на текущую локаль.
|
|
1130
|
-
document.documentElement.lang = locale;
|
|
1131
|
-
|
|
1132
|
-
// Установить направление текста в зависимости от текущей локали.
|
|
1133
|
-
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1134
|
-
}, [locale]);
|
|
1135
|
-
};
|
|
1136
|
-
```
|
|
1137
|
-
|
|
1138
|
-
```jsx fileName="src/hooks/useI18nHTMLAttributes.csx" codeFormat="commonjs"
|
|
1139
|
-
const { useEffect } = require("react");
|
|
1140
|
-
const { useLocale } = require("react-intlayer");
|
|
1141
|
-
const { getHTMLTextDir } = require("intlayer");
|
|
1142
|
-
|
|
1143
|
-
/**
|
|
1144
|
-
* Обновляет атрибуты `lang` и `dir` элемента HTML <html> в зависимости от текущей локали.
|
|
1145
|
-
* - `lang`: Информирует браузеры и поисковые системы о языке страницы.
|
|
1146
|
-
* - `dir`: Обеспечивает правильный порядок чтения (например, 'ltr' для английского, 'rtl' для арабского).
|
|
1147
|
-
*
|
|
1148
|
-
* Это динамическое обновление необходимо для корректного отображения текста, доступности и SEO.
|
|
1149
|
-
*/
|
|
1150
|
-
const useI18nHTMLAttributes = () => {
|
|
1151
|
-
const { locale } = useLocale();
|
|
1152
|
-
|
|
1153
|
-
useEffect(() => {
|
|
1154
|
-
// Обновляем атрибут языка на текущую локаль.
|
|
1155
|
-
document.documentElement.lang = locale;
|
|
1156
|
-
|
|
1157
|
-
// Устанавливаем направление текста в зависимости от текущей локали.
|
|
1158
|
-
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1159
|
-
}, [locale]);
|
|
1160
|
-
};
|
|
1161
|
-
|
|
1162
|
-
module.exports = { useI18nHTMLAttributes };
|
|
1163
|
-
```
|
|
1164
|
-
|
|
1165
571
|
#### Использование хука в вашем приложении
|
|
1166
572
|
|
|
1167
573
|
Интегрируйте хук в ваш главный компонент, чтобы атрибуты HTML обновлялись при каждом изменении локали:
|
|
1168
574
|
|
|
1169
|
-
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
575
|
+
```tsx fileName="src/App.tsx" codeFormat={["typescript", "esm"]}
|
|
1170
576
|
import type { FC } from "react";
|
|
1171
577
|
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1172
578
|
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
@@ -1188,49 +594,6 @@ const App: FC = () => (
|
|
|
1188
594
|
export default App;
|
|
1189
595
|
```
|
|
1190
596
|
|
|
1191
|
-
```jsx fileName="src/App.msx" codeFormat="esm"
|
|
1192
|
-
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1193
|
-
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
1194
|
-
import "./App.css";
|
|
1195
|
-
|
|
1196
|
-
const AppContent = () => {
|
|
1197
|
-
// Применяем хук для обновления атрибутов lang и dir тега <html> в зависимости от локали.
|
|
1198
|
-
useI18nHTMLAttributes();
|
|
1199
|
-
|
|
1200
|
-
// ... Остальная часть вашего компонента
|
|
1201
|
-
};
|
|
1202
|
-
|
|
1203
|
-
const App = () => (
|
|
1204
|
-
<IntlayerProvider>
|
|
1205
|
-
<AppContent />
|
|
1206
|
-
</IntlayerProvider>
|
|
1207
|
-
);
|
|
1208
|
-
|
|
1209
|
-
export default App;
|
|
1210
|
-
```
|
|
1211
|
-
|
|
1212
|
-
```jsx fileName="src/App.csx" codeFormat="commonjs"
|
|
1213
|
-
const { FC } = require("react");
|
|
1214
|
-
const { IntlayerProvider, useIntlayer } = require("react-intlayer");
|
|
1215
|
-
const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
|
|
1216
|
-
require("./App.css");
|
|
1217
|
-
|
|
1218
|
-
const AppContent = () => {
|
|
1219
|
-
// Применяем хук для обновления атрибутов lang и dir тега <html> в зависимости от локали.
|
|
1220
|
-
useI18nHTMLAttributes();
|
|
1221
|
-
|
|
1222
|
-
// ... Остальная часть вашего компонента
|
|
1223
|
-
};
|
|
1224
|
-
|
|
1225
|
-
const App = () => (
|
|
1226
|
-
<IntlayerProvider>
|
|
1227
|
-
<AppContent />
|
|
1228
|
-
</IntlayerProvider>
|
|
1229
|
-
);
|
|
1230
|
-
|
|
1231
|
-
module.exports = App;
|
|
1232
|
-
```
|
|
1233
|
-
|
|
1234
597
|
Применяя эти изменения, ваше приложение будет:
|
|
1235
598
|
|
|
1236
599
|
- Обеспечивать корректное отражение текущей локали в атрибуте **language** (`lang`), что важно для SEO и поведения браузера.
|
|
@@ -1249,7 +612,7 @@ module.exports = App;
|
|
|
1249
612
|
|
|
1250
613
|
Ниже приведена реализация локализованного компонента `Link` на TypeScript:
|
|
1251
614
|
|
|
1252
|
-
```tsx fileName="src/components/Link.tsx" codeFormat="typescript"
|
|
615
|
+
```tsx fileName="src/components/Link.tsx" codeFormat={["typescript", "esm"]}
|
|
1253
616
|
import { getLocalizedUrl } from "intlayer";
|
|
1254
617
|
import {
|
|
1255
618
|
forwardRef,
|
|
@@ -1295,79 +658,6 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
1295
658
|
Link.displayName = "Link";
|
|
1296
659
|
```
|
|
1297
660
|
|
|
1298
|
-
```jsx fileName="src/components/Link.mjx" codeFormat="esm"
|
|
1299
|
-
import { getLocalizedUrl } from "intlayer";
|
|
1300
|
-
import { useLocale } from "react-intlayer";
|
|
1301
|
-
import { forwardRef } from "react";
|
|
1302
|
-
|
|
1303
|
-
/**
|
|
1304
|
-
* Утилита для проверки, является ли данный URL внешним.
|
|
1305
|
-
* Если URL начинается с http:// или https://, он считается внешним.
|
|
1306
|
-
*/
|
|
1307
|
-
export const checkIsExternalLink = (href?: string): boolean =>
|
|
1308
|
-
/^https?:\/\//.test(href ?? "");
|
|
1309
|
-
|
|
1310
|
-
/**
|
|
1311
|
-
* Кастомный компонент Link, который адаптирует атрибут href в зависимости от текущей локали.
|
|
1312
|
-
* Для внутренних ссылок используется `getLocalizedUrl`, чтобы добавить префикс локали к URL (например, /fr/about).
|
|
1313
|
-
* Это гарантирует, что навигация остается в контексте одной локали.
|
|
1314
|
-
*/
|
|
1315
|
-
export const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1316
|
-
const { locale } = useLocale();
|
|
1317
|
-
const isExternalLink = checkIsExternalLink(href);
|
|
1318
|
-
|
|
1319
|
-
// Если ссылка внутренняя и предоставлен действительный href, получить локализованный URL.
|
|
1320
|
-
const hrefI18n =
|
|
1321
|
-
href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
|
|
1322
|
-
|
|
1323
|
-
return (
|
|
1324
|
-
<a href={hrefI18n} ref={ref} {...props}>
|
|
1325
|
-
{children}
|
|
1326
|
-
</a>
|
|
1327
|
-
);
|
|
1328
|
-
});
|
|
1329
|
-
|
|
1330
|
-
Link.displayName = "Link";
|
|
1331
|
-
```
|
|
1332
|
-
|
|
1333
|
-
```jsx fileName="src/components/Link.csx" codeFormat="commonjs"
|
|
1334
|
-
const { getLocalizedUrl } = require("intlayer");
|
|
1335
|
-
const { useLocale } = require("react-intlayer");
|
|
1336
|
-
const { forwardRef } = require("react");
|
|
1337
|
-
|
|
1338
|
-
/**
|
|
1339
|
-
* Вспомогательная функция для проверки, является ли данный URL внешним.
|
|
1340
|
-
* Если URL начинается с http:// или https://, он считается внешним.
|
|
1341
|
-
*/
|
|
1342
|
-
const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
|
|
1343
|
-
|
|
1344
|
-
/**
|
|
1345
|
-
* Пользовательский компонент Link, который адаптирует атрибут href в зависимости от текущей локали.
|
|
1346
|
-
* Для внутренних ссылок используется `getLocalizedUrl`, чтобы добавить префикс локали к URL (например, /fr/about).
|
|
1347
|
-
* Это гарантирует, что навигация останется в контексте той же локали.
|
|
1348
|
-
*/
|
|
1349
|
-
const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1350
|
-
const { locale } = useLocale();
|
|
1351
|
-
const isExternalLink = checkIsExternalLink(href);
|
|
1352
|
-
|
|
1353
|
-
// Если ссылка внутренняя и задан корректный href, получить локализованный URL.
|
|
1354
|
-
const localizedHref = isExternalLink ? href : getLocalizedUrl(href, locale);
|
|
1355
|
-
|
|
1356
|
-
return (
|
|
1357
|
-
<a
|
|
1358
|
-
href={localizedHref}
|
|
1359
|
-
ref={ref}
|
|
1360
|
-
{...props}
|
|
1361
|
-
aria-current={isExternalLink ? "external" : undefined}
|
|
1362
|
-
>
|
|
1363
|
-
{children}
|
|
1364
|
-
</a>
|
|
1365
|
-
);
|
|
1366
|
-
});
|
|
1367
|
-
|
|
1368
|
-
Link.displayName = "Link";
|
|
1369
|
-
```
|
|
1370
|
-
|
|
1371
661
|
#### Как это работает
|
|
1372
662
|
|
|
1373
663
|
- **Определение внешних ссылок**:
|
|
@@ -1439,7 +729,7 @@ Intlayer использует расширение модулей (module augmen
|
|
|
1439
729
|
|
|
1440
730
|
Чтобы настроить его, вы можете добавить раздел `compiler` в ваш файл `intlayer.config.ts`:
|
|
1441
731
|
|
|
1442
|
-
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
732
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
1443
733
|
import { type IntlayerConfig } from "intlayer";
|
|
1444
734
|
|
|
1445
735
|
const config: IntlayerConfig = {
|
|
@@ -1470,66 +760,6 @@ const config: IntlayerConfig = {
|
|
|
1470
760
|
export default config;
|
|
1471
761
|
```
|
|
1472
762
|
|
|
1473
|
-
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1474
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
1475
|
-
const config = {
|
|
1476
|
-
// ... Остальная часть вашей конфигурации
|
|
1477
|
-
compiler: {
|
|
1478
|
-
/**
|
|
1479
|
-
* Указывает, должен ли быть включен компилятор.
|
|
1480
|
-
*/
|
|
1481
|
-
enabled: true,
|
|
1482
|
-
|
|
1483
|
-
/**
|
|
1484
|
-
* Определяет путь к выходным файлам
|
|
1485
|
-
*/
|
|
1486
|
-
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1487
|
-
|
|
1488
|
-
/**
|
|
1489
|
-
* Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
|
|
1490
|
-
*/
|
|
1491
|
-
saveComponents: false,
|
|
1492
|
-
|
|
1493
|
-
/**
|
|
1494
|
-
* Префикс ключа словаря
|
|
1495
|
-
*/
|
|
1496
|
-
dictionaryKeyPrefix: "",
|
|
1497
|
-
},
|
|
1498
|
-
};
|
|
1499
|
-
|
|
1500
|
-
export default config;
|
|
1501
|
-
```
|
|
1502
|
-
|
|
1503
|
-
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1504
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
1505
|
-
const config = {
|
|
1506
|
-
// ... Остальная часть вашей конфигурации
|
|
1507
|
-
compiler: {
|
|
1508
|
-
/**
|
|
1509
|
-
* Указывает, должен ли быть включен компилятор.
|
|
1510
|
-
*/
|
|
1511
|
-
enabled: true,
|
|
1512
|
-
|
|
1513
|
-
/**
|
|
1514
|
-
* Определяет путь к выходным файлам
|
|
1515
|
-
*/
|
|
1516
|
-
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1517
|
-
|
|
1518
|
-
/**
|
|
1519
|
-
* Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
|
|
1520
|
-
*/
|
|
1521
|
-
saveComponents: false,
|
|
1522
|
-
|
|
1523
|
-
/**
|
|
1524
|
-
* Префикс ключа словаря
|
|
1525
|
-
*/
|
|
1526
|
-
dictionaryKeyPrefix: "",
|
|
1527
|
-
},
|
|
1528
|
-
};
|
|
1529
|
-
|
|
1530
|
-
module.exports = config;
|
|
1531
|
-
```
|
|
1532
|
-
|
|
1533
763
|
<Tabs>
|
|
1534
764
|
<Tab value='Команда извлечения'>
|
|
1535
765
|
|
|
@@ -1587,6 +817,80 @@ bun run build # Or bun run dev
|
|
|
1587
817
|
</Tab>
|
|
1588
818
|
</Tabs>
|
|
1589
819
|
|
|
820
|
+
### (Опционально) Sitemap и robots.txt (генерация на сборке)
|
|
821
|
+
|
|
822
|
+
Intlayer предоставляет `generateSitemap` и `getMultilingualUrls` — утилиты, которые формируют многоязычные `sitemap.xml` и `robots.txt` для краулеров и позволяют автоматически записать их в `public/`. Обычно запускают небольшой Node-скрипт **до** Vite (например, npm-хуки `predev` / `prebuild`).
|
|
823
|
+
|
|
824
|
+
#### Sitemap
|
|
825
|
+
|
|
826
|
+
Генератор sitemap учитывает локали и добавляет нужные метаданные.
|
|
827
|
+
|
|
828
|
+
> Поддерживается пространство имён `xhtml:link` (hreflang). Вместо плоского списка URL Intlayer связывает все языковые версии страницы в обе стороны (например `/about`, `/fr/about` или `/about?lang=fr` в зависимости от режима маршрутизации).
|
|
829
|
+
|
|
830
|
+
#### Robots.txt
|
|
831
|
+
|
|
832
|
+
Используйте `getMultilingualUrls`, чтобы правила `Disallow` покрывали все локализованные варианты путей.
|
|
833
|
+
|
|
834
|
+
#### 1. Файл `generate-seo.mjs` в корне проекта
|
|
835
|
+
|
|
836
|
+
```javascript fileName="generate-seo.mjs"
|
|
837
|
+
import fs from "fs";
|
|
838
|
+
import path from "path";
|
|
839
|
+
import { fileURLToPath } from "url";
|
|
840
|
+
import { generateSitemap, getMultilingualUrls } from "intlayer";
|
|
841
|
+
|
|
842
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
843
|
+
|
|
844
|
+
const SITE_URL = (process.env.SITE_URL || "http://localhost:5173").replace(
|
|
845
|
+
/\/$/,
|
|
846
|
+
""
|
|
847
|
+
);
|
|
848
|
+
|
|
849
|
+
const pathList = [
|
|
850
|
+
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
851
|
+
{ path: "/about", changefreq: "monthly", priority: 0.7 },
|
|
852
|
+
];
|
|
853
|
+
|
|
854
|
+
const sitemapXml = generateSitemap(pathList, { siteUrl: SITE_URL });
|
|
855
|
+
fs.writeFileSync(path.join(__dirname, "public", "sitemap.xml"), sitemapXml);
|
|
856
|
+
|
|
857
|
+
const getAllMultilingualUrls = (urls) =>
|
|
858
|
+
urls.flatMap((url) => Object.values(getMultilingualUrls(url)));
|
|
859
|
+
|
|
860
|
+
const disallowedPaths = getAllMultilingualUrls(["/admin", "/private"]);
|
|
861
|
+
|
|
862
|
+
const robotsTxt = [
|
|
863
|
+
"User-agent: *",
|
|
864
|
+
"Allow: /",
|
|
865
|
+
...disallowedPaths.map((path) => `Disallow: ${path}`),
|
|
866
|
+
"",
|
|
867
|
+
`Sitemap: ${SITE_URL}/sitemap.xml`,
|
|
868
|
+
].join("\n");
|
|
869
|
+
|
|
870
|
+
fs.writeFileSync(path.join(__dirname, "public", "robots.txt"), robotsTxt);
|
|
871
|
+
|
|
872
|
+
console.log("SEO files generated successfully.");
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
Пакет `intlayer` должен быть установлен. Для продакшена задайте `SITE_URL` в окружении (например в CI).
|
|
876
|
+
|
|
877
|
+
> Для Node ESM предпочтительно `generate-seo.mjs`. Для `generate-seo.js` укажите `"type": "module"` в `package.json` или включите ESM иначе.
|
|
878
|
+
|
|
879
|
+
#### 2. Запуск скрипта до Vite
|
|
880
|
+
|
|
881
|
+
```json fileName="package.json"
|
|
882
|
+
{
|
|
883
|
+
"scripts": {
|
|
884
|
+
"dev": "vite",
|
|
885
|
+
"prebuild": "node generate-seo.mjs",
|
|
886
|
+
"build": "vite build",
|
|
887
|
+
"preview": "vite preview"
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
Подстройте команды для pnpm или yarn. Скрипт можно вызывать из CI или другого шага.
|
|
893
|
+
|
|
1590
894
|
### Продвинутые возможности
|
|
1591
895
|
|
|
1592
896
|
Для расширения возможностей вы можете реализовать [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) или вынести ваш контент во внешний [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).
|