@intlayer/docs 6.1.6-canary.0 → 7.0.0-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +14 -0
- package/blog/en/{intlayer_with_next-i18next.mdx → _intlayer_with_next-i18next.md} +69 -72
- package/blog/en/{intlayer_with_next-intl.mdx → _intlayer_with_next-intl.md} +52 -56
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +85 -80
- package/dist/cjs/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/cjs/blog.cjs +20 -45
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +60 -136
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs +20 -45
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +20 -45
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +438 -407
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +1407 -1118
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +286 -254
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +58 -78
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +33 -29
- package/dist/cjs/legal.cjs +20 -45
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs +7 -17
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +45 -102
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs +7 -17
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs +7 -17
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +433 -382
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1402 -1093
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +281 -229
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +53 -53
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/index.mjs +6 -5
- package/dist/esm/legal.mjs +7 -17
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts +17 -12
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts +30 -25
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/doc.d.ts +17 -12
- package/dist/types/doc.d.ts.map +1 -1
- package/dist/types/frequentQuestions.d.ts +17 -12
- package/dist/types/frequentQuestions.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +28 -24
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +79 -69
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +20 -15
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts +8 -4
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -5
- package/dist/types/legal.d.ts +17 -12
- package/dist/types/legal.d.ts.map +1 -1
- package/docs/ar/CI_CD.md +4 -6
- package/docs/ar/autoFill.md +10 -8
- package/docs/ar/configuration.md +16 -10
- package/docs/ar/dictionary/content_file.md +7 -7
- package/docs/ar/dictionary/enumeration.md +4 -4
- package/docs/ar/dictionary/file.md +4 -4
- package/docs/ar/dictionary/function_fetching.md +4 -4
- package/docs/ar/dictionary/gender.md +4 -6
- package/docs/ar/dictionary/insertion.md +4 -4
- package/docs/ar/dictionary/translation.md +4 -4
- package/docs/ar/formatters.md +19 -33
- package/docs/ar/how_works_intlayer.md +5 -5
- package/docs/ar/index.md +4 -4
- package/docs/ar/interest_of_intlayer.md +7 -7
- package/docs/ar/intlayer_CMS.md +10 -8
- package/docs/ar/intlayer_cli.md +7 -7
- package/docs/ar/intlayer_visual_editor.md +5 -5
- package/docs/ar/intlayer_with_angular.md +8 -8
- package/docs/ar/intlayer_with_astro.md +244 -0
- package/docs/ar/intlayer_with_create_react_app.md +9 -8
- package/docs/ar/intlayer_with_express.md +8 -8
- package/docs/ar/intlayer_with_lynx+react.md +6 -6
- package/docs/ar/intlayer_with_nestjs.md +8 -10
- package/docs/ar/intlayer_with_nextjs_14.md +4 -4
- package/docs/ar/intlayer_with_nextjs_15.md +9 -8
- package/docs/ar/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/ar/intlayer_with_nuxt.md +8 -8
- package/docs/ar/intlayer_with_react_native+expo.md +17 -26
- package/docs/ar/intlayer_with_react_router_v7.md +199 -245
- package/docs/ar/intlayer_with_tanstack.md +203 -279
- package/docs/ar/intlayer_with_vite+preact.md +15 -15
- package/docs/ar/intlayer_with_vite+react.md +14 -14
- package/docs/ar/intlayer_with_vite+solid.md +6 -6
- package/docs/ar/intlayer_with_vite+svelte.md +6 -6
- package/docs/ar/intlayer_with_vite+vue.md +15 -15
- package/docs/ar/introduction.md +4 -4
- package/docs/ar/locale_mapper.md +4 -6
- package/docs/ar/mcp_server.md +13 -9
- package/docs/ar/packages/express-intlayer/t.md +4 -4
- package/docs/ar/packages/intlayer/getConfiguration.md +4 -4
- package/docs/ar/packages/intlayer/getEnumeration.md +4 -4
- package/docs/ar/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/ar/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/ar/packages/intlayer/getLocaleName.md +4 -4
- package/docs/ar/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/ar/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/ar/packages/intlayer/getTranslation.md +4 -4
- package/docs/ar/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/ar/packages/next-intlayer/t.md +4 -4
- package/docs/ar/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/ar/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/ar/packages/next-intlayer/useLocale.md +4 -4
- package/docs/ar/packages/react-intlayer/t.md +4 -4
- package/docs/ar/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/ar/packages/react-intlayer/useLocale.md +4 -4
- package/docs/ar/per_locale_file.md +4 -4
- package/docs/ar/roadmap.md +7 -5
- package/docs/ar/testing.md +4 -7
- package/docs/ar/vs_code_extension.md +13 -9
- package/docs/de/CI_CD.md +4 -6
- package/docs/de/autoFill.md +10 -8
- package/docs/de/configuration.md +16 -10
- package/docs/de/dictionary/content_file.md +7 -7
- package/docs/de/dictionary/enumeration.md +4 -4
- package/docs/de/dictionary/file.md +4 -4
- package/docs/de/dictionary/function_fetching.md +4 -4
- package/docs/de/dictionary/gender.md +4 -6
- package/docs/de/dictionary/insertion.md +4 -4
- package/docs/de/dictionary/translation.md +4 -4
- package/docs/de/formatters.md +25 -57
- package/docs/de/how_works_intlayer.md +5 -7
- package/docs/de/index.md +4 -4
- package/docs/de/interest_of_intlayer.md +7 -7
- package/docs/de/intlayer_CMS.md +10 -8
- package/docs/de/intlayer_cli.md +7 -7
- package/docs/de/intlayer_visual_editor.md +5 -6
- package/docs/de/intlayer_with_angular.md +8 -8
- package/docs/de/intlayer_with_astro.md +244 -0
- package/docs/de/intlayer_with_create_react_app.md +4 -4
- package/docs/de/intlayer_with_express.md +8 -8
- package/docs/de/intlayer_with_lynx+react.md +6 -6
- package/docs/de/intlayer_with_nestjs.md +8 -10
- package/docs/de/intlayer_with_nextjs_14.md +4 -4
- package/docs/de/intlayer_with_nextjs_15.md +9 -8
- package/docs/de/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/de/intlayer_with_nuxt.md +8 -8
- package/docs/de/intlayer_with_react_native+expo.md +17 -26
- package/docs/de/intlayer_with_react_router_v7.md +197 -246
- package/docs/de/intlayer_with_tanstack.md +198 -272
- package/docs/de/intlayer_with_vite+preact.md +15 -15
- package/docs/de/intlayer_with_vite+react.md +16 -15
- package/docs/de/intlayer_with_vite+solid.md +6 -6
- package/docs/de/intlayer_with_vite+svelte.md +6 -6
- package/docs/de/intlayer_with_vite+vue.md +17 -17
- package/docs/de/introduction.md +4 -4
- package/docs/de/locale_mapper.md +4 -6
- package/docs/de/mcp_server.md +13 -9
- package/docs/de/packages/express-intlayer/t.md +4 -4
- package/docs/de/packages/intlayer/getConfiguration.md +4 -4
- package/docs/de/packages/intlayer/getEnumeration.md +4 -4
- package/docs/de/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/de/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/de/packages/intlayer/getLocaleName.md +4 -4
- package/docs/de/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/de/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/de/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/de/packages/intlayer/getTranslation.md +4 -4
- package/docs/de/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/de/packages/next-intlayer/t.md +4 -4
- package/docs/de/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/de/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/de/packages/next-intlayer/useLocale.md +4 -4
- package/docs/de/packages/react-intlayer/t.md +4 -4
- package/docs/de/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/de/packages/react-intlayer/useI18n.md +4 -4
- package/docs/de/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/de/packages/react-intlayer/useLocale.md +4 -4
- package/docs/de/per_locale_file.md +4 -4
- package/docs/de/roadmap.md +7 -5
- package/docs/de/testing.md +4 -7
- package/docs/de/vs_code_extension.md +13 -9
- package/docs/en/CI_CD.md +4 -6
- package/docs/en/autoFill.md +75 -28
- package/docs/en/configuration.md +214 -56
- package/docs/en/dictionary/condition.md +4 -6
- package/docs/en/dictionary/content_file.md +25 -17
- package/docs/en/dictionary/enumeration.md +4 -6
- package/docs/en/dictionary/file.md +16 -8
- package/docs/en/dictionary/function_fetching.md +4 -6
- package/docs/en/dictionary/gender.md +4 -6
- package/docs/en/dictionary/insertion.md +4 -6
- package/docs/en/dictionary/markdown.md +4 -6
- package/docs/en/dictionary/nesting.md +4 -6
- package/docs/en/dictionary/translation.md +4 -6
- package/docs/en/formatters.md +23 -50
- package/docs/en/how_works_intlayer.md +6 -8
- package/docs/en/index.md +5 -7
- package/docs/en/interest_of_intlayer.md +7 -7
- package/docs/en/intlayer_CMS.md +12 -12
- package/docs/en/intlayer_cli.md +97 -14
- package/docs/en/intlayer_visual_editor.md +14 -10
- package/docs/en/intlayer_with_angular.md +10 -12
- package/docs/en/intlayer_with_astro.md +244 -0
- package/docs/en/intlayer_with_create_react_app.md +10 -12
- package/docs/en/intlayer_with_express.md +9 -11
- package/docs/en/intlayer_with_lynx+react.md +7 -9
- package/docs/en/intlayer_with_nestjs.md +8 -10
- package/docs/en/intlayer_with_next-i18next.md +627 -0
- package/docs/en/intlayer_with_next-intl.md +446 -0
- package/docs/en/intlayer_with_nextjs_14.md +66 -31
- package/docs/en/intlayer_with_nextjs_15.md +81 -35
- package/docs/en/intlayer_with_nextjs_16.md +1586 -0
- package/docs/en/intlayer_with_nextjs_page_router.md +23 -15
- package/docs/en/intlayer_with_nuxt.md +10 -12
- package/docs/en/intlayer_with_react_native+expo.md +49 -27
- package/docs/en/intlayer_with_react_router_v7.md +169 -216
- package/docs/en/intlayer_with_tanstack.md +174 -249
- package/docs/en/intlayer_with_vite+preact.md +18 -20
- package/docs/en/intlayer_with_vite+react.md +68 -317
- package/docs/en/intlayer_with_vite+solid.md +8 -10
- package/docs/en/intlayer_with_vite+svelte.md +8 -10
- package/docs/en/intlayer_with_vite+vue.md +18 -20
- package/docs/en/introduction.md +5 -7
- package/docs/en/locale_mapper.md +4 -6
- package/docs/en/mcp_server.md +13 -9
- package/docs/en/packages/express-intlayer/t.md +4 -6
- package/docs/en/packages/intlayer/getConfiguration.md +4 -6
- package/docs/en/packages/intlayer/getEnumeration.md +4 -6
- package/docs/en/packages/intlayer/getHTMLTextDir.md +4 -6
- package/docs/en/packages/intlayer/getLocaleLang.md +4 -6
- package/docs/en/packages/intlayer/getLocaleName.md +4 -6
- package/docs/en/packages/intlayer/getLocalizedUrl.md +4 -6
- package/docs/en/packages/intlayer/getMultilingualUrls.md +4 -6
- package/docs/en/packages/intlayer/getPathWithoutLocale.md +4 -6
- package/docs/en/packages/intlayer/getTranslation.md +4 -6
- package/docs/en/packages/intlayer/getTranslationContent.md +4 -6
- package/docs/en/packages/next-intlayer/t.md +4 -6
- package/docs/en/packages/next-intlayer/useDictionary.md +5 -7
- package/docs/en/packages/next-intlayer/useIntlayer.md +5 -7
- package/docs/en/packages/next-intlayer/useLocale.md +41 -8
- package/docs/en/packages/react-intlayer/t.md +4 -6
- package/docs/en/packages/react-intlayer/useDictionary.md +5 -7
- package/docs/en/packages/react-intlayer/useI18n.md +5 -5
- package/docs/en/packages/react-intlayer/useIntlayer.md +5 -7
- package/docs/en/packages/react-intlayer/useLocale.md +4 -6
- package/docs/en/per_locale_file.md +4 -6
- package/docs/en/plugins/sync-json.md +244 -0
- package/docs/en/releases/v6.md +7 -0
- package/docs/en/releases/v7.md +486 -0
- package/docs/en/roadmap.md +11 -9
- package/docs/en/testing.md +13 -11
- package/docs/en/vs_code_extension.md +13 -9
- package/docs/en-GB/CI_CD.md +4 -6
- package/docs/en-GB/autoFill.md +10 -8
- package/docs/en-GB/configuration.md +16 -10
- package/docs/en-GB/dictionary/condition.md +4 -4
- package/docs/en-GB/dictionary/content_file.md +7 -7
- package/docs/en-GB/dictionary/enumeration.md +4 -4
- package/docs/en-GB/dictionary/file.md +4 -4
- package/docs/en-GB/dictionary/gender.md +4 -6
- package/docs/en-GB/dictionary/insertion.md +4 -4
- package/docs/en-GB/dictionary/markdown.md +4 -4
- package/docs/en-GB/dictionary/nesting.md +4 -4
- package/docs/en-GB/dictionary/translation.md +4 -4
- package/docs/en-GB/formatters.md +19 -33
- package/docs/en-GB/how_works_intlayer.md +5 -5
- package/docs/en-GB/index.md +4 -4
- package/docs/en-GB/interest_of_intlayer.md +7 -7
- package/docs/en-GB/intlayer_CMS.md +15 -13
- package/docs/en-GB/intlayer_cli.md +7 -7
- package/docs/en-GB/intlayer_visual_editor.md +5 -6
- package/docs/en-GB/intlayer_with_angular.md +8 -8
- package/docs/en-GB/intlayer_with_astro.md +244 -0
- package/docs/en-GB/intlayer_with_create_react_app.md +11 -10
- package/docs/en-GB/intlayer_with_express.md +8 -8
- package/docs/en-GB/intlayer_with_lynx+react.md +5 -5
- package/docs/en-GB/intlayer_with_nestjs.md +7 -9
- package/docs/en-GB/intlayer_with_nextjs_14.md +10 -10
- package/docs/en-GB/intlayer_with_nextjs_15.md +8 -7
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +7 -7
- package/docs/en-GB/intlayer_with_nuxt.md +7 -7
- package/docs/en-GB/intlayer_with_react_native+expo.md +16 -25
- package/docs/en-GB/intlayer_with_react_router_v7.md +175 -224
- package/docs/en-GB/intlayer_with_tanstack.md +181 -255
- package/docs/en-GB/intlayer_with_vite+preact.md +14 -14
- package/docs/en-GB/intlayer_with_vite+react.md +15 -14
- package/docs/en-GB/intlayer_with_vite+solid.md +5 -5
- package/docs/en-GB/intlayer_with_vite+svelte.md +5 -5
- package/docs/en-GB/intlayer_with_vite+vue.md +16 -16
- package/docs/en-GB/introduction.md +4 -4
- package/docs/en-GB/locale_mapper.md +4 -6
- package/docs/en-GB/mcp_server.md +13 -9
- package/docs/en-GB/packages/express-intlayer/t.md +4 -4
- package/docs/en-GB/packages/intlayer/getConfiguration.md +4 -4
- package/docs/en-GB/packages/intlayer/getEnumeration.md +4 -4
- package/docs/en-GB/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/en-GB/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/en-GB/packages/intlayer/getLocaleName.md +4 -4
- package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/en-GB/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/en-GB/packages/intlayer/getTranslation.md +4 -4
- package/docs/en-GB/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/en-GB/packages/next-intlayer/t.md +4 -4
- package/docs/en-GB/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/en-GB/packages/next-intlayer/useIntlayer.md +5 -5
- package/docs/en-GB/packages/next-intlayer/useLocale.md +4 -4
- package/docs/en-GB/packages/react-intlayer/t.md +4 -4
- package/docs/en-GB/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/en-GB/packages/react-intlayer/useI18n.md +4 -4
- package/docs/en-GB/packages/react-intlayer/useIntlayer.md +5 -5
- package/docs/en-GB/packages/react-intlayer/useLocale.md +4 -4
- package/docs/en-GB/per_locale_file.md +4 -4
- package/docs/en-GB/roadmap.md +7 -5
- package/docs/en-GB/testing.md +4 -7
- package/docs/en-GB/vs_code_extension.md +13 -9
- package/docs/es/CI_CD.md +4 -6
- package/docs/es/autoFill.md +10 -8
- package/docs/es/configuration.md +16 -10
- package/docs/es/dictionary/content_file.md +7 -7
- package/docs/es/dictionary/enumeration.md +4 -4
- package/docs/es/dictionary/file.md +4 -4
- package/docs/es/dictionary/function_fetching.md +4 -4
- package/docs/es/dictionary/gender.md +4 -6
- package/docs/es/dictionary/insertion.md +4 -4
- package/docs/es/dictionary/translation.md +4 -4
- package/docs/es/formatters.md +25 -57
- package/docs/es/how_works_intlayer.md +5 -5
- package/docs/es/index.md +4 -4
- package/docs/es/interest_of_intlayer.md +7 -7
- package/docs/es/intlayer_CMS.md +10 -8
- package/docs/es/intlayer_cli.md +7 -7
- package/docs/es/intlayer_visual_editor.md +5 -7
- package/docs/es/intlayer_with_angular.md +8 -8
- package/docs/es/intlayer_with_astro.md +244 -0
- package/docs/es/intlayer_with_create_react_app.md +9 -8
- package/docs/es/intlayer_with_express.md +8 -8
- package/docs/es/intlayer_with_lynx+react.md +6 -6
- package/docs/es/intlayer_with_nestjs.md +6 -8
- package/docs/es/intlayer_with_nextjs_14.md +8 -8
- package/docs/es/intlayer_with_nextjs_15.md +9 -8
- package/docs/es/intlayer_with_nextjs_page_router.md +6 -6
- package/docs/es/intlayer_with_nuxt.md +6 -6
- package/docs/es/intlayer_with_react_native+expo.md +17 -26
- package/docs/es/intlayer_with_react_router_v7.md +191 -235
- package/docs/es/intlayer_with_tanstack.md +208 -280
- package/docs/es/intlayer_with_vite+preact.md +13 -13
- package/docs/es/intlayer_with_vite+react.md +14 -13
- package/docs/es/intlayer_with_vite+solid.md +6 -6
- package/docs/es/intlayer_with_vite+svelte.md +6 -6
- package/docs/es/intlayer_with_vite+vue.md +15 -15
- package/docs/es/introduction.md +4 -4
- package/docs/es/locale_mapper.md +4 -6
- package/docs/es/mcp_server.md +13 -9
- package/docs/es/packages/express-intlayer/t.md +4 -4
- package/docs/es/packages/intlayer/getConfiguration.md +4 -4
- package/docs/es/packages/intlayer/getEnumeration.md +4 -4
- package/docs/es/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/es/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/es/packages/intlayer/getLocaleName.md +4 -4
- package/docs/es/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/es/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/es/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/es/packages/intlayer/getTranslation.md +4 -4
- package/docs/es/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/es/packages/next-intlayer/index.md +4 -4
- package/docs/es/packages/next-intlayer/t.md +4 -4
- package/docs/es/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/es/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/es/packages/next-intlayer/useLocale.md +4 -4
- package/docs/es/packages/react-intlayer/index.md +4 -4
- package/docs/es/packages/react-intlayer/t.md +4 -4
- package/docs/es/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/es/packages/react-intlayer/useI18n.md +4 -4
- package/docs/es/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/es/packages/react-intlayer/useLocale.md +4 -4
- package/docs/es/per_locale_file.md +4 -4
- package/docs/es/roadmap.md +7 -5
- package/docs/es/testing.md +4 -7
- package/docs/es/vs_code_extension.md +13 -9
- package/docs/fr/CI_CD.md +4 -4
- package/docs/fr/autoFill.md +10 -8
- package/docs/fr/configuration.md +19 -22
- package/docs/fr/dictionary/content_file.md +7 -7
- package/docs/fr/dictionary/enumeration.md +4 -4
- package/docs/fr/dictionary/file.md +4 -4
- package/docs/fr/dictionary/function_fetching.md +4 -4
- package/docs/fr/dictionary/gender.md +4 -6
- package/docs/fr/dictionary/insertion.md +4 -4
- package/docs/fr/dictionary/translation.md +4 -4
- package/docs/fr/formatters.md +25 -57
- package/docs/fr/how_works_intlayer.md +5 -5
- package/docs/fr/index.md +4 -4
- package/docs/fr/interest_of_intlayer.md +7 -7
- package/docs/fr/intlayer_CMS.md +10 -8
- package/docs/fr/intlayer_cli.md +7 -7
- package/docs/fr/intlayer_visual_editor.md +5 -6
- package/docs/fr/intlayer_with_angular.md +8 -8
- package/docs/fr/intlayer_with_astro.md +244 -0
- package/docs/fr/intlayer_with_create_react_app.md +9 -8
- package/docs/fr/intlayer_with_express.md +8 -8
- package/docs/fr/intlayer_with_lynx+react.md +6 -6
- package/docs/fr/intlayer_with_nestjs.md +8 -10
- package/docs/fr/intlayer_with_nextjs_14.md +4 -4
- package/docs/fr/intlayer_with_nextjs_15.md +7 -6
- package/docs/fr/intlayer_with_nextjs_page_router.md +6 -6
- package/docs/fr/intlayer_with_nuxt.md +6 -6
- package/docs/fr/intlayer_with_react_native+expo.md +17 -26
- package/docs/fr/intlayer_with_react_router_v7.md +192 -252
- package/docs/fr/intlayer_with_tanstack.md +197 -272
- package/docs/fr/intlayer_with_vite+preact.md +13 -13
- package/docs/fr/intlayer_with_vite+react.md +13 -13
- package/docs/fr/intlayer_with_vite+solid.md +6 -6
- package/docs/fr/intlayer_with_vite+svelte.md +6 -6
- package/docs/fr/intlayer_with_vite+vue.md +15 -15
- package/docs/fr/introduction.md +4 -4
- package/docs/fr/locale_mapper.md +4 -6
- package/docs/fr/mcp_server.md +13 -9
- package/docs/fr/packages/express-intlayer/t.md +4 -4
- package/docs/fr/packages/intlayer/getConfiguration.md +4 -4
- package/docs/fr/packages/intlayer/getEnumeration.md +4 -4
- package/docs/fr/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/fr/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/fr/packages/intlayer/getLocaleName.md +4 -4
- package/docs/fr/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/fr/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/fr/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/fr/packages/intlayer/getTranslation.md +4 -4
- package/docs/fr/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/fr/packages/next-intlayer/t.md +4 -4
- package/docs/fr/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/fr/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/fr/packages/next-intlayer/useLocale.md +4 -4
- package/docs/fr/packages/react-intlayer/index.md +4 -4
- package/docs/fr/packages/react-intlayer/t.md +4 -4
- package/docs/fr/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/fr/packages/react-intlayer/useI18n.md +4 -4
- package/docs/fr/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/fr/packages/react-intlayer/useLocale.md +4 -4
- package/docs/fr/per_locale_file.md +4 -4
- package/docs/fr/roadmap.md +7 -5
- package/docs/fr/testing.md +4 -7
- package/docs/fr/vs_code_extension.md +13 -9
- package/docs/hi/CI_CD.md +4 -6
- package/docs/hi/autoFill.md +10 -8
- package/docs/hi/configuration.md +16 -10
- package/docs/hi/dictionary/content_file.md +7 -7
- package/docs/hi/dictionary/enumeration.md +4 -4
- package/docs/hi/dictionary/file.md +4 -4
- package/docs/hi/dictionary/function_fetching.md +4 -4
- package/docs/hi/dictionary/gender.md +4 -6
- package/docs/hi/dictionary/insertion.md +4 -4
- package/docs/hi/dictionary/translation.md +4 -4
- package/docs/hi/formatters.md +19 -33
- package/docs/hi/how_works_intlayer.md +5 -5
- package/docs/hi/index.md +4 -4
- package/docs/hi/interest_of_intlayer.md +7 -7
- package/docs/hi/intlayer_CMS.md +10 -8
- package/docs/hi/intlayer_cli.md +8 -11
- package/docs/hi/intlayer_visual_editor.md +5 -6
- package/docs/hi/intlayer_with_angular.md +8 -8
- package/docs/hi/intlayer_with_astro.md +244 -0
- package/docs/hi/intlayer_with_create_react_app.md +4 -4
- package/docs/hi/intlayer_with_express.md +8 -8
- package/docs/hi/intlayer_with_lynx+react.md +6 -6
- package/docs/hi/intlayer_with_nestjs.md +8 -10
- package/docs/hi/intlayer_with_nextjs_14.md +4 -4
- package/docs/hi/intlayer_with_nextjs_15.md +9 -8
- package/docs/hi/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/hi/intlayer_with_nuxt.md +8 -8
- package/docs/hi/intlayer_with_react_native+expo.md +17 -26
- package/docs/hi/intlayer_with_react_router_v7.md +204 -248
- package/docs/hi/intlayer_with_tanstack.md +215 -290
- package/docs/hi/intlayer_with_vite+preact.md +15 -15
- package/docs/hi/intlayer_with_vite+react.md +16 -15
- package/docs/hi/intlayer_with_vite+solid.md +7 -7
- package/docs/hi/intlayer_with_vite+svelte.md +6 -6
- package/docs/hi/intlayer_with_vite+vue.md +17 -17
- package/docs/hi/introduction.md +4 -4
- package/docs/hi/locale_mapper.md +4 -6
- package/docs/hi/mcp_server.md +13 -9
- package/docs/hi/packages/express-intlayer/t.md +4 -4
- package/docs/hi/packages/intlayer/getConfiguration.md +4 -4
- package/docs/hi/packages/intlayer/getEnumeration.md +4 -4
- package/docs/hi/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/hi/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/hi/packages/intlayer/getLocaleName.md +4 -4
- package/docs/hi/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/hi/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/hi/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/hi/packages/intlayer/getTranslation.md +4 -4
- package/docs/hi/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/hi/packages/intlayer/index.md +4 -4
- package/docs/hi/packages/next-intlayer/t.md +4 -4
- package/docs/hi/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/hi/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/hi/packages/next-intlayer/useLocale.md +4 -4
- package/docs/hi/packages/react-intlayer/t.md +4 -4
- package/docs/hi/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/hi/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/hi/packages/react-intlayer/useLocale.md +4 -4
- package/docs/hi/per_locale_file.md +4 -4
- package/docs/hi/roadmap.md +7 -5
- package/docs/hi/testing.md +4 -7
- package/docs/hi/vs_code_extension.md +13 -9
- package/docs/it/CI_CD.md +4 -6
- package/docs/it/autoFill.md +10 -8
- package/docs/it/configuration.md +16 -10
- package/docs/it/dictionary/content_file.md +7 -7
- package/docs/it/dictionary/enumeration.md +4 -4
- package/docs/it/dictionary/file.md +4 -4
- package/docs/it/dictionary/function_fetching.md +4 -4
- package/docs/it/dictionary/gender.md +4 -6
- package/docs/it/dictionary/insertion.md +4 -4
- package/docs/it/dictionary/translation.md +4 -4
- package/docs/it/formatters.md +19 -55
- package/docs/it/how_works_intlayer.md +5 -5
- package/docs/it/index.md +4 -4
- package/docs/it/interest_of_intlayer.md +7 -7
- package/docs/it/intlayer_CMS.md +10 -8
- package/docs/it/intlayer_cli.md +7 -7
- package/docs/it/intlayer_visual_editor.md +5 -6
- package/docs/it/intlayer_with_angular.md +8 -8
- package/docs/it/intlayer_with_astro.md +244 -0
- package/docs/it/intlayer_with_create_react_app.md +9 -8
- package/docs/it/intlayer_with_express.md +8 -8
- package/docs/it/intlayer_with_lynx+react.md +6 -6
- package/docs/it/intlayer_with_nestjs.md +8 -10
- package/docs/it/intlayer_with_nextjs_14.md +4 -4
- package/docs/it/intlayer_with_nextjs_15.md +9 -8
- package/docs/it/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/it/intlayer_with_nuxt.md +8 -8
- package/docs/it/intlayer_with_react_native+expo.md +17 -27
- package/docs/it/intlayer_with_react_router_v7.md +198 -245
- package/docs/it/intlayer_with_tanstack.md +207 -271
- package/docs/it/intlayer_with_vite+preact.md +15 -15
- package/docs/it/intlayer_with_vite+react.md +20 -17
- package/docs/it/intlayer_with_vite+solid.md +6 -6
- package/docs/it/intlayer_with_vite+svelte.md +6 -6
- package/docs/it/intlayer_with_vite+vue.md +17 -17
- package/docs/it/introduction.md +4 -4
- package/docs/it/locale_mapper.md +4 -6
- package/docs/it/mcp_server.md +13 -9
- package/docs/it/packages/express-intlayer/t.md +4 -4
- package/docs/it/packages/intlayer/getConfiguration.md +4 -4
- package/docs/it/packages/intlayer/getEnumeration.md +4 -4
- package/docs/it/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/it/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/it/packages/intlayer/getLocaleName.md +4 -4
- package/docs/it/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/it/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/it/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/it/packages/intlayer/getTranslation.md +4 -4
- package/docs/it/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/it/packages/next-intlayer/t.md +4 -4
- package/docs/it/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/it/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/it/packages/next-intlayer/useLocale.md +4 -4
- package/docs/it/packages/react-intlayer/t.md +4 -4
- package/docs/it/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/it/packages/react-intlayer/useI18n.md +4 -4
- package/docs/it/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/it/packages/react-intlayer/useLocale.md +4 -4
- package/docs/it/per_locale_file.md +4 -4
- package/docs/it/roadmap.md +7 -5
- package/docs/it/testing.md +4 -7
- package/docs/it/vs_code_extension.md +13 -9
- package/docs/ja/CI_CD.md +4 -6
- package/docs/ja/autoFill.md +10 -8
- package/docs/ja/configuration.md +19 -22
- package/docs/ja/dictionary/content_file.md +7 -7
- package/docs/ja/dictionary/enumeration.md +4 -4
- package/docs/ja/dictionary/file.md +5 -5
- package/docs/ja/dictionary/function_fetching.md +4 -4
- package/docs/ja/dictionary/gender.md +4 -6
- package/docs/ja/dictionary/insertion.md +4 -4
- package/docs/ja/dictionary/translation.md +4 -4
- package/docs/ja/formatters.md +25 -57
- package/docs/ja/how_works_intlayer.md +5 -5
- package/docs/ja/index.md +4 -4
- package/docs/ja/interest_of_intlayer.md +7 -7
- package/docs/ja/intlayer_CMS.md +10 -9
- package/docs/ja/intlayer_cli.md +7 -7
- package/docs/ja/intlayer_visual_editor.md +5 -6
- package/docs/ja/intlayer_with_angular.md +8 -8
- package/docs/ja/intlayer_with_astro.md +244 -0
- package/docs/ja/intlayer_with_create_react_app.md +9 -8
- package/docs/ja/intlayer_with_express.md +8 -8
- package/docs/ja/intlayer_with_lynx+react.md +6 -6
- package/docs/ja/intlayer_with_nestjs.md +8 -10
- package/docs/ja/intlayer_with_nextjs_14.md +8 -8
- package/docs/ja/intlayer_with_nextjs_15.md +9 -8
- package/docs/ja/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/ja/intlayer_with_nuxt.md +8 -8
- package/docs/ja/intlayer_with_react_native+expo.md +24 -35
- package/docs/ja/intlayer_with_react_router_v7.md +207 -253
- package/docs/ja/intlayer_with_tanstack.md +220 -290
- package/docs/ja/intlayer_with_vite+preact.md +15 -15
- package/docs/ja/intlayer_with_vite+react.md +18 -17
- package/docs/ja/intlayer_with_vite+solid.md +6 -6
- package/docs/ja/intlayer_with_vite+svelte.md +6 -6
- package/docs/ja/intlayer_with_vite+vue.md +17 -17
- package/docs/ja/introduction.md +4 -4
- package/docs/ja/locale_mapper.md +4 -6
- package/docs/ja/mcp_server.md +13 -9
- package/docs/ja/packages/express-intlayer/t.md +4 -4
- package/docs/ja/packages/intlayer/getConfiguration.md +4 -4
- package/docs/ja/packages/intlayer/getEnumeration.md +4 -4
- package/docs/ja/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/ja/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/ja/packages/intlayer/getLocaleName.md +4 -4
- package/docs/ja/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/ja/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/ja/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/ja/packages/intlayer/getTranslation.md +4 -4
- package/docs/ja/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/ja/packages/next-intlayer/t.md +4 -4
- package/docs/ja/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/ja/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/ja/packages/next-intlayer/useLocale.md +4 -4
- package/docs/ja/packages/react-intlayer/t.md +4 -4
- package/docs/ja/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/ja/packages/react-intlayer/useI18n.md +4 -4
- package/docs/ja/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/ja/packages/react-intlayer/useLocale.md +4 -4
- package/docs/ja/per_locale_file.md +4 -4
- package/docs/ja/roadmap.md +7 -5
- package/docs/ja/testing.md +4 -7
- package/docs/ja/vs_code_extension.md +13 -9
- package/docs/ko/CI_CD.md +4 -6
- package/docs/ko/autoFill.md +10 -8
- package/docs/ko/configuration.md +19 -22
- package/docs/ko/dictionary/content_file.md +7 -7
- package/docs/ko/dictionary/enumeration.md +4 -4
- package/docs/ko/dictionary/file.md +4 -4
- package/docs/ko/dictionary/function_fetching.md +4 -4
- package/docs/ko/dictionary/gender.md +4 -6
- package/docs/ko/dictionary/insertion.md +4 -4
- package/docs/ko/dictionary/translation.md +4 -4
- package/docs/ko/formatters.md +19 -33
- package/docs/ko/how_works_intlayer.md +5 -5
- package/docs/ko/index.md +4 -4
- package/docs/ko/interest_of_intlayer.md +7 -7
- package/docs/ko/intlayer_CMS.md +10 -8
- package/docs/ko/intlayer_cli.md +7 -7
- package/docs/ko/intlayer_visual_editor.md +5 -6
- package/docs/ko/intlayer_with_angular.md +8 -8
- package/docs/ko/intlayer_with_astro.md +244 -0
- package/docs/ko/intlayer_with_create_react_app.md +9 -8
- package/docs/ko/intlayer_with_express.md +8 -8
- package/docs/ko/intlayer_with_lynx+react.md +6 -10
- package/docs/ko/intlayer_with_nestjs.md +8 -10
- package/docs/ko/intlayer_with_nextjs_14.md +8 -8
- package/docs/ko/intlayer_with_nextjs_15.md +9 -8
- package/docs/ko/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/ko/intlayer_with_nuxt.md +8 -8
- package/docs/ko/intlayer_with_react_native+expo.md +25 -34
- package/docs/ko/intlayer_with_react_router_v7.md +195 -249
- package/docs/ko/intlayer_with_tanstack.md +202 -274
- package/docs/ko/intlayer_with_vite+preact.md +15 -15
- package/docs/ko/intlayer_with_vite+react.md +17 -16
- package/docs/ko/intlayer_with_vite+solid.md +6 -6
- package/docs/ko/intlayer_with_vite+svelte.md +6 -6
- package/docs/ko/intlayer_with_vite+vue.md +17 -17
- package/docs/ko/introduction.md +4 -4
- package/docs/ko/locale_mapper.md +4 -6
- package/docs/ko/mcp_server.md +13 -9
- package/docs/ko/packages/express-intlayer/t.md +4 -4
- package/docs/ko/packages/intlayer/getConfiguration.md +4 -4
- package/docs/ko/packages/intlayer/getEnumeration.md +4 -4
- package/docs/ko/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/ko/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/ko/packages/intlayer/getLocaleName.md +4 -4
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +7 -16
- package/docs/ko/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/ko/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/ko/packages/intlayer/getTranslation.md +4 -4
- package/docs/ko/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/ko/packages/next-intlayer/t.md +4 -4
- package/docs/ko/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/ko/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/ko/packages/next-intlayer/useLocale.md +4 -4
- package/docs/ko/packages/react-intlayer/t.md +4 -4
- package/docs/ko/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/ko/packages/react-intlayer/useI18n.md +4 -4
- package/docs/ko/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/ko/packages/react-intlayer/useLocale.md +4 -4
- package/docs/ko/per_locale_file.md +4 -4
- package/docs/ko/roadmap.md +7 -5
- package/docs/ko/testing.md +4 -7
- package/docs/ko/vs_code_extension.md +13 -9
- package/docs/pt/CI_CD.md +4 -6
- package/docs/pt/autoFill.md +10 -8
- package/docs/pt/configuration.md +16 -22
- package/docs/pt/dictionary/content_file.md +7 -7
- package/docs/pt/dictionary/enumeration.md +4 -4
- package/docs/pt/dictionary/file.md +4 -4
- package/docs/pt/dictionary/function_fetching.md +4 -4
- package/docs/pt/dictionary/gender.md +4 -6
- package/docs/pt/dictionary/insertion.md +4 -4
- package/docs/pt/dictionary/translation.md +4 -4
- package/docs/pt/formatters.md +19 -33
- package/docs/pt/how_works_intlayer.md +5 -5
- package/docs/pt/index.md +4 -4
- package/docs/pt/interest_of_intlayer.md +7 -7
- package/docs/pt/intlayer_CMS.md +10 -8
- package/docs/pt/intlayer_cli.md +7 -7
- package/docs/pt/intlayer_visual_editor.md +5 -6
- package/docs/pt/intlayer_with_angular.md +8 -8
- package/docs/pt/intlayer_with_astro.md +244 -0
- package/docs/pt/intlayer_with_create_react_app.md +9 -8
- package/docs/pt/intlayer_with_express.md +8 -8
- package/docs/pt/intlayer_with_lynx+react.md +6 -6
- package/docs/pt/intlayer_with_nestjs.md +8 -10
- package/docs/pt/intlayer_with_nextjs_14.md +4 -4
- package/docs/pt/intlayer_with_nextjs_15.md +9 -8
- package/docs/pt/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/pt/intlayer_with_nuxt.md +8 -8
- package/docs/pt/intlayer_with_react_native+expo.md +17 -26
- package/docs/pt/intlayer_with_react_router_v7.md +10 -18
- package/docs/pt/intlayer_with_tanstack.md +189 -266
- package/docs/pt/intlayer_with_vite+preact.md +15 -15
- package/docs/pt/intlayer_with_vite+react.md +16 -15
- package/docs/pt/intlayer_with_vite+solid.md +6 -6
- package/docs/pt/intlayer_with_vite+svelte.md +6 -6
- package/docs/pt/intlayer_with_vite+vue.md +15 -15
- package/docs/pt/introduction.md +4 -5
- package/docs/pt/locale_mapper.md +4 -6
- package/docs/pt/mcp_server.md +13 -9
- package/docs/pt/packages/express-intlayer/t.md +4 -4
- package/docs/pt/packages/intlayer/getConfiguration.md +4 -4
- package/docs/pt/packages/intlayer/getEnumeration.md +4 -4
- package/docs/pt/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/pt/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/pt/packages/intlayer/getLocaleName.md +4 -4
- package/docs/pt/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/pt/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/pt/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/pt/packages/intlayer/getTranslation.md +4 -4
- package/docs/pt/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/pt/packages/next-intlayer/t.md +4 -4
- package/docs/pt/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/pt/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/pt/packages/next-intlayer/useLocale.md +4 -4
- package/docs/pt/packages/react-intlayer/t.md +4 -4
- package/docs/pt/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/pt/packages/react-intlayer/useI18n.md +4 -4
- package/docs/pt/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/pt/packages/react-intlayer/useLocale.md +4 -4
- package/docs/pt/per_locale_file.md +4 -4
- package/docs/pt/roadmap.md +7 -5
- package/docs/pt/testing.md +4 -7
- package/docs/pt/vs_code_extension.md +13 -9
- package/docs/ru/CI_CD.md +4 -6
- package/docs/ru/autoFill.md +10 -8
- package/docs/ru/configuration.md +16 -10
- package/docs/ru/dictionary/content_file.md +7 -7
- package/docs/ru/dictionary/enumeration.md +4 -4
- package/docs/ru/dictionary/file.md +4 -4
- package/docs/ru/dictionary/function_fetching.md +4 -4
- package/docs/ru/dictionary/gender.md +4 -6
- package/docs/ru/dictionary/insertion.md +4 -4
- package/docs/ru/dictionary/translation.md +4 -4
- package/docs/ru/formatters.md +20 -77
- package/docs/ru/how_works_intlayer.md +5 -5
- package/docs/ru/index.md +4 -4
- package/docs/ru/interest_of_intlayer.md +7 -7
- package/docs/ru/intlayer_CMS.md +10 -8
- package/docs/ru/intlayer_cli.md +7 -7
- package/docs/ru/intlayer_visual_editor.md +5 -5
- package/docs/ru/intlayer_with_angular.md +8 -8
- package/docs/ru/intlayer_with_astro.md +244 -0
- package/docs/ru/intlayer_with_create_react_app.md +9 -8
- package/docs/ru/intlayer_with_express.md +8 -8
- package/docs/ru/intlayer_with_lynx+react.md +6 -6
- package/docs/ru/intlayer_with_nestjs.md +8 -10
- package/docs/ru/intlayer_with_nextjs_14.md +4 -4
- package/docs/ru/intlayer_with_nextjs_15.md +9 -8
- package/docs/ru/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/ru/intlayer_with_nuxt.md +8 -8
- package/docs/ru/intlayer_with_react_native+expo.md +17 -26
- package/docs/ru/intlayer_with_react_router_v7.md +197 -243
- package/docs/ru/intlayer_with_tanstack.md +203 -277
- package/docs/ru/intlayer_with_vite+preact.md +15 -15
- package/docs/ru/intlayer_with_vite+react.md +16 -15
- package/docs/ru/intlayer_with_vite+solid.md +6 -6
- package/docs/ru/intlayer_with_vite+svelte.md +6 -6
- package/docs/ru/intlayer_with_vite+vue.md +17 -17
- package/docs/ru/introduction.md +4 -4
- package/docs/ru/locale_mapper.md +4 -6
- package/docs/ru/mcp_server.md +13 -9
- package/docs/ru/packages/express-intlayer/t.md +4 -4
- package/docs/ru/packages/intlayer/getConfiguration.md +4 -4
- package/docs/ru/packages/intlayer/getEnumeration.md +4 -4
- package/docs/ru/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/ru/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/ru/packages/intlayer/getLocaleName.md +4 -4
- package/docs/ru/packages/intlayer/getLocalizedUrl.md +4 -4
- package/docs/ru/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/ru/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/ru/packages/intlayer/getTranslation.md +4 -4
- package/docs/ru/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/ru/packages/next-intlayer/t.md +4 -4
- package/docs/ru/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/ru/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/ru/packages/next-intlayer/useLocale.md +4 -4
- package/docs/ru/packages/react-intlayer/t.md +4 -4
- package/docs/ru/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/ru/packages/react-intlayer/useI18n.md +4 -4
- package/docs/ru/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/ru/packages/react-intlayer/useLocale.md +4 -4
- package/docs/ru/per_locale_file.md +4 -4
- package/docs/ru/roadmap.md +7 -5
- package/docs/ru/testing.md +4 -7
- package/docs/ru/vs_code_extension.md +13 -9
- package/docs/tr/CI_CD.md +4 -6
- package/docs/tr/autoFill.md +10 -8
- package/docs/tr/configuration.md +19 -22
- package/docs/tr/dictionary/condition.md +4 -10
- package/docs/tr/dictionary/content_file.md +7 -7
- package/docs/tr/dictionary/enumeration.md +4 -10
- package/docs/tr/dictionary/file.md +4 -10
- package/docs/tr/dictionary/function_fetching.md +4 -10
- package/docs/tr/dictionary/gender.md +4 -10
- package/docs/tr/dictionary/insertion.md +4 -10
- package/docs/tr/dictionary/markdown.md +4 -10
- package/docs/tr/dictionary/nesting.md +4 -10
- package/docs/tr/dictionary/translation.md +4 -10
- package/docs/tr/formatters.md +19 -33
- package/docs/tr/how_works_intlayer.md +6 -8
- package/docs/tr/index.md +5 -7
- package/docs/tr/interest_of_intlayer.md +7 -7
- package/docs/tr/intlayer_CMS.md +10 -8
- package/docs/tr/intlayer_cli.md +8 -8
- package/docs/tr/intlayer_visual_editor.md +5 -7
- package/docs/tr/intlayer_with_angular.md +10 -12
- package/docs/tr/intlayer_with_astro.md +244 -0
- package/docs/tr/intlayer_with_create_react_app.md +10 -12
- package/docs/tr/intlayer_with_express.md +9 -11
- package/docs/tr/intlayer_with_lynx+react.md +7 -9
- package/docs/tr/intlayer_with_nestjs.md +8 -10
- package/docs/tr/intlayer_with_nextjs_14.md +11 -11
- package/docs/tr/intlayer_with_nextjs_15.md +14 -13
- package/docs/tr/intlayer_with_nextjs_page_router.md +14 -14
- package/docs/tr/intlayer_with_nuxt.md +10 -12
- package/docs/tr/intlayer_with_react_native+expo.md +18 -29
- package/docs/tr/intlayer_with_react_router_v7.md +225 -270
- package/docs/tr/intlayer_with_tanstack.md +401 -304
- package/docs/tr/intlayer_with_vite+preact.md +18 -24
- package/docs/tr/intlayer_with_vite+react.md +18 -24
- package/docs/tr/intlayer_with_vite+solid.md +8 -14
- package/docs/tr/intlayer_with_vite+svelte.md +8 -14
- package/docs/tr/intlayer_with_vite+vue.md +18 -24
- package/docs/tr/introduction.md +5 -7
- package/docs/tr/locale_mapper.md +4 -6
- package/docs/tr/mcp_server.md +13 -9
- package/docs/tr/packages/express-intlayer/t.md +4 -6
- package/docs/tr/packages/intlayer/getConfiguration.md +4 -10
- package/docs/tr/packages/intlayer/getEnumeration.md +4 -10
- package/docs/tr/packages/intlayer/getHTMLTextDir.md +4 -10
- package/docs/tr/packages/intlayer/getLocaleLang.md +4 -10
- package/docs/tr/packages/intlayer/getLocaleName.md +4 -10
- package/docs/tr/packages/intlayer/getLocalizedUrl.md +4 -10
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +4 -10
- package/docs/tr/packages/intlayer/getPathWithoutLocale.md +4 -10
- package/docs/tr/packages/intlayer/getTranslation.md +4 -10
- package/docs/tr/packages/intlayer/getTranslationContent.md +4 -10
- package/docs/tr/packages/next-intlayer/t.md +4 -6
- package/docs/tr/packages/next-intlayer/useDictionary.md +4 -6
- package/docs/tr/packages/next-intlayer/useIntlayer.md +4 -6
- package/docs/tr/packages/next-intlayer/useLocale.md +4 -6
- package/docs/tr/packages/react-intlayer/t.md +4 -6
- package/docs/tr/packages/react-intlayer/useDictionary.md +10 -273
- package/docs/tr/packages/react-intlayer/useI18n.md +5 -5
- package/docs/tr/packages/react-intlayer/useIntlayer.md +4 -6
- package/docs/tr/packages/react-intlayer/useLocale.md +4 -6
- package/docs/tr/per_locale_file.md +4 -6
- package/docs/tr/roadmap.md +11 -9
- package/docs/tr/testing.md +4 -7
- package/docs/tr/vs_code_extension.md +13 -9
- package/docs/zh/CI_CD.md +4 -6
- package/docs/zh/autoFill.md +10 -8
- package/docs/zh/configuration.md +19 -22
- package/docs/zh/dictionary/content_file.md +7 -7
- package/docs/zh/dictionary/enumeration.md +4 -4
- package/docs/zh/dictionary/file.md +4 -4
- package/docs/zh/dictionary/function_fetching.md +4 -4
- package/docs/zh/dictionary/gender.md +4 -6
- package/docs/zh/dictionary/insertion.md +4 -4
- package/docs/zh/dictionary/translation.md +4 -4
- package/docs/zh/formatters.md +19 -55
- package/docs/zh/how_works_intlayer.md +5 -5
- package/docs/zh/index.md +4 -4
- package/docs/zh/interest_of_intlayer.md +7 -7
- package/docs/zh/intlayer_CMS.md +10 -9
- package/docs/zh/intlayer_cli.md +7 -7
- package/docs/zh/intlayer_visual_editor.md +5 -6
- package/docs/zh/intlayer_with_angular.md +8 -8
- package/docs/zh/intlayer_with_astro.md +244 -0
- package/docs/zh/intlayer_with_create_react_app.md +9 -8
- package/docs/zh/intlayer_with_express.md +8 -8
- package/docs/zh/intlayer_with_lynx+react.md +6 -6
- package/docs/zh/intlayer_with_nestjs.md +8 -10
- package/docs/zh/intlayer_with_nextjs_14.md +8 -8
- package/docs/zh/intlayer_with_nextjs_15.md +9 -8
- package/docs/zh/intlayer_with_nextjs_page_router.md +8 -8
- package/docs/zh/intlayer_with_nuxt.md +8 -8
- package/docs/zh/intlayer_with_react_native+expo.md +25 -34
- package/docs/zh/intlayer_with_react_router_v7.md +204 -252
- package/docs/zh/intlayer_with_tanstack.md +211 -288
- package/docs/zh/intlayer_with_vite+preact.md +15 -15
- package/docs/zh/intlayer_with_vite+react.md +16 -15
- package/docs/zh/intlayer_with_vite+solid.md +6 -6
- package/docs/zh/intlayer_with_vite+svelte.md +6 -6
- package/docs/zh/intlayer_with_vite+vue.md +15 -15
- package/docs/zh/introduction.md +4 -4
- package/docs/zh/locale_mapper.md +4 -6
- package/docs/zh/mcp_server.md +13 -9
- package/docs/zh/packages/express-intlayer/t.md +4 -4
- package/docs/zh/packages/intlayer/getConfiguration.md +4 -4
- package/docs/zh/packages/intlayer/getEnumeration.md +4 -4
- package/docs/zh/packages/intlayer/getHTMLTextDir.md +4 -4
- package/docs/zh/packages/intlayer/getLocaleLang.md +4 -4
- package/docs/zh/packages/intlayer/getLocaleName.md +4 -4
- package/docs/zh/packages/intlayer/getLocalizedUrl.md +7 -16
- package/docs/zh/packages/intlayer/getMultilingualUrls.md +4 -4
- package/docs/zh/packages/intlayer/getPathWithoutLocale.md +4 -4
- package/docs/zh/packages/intlayer/getTranslation.md +4 -4
- package/docs/zh/packages/intlayer/getTranslationContent.md +4 -4
- package/docs/zh/packages/next-intlayer/t.md +4 -4
- package/docs/zh/packages/next-intlayer/useDictionary.md +4 -4
- package/docs/zh/packages/next-intlayer/useIntlayer.md +4 -4
- package/docs/zh/packages/next-intlayer/useLocale.md +4 -4
- package/docs/zh/packages/react-intlayer/t.md +4 -4
- package/docs/zh/packages/react-intlayer/useDictionary.md +4 -4
- package/docs/zh/packages/react-intlayer/useI18n.md +4 -4
- package/docs/zh/packages/react-intlayer/useIntlayer.md +4 -4
- package/docs/zh/packages/react-intlayer/useLocale.md +4 -4
- package/docs/zh/per_locale_file.md +4 -4
- package/docs/zh/roadmap.md +7 -5
- package/docs/zh/testing.md +4 -7
- package/docs/zh/vs_code_extension.md +13 -9
- package/frequent_questions/ar/bun_set_up.md +54 -0
- package/frequent_questions/de/bun_set_up.md +54 -0
- package/frequent_questions/en/bun_set_up.md +54 -0
- package/frequent_questions/en-GB/bun_set_up.md +54 -0
- package/frequent_questions/es/bun_set_up.md +54 -0
- package/frequent_questions/fr/bun_set_up.md +54 -0
- package/frequent_questions/hi/bun_set_up.md +55 -0
- package/frequent_questions/it/bun_set_up.md +55 -0
- package/frequent_questions/ja/bun_set_up.md +54 -0
- package/frequent_questions/ko/bun_set_up.md +54 -0
- package/frequent_questions/pt/bun_set_up.md +55 -0
- package/frequent_questions/ru/bun_set_up.md +55 -0
- package/frequent_questions/tr/bun_set_up.md +55 -0
- package/frequent_questions/zh/bun_set_up.md +54 -0
- package/package.json +42 -47
- package/src/blog.ts +16 -8
- package/src/common.ts +7 -8
- package/src/doc.ts +18 -8
- package/src/frequentQuestions.ts +23 -8
- package/src/generated/blog.entry.ts +152 -84
- package/src/generated/docs.entry.ts +536 -219
- package/src/generated/frequentQuestions.entry.ts +122 -56
- package/src/generated/legal.entry.ts +32 -24
- package/src/legal.ts +16 -8
- package/LICENSE +0 -202
- package/dist/cjs/index.cjs.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/docs/de/packages/@intlayer/api/index.md +0 -56
- package/docs/de/packages/@intlayer/chokidar/index.md +0 -56
- package/docs/de/packages/@intlayer/cli/index.md +0 -45
- package/docs/de/packages/@intlayer/config/index.md +0 -140
- package/docs/de/packages/@intlayer/core/index.md +0 -49
- package/docs/de/packages/@intlayer/design-system/index.md +0 -45
- package/docs/de/packages/@intlayer/dictionary-entry/index.md +0 -45
- package/docs/de/packages/@intlayer/editor/index.md +0 -45
- package/docs/de/packages/@intlayer/editor-react/index.md +0 -45
- package/docs/de/packages/@intlayer/webpack/index.md +0 -59
- package/docs/de/packages/angular-intlayer/index.md +0 -53
- package/docs/de/packages/express-intlayer/index.md +0 -284
- package/docs/de/packages/intlayer/index.md +0 -500
- package/docs/de/packages/intlayer-cli/index.md +0 -65
- package/docs/de/packages/intlayer-editor/index.md +0 -137
- package/docs/de/packages/lynx-intlayer/index.md +0 -83
- package/docs/de/packages/next-intlayer/index.md +0 -285
- package/docs/de/packages/nuxt-intlayer/index.md +0 -53
- package/docs/de/packages/preact-intlayer/index.md +0 -53
- package/docs/de/packages/react-intlayer/index.md +0 -280
- package/docs/de/packages/react-native-intlayer/index.md +0 -83
- package/docs/de/packages/react-scripts-intlayer/index.md +0 -80
- package/docs/de/packages/solid-intlayer/index.md +0 -54
- package/docs/de/packages/svelte-intlayer/index.md +0 -53
- package/docs/de/packages/vite-intlayer/index.md +0 -76
- package/docs/de/packages/vue-intlayer/index.md +0 -53
- package/docs/es/packages/angular-intlayer/index.md +0 -53
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
3
|
updatedAt: 2025-09-09
|
|
4
|
-
title:
|
|
4
|
+
title: Как перевести ваше Tanstack Start – руководство i18n 2025
|
|
5
5
|
description: Узнайте, как добавить интернационализацию (i18n) в ваше приложение Tanstack Start с помощью Intlayer. Следуйте этому подробному руководству, чтобы сделать ваше приложение многоязычным с маршрутизацией, учитывающей локаль.
|
|
6
6
|
keywords:
|
|
7
7
|
- Интернационализация
|
|
@@ -15,13 +15,15 @@ keywords:
|
|
|
15
15
|
slugs:
|
|
16
16
|
- doc
|
|
17
17
|
- environment
|
|
18
|
-
- vite-and-react
|
|
19
18
|
- tanstack-start
|
|
20
|
-
applicationTemplate: https://github.com/
|
|
21
|
-
|
|
19
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-tanstack-start-template
|
|
20
|
+
history:
|
|
21
|
+
- version: 5.8.1
|
|
22
|
+
date: 2025-09-09
|
|
23
|
+
changes: Добавлено для Tanstack Start
|
|
22
24
|
---
|
|
23
25
|
|
|
24
|
-
#
|
|
26
|
+
# Переведите ваш Tanstack Start с Intlayer | Интернационализация (i18n)
|
|
25
27
|
|
|
26
28
|
Это руководство демонстрирует, как интегрировать **Intlayer** для бесшовной интернационализации в проектах Tanstack Start с маршрутизацией, учитывающей локаль, поддержкой TypeScript и современными практиками разработки.
|
|
27
29
|
|
|
@@ -33,9 +35,9 @@ author: AydinTheFirst
|
|
|
33
35
|
|
|
34
36
|
- **Легко управлять переводами** с использованием декларативных словарей на уровне компонентов.
|
|
35
37
|
- **Динамически локализовать метаданные**, маршруты и контент.
|
|
36
|
-
- **Обеспечить поддержку TypeScript** с
|
|
37
|
-
- **Воспользоваться расширенными
|
|
38
|
-
- **Включите маршрутизацию с
|
|
38
|
+
- **Обеспечить поддержку TypeScript** с помощью автогенерируемых типов, улучшая автодополнение и обнаружение ошибок.
|
|
39
|
+
- **Воспользоваться расширенными функциями**, такими как динамическое определение и переключение локали.
|
|
40
|
+
- **Включите маршрутизацию с учетом локали** с помощью файловой системы маршрутизации Tanstack Start.
|
|
39
41
|
|
|
40
42
|
---
|
|
41
43
|
|
|
@@ -47,7 +49,7 @@ author: AydinTheFirst
|
|
|
47
49
|
|
|
48
50
|
### Шаг 2: Установите пакеты Intlayer
|
|
49
51
|
|
|
50
|
-
Установите необходимые
|
|
52
|
+
Установите необходимые пакеты, используя предпочитаемый менеджер пакетов:
|
|
51
53
|
|
|
52
54
|
```bash packageManager="npm"
|
|
53
55
|
npm install intlayer react-intlayer
|
|
@@ -69,13 +71,13 @@ pnpm add vite-intlayer --save-dev
|
|
|
69
71
|
Пакет, который интегрирует Intlayer с приложением React. Он предоставляет провайдеры контекста и хуки для интернационализации в React.
|
|
70
72
|
|
|
71
73
|
- **vite-intlayer**
|
|
72
|
-
Включает плагин Vite для интеграции Intlayer с [сборщиком Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также промежуточное ПО для определения предпочтительной локали пользователя, управления
|
|
74
|
+
Включает плагин Vite для интеграции Intlayer с [сборщиком Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также промежуточное ПО для определения предпочтительной локали пользователя, управления куки и обработки перенаправления URL.
|
|
73
75
|
|
|
74
76
|
### Шаг 3: Конфигурация вашего проекта
|
|
75
77
|
|
|
76
78
|
Создайте файл конфигурации для настройки языков вашего приложения:
|
|
77
79
|
|
|
78
|
-
```typescript fileName="intlayer.config.ts"
|
|
80
|
+
```typescript fileName="intlayer.config.ts"
|
|
79
81
|
import type { IntlayerConfig } from "intlayer";
|
|
80
82
|
|
|
81
83
|
import { Locales } from "intlayer";
|
|
@@ -83,79 +85,31 @@ import { Locales } from "intlayer";
|
|
|
83
85
|
const config: IntlayerConfig = {
|
|
84
86
|
internationalization: {
|
|
85
87
|
defaultLocale: Locales.ENGLISH, // Язык по умолчанию
|
|
86
|
-
locales: [
|
|
87
|
-
Locales.ENGLISH, // Английский
|
|
88
|
-
Locales.FRENCH, // Французский
|
|
89
|
-
Locales.SPANISH, // Испанский
|
|
90
|
-
// Ваши другие языки
|
|
91
|
-
],
|
|
88
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], // Поддерживаемые языки
|
|
92
89
|
},
|
|
93
90
|
};
|
|
94
91
|
|
|
95
92
|
export default config;
|
|
96
93
|
```
|
|
97
94
|
|
|
98
|
-
|
|
99
|
-
import { Locales } from "intlayer";
|
|
100
|
-
|
|
101
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
102
|
-
const config = {
|
|
103
|
-
internationalization: {
|
|
104
|
-
defaultLocale: Locales.ENGLISH, // Язык по умолчанию
|
|
105
|
-
locales: [
|
|
106
|
-
Locales.ENGLISH, // Английский
|
|
107
|
-
Locales.FRENCH, // Французский
|
|
108
|
-
Locales.SPANISH, // Испанский
|
|
109
|
-
// Ваши другие языки
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
export default config;
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
118
|
-
const { Locales } = require("intlayer");
|
|
119
|
-
|
|
120
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
121
|
-
const config = {
|
|
122
|
-
internationalization: {
|
|
123
|
-
defaultLocale: Locales.ENGLISH, // Язык по умолчанию
|
|
124
|
-
locales: [
|
|
125
|
-
Locales.ENGLISH, // Английский
|
|
126
|
-
Locales.FRENCH, // Французский
|
|
127
|
-
Locales.SPANISH, // Испанский
|
|
128
|
-
// Ваши другие языки
|
|
129
|
-
],
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
module.exports = config;
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
> Через этот конфигурационный файл вы можете настроить локализованные URL, перенаправления в middleware, имена cookie, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
|
|
95
|
+
> С помощью этого файла конфигурации вы можете настроить локализованные URL, перенаправление через middleware, имена cookie, расположение и расширение ваших объявлений контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
|
|
137
96
|
|
|
138
97
|
### Шаг 4: Интеграция Intlayer в вашу конфигурацию Vite
|
|
139
98
|
|
|
140
99
|
Добавьте плагин intlayer в вашу конфигурацию:
|
|
141
100
|
|
|
142
|
-
```typescript fileName="vite.config.ts"
|
|
101
|
+
```typescript fileName="vite.config.ts"
|
|
143
102
|
import { reactRouter } from "@react-router/dev/vite";
|
|
144
103
|
import { defineConfig } from "vite";
|
|
145
|
-
import {
|
|
104
|
+
import { intlayer } from "vite-intlayer";
|
|
146
105
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
147
106
|
|
|
148
107
|
export default defineConfig({
|
|
149
|
-
plugins: [
|
|
150
|
-
reactRouter(),
|
|
151
|
-
tsconfigPaths(),
|
|
152
|
-
intlayer(),
|
|
153
|
-
intlayerMiddlewarePlugin(),
|
|
154
|
-
],
|
|
108
|
+
plugins: [reactRouter(), tsconfigPaths(), intlayer()],
|
|
155
109
|
});
|
|
156
110
|
```
|
|
157
111
|
|
|
158
|
-
> Плагин Vite `intlayer()` используется для интеграции Intlayer с Vite. Он обеспечивает сборку файлов деклараций контента и их
|
|
112
|
+
> Плагин Vite `intlayer()` используется для интеграции Intlayer с Vite. Он обеспечивает сборку файлов деклараций контента и отслеживает их в режиме разработки. Также он определяет переменные окружения Intlayer внутри приложения Vite. Дополнительно плагин предоставляет алиасы для оптимизации производительности.
|
|
159
113
|
|
|
160
114
|
### Шаг 5: Создайте компоненты макета
|
|
161
115
|
|
|
@@ -163,10 +117,8 @@ export default defineConfig({
|
|
|
163
117
|
|
|
164
118
|
#### Корневой макет
|
|
165
119
|
|
|
166
|
-
```tsx fileName="src/routes/{-$locale}/route.tsx"
|
|
167
|
-
// src/routes/{-$locale}/route.tsx
|
|
120
|
+
```tsx fileName="src/routes/{-$locale}/route.tsx"
|
|
168
121
|
import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
|
|
169
|
-
import { configuration } from "intlayer";
|
|
170
122
|
import { IntlayerProvider, useLocale } from "react-intlayer";
|
|
171
123
|
|
|
172
124
|
import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes";
|
|
@@ -176,21 +128,22 @@ export const Route = createFileRoute("/{-$locale}")({
|
|
|
176
128
|
});
|
|
177
129
|
|
|
178
130
|
function LayoutComponent() {
|
|
131
|
+
const { defaultLocale } = useLocale();
|
|
179
132
|
const { locale } = Route.useParams();
|
|
180
133
|
|
|
181
134
|
return (
|
|
182
|
-
<IntlayerProvider locale={
|
|
135
|
+
<IntlayerProvider locale={defaultLocale}>
|
|
183
136
|
<Outlet />
|
|
184
137
|
</IntlayerProvider>
|
|
185
138
|
);
|
|
186
139
|
}
|
|
187
140
|
```
|
|
188
141
|
|
|
189
|
-
### Шаг 6: Объявите
|
|
142
|
+
### Шаг 6: Объявите ваш контент
|
|
190
143
|
|
|
191
|
-
|
|
144
|
+
Создавайте и управляйте объявлениями контента для хранения переводов:
|
|
192
145
|
|
|
193
|
-
```tsx fileName="src/contents/page.content.ts"
|
|
146
|
+
```tsx fileName="src/contents/page.content.ts"
|
|
194
147
|
import type { Dictionary } from "intlayer";
|
|
195
148
|
|
|
196
149
|
import { t } from "intlayer";
|
|
@@ -199,25 +152,29 @@ const appContent = {
|
|
|
199
152
|
content: {
|
|
200
153
|
links: {
|
|
201
154
|
about: t({
|
|
155
|
+
ru: "О проекте",
|
|
202
156
|
en: "About",
|
|
203
157
|
es: "Acerca de",
|
|
204
158
|
fr: "À propos",
|
|
205
159
|
}),
|
|
206
160
|
home: t({
|
|
207
|
-
|
|
161
|
+
ru: "Главная",
|
|
162
|
+
en: "Home",
|
|
208
163
|
es: "Inicio",
|
|
209
164
|
fr: "Accueil",
|
|
210
165
|
}),
|
|
211
166
|
},
|
|
212
167
|
meta: {
|
|
213
168
|
description: t({
|
|
214
|
-
|
|
169
|
+
ru: "Это пример использования Intlayer с TanStack Router",
|
|
170
|
+
en: "This is an example of using Intlayer with TanStack Router",
|
|
215
171
|
es: "Este es un ejemplo de uso de Intlayer con TanStack Router",
|
|
216
172
|
fr: "Ceci est un exemple d'utilisation d'Intlayer avec TanStack Router",
|
|
217
173
|
}),
|
|
218
174
|
},
|
|
219
175
|
title: t({
|
|
220
|
-
|
|
176
|
+
ru: "Добро пожаловать в Intlayer + TanStack Router",
|
|
177
|
+
en: "Welcome to Intlayer + TanStack Router",
|
|
221
178
|
es: "Bienvenido a Intlayer + TanStack Router",
|
|
222
179
|
fr: "Bienvenue à Intlayer + TanStack Router",
|
|
223
180
|
}),
|
|
@@ -228,7 +185,7 @@ const appContent = {
|
|
|
228
185
|
export default appContent;
|
|
229
186
|
```
|
|
230
187
|
|
|
231
|
-
> Ваши объявления контента могут быть определены в любом месте вашего приложения, как только они
|
|
188
|
+
> Ваши объявления контента могут быть определены в любом месте вашего приложения, как только они включены в директорию `contentDir` (по умолчанию, `./app`). И соответствуют расширению файла объявления контента (по умолчанию, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
232
189
|
|
|
233
190
|
> Для получения дополнительной информации обратитесь к [документации по объявлениям контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md).
|
|
234
191
|
|
|
@@ -236,59 +193,99 @@ export default appContent;
|
|
|
236
193
|
|
|
237
194
|
Создайте компонент `LocalizedLink` для навигации с учетом локали:
|
|
238
195
|
|
|
239
|
-
```tsx fileName="src/components/localized-link.tsx"
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
import { Link, type
|
|
243
|
-
import {
|
|
244
|
-
|
|
196
|
+
```tsx fileName="src/components/localized-link.tsx"
|
|
197
|
+
import type { FC } from "react";
|
|
198
|
+
|
|
199
|
+
import { Link, type LinkComponentProps } from "@tanstack/react-router";
|
|
200
|
+
import { useLocale } from "react.intlayer";
|
|
201
|
+
|
|
202
|
+
export const LOCALE_ROUTE = "{-$locale}" as const;
|
|
203
|
+
|
|
204
|
+
// Основная утилита
|
|
205
|
+
export type RemoveLocaleParam<T> = T extends string
|
|
206
|
+
? RemoveLocaleFromString<T>
|
|
207
|
+
: T;
|
|
208
|
+
|
|
209
|
+
export type To = RemoveLocaleParam<LinkComponentProps["to"]>;
|
|
210
|
+
|
|
211
|
+
type CollapseDoubleSlashes<S extends string> =
|
|
212
|
+
S extends `${infer H}//${infer T}` ? CollapseDoubleSlashes<`${H}/${T}`> : S;
|
|
245
213
|
|
|
246
214
|
type LocalizedLinkProps = {
|
|
247
|
-
to
|
|
248
|
-
} & Omit<
|
|
215
|
+
to?: To;
|
|
216
|
+
} & Omit<LinkComponentProps, "to">;
|
|
249
217
|
|
|
250
|
-
|
|
251
|
-
|
|
218
|
+
// Вспомогательные типы
|
|
219
|
+
type RemoveAll<
|
|
220
|
+
S extends string,
|
|
221
|
+
Sub extends string,
|
|
222
|
+
> = S extends `${infer H}${Sub}${infer T}` ? RemoveAll<`${H}${T}`, Sub> : S;
|
|
252
223
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
224
|
+
type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
|
|
225
|
+
RemoveAll<S, typeof LOCALE_ROUTE>
|
|
226
|
+
>;
|
|
256
227
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
: getLocalizedUrl(props.to, locale);
|
|
228
|
+
export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
|
|
229
|
+
const { locale } = useLocale();
|
|
260
230
|
|
|
261
|
-
return
|
|
262
|
-
|
|
231
|
+
return (
|
|
232
|
+
<Link
|
|
233
|
+
{...props}
|
|
234
|
+
params={{
|
|
235
|
+
locale,
|
|
236
|
+
...(typeof props?.params === "object" ? props?.params : {}),
|
|
237
|
+
}}
|
|
238
|
+
to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
|
|
239
|
+
/>
|
|
240
|
+
);
|
|
241
|
+
};
|
|
263
242
|
```
|
|
264
243
|
|
|
265
|
-
|
|
244
|
+
Этот компонент выполняет две задачи:
|
|
266
245
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
// eslint-disable-next-line no-restricted-imports
|
|
270
|
-
import { NavigateOptions, useNavigate } from "@tanstack/react-router";
|
|
271
|
-
import { getLocalizedUrl } from "intlayer";
|
|
272
|
-
import { useLocale } from "react-intlayer";
|
|
246
|
+
- Удаляет ненужный префикс `{-$locale}` из URL.
|
|
247
|
+
- Вставляет параметр локали в URL, чтобы пользователь был напрямую перенаправлен на локализованный маршрут.
|
|
273
248
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
249
|
+
Далее мы можем создать хук `useLocalizedNavigate` для программной навигации:
|
|
250
|
+
|
|
251
|
+
```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
|
|
252
|
+
import { useLocale } from "react.intlayer";
|
|
253
|
+
import { useNavigate } from "@tanstack/react-router";
|
|
254
|
+
import { LOCALE_ROUTE } from "@/components/localized-link";
|
|
255
|
+
import type { FileRouteTypes } from "@/routeTree.gen";
|
|
277
256
|
|
|
278
257
|
export const useLocalizedNavigate = () => {
|
|
279
258
|
const navigate = useNavigate();
|
|
259
|
+
|
|
280
260
|
const { locale } = useLocale();
|
|
281
261
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
262
|
+
type StripLocalePrefix<T extends string> = T extends
|
|
263
|
+
| `/${typeof LOCALE_ROUTE}`
|
|
264
|
+
| `/${typeof LOCALE_ROUTE}/`
|
|
265
|
+
? "/" // Удаляем префикс локали, оставляя корень
|
|
266
|
+
: T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
|
|
267
|
+
? `/${Rest}` // Удаляем префикс локали, оставляя остальную часть пути
|
|
268
|
+
: never;
|
|
269
|
+
|
|
270
|
+
type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
|
|
271
|
+
|
|
272
|
+
interface LocalizedNavigate {
|
|
273
|
+
(to: LocalizedTo): ReturnType<typeof navigate>;
|
|
274
|
+
(
|
|
275
|
+
opts: { to: LocalizedTo } & Record<string, unknown>
|
|
276
|
+
): ReturnType<typeof navigate>;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
const localizedNavigate: LocalizedNavigate = (args: any) => {
|
|
280
|
+
if (typeof args === "string") {
|
|
281
|
+
return navigate({ to: `/${LOCALE_ROUTE}${args}`, params: { locale } });
|
|
282
|
+
}
|
|
285
283
|
|
|
286
|
-
|
|
287
|
-
const to = isExternal(options.to)
|
|
288
|
-
? options.to
|
|
289
|
-
: getLocalizedUrl(options.to, locale);
|
|
284
|
+
const { to, ...rest } = args;
|
|
290
285
|
|
|
291
|
-
|
|
286
|
+
const localedTo = `/${LOCALE_ROUTE}${to}` as any;
|
|
287
|
+
|
|
288
|
+
return navigate({ to: localedTo, params: { locale, ...rest } as any });
|
|
292
289
|
};
|
|
293
290
|
|
|
294
291
|
return localizedNavigate;
|
|
@@ -299,26 +296,12 @@ export const useLocalizedNavigate = () => {
|
|
|
299
296
|
|
|
300
297
|
Получайте доступ к вашим словарям контента по всему приложению:
|
|
301
298
|
|
|
302
|
-
#### Страница перенаправления корня
|
|
303
|
-
|
|
304
|
-
```tsx fileName="src/routes/page.tsx" codeFormat="typescript"
|
|
305
|
-
// src/routes/page.tsx
|
|
306
|
-
import { useLocale } from "react-intlayer";
|
|
307
|
-
import { Navigate } from "react-router";
|
|
308
|
-
|
|
309
|
-
export default function Page() {
|
|
310
|
-
const { locale } = useLocale();
|
|
311
|
-
|
|
312
|
-
return <Navigate replace to={locale} />;
|
|
313
|
-
}
|
|
314
|
-
```
|
|
315
|
-
|
|
316
299
|
#### Локализованная главная страница
|
|
317
300
|
|
|
318
|
-
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
301
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
319
302
|
import { createFileRoute } from "@tanstack/react-router";
|
|
320
303
|
import { getIntlayer } from "intlayer";
|
|
321
|
-
import { useIntlayer } from "react
|
|
304
|
+
import { useIntlayer } from "react.intlayer";
|
|
322
305
|
|
|
323
306
|
import LocaleSwitcher from "@/components/locale-switcher";
|
|
324
307
|
import { LocalizedLink } from "@/components/localized-link";
|
|
@@ -344,16 +327,15 @@ function RouteComponent() {
|
|
|
344
327
|
const navigate = useLocalizedNavigate();
|
|
345
328
|
|
|
346
329
|
return (
|
|
347
|
-
<div
|
|
348
|
-
<div
|
|
330
|
+
<div>
|
|
331
|
+
<div>
|
|
349
332
|
{content.title}
|
|
350
333
|
<LocaleSwitcher />
|
|
351
|
-
<div
|
|
352
|
-
<a href="/">Индекс</a>
|
|
334
|
+
<div>
|
|
353
335
|
<LocalizedLink to="/">{content.links.home}</LocalizedLink>
|
|
354
336
|
<LocalizedLink to="/about">{content.links.about}</LocalizedLink>
|
|
355
337
|
</div>
|
|
356
|
-
<div
|
|
338
|
+
<div>
|
|
357
339
|
<button onClick={() => navigate({ to: "/" })}>
|
|
358
340
|
{content.links.home}
|
|
359
341
|
</button>
|
|
@@ -369,61 +351,69 @@ function RouteComponent() {
|
|
|
369
351
|
|
|
370
352
|
> Чтобы узнать больше о хуке `useIntlayer`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useIntlayer.md).
|
|
371
353
|
|
|
372
|
-
### Шаг 9: Создайте компонент
|
|
354
|
+
### Шаг 9: Создайте компонент переключателя локали
|
|
373
355
|
|
|
374
356
|
Создайте компонент, который позволит пользователям менять язык:
|
|
375
357
|
|
|
376
|
-
```tsx fileName="src/components/locale-switcher.tsx"
|
|
358
|
+
```tsx fileName="src/components/locale-switcher.tsx"
|
|
359
|
+
import type { FC } from "react";
|
|
360
|
+
|
|
377
361
|
import { useLocation } from "@tanstack/react-router";
|
|
378
|
-
import {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
const {
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
const { availableLocales, locale, setLocale } = useLocale({
|
|
391
|
-
onLocaleChange: (newLocale) => {
|
|
392
|
-
const pathWithLocale = getLocalizedUrl(pathname + searchStr, newLocale);
|
|
393
|
-
location.replace(pathWithLocale);
|
|
394
|
-
},
|
|
395
|
-
});
|
|
362
|
+
import { getHTMLTextDir, getLocaleName, getPathWithoutLocale } from "intlayer";
|
|
363
|
+
import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
|
|
364
|
+
|
|
365
|
+
import { LocalizedLink, To } from "./localized-link";
|
|
366
|
+
|
|
367
|
+
export const LocaleSwitcher: FC = () => {
|
|
368
|
+
const { localeSwitcherLabel } = useIntlayer("locale-switcher");
|
|
369
|
+
const { pathname } = useLocation();
|
|
370
|
+
|
|
371
|
+
const { availableLocales, locale } = useLocale();
|
|
372
|
+
|
|
373
|
+
const pathWithoutLocale = getPathWithoutLocale(pathname);
|
|
396
374
|
|
|
397
375
|
return (
|
|
398
|
-
<
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
376
|
+
<ol>
|
|
377
|
+
{availableLocales.map((localeEl) => (
|
|
378
|
+
<li key={localeEl}>
|
|
379
|
+
<LocalizedLink
|
|
380
|
+
aria-current={localeEl === locale ? "page" : undefined}
|
|
381
|
+
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
|
|
382
|
+
onClick={() => setLocaleCookie(localeEl)}
|
|
383
|
+
params={{ locale: localeEl }}
|
|
384
|
+
to={pathWithoutLocale as To}
|
|
385
|
+
>
|
|
386
|
+
<span>
|
|
387
|
+
{/* Локаль - например, FR */}
|
|
388
|
+
{localeItem}
|
|
389
|
+
</span>
|
|
390
|
+
<span>
|
|
391
|
+
{/* Язык на его собственной локали - например, Français */}
|
|
392
|
+
{getLocaleName(localeItem, locale)}
|
|
393
|
+
</span>
|
|
394
|
+
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
395
|
+
{/* Язык на текущей локали - например, Francés при установленной локали Locales.SPANISH */}
|
|
396
|
+
{getLocaleName(localeItem)}
|
|
397
|
+
</span>
|
|
398
|
+
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
399
|
+
{/* Язык на английском - например, French */}
|
|
400
|
+
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
401
|
+
</span>
|
|
402
|
+
</LocalizedLink>
|
|
403
|
+
</li>
|
|
414
404
|
))}
|
|
415
|
-
</
|
|
405
|
+
</ol>
|
|
416
406
|
);
|
|
417
|
-
}
|
|
407
|
+
};
|
|
418
408
|
```
|
|
419
409
|
|
|
420
410
|
> Чтобы узнать больше о хуке `useLocale`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md).
|
|
421
411
|
|
|
422
|
-
### Шаг 10:
|
|
412
|
+
### Шаг 10: Добавьте управление атрибутами HTML (необязательно)
|
|
423
413
|
|
|
424
414
|
Создайте хук для управления атрибутами lang и dir в HTML:
|
|
425
415
|
|
|
426
|
-
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx"
|
|
416
|
+
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx"
|
|
427
417
|
// src/hooks/useI18nHTMLAttributes.tsx
|
|
428
418
|
import { getHTMLTextDir } from "intlayer";
|
|
429
419
|
import { useEffect } from "react";
|
|
@@ -433,77 +423,75 @@ export const useI18nHTMLAttributes = () => {
|
|
|
433
423
|
const { locale } = useLocale();
|
|
434
424
|
|
|
435
425
|
useEffect(() => {
|
|
436
|
-
document.documentElement.lang = locale;
|
|
437
|
-
document.documentElement.dir = getHTMLTextDir(locale); // установка атрибута dir для документа
|
|
426
|
+
document.documentElement.lang = locale; // установка атрибута lang для корневого элемента документа
|
|
427
|
+
document.documentElement.dir = getHTMLTextDir(locale); // установка атрибута dir для корневого элемента документа
|
|
438
428
|
}, [locale]);
|
|
439
429
|
};
|
|
440
430
|
```
|
|
441
431
|
|
|
442
432
|
Затем используйте его в вашем корневом компоненте:
|
|
443
433
|
|
|
444
|
-
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
434
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
445
435
|
import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
|
|
446
|
-
import { configuration } from "intlayer";
|
|
447
436
|
import { IntlayerProvider, useLocale } from "react-intlayer";
|
|
448
437
|
|
|
449
|
-
import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes"; //
|
|
438
|
+
import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes"; // импортируем хук
|
|
450
439
|
|
|
451
440
|
export const Route = createFileRoute("/{-$locale}")({
|
|
452
441
|
component: LayoutComponent,
|
|
453
442
|
});
|
|
454
443
|
|
|
455
444
|
function LayoutComponent() {
|
|
456
|
-
useI18nHTMLAttributes(); //
|
|
445
|
+
useI18nHTMLAttributes(); // добавляем эту строку
|
|
457
446
|
|
|
447
|
+
const { defaultLocale } = useLocale();
|
|
458
448
|
const { locale } = Route.useParams();
|
|
459
449
|
|
|
460
450
|
return (
|
|
461
|
-
<IntlayerProvider locale={locale}>
|
|
451
|
+
<IntlayerProvider locale={locale ?? defaultLocale}>
|
|
462
452
|
<Outlet />
|
|
463
453
|
</IntlayerProvider>
|
|
464
454
|
);
|
|
465
455
|
}
|
|
466
456
|
```
|
|
467
457
|
|
|
468
|
-
|
|
458
|
+
---
|
|
469
459
|
|
|
470
|
-
|
|
460
|
+
### Шаг 11: Добавление middleware (необязательно)
|
|
471
461
|
|
|
472
|
-
|
|
473
|
-
# Сборка словарей Intlayer
|
|
474
|
-
npm run intlayer:build
|
|
462
|
+
Вы также можете использовать `intlayerMiddleware` для добавления маршрутизации на стороне сервера в ваше приложение. Этот плагин автоматически определит текущую локаль на основе URL и установит соответствующий cookie с локалью. Если локаль не указана, плагин определит наиболее подходящую локаль на основе языковых предпочтений браузера пользователя. Если локаль не будет обнаружена, произойдет перенаправление на локаль по умолчанию.
|
|
475
463
|
|
|
476
|
-
|
|
477
|
-
npm run dev
|
|
478
|
-
```
|
|
464
|
+
> Обратите внимание, что для использования `intlayerMiddleware` в продакшене необходимо переместить пакет `vite-intlayer` из `devDependencies` в `dependencies`.
|
|
479
465
|
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
|
|
466
|
+
```typescript {3,7} fileName="vite.config.ts"
|
|
467
|
+
import { reactRouter } from "@react-router/dev/vite";
|
|
468
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
469
|
+
import { defineConfig } from "vite";
|
|
470
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
471
|
+
import tsconfigPaths from "vite-tsconfig-paths";
|
|
483
472
|
|
|
484
|
-
|
|
485
|
-
|
|
473
|
+
export default defineConfig({
|
|
474
|
+
plugins: [
|
|
475
|
+
tailwindcss(),
|
|
476
|
+
reactRouter(),
|
|
477
|
+
tsconfigPaths(),
|
|
478
|
+
intlayer(),
|
|
479
|
+
intlayerMiddleware(),
|
|
480
|
+
],
|
|
481
|
+
});
|
|
486
482
|
```
|
|
487
483
|
|
|
488
|
-
|
|
489
|
-
# Сборка словарей Intlayer
|
|
490
|
-
yarn intlayer:build
|
|
491
|
-
|
|
492
|
-
# Запуск сервера разработки
|
|
493
|
-
yarn dev
|
|
494
|
-
```
|
|
484
|
+
---
|
|
495
485
|
|
|
496
486
|
### Шаг 12: Настройка TypeScript (необязательно)
|
|
497
487
|
|
|
498
|
-
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать
|
|
488
|
+
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать вашу кодовую базу более надежной.
|
|
499
489
|
|
|
500
490
|
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы:
|
|
501
491
|
|
|
502
492
|
```json5 fileName="tsconfig.json"
|
|
503
493
|
{
|
|
504
|
-
|
|
505
|
-
// ... ваши существующие настройки TypeScript
|
|
506
|
-
},
|
|
494
|
+
// ... ваши существующие настройки
|
|
507
495
|
include: [
|
|
508
496
|
// ... ваши существующие включения
|
|
509
497
|
".intlayer/**/*.ts", // Включить автоматически сгенерированные типы
|
|
@@ -511,11 +499,13 @@ Intlayer использует расширение модулей (module augmen
|
|
|
511
499
|
}
|
|
512
500
|
```
|
|
513
501
|
|
|
502
|
+
---
|
|
503
|
+
|
|
514
504
|
### Конфигурация Git
|
|
515
505
|
|
|
516
|
-
Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш
|
|
506
|
+
Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш Git-репозиторий.
|
|
517
507
|
|
|
518
|
-
|
|
508
|
+
Чтобы сделать это, вы можете добавить следующие инструкции в ваш файл `.gitignore`:
|
|
519
509
|
|
|
520
510
|
```plaintext fileName=".gitignore"
|
|
521
511
|
# Игнорировать файлы, сгенерированные Intlayer
|
|
@@ -524,67 +514,9 @@ Intlayer использует расширение модулей (module augmen
|
|
|
524
514
|
|
|
525
515
|
---
|
|
526
516
|
|
|
527
|
-
|
|
517
|
+
## Расширение VS Code
|
|
528
518
|
|
|
529
|
-
|
|
530
|
-
function LayoutComponent() {
|
|
531
|
-
useI18nHTMLAttributes();
|
|
532
|
-
|
|
533
|
-
const { locale } = Route.useParams();
|
|
534
|
-
const { locale: selectedLocale } = useLocale();
|
|
535
|
-
const { defaultLocale } = configuration.internationalization;
|
|
536
|
-
const { prefixDefault } = configuration.middleware;
|
|
537
|
-
|
|
538
|
-
// Перенаправление на локаль по умолчанию, если в URL отсутствует локаль и prefixDefault установлен в true
|
|
539
|
-
if (selectedLocale === defaultLocale && !locale && prefixDefault) {
|
|
540
|
-
return <Navigate replace to={defaultLocale} />;
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
// Перенаправление на выбранную локаль, если локаль в URL не совпадает с выбранной локалью
|
|
544
|
-
if (selectedLocale !== defaultLocale && !locale) {
|
|
545
|
-
return <Navigate replace to={selectedLocale} />;
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
return (
|
|
549
|
-
<IntlayerProvider locale={locale}>
|
|
550
|
-
<Outlet />
|
|
551
|
-
</IntlayerProvider>
|
|
552
|
-
);
|
|
553
|
-
}
|
|
554
|
-
```
|
|
555
|
-
|
|
556
|
-
## Развертывание в продакшн
|
|
557
|
-
|
|
558
|
-
При развертывании вашего приложения:
|
|
559
|
-
|
|
560
|
-
1. **Соберите ваше приложение:**
|
|
561
|
-
|
|
562
|
-
```bash
|
|
563
|
-
npm run build
|
|
564
|
-
```
|
|
565
|
-
|
|
566
|
-
2. **Соберите словари Intlayer:**
|
|
567
|
-
|
|
568
|
-
```bash
|
|
569
|
-
npm run intlayer:build
|
|
570
|
-
```
|
|
571
|
-
|
|
572
|
-
3. **Переместите `vite-intlayer` в зависимости**, если используете middleware в продакшн:
|
|
573
|
-
```bash
|
|
574
|
-
npm install vite-intlayer --save
|
|
575
|
-
```
|
|
576
|
-
|
|
577
|
-
Теперь ваше приложение будет поддерживать:
|
|
578
|
-
|
|
579
|
-
- **Структуру URL**: `/en`, `/en/about`, `/tr`, `/tr/about`
|
|
580
|
-
- **Автоматическое определение локали** на основе настроек браузера
|
|
581
|
-
- **Маршрутизацию с учётом локали** с использованием Tanstack Start
|
|
582
|
-
- **Поддержку TypeScript** с автогенерируемыми типами
|
|
583
|
-
- **Серверный рендеринг** с правильной обработкой локали
|
|
584
|
-
|
|
585
|
-
## Расширение для VS Code
|
|
586
|
-
|
|
587
|
-
Чтобы улучшить ваш опыт разработки с Intlayer, вы можете установить официальное расширение **Intlayer для VS Code**.
|
|
519
|
+
Для улучшения вашего опыта разработки с Intlayer вы можете установить официальное **расширение Intlayer для VS Code**.
|
|
588
520
|
|
|
589
521
|
[Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
590
522
|
|
|
@@ -593,15 +525,15 @@ function LayoutComponent() {
|
|
|
593
525
|
- **Автозаполнение** ключей переводов.
|
|
594
526
|
- **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
|
|
595
527
|
- **Встроенный просмотр** переведённого контента.
|
|
596
|
-
- **Быстрые действия** для
|
|
528
|
+
- **Быстрые действия** для лёгкого создания и обновления переводов.
|
|
597
529
|
|
|
598
|
-
Для получения дополнительной информации о том, как использовать расширение, обратитесь к [документации
|
|
530
|
+
Для получения дополнительной информации о том, как использовать расширение, обратитесь к [документации расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
599
531
|
|
|
600
532
|
---
|
|
601
533
|
|
|
602
534
|
## Продвинутые возможности
|
|
603
535
|
|
|
604
|
-
|
|
536
|
+
Для расширения возможностей вы можете реализовать [визуальный редактор](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).
|
|
605
537
|
|
|
606
538
|
---
|
|
607
539
|
|
|
@@ -610,14 +542,8 @@ function LayoutComponent() {
|
|
|
610
542
|
- [Документация Intlayer](https://intlayer.org)
|
|
611
543
|
- [Документация Tanstack Start](https://reactrouter.com/)
|
|
612
544
|
- [Хук useIntlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useIntlayer.md)
|
|
613
|
-
- [
|
|
545
|
+
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md)
|
|
614
546
|
- [Объявление контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md)
|
|
615
547
|
- [Конфигурация](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
|
|
616
548
|
|
|
617
|
-
Это
|
|
618
|
-
|
|
619
|
-
## История документации
|
|
620
|
-
|
|
621
|
-
| Версия | Дата | Изменения |
|
|
622
|
-
| ------ | ---------- | ---------------------------- |
|
|
623
|
-
| 5.8.1 | 2025-09-09 | Добавлено для Tanstack Start |
|
|
549
|
+
Это исчерпывающее руководство содержит все необходимое для интеграции Intlayer с Tanstack Start для полностью интернационализированного приложения с маршрутизацией, учитывающей локаль, и поддержкой TypeScript.
|