@intlayer/docs 9.3.3 → 9.4.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/README.md +4 -1
- package/authors.json +1 -1
- package/blog/ar/i18n_using_next-i18next.md +52 -13
- package/blog/ar/i18n_using_next-intl.md +20 -2
- package/blog/de/i18n_using_next-i18next.md +37 -37
- package/blog/de/i18n_using_next-intl.md +18 -0
- package/blog/en/i18n_using_next-i18next.md +35 -0
- package/blog/en/i18n_using_next-intl.md +18 -0
- package/blog/en/rag_powered_documentation_assistant.md +4 -1
- package/blog/en-GB/i18n_using_next-i18next.md +28 -1
- package/blog/en-GB/i18n_using_next-intl.md +18 -0
- package/blog/es/i18n_using_next-i18next.md +52 -13
- package/blog/es/i18n_using_next-intl.md +18 -0
- package/blog/fr/i18n_using_next-i18next.md +27 -0
- package/blog/fr/i18n_using_next-intl.md +18 -0
- package/blog/hi/i18n_using_next-i18next.md +52 -13
- package/blog/hi/i18n_using_next-intl.md +18 -0
- package/blog/id/i18n_using_next-i18next.md +40 -13
- package/blog/id/i18n_using_next-intl.md +18 -0
- package/blog/it/i18n_using_next-i18next.md +40 -13
- package/blog/it/i18n_using_next-intl.md +18 -0
- package/blog/ja/i18n_using_next-i18next.md +27 -0
- package/blog/ja/i18n_using_next-intl.md +18 -0
- package/blog/ko/i18n_using_next-i18next.md +40 -13
- package/blog/ko/i18n_using_next-intl.md +18 -0
- package/blog/pl/i18n_using_next-i18next.md +40 -13
- package/blog/pl/i18n_using_next-intl.md +18 -0
- package/blog/pt/i18n_using_next-i18next.md +52 -13
- package/blog/pt/i18n_using_next-intl.md +18 -0
- package/blog/ru/i18n_using_next-i18next.md +37 -37
- package/blog/ru/i18n_using_next-intl.md +19 -1
- package/blog/tr/i18n_using_next-i18next.md +40 -13
- package/blog/tr/i18n_using_next-intl.md +18 -0
- package/blog/uk/i18n_using_next-i18next.md +53 -26
- package/blog/uk/i18n_using_next-intl.md +30 -12
- package/blog/vi/i18n_using_next-i18next.md +40 -13
- package/blog/vi/i18n_using_next-intl.md +18 -0
- package/blog/zh/i18n_using_next-i18next.md +31 -31
- package/blog/zh/i18n_using_next-intl.md +22 -4
- package/dist/cjs/authors2.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs +140 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/authors2.mjs +1 -1
- package/dist/esm/generated/docs.entry.mjs +140 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +7 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/agent_skills.md +7 -7
- package/docs/ar/analytics.md +57 -13
- package/docs/ar/benchmark/tanstack.md +6 -0
- package/docs/ar/bundle_optimization.md +2 -2
- package/docs/ar/cli/ci.md +2 -0
- package/docs/ar/cli/doc-review.md +9 -1
- package/docs/ar/cli/fill.md +0 -8
- package/docs/ar/cli/index.md +2 -0
- package/docs/ar/cli/list_projects.md +0 -2
- package/docs/ar/cli/login.md +28 -0
- package/docs/ar/compiler.md +14 -0
- package/docs/ar/configuration.md +19 -17
- package/docs/ar/custom_domains.md +33 -0
- package/docs/ar/custom_url_rewrites.md +9 -5
- package/docs/ar/dictionary/html.md +16 -14
- package/docs/ar/dictionary/markdown.md +7 -3
- package/docs/ar/dictionary/plurial.md +92 -123
- package/docs/ar/dynamic_dictionaries/variants.md +24 -36
- package/docs/ar/formatters.md +0 -128
- package/docs/ar/how_works_intlayer.md +8 -1
- package/docs/ar/interest_of_intlayer.md +17 -1
- package/docs/ar/intlayer_visual_editor.md +12 -0
- package/docs/ar/intlayer_with_adonisjs.md +5 -3
- package/docs/ar/intlayer_with_analog.md +18 -1
- package/docs/ar/intlayer_with_angular_19.md +18 -1
- package/docs/ar/intlayer_with_angular_21.md +18 -1
- package/docs/ar/intlayer_with_astro.md +42 -1
- package/docs/ar/intlayer_with_astro_lit.md +18 -1
- package/docs/ar/intlayer_with_astro_preact.md +24 -1
- package/docs/ar/intlayer_with_astro_react.md +18 -1
- package/docs/ar/intlayer_with_astro_solid.md +18 -1
- package/docs/ar/intlayer_with_astro_svelte.md +18 -1
- package/docs/ar/intlayer_with_astro_vanilla.md +18 -1
- package/docs/ar/intlayer_with_astro_vue.md +18 -1
- package/docs/ar/intlayer_with_create_react_app.md +55 -119
- package/docs/ar/intlayer_with_elysia.md +343 -0
- package/docs/ar/intlayer_with_express.md +11 -3
- package/docs/ar/intlayer_with_fastify.md +5 -3
- package/docs/ar/intlayer_with_hono.md +48 -3
- package/docs/ar/intlayer_with_lynx+react.md +31 -1
- package/docs/ar/intlayer_with_nestjs.md +19 -3
- package/docs/ar/intlayer_with_next-i18next.md +11 -0
- package/docs/ar/intlayer_with_nextjs_14.md +234 -37
- package/docs/ar/intlayer_with_nextjs_15.md +219 -1
- package/docs/ar/intlayer_with_nextjs_16.md +171 -45
- package/docs/ar/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +160 -5
- package/docs/ar/intlayer_with_nextjs_page_router.md +16 -29
- package/docs/ar/intlayer_with_nuxt.md +18 -1
- package/docs/ar/intlayer_with_react_native+expo.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7.md +48 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +192 -53
- package/docs/ar/intlayer_with_solid_start.md +13 -1
- package/docs/ar/intlayer_with_storybook.md +18 -1
- package/docs/ar/intlayer_with_svelte_kit.md +26 -17
- package/docs/ar/intlayer_with_tanstack+solid.md +250 -7
- package/docs/ar/intlayer_with_tanstack.md +284 -50
- package/docs/ar/intlayer_with_vanilla.md +18 -1
- package/docs/ar/intlayer_with_vite+lit.md +22 -1
- package/docs/ar/intlayer_with_vite+preact.md +52 -17
- package/docs/ar/intlayer_with_vite+react.md +22 -13
- package/docs/ar/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/ar/intlayer_with_vite+solid.md +29 -49
- package/docs/ar/intlayer_with_vite+svelte.md +43 -13
- package/docs/ar/intlayer_with_vite+vanilla.md +20 -1
- package/docs/ar/intlayer_with_vite+vue.md +33 -15
- package/docs/ar/introduction.md +1 -1
- package/docs/ar/live-sync.md +13 -2
- package/docs/ar/mcp_server.md +34 -21
- package/docs/ar/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ar/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ar/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ar/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ar/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ar/packages/elysia-intlayer/exports.md +136 -0
- package/docs/ar/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/ar/packages/intlayer/getDictionary.md +155 -0
- package/docs/ar/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/ar/packages/intlayer/getEnumeration.md +2 -0
- package/docs/ar/packages/intlayer/getIntlayer.md +197 -0
- package/docs/ar/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/ar/packages/intlayer/getLocaleLang.md +0 -2
- package/docs/ar/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/ar/packages/intlayer/getLocalizedUrl.md +14 -30
- package/docs/ar/packages/intlayer/getMultilingualUrls.md +6 -2
- package/docs/ar/packages/intlayer/getTranslation.md +2 -0
- package/docs/ar/packages/next-intlayer/t.md +20 -0
- package/docs/ar/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/ar/packages/next-intlayer/useLocale.md +2 -0
- package/docs/ar/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/ar/packages/react-intlayer/useI18n.md +31 -0
- package/docs/ar/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/ar/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ar/packages/vite-intlayer/intlayerPrune.md +10 -2
- package/docs/ar/per_locale_file.md +13 -13
- package/docs/ar/readme.md +1 -0
- package/docs/ar/releases/v6.md +16 -2
- package/docs/ar/releases/v9.md +2 -0
- package/docs/ar/self_hosting.md +67 -24
- package/docs/bn/bundle_optimization.md +2 -2
- package/docs/bn/configuration.md +12 -9
- package/docs/bn/intlayer_with_fastify.md +5 -3
- package/docs/bn/intlayer_with_hono.md +5 -3
- package/docs/cs/bundle_optimization.md +2 -2
- package/docs/cs/configuration.md +12 -9
- package/docs/cs/intlayer_with_fastify.md +5 -3
- package/docs/cs/intlayer_with_hono.md +5 -3
- package/docs/de/analytics.md +57 -13
- package/docs/de/benchmark/tanstack.md +6 -0
- package/docs/de/bundle_optimization.md +2 -2
- package/docs/de/cli/ci.md +2 -0
- package/docs/de/cli/doc-review.md +9 -1
- package/docs/de/cli/fill.md +0 -8
- package/docs/de/cli/index.md +2 -0
- package/docs/de/cli/init.md +0 -8
- package/docs/de/cli/list_projects.md +0 -2
- package/docs/de/cli/login.md +28 -0
- package/docs/de/compiler.md +14 -0
- package/docs/de/configuration.md +19 -17
- package/docs/de/custom_domains.md +34 -0
- package/docs/de/custom_url_rewrites.md +7 -5
- package/docs/de/dictionary/enumeration.md +0 -183
- package/docs/de/dictionary/html.md +18 -18
- package/docs/de/dictionary/insertion.md +0 -14
- package/docs/de/dictionary/markdown.md +31 -14
- package/docs/de/dictionary/plurial.md +70 -272
- package/docs/de/dynamic_dictionaries/variants.md +24 -0
- package/docs/de/formatters.md +12 -39
- package/docs/de/how_works_intlayer.md +8 -1
- package/docs/de/intlayer_CMS.md +26 -21
- package/docs/de/intlayer_visual_editor.md +12 -0
- package/docs/de/intlayer_with_adonisjs.md +5 -3
- package/docs/de/intlayer_with_analog.md +1 -1
- package/docs/de/intlayer_with_angular_19.md +1 -1
- package/docs/de/intlayer_with_angular_21.md +1 -1
- package/docs/de/intlayer_with_astro.md +25 -1
- package/docs/de/intlayer_with_astro_lit.md +1 -1
- package/docs/de/intlayer_with_astro_preact.md +7 -1
- package/docs/de/intlayer_with_astro_react.md +1 -1
- package/docs/de/intlayer_with_astro_solid.md +1 -1
- package/docs/de/intlayer_with_astro_svelte.md +1 -1
- package/docs/de/intlayer_with_astro_vanilla.md +1 -1
- package/docs/de/intlayer_with_astro_vue.md +1 -1
- package/docs/de/intlayer_with_create_react_app.md +51 -0
- package/docs/de/intlayer_with_elysia.md +343 -0
- package/docs/de/intlayer_with_express.md +7 -3
- package/docs/de/intlayer_with_fastify.md +5 -3
- package/docs/de/intlayer_with_hono.md +5 -3
- package/docs/de/intlayer_with_lynx+react.md +14 -27
- package/docs/de/intlayer_with_nestjs.md +5 -3
- package/docs/de/intlayer_with_next-intl.md +0 -5
- package/docs/de/intlayer_with_nextjs_14.md +240 -10
- package/docs/de/intlayer_with_nextjs_15.md +201 -1
- package/docs/de/intlayer_with_nextjs_16.md +96 -36
- package/docs/de/intlayer_with_nextjs_compiler.md +467 -10
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +126 -5
- package/docs/de/intlayer_with_nextjs_page_router.md +5 -44
- package/docs/de/intlayer_with_nuxt.md +1 -1
- package/docs/de/intlayer_with_react_native+expo.md +1 -1
- package/docs/de/intlayer_with_react_router_v7.md +31 -1
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +103 -13
- package/docs/de/intlayer_with_solid_start.md +13 -1
- package/docs/de/intlayer_with_storybook.md +1 -1
- package/docs/de/intlayer_with_svelte_kit.md +7 -1
- package/docs/de/intlayer_with_tanstack+solid.md +158 -7
- package/docs/de/intlayer_with_tanstack.md +349 -179
- package/docs/de/intlayer_with_vanilla.md +1 -1
- package/docs/de/intlayer_with_vite+lit.md +5 -1
- package/docs/de/intlayer_with_vite+preact.md +9 -5
- package/docs/de/intlayer_with_vite+react.md +5 -3
- package/docs/de/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/de/intlayer_with_vite+solid.md +12 -13
- package/docs/de/intlayer_with_vite+svelte.md +25 -1
- package/docs/de/intlayer_with_vite+vanilla.md +3 -1
- package/docs/de/intlayer_with_vite+vue.md +16 -3
- package/docs/de/introduction.md +1 -1
- package/docs/de/live-sync.md +39 -0
- package/docs/de/mcp_server.md +34 -21
- package/docs/de/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/de/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/de/packages/elysia-intlayer/exports.md +136 -0
- package/docs/de/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/de/packages/intlayer/getDictionary.md +155 -0
- package/docs/de/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/de/packages/intlayer/getEnumeration.md +2 -0
- package/docs/de/packages/intlayer/getIntlayer.md +197 -0
- package/docs/de/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/de/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/de/packages/intlayer/getLocalizedUrl.md +6 -30
- package/docs/de/packages/intlayer/getMultilingualUrls.md +6 -2
- package/docs/de/packages/intlayer/getTranslation.md +2 -0
- package/docs/de/packages/next-intlayer/t.md +20 -0
- package/docs/de/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/de/packages/next-intlayer/useLocale.md +2 -0
- package/docs/de/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/de/packages/react-intlayer/useI18n.md +31 -0
- package/docs/de/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/de/packages/solid-intlayer/useRewriteURL.md +0 -2
- package/docs/de/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/de/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/de/per_locale_file.md +13 -13
- package/docs/de/readme.md +3 -2
- package/docs/de/releases/v6.md +33 -33
- package/docs/de/releases/v9.md +2 -0
- package/docs/de/self_hosting.md +68 -24
- package/docs/en/analytics.md +526 -34
- package/docs/en/bundle_optimization.md +2 -2
- package/docs/en/cli/index.md +2 -0
- package/docs/en/cli/login.md +28 -0
- package/docs/en/configuration.md +12 -9
- package/docs/en/custom_domains.md +39 -2
- package/docs/en/dictionary/html.md +16 -16
- package/docs/en/dynamic_dictionaries/variants.md +41 -18
- package/docs/en/formatters.md +5 -2
- package/docs/en/intlayer_with_adonisjs.md +5 -3
- package/docs/en/intlayer_with_elysia.md +339 -0
- package/docs/en/intlayer_with_express.md +5 -3
- package/docs/en/intlayer_with_fastify.md +5 -4
- package/docs/en/intlayer_with_hono.md +5 -3
- package/docs/en/intlayer_with_nestjs.md +5 -3
- package/docs/en/intlayer_with_nextjs_14.md +103 -8
- package/docs/en/intlayer_with_nextjs_15.md +105 -1
- package/docs/en/intlayer_with_nextjs_16.md +105 -1
- package/docs/en/intlayer_with_nextjs_compiler.md +43 -18
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +125 -5
- package/docs/en/intlayer_with_nextjs_page_router.md +4 -28
- package/docs/en/intlayer_with_tanstack+solid.md +157 -6
- package/docs/en/intlayer_with_tanstack.md +159 -7
- package/docs/en/mcp_server.md +34 -19
- package/docs/en/packages/elysia-intlayer/exports.md +134 -0
- package/docs/en/packages/elysia-intlayer/intlayer.md +137 -0
- package/docs/en/packages/intlayer/exports.md +19 -14
- package/docs/en/packages/intlayer/getDictionary.md +154 -0
- package/docs/en/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/en/packages/intlayer/getIntlayer.md +196 -0
- package/docs/en/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/en/packages/next-intlayer/exports.md +14 -10
- package/docs/en/packages/next-intlayer/t.md +33 -9
- package/docs/en/packages/next-intlayer/useDictionary.md +5 -2
- package/docs/en/packages/next-intlayer/useIntlayer.md +35 -1
- package/docs/en/packages/react-intlayer/exports.md +14 -11
- package/docs/en/packages/react-intlayer/useI18n.md +35 -1
- package/docs/en/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en/packages/vite-intlayer/intlayerPrune.md +1 -1
- package/docs/en/readme.md +1 -0
- package/docs/en/self_hosting.md +77 -20
- package/docs/en-GB/analytics.md +28 -5
- package/docs/en-GB/benchmark/tanstack.md +6 -0
- package/docs/en-GB/bundle_optimization.md +2 -2
- package/docs/en-GB/cli/ci.md +2 -0
- package/docs/en-GB/cli/doc-review.md +7 -1
- package/docs/en-GB/cli/fill.md +0 -8
- package/docs/en-GB/cli/index.md +2 -0
- package/docs/en-GB/cli/list_projects.md +0 -2
- package/docs/en-GB/cli/login.md +28 -0
- package/docs/en-GB/compiler.md +14 -0
- package/docs/en-GB/configuration.md +12 -9
- package/docs/en-GB/custom_domains.md +34 -0
- package/docs/en-GB/custom_url_rewrites.md +7 -5
- package/docs/en-GB/dictionary/condition.md +0 -201
- package/docs/en-GB/dictionary/content_file.md +0 -3
- package/docs/en-GB/dictionary/enumeration.md +0 -183
- package/docs/en-GB/dictionary/file.md +0 -166
- package/docs/en-GB/dictionary/gender.md +0 -212
- package/docs/en-GB/dictionary/html.md +17 -15
- package/docs/en-GB/dictionary/insertion.md +0 -4
- package/docs/en-GB/dictionary/markdown.md +7 -3
- package/docs/en-GB/dictionary/plurial.md +68 -271
- package/docs/en-GB/dictionary/translation.md +0 -133
- package/docs/en-GB/dynamic_dictionaries/variants.md +24 -0
- package/docs/en-GB/formatters.md +0 -164
- package/docs/en-GB/how_works_intlayer.md +7 -0
- package/docs/en-GB/interest_of_intlayer.md +1 -1
- package/docs/en-GB/intlayer_visual_editor.md +12 -0
- package/docs/en-GB/intlayer_with_adonisjs.md +5 -3
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular_19.md +1 -1
- package/docs/en-GB/intlayer_with_angular_21.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +25 -1
- package/docs/en-GB/intlayer_with_astro_lit.md +1 -1
- package/docs/en-GB/intlayer_with_astro_preact.md +7 -1
- package/docs/en-GB/intlayer_with_astro_react.md +1 -1
- package/docs/en-GB/intlayer_with_astro_solid.md +1 -1
- package/docs/en-GB/intlayer_with_astro_svelte.md +1 -1
- package/docs/en-GB/intlayer_with_astro_vanilla.md +1 -1
- package/docs/en-GB/intlayer_with_astro_vue.md +1 -1
- package/docs/en-GB/intlayer_with_create_react_app.md +10 -78
- package/docs/en-GB/intlayer_with_elysia.md +339 -0
- package/docs/en-GB/intlayer_with_express.md +11 -3
- package/docs/en-GB/intlayer_with_fastify.md +5 -4
- package/docs/en-GB/intlayer_with_hono.md +5 -3
- package/docs/en-GB/intlayer_with_lynx+react.md +9 -54
- package/docs/en-GB/intlayer_with_nestjs.md +5 -3
- package/docs/en-GB/intlayer_with_nextjs_14.md +181 -10
- package/docs/en-GB/intlayer_with_nextjs_15.md +196 -1
- package/docs/en-GB/intlayer_with_nextjs_16.md +226 -1
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +165 -5
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +140 -5
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_nuxt.md +1 -1
- package/docs/en-GB/intlayer_with_react_native+expo.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7.md +111 -1
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +261 -64
- package/docs/en-GB/intlayer_with_solid_start.md +13 -1
- package/docs/en-GB/intlayer_with_storybook.md +1 -1
- package/docs/en-GB/intlayer_with_svelte_kit.md +110 -5
- package/docs/en-GB/intlayer_with_tanstack+solid.md +160 -7
- package/docs/en-GB/intlayer_with_tanstack.md +382 -112
- package/docs/en-GB/intlayer_with_vanilla.md +1 -1
- package/docs/en-GB/intlayer_with_vite+lit.md +3 -1
- package/docs/en-GB/intlayer_with_vite+preact.md +104 -5
- package/docs/en-GB/intlayer_with_vite+react.md +110 -1
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/en-GB/intlayer_with_vite+solid.md +81 -18
- package/docs/en-GB/intlayer_with_vite+svelte.md +133 -1
- package/docs/en-GB/intlayer_with_vite+vanilla.md +3 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +169 -24
- package/docs/en-GB/live-sync.md +13 -2
- package/docs/en-GB/mcp_server.md +34 -21
- package/docs/en-GB/packages/elysia-intlayer/exports.md +134 -0
- package/docs/en-GB/packages/elysia-intlayer/intlayer.md +137 -0
- package/docs/en-GB/packages/intlayer/getDictionary.md +154 -0
- package/docs/en-GB/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/en-GB/packages/intlayer/getEnumeration.md +2 -0
- package/docs/en-GB/packages/intlayer/getIntlayer.md +196 -0
- package/docs/en-GB/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/en-GB/packages/intlayer/getLocalizedPath.md +45 -4
- package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +6 -30
- package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +14 -2
- package/docs/en-GB/packages/next-intlayer/t.md +20 -0
- package/docs/en-GB/packages/next-intlayer/useIntlayer.md +31 -4
- package/docs/en-GB/packages/next-intlayer/useLocale.md +2 -0
- package/docs/en-GB/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/en-GB/packages/react-intlayer/useI18n.md +31 -0
- package/docs/en-GB/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/en-GB/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en-GB/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/en-GB/per_locale_file.md +13 -13
- package/docs/en-GB/readme.md +3 -2
- package/docs/en-GB/releases/v6.md +30 -28
- package/docs/en-GB/self_hosting.md +60 -29
- package/docs/es/agent_skills.md +7 -7
- package/docs/es/analytics.md +57 -13
- package/docs/es/benchmark/tanstack.md +6 -0
- package/docs/es/bundle_optimization.md +2 -2
- package/docs/es/cli/ci.md +2 -0
- package/docs/es/cli/doc-review.md +13 -1
- package/docs/es/cli/fill.md +0 -8
- package/docs/es/cli/index.md +2 -0
- package/docs/es/cli/list_projects.md +0 -2
- package/docs/es/cli/login.md +28 -2
- package/docs/es/compat/next-intl.md +0 -2
- package/docs/es/compiler.md +14 -0
- package/docs/es/component_i18n.md +4 -0
- package/docs/es/configuration.md +19 -17
- package/docs/es/custom_domains.md +34 -0
- package/docs/es/custom_url_rewrites.md +7 -5
- package/docs/es/dictionary/enumeration.md +0 -154
- package/docs/es/dictionary/html.md +16 -16
- package/docs/es/dictionary/markdown.md +7 -3
- package/docs/es/dictionary/plurial.md +72 -275
- package/docs/es/dynamic_dictionaries/variants.md +24 -0
- package/docs/es/formatters.md +24 -113
- package/docs/es/how_works_intlayer.md +5 -0
- package/docs/es/intlayer_CMS.md +16 -8
- package/docs/es/intlayer_visual_editor.md +12 -0
- package/docs/es/intlayer_with_adonisjs.md +5 -3
- package/docs/es/intlayer_with_analog.md +1 -1
- package/docs/es/intlayer_with_angular_19.md +1 -1
- package/docs/es/intlayer_with_angular_21.md +1 -1
- package/docs/es/intlayer_with_astro.md +25 -1
- package/docs/es/intlayer_with_astro_lit.md +1 -1
- package/docs/es/intlayer_with_astro_preact.md +7 -1
- package/docs/es/intlayer_with_astro_react.md +1 -1
- package/docs/es/intlayer_with_astro_solid.md +1 -1
- package/docs/es/intlayer_with_astro_svelte.md +1 -1
- package/docs/es/intlayer_with_astro_vanilla.md +1 -1
- package/docs/es/intlayer_with_astro_vue.md +1 -1
- package/docs/es/intlayer_with_create_react_app.md +55 -26
- package/docs/es/intlayer_with_elysia.md +339 -0
- package/docs/es/intlayer_with_express.md +11 -32
- package/docs/es/intlayer_with_fastify.md +5 -3
- package/docs/es/intlayer_with_hono.md +5 -3
- package/docs/es/intlayer_with_lynx+react.md +14 -1
- package/docs/es/intlayer_with_nestjs.md +19 -3
- package/docs/es/intlayer_with_nextjs_14.md +179 -51
- package/docs/es/intlayer_with_nextjs_15.md +198 -1
- package/docs/es/intlayer_with_nextjs_16.md +130 -67
- package/docs/es/intlayer_with_nextjs_compiler.md +45 -5
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +146 -5
- package/docs/es/intlayer_with_nextjs_page_router.md +16 -29
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +31 -1
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +30 -30
- package/docs/es/intlayer_with_solid_start.md +13 -1
- package/docs/es/intlayer_with_storybook.md +1 -1
- package/docs/es/intlayer_with_svelte_kit.md +7 -1
- package/docs/es/intlayer_with_tanstack+solid.md +158 -7
- package/docs/es/intlayer_with_tanstack.md +337 -193
- package/docs/es/intlayer_with_vanilla.md +1 -1
- package/docs/es/intlayer_with_vite+lit.md +5 -1
- package/docs/es/intlayer_with_vite+preact.md +37 -5
- package/docs/es/intlayer_with_vite+react.md +3 -1
- package/docs/es/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/es/intlayer_with_vite+solid.md +12 -37
- package/docs/es/intlayer_with_vite+svelte.md +3 -1
- package/docs/es/intlayer_with_vite+vanilla.md +3 -1
- package/docs/es/intlayer_with_vite+vue.md +16 -3
- package/docs/es/live-sync.md +13 -4
- package/docs/es/mcp_server.md +34 -19
- package/docs/es/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/es/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/es/packages/elysia-intlayer/exports.md +134 -0
- package/docs/es/packages/elysia-intlayer/intlayer.md +137 -0
- package/docs/es/packages/intlayer/getDictionary.md +155 -0
- package/docs/es/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/es/packages/intlayer/getEnumeration.md +2 -0
- package/docs/es/packages/intlayer/getIntlayer.md +197 -0
- package/docs/es/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/es/packages/intlayer/getLocalizedPath.md +46 -5
- package/docs/es/packages/intlayer/getLocalizedUrl.md +6 -30
- package/docs/es/packages/intlayer/getMultilingualUrls.md +14 -2
- package/docs/es/packages/intlayer/getTranslation.md +2 -0
- package/docs/es/packages/next-intlayer/t.md +20 -0
- package/docs/es/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/es/packages/next-intlayer/useLocale.md +2 -0
- package/docs/es/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/es/packages/react-intlayer/useI18n.md +31 -0
- package/docs/es/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/es/packages/solid-intlayer/useRewriteURL.md +0 -2
- package/docs/es/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/es/packages/vite-intlayer/intlayerPrune.md +10 -2
- package/docs/es/per_locale_file.md +13 -13
- package/docs/es/readme.md +3 -2
- package/docs/es/releases/v6.md +8 -2
- package/docs/es/releases/v9.md +2 -0
- package/docs/es/self_hosting.md +67 -24
- package/docs/fr/CI_CD.md +2 -0
- package/docs/fr/agent_skills.md +7 -7
- package/docs/fr/analytics.md +79 -13
- package/docs/fr/benchmark/tanstack.md +6 -0
- package/docs/fr/bundle_optimization.md +2 -2
- package/docs/fr/cli/ci.md +2 -0
- package/docs/fr/cli/doc-review.md +7 -1
- package/docs/fr/cli/fill.md +0 -8
- package/docs/fr/cli/index.md +2 -0
- package/docs/fr/cli/list_projects.md +0 -2
- package/docs/fr/cli/login.md +28 -0
- package/docs/fr/compiler.md +14 -0
- package/docs/fr/configuration.md +19 -19
- package/docs/fr/custom_domains.md +34 -0
- package/docs/fr/custom_url_rewrites.md +7 -5
- package/docs/fr/dictionary/condition.md +0 -201
- package/docs/fr/dictionary/html.md +17 -17
- package/docs/fr/dictionary/markdown.md +7 -3
- package/docs/fr/dictionary/plurial.md +79 -110
- package/docs/fr/dynamic_dictionaries/variants.md +24 -0
- package/docs/fr/formatters.md +0 -106
- package/docs/fr/how_works_intlayer.md +5 -2
- package/docs/fr/intlayer_CMS.md +26 -21
- package/docs/fr/intlayer_visual_editor.md +12 -0
- package/docs/fr/intlayer_with_adonisjs.md +5 -3
- package/docs/fr/intlayer_with_astro.md +24 -0
- package/docs/fr/intlayer_with_create_react_app.md +55 -0
- package/docs/fr/intlayer_with_elysia.md +339 -0
- package/docs/fr/intlayer_with_express.md +11 -69
- package/docs/fr/intlayer_with_fastify.md +5 -3
- package/docs/fr/intlayer_with_hono.md +5 -3
- package/docs/fr/intlayer_with_lynx+react.md +13 -0
- package/docs/fr/intlayer_with_nestjs.md +19 -3
- package/docs/fr/intlayer_with_nextjs_14.md +237 -9
- package/docs/fr/intlayer_with_nextjs_15.md +179 -8
- package/docs/fr/intlayer_with_nextjs_16.md +125 -29
- package/docs/fr/intlayer_with_nextjs_compiler.md +45 -5
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +143 -4
- package/docs/fr/intlayer_with_nextjs_page_router.md +15 -28
- package/docs/fr/intlayer_with_nuxt.md +29 -0
- package/docs/fr/intlayer_with_react_native+expo.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7.md +31 -0
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +29 -1
- package/docs/fr/intlayer_with_solid_start.md +13 -1
- package/docs/fr/intlayer_with_svelte_kit.md +6 -0
- package/docs/fr/intlayer_with_tanstack+solid.md +157 -8
- package/docs/fr/intlayer_with_tanstack.md +302 -156
- package/docs/fr/intlayer_with_vite+lit.md +4 -0
- package/docs/fr/intlayer_with_vite+preact.md +36 -4
- package/docs/fr/intlayer_with_vite+react.md +2 -0
- package/docs/fr/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/fr/intlayer_with_vite+solid.md +11 -36
- package/docs/fr/intlayer_with_vite+svelte.md +2 -0
- package/docs/fr/intlayer_with_vite+vanilla.md +2 -0
- package/docs/fr/intlayer_with_vite+vue.md +15 -2
- package/docs/fr/live-sync.md +13 -2
- package/docs/fr/mcp_server.md +34 -19
- package/docs/fr/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/fr/packages/elysia-intlayer/exports.md +134 -0
- package/docs/fr/packages/elysia-intlayer/intlayer.md +137 -0
- package/docs/fr/packages/intlayer/getDictionary.md +154 -0
- package/docs/fr/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/fr/packages/intlayer/getEnumeration.md +2 -0
- package/docs/fr/packages/intlayer/getIntlayer.md +196 -0
- package/docs/fr/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/fr/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/fr/packages/intlayer/getLocalizedUrl.md +6 -30
- package/docs/fr/packages/intlayer/getMultilingualUrls.md +6 -2
- package/docs/fr/packages/intlayer/getTranslation.md +2 -0
- package/docs/fr/packages/next-intlayer/t.md +20 -0
- package/docs/fr/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/fr/packages/next-intlayer/useLocale.md +2 -0
- package/docs/fr/packages/react-intlayer/useI18n.md +31 -0
- package/docs/fr/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/fr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/fr/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/fr/per_locale_file.md +13 -13
- package/docs/fr/readme.md +3 -2
- package/docs/fr/releases/v6.md +8 -2
- package/docs/fr/releases/v9.md +2 -0
- package/docs/fr/self_hosting.md +67 -24
- package/docs/hi/agent_skills.md +7 -7
- package/docs/hi/analytics.md +28 -5
- package/docs/hi/benchmark/tanstack.md +6 -0
- package/docs/hi/bundle_optimization.md +2 -2
- package/docs/hi/cli/ci.md +2 -0
- package/docs/hi/cli/doc-review.md +10 -2
- package/docs/hi/cli/fill.md +0 -8
- package/docs/hi/cli/index.md +2 -0
- package/docs/hi/cli/list_projects.md +0 -2
- package/docs/hi/cli/login.md +28 -0
- package/docs/hi/compiler.md +14 -0
- package/docs/hi/configuration.md +19 -17
- package/docs/hi/custom_domains.md +33 -0
- package/docs/hi/custom_url_rewrites.md +7 -5
- package/docs/hi/dictionary/content_file.md +0 -2
- package/docs/hi/dictionary/html.md +36 -15
- package/docs/hi/dictionary/insertion.md +0 -14
- package/docs/hi/dictionary/markdown.md +31 -14
- package/docs/hi/dictionary/plurial.md +81 -113
- package/docs/hi/dynamic_dictionaries/variants.md +24 -0
- package/docs/hi/formatters.md +12 -37
- package/docs/hi/how_works_intlayer.md +8 -1
- package/docs/hi/interest_of_intlayer.md +17 -1
- package/docs/hi/intlayer_visual_editor.md +12 -0
- package/docs/hi/intlayer_with_adonisjs.md +5 -3
- package/docs/hi/intlayer_with_analog.md +18 -1
- package/docs/hi/intlayer_with_angular_19.md +21 -1
- package/docs/hi/intlayer_with_angular_21.md +18 -1
- package/docs/hi/intlayer_with_astro.md +44 -1
- package/docs/hi/intlayer_with_astro_lit.md +47 -4
- package/docs/hi/intlayer_with_astro_preact.md +50 -1
- package/docs/hi/intlayer_with_astro_react.md +44 -1
- package/docs/hi/intlayer_with_astro_solid.md +44 -1
- package/docs/hi/intlayer_with_astro_svelte.md +44 -1
- package/docs/hi/intlayer_with_astro_vanilla.md +44 -1
- package/docs/hi/intlayer_with_astro_vue.md +20 -1
- package/docs/hi/intlayer_with_create_react_app.md +53 -418
- package/docs/hi/intlayer_with_elysia.md +343 -0
- package/docs/hi/intlayer_with_express.md +9 -17
- package/docs/hi/intlayer_with_fastify.md +5 -3
- package/docs/hi/intlayer_with_hono.md +44 -3
- package/docs/hi/intlayer_with_lynx+react.md +26 -11
- package/docs/hi/intlayer_with_next-i18next.md +21 -0
- package/docs/hi/intlayer_with_nextjs_14.md +234 -35
- package/docs/hi/intlayer_with_nextjs_15.md +224 -9
- package/docs/hi/intlayer_with_nextjs_16.md +135 -11
- package/docs/hi/intlayer_with_nextjs_compiler.md +49 -5
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +163 -5
- package/docs/hi/intlayer_with_nextjs_page_router.md +29 -36
- package/docs/hi/intlayer_with_nuxt.md +47 -1
- package/docs/hi/intlayer_with_react_native+expo.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7.md +50 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +162 -46
- package/docs/hi/intlayer_with_solid_start.md +13 -1
- package/docs/hi/intlayer_with_storybook.md +18 -1
- package/docs/hi/intlayer_with_svelte_kit.md +26 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +253 -7
- package/docs/hi/intlayer_with_tanstack.md +388 -158
- package/docs/hi/intlayer_with_vanilla.md +18 -1
- package/docs/hi/intlayer_with_vite+lit.md +22 -1
- package/docs/hi/intlayer_with_vite+preact.md +33 -100
- package/docs/hi/intlayer_with_vite+react.md +24 -8
- package/docs/hi/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/hi/intlayer_with_vite+solid.md +31 -26
- package/docs/hi/intlayer_with_vite+svelte.md +80 -1
- package/docs/hi/intlayer_with_vite+vanilla.md +20 -69
- package/docs/hi/intlayer_with_vite+vue.md +30 -10
- package/docs/hi/live-sync.md +39 -0
- package/docs/hi/mcp_server.md +34 -21
- package/docs/hi/packages/elysia-intlayer/exports.md +136 -0
- package/docs/hi/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/hi/packages/intlayer/getDictionary.md +156 -0
- package/docs/hi/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/hi/packages/intlayer/getEnumeration.md +2 -0
- package/docs/hi/packages/intlayer/getIntlayer.md +197 -0
- package/docs/hi/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/hi/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/hi/packages/intlayer/getLocalizedUrl.md +6 -15
- package/docs/hi/packages/intlayer/getMultilingualUrls.md +6 -2
- package/docs/hi/packages/intlayer/getTranslation.md +2 -0
- package/docs/hi/packages/next-intlayer/t.md +20 -31
- package/docs/hi/packages/next-intlayer/useIntlayer.md +33 -0
- package/docs/hi/packages/next-intlayer/useLocale.md +2 -0
- package/docs/hi/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/hi/packages/react-intlayer/useI18n.md +31 -0
- package/docs/hi/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/hi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/hi/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/hi/per_locale_file.md +13 -13
- package/docs/hi/readme.md +3 -2
- package/docs/hi/releases/v6.md +16 -2
- package/docs/hi/releases/v9.md +2 -0
- package/docs/hi/self_hosting.md +80 -26
- package/docs/id/agent_skills.md +6 -6
- package/docs/id/analytics.md +28 -5
- package/docs/id/benchmark/tanstack.md +6 -0
- package/docs/id/bundle_optimization.md +2 -2
- package/docs/id/cli/ci.md +2 -0
- package/docs/id/cli/doc-review.md +9 -1
- package/docs/id/cli/fill.md +0 -8
- package/docs/id/cli/index.md +2 -0
- package/docs/id/cli/login.md +28 -0
- package/docs/id/compiler.md +14 -0
- package/docs/id/configuration.md +19 -17
- package/docs/id/custom_domains.md +34 -0
- package/docs/id/custom_url_rewrites.md +7 -5
- package/docs/id/dictionary/content_file.md +0 -29
- package/docs/id/dictionary/file.md +0 -166
- package/docs/id/dictionary/gender.md +0 -212
- package/docs/id/dictionary/html.md +134 -16
- package/docs/id/dictionary/insertion.md +0 -14
- package/docs/id/dictionary/markdown.md +31 -14
- package/docs/id/dictionary/plurial.md +79 -110
- package/docs/id/dynamic_dictionaries/variants.md +24 -0
- package/docs/id/formatters.md +12 -39
- package/docs/id/interest_of_intlayer.md +1 -3
- package/docs/id/intlayer_with_adonisjs.md +5 -3
- package/docs/id/intlayer_with_analog.md +1 -1
- package/docs/id/intlayer_with_angular_19.md +1 -1
- package/docs/id/intlayer_with_angular_21.md +1 -1
- package/docs/id/intlayer_with_astro.md +25 -1
- package/docs/id/intlayer_with_astro_lit.md +1 -1
- package/docs/id/intlayer_with_astro_preact.md +7 -1
- package/docs/id/intlayer_with_astro_react.md +1 -1
- package/docs/id/intlayer_with_astro_solid.md +1 -1
- package/docs/id/intlayer_with_astro_svelte.md +1 -1
- package/docs/id/intlayer_with_astro_vanilla.md +1 -1
- package/docs/id/intlayer_with_astro_vue.md +1 -1
- package/docs/id/intlayer_with_create_react_app.md +43 -0
- package/docs/id/intlayer_with_elysia.md +343 -0
- package/docs/id/intlayer_with_express.md +5 -3
- package/docs/id/intlayer_with_fastify.md +5 -3
- package/docs/id/intlayer_with_hono.md +44 -3
- package/docs/id/intlayer_with_lynx+react.md +1 -1
- package/docs/id/intlayer_with_nestjs.md +5 -3
- package/docs/id/intlayer_with_nextjs_14.md +127 -8
- package/docs/id/intlayer_with_nextjs_15.md +104 -1
- package/docs/id/intlayer_with_nextjs_16.md +122 -3
- package/docs/id/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +142 -5
- package/docs/id/intlayer_with_nextjs_page_router.md +32 -25
- package/docs/id/intlayer_with_nuxt.md +1 -1
- package/docs/id/intlayer_with_react_native+expo.md +1 -1
- package/docs/id/intlayer_with_react_router_v7.md +31 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +146 -51
- package/docs/id/intlayer_with_solid_start.md +13 -1
- package/docs/id/intlayer_with_storybook.md +1 -1
- package/docs/id/intlayer_with_svelte_kit.md +7 -1
- package/docs/id/intlayer_with_tanstack+solid.md +233 -7
- package/docs/id/intlayer_with_tanstack.md +371 -146
- package/docs/id/intlayer_with_vanilla.md +1 -1
- package/docs/id/intlayer_with_vite+lit.md +5 -1
- package/docs/id/intlayer_with_vite+preact.md +35 -5
- package/docs/id/intlayer_with_vite+react.md +5 -1
- package/docs/id/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/id/intlayer_with_vite+solid.md +12 -28
- package/docs/id/intlayer_with_vite+svelte.md +28 -1
- package/docs/id/intlayer_with_vite+vanilla.md +3 -1
- package/docs/id/intlayer_with_vite+vue.md +14 -3
- package/docs/id/introduction.md +1 -1
- package/docs/id/mcp_server.md +34 -21
- package/docs/id/packages/elysia-intlayer/exports.md +136 -0
- package/docs/id/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/id/packages/intlayer/getDictionary.md +155 -0
- package/docs/id/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/id/packages/intlayer/getEnumeration.md +2 -0
- package/docs/id/packages/intlayer/getIntlayer.md +197 -0
- package/docs/id/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/id/packages/intlayer/getLocalizedPath.md +46 -5
- package/docs/id/packages/intlayer/getLocalizedUrl.md +11 -32
- package/docs/id/packages/intlayer/getMultilingualUrls.md +14 -2
- package/docs/id/packages/intlayer/getTranslation.md +2 -0
- package/docs/id/packages/next-intlayer/t.md +20 -0
- package/docs/id/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/id/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/id/packages/react-intlayer/useI18n.md +31 -0
- package/docs/id/packages/react-intlayer/useIntlayer.md +0 -44
- package/docs/id/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/id/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/id/per_locale_file.md +13 -13
- package/docs/id/readme.md +3 -2
- package/docs/id/self_hosting.md +62 -31
- package/docs/it/agent_skills.md +6 -6
- package/docs/it/analytics.md +28 -5
- package/docs/it/benchmark/tanstack.md +6 -0
- package/docs/it/bundle_optimization.md +2 -2
- package/docs/it/cli/ci.md +2 -0
- package/docs/it/cli/doc-review.md +9 -1
- package/docs/it/cli/fill.md +0 -8
- package/docs/it/cli/index.md +2 -0
- package/docs/it/cli/list_projects.md +0 -2
- package/docs/it/cli/login.md +28 -0
- package/docs/it/cli/watch.md +0 -2
- package/docs/it/compiler.md +14 -0
- package/docs/it/configuration.md +19 -17
- package/docs/it/custom_domains.md +34 -0
- package/docs/it/custom_url_rewrites.md +7 -5
- package/docs/it/dictionary/enumeration.md +30 -0
- package/docs/it/dictionary/file.md +0 -166
- package/docs/it/dictionary/html.md +18 -18
- package/docs/it/dictionary/markdown.md +7 -3
- package/docs/it/dictionary/plurial.md +70 -273
- package/docs/it/dynamic_dictionaries/variants.md +24 -0
- package/docs/it/formatters.md +24 -113
- package/docs/it/how_works_intlayer.md +8 -1
- package/docs/it/intlayer_CMS.md +26 -21
- package/docs/it/intlayer_visual_editor.md +12 -0
- package/docs/it/intlayer_with_adonisjs.md +5 -3
- package/docs/it/intlayer_with_analog.md +1 -1
- package/docs/it/intlayer_with_angular_19.md +1 -1
- package/docs/it/intlayer_with_angular_21.md +1 -1
- package/docs/it/intlayer_with_astro.md +25 -1
- package/docs/it/intlayer_with_astro_lit.md +1 -1
- package/docs/it/intlayer_with_astro_preact.md +7 -1
- package/docs/it/intlayer_with_astro_react.md +1 -1
- package/docs/it/intlayer_with_astro_solid.md +1 -1
- package/docs/it/intlayer_with_astro_svelte.md +1 -1
- package/docs/it/intlayer_with_astro_vanilla.md +1 -1
- package/docs/it/intlayer_with_astro_vue.md +1 -1
- package/docs/it/intlayer_with_create_react_app.md +57 -38
- package/docs/it/intlayer_with_elysia.md +343 -0
- package/docs/it/intlayer_with_express.md +9 -3
- package/docs/it/intlayer_with_fastify.md +5 -3
- package/docs/it/intlayer_with_hono.md +44 -3
- package/docs/it/intlayer_with_lynx+react.md +14 -10
- package/docs/it/intlayer_with_nestjs.md +5 -3
- package/docs/it/intlayer_with_nextjs_14.md +240 -10
- package/docs/it/intlayer_with_nextjs_15.md +197 -21
- package/docs/it/intlayer_with_nextjs_16.md +107 -3
- package/docs/it/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +141 -5
- package/docs/it/intlayer_with_nextjs_page_router.md +7 -29
- package/docs/it/intlayer_with_nuxt.md +1 -1
- package/docs/it/intlayer_with_react_native+expo.md +1 -1
- package/docs/it/intlayer_with_react_router_v7.md +31 -1
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +32 -2
- package/docs/it/intlayer_with_solid_start.md +13 -1
- package/docs/it/intlayer_with_storybook.md +1 -1
- package/docs/it/intlayer_with_svelte_kit.md +7 -1
- package/docs/it/intlayer_with_tanstack+solid.md +158 -7
- package/docs/it/intlayer_with_tanstack.md +322 -172
- package/docs/it/intlayer_with_vanilla.md +1 -1
- package/docs/it/intlayer_with_vite+lit.md +5 -1
- package/docs/it/intlayer_with_vite+preact.md +37 -5
- package/docs/it/intlayer_with_vite+react.md +5 -6
- package/docs/it/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/it/intlayer_with_vite+solid.md +12 -32
- package/docs/it/intlayer_with_vite+svelte.md +28 -1
- package/docs/it/intlayer_with_vite+vanilla.md +3 -1
- package/docs/it/intlayer_with_vite+vue.md +22 -3
- package/docs/it/introduction.md +1 -1
- package/docs/it/live-sync.md +13 -2
- package/docs/it/mcp_server.md +34 -21
- package/docs/it/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/it/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/it/packages/elysia-intlayer/exports.md +136 -0
- package/docs/it/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/it/packages/intlayer/getDictionary.md +154 -0
- package/docs/it/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/it/packages/intlayer/getEnumeration.md +2 -0
- package/docs/it/packages/intlayer/getIntlayer.md +197 -0
- package/docs/it/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/it/packages/intlayer/getLocalizedPath.md +46 -5
- package/docs/it/packages/intlayer/getLocalizedUrl.md +6 -30
- package/docs/it/packages/intlayer/getMultilingualUrls.md +14 -2
- package/docs/it/packages/intlayer/getTranslation.md +2 -0
- package/docs/it/packages/next-intlayer/t.md +20 -31
- package/docs/it/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/it/packages/next-intlayer/useLocale.md +2 -0
- package/docs/it/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/it/packages/react-intlayer/useI18n.md +31 -0
- package/docs/it/packages/react-intlayer/useIntlayer.md +0 -44
- package/docs/it/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/it/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/it/per_locale_file.md +13 -13
- package/docs/it/readme.md +3 -2
- package/docs/it/releases/v6.md +16 -2
- package/docs/it/releases/v8.md +2 -4
- package/docs/it/releases/v9.md +2 -0
- package/docs/it/self_hosting.md +61 -30
- package/docs/ja/agent_skills.md +6 -6
- package/docs/ja/analytics.md +57 -13
- package/docs/ja/benchmark/tanstack.md +6 -0
- package/docs/ja/bundle_optimization.md +2 -2
- package/docs/ja/cli/build.md +0 -14
- package/docs/ja/cli/ci.md +2 -0
- package/docs/ja/cli/doc-review.md +8 -0
- package/docs/ja/cli/fill.md +0 -8
- package/docs/ja/cli/index.md +2 -0
- package/docs/ja/cli/list_projects.md +0 -2
- package/docs/ja/cli/login.md +28 -0
- package/docs/ja/cli/push.md +0 -15
- package/docs/ja/compiler.md +14 -0
- package/docs/ja/configuration.md +19 -17
- package/docs/ja/custom_domains.md +32 -0
- package/docs/ja/custom_url_rewrites.md +7 -5
- package/docs/ja/dictionary/content_file.md +0 -13
- package/docs/ja/dictionary/html.md +19 -17
- package/docs/ja/dictionary/plurial.md +81 -115
- package/docs/ja/dynamic_dictionaries/variants.md +24 -0
- package/docs/ja/formatters.md +0 -164
- package/docs/ja/how_works_intlayer.md +7 -0
- package/docs/ja/interest_of_intlayer.md +19 -1
- package/docs/ja/intlayer_visual_editor.md +13 -1
- package/docs/ja/intlayer_with_adonisjs.md +5 -3
- package/docs/ja/intlayer_with_analog.md +20 -1
- package/docs/ja/intlayer_with_angular_19.md +18 -1
- package/docs/ja/intlayer_with_angular_21.md +18 -1
- package/docs/ja/intlayer_with_astro.md +42 -1
- package/docs/ja/intlayer_with_astro_lit.md +18 -1
- package/docs/ja/intlayer_with_astro_preact.md +18 -1
- package/docs/ja/intlayer_with_astro_react.md +18 -1
- package/docs/ja/intlayer_with_astro_solid.md +18 -1
- package/docs/ja/intlayer_with_astro_svelte.md +18 -1
- package/docs/ja/intlayer_with_astro_vanilla.md +18 -1
- package/docs/ja/intlayer_with_astro_vue.md +18 -1
- package/docs/ja/intlayer_with_create_react_app.md +55 -272
- package/docs/ja/intlayer_with_elysia.md +343 -0
- package/docs/ja/intlayer_with_express.md +11 -3
- package/docs/ja/intlayer_with_fastify.md +5 -3
- package/docs/ja/intlayer_with_hono.md +44 -3
- package/docs/ja/intlayer_with_lynx+react.md +28 -1
- package/docs/ja/intlayer_with_nestjs.md +19 -3
- package/docs/ja/intlayer_with_nextjs_14.md +199 -91
- package/docs/ja/intlayer_with_nextjs_15.md +218 -1
- package/docs/ja/intlayer_with_nextjs_16.md +124 -3
- package/docs/ja/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +170 -7
- package/docs/ja/intlayer_with_nextjs_page_router.md +3 -25
- package/docs/ja/intlayer_with_nuxt.md +18 -1
- package/docs/ja/intlayer_with_react_native+expo.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7.md +148 -28
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +47 -2
- package/docs/ja/intlayer_with_solid_start.md +13 -1
- package/docs/ja/intlayer_with_storybook.md +18 -1
- package/docs/ja/intlayer_with_svelte_kit.md +528 -13
- package/docs/ja/intlayer_with_tanstack+solid.md +175 -9
- package/docs/ja/intlayer_with_tanstack.md +402 -216
- package/docs/ja/intlayer_with_vanilla.md +18 -1
- package/docs/ja/intlayer_with_vite+lit.md +22 -1
- package/docs/ja/intlayer_with_vite+preact.md +18 -5
- package/docs/ja/intlayer_with_vite+react.md +523 -1
- package/docs/ja/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/ja/intlayer_with_vite+solid.md +29 -43
- package/docs/ja/intlayer_with_vite+svelte.md +55 -13
- package/docs/ja/intlayer_with_vite+vanilla.md +20 -1
- package/docs/ja/intlayer_with_vite+vue.md +33 -6
- package/docs/ja/introduction.md +1 -1
- package/docs/ja/mcp_server.md +34 -19
- package/docs/ja/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ja/packages/astro-intlayer/exports.md +0 -4
- package/docs/ja/packages/elysia-intlayer/exports.md +136 -0
- package/docs/ja/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/ja/packages/intlayer/getDictionary.md +155 -0
- package/docs/ja/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/ja/packages/intlayer/getEnumeration.md +2 -0
- package/docs/ja/packages/intlayer/getIntlayer.md +197 -0
- package/docs/ja/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/ja/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/ja/packages/intlayer/getLocalizedUrl.md +14 -30
- package/docs/ja/packages/intlayer/getMultilingualUrls.md +14 -50
- package/docs/ja/packages/intlayer/getPrefix.md +0 -2
- package/docs/ja/packages/intlayer/getTranslation.md +2 -0
- package/docs/ja/packages/next-intlayer/t.md +20 -0
- package/docs/ja/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/ja/packages/next-intlayer/useLocale.md +2 -0
- package/docs/ja/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/ja/packages/react-intlayer/useI18n.md +31 -0
- package/docs/ja/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/ja/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ja/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/ja/per_locale_file.md +13 -13
- package/docs/ja/readme.md +3 -2
- package/docs/ja/releases/v6.md +16 -2
- package/docs/ja/self_hosting.md +67 -23
- package/docs/ko/agent_skills.md +7 -7
- package/docs/ko/analytics.md +57 -13
- package/docs/ko/benchmark/tanstack.md +6 -0
- package/docs/ko/bundle_optimization.md +2 -2
- package/docs/ko/cli/ci.md +2 -0
- package/docs/ko/cli/doc-review.md +8 -0
- package/docs/ko/cli/fill.md +0 -8
- package/docs/ko/cli/index.md +2 -0
- package/docs/ko/cli/login.md +28 -0
- package/docs/ko/cli/push.md +0 -15
- package/docs/ko/compat/next-i18next.md +2 -0
- package/docs/ko/compiler.md +14 -0
- package/docs/ko/configuration.md +19 -17
- package/docs/ko/custom_domains.md +34 -0
- package/docs/ko/custom_url_rewrites.md +7 -5
- package/docs/ko/dictionary/html.md +3 -1
- package/docs/ko/dictionary/markdown.md +7 -3
- package/docs/ko/dictionary/plurial.md +79 -111
- package/docs/ko/dynamic_dictionaries/variants.md +24 -0
- package/docs/ko/formatters.md +0 -184
- package/docs/ko/how_works_intlayer.md +7 -0
- package/docs/ko/intlayer_visual_editor.md +12 -0
- package/docs/ko/intlayer_with_adonisjs.md +5 -3
- package/docs/ko/intlayer_with_analog.md +3 -1
- package/docs/ko/intlayer_with_angular_19.md +1 -1
- package/docs/ko/intlayer_with_angular_21.md +1 -1
- package/docs/ko/intlayer_with_astro.md +109 -67
- package/docs/ko/intlayer_with_astro_lit.md +114 -70
- package/docs/ko/intlayer_with_astro_preact.md +111 -67
- package/docs/ko/intlayer_with_astro_react.md +107 -63
- package/docs/ko/intlayer_with_astro_solid.md +107 -63
- package/docs/ko/intlayer_with_astro_svelte.md +109 -65
- package/docs/ko/intlayer_with_astro_vanilla.md +108 -64
- package/docs/ko/intlayer_with_astro_vue.md +84 -64
- package/docs/ko/intlayer_with_create_react_app.md +53 -2
- package/docs/ko/intlayer_with_elysia.md +343 -0
- package/docs/ko/intlayer_with_express.md +11 -3
- package/docs/ko/intlayer_with_fastify.md +5 -3
- package/docs/ko/intlayer_with_hono.md +44 -3
- package/docs/ko/intlayer_with_lynx+react.md +52 -1
- package/docs/ko/intlayer_with_nestjs.md +19 -3
- package/docs/ko/intlayer_with_nextjs_14.md +200 -51
- package/docs/ko/intlayer_with_nextjs_15.md +157 -3
- package/docs/ko/intlayer_with_nextjs_16.md +108 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +374 -40
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +153 -11
- package/docs/ko/intlayer_with_nextjs_page_router.md +14 -80
- package/docs/ko/intlayer_with_nuxt.md +30 -30
- package/docs/ko/intlayer_with_react_native+expo.md +3 -3
- package/docs/ko/intlayer_with_react_router_v7.md +139 -107
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +276 -52
- package/docs/ko/intlayer_with_solid_start.md +13 -1
- package/docs/ko/intlayer_with_storybook.md +1 -5
- package/docs/ko/intlayer_with_svelte_kit.md +39 -33
- package/docs/ko/intlayer_with_tanstack+solid.md +160 -9
- package/docs/ko/intlayer_with_tanstack.md +380 -183
- package/docs/ko/intlayer_with_vanilla.md +1 -3
- package/docs/ko/intlayer_with_vite+lit.md +5 -1
- package/docs/ko/intlayer_with_vite+preact.md +37 -5
- package/docs/ko/intlayer_with_vite+react.md +417 -2
- package/docs/ko/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/ko/intlayer_with_vite+solid.md +82 -9
- package/docs/ko/intlayer_with_vite+svelte.md +133 -100
- package/docs/ko/intlayer_with_vite+vanilla.md +3 -3
- package/docs/ko/intlayer_with_vite+vue.md +16 -1
- package/docs/ko/introduction.md +1 -1
- package/docs/ko/live-sync.md +0 -2
- package/docs/ko/mcp_server.md +34 -21
- package/docs/ko/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ko/packages/elysia-intlayer/exports.md +136 -0
- package/docs/ko/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/ko/packages/express-intlayer/t.md +1 -69
- package/docs/ko/packages/intlayer/getDictionary.md +155 -0
- package/docs/ko/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/ko/packages/intlayer/getEnumeration.md +2 -0
- package/docs/ko/packages/intlayer/getIntlayer.md +197 -0
- package/docs/ko/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/ko/packages/intlayer/getLocaleLang.md +0 -2
- package/docs/ko/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +14 -30
- package/docs/ko/packages/intlayer/getMultilingualUrls.md +14 -35
- package/docs/ko/packages/intlayer/getPrefix.md +0 -2
- package/docs/ko/packages/intlayer/getTranslation.md +2 -0
- package/docs/ko/packages/next-intlayer/t.md +20 -31
- package/docs/ko/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/ko/packages/next-intlayer/useLocale.md +2 -0
- package/docs/ko/packages/next-intlayer/usePathname.md +0 -4
- package/docs/ko/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/ko/packages/react-intlayer/useI18n.md +31 -0
- package/docs/ko/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/ko/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ko/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/ko/per_locale_file.md +13 -13
- package/docs/ko/readme.md +3 -2
- package/docs/ko/releases/v6.md +16 -2
- package/docs/ko/releases/v8.md +2 -4
- package/docs/ko/self_hosting.md +61 -30
- package/docs/nl/bundle_optimization.md +2 -2
- package/docs/nl/configuration.md +12 -9
- package/docs/nl/intlayer_with_fastify.md +5 -3
- package/docs/nl/intlayer_with_hono.md +5 -3
- package/docs/pl/agent_skills.md +5 -5
- package/docs/pl/analytics.md +28 -5
- package/docs/pl/benchmark/tanstack.md +6 -0
- package/docs/pl/bundle_optimization.md +2 -2
- package/docs/pl/cli/ci.md +2 -0
- package/docs/pl/cli/doc-review.md +9 -1
- package/docs/pl/cli/fill.md +0 -8
- package/docs/pl/cli/index.md +2 -0
- package/docs/pl/cli/list_projects.md +0 -2
- package/docs/pl/cli/login.md +28 -0
- package/docs/pl/cli/watch.md +0 -2
- package/docs/pl/compiler.md +16 -0
- package/docs/pl/configuration.md +19 -17
- package/docs/pl/custom_domains.md +31 -0
- package/docs/pl/custom_url_rewrites.md +7 -5
- package/docs/pl/dictionary/file.md +0 -166
- package/docs/pl/dictionary/gender.md +0 -2
- package/docs/pl/dictionary/html.md +18 -18
- package/docs/pl/dictionary/insertion.md +0 -14
- package/docs/pl/dictionary/markdown.md +31 -14
- package/docs/pl/dictionary/plurial.md +87 -119
- package/docs/pl/dynamic_dictionaries/variants.md +24 -0
- package/docs/pl/formatters.md +12 -39
- package/docs/pl/intlayer_with_adonisjs.md +5 -3
- package/docs/pl/intlayer_with_analog.md +18 -1
- package/docs/pl/intlayer_with_angular_19.md +18 -1
- package/docs/pl/intlayer_with_angular_21.md +18 -1
- package/docs/pl/intlayer_with_astro.md +114 -1
- package/docs/pl/intlayer_with_astro_lit.md +18 -1
- package/docs/pl/intlayer_with_astro_preact.md +24 -1
- package/docs/pl/intlayer_with_astro_react.md +18 -1
- package/docs/pl/intlayer_with_astro_solid.md +18 -1
- package/docs/pl/intlayer_with_astro_svelte.md +18 -1
- package/docs/pl/intlayer_with_astro_vanilla.md +18 -1
- package/docs/pl/intlayer_with_astro_vue.md +18 -1
- package/docs/pl/intlayer_with_create_react_app.md +43 -0
- package/docs/pl/intlayer_with_elysia.md +343 -0
- package/docs/pl/intlayer_with_express.md +5 -3
- package/docs/pl/intlayer_with_fastify.md +5 -3
- package/docs/pl/intlayer_with_hono.md +44 -3
- package/docs/pl/intlayer_with_lynx+react.md +18 -1
- package/docs/pl/intlayer_with_nextjs_14.md +144 -12
- package/docs/pl/intlayer_with_nextjs_15.md +118 -5
- package/docs/pl/intlayer_with_nextjs_16.md +123 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +159 -5
- package/docs/pl/intlayer_with_nextjs_page_router.md +92 -37
- package/docs/pl/intlayer_with_nuxt.md +18 -1
- package/docs/pl/intlayer_with_react_native+expo.md +1 -1
- package/docs/pl/intlayer_with_react_router_v7.md +48 -3
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +31 -27
- package/docs/pl/intlayer_with_solid_start.md +13 -1
- package/docs/pl/intlayer_with_storybook.md +18 -1
- package/docs/pl/intlayer_with_svelte_kit.md +24 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +250 -7
- package/docs/pl/intlayer_with_tanstack.md +416 -152
- package/docs/pl/intlayer_with_vanilla.md +18 -1
- package/docs/pl/intlayer_with_vite+lit.md +22 -1
- package/docs/pl/intlayer_with_vite+preact.md +52 -1
- package/docs/pl/intlayer_with_vite+react.md +22 -1
- package/docs/pl/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/pl/intlayer_with_vite+solid.md +29 -28
- package/docs/pl/intlayer_with_vite+svelte.md +43 -1
- package/docs/pl/intlayer_with_vite+vanilla.md +20 -1
- package/docs/pl/intlayer_with_vite+vue.md +24 -53
- package/docs/pl/introduction.md +1 -1
- package/docs/pl/mcp_server.md +34 -21
- package/docs/pl/migration_from_i18next_to_intlayer.md +100 -1
- package/docs/pl/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/pl/migration_from_next-intl_to_intlayer.md +1 -3
- package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/pl/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/pl/migration_from_vue-i18n_to_intlayer.md +124 -1
- package/docs/pl/packages/elysia-intlayer/exports.md +136 -0
- package/docs/pl/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/pl/packages/intlayer/getDictionary.md +154 -0
- package/docs/pl/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/pl/packages/intlayer/getEnumeration.md +2 -0
- package/docs/pl/packages/intlayer/getIntlayer.md +197 -0
- package/docs/pl/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/pl/packages/intlayer/getLocalizedPath.md +46 -5
- package/docs/pl/packages/intlayer/getLocalizedUrl.md +11 -25
- package/docs/pl/packages/intlayer/getMultilingualUrls.md +6 -2
- package/docs/pl/packages/intlayer/getTranslation.md +2 -0
- package/docs/pl/packages/next-intlayer/t.md +20 -0
- package/docs/pl/packages/next-intlayer/useIntlayer.md +6 -0
- package/docs/pl/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/pl/packages/react-intlayer/useI18n.md +9 -0
- package/docs/pl/packages/react-intlayer/useIntlayer.md +0 -41
- package/docs/pl/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/pl/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/pl/per_locale_file.md +13 -13
- package/docs/pl/readme.md +3 -2
- package/docs/pl/releases/v9.md +2 -0
- package/docs/pl/self_hosting.md +61 -30
- package/docs/pt/agent_skills.md +6 -6
- package/docs/pt/analytics.md +28 -5
- package/docs/pt/benchmark/tanstack.md +6 -0
- package/docs/pt/bundle_optimization.md +2 -2
- package/docs/pt/cli/ci.md +2 -0
- package/docs/pt/cli/doc-review.md +9 -1
- package/docs/pt/cli/fill.md +0 -8
- package/docs/pt/cli/index.md +2 -0
- package/docs/pt/cli/list_projects.md +0 -6
- package/docs/pt/cli/login.md +28 -2
- package/docs/pt/cli/watch.md +0 -2
- package/docs/pt/compiler.md +16 -0
- package/docs/pt/configuration.md +19 -17
- package/docs/pt/custom_domains.md +34 -0
- package/docs/pt/custom_url_rewrites.md +7 -5
- package/docs/pt/dictionary/html.md +20 -18
- package/docs/pt/dictionary/insertion.md +0 -14
- package/docs/pt/dictionary/markdown.md +31 -14
- package/docs/pt/dictionary/plurial.md +70 -273
- package/docs/pt/dynamic_dictionaries/variants.md +24 -0
- package/docs/pt/formatters.md +24 -137
- package/docs/pt/how_works_intlayer.md +5 -0
- package/docs/pt/intlayer_CMS.md +26 -21
- package/docs/pt/intlayer_visual_editor.md +12 -2
- package/docs/pt/intlayer_with_adonisjs.md +5 -3
- package/docs/pt/intlayer_with_analog.md +1 -1
- package/docs/pt/intlayer_with_angular_19.md +1 -1
- package/docs/pt/intlayer_with_angular_21.md +1 -1
- package/docs/pt/intlayer_with_astro.md +97 -1
- package/docs/pt/intlayer_with_astro_lit.md +1 -9
- package/docs/pt/intlayer_with_astro_preact.md +7 -1
- package/docs/pt/intlayer_with_astro_react.md +1 -1
- package/docs/pt/intlayer_with_astro_solid.md +1 -1
- package/docs/pt/intlayer_with_astro_svelte.md +1 -1
- package/docs/pt/intlayer_with_astro_vanilla.md +1 -1
- package/docs/pt/intlayer_with_astro_vue.md +1 -1
- package/docs/pt/intlayer_with_create_react_app.md +55 -35
- package/docs/pt/intlayer_with_elysia.md +344 -0
- package/docs/pt/intlayer_with_express.md +11 -3
- package/docs/pt/intlayer_with_fastify.md +5 -3
- package/docs/pt/intlayer_with_hono.md +44 -3
- package/docs/pt/intlayer_with_lynx+react.md +14 -10
- package/docs/pt/intlayer_with_nestjs.md +19 -3
- package/docs/pt/intlayer_with_nextjs_14.md +238 -8
- package/docs/pt/intlayer_with_nextjs_15.md +201 -1
- package/docs/pt/intlayer_with_nextjs_16.md +106 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +45 -5
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +142 -5
- package/docs/pt/intlayer_with_nextjs_page_router.md +5 -29
- package/docs/pt/intlayer_with_nuxt.md +1 -1
- package/docs/pt/intlayer_with_react_native+expo.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +38 -31
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +32 -4
- package/docs/pt/intlayer_with_solid_start.md +13 -1
- package/docs/pt/intlayer_with_storybook.md +1 -1
- package/docs/pt/intlayer_with_svelte_kit.md +7 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +158 -7
- package/docs/pt/intlayer_with_tanstack.md +333 -189
- package/docs/pt/intlayer_with_vanilla.md +1 -1
- package/docs/pt/intlayer_with_vite+lit.md +5 -1
- package/docs/pt/intlayer_with_vite+preact.md +35 -1
- package/docs/pt/intlayer_with_vite+react.md +3 -1
- package/docs/pt/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/pt/intlayer_with_vite+solid.md +12 -37
- package/docs/pt/intlayer_with_vite+svelte.md +5 -1
- package/docs/pt/intlayer_with_vite+vanilla.md +3 -1
- package/docs/pt/intlayer_with_vite+vue.md +25 -53
- package/docs/pt/live-sync.md +13 -2
- package/docs/pt/mcp_server.md +34 -21
- package/docs/pt/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/pt/packages/elysia-intlayer/exports.md +136 -0
- package/docs/pt/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/pt/packages/intlayer/getDictionary.md +155 -0
- package/docs/pt/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/pt/packages/intlayer/getEnumeration.md +2 -0
- package/docs/pt/packages/intlayer/getIntlayer.md +197 -0
- package/docs/pt/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/pt/packages/intlayer/getLocalizedPath.md +46 -5
- package/docs/pt/packages/intlayer/getLocalizedUrl.md +6 -30
- package/docs/pt/packages/intlayer/getMultilingualUrls.md +14 -2
- package/docs/pt/packages/intlayer/getTranslation.md +2 -0
- package/docs/pt/packages/next-intlayer/t.md +20 -31
- package/docs/pt/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/pt/packages/next-intlayer/useLocale.md +2 -0
- package/docs/pt/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/pt/packages/react-intlayer/useI18n.md +31 -0
- package/docs/pt/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/pt/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/pt/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/pt/per_locale_file.md +13 -13
- package/docs/pt/readme.md +3 -2
- package/docs/pt/releases/v6.md +16 -2
- package/docs/pt/releases/v9.md +2 -0
- package/docs/pt/self_hosting.md +62 -31
- package/docs/ru/agent_skills.md +7 -7
- package/docs/ru/analytics.md +57 -13
- package/docs/ru/benchmark/tanstack.md +6 -0
- package/docs/ru/bundle_optimization.md +2 -2
- package/docs/ru/cli/ci.md +2 -0
- package/docs/ru/cli/doc-review.md +7 -1
- package/docs/ru/cli/fill.md +0 -8
- package/docs/ru/cli/index.md +2 -0
- package/docs/ru/cli/list_projects.md +0 -2
- package/docs/ru/cli/login.md +28 -0
- package/docs/ru/cli/watch.md +0 -2
- package/docs/ru/compiler.md +14 -0
- package/docs/ru/configuration.md +19 -17
- package/docs/ru/custom_domains.md +34 -0
- package/docs/ru/custom_url_rewrites.md +7 -5
- package/docs/ru/dictionary/condition.md +0 -163
- package/docs/ru/dictionary/enumeration.md +0 -183
- package/docs/ru/dictionary/file.md +0 -166
- package/docs/ru/dictionary/html.md +16 -14
- package/docs/ru/dictionary/markdown.md +10 -3
- package/docs/ru/dictionary/plurial.md +74 -276
- package/docs/ru/dictionary/translation.md +0 -133
- package/docs/ru/dynamic_dictionaries/variants.md +24 -0
- package/docs/ru/formatters.md +0 -158
- package/docs/ru/how_works_intlayer.md +8 -1
- package/docs/ru/intlayer_visual_editor.md +12 -0
- package/docs/ru/intlayer_with_adonisjs.md +5 -3
- package/docs/ru/intlayer_with_analog.md +1 -1
- package/docs/ru/intlayer_with_angular_19.md +1 -1
- package/docs/ru/intlayer_with_angular_21.md +1 -1
- package/docs/ru/intlayer_with_astro.md +25 -1
- package/docs/ru/intlayer_with_astro_lit.md +28 -4
- package/docs/ru/intlayer_with_astro_preact.md +25 -1
- package/docs/ru/intlayer_with_astro_react.md +25 -1
- package/docs/ru/intlayer_with_astro_solid.md +25 -1
- package/docs/ru/intlayer_with_astro_svelte.md +25 -1
- package/docs/ru/intlayer_with_astro_vanilla.md +25 -1
- package/docs/ru/intlayer_with_astro_vue.md +1 -1
- package/docs/ru/intlayer_with_create_react_app.md +55 -32
- package/docs/ru/intlayer_with_elysia.md +343 -0
- package/docs/ru/intlayer_with_express.md +7 -91
- package/docs/ru/intlayer_with_fastify.md +5 -3
- package/docs/ru/intlayer_with_hono.md +48 -3
- package/docs/ru/intlayer_with_lynx+react.md +14 -1
- package/docs/ru/intlayer_with_nestjs.md +19 -3
- package/docs/ru/intlayer_with_nextjs_14.md +244 -37
- package/docs/ru/intlayer_with_nextjs_15.md +181 -5
- package/docs/ru/intlayer_with_nextjs_16.md +106 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +150 -5
- package/docs/ru/intlayer_with_nextjs_page_router.md +12 -85
- package/docs/ru/intlayer_with_nuxt.md +1 -1
- package/docs/ru/intlayer_with_react_native+expo.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7.md +31 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +32 -4
- package/docs/ru/intlayer_with_solid_start.md +13 -1
- package/docs/ru/intlayer_with_storybook.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +7 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +160 -9
- package/docs/ru/intlayer_with_tanstack.md +343 -171
- package/docs/ru/intlayer_with_vanilla.md +1 -1
- package/docs/ru/intlayer_with_vite+lit.md +5 -1
- package/docs/ru/intlayer_with_vite+preact.md +35 -5
- package/docs/ru/intlayer_with_vite+react.md +3 -1
- package/docs/ru/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/ru/intlayer_with_vite+solid.md +12 -28
- package/docs/ru/intlayer_with_vite+svelte.md +30 -1
- package/docs/ru/intlayer_with_vite+vanilla.md +3 -1
- package/docs/ru/intlayer_with_vite+vue.md +11 -3
- package/docs/ru/introduction.md +1 -1
- package/docs/ru/mcp_server.md +34 -21
- package/docs/ru/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/ru/packages/elysia-intlayer/exports.md +136 -0
- package/docs/ru/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/ru/packages/intlayer/getDictionary.md +155 -0
- package/docs/ru/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/ru/packages/intlayer/getEnumeration.md +2 -0
- package/docs/ru/packages/intlayer/getIntlayer.md +197 -0
- package/docs/ru/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/ru/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/ru/packages/intlayer/getLocalizedUrl.md +6 -30
- package/docs/ru/packages/intlayer/getMultilingualUrls.md +6 -2
- package/docs/ru/packages/intlayer/getTranslation.md +2 -0
- package/docs/ru/packages/next-intlayer/t.md +20 -31
- package/docs/ru/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/ru/packages/next-intlayer/useLocale.md +2 -0
- package/docs/ru/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/ru/packages/react-intlayer/useI18n.md +31 -0
- package/docs/ru/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/ru/packages/react-intlayer/useLocale.md +0 -50
- package/docs/ru/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ru/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/ru/per_locale_file.md +14 -13
- package/docs/ru/readme.md +3 -2
- package/docs/ru/releases/v6.md +16 -5
- package/docs/ru/releases/v9.md +2 -0
- package/docs/ru/self_hosting.md +61 -30
- package/docs/tr/agent_skills.md +6 -6
- package/docs/tr/analytics.md +28 -5
- package/docs/tr/benchmark/tanstack.md +6 -0
- package/docs/tr/bundle_optimization.md +2 -2
- package/docs/tr/cli/ci.md +2 -0
- package/docs/tr/cli/doc-review.md +7 -1
- package/docs/tr/cli/fill.md +0 -8
- package/docs/tr/cli/index.md +2 -0
- package/docs/tr/cli/list_projects.md +0 -6
- package/docs/tr/cli/login.md +28 -0
- package/docs/tr/cli/watch.md +0 -2
- package/docs/tr/compiler.md +14 -0
- package/docs/tr/configuration.md +19 -17
- package/docs/tr/custom_domains.md +28 -0
- package/docs/tr/custom_url_rewrites.md +7 -5
- package/docs/tr/dictionary/html.md +35 -14
- package/docs/tr/dictionary/markdown.md +31 -14
- package/docs/tr/dictionary/plurial.md +83 -115
- package/docs/tr/dynamic_dictionaries/variants.md +24 -0
- package/docs/tr/formatters.md +0 -145
- package/docs/tr/intlayer_visual_editor.md +12 -0
- package/docs/tr/intlayer_with_adonisjs.md +5 -3
- package/docs/tr/intlayer_with_analog.md +3 -1
- package/docs/tr/intlayer_with_angular_19.md +1 -1
- package/docs/tr/intlayer_with_angular_21.md +1 -1
- package/docs/tr/intlayer_with_astro.md +108 -1
- package/docs/tr/intlayer_with_astro_lit.md +9 -9
- package/docs/tr/intlayer_with_astro_preact.md +15 -9
- package/docs/tr/intlayer_with_astro_react.md +9 -9
- package/docs/tr/intlayer_with_astro_solid.md +9 -9
- package/docs/tr/intlayer_with_astro_svelte.md +9 -9
- package/docs/tr/intlayer_with_astro_vanilla.md +9 -9
- package/docs/tr/intlayer_with_astro_vue.md +1 -1
- package/docs/tr/intlayer_with_create_react_app.md +55 -0
- package/docs/tr/intlayer_with_elysia.md +343 -0
- package/docs/tr/intlayer_with_express.md +5 -3
- package/docs/tr/intlayer_with_fastify.md +5 -3
- package/docs/tr/intlayer_with_hono.md +44 -3
- package/docs/tr/intlayer_with_lynx+react.md +9 -1
- package/docs/tr/intlayer_with_nestjs.md +19 -3
- package/docs/tr/intlayer_with_nextjs_14.md +362 -5
- package/docs/tr/intlayer_with_nextjs_15.md +202 -1
- package/docs/tr/intlayer_with_nextjs_16.md +106 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +124 -14
- package/docs/tr/intlayer_with_nextjs_page_router.md +5 -29
- package/docs/tr/intlayer_with_nuxt.md +1 -1
- package/docs/tr/intlayer_with_react_native+expo.md +1 -1
- package/docs/tr/intlayer_with_react_router_v7.md +31 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +32 -4
- package/docs/tr/intlayer_with_solid_start.md +13 -1
- package/docs/tr/intlayer_with_storybook.md +1 -1
- package/docs/tr/intlayer_with_svelte_kit.md +7 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +233 -7
- package/docs/tr/intlayer_with_tanstack.md +352 -158
- package/docs/tr/intlayer_with_vanilla.md +1 -1
- package/docs/tr/intlayer_with_vite+lit.md +5 -1
- package/docs/tr/intlayer_with_vite+preact.md +35 -5
- package/docs/tr/intlayer_with_vite+react.md +5 -1
- package/docs/tr/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/tr/intlayer_with_vite+solid.md +12 -28
- package/docs/tr/intlayer_with_vite+svelte.md +30 -1
- package/docs/tr/intlayer_with_vite+vanilla.md +3 -1
- package/docs/tr/intlayer_with_vite+vue.md +16 -43
- package/docs/tr/introduction.md +1 -1
- package/docs/tr/live-sync.md +13 -2
- package/docs/tr/mcp_server.md +34 -21
- package/docs/tr/migration_from_i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_next-intl_to_intlayer.md +1 -1
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +1 -1
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +1 -1
- package/docs/tr/packages/elysia-intlayer/exports.md +136 -0
- package/docs/tr/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/tr/packages/intlayer/getDictionary.md +155 -0
- package/docs/tr/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/tr/packages/intlayer/getEnumeration.md +2 -0
- package/docs/tr/packages/intlayer/getIntlayer.md +197 -0
- package/docs/tr/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/tr/packages/intlayer/getLocalizedPath.md +46 -5
- package/docs/tr/packages/intlayer/getLocalizedUrl.md +11 -0
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +6 -2
- package/docs/tr/packages/intlayer/getTranslation.md +2 -0
- package/docs/tr/packages/next-intlayer/t.md +20 -0
- package/docs/tr/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/tr/packages/next-intlayer/useLocale.md +2 -0
- package/docs/tr/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/tr/packages/react-intlayer/useI18n.md +31 -0
- package/docs/tr/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/tr/packages/solid-intlayer/useRewriteURL.md +0 -2
- package/docs/tr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/tr/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/tr/per_locale_file.md +13 -13
- package/docs/tr/readme.md +3 -2
- package/docs/tr/releases/v6.md +16 -2
- package/docs/tr/self_hosting.md +68 -25
- package/docs/uk/CI_CD.md +2 -0
- package/docs/uk/agent_skills.md +5 -5
- package/docs/uk/analytics.md +28 -5
- package/docs/uk/benchmark/tanstack.md +6 -0
- package/docs/uk/bundle_optimization.md +2 -2
- package/docs/uk/cli/ci.md +2 -0
- package/docs/uk/cli/doc-review.md +9 -1
- package/docs/uk/cli/fill.md +0 -8
- package/docs/uk/cli/index.md +2 -0
- package/docs/uk/cli/login.md +28 -0
- package/docs/uk/compiler.md +14 -0
- package/docs/uk/configuration.md +19 -17
- package/docs/uk/custom_domains.md +35 -0
- package/docs/uk/custom_url_rewrites.md +7 -5
- package/docs/uk/dictionary/file.md +0 -166
- package/docs/uk/dictionary/gender.md +0 -212
- package/docs/uk/dictionary/html.md +134 -16
- package/docs/uk/dictionary/markdown.md +31 -14
- package/docs/uk/dictionary/plurial.md +85 -116
- package/docs/uk/dynamic_dictionaries/variants.md +24 -0
- package/docs/uk/formatters.md +0 -139
- package/docs/uk/how_works_intlayer.md +2 -0
- package/docs/uk/interest_of_intlayer.md +1 -3
- package/docs/uk/intlayer_with_adonisjs.md +5 -3
- package/docs/uk/intlayer_with_analog.md +3 -1
- package/docs/uk/intlayer_with_angular_19.md +1 -1
- package/docs/uk/intlayer_with_angular_21.md +1 -1
- package/docs/uk/intlayer_with_astro.md +25 -1
- package/docs/uk/intlayer_with_astro_lit.md +1 -1
- package/docs/uk/intlayer_with_astro_preact.md +7 -1
- package/docs/uk/intlayer_with_astro_react.md +1 -1
- package/docs/uk/intlayer_with_astro_solid.md +1 -1
- package/docs/uk/intlayer_with_astro_svelte.md +1 -1
- package/docs/uk/intlayer_with_astro_vanilla.md +1 -1
- package/docs/uk/intlayer_with_astro_vue.md +1 -1
- package/docs/uk/intlayer_with_create_react_app.md +43 -0
- package/docs/uk/intlayer_with_elysia.md +343 -0
- package/docs/uk/intlayer_with_express.md +5 -3
- package/docs/uk/intlayer_with_fastify.md +5 -3
- package/docs/uk/intlayer_with_hono.md +44 -3
- package/docs/uk/intlayer_with_lynx+react.md +1 -3
- package/docs/uk/intlayer_with_nestjs.md +5 -3
- package/docs/uk/intlayer_with_nextjs_14.md +127 -8
- package/docs/uk/intlayer_with_nextjs_15.md +103 -243
- package/docs/uk/intlayer_with_nextjs_16.md +106 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +126 -5
- package/docs/uk/intlayer_with_nextjs_page_router.md +5 -29
- package/docs/uk/intlayer_with_nuxt.md +30 -1
- package/docs/uk/intlayer_with_react_native+expo.md +1 -1
- package/docs/uk/intlayer_with_react_router_v7.md +29 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +32 -4
- package/docs/uk/intlayer_with_solid_start.md +13 -1
- package/docs/uk/intlayer_with_storybook.md +1 -1
- package/docs/uk/intlayer_with_svelte_kit.md +3 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +234 -8
- package/docs/uk/intlayer_with_tanstack.md +382 -160
- package/docs/uk/intlayer_with_vanilla.md +1 -1
- package/docs/uk/intlayer_with_vite+lit.md +5 -1
- package/docs/uk/intlayer_with_vite+preact.md +7 -5
- package/docs/uk/intlayer_with_vite+react.md +5 -1
- package/docs/uk/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/uk/intlayer_with_vite+solid.md +12 -28
- package/docs/uk/intlayer_with_vite+svelte.md +5 -1
- package/docs/uk/intlayer_with_vite+vanilla.md +3 -1
- package/docs/uk/intlayer_with_vite+vue.md +9 -3
- package/docs/uk/introduction.md +1 -1
- package/docs/uk/mcp_server.md +34 -21
- package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +1 -1
- package/docs/uk/packages/elysia-intlayer/exports.md +136 -0
- package/docs/uk/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/uk/packages/intlayer/getDictionary.md +155 -0
- package/docs/uk/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/uk/packages/intlayer/getEnumeration.md +2 -0
- package/docs/uk/packages/intlayer/getIntlayer.md +197 -0
- package/docs/uk/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/uk/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/uk/packages/intlayer/getTranslation.md +2 -0
- package/docs/uk/packages/next-intlayer/t.md +20 -2
- package/docs/uk/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/uk/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/uk/packages/react-intlayer/useI18n.md +31 -0
- package/docs/uk/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/uk/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/uk/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/uk/readme.md +3 -2
- package/docs/uk/releases/v8.md +2 -4
- package/docs/uk/releases/v9.md +2 -0
- package/docs/uk/self_hosting.md +61 -29
- package/docs/ur/bundle_optimization.md +2 -2
- package/docs/ur/configuration.md +12 -9
- package/docs/ur/intlayer_with_fastify.md +5 -3
- package/docs/ur/intlayer_with_hono.md +5 -3
- package/docs/ur/introduction.md +1 -1
- package/docs/vi/agent_skills.md +6 -6
- package/docs/vi/analytics.md +28 -5
- package/docs/vi/benchmark/tanstack.md +6 -0
- package/docs/vi/bundle_optimization.md +2 -2
- package/docs/vi/cli/ci.md +2 -0
- package/docs/vi/cli/doc-review.md +9 -1
- package/docs/vi/cli/fill.md +0 -8
- package/docs/vi/cli/index.md +2 -0
- package/docs/vi/cli/list_projects.md +0 -2
- package/docs/vi/cli/login.md +28 -2
- package/docs/vi/compiler.md +14 -0
- package/docs/vi/configuration.md +19 -17
- package/docs/vi/custom_domains.md +33 -0
- package/docs/vi/custom_url_rewrites.md +7 -5
- package/docs/vi/dictionary/file.md +0 -166
- package/docs/vi/dictionary/gender.md +0 -2
- package/docs/vi/dictionary/html.md +134 -16
- package/docs/vi/dictionary/insertion.md +0 -14
- package/docs/vi/dictionary/markdown.md +31 -14
- package/docs/vi/dictionary/plurial.md +81 -113
- package/docs/vi/dynamic_dictionaries/variants.md +24 -0
- package/docs/vi/formatters.md +12 -39
- package/docs/vi/interest_of_intlayer.md +1 -3
- package/docs/vi/intlayer_with_adonisjs.md +5 -3
- package/docs/vi/intlayer_with_analog.md +3 -1
- package/docs/vi/intlayer_with_angular_19.md +1 -1
- package/docs/vi/intlayer_with_angular_21.md +1 -1
- package/docs/vi/intlayer_with_astro.md +25 -1
- package/docs/vi/intlayer_with_astro_lit.md +1 -1
- package/docs/vi/intlayer_with_astro_preact.md +7 -1
- package/docs/vi/intlayer_with_astro_react.md +1 -1
- package/docs/vi/intlayer_with_astro_solid.md +1 -1
- package/docs/vi/intlayer_with_astro_svelte.md +1 -1
- package/docs/vi/intlayer_with_astro_vanilla.md +1 -1
- package/docs/vi/intlayer_with_astro_vue.md +1 -1
- package/docs/vi/intlayer_with_create_react_app.md +43 -0
- package/docs/vi/intlayer_with_elysia.md +343 -0
- package/docs/vi/intlayer_with_fastify.md +5 -3
- package/docs/vi/intlayer_with_hono.md +44 -3
- package/docs/vi/intlayer_with_lynx+react.md +1 -1
- package/docs/vi/intlayer_with_nextjs_14.md +127 -8
- package/docs/vi/intlayer_with_nextjs_15.md +138 -148
- package/docs/vi/intlayer_with_nextjs_16.md +106 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +162 -5
- package/docs/vi/intlayer_with_nextjs_page_router.md +68 -30
- package/docs/vi/intlayer_with_nuxt.md +30 -1
- package/docs/vi/intlayer_with_react_native+expo.md +1 -1
- package/docs/vi/intlayer_with_react_router_v7.md +31 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +148 -53
- package/docs/vi/intlayer_with_solid_start.md +13 -1
- package/docs/vi/intlayer_with_storybook.md +1 -1
- package/docs/vi/intlayer_with_svelte_kit.md +7 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +233 -7
- package/docs/vi/intlayer_with_tanstack.md +413 -168
- package/docs/vi/intlayer_with_vanilla.md +1 -1
- package/docs/vi/intlayer_with_vite+lit.md +5 -1
- package/docs/vi/intlayer_with_vite+preact.md +29 -5
- package/docs/vi/intlayer_with_vite+react.md +6 -4
- package/docs/vi/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/vi/intlayer_with_vite+solid.md +12 -28
- package/docs/vi/intlayer_with_vite+svelte.md +28 -1
- package/docs/vi/intlayer_with_vite+vanilla.md +3 -1
- package/docs/vi/intlayer_with_vite+vue.md +14 -3
- package/docs/vi/mcp_server.md +34 -21
- package/docs/vi/packages/elysia-intlayer/exports.md +136 -0
- package/docs/vi/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/vi/packages/intlayer/getDictionary.md +155 -0
- package/docs/vi/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/vi/packages/intlayer/getEnumeration.md +2 -0
- package/docs/vi/packages/intlayer/getIntlayer.md +197 -0
- package/docs/vi/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/vi/packages/intlayer/getLocalizedPath.md +46 -5
- package/docs/vi/packages/intlayer/getLocalizedUrl.md +11 -32
- package/docs/vi/packages/intlayer/getMultilingualUrls.md +14 -2
- package/docs/vi/packages/intlayer/getTranslation.md +2 -0
- package/docs/vi/packages/next-intlayer/t.md +20 -0
- package/docs/vi/packages/next-intlayer/useIntlayer.md +31 -0
- package/docs/vi/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/vi/packages/react-intlayer/useI18n.md +31 -0
- package/docs/vi/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/vi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/vi/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/vi/per_locale_file.md +13 -13
- package/docs/vi/readme.md +3 -2
- package/docs/vi/self_hosting.md +61 -30
- package/docs/zh/agent_skills.md +7 -7
- package/docs/zh/analytics.md +57 -13
- package/docs/zh/benchmark/tanstack.md +6 -0
- package/docs/zh/bundle_optimization.md +2 -2
- package/docs/zh/cli/ci.md +2 -0
- package/docs/zh/cli/doc-review.md +7 -1
- package/docs/zh/cli/fill.md +0 -8
- package/docs/zh/cli/index.md +2 -0
- package/docs/zh/cli/list_projects.md +0 -2
- package/docs/zh/cli/login.md +28 -0
- package/docs/zh/cli/push.md +0 -15
- package/docs/zh/compiler.md +14 -0
- package/docs/zh/configuration.md +19 -17
- package/docs/zh/custom_domains.md +27 -0
- package/docs/zh/custom_url_rewrites.md +7 -5
- package/docs/zh/dictionary/content_file.md +0 -10
- package/docs/zh/dictionary/html.md +16 -14
- package/docs/zh/dictionary/markdown.md +7 -3
- package/docs/zh/dictionary/plurial.md +79 -110
- package/docs/zh/dynamic_dictionaries/variants.md +24 -0
- package/docs/zh/formatters.md +0 -146
- package/docs/zh/how_works_intlayer.md +5 -0
- package/docs/zh/interest_of_intlayer.md +19 -0
- package/docs/zh/intlayer_visual_editor.md +12 -0
- package/docs/zh/intlayer_with_adonisjs.md +5 -3
- package/docs/zh/intlayer_with_analog.md +20 -1
- package/docs/zh/intlayer_with_angular_19.md +18 -1
- package/docs/zh/intlayer_with_angular_21.md +18 -1
- package/docs/zh/intlayer_with_astro.md +19 -3
- package/docs/zh/intlayer_with_astro_lit.md +31 -9
- package/docs/zh/intlayer_with_astro_preact.md +37 -9
- package/docs/zh/intlayer_with_astro_react.md +31 -9
- package/docs/zh/intlayer_with_astro_solid.md +31 -9
- package/docs/zh/intlayer_with_astro_svelte.md +31 -9
- package/docs/zh/intlayer_with_astro_vanilla.md +31 -9
- package/docs/zh/intlayer_with_astro_vue.md +23 -1
- package/docs/zh/intlayer_with_create_react_app.md +10 -2
- package/docs/zh/intlayer_with_elysia.md +343 -0
- package/docs/zh/intlayer_with_express.md +11 -3
- package/docs/zh/intlayer_with_fastify.md +5 -3
- package/docs/zh/intlayer_with_hono.md +5 -3
- package/docs/zh/intlayer_with_lynx+react.md +66 -1
- package/docs/zh/intlayer_with_nestjs.md +19 -3
- package/docs/zh/intlayer_with_nextjs_14.md +124 -112
- package/docs/zh/intlayer_with_nextjs_15.md +182 -1
- package/docs/zh/intlayer_with_nextjs_16.md +105 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +51 -9
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +147 -583
- package/docs/zh/intlayer_with_nextjs_page_router.md +15 -28
- package/docs/zh/intlayer_with_nuxt.md +18 -1
- package/docs/zh/intlayer_with_react_native+expo.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +177 -1
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +106 -5
- package/docs/zh/intlayer_with_solid_start.md +13 -1
- package/docs/zh/intlayer_with_storybook.md +18 -1
- package/docs/zh/intlayer_with_svelte_kit.md +18 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +179 -11
- package/docs/zh/intlayer_with_tanstack.md +370 -163
- package/docs/zh/intlayer_with_vanilla.md +18 -1
- package/docs/zh/intlayer_with_vite+lit.md +20 -1
- package/docs/zh/intlayer_with_vite+preact.md +91 -49
- package/docs/zh/intlayer_with_vite+react.md +20 -1
- package/docs/zh/intlayer_with_vite+solid.md +11 -24
- package/docs/zh/intlayer_with_vite+svelte.md +15 -17
- package/docs/zh/intlayer_with_vite+vanilla.md +18 -1
- package/docs/zh/intlayer_with_vite+vue.md +16 -5
- package/docs/zh/live-sync.md +39 -2
- package/docs/zh/mcp_server.md +34 -19
- package/docs/zh/packages/elysia-intlayer/exports.md +136 -0
- package/docs/zh/packages/elysia-intlayer/intlayer.md +139 -0
- package/docs/zh/packages/intlayer/getDictionary.md +155 -0
- package/docs/zh/packages/intlayer/getDictionaryAsync.md +166 -0
- package/docs/zh/packages/intlayer/getEnumeration.md +2 -0
- package/docs/zh/packages/intlayer/getIntlayer.md +197 -0
- package/docs/zh/packages/intlayer/getIntlayerAsync.md +141 -0
- package/docs/zh/packages/intlayer/getLocaleLang.md +0 -2
- package/docs/zh/packages/intlayer/getLocalizedPath.md +45 -5
- package/docs/zh/packages/intlayer/getLocalizedUrl.md +14 -30
- package/docs/zh/packages/intlayer/getMultilingualUrls.md +14 -2
- package/docs/zh/packages/intlayer/getPrefix.md +0 -2
- package/docs/zh/packages/intlayer/getTranslation.md +2 -0
- package/docs/zh/packages/next-intlayer/t.md +20 -0
- package/docs/zh/packages/next-intlayer/useIntlayer.md +32 -0
- package/docs/zh/packages/next-intlayer/useLocale.md +2 -0
- package/docs/zh/packages/react-intlayer/useDictionary.md +0 -2
- package/docs/zh/packages/react-intlayer/useI18n.md +31 -0
- package/docs/zh/packages/react-intlayer/useIntlayer.md +0 -42
- package/docs/zh/packages/vite-intlayer/exports.md +0 -6
- package/docs/zh/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/zh/packages/vite-intlayer/intlayerPrune.md +3 -1
- package/docs/zh/per_locale_file.md +13 -13
- package/docs/zh/releases/v6.md +16 -2
- package/docs/zh/self_hosting.md +61 -29
- package/docs/zh-TW/bundle_optimization.md +2 -2
- package/package.json +7 -7
- package/src/generated/docs.entry.ts +140 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-08-25
|
|
4
4
|
title: "TanStack Start i18n - Полное руководство по переводу вашего приложения"
|
|
5
5
|
description: "Больше никакого i18next. Руководство 2026 по созданию многоязычного (i18n) приложения TanStack Start. Переводите с помощью ИИ-агентов и оптимизируйте размер бандла, SEO и производительность."
|
|
6
6
|
keywords:
|
|
@@ -21,6 +21,9 @@ applicationTemplate: https://github.com/aymericzip/intlayer-tanstack-start-templ
|
|
|
21
21
|
applicationShowcase: https://intlayer-tanstack-start-template.vercel.app
|
|
22
22
|
youtubeVideo: https://www.youtube.com/watch?v=_XTdKVWaeqg
|
|
23
23
|
history:
|
|
24
|
+
- version: 9.4.0
|
|
25
|
+
date: 2026-08-25
|
|
26
|
+
changes: "Сравнение статического, динамического и кэшированного динамического разрешения словарей метаданных в функциях head маршрутов"
|
|
24
27
|
- version: 8.9.0
|
|
25
28
|
date: 2026-05-04
|
|
26
29
|
changes: "Обновление использования API useIntlayer в Solid для прямого доступа к свойствам"
|
|
@@ -58,7 +61,7 @@ author: aymericzip
|
|
|
58
61
|
|
|
59
62
|
## Почему Intlayer лучше альтернатив?
|
|
60
63
|
|
|
61
|
-
По сравнению с основными решениями, такими как «react-i18next», «use-intl» или «paraglide», Intlayer
|
|
64
|
+
По сравнению с основными решениями, такими как «react-i18next», «use-intl» или «paraglide», Intlayer предлагает решение со встроенными оптимизациями, такими как:
|
|
62
65
|
|
|
63
66
|
<AccordionGroup>
|
|
64
67
|
|
|
@@ -82,7 +85,7 @@ Intlayer полностью оптимизирован для TanStack Start и
|
|
|
82
85
|
|
|
83
86
|
<Accordion header="Агент ИИ">
|
|
84
87
|
|
|
85
|
-
Совместное размещение контента **уменьшает контекст, необходимый** для моделей большого языка (LLM). Intlayer также поставляется с набором инструментов, таких как **CLI** для проверки отсутствия переводов,**[LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**, **[MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)**, и **[
|
|
88
|
+
Совместное размещение контента **уменьшает контекст, необходимый** для моделей большого языка (LLM). Intlayer также поставляется с набором инструментов, таких как **CLI** для проверки отсутствия переводов,**[LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/lsp.md)**, **[MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md)**, и **[agent skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/agent_skills.md)**, чтобы сделать работу разработчика (DX) еще более удобной для агентов ИИ.
|
|
86
89
|
|
|
87
90
|
</Accordion>
|
|
88
91
|
|
|
@@ -100,7 +103,7 @@ Intlayer полностью оптимизирован для TanStack Start и
|
|
|
100
103
|
|
|
101
104
|
<Accordion header="Масштабирование с помощью не-разработчиками">
|
|
102
105
|
|
|
103
|
-
Intlayer
|
|
106
|
+
Intlayer предлагает больше, чем просто решение i18n. Он предоставляет **автономный [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md)** и **[полный CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md)**, чтобы помочь вам управлять многоязычным контентом в **реальном времени**, упрощая сотрудничество с переводчиками, копирайтерами и другими членами команды. Контент может храниться локально и/или удаленно.
|
|
104
107
|
|
|
105
108
|
</Accordion>
|
|
106
109
|
</AccordionGroup>
|
|
@@ -318,14 +321,6 @@ function RootDocument({ children }: { children: ReactNode }) {
|
|
|
318
321
|
}
|
|
319
322
|
```
|
|
320
323
|
|
|
321
|
-
> Если вы хотите использовать ваш контент в атрибуте типа `string`, таком как `alt`, `title`, `href`, `aria-label` и т.д., вы должны вызвать значение функции, например:
|
|
322
|
-
|
|
323
|
-
> ```html
|
|
324
|
-
> <img src="{content.image.src.value}" alt="{content.image.value}" />
|
|
325
|
-
> <img src="{content.image.src.toString()}" alt="{content.image.toString()}" />
|
|
326
|
-
> <img src="{String(content.image.src)}" alt="{String(content.image)}" />
|
|
327
|
-
> ```
|
|
328
|
-
|
|
329
324
|
</Step>
|
|
330
325
|
|
|
331
326
|
<Step number={6} title="Создайте макет локали">
|
|
@@ -517,13 +512,14 @@ export const useLocalizedNavigate = () => {
|
|
|
517
512
|
|
|
518
513
|
<Step number={9} title="Использование Intlayer на ваших страницах">
|
|
519
514
|
|
|
515
|
+
> Используйте **`useIntlayer`** по умолчанию: это рекомендуемый способ читать контент внутри компонентов, и компилятор разрешает его в отрисовываемую локаль. Обращайтесь к `getIntlayer` / `getIntlayerAsync` только вне дерева React: в `head` маршрутов, загрузчиках и серверных функциях.
|
|
516
|
+
|
|
520
517
|
Получайте доступ к вашим словарям контента по всему приложению:
|
|
521
518
|
|
|
522
|
-
#### Локализованная
|
|
519
|
+
#### Локализованная домашняя страница
|
|
523
520
|
|
|
524
521
|
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
525
522
|
import { createFileRoute } from "@tanstack/react-router";
|
|
526
|
-
import { getIntlayer } from "intlayer";
|
|
527
523
|
import { useIntlayer } from "react-intlayer";
|
|
528
524
|
|
|
529
525
|
import LocaleSwitcher from "@/components/locale-switcher";
|
|
@@ -561,13 +557,21 @@ function RouteComponent() {
|
|
|
561
557
|
}
|
|
562
558
|
```
|
|
563
559
|
|
|
560
|
+
> Если вы хотите использовать ваш контент в атрибуте `string`, таком как `alt`, `title`, `href`, `aria-label` и т. д., вы можете использовать значение функции, например:
|
|
561
|
+
>
|
|
562
|
+
> ```html
|
|
563
|
+
> <img src="{content.image.src.value}" alt="{content.image.value}" />
|
|
564
|
+
> <img src="{content.image.src.toString()}" alt="{content.image.toString()}" />
|
|
565
|
+
> <img src="{String(content.image.src)}" alt="{String(content.image)}" />
|
|
566
|
+
> ```
|
|
567
|
+
|
|
564
568
|
> Чтобы узнать больше о хуке `useIntlayer`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useIntlayer.md).
|
|
565
569
|
|
|
566
570
|
</Step>
|
|
567
571
|
|
|
568
|
-
<Step number={
|
|
572
|
+
<Step number={9} title="Создание компонента переключателя локали">
|
|
569
573
|
|
|
570
|
-
Создайте компонент,
|
|
574
|
+
Создайте компонент, позволяющий пользователям изменять языки:
|
|
571
575
|
|
|
572
576
|
```tsx fileName="src/components/locale-switcher.tsx"
|
|
573
577
|
import { useLocation } from "@tanstack/react-router";
|
|
@@ -601,19 +605,19 @@ export const LocaleSwitcher: FC = () => {
|
|
|
601
605
|
to={pathWithoutLocale as To}
|
|
602
606
|
>
|
|
603
607
|
<span>
|
|
604
|
-
{/* Локаль -
|
|
608
|
+
{/* Локаль - например FR */}
|
|
605
609
|
{localeEl}
|
|
606
610
|
</span>
|
|
607
611
|
<span>
|
|
608
|
-
{/* Язык
|
|
612
|
+
{/* Язык в его собственной локали - например Français */}
|
|
609
613
|
{getLocaleName(localeEl, locale)}
|
|
610
614
|
</span>
|
|
611
615
|
<span dir={getHTMLTextDir(localeEl)} lang={localeEl}>
|
|
612
|
-
{/* Язык
|
|
616
|
+
{/* Язык в текущей локали - например Francés с текущей локалью установленной в Locales.SPANISH */}
|
|
613
617
|
{getLocaleName(localeEl)}
|
|
614
618
|
</span>
|
|
615
619
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
616
|
-
{/* Язык на английском -
|
|
620
|
+
{/* Язык на английском - например French */}
|
|
617
621
|
{getLocaleName(localeEl, Locales.ENGLISH)}
|
|
618
622
|
</span>
|
|
619
623
|
</LocalizedLink>
|
|
@@ -628,11 +632,13 @@ export const LocaleSwitcher: FC = () => {
|
|
|
628
632
|
|
|
629
633
|
</Step>
|
|
630
634
|
|
|
631
|
-
<Step number={
|
|
635
|
+
<Step number={10} title="Управление атрибутами HTML">
|
|
632
636
|
|
|
633
|
-
Как показано на шаге 5, вы можете управлять атрибутами `lang` и `dir` тега `html
|
|
637
|
+
Как показано на шаге 5, вы можете управлять атрибутами `lang` и `dir` тега `html` используя `useParams` в вашем корневом компоненте. Это гарантирует, что правильные атрибуты установлены на сервере и клиенте.
|
|
634
638
|
|
|
635
639
|
```tsx fileName="src/routes/__root.tsx"
|
|
640
|
+
const localeRoute = getRouteApi("/{-$locale}");
|
|
641
|
+
|
|
636
642
|
function RootDocument({ children }: { children: ReactNode }) {
|
|
637
643
|
const params = localeRoute.useParams();
|
|
638
644
|
const locale = params?.locale ?? defaultLocale;
|
|
@@ -649,11 +655,13 @@ function RootDocument({ children }: { children: ReactNode }) {
|
|
|
649
655
|
|
|
650
656
|
</Step>
|
|
651
657
|
|
|
652
|
-
<Step number={
|
|
658
|
+
<Step number={11} title="Добавить middleware">
|
|
653
659
|
|
|
654
|
-
Вы также можете использовать `intlayerProxy` для добавления маршрутизации на стороне сервера в ваше приложение. Этот плагин автоматически определит текущую локаль на основе URL и установит соответствующий cookie
|
|
660
|
+
Вы также можете использовать `intlayerProxy` для добавления маршрутизации на стороне сервера в ваше приложение. Этот плагин автоматически определит текущую локаль на основе URL и установит соответствующий файл cookie локали. Если локаль не указана, плагин определит наиболее подходящую локаль на основе предпочтений языка браузера пользователя. Если локаль не обнаружена, он перенаправит на локаль по умолчанию.
|
|
655
661
|
|
|
656
|
-
> Обратите внимание, что для использования `intlayerProxy` в
|
|
662
|
+
> Обратите внимание, что для использования `intlayerProxy` в production вам необходимо переместить пакет `vite-intlayer` из `devDependencies` в `dependencies`.
|
|
663
|
+
|
|
664
|
+
> Начиная с Intlayer v9, `intlayerProxy()` встроен непосредственно в плагин `intlayer()` и включен по умолчанию через опцию `routing.enableProxy` (`true` по умолчанию). Регистрация его отдельно, как показано ниже, теперь опциональна: она сохранена для обратной совместимости и для настроек, которым нужно контролировать порядок плагинов. Установите `routing.enableProxy: false` чтобы отключить. Смотрите [примечания к выпуску v9](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/releases/v9.md).
|
|
657
665
|
|
|
658
666
|
```typescript fileName="vite.config.ts"
|
|
659
667
|
import { tanstackStart } from "@tanstack/react-start/plugin/vite";
|
|
@@ -685,36 +693,99 @@ export default defineConfig({
|
|
|
685
693
|
|
|
686
694
|
</Step>
|
|
687
695
|
|
|
688
|
-
<Step number={12} title="Интернационализация метаданных">
|
|
696
|
+
<Step number={12} title="Интернационализация ваших метаданных">
|
|
689
697
|
|
|
690
|
-
|
|
698
|
+
<Tabs>
|
|
699
|
+
|
|
700
|
+
<Tab label="Статическое разрешение" value="static">
|
|
701
|
+
|
|
702
|
+
`getIntlayer` разрешает синхронно против **объединённого** словаря, того, который содержит каждую объявленную локаль. `head` остаётся синхронным и ничего не ожидается, но весь многоязычный словарь вытягивается в chunk маршрута, отправляемый в браузер.
|
|
691
703
|
|
|
692
704
|
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
693
705
|
import { createFileRoute } from "@tanstack/react-router";
|
|
694
|
-
import {
|
|
706
|
+
import {
|
|
707
|
+
defaultLocale,
|
|
708
|
+
getIntlayer,
|
|
709
|
+
getLocalizedUrl,
|
|
710
|
+
localeMap,
|
|
711
|
+
} from "intlayer";
|
|
695
712
|
|
|
696
713
|
export const Route = createFileRoute("/{-$locale}/")({
|
|
697
714
|
component: RouteComponent,
|
|
698
715
|
head: ({ params }) => {
|
|
699
|
-
const { locale } = params;
|
|
700
|
-
const path = "/"; //
|
|
716
|
+
const { locale = defaultLocale } = params;
|
|
717
|
+
const path = "/"; // Путь для этого маршрута
|
|
701
718
|
|
|
702
719
|
const metaContent = getIntlayer("app", locale);
|
|
703
720
|
|
|
704
721
|
return {
|
|
705
722
|
links: [
|
|
706
|
-
//
|
|
723
|
+
// Канонический link: Указывает на текущую локализованную страницу
|
|
724
|
+
{ rel: "canonical", href: getLocalizedUrl(path, locale) },
|
|
725
|
+
|
|
726
|
+
// Hreflang: Расскажите Google обо всех локализованных версиях
|
|
727
|
+
...localeMap(({ locale: mapLocale }) => ({
|
|
728
|
+
rel: "alternate",
|
|
729
|
+
hrefLang: mapLocale,
|
|
730
|
+
href: getLocalizedUrl(path, mapLocale),
|
|
731
|
+
})),
|
|
732
|
+
|
|
733
|
+
// x-default: Для пользователей на несоответствующих языках
|
|
734
|
+
// Определите локаль по умолчанию (обычно ваш основной язык)
|
|
735
|
+
{
|
|
736
|
+
rel: "alternate",
|
|
737
|
+
hrefLang: "x-default",
|
|
738
|
+
href: getLocalizedUrl(path, defaultLocale),
|
|
739
|
+
},
|
|
740
|
+
],
|
|
741
|
+
meta: [
|
|
742
|
+
{ title: metaContent.title },
|
|
743
|
+
{ name: "description", content: metaContent.meta.description },
|
|
744
|
+
],
|
|
745
|
+
};
|
|
746
|
+
},
|
|
747
|
+
});
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
Лучше всего для небольших словарей метаданных, нескольких локалей или при прототипировании.
|
|
751
|
+
|
|
752
|
+
</Tab>
|
|
753
|
+
|
|
754
|
+
<Tab label="Динамическое разрешение" value="dynamic">
|
|
755
|
+
|
|
756
|
+
`getIntlayerAsync` (доступно с **v9.4**) ведёт себя как `getIntlayer`, но плагин сборки указывает его на chunk для конкретной локали в `.intlayer/dynamic_dictionaries/` вместо объединённого словаря. Поэтому страница доставляет только локаль, которую она отображает. Поскольку этот chunk загружается по требованию, `head` становится `async`:
|
|
757
|
+
|
|
758
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
759
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
760
|
+
import {
|
|
761
|
+
defaultLocale,
|
|
762
|
+
getIntlayerAsync,
|
|
763
|
+
getLocalizedUrl,
|
|
764
|
+
localeMap,
|
|
765
|
+
} from "intlayer";
|
|
766
|
+
|
|
767
|
+
export const Route = createFileRoute("/{-$locale}/")({
|
|
768
|
+
component: RouteComponent,
|
|
769
|
+
head: async ({ params }) => {
|
|
770
|
+
const { locale = defaultLocale } = params;
|
|
771
|
+
const path = "/"; // Путь для этого маршрута
|
|
772
|
+
|
|
773
|
+
const metaContent = await getIntlayerAsync("app", locale);
|
|
774
|
+
|
|
775
|
+
return {
|
|
776
|
+
links: [
|
|
777
|
+
// Канонический link: Указывает на текущую локализованную страницу
|
|
707
778
|
{ rel: "canonical", href: getLocalizedUrl(path, locale) },
|
|
708
779
|
|
|
709
|
-
// Hreflang:
|
|
780
|
+
// Hreflang: Расскажите Google обо всех локализованных версиях
|
|
710
781
|
...localeMap(({ locale: mapLocale }) => ({
|
|
711
782
|
rel: "alternate",
|
|
712
783
|
hrefLang: mapLocale,
|
|
713
784
|
href: getLocalizedUrl(path, mapLocale),
|
|
714
785
|
})),
|
|
715
786
|
|
|
716
|
-
// x-default:
|
|
717
|
-
//
|
|
787
|
+
// x-default: Для пользователей на несоответствующих языках
|
|
788
|
+
// Определите локаль по умолчанию (обычно ваш основной язык)
|
|
718
789
|
{
|
|
719
790
|
rel: "alternate",
|
|
720
791
|
hrefLang: "x-default",
|
|
@@ -730,14 +801,97 @@ export const Route = createFileRoute("/{-$locale}/")({
|
|
|
730
801
|
});
|
|
731
802
|
```
|
|
732
803
|
|
|
804
|
+
> Если `head` читает несколько словарей, разрешите их с помощью `Promise.all`: ожидание каждого `getIntlayerAsync` в отдельной строке цепляет запросы вместо параллельного выполнения.
|
|
805
|
+
|
|
806
|
+
Компромисс: динамический импорт разрешается во время выполнения `head`, на критическом пути рендера документа. На холодном маршруте это задерживает head на несколько миллисекунд и может немного ухудшить **LCP**.
|
|
807
|
+
|
|
808
|
+
</Tab>
|
|
809
|
+
|
|
810
|
+
<Tab label="Разрешение с кешированием" value="cached">
|
|
811
|
+
|
|
812
|
+
Разрешите словарь в `loader` маршрута и прочитайте его обратно из `loaderData` в `head`. Loaders совпадающих маршрутов выполняются параллельно, и `staleTime: Infinity` говорит TanStack Router, что результат никогда не устаревает, поэтому chunk для конкретной локали разрешается один раз и впоследствии подается из кеша маршрутизатора, оставляя `head` синхронным.
|
|
813
|
+
|
|
814
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
815
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
816
|
+
import {
|
|
817
|
+
defaultLocale,
|
|
818
|
+
getIntlayerAsync,
|
|
819
|
+
getLocalizedUrl,
|
|
820
|
+
localeMap,
|
|
821
|
+
} from "intlayer";
|
|
822
|
+
|
|
823
|
+
export const Route = createFileRoute("/{-$locale}/")({
|
|
824
|
+
component: RouteComponent,
|
|
825
|
+
// Разрешено параллельно с другими совпадающими маршрутами, вне критического пути head
|
|
826
|
+
loader: async ({ params }) => {
|
|
827
|
+
const { locale = defaultLocale } = params;
|
|
828
|
+
|
|
829
|
+
return { metaContent: await getIntlayerAsync("app", locale) };
|
|
830
|
+
},
|
|
831
|
+
// Словарь никогда не меняется для данной локали: разрешите chunk один раз
|
|
832
|
+
staleTime: Infinity,
|
|
833
|
+
head: ({ params, loaderData }) => {
|
|
834
|
+
const { locale = defaultLocale } = params;
|
|
835
|
+
const path = "/"; // Путь для этого маршрута
|
|
836
|
+
|
|
837
|
+
return {
|
|
838
|
+
links: [
|
|
839
|
+
// Канонический link: Указывает на текущую локализованную страницу
|
|
840
|
+
{ rel: "canonical", href: getLocalizedUrl(path, locale) },
|
|
841
|
+
|
|
842
|
+
// Hreflang: Расскажите Google обо всех локализованных версиях
|
|
843
|
+
...localeMap(({ locale: mapLocale }) => ({
|
|
844
|
+
rel: "alternate",
|
|
845
|
+
hrefLang: mapLocale,
|
|
846
|
+
href: getLocalizedUrl(path, mapLocale),
|
|
847
|
+
})),
|
|
848
|
+
|
|
849
|
+
// x-default: Для пользователей на несоответствующих языках
|
|
850
|
+
// Определите локаль по умолчанию (обычно ваш основной язык)
|
|
851
|
+
{
|
|
852
|
+
rel: "alternate",
|
|
853
|
+
hrefLang: "x-default",
|
|
854
|
+
href: getLocalizedUrl(path, defaultLocale),
|
|
855
|
+
},
|
|
856
|
+
],
|
|
857
|
+
meta: [
|
|
858
|
+
{ title: loaderData?.metaContent.title },
|
|
859
|
+
{
|
|
860
|
+
name: "description",
|
|
861
|
+
content: loaderData?.metaContent.meta.description,
|
|
862
|
+
},
|
|
863
|
+
],
|
|
864
|
+
};
|
|
865
|
+
},
|
|
866
|
+
});
|
|
867
|
+
```
|
|
868
|
+
|
|
869
|
+
> `head` может быть вызван до того, как loader завершится, поэтому `loaderData` типизируется как возможно `undefined`. Сохраните опциональную цепочку или верните резервное название.
|
|
870
|
+
|
|
871
|
+
Вы сохраняете chunk для конкретной локали без его стоимости на критическом пути head. Цена — это опыт разработчика: содержимое должно быть явно передано из loader в `head` через `loaderData`.
|
|
872
|
+
|
|
873
|
+
</Tab>
|
|
874
|
+
|
|
875
|
+
</Tabs>
|
|
876
|
+
|
|
877
|
+
### Какое разрешение выбрать?
|
|
878
|
+
|
|
879
|
+
| | Статическое разрешение | Динамическое разрешение | Кэшированное динамическое разрешение |
|
|
880
|
+
| -------------------- | ---------------------- | -------------------------- | -------------------------------------- |
|
|
881
|
+
| API | `getIntlayer` | `getIntlayerAsync` (v9.4+) | `getIntlayerAsync` in `loader` (v9.4+) |
|
|
882
|
+
| `head` signature | synchronous | `async` | synchronous, reads `loaderData` |
|
|
883
|
+
| Locales shipped | every declared locale | requested locale only | requested locale only |
|
|
884
|
+
| Client navigations | nothing to resolve | re-entered on every match | served from the router cache |
|
|
885
|
+
| Developer experience | simplest | one `await` | content threaded through `loaderData` |
|
|
886
|
+
|
|
733
887
|
---
|
|
734
888
|
|
|
735
889
|
</Step>
|
|
736
890
|
|
|
737
|
-
<Step number={13} title="
|
|
891
|
+
<Step number={13} title="Получите языковой стандарт в ваших серверных действиях">
|
|
738
892
|
|
|
739
|
-
Вы можете захотеть получить доступ к
|
|
740
|
-
Вы можете сделать
|
|
893
|
+
Вы можете захотеть получить доступ к текущему языковому стандарту из ваших серверных действий или конечных точек API.
|
|
894
|
+
Вы можете сделать это, используя помощник `getLocale` из `intlayer`.
|
|
741
895
|
|
|
742
896
|
Вот пример использования серверных функций TanStack Start:
|
|
743
897
|
|
|
@@ -751,18 +905,18 @@ import { getCookie, getIntlayer, getLocale } from "intlayer";
|
|
|
751
905
|
|
|
752
906
|
export const getLocaleServer = createServerFn().handler(async () => {
|
|
753
907
|
const locale = await getLocale({
|
|
754
|
-
//
|
|
908
|
+
// Получите cookie из запроса (по умолчанию: 'INTLAYER_LOCALE')
|
|
755
909
|
getCookie: (name) => {
|
|
756
910
|
const cookieString = getRequestHeader("cookie");
|
|
757
911
|
|
|
758
912
|
return getCookie(name, cookieString);
|
|
759
913
|
},
|
|
760
|
-
//
|
|
761
|
-
// Резервный вариант с использованием
|
|
914
|
+
// Получите заголовок из запроса (по умолчанию: 'x-intlayer-locale')
|
|
915
|
+
// Резервный вариант с использованием переговоров Accept-Language
|
|
762
916
|
getHeader: (name) => getRequestHeader(name),
|
|
763
917
|
});
|
|
764
918
|
|
|
765
|
-
//
|
|
919
|
+
// Получите некоторое содержимое, используя getIntlayerAsync()
|
|
766
920
|
const content = getIntlayer("app", locale);
|
|
767
921
|
|
|
768
922
|
return { locale, content };
|
|
@@ -773,6 +927,132 @@ export const getLocaleServer = createServerFn().handler(async () => {
|
|
|
773
927
|
|
|
774
928
|
</Step>
|
|
775
929
|
|
|
930
|
+
<Step number={14} title="Управление страницами «не найдено»">
|
|
931
|
+
|
|
932
|
+
Когда пользователь посещает несуществующую страницу, вы можете отобразить пользовательскую страницу «не найдено», и префикс языкового стандарта может повлиять на способ срабатывания страницы «не найдено».
|
|
933
|
+
|
|
934
|
+
#### Локализованная главная страница
|
|
935
|
+
|
|
936
|
+
> Если вы хотите использовать ваше содержимое в атрибуте `string`, таком как `alt`, `title`, `href`, `aria-label` и т. д., вы можете использовать значение функции, например:
|
|
937
|
+
>
|
|
938
|
+
> ```html
|
|
939
|
+
> <img src="{content.image.src.value}" alt="{content.image.value}" />
|
|
940
|
+
> <img src="{content.image.src.toString()}" alt="{content.image.toString()}" />
|
|
941
|
+
> <img src="{String(content.image.src)}" alt="{String(content.image)}" />
|
|
942
|
+
> ```
|
|
943
|
+
|
|
944
|
+
> Чтобы узнать больше о хуке `useIntlayer`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useIntlayer.md).
|
|
945
|
+
|
|
946
|
+
</Step>
|
|
947
|
+
|
|
948
|
+
```tsx fileName="src/components/locale-switcher.tsx"
|
|
949
|
+
import { useLocation } from "@tanstack/react-router";
|
|
950
|
+
import {
|
|
951
|
+
getHTMLTextDir,
|
|
952
|
+
getLocaleName,
|
|
953
|
+
getPathWithoutLocale,
|
|
954
|
+
getPrefix,
|
|
955
|
+
Locales,
|
|
956
|
+
} from "intlayer";
|
|
957
|
+
import type { FC } from "react";
|
|
958
|
+
import { useLocale } from "react-intlayer";
|
|
959
|
+
|
|
960
|
+
import { LocalizedLink, type To } from "./localized-link";
|
|
961
|
+
|
|
962
|
+
export const LocaleSwitcher: FC = () => {
|
|
963
|
+
const { pathname } = useLocation();
|
|
964
|
+
|
|
965
|
+
const { availableLocales, locale, setLocale } = useLocale();
|
|
966
|
+
|
|
967
|
+
const pathWithoutLocale = getPathWithoutLocale(pathname);
|
|
968
|
+
|
|
969
|
+
return (
|
|
970
|
+
<ol>
|
|
971
|
+
{availableLocales.map((localeEl) => (
|
|
972
|
+
<li key={localeEl}>
|
|
973
|
+
<LocalizedLink
|
|
974
|
+
aria-current={localeEl === locale ? "page" : undefined}
|
|
975
|
+
onClick={() => setLocale(localeEl)}
|
|
976
|
+
params={{ locale: getPrefix(localeEl).localePrefix }}
|
|
977
|
+
to={pathWithoutLocale as To}
|
|
978
|
+
>
|
|
979
|
+
<span>
|
|
980
|
+
{/* Локаль - например, FR */}
|
|
981
|
+
{localeEl}
|
|
982
|
+
</span>
|
|
983
|
+
<span>
|
|
984
|
+
{/* Язык на его собственной локали - например, Français */}
|
|
985
|
+
{getLocaleName(localeEl, locale)}
|
|
986
|
+
</span>
|
|
987
|
+
<span dir={getHTMLTextDir(localeEl)} lang={localeEl}>
|
|
988
|
+
{/* Язык на текущей локали - например, Francés при установленной локали Locales.SPANISH */}
|
|
989
|
+
{getLocaleName(localeEl)}
|
|
990
|
+
</span>
|
|
991
|
+
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
992
|
+
{/* Язык на английском - например, French */}
|
|
993
|
+
{getLocaleName(localeEl, Locales.ENGLISH)}
|
|
994
|
+
</span>
|
|
995
|
+
</LocalizedLink>
|
|
996
|
+
</li>
|
|
997
|
+
))}
|
|
998
|
+
</ol>
|
|
999
|
+
);
|
|
1000
|
+
};
|
|
1001
|
+
```
|
|
1002
|
+
|
|
1003
|
+
> Чтобы узнать больше о хуке `useLocale`, обратитесь к [документации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md).
|
|
1004
|
+
|
|
1005
|
+
</Step>
|
|
1006
|
+
|
|
1007
|
+
<Step number={11} title="Управление атрибутами HTML">
|
|
1008
|
+
|
|
1009
|
+
return (
|
|
1010
|
+
<html dir={getHTMLTextDir(locale)} lang={locale}>
|
|
1011
|
+
{/* ... _/}
|
|
1012
|
+
</html>
|
|
1013
|
+
);
|
|
1014
|
+
} {/_ ... */}
|
|
1015
|
+
</html>
|
|
1016
|
+
);
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
export const Route = createFileRoute("/{-$locale}/")({
|
|
1020
|
+
component: RouteComponent,
|
|
1021
|
+
head: async ({ params }) => {
|
|
1022
|
+
const { locale = defaultLocale } = params;
|
|
1023
|
+
const path = "/"; // The path for this route
|
|
1024
|
+
|
|
1025
|
+
const metaContent = await getIntlayerAsync("app", locale);
|
|
1026
|
+
|
|
1027
|
+
````
|
|
1028
|
+
|
|
1029
|
+
> Если `head` читает несколько словарей, разрешайте их через `Promise.all`: ожидание каждого `getIntlayerAsync` отдельной строкой выстраивает запросы в цепочку вместо параллельного выполнения.
|
|
1030
|
+
|
|
1031
|
+
Компромисс: динамический импорт разрешается во время выполнения `head`, на критическом пути рендеринга документа. На «холодном» маршруте это задерживает `head` на несколько миллисекунд и может немного ухудшить **LCP**.
|
|
1032
|
+
|
|
1033
|
+
</Tab>
|
|
1034
|
+
|
|
1035
|
+
<Tab label="Кэшированное динамическое разрешение" value="cached">
|
|
1036
|
+
|
|
1037
|
+
Разрешите словарь в `loader` маршрута и прочитайте его обратно из `loaderData` в `head`. Загрузчики совпавших маршрутов выполняются параллельно, а `staleTime: Infinity` сообщает TanStack Router, что результат никогда не устаревает, поэтому пер-локальный чанк разрешается один раз, а затем отдаётся из кэша роутера, оставляя `head` синхронным.
|
|
1038
|
+
|
|
1039
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
1040
|
+
return getCookie(name, cookieString);
|
|
1041
|
+
},
|
|
1042
|
+
// Получить заголовок из запроса (по умолчанию: 'x-intlayer-locale')
|
|
1043
|
+
// Резервный вариант с использованием согласования Accept-Language
|
|
1044
|
+
getHeader: (name) => getRequestHeader(name),
|
|
1045
|
+
});
|
|
1046
|
+
|
|
1047
|
+
// Получить контент с помощью getIntlayer()
|
|
1048
|
+
const content = getIntlayer("app", locale);
|
|
1049
|
+
|
|
1050
|
+
````
|
|
1051
|
+
|
|
1052
|
+
---
|
|
1053
|
+
|
|
1054
|
+
</Step>
|
|
1055
|
+
|
|
776
1056
|
<Step number={14} title="Управление страницами "не найдено"">
|
|
777
1057
|
|
|
778
1058
|
Когда пользователь посещает несуществующую страницу, вы можете отобразить пользовательскую страницу "не найдено", и префикс локали может повлиять на способ срабатывания страницы "не найдено".
|
|
@@ -786,65 +1066,15 @@ export const getLocaleServer = createServerFn().handler(async () => {
|
|
|
786
1066
|
3. **Маршрут catch-all**: Перехватывает все несовпадающие пути в сегменте локали
|
|
787
1067
|
|
|
788
1068
|
```tsx fileName="src/routes/{-$locale}/404.tsx"
|
|
789
|
-
import { createFileRoute } from "@tanstack/react-router";
|
|
790
|
-
|
|
791
|
-
// Это создает выделенный маршрут /[locale]/404
|
|
792
|
-
// Он используется как прямой маршрут и импортируется как компонент в других файлах
|
|
793
|
-
export const Route = createFileRoute("/{-$locale}/404")({
|
|
794
|
-
component: NotFoundComponent,
|
|
795
|
-
});
|
|
796
1069
|
|
|
797
|
-
// Экспортируется отдельно, чтобы можно было повторно использовать в notFoundComponent и catch-all маршрутах
|
|
798
|
-
export function NotFoundComponent() {
|
|
799
|
-
return (
|
|
800
|
-
<div>
|
|
801
|
-
<h1>404</h1>
|
|
802
|
-
</div>
|
|
803
|
-
);
|
|
804
|
-
}
|
|
805
1070
|
```
|
|
806
1071
|
|
|
807
1072
|
```tsx fileName="src/routes/{-$locale}/route.tsx"
|
|
808
|
-
import { createFileRoute, Outlet, redirect } from "@tanstack/react-router";
|
|
809
|
-
import { validatePrefix } from "intlayer";
|
|
810
|
-
import { NotFoundComponent } from "./404";
|
|
811
1073
|
|
|
812
|
-
export const Route = createFileRoute("/{-$locale}")({
|
|
813
|
-
// beforeLoad выполняется до рендеринга маршрута (как на сервере, так и на клиенте)
|
|
814
|
-
// Это идеальное место для проверки префикса локали
|
|
815
|
-
beforeLoad: ({ params }) => {
|
|
816
|
-
const localeParam = params.locale;
|
|
817
|
-
|
|
818
|
-
// validatePrefix проверяет, является ли локаль действительной согласно вашей конфигурации intlayer
|
|
819
|
-
const { isValid, localePrefix } = validatePrefix(localeParam);
|
|
820
|
-
|
|
821
|
-
if (!isValid) {
|
|
822
|
-
// Недействительный префикс локали - перенаправить на страницу 404 с действительным префиксом локали
|
|
823
|
-
throw redirect({
|
|
824
|
-
to: "/{-$locale}/404",
|
|
825
|
-
params: { locale: localePrefix },
|
|
826
|
-
});
|
|
827
|
-
}
|
|
828
|
-
},
|
|
829
|
-
component: Outlet,
|
|
830
|
-
// notFoundComponent вызывается, когда дочерний маршрут не существует
|
|
831
|
-
// например, /en/несуществующая-страница запускает это в макете /en
|
|
832
|
-
notFoundComponent: NotFoundComponent,
|
|
833
|
-
});
|
|
834
1074
|
```
|
|
835
1075
|
|
|
836
1076
|
```tsx fileName="src/routes/{-$locale}/$.tsx"
|
|
837
|
-
import { createFileRoute } from "@tanstack/react-router";
|
|
838
1077
|
|
|
839
|
-
import { NotFoundComponent } from "./404";
|
|
840
|
-
|
|
841
|
-
// Маршрут $ (splat/catch-all) соответствует любому пути, который не соответствует другим маршрутам
|
|
842
|
-
// например, /en/какой-то/глубоко/вложенный/недействительный/путь
|
|
843
|
-
// Это гарантирует, что ВСЕ несоответствующие пути в локали показывают страницу 404
|
|
844
|
-
// Без этого несоответствующие глубокие пути могут показать пустую страницу или ошибку
|
|
845
|
-
export const Route = createFileRoute("/{-$locale}/$")({
|
|
846
|
-
component: NotFoundComponent,
|
|
847
|
-
});
|
|
848
1078
|
```
|
|
849
1079
|
|
|
850
1080
|
</Step>
|
|
@@ -860,24 +1090,11 @@ export const Route = createFileRoute("/{-$locale}/$")({
|
|
|
860
1090
|
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
861
1091
|
import { type IntlayerConfig } from "intlayer";
|
|
862
1092
|
|
|
863
|
-
const config: IntlayerConfig = {
|
|
864
|
-
// ... Остальная часть вашей конфигурации
|
|
865
|
-
compiler: {
|
|
866
|
-
/**
|
|
867
|
-
* Указывает, должен ли быть включен компилятор.
|
|
868
|
-
*/
|
|
869
|
-
enabled: true,
|
|
870
|
-
|
|
871
1093
|
/**
|
|
872
1094
|
* Определяет путь к выходным файлам
|
|
873
1095
|
*/
|
|
874
1096
|
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
875
1097
|
|
|
876
|
-
/**
|
|
877
|
-
* Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
|
|
878
|
-
*/
|
|
879
|
-
saveComponents: false,
|
|
880
|
-
|
|
881
1098
|
/**
|
|
882
1099
|
* Префикс ключа словаря
|
|
883
1100
|
*/
|
|
@@ -894,29 +1111,23 @@ export default config;
|
|
|
894
1111
|
Запустите экстрактор для преобразования компонентов и извлечения содержимого
|
|
895
1112
|
|
|
896
1113
|
```bash packageManager="npm"
|
|
897
|
-
|
|
1114
|
+
|
|
898
1115
|
```
|
|
899
1116
|
|
|
900
1117
|
```bash packageManager="pnpm"
|
|
901
|
-
|
|
1118
|
+
|
|
902
1119
|
```
|
|
903
1120
|
|
|
904
1121
|
```bash packageManager="yarn"
|
|
905
|
-
|
|
1122
|
+
|
|
906
1123
|
```
|
|
907
1124
|
|
|
908
1125
|
```bash packageManager="bun"
|
|
909
|
-
bun x intlayer extract
|
|
910
|
-
```
|
|
911
1126
|
|
|
912
1127
|
</Tab>
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
> Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
|
|
916
|
-
|
|
917
|
-
Обновите ваш `vite.config.ts`, чтобы включить плагин `intlayerCompiler`:
|
|
1128
|
+
</Tabs>
|
|
918
1129
|
|
|
919
|
-
|
|
1130
|
+
bun x intlayer extract
|
|
920
1131
|
import { defineConfig } from "vite";
|
|
921
1132
|
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
922
1133
|
|
|
@@ -941,25 +1152,10 @@ yarn build # Or yarn dev
|
|
|
941
1152
|
```
|
|
942
1153
|
|
|
943
1154
|
```bash packageManager="bun"
|
|
944
|
-
bun run build # Or bun run dev
|
|
945
|
-
```
|
|
946
1155
|
|
|
947
|
-
|
|
948
|
-
</Tabs>
|
|
1156
|
+
----
|
|
949
1157
|
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
</Step>
|
|
953
|
-
|
|
954
|
-
<Step number={16} title="Генерация карты сайта (Sitemap)" isOptional={true}>
|
|
955
|
-
|
|
956
|
-
Intlayer поставляется со встроенным генератором карты сайта, который поможет вам легко создать карту сайта для вашего приложения. Он учитывает локализованные маршруты и добавляет необходимые метаданные для поисковых систем.
|
|
957
|
-
|
|
958
|
-
> Создаваемая Intlayer карта сайта поддерживает пространство имен `xhtml:link` (Hreflang XML Extensions). В отличие от стандартных генераторов карт сайта, которые просто перечисляют прямые URL-адреса, Intlayer автоматически создает необходимые двусторонние связи между всеми языковыми версиями страницы (например, `/about`, `/about?lang=fr` и `/about?lang=es`). Это гарантирует, что поисковые системы будут правильно индексировать и показывать нужную языковую версию соответствующей аудитории.
|
|
959
|
-
|
|
960
|
-
Чтобы использовать его, вам сначала нужно настроить ваш файл `vite.config.ts`, чтобы включить предварительный рендеринг (pre-rendering) для ваших локализованных маршрутов и отключить генерацию карты сайта по умолчанию в TanStack Start.
|
|
961
|
-
|
|
962
|
-
```typescript fileName="vite.config.ts"
|
|
1158
|
+
bun run build # Or bun run dev
|
|
963
1159
|
import { localeFlatMap } from "intlayer";
|
|
964
1160
|
// ... другие импорты
|
|
965
1161
|
|
|
@@ -995,13 +1191,9 @@ export default defineConfig({
|
|
|
995
1191
|
|
|
996
1192
|
Затем создайте маршрут `src/routes/sitemap[.]xml.ts`, который использует функцию `generateSitemap`:
|
|
997
1193
|
|
|
998
|
-
|
|
999
|
-
import { createFileRoute } from "@tanstack/react-router";
|
|
1000
|
-
import { generateSitemap } from "intlayer";
|
|
1194
|
+
````typescript fileName="src/routes/sitemap[.]xml.ts"
|
|
1001
1195
|
|
|
1002
|
-
|
|
1003
|
-
import.meta.env.VITE_SITE_URL ?? "http://localhost:3000"
|
|
1004
|
-
).replace(/\/$/, "");
|
|
1196
|
+
---
|
|
1005
1197
|
|
|
1006
1198
|
export const Route = createFileRoute("/sitemap.xml")({
|
|
1007
1199
|
server: {
|
|
@@ -1022,19 +1214,6 @@ export const Route = createFileRoute("/sitemap.xml")({
|
|
|
1022
1214
|
},
|
|
1023
1215
|
},
|
|
1024
1216
|
});
|
|
1025
|
-
```
|
|
1026
|
-
|
|
1027
|
-
---
|
|
1028
|
-
|
|
1029
|
-
</Step>
|
|
1030
|
-
|
|
1031
|
-
<Step number={17} title="Настройка TypeScript">
|
|
1032
|
-
|
|
1033
|
-
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать вашу кодовую базу более надежной.
|
|
1034
|
-
|
|
1035
|
-
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы:
|
|
1036
|
-
|
|
1037
|
-
```json5 fileName="tsconfig.json"
|
|
1038
1217
|
{
|
|
1039
1218
|
// ... ваши существующие настройки
|
|
1040
1219
|
include: [
|
|
@@ -1042,47 +1221,40 @@ Intlayer использует расширение модулей (module augmen
|
|
|
1042
1221
|
".intlayer/**/*.ts", // Включить автоматически сгенерированные типы
|
|
1043
1222
|
],
|
|
1044
1223
|
}
|
|
1045
|
-
```
|
|
1046
|
-
|
|
1047
|
-
---
|
|
1048
|
-
|
|
1049
|
-
</Step>
|
|
1050
|
-
|
|
1051
|
-
</Steps>
|
|
1052
1224
|
|
|
1053
1225
|
### Конфигурация Git
|
|
1054
1226
|
|
|
1055
|
-
Рекомендуется игнорировать файлы,
|
|
1227
|
+
Рекомендуется игнорировать файлы, созданные Intlayer. Это позволяет избежать их фиксации в репозитории Git.
|
|
1056
1228
|
|
|
1057
|
-
|
|
1229
|
+
Для этого вы можете добавить следующие инструкции в файл `.gitignore`:
|
|
1058
1230
|
|
|
1059
1231
|
```plaintext fileName=".gitignore"
|
|
1060
|
-
#
|
|
1232
|
+
# Ignore the files generated by Intlayer
|
|
1061
1233
|
.intlayer
|
|
1062
|
-
|
|
1234
|
+
````
|
|
1063
1235
|
|
|
1064
1236
|
---
|
|
1065
1237
|
|
|
1066
1238
|
## Расширение VS Code
|
|
1067
1239
|
|
|
1068
|
-
|
|
1240
|
+
Чтобы улучшить опыт разработки с Intlayer, вы можете установить официальное **расширение Intlayer VS Code**.
|
|
1069
1241
|
|
|
1070
1242
|
[Установить из VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
1071
1243
|
|
|
1072
1244
|
Это расширение предоставляет:
|
|
1073
1245
|
|
|
1074
|
-
-
|
|
1246
|
+
- **Автодополнение** для ключей переводов.
|
|
1075
1247
|
- **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
|
|
1076
|
-
-
|
|
1077
|
-
- **Быстрые действия** для
|
|
1248
|
+
- **Встроенные предпросмотры** переведённого контента.
|
|
1249
|
+
- **Быстрые действия** для удобного создания и обновления переводов.
|
|
1078
1250
|
|
|
1079
|
-
Для получения дополнительной информации
|
|
1251
|
+
Для получения дополнительной информации об использовании расширения см. [документацию расширения Intlayer VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
1080
1252
|
|
|
1081
1253
|
---
|
|
1082
1254
|
|
|
1083
|
-
##
|
|
1255
|
+
## Дальше
|
|
1084
1256
|
|
|
1085
|
-
|
|
1257
|
+
Чтобы пойти дальше, вы можете реализовать [visual editor](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).
|
|
1086
1258
|
|
|
1087
1259
|
---
|
|
1088
1260
|
|
|
@@ -1090,7 +1262,7 @@ Intlayer использует расширение модулей (module augmen
|
|
|
1090
1262
|
|
|
1091
1263
|
- [Документация Intlayer](https://intlayer.org)
|
|
1092
1264
|
- [Документация Tanstack Start](https://reactrouter.com/)
|
|
1093
|
-
- [
|
|
1094
|
-
- [useLocale
|
|
1265
|
+
- [хук useIntlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useIntlayer.md)
|
|
1266
|
+
- [хук useLocale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/packages/react-intlayer/useLocale.md)
|
|
1095
1267
|
- [Объявление контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md)
|
|
1096
1268
|
- [Конфигурация](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
|