@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,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
3
|
updatedAt: 2025-09-09
|
|
4
|
-
title:
|
|
5
|
-
description: 学习如何使用 Intlayer 为您的 Tanstack Start 应用添加国际化 (i18n)
|
|
4
|
+
title: 如何翻译您的Tanstack Start应用 – i18n指南 2025
|
|
5
|
+
description: 学习如何使用 Intlayer 为您的 Tanstack Start 应用添加国际化 (i18n)。按照本综合指南,使您的应用支持多语言并具备基于区域设置的路由功能。
|
|
6
6
|
keywords:
|
|
7
7
|
- 国际化
|
|
8
8
|
- 文档
|
|
@@ -15,19 +15,21 @@ 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
|
+
# 使用Intlayer翻译您的Tanstack Start | 国际化(i18n)
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
本指南演示如何在 Tanstack Start 项目中集成 **Intlayer**,实现无缝国际化,支持基于区域设置的路由、TypeScript 支持以及现代开发实践。
|
|
27
29
|
|
|
28
30
|
## 什么是 Intlayer?
|
|
29
31
|
|
|
30
|
-
**Intlayer**
|
|
32
|
+
**Intlayer** 是一个创新的开源国际化(i18n)库,旨在简化现代 Web 应用中的多语言支持。
|
|
31
33
|
|
|
32
34
|
使用 Intlayer,您可以:
|
|
33
35
|
|
|
@@ -43,7 +45,7 @@ author: AydinTheFirst
|
|
|
43
45
|
|
|
44
46
|
### 第一步:创建项目
|
|
45
47
|
|
|
46
|
-
首先,按照 TanStack Start 网站上的[
|
|
48
|
+
首先,按照 TanStack Start 网站上的[新建项目](https://tanstack.com/start/latest/docs/framework/react/quick-start)指南创建一个新的 TanStack Start 项目。
|
|
47
49
|
|
|
48
50
|
### 第二步:安装 Intlayer 包
|
|
49
51
|
|
|
@@ -61,114 +63,61 @@ pnpm add vite-intlayer --save-dev
|
|
|
61
63
|
|
|
62
64
|
- **intlayer**
|
|
63
65
|
|
|
64
|
-
- **intlayer**
|
|
65
|
-
|
|
66
|
-
核心包,提供用于配置管理、翻译、[内容声明](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/get_started.md)、转译和[CLI命令](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_cli.md)的国际化工具。
|
|
67
|
-
|
|
68
|
-
- **react-intlayer**
|
|
66
|
+
- **intlayer**
|
|
67
|
+
核心包,提供用于配置管理、翻译、[内容声明](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/get_started.md)、转译以及[命令行工具](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_cli.md)的国际化工具。
|
|
69
68
|
|
|
69
|
+
- **react-intlayer**
|
|
70
70
|
将 Intlayer 集成到 React 应用中的包。它为 React 国际化提供上下文提供者和钩子。
|
|
71
71
|
|
|
72
|
-
- **vite-intlayer**
|
|
73
|
-
|
|
74
|
-
包含用于将 Intlayer 集成到[Vite 打包器](https://vite.dev/guide/why.html#why-bundle-for-production)的 Vite 插件,以及用于检测用户首选语言环境、管理 Cookie 和处理 URL 重定向的中间件。
|
|
72
|
+
- **vite-intlayer**
|
|
73
|
+
包含用于将 Intlayer 集成到[Vite 打包器](https://vite.dev/guide/why.html#why-bundle-for-production)的 Vite 插件,以及用于检测用户首选语言、管理 Cookie 和处理 URL 重定向的中间件。
|
|
75
74
|
|
|
76
75
|
### 第三步:项目配置
|
|
77
76
|
|
|
78
77
|
创建一个配置文件来配置您的应用程序语言:
|
|
79
78
|
|
|
80
|
-
```typescript fileName="intlayer.config.ts"
|
|
79
|
+
```typescript fileName="intlayer.config.ts"
|
|
81
80
|
import type { IntlayerConfig } from "intlayer";
|
|
82
81
|
|
|
83
82
|
import { Locales } from "intlayer";
|
|
84
83
|
|
|
85
84
|
const config: IntlayerConfig = {
|
|
86
|
-
internationalization: {
|
|
87
|
-
defaultLocale: Locales.ENGLISH, // 默认语言
|
|
88
|
-
locales: [
|
|
89
|
-
Locales.ENGLISH, // 英语
|
|
90
|
-
Locales.FRENCH, // 法语
|
|
91
|
-
Locales.SPANISH, // 西班牙语
|
|
92
|
-
// 您的其他语言
|
|
93
|
-
],
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
export default config;
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
101
|
-
import { Locales } from "intlayer";
|
|
102
|
-
|
|
103
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
104
|
-
const config = {
|
|
105
|
-
internationalization: {
|
|
106
|
-
defaultLocale: Locales.ENGLISH, // 默认语言
|
|
107
|
-
locales: [
|
|
108
|
-
Locales.ENGLISH, // 英语
|
|
109
|
-
Locales.FRENCH, // 法语
|
|
110
|
-
Locales.SPANISH, // 西班牙语
|
|
111
|
-
// 你的其他语言
|
|
112
|
-
],
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
export default config;
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
120
|
-
const { Locales } = require("intlayer");
|
|
121
|
-
|
|
122
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
123
|
-
const config = {
|
|
124
85
|
internationalization: {
|
|
125
86
|
defaultLocale: Locales.ENGLISH,
|
|
126
|
-
locales: [
|
|
127
|
-
Locales.ENGLISH,
|
|
128
|
-
Locales.FRENCH,
|
|
129
|
-
Locales.SPANISH,
|
|
130
|
-
// 你的其他语言
|
|
131
|
-
],
|
|
87
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
132
88
|
},
|
|
133
89
|
};
|
|
134
90
|
|
|
135
|
-
|
|
91
|
+
export default config;
|
|
136
92
|
```
|
|
137
93
|
|
|
138
|
-
>
|
|
94
|
+
> 通过此配置文件,您可以设置本地化 URL、中间件重定向、cookie 名称、内容声明的位置和扩展名、禁用控制台中的 Intlayer 日志等。有关可用参数的完整列表,请参阅[配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md)。
|
|
139
95
|
|
|
140
96
|
### 第4步:在您的 Vite 配置中集成 Intlayer
|
|
141
97
|
|
|
142
98
|
将 intlayer 插件添加到您的配置中:
|
|
143
99
|
|
|
144
|
-
```typescript fileName="vite.config.ts"
|
|
100
|
+
```typescript fileName="vite.config.ts"
|
|
145
101
|
import { reactRouter } from "@react-router/dev/vite";
|
|
146
102
|
import { defineConfig } from "vite";
|
|
147
|
-
import {
|
|
103
|
+
import { intlayer } from "vite-intlayer";
|
|
148
104
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
149
105
|
|
|
150
106
|
export default defineConfig({
|
|
151
|
-
plugins: [
|
|
152
|
-
reactRouter(),
|
|
153
|
-
tsconfigPaths(),
|
|
154
|
-
intlayer(),
|
|
155
|
-
intlayerMiddlewarePlugin(),
|
|
156
|
-
],
|
|
107
|
+
plugins: [reactRouter(), tsconfigPaths(), intlayer()],
|
|
157
108
|
});
|
|
158
109
|
```
|
|
159
110
|
|
|
160
|
-
> `intlayer()`
|
|
111
|
+
> `intlayer()` Vite 插件用于将 Intlayer 集成到 Vite 中。它确保构建内容声明文件并在开发模式下监视它们。它在 Vite 应用中定义了 Intlayer 环境变量。此外,它还提供别名以优化性能。
|
|
161
112
|
|
|
162
|
-
###
|
|
113
|
+
### 第5步:创建布局组件
|
|
163
114
|
|
|
164
|
-
|
|
115
|
+
设置您的根布局和特定语言环境的布局:
|
|
165
116
|
|
|
166
117
|
#### 根布局
|
|
167
118
|
|
|
168
|
-
```tsx fileName="src/routes/{-$locale}/route.tsx"
|
|
169
|
-
// src/routes/{-$locale}/route.tsx
|
|
119
|
+
```tsx fileName="src/routes/{-$locale}/route.tsx"
|
|
170
120
|
import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
|
|
171
|
-
import { configuration } from "intlayer";
|
|
172
121
|
import { IntlayerProvider, useLocale } from "react-intlayer";
|
|
173
122
|
|
|
174
123
|
import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes";
|
|
@@ -178,10 +127,11 @@ export const Route = createFileRoute("/{-$locale}")({
|
|
|
178
127
|
});
|
|
179
128
|
|
|
180
129
|
function LayoutComponent() {
|
|
130
|
+
const { defaultLocale } = useLocale();
|
|
181
131
|
const { locale } = Route.useParams();
|
|
182
132
|
|
|
183
133
|
return (
|
|
184
|
-
<IntlayerProvider locale={
|
|
134
|
+
<IntlayerProvider locale={defaultLocale}>
|
|
185
135
|
<Outlet />
|
|
186
136
|
</IntlayerProvider>
|
|
187
137
|
);
|
|
@@ -192,7 +142,7 @@ function LayoutComponent() {
|
|
|
192
142
|
|
|
193
143
|
创建并管理您的内容声明以存储翻译:
|
|
194
144
|
|
|
195
|
-
```tsx fileName="src/contents/page.content.ts"
|
|
145
|
+
```tsx fileName="src/contents/page.content.ts"
|
|
196
146
|
import type { Dictionary } from "intlayer";
|
|
197
147
|
|
|
198
148
|
import { t } from "intlayer";
|
|
@@ -201,25 +151,29 @@ const appContent = {
|
|
|
201
151
|
content: {
|
|
202
152
|
links: {
|
|
203
153
|
about: t({
|
|
154
|
+
zh: "关于",
|
|
204
155
|
en: "About",
|
|
205
156
|
es: "Acerca de",
|
|
206
157
|
fr: "À propos",
|
|
207
158
|
}),
|
|
208
159
|
home: t({
|
|
209
|
-
|
|
160
|
+
zh: "首页",
|
|
161
|
+
en: "Home",
|
|
210
162
|
es: "Inicio",
|
|
211
163
|
fr: "Accueil",
|
|
212
164
|
}),
|
|
213
165
|
},
|
|
214
166
|
meta: {
|
|
215
167
|
description: t({
|
|
216
|
-
|
|
168
|
+
zh: "这是一个使用 Intlayer 和 TanStack Router 的示例",
|
|
169
|
+
en: "This is an example of using Intlayer with TanStack Router",
|
|
217
170
|
es: "Este es un ejemplo de uso de Intlayer con TanStack Router",
|
|
218
171
|
fr: "Ceci est un exemple d'utilisation d'Intlayer avec TanStack Router",
|
|
219
172
|
}),
|
|
220
173
|
},
|
|
221
174
|
title: t({
|
|
222
|
-
|
|
175
|
+
zh: "欢迎使用 Intlayer + TanStack Router",
|
|
176
|
+
en: "Welcome to Intlayer + TanStack Router",
|
|
223
177
|
es: "Bienvenido a Intlayer + TanStack Router",
|
|
224
178
|
fr: "Bienvenue à Intlayer + TanStack Router",
|
|
225
179
|
}),
|
|
@@ -230,67 +184,107 @@ const appContent = {
|
|
|
230
184
|
export default appContent;
|
|
231
185
|
```
|
|
232
186
|
|
|
233
|
-
> 您的内容声明可以在应用程序中的任何位置定义,只要它们被包含在 `contentDir` 目录中(默认是 `./app
|
|
187
|
+
> 您的内容声明可以在应用程序中的任何位置定义,只要它们被包含在 `contentDir` 目录中(默认是 `./app`)。并且文件扩展名需匹配内容声明文件扩展名(默认是 `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)。
|
|
234
188
|
|
|
235
189
|
> 更多详情,请参阅[内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/get_started.md)。
|
|
236
190
|
|
|
237
|
-
### 第7
|
|
191
|
+
### 第7步:创建支持多语言的组件和钩子
|
|
238
192
|
|
|
239
|
-
|
|
193
|
+
创建一个用于多语言导航的 `LocalizedLink` 组件:
|
|
240
194
|
|
|
241
|
-
```tsx fileName="src/components/localized-link.tsx"
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
import { Link, type
|
|
245
|
-
import {
|
|
246
|
-
|
|
195
|
+
```tsx fileName="src/components/localized-link.tsx"
|
|
196
|
+
import type { FC } from "react";
|
|
197
|
+
|
|
198
|
+
import { Link, type LinkComponentProps } from "@tanstack/react-router";
|
|
199
|
+
import { useLocale } from "intlayer";
|
|
200
|
+
|
|
201
|
+
export const LOCALE_ROUTE = "{-$locale}" as const;
|
|
202
|
+
|
|
203
|
+
// 主要工具类型
|
|
204
|
+
export type RemoveLocaleParam<T> = T extends string
|
|
205
|
+
? RemoveLocaleFromString<T>
|
|
206
|
+
: T;
|
|
207
|
+
|
|
208
|
+
export type To = RemoveLocaleParam<LinkComponentProps["to"]>;
|
|
209
|
+
|
|
210
|
+
type CollapseDoubleSlashes<S extends string> =
|
|
211
|
+
S extends `${infer H}//${infer T}` ? CollapseDoubleSlashes<`${H}/${T}`> : S;
|
|
247
212
|
|
|
248
213
|
type LocalizedLinkProps = {
|
|
249
|
-
to
|
|
250
|
-
} & Omit<
|
|
214
|
+
to?: To;
|
|
215
|
+
} & Omit<LinkComponentProps, "to">;
|
|
251
216
|
|
|
252
|
-
|
|
253
|
-
|
|
217
|
+
// 辅助类型
|
|
218
|
+
type RemoveAll<
|
|
219
|
+
S extends string,
|
|
220
|
+
Sub extends string,
|
|
221
|
+
> = S extends `${infer H}${Sub}${infer T}` ? RemoveAll<`${H}${T}`, Sub> : S;
|
|
254
222
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
223
|
+
type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
|
|
224
|
+
RemoveAll<S, typeof LOCALE_ROUTE>
|
|
225
|
+
>;
|
|
258
226
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
: getLocalizedUrl(props.to, locale);
|
|
227
|
+
export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
|
|
228
|
+
const { locale } = useLocale();
|
|
262
229
|
|
|
263
|
-
return
|
|
264
|
-
|
|
230
|
+
return (
|
|
231
|
+
<Link
|
|
232
|
+
{...props}
|
|
233
|
+
params={{
|
|
234
|
+
locale,
|
|
235
|
+
...(typeof props?.params === "object" ? props?.params : {}),
|
|
236
|
+
}}
|
|
237
|
+
to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
|
|
238
|
+
/>
|
|
239
|
+
);
|
|
240
|
+
};
|
|
265
241
|
```
|
|
266
242
|
|
|
267
|
-
|
|
243
|
+
该组件有两个目标:
|
|
268
244
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
import { getLocalizedUrl } from "intlayer";
|
|
274
|
-
import { useLocale } from "react-intlayer";
|
|
245
|
+
- 移除 URL 中不必要的 `{-$locale}` 前缀。
|
|
246
|
+
- 将 locale 参数注入 URL,确保用户被直接重定向到本地化路由。
|
|
247
|
+
|
|
248
|
+
接下来我们可以创建一个用于编程导航的 `useLocalizedNavigate` 钩子:
|
|
275
249
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
}
|
|
250
|
+
```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
|
|
251
|
+
import { useLocale } from "react-intlayer";
|
|
252
|
+
import { useNavigate } from "@tanstack/react-router";
|
|
253
|
+
import { LOCALE_ROUTE } from "@/components/localized-link";
|
|
254
|
+
import type { FileRouteTypes } from "@/routeTree.gen";
|
|
279
255
|
|
|
280
256
|
export const useLocalizedNavigate = () => {
|
|
281
257
|
const navigate = useNavigate();
|
|
258
|
+
|
|
282
259
|
const { locale } = useLocale();
|
|
283
260
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
261
|
+
type StripLocalePrefix<T extends string> = T extends
|
|
262
|
+
| `/${typeof LOCALE_ROUTE}`
|
|
263
|
+
| `/${typeof LOCALE_ROUTE}/`
|
|
264
|
+
? "/" // 去除本地化前缀后返回根路径
|
|
265
|
+
: T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
|
|
266
|
+
? `/${Rest}` // 去除本地化前缀后返回剩余路径
|
|
267
|
+
: never;
|
|
268
|
+
|
|
269
|
+
type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
|
|
270
|
+
|
|
271
|
+
interface LocalizedNavigate {
|
|
272
|
+
(to: LocalizedTo): ReturnType<typeof navigate>;
|
|
273
|
+
(
|
|
274
|
+
opts: { to: LocalizedTo } & Record<string, unknown>
|
|
275
|
+
): ReturnType<typeof navigate>;
|
|
276
|
+
}
|
|
287
277
|
|
|
288
|
-
const localizedNavigate = (
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
278
|
+
const localizedNavigate: LocalizedNavigate = (args: any) => {
|
|
279
|
+
if (typeof args === "string") {
|
|
280
|
+
return navigate({ to: `/${LOCALE_ROUTE}${args}`, params: { locale } });
|
|
281
|
+
}
|
|
292
282
|
|
|
293
|
-
|
|
283
|
+
const { to, ...rest } = args;
|
|
284
|
+
|
|
285
|
+
const localedTo = `/${LOCALE_ROUTE}${to}` as any;
|
|
286
|
+
|
|
287
|
+
return navigate({ to: localedTo, params: { locale, ...rest } as any });
|
|
294
288
|
};
|
|
295
289
|
|
|
296
290
|
return localizedNavigate;
|
|
@@ -301,23 +295,9 @@ export const useLocalizedNavigate = () => {
|
|
|
301
295
|
|
|
302
296
|
在整个应用程序中访问您的内容字典:
|
|
303
297
|
|
|
304
|
-
#### 根重定向页面
|
|
305
|
-
|
|
306
|
-
```tsx fileName="src/routes/page.tsx" codeFormat="typescript"
|
|
307
|
-
// src/routes/page.tsx
|
|
308
|
-
import { useLocale } from "react-intlayer";
|
|
309
|
-
import { Navigate } from "react-router";
|
|
310
|
-
|
|
311
|
-
export default function Page() {
|
|
312
|
-
const { locale } = useLocale();
|
|
313
|
-
|
|
314
|
-
return <Navigate replace to={locale} />;
|
|
315
|
-
}
|
|
316
|
-
```
|
|
317
|
-
|
|
318
298
|
#### 本地化首页
|
|
319
299
|
|
|
320
|
-
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
300
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
321
301
|
import { createFileRoute } from "@tanstack/react-router";
|
|
322
302
|
import { getIntlayer } from "intlayer";
|
|
323
303
|
import { useIntlayer } from "react-intlayer";
|
|
@@ -346,16 +326,15 @@ function RouteComponent() {
|
|
|
346
326
|
const navigate = useLocalizedNavigate();
|
|
347
327
|
|
|
348
328
|
return (
|
|
349
|
-
<div
|
|
350
|
-
<div
|
|
329
|
+
<div>
|
|
330
|
+
<div>
|
|
351
331
|
{content.title}
|
|
352
332
|
<LocaleSwitcher />
|
|
353
|
-
<div
|
|
354
|
-
<a href="/">索引</a>
|
|
333
|
+
<div>
|
|
355
334
|
<LocalizedLink to="/">{content.links.home}</LocalizedLink>
|
|
356
335
|
<LocalizedLink to="/about">{content.links.about}</LocalizedLink>
|
|
357
336
|
</div>
|
|
358
|
-
<div
|
|
337
|
+
<div>
|
|
359
338
|
<button onClick={() => navigate({ to: "/" })}>
|
|
360
339
|
{content.links.home}
|
|
361
340
|
</button>
|
|
@@ -369,63 +348,71 @@ function RouteComponent() {
|
|
|
369
348
|
}
|
|
370
349
|
```
|
|
371
350
|
|
|
372
|
-
>
|
|
351
|
+
> 要了解更多关于 `useIntlayer` 钩子的内容,请参阅[文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/packages/react-intlayer/useIntlayer.md)。
|
|
373
352
|
|
|
374
353
|
### 第9步:创建语言切换组件
|
|
375
354
|
|
|
376
355
|
创建一个组件,允许用户切换语言:
|
|
377
356
|
|
|
378
|
-
```tsx fileName="src/components/locale-switcher.tsx"
|
|
357
|
+
```tsx fileName="src/components/locale-switcher.tsx"
|
|
358
|
+
import type { FC } from "react";
|
|
359
|
+
|
|
379
360
|
import { useLocation } from "@tanstack/react-router";
|
|
380
|
-
import {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
const {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
const { availableLocales, locale, setLocale } = useLocale({
|
|
393
|
-
onLocaleChange: (newLocale) => {
|
|
394
|
-
const pathWithLocale = getLocalizedUrl(pathname + searchStr, newLocale);
|
|
395
|
-
location.replace(pathWithLocale);
|
|
396
|
-
},
|
|
397
|
-
});
|
|
361
|
+
import { getHTMLTextDir, getLocaleName, getPathWithoutLocale } from "intlayer";
|
|
362
|
+
import { setLocaleCookie, useIntlayer, useLocale } from "react-intlayer";
|
|
363
|
+
|
|
364
|
+
import { LocalizedLink, To } from "./localized-link";
|
|
365
|
+
|
|
366
|
+
export const LocaleSwitcher: FC = () => {
|
|
367
|
+
const { localeSwitcherLabel } = useIntlayer("locale-switcher"); // 使用 useIntlayer 钩子获取语言切换器标签
|
|
368
|
+
const { pathname } = useLocation(); // 获取当前路径名
|
|
369
|
+
|
|
370
|
+
const { availableLocales, locale } = useLocale(); // 获取可用语言列表和当前语言
|
|
371
|
+
|
|
372
|
+
const pathWithoutLocale = getPathWithoutLocale(pathname); // 获取不带语言前缀的路径
|
|
398
373
|
|
|
399
374
|
return (
|
|
400
|
-
<
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
375
|
+
<ol>
|
|
376
|
+
{availableLocales.map((localeEl) => (
|
|
377
|
+
<li key={localeEl}>
|
|
378
|
+
<LocalizedLink
|
|
379
|
+
aria-current={localeEl === locale ? "page" : undefined} // 当前语言时设置 aria-current 为 page
|
|
380
|
+
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`} // 设置无障碍标签,显示语言切换器标签和语言名称
|
|
381
|
+
onClick={() => setLocaleCookie(localeEl)} // 点击时设置语言 cookie
|
|
382
|
+
params={{ locale: localeEl }} // 传递语言参数
|
|
383
|
+
to={pathWithoutLocale as To} // 跳转到不带语言前缀的路径
|
|
384
|
+
>
|
|
385
|
+
<span>
|
|
386
|
+
{/* 语言环境 - 例如 FR */}
|
|
387
|
+
{localeItem}
|
|
388
|
+
</span>
|
|
389
|
+
<span>
|
|
390
|
+
{/* 语言在其自身语言环境中的名称 - 例如 Français */}
|
|
391
|
+
{getLocaleName(localeItem, locale)}
|
|
392
|
+
</span>
|
|
393
|
+
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
394
|
+
{/* 语言在当前语言环境中的名称 - 例如当前语言环境为 Locales.SPANISH 时显示 Francés */}
|
|
395
|
+
{getLocaleName(localeItem)}
|
|
396
|
+
</span>
|
|
397
|
+
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
398
|
+
{/* 语言的英文名称 - 例如 French */}
|
|
399
|
+
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
400
|
+
</span>
|
|
401
|
+
</LocalizedLink>
|
|
402
|
+
</li>
|
|
416
403
|
))}
|
|
417
|
-
</
|
|
404
|
+
</ol>
|
|
418
405
|
);
|
|
419
|
-
}
|
|
406
|
+
};
|
|
420
407
|
```
|
|
421
408
|
|
|
422
|
-
>
|
|
409
|
+
> 要了解有关 `useLocale` 钩子的更多信息,请参阅[文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/packages/react-intlayer/useLocale.md)。
|
|
423
410
|
|
|
424
|
-
### 第10步:添加HTML属性管理(可选)
|
|
411
|
+
### 第10步:添加 HTML 属性管理(可选)
|
|
425
412
|
|
|
426
|
-
创建一个钩子来管理HTML的lang和dir属性:
|
|
413
|
+
创建一个钩子来管理 HTML 的 lang 和 dir 属性:
|
|
427
414
|
|
|
428
|
-
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx"
|
|
415
|
+
```tsx fileName="src/hooks/useI18nHTMLAttributes.tsx"
|
|
429
416
|
// src/hooks/useI18nHTMLAttributes.tsx
|
|
430
417
|
import { getHTMLTextDir } from "intlayer";
|
|
431
418
|
import { useEffect } from "react";
|
|
@@ -436,19 +423,18 @@ export const useI18nHTMLAttributes = () => {
|
|
|
436
423
|
|
|
437
424
|
useEffect(() => {
|
|
438
425
|
document.documentElement.lang = locale;
|
|
439
|
-
document.documentElement.dir = getHTMLTextDir(locale);
|
|
426
|
+
document.documentElement.dir = getHTMLTextDir(locale);
|
|
440
427
|
}, [locale]);
|
|
441
428
|
};
|
|
442
429
|
```
|
|
443
430
|
|
|
444
431
|
然后在你的根组件中使用它:
|
|
445
432
|
|
|
446
|
-
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
433
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
447
434
|
import { createFileRoute, Navigate, Outlet } from "@tanstack/react-router";
|
|
448
|
-
import { configuration } from "intlayer";
|
|
449
435
|
import { IntlayerProvider, useLocale } from "react-intlayer";
|
|
450
436
|
|
|
451
|
-
import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes"; //
|
|
437
|
+
import { useI18nHTMLAttributes } from "@/hooks/useI18nHTMLAttributes"; // 导入钩子
|
|
452
438
|
|
|
453
439
|
export const Route = createFileRoute("/{-$locale}")({
|
|
454
440
|
component: LayoutComponent,
|
|
@@ -457,55 +443,54 @@ export const Route = createFileRoute("/{-$locale}")({
|
|
|
457
443
|
function LayoutComponent() {
|
|
458
444
|
useI18nHTMLAttributes(); // 添加此行
|
|
459
445
|
|
|
446
|
+
const { defaultLocale } = useLocale();
|
|
460
447
|
const { locale } = Route.useParams();
|
|
461
448
|
|
|
462
449
|
return (
|
|
463
|
-
<IntlayerProvider locale={locale}>
|
|
450
|
+
<IntlayerProvider locale={locale ?? defaultLocale}>
|
|
464
451
|
<Outlet />
|
|
465
452
|
</IntlayerProvider>
|
|
466
453
|
);
|
|
467
454
|
}
|
|
468
455
|
```
|
|
469
456
|
|
|
470
|
-
|
|
457
|
+
---
|
|
471
458
|
|
|
472
|
-
|
|
459
|
+
### 第11步:添加中间件(可选)
|
|
473
460
|
|
|
474
|
-
|
|
475
|
-
# 构建 Intlayer 字典
|
|
476
|
-
npm run intlayer:build
|
|
461
|
+
您还可以使用 `intlayerMiddleware` 为您的应用程序添加服务器端路由。该插件将根据 URL 自动检测当前语言环境,并设置相应的语言环境 Cookie。如果未指定语言环境,插件将根据用户浏览器的语言偏好确定最合适的语言环境。如果未检测到语言环境,它将重定向到默认语言环境。
|
|
477
462
|
|
|
478
|
-
|
|
479
|
-
npm run dev
|
|
480
|
-
```
|
|
463
|
+
> 注意,要在生产环境中使用 `intlayerMiddleware`,您需要将 `vite-intlayer` 包从 `devDependencies` 切换到 `dependencies`。
|
|
481
464
|
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
|
|
465
|
+
```typescript {3,7} fileName="vite.config.ts"
|
|
466
|
+
import { reactRouter } from "@react-router/dev/vite";
|
|
467
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
468
|
+
import { defineConfig } from "vite";
|
|
469
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
470
|
+
import tsconfigPaths from "vite-tsconfig-paths";
|
|
485
471
|
|
|
486
|
-
|
|
487
|
-
|
|
472
|
+
export default defineConfig({
|
|
473
|
+
plugins: [
|
|
474
|
+
tailwindcss(),
|
|
475
|
+
reactRouter(),
|
|
476
|
+
tsconfigPaths(),
|
|
477
|
+
intlayer(),
|
|
478
|
+
intlayerMiddleware(),
|
|
479
|
+
],
|
|
480
|
+
});
|
|
488
481
|
```
|
|
489
482
|
|
|
490
|
-
|
|
491
|
-
# 构建 Intlayer 字典
|
|
492
|
-
yarn intlayer:build
|
|
493
|
-
|
|
494
|
-
# 启动开发服务器
|
|
495
|
-
yarn dev
|
|
496
|
-
```
|
|
483
|
+
---
|
|
497
484
|
|
|
498
485
|
### 第12步:配置 TypeScript(可选)
|
|
499
486
|
|
|
500
|
-
Intlayer 使用模块增强来利用 TypeScript
|
|
487
|
+
Intlayer 使用模块增强来利用 TypeScript 的优势,使您的代码库更健壮。
|
|
501
488
|
|
|
502
489
|
确保您的 TypeScript 配置包含自动生成的类型:
|
|
503
490
|
|
|
504
491
|
```json5 fileName="tsconfig.json"
|
|
505
492
|
{
|
|
506
|
-
|
|
507
|
-
// ... 您现有的 TypeScript 配置
|
|
508
|
-
},
|
|
493
|
+
// ... 您现有的配置
|
|
509
494
|
include: [
|
|
510
495
|
// ... 您现有的包含项
|
|
511
496
|
".intlayer/**/*.ts", // 包含自动生成的类型
|
|
@@ -513,11 +498,13 @@ Intlayer 使用模块增强来利用 TypeScript 的优势,使您的代码库
|
|
|
513
498
|
}
|
|
514
499
|
```
|
|
515
500
|
|
|
501
|
+
---
|
|
502
|
+
|
|
516
503
|
### Git 配置
|
|
517
504
|
|
|
518
|
-
建议忽略 Intlayer 生成的文件。这样可以避免将它们提交到您的 Git
|
|
505
|
+
建议忽略 Intlayer 生成的文件。这样可以避免将它们提交到您的 Git 仓库中。
|
|
519
506
|
|
|
520
|
-
|
|
507
|
+
要做到这一点,您可以将以下指令添加到您的 `.gitignore` 文件中:
|
|
521
508
|
|
|
522
509
|
```plaintext fileName=".gitignore"
|
|
523
510
|
# 忽略 Intlayer 生成的文件
|
|
@@ -526,64 +513,6 @@ Intlayer 使用模块增强来利用 TypeScript 的优势,使您的代码库
|
|
|
526
513
|
|
|
527
514
|
---
|
|
528
515
|
|
|
529
|
-
### 第 13 步:创建重定向(可选)
|
|
530
|
-
|
|
531
|
-
```typescript fileName="src/routes/{-$locale}/rotue.tsx" codeFormat="typescript"
|
|
532
|
-
function LayoutComponent() {
|
|
533
|
-
useI18nHTMLAttributes();
|
|
534
|
-
|
|
535
|
-
const { locale } = Route.useParams();
|
|
536
|
-
const { locale: selectedLocale } = useLocale();
|
|
537
|
-
const { defaultLocale } = configuration.internationalization;
|
|
538
|
-
const { prefixDefault } = configuration.middleware;
|
|
539
|
-
|
|
540
|
-
// 如果 prefixDefault 为 true 且 URL 中没有 locale,则重定向到默认语言
|
|
541
|
-
if (selectedLocale === defaultLocale && !locale && prefixDefault) {
|
|
542
|
-
return <Navigate replace to={defaultLocale} />;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
// 如果 URL 中的 locale 与选定的 locale 不匹配,则重定向到选定的 locale
|
|
546
|
-
if (selectedLocale !== defaultLocale && !locale) {
|
|
547
|
-
return <Navigate replace to={selectedLocale} />;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
return (
|
|
551
|
-
<IntlayerProvider locale={locale}>
|
|
552
|
-
<Outlet />
|
|
553
|
-
</IntlayerProvider>
|
|
554
|
-
);
|
|
555
|
-
}
|
|
556
|
-
```
|
|
557
|
-
|
|
558
|
-
## 生产部署
|
|
559
|
-
|
|
560
|
-
部署您的应用程序时:
|
|
561
|
-
|
|
562
|
-
1. **构建您的应用程序:**
|
|
563
|
-
|
|
564
|
-
```bash
|
|
565
|
-
npm run build
|
|
566
|
-
```
|
|
567
|
-
|
|
568
|
-
2. **构建 Intlayer 词典:**
|
|
569
|
-
|
|
570
|
-
```bash
|
|
571
|
-
npm run intlayer:build
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
3. **如果在生产环境中使用中间件,请将 `vite-intlayer` 移动到依赖项:**
|
|
575
|
-
```bash
|
|
576
|
-
npm install vite-intlayer --save
|
|
577
|
-
```
|
|
578
|
-
|
|
579
|
-
您的应用程序现在将支持:
|
|
580
|
-
|
|
581
|
-
- **URL 结构**:`/en`、`/en/about`、`/tr`、`/tr/about`
|
|
582
|
-
- **基于浏览器偏好的自动语言环境检测**
|
|
583
|
-
- **基于 Tanstack Start 的语言环境感知路由**
|
|
584
|
-
- **带有自动生成类型的 TypeScript 支持**
|
|
585
|
-
- **具有正确语言环境处理的服务器端渲染**
|
|
586
|
-
|
|
587
516
|
## VS Code 扩展
|
|
588
517
|
|
|
589
518
|
为了提升您使用 Intlayer 的开发体验,您可以安装官方的 **Intlayer VS Code 扩展**。
|
|
@@ -592,18 +521,18 @@ function LayoutComponent() {
|
|
|
592
521
|
|
|
593
522
|
该扩展提供:
|
|
594
523
|
|
|
595
|
-
-
|
|
596
|
-
-
|
|
597
|
-
-
|
|
598
|
-
-
|
|
524
|
+
- 翻译键的**自动补全**。
|
|
525
|
+
- 缺失翻译的**实时错误检测**。
|
|
526
|
+
- 翻译内容的**内联预览**。
|
|
527
|
+
- 轻松创建和更新翻译的**快速操作**。
|
|
599
528
|
|
|
600
|
-
有关如何使用该扩展的更多详细信息,请参阅
|
|
529
|
+
有关如何使用该扩展的更多详细信息,请参阅[Intlayer VS Code 扩展文档](https://intlayer.org/doc/vs-code-extension)。
|
|
601
530
|
|
|
602
531
|
---
|
|
603
532
|
|
|
604
|
-
##
|
|
533
|
+
## 深入探索
|
|
605
534
|
|
|
606
|
-
|
|
535
|
+
要进一步使用,您可以实现[可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_visual_editor.md)或使用[内容管理系统(CMS)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_CMS.md)将内容外部化。
|
|
607
536
|
|
|
608
537
|
---
|
|
609
538
|
|
|
@@ -612,14 +541,8 @@ function LayoutComponent() {
|
|
|
612
541
|
- [Intlayer 文档](https://intlayer.org)
|
|
613
542
|
- [Tanstack Start 文档](https://reactrouter.com/)
|
|
614
543
|
- [useIntlayer 钩子](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/packages/react-intlayer/useIntlayer.md)
|
|
615
|
-
- [useLocale
|
|
544
|
+
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/packages/react-intlayer/useLocale.md)
|
|
616
545
|
- [内容声明](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/get_started.md)
|
|
617
546
|
- [配置](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md)
|
|
618
547
|
|
|
619
|
-
本综合指南提供了将 Intlayer 与 Tanstack Start
|
|
620
|
-
|
|
621
|
-
## 文档历史
|
|
622
|
-
|
|
623
|
-
| 版本 | 日期 | 变更内容 |
|
|
624
|
-
| ----- | ---------- | ---------------------- |
|
|
625
|
-
| 5.8.1 | 2025-09-09 | 为 Tanstack Start 添加 |
|
|
548
|
+
本综合指南提供了将 Intlayer 与 Tanstack Start 集成所需的一切,支持完全国际化的应用程序,具备基于区域设置的路由和 TypeScript 支持。
|