@intlayer/docs 9.4.0-canary.0 → 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 +3 -0
- 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/analytics.md +32 -11
- package/docs/ar/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +16 -0
- 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 +17 -0
- package/docs/ar/intlayer_with_angular_19.md +17 -0
- package/docs/ar/intlayer_with_angular_21.md +17 -0
- package/docs/ar/intlayer_with_astro.md +41 -0
- package/docs/ar/intlayer_with_astro_lit.md +17 -0
- package/docs/ar/intlayer_with_astro_preact.md +23 -0
- package/docs/ar/intlayer_with_astro_react.md +17 -0
- package/docs/ar/intlayer_with_astro_solid.md +17 -0
- package/docs/ar/intlayer_with_astro_svelte.md +17 -0
- package/docs/ar/intlayer_with_astro_vanilla.md +17 -0
- package/docs/ar/intlayer_with_astro_vue.md +17 -0
- 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 +30 -0
- 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 +233 -36
- package/docs/ar/intlayer_with_nextjs_15.md +218 -0
- package/docs/ar/intlayer_with_nextjs_16.md +170 -44
- package/docs/ar/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +159 -4
- package/docs/ar/intlayer_with_nextjs_page_router.md +15 -28
- package/docs/ar/intlayer_with_nuxt.md +17 -0
- package/docs/ar/intlayer_with_react_router_v7.md +47 -0
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +191 -52
- package/docs/ar/intlayer_with_solid_start.md +12 -0
- package/docs/ar/intlayer_with_storybook.md +17 -0
- package/docs/ar/intlayer_with_svelte_kit.md +25 -16
- package/docs/ar/intlayer_with_tanstack+solid.md +249 -6
- package/docs/ar/intlayer_with_tanstack.md +283 -49
- package/docs/ar/intlayer_with_vanilla.md +17 -0
- package/docs/ar/intlayer_with_vite+lit.md +21 -0
- package/docs/ar/intlayer_with_vite+preact.md +51 -16
- package/docs/ar/intlayer_with_vite+react.md +21 -12
- package/docs/ar/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/ar/intlayer_with_vite+solid.md +28 -48
- package/docs/ar/intlayer_with_vite+svelte.md +42 -12
- package/docs/ar/intlayer_with_vite+vanilla.md +19 -0
- package/docs/ar/intlayer_with_vite+vue.md +32 -14
- package/docs/ar/live-sync.md +13 -2
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/intlayer_with_fastify.md +5 -3
- package/docs/bn/intlayer_with_hono.md +5 -3
- package/docs/cs/intlayer_with_fastify.md +5 -3
- package/docs/cs/intlayer_with_hono.md +5 -3
- package/docs/de/analytics.md +32 -11
- package/docs/de/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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_astro.md +24 -0
- package/docs/de/intlayer_with_astro_preact.md +6 -0
- 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 +13 -26
- 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 +239 -9
- package/docs/de/intlayer_with_nextjs_15.md +200 -0
- package/docs/de/intlayer_with_nextjs_16.md +95 -35
- package/docs/de/intlayer_with_nextjs_compiler.md +467 -10
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +125 -4
- package/docs/de/intlayer_with_nextjs_page_router.md +4 -43
- package/docs/de/intlayer_with_react_router_v7.md +30 -0
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +102 -12
- package/docs/de/intlayer_with_solid_start.md +12 -0
- package/docs/de/intlayer_with_svelte_kit.md +6 -0
- package/docs/de/intlayer_with_tanstack+solid.md +157 -6
- package/docs/de/intlayer_with_tanstack.md +348 -178
- package/docs/de/intlayer_with_vite+lit.md +4 -0
- package/docs/de/intlayer_with_vite+preact.md +8 -4
- package/docs/de/intlayer_with_vite+react.md +4 -2
- package/docs/de/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/de/intlayer_with_vite+solid.md +11 -12
- package/docs/de/intlayer_with_vite+svelte.md +24 -0
- package/docs/de/intlayer_with_vite+vanilla.md +2 -0
- package/docs/de/intlayer_with_vite+vue.md +15 -2
- package/docs/de/live-sync.md +39 -0
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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 +503 -34
- package/docs/en/cli/index.md +2 -0
- package/docs/en/cli/login.md +28 -0
- package/docs/en/custom_domains.md +39 -2
- package/docs/en/dictionary/html.md +16 -16
- package/docs/en/dynamic_dictionaries/variants.md +3 -3
- 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 +2 -7
- package/docs/en/intlayer_with_nextjs_15.md +5 -5
- package/docs/en/intlayer_with_nextjs_16.md +5 -5
- package/docs/en/intlayer_with_nextjs_compiler.md +4 -4
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +7 -7
- 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/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 +10 -9
- package/docs/en/packages/next-intlayer/t.md +2 -4
- package/docs/en/packages/next-intlayer/useIntlayer.md +5 -6
- package/docs/en/readme.md +1 -0
- package/docs/en/self_hosting.md +77 -20
- package/docs/en-GB/benchmark/tanstack.md +6 -0
- 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/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/intlayer_visual_editor.md +12 -0
- package/docs/en-GB/intlayer_with_adonisjs.md +5 -3
- package/docs/en-GB/intlayer_with_astro.md +24 -0
- package/docs/en-GB/intlayer_with_astro_preact.md +6 -0
- 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 +8 -53
- package/docs/en-GB/intlayer_with_nestjs.md +5 -3
- package/docs/en-GB/intlayer_with_nextjs_14.md +180 -9
- package/docs/en-GB/intlayer_with_nextjs_15.md +195 -0
- package/docs/en-GB/intlayer_with_nextjs_16.md +225 -0
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +165 -5
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +139 -4
- package/docs/en-GB/intlayer_with_react_router_v7.md +110 -0
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +260 -63
- package/docs/en-GB/intlayer_with_solid_start.md +12 -0
- package/docs/en-GB/intlayer_with_svelte_kit.md +109 -4
- package/docs/en-GB/intlayer_with_tanstack+solid.md +159 -6
- package/docs/en-GB/intlayer_with_tanstack.md +381 -111
- package/docs/en-GB/intlayer_with_vite+lit.md +2 -0
- package/docs/en-GB/intlayer_with_vite+preact.md +103 -4
- package/docs/en-GB/intlayer_with_vite+react.md +109 -0
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/en-GB/intlayer_with_vite+solid.md +80 -17
- package/docs/en-GB/intlayer_with_vite+svelte.md +132 -0
- package/docs/en-GB/intlayer_with_vite+vanilla.md +2 -0
- package/docs/en-GB/intlayer_with_vite+vue.md +168 -23
- package/docs/en-GB/live-sync.md +13 -2
- 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 +33 -6
- 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/intlayerPrune.md +2 -0
- 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/analytics.md +32 -11
- package/docs/es/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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_astro.md +24 -0
- package/docs/es/intlayer_with_astro_preact.md +6 -0
- 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 +13 -0
- package/docs/es/intlayer_with_nestjs.md +19 -3
- package/docs/es/intlayer_with_nextjs_14.md +178 -50
- package/docs/es/intlayer_with_nextjs_15.md +197 -0
- package/docs/es/intlayer_with_nextjs_16.md +129 -66
- package/docs/es/intlayer_with_nextjs_compiler.md +45 -5
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +145 -4
- package/docs/es/intlayer_with_nextjs_page_router.md +15 -28
- package/docs/es/intlayer_with_react_router_v7.md +30 -0
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +28 -28
- package/docs/es/intlayer_with_solid_start.md +12 -0
- package/docs/es/intlayer_with_svelte_kit.md +6 -0
- package/docs/es/intlayer_with_tanstack+solid.md +157 -6
- package/docs/es/intlayer_with_tanstack.md +336 -192
- package/docs/es/intlayer_with_vite+lit.md +4 -0
- package/docs/es/intlayer_with_vite+preact.md +36 -4
- package/docs/es/intlayer_with_vite+react.md +2 -0
- package/docs/es/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/es/intlayer_with_vite+solid.md +11 -36
- package/docs/es/intlayer_with_vite+svelte.md +2 -0
- package/docs/es/intlayer_with_vite+vanilla.md +2 -0
- package/docs/es/intlayer_with_vite+vue.md +15 -2
- package/docs/es/live-sync.md +13 -4
- 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 +34 -7
- 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/intlayerPrune.md +2 -0
- 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/analytics.md +54 -11
- package/docs/fr/benchmark/tanstack.md +6 -0
- 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 +7 -10
- 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_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 +12 -0
- 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/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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +16 -0
- 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 +17 -0
- package/docs/hi/intlayer_with_angular_19.md +20 -0
- package/docs/hi/intlayer_with_angular_21.md +17 -0
- package/docs/hi/intlayer_with_astro.md +43 -0
- package/docs/hi/intlayer_with_astro_lit.md +43 -0
- package/docs/hi/intlayer_with_astro_preact.md +49 -0
- package/docs/hi/intlayer_with_astro_react.md +43 -0
- package/docs/hi/intlayer_with_astro_solid.md +43 -0
- package/docs/hi/intlayer_with_astro_svelte.md +43 -0
- package/docs/hi/intlayer_with_astro_vanilla.md +43 -0
- package/docs/hi/intlayer_with_astro_vue.md +19 -0
- 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 +25 -10
- package/docs/hi/intlayer_with_next-i18next.md +21 -0
- package/docs/hi/intlayer_with_nextjs_14.md +233 -34
- package/docs/hi/intlayer_with_nextjs_15.md +223 -8
- package/docs/hi/intlayer_with_nextjs_16.md +134 -10
- package/docs/hi/intlayer_with_nextjs_compiler.md +49 -5
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +162 -4
- package/docs/hi/intlayer_with_nextjs_page_router.md +28 -35
- package/docs/hi/intlayer_with_nuxt.md +46 -0
- package/docs/hi/intlayer_with_react_router_v7.md +49 -0
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +161 -45
- package/docs/hi/intlayer_with_solid_start.md +12 -0
- package/docs/hi/intlayer_with_storybook.md +17 -0
- package/docs/hi/intlayer_with_svelte_kit.md +25 -0
- package/docs/hi/intlayer_with_tanstack+solid.md +252 -6
- package/docs/hi/intlayer_with_tanstack.md +387 -157
- package/docs/hi/intlayer_with_vanilla.md +17 -0
- package/docs/hi/intlayer_with_vite+lit.md +21 -0
- package/docs/hi/intlayer_with_vite+preact.md +32 -99
- package/docs/hi/intlayer_with_vite+react.md +23 -7
- package/docs/hi/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/hi/intlayer_with_vite+solid.md +30 -25
- package/docs/hi/intlayer_with_vite+svelte.md +79 -0
- package/docs/hi/intlayer_with_vite+vanilla.md +19 -68
- package/docs/hi/intlayer_with_vite+vue.md +29 -9
- package/docs/hi/live-sync.md +39 -0
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +0 -2
- package/docs/id/intlayer_with_adonisjs.md +5 -3
- package/docs/id/intlayer_with_astro.md +24 -0
- package/docs/id/intlayer_with_astro_preact.md +6 -0
- 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_nestjs.md +5 -3
- package/docs/id/intlayer_with_nextjs_14.md +126 -7
- package/docs/id/intlayer_with_nextjs_15.md +103 -0
- package/docs/id/intlayer_with_nextjs_16.md +121 -2
- package/docs/id/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +141 -4
- package/docs/id/intlayer_with_nextjs_page_router.md +31 -24
- package/docs/id/intlayer_with_react_router_v7.md +30 -0
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +145 -50
- package/docs/id/intlayer_with_solid_start.md +12 -0
- package/docs/id/intlayer_with_svelte_kit.md +6 -0
- package/docs/id/intlayer_with_tanstack+solid.md +232 -6
- package/docs/id/intlayer_with_tanstack.md +370 -145
- package/docs/id/intlayer_with_vite+lit.md +4 -0
- package/docs/id/intlayer_with_vite+preact.md +34 -4
- package/docs/id/intlayer_with_vite+react.md +4 -0
- package/docs/id/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/id/intlayer_with_vite+solid.md +11 -27
- package/docs/id/intlayer_with_vite+svelte.md +27 -0
- package/docs/id/intlayer_with_vite+vanilla.md +2 -0
- package/docs/id/intlayer_with_vite+vue.md +13 -2
- 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 +34 -7
- 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/intlayerPrune.md +2 -0
- 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/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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_astro.md +24 -0
- package/docs/it/intlayer_with_astro_preact.md +6 -0
- 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 +13 -9
- package/docs/it/intlayer_with_nestjs.md +5 -3
- package/docs/it/intlayer_with_nextjs_14.md +239 -9
- package/docs/it/intlayer_with_nextjs_15.md +196 -20
- package/docs/it/intlayer_with_nextjs_16.md +106 -2
- package/docs/it/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +140 -4
- package/docs/it/intlayer_with_nextjs_page_router.md +6 -28
- package/docs/it/intlayer_with_react_router_v7.md +30 -0
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +30 -0
- package/docs/it/intlayer_with_solid_start.md +12 -0
- package/docs/it/intlayer_with_svelte_kit.md +6 -0
- package/docs/it/intlayer_with_tanstack+solid.md +157 -6
- package/docs/it/intlayer_with_tanstack.md +321 -171
- package/docs/it/intlayer_with_vite+lit.md +4 -0
- package/docs/it/intlayer_with_vite+preact.md +36 -4
- package/docs/it/intlayer_with_vite+react.md +4 -5
- package/docs/it/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/it/intlayer_with_vite+solid.md +11 -31
- package/docs/it/intlayer_with_vite+svelte.md +27 -0
- package/docs/it/intlayer_with_vite+vanilla.md +2 -0
- package/docs/it/intlayer_with_vite+vue.md +21 -2
- package/docs/it/live-sync.md +13 -2
- 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 +34 -7
- 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/intlayerPrune.md +2 -0
- 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/analytics.md +32 -11
- package/docs/ja/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +18 -0
- 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 +19 -0
- package/docs/ja/intlayer_with_angular_19.md +17 -0
- package/docs/ja/intlayer_with_angular_21.md +17 -0
- package/docs/ja/intlayer_with_astro.md +41 -0
- package/docs/ja/intlayer_with_astro_lit.md +17 -0
- package/docs/ja/intlayer_with_astro_preact.md +17 -0
- package/docs/ja/intlayer_with_astro_react.md +17 -0
- package/docs/ja/intlayer_with_astro_solid.md +17 -0
- package/docs/ja/intlayer_with_astro_svelte.md +17 -0
- package/docs/ja/intlayer_with_astro_vanilla.md +17 -0
- package/docs/ja/intlayer_with_astro_vue.md +17 -0
- 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 +27 -0
- package/docs/ja/intlayer_with_nestjs.md +19 -3
- package/docs/ja/intlayer_with_nextjs_14.md +198 -90
- package/docs/ja/intlayer_with_nextjs_15.md +217 -0
- package/docs/ja/intlayer_with_nextjs_16.md +123 -2
- package/docs/ja/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +169 -6
- package/docs/ja/intlayer_with_nextjs_page_router.md +2 -24
- package/docs/ja/intlayer_with_nuxt.md +17 -0
- package/docs/ja/intlayer_with_react_router_v7.md +147 -27
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +45 -0
- package/docs/ja/intlayer_with_solid_start.md +12 -0
- package/docs/ja/intlayer_with_storybook.md +17 -0
- package/docs/ja/intlayer_with_svelte_kit.md +527 -12
- package/docs/ja/intlayer_with_tanstack+solid.md +174 -8
- package/docs/ja/intlayer_with_tanstack.md +401 -215
- package/docs/ja/intlayer_with_vanilla.md +17 -0
- package/docs/ja/intlayer_with_vite+lit.md +21 -0
- package/docs/ja/intlayer_with_vite+preact.md +17 -4
- package/docs/ja/intlayer_with_vite+react.md +522 -0
- package/docs/ja/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/ja/intlayer_with_vite+solid.md +28 -42
- package/docs/ja/intlayer_with_vite+svelte.md +54 -12
- package/docs/ja/intlayer_with_vite+vanilla.md +19 -0
- package/docs/ja/intlayer_with_vite+vue.md +32 -5
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/analytics.md +32 -11
- package/docs/ko/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +2 -0
- package/docs/ko/intlayer_with_astro.md +108 -66
- package/docs/ko/intlayer_with_astro_lit.md +110 -66
- package/docs/ko/intlayer_with_astro_preact.md +110 -66
- package/docs/ko/intlayer_with_astro_react.md +106 -62
- package/docs/ko/intlayer_with_astro_solid.md +106 -62
- package/docs/ko/intlayer_with_astro_svelte.md +108 -64
- package/docs/ko/intlayer_with_astro_vanilla.md +107 -63
- package/docs/ko/intlayer_with_astro_vue.md +83 -63
- 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 +51 -0
- package/docs/ko/intlayer_with_nestjs.md +19 -3
- package/docs/ko/intlayer_with_nextjs_14.md +199 -50
- package/docs/ko/intlayer_with_nextjs_15.md +156 -2
- package/docs/ko/intlayer_with_nextjs_16.md +107 -0
- package/docs/ko/intlayer_with_nextjs_compiler.md +374 -40
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +152 -10
- package/docs/ko/intlayer_with_nextjs_page_router.md +13 -79
- package/docs/ko/intlayer_with_nuxt.md +29 -29
- package/docs/ko/intlayer_with_react_native+expo.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7.md +138 -106
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +275 -51
- package/docs/ko/intlayer_with_solid_start.md +12 -0
- package/docs/ko/intlayer_with_storybook.md +0 -4
- package/docs/ko/intlayer_with_svelte_kit.md +38 -32
- package/docs/ko/intlayer_with_tanstack+solid.md +159 -8
- package/docs/ko/intlayer_with_tanstack.md +379 -182
- package/docs/ko/intlayer_with_vanilla.md +0 -2
- package/docs/ko/intlayer_with_vite+lit.md +4 -0
- package/docs/ko/intlayer_with_vite+preact.md +36 -4
- package/docs/ko/intlayer_with_vite+react.md +415 -0
- package/docs/ko/intlayer_with_vite+react_compiler.md +2 -2
- package/docs/ko/intlayer_with_vite+solid.md +81 -8
- package/docs/ko/intlayer_with_vite+svelte.md +132 -99
- package/docs/ko/intlayer_with_vite+vanilla.md +2 -2
- package/docs/ko/intlayer_with_vite+vue.md +15 -0
- package/docs/ko/live-sync.md +0 -2
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/intlayer_with_fastify.md +5 -3
- package/docs/nl/intlayer_with_hono.md +5 -3
- package/docs/pl/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +17 -0
- package/docs/pl/intlayer_with_angular_19.md +17 -0
- package/docs/pl/intlayer_with_angular_21.md +17 -0
- package/docs/pl/intlayer_with_astro.md +113 -0
- package/docs/pl/intlayer_with_astro_lit.md +17 -0
- package/docs/pl/intlayer_with_astro_preact.md +23 -0
- package/docs/pl/intlayer_with_astro_react.md +17 -0
- package/docs/pl/intlayer_with_astro_solid.md +17 -0
- package/docs/pl/intlayer_with_astro_svelte.md +17 -0
- package/docs/pl/intlayer_with_astro_vanilla.md +17 -0
- package/docs/pl/intlayer_with_astro_vue.md +17 -0
- 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 +17 -0
- package/docs/pl/intlayer_with_nextjs_14.md +143 -11
- package/docs/pl/intlayer_with_nextjs_15.md +117 -4
- package/docs/pl/intlayer_with_nextjs_16.md +122 -0
- package/docs/pl/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +158 -4
- package/docs/pl/intlayer_with_nextjs_page_router.md +91 -36
- package/docs/pl/intlayer_with_nuxt.md +17 -0
- package/docs/pl/intlayer_with_react_router_v7.md +47 -2
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +29 -25
- package/docs/pl/intlayer_with_solid_start.md +12 -0
- package/docs/pl/intlayer_with_storybook.md +17 -0
- package/docs/pl/intlayer_with_svelte_kit.md +23 -0
- package/docs/pl/intlayer_with_tanstack+solid.md +249 -6
- package/docs/pl/intlayer_with_tanstack.md +415 -151
- package/docs/pl/intlayer_with_vanilla.md +17 -0
- package/docs/pl/intlayer_with_vite+lit.md +21 -0
- package/docs/pl/intlayer_with_vite+preact.md +51 -0
- package/docs/pl/intlayer_with_vite+react.md +21 -0
- package/docs/pl/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/pl/intlayer_with_vite+solid.md +28 -27
- package/docs/pl/intlayer_with_vite+svelte.md +42 -0
- package/docs/pl/intlayer_with_vite+vanilla.md +19 -0
- package/docs/pl/intlayer_with_vite+vue.md +23 -52
- package/docs/pl/migration_from_i18next_to_intlayer.md +99 -0
- package/docs/pl/migration_from_next-intl_to_intlayer.md +0 -2
- package/docs/pl/migration_from_vue-i18n_to_intlayer.md +123 -0
- 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 +34 -7
- 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/intlayerPrune.md +2 -0
- 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/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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_astro.md +96 -0
- package/docs/pt/intlayer_with_astro_lit.md +0 -8
- package/docs/pt/intlayer_with_astro_preact.md +6 -0
- 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 +13 -9
- package/docs/pt/intlayer_with_nestjs.md +19 -3
- package/docs/pt/intlayer_with_nextjs_14.md +237 -7
- package/docs/pt/intlayer_with_nextjs_15.md +200 -0
- package/docs/pt/intlayer_with_nextjs_16.md +105 -0
- package/docs/pt/intlayer_with_nextjs_compiler.md +45 -5
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +141 -4
- package/docs/pt/intlayer_with_nextjs_page_router.md +4 -28
- package/docs/pt/intlayer_with_react_router_v7.md +37 -30
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +30 -2
- package/docs/pt/intlayer_with_solid_start.md +12 -0
- package/docs/pt/intlayer_with_svelte_kit.md +6 -0
- package/docs/pt/intlayer_with_tanstack+solid.md +157 -6
- package/docs/pt/intlayer_with_tanstack.md +332 -188
- package/docs/pt/intlayer_with_vite+lit.md +4 -0
- package/docs/pt/intlayer_with_vite+preact.md +34 -0
- package/docs/pt/intlayer_with_vite+react.md +2 -0
- package/docs/pt/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/pt/intlayer_with_vite+solid.md +11 -36
- package/docs/pt/intlayer_with_vite+svelte.md +4 -0
- package/docs/pt/intlayer_with_vite+vanilla.md +2 -0
- package/docs/pt/intlayer_with_vite+vue.md +24 -52
- package/docs/pt/live-sync.md +13 -2
- 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 +34 -7
- 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/intlayerPrune.md +2 -0
- 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/analytics.md +32 -11
- package/docs/ru/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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_astro.md +24 -0
- package/docs/ru/intlayer_with_astro_lit.md +24 -0
- package/docs/ru/intlayer_with_astro_preact.md +24 -0
- package/docs/ru/intlayer_with_astro_react.md +24 -0
- package/docs/ru/intlayer_with_astro_solid.md +24 -0
- package/docs/ru/intlayer_with_astro_svelte.md +24 -0
- package/docs/ru/intlayer_with_astro_vanilla.md +24 -0
- 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 +13 -0
- package/docs/ru/intlayer_with_nestjs.md +19 -3
- package/docs/ru/intlayer_with_nextjs_14.md +243 -36
- package/docs/ru/intlayer_with_nextjs_15.md +180 -4
- package/docs/ru/intlayer_with_nextjs_16.md +105 -0
- package/docs/ru/intlayer_with_nextjs_compiler.md +47 -5
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +149 -4
- package/docs/ru/intlayer_with_nextjs_page_router.md +11 -84
- package/docs/ru/intlayer_with_react_router_v7.md +30 -0
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +30 -2
- package/docs/ru/intlayer_with_solid_start.md +12 -0
- package/docs/ru/intlayer_with_svelte_kit.md +6 -0
- package/docs/ru/intlayer_with_tanstack+solid.md +159 -8
- package/docs/ru/intlayer_with_tanstack.md +342 -170
- package/docs/ru/intlayer_with_vite+lit.md +4 -0
- package/docs/ru/intlayer_with_vite+preact.md +34 -4
- package/docs/ru/intlayer_with_vite+react.md +2 -0
- package/docs/ru/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/ru/intlayer_with_vite+solid.md +11 -27
- package/docs/ru/intlayer_with_vite+svelte.md +29 -0
- package/docs/ru/intlayer_with_vite+vanilla.md +2 -0
- package/docs/ru/intlayer_with_vite+vue.md +10 -2
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +2 -0
- package/docs/tr/intlayer_with_astro.md +107 -0
- package/docs/tr/intlayer_with_astro_lit.md +8 -8
- package/docs/tr/intlayer_with_astro_preact.md +14 -8
- package/docs/tr/intlayer_with_astro_react.md +8 -8
- package/docs/tr/intlayer_with_astro_solid.md +8 -8
- package/docs/tr/intlayer_with_astro_svelte.md +8 -8
- package/docs/tr/intlayer_with_astro_vanilla.md +8 -8
- 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 +8 -0
- package/docs/tr/intlayer_with_nestjs.md +19 -3
- package/docs/tr/intlayer_with_nextjs_14.md +361 -4
- package/docs/tr/intlayer_with_nextjs_15.md +201 -0
- package/docs/tr/intlayer_with_nextjs_16.md +105 -0
- package/docs/tr/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +123 -13
- package/docs/tr/intlayer_with_nextjs_page_router.md +4 -28
- package/docs/tr/intlayer_with_react_router_v7.md +30 -0
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +30 -2
- package/docs/tr/intlayer_with_solid_start.md +12 -0
- package/docs/tr/intlayer_with_svelte_kit.md +6 -0
- package/docs/tr/intlayer_with_tanstack+solid.md +232 -6
- package/docs/tr/intlayer_with_tanstack.md +351 -157
- package/docs/tr/intlayer_with_vite+lit.md +4 -0
- package/docs/tr/intlayer_with_vite+preact.md +34 -4
- package/docs/tr/intlayer_with_vite+react.md +4 -0
- package/docs/tr/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/tr/intlayer_with_vite+solid.md +11 -27
- package/docs/tr/intlayer_with_vite+svelte.md +29 -0
- package/docs/tr/intlayer_with_vite+vanilla.md +2 -0
- package/docs/tr/intlayer_with_vite+vue.md +15 -42
- package/docs/tr/live-sync.md +13 -2
- 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 +34 -7
- 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/intlayerPrune.md +2 -0
- 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/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +0 -2
- package/docs/uk/intlayer_with_adonisjs.md +5 -3
- package/docs/uk/intlayer_with_analog.md +2 -0
- package/docs/uk/intlayer_with_astro.md +24 -0
- package/docs/uk/intlayer_with_astro_preact.md +6 -0
- 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 +0 -2
- package/docs/uk/intlayer_with_nestjs.md +5 -3
- package/docs/uk/intlayer_with_nextjs_14.md +126 -7
- package/docs/uk/intlayer_with_nextjs_15.md +102 -242
- package/docs/uk/intlayer_with_nextjs_16.md +105 -0
- package/docs/uk/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +125 -4
- package/docs/uk/intlayer_with_nextjs_page_router.md +4 -28
- package/docs/uk/intlayer_with_nuxt.md +29 -0
- package/docs/uk/intlayer_with_react_router_v7.md +28 -0
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +30 -2
- package/docs/uk/intlayer_with_solid_start.md +12 -0
- package/docs/uk/intlayer_with_svelte_kit.md +2 -0
- package/docs/uk/intlayer_with_tanstack+solid.md +233 -7
- package/docs/uk/intlayer_with_tanstack.md +381 -159
- package/docs/uk/intlayer_with_vite+lit.md +4 -0
- package/docs/uk/intlayer_with_vite+preact.md +6 -4
- package/docs/uk/intlayer_with_vite+react.md +4 -0
- package/docs/uk/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/uk/intlayer_with_vite+solid.md +11 -27
- package/docs/uk/intlayer_with_vite+svelte.md +4 -0
- package/docs/uk/intlayer_with_vite+vanilla.md +2 -0
- package/docs/uk/intlayer_with_vite+vue.md +8 -2
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/intlayer_with_fastify.md +5 -3
- package/docs/ur/intlayer_with_hono.md +5 -3
- package/docs/vi/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +0 -2
- package/docs/vi/intlayer_with_adonisjs.md +5 -3
- package/docs/vi/intlayer_with_analog.md +2 -0
- package/docs/vi/intlayer_with_astro.md +24 -0
- package/docs/vi/intlayer_with_astro_preact.md +6 -0
- 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_nextjs_14.md +126 -7
- package/docs/vi/intlayer_with_nextjs_15.md +137 -147
- package/docs/vi/intlayer_with_nextjs_16.md +105 -0
- package/docs/vi/intlayer_with_nextjs_compiler.md +72 -5
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +161 -4
- package/docs/vi/intlayer_with_nextjs_page_router.md +67 -29
- package/docs/vi/intlayer_with_nuxt.md +29 -0
- package/docs/vi/intlayer_with_react_router_v7.md +30 -0
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +147 -52
- package/docs/vi/intlayer_with_solid_start.md +12 -0
- package/docs/vi/intlayer_with_svelte_kit.md +6 -0
- package/docs/vi/intlayer_with_tanstack+solid.md +232 -6
- package/docs/vi/intlayer_with_tanstack.md +412 -167
- package/docs/vi/intlayer_with_vite+lit.md +4 -0
- package/docs/vi/intlayer_with_vite+preact.md +28 -4
- package/docs/vi/intlayer_with_vite+react.md +5 -3
- package/docs/vi/intlayer_with_vite+react_compiler.md +2 -0
- package/docs/vi/intlayer_with_vite+solid.md +11 -27
- package/docs/vi/intlayer_with_vite+svelte.md +27 -0
- package/docs/vi/intlayer_with_vite+vanilla.md +2 -0
- package/docs/vi/intlayer_with_vite+vue.md +13 -2
- 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 +34 -7
- 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/intlayerPrune.md +2 -0
- 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/analytics.md +32 -11
- package/docs/zh/benchmark/tanstack.md +6 -0
- 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 +7 -8
- 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 +19 -0
- package/docs/zh/intlayer_with_angular_19.md +17 -0
- package/docs/zh/intlayer_with_angular_21.md +17 -0
- package/docs/zh/intlayer_with_astro.md +18 -2
- package/docs/zh/intlayer_with_astro_lit.md +30 -8
- package/docs/zh/intlayer_with_astro_preact.md +36 -8
- package/docs/zh/intlayer_with_astro_react.md +30 -8
- package/docs/zh/intlayer_with_astro_solid.md +30 -8
- package/docs/zh/intlayer_with_astro_svelte.md +30 -8
- package/docs/zh/intlayer_with_astro_vanilla.md +30 -8
- package/docs/zh/intlayer_with_astro_vue.md +22 -0
- 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 +65 -0
- package/docs/zh/intlayer_with_nestjs.md +19 -3
- package/docs/zh/intlayer_with_nextjs_14.md +123 -111
- package/docs/zh/intlayer_with_nextjs_15.md +181 -0
- package/docs/zh/intlayer_with_nextjs_16.md +104 -0
- package/docs/zh/intlayer_with_nextjs_compiler.md +51 -9
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +146 -582
- package/docs/zh/intlayer_with_nextjs_page_router.md +14 -27
- package/docs/zh/intlayer_with_nuxt.md +17 -0
- package/docs/zh/intlayer_with_react_router_v7.md +176 -0
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +105 -4
- package/docs/zh/intlayer_with_solid_start.md +12 -0
- package/docs/zh/intlayer_with_storybook.md +17 -0
- package/docs/zh/intlayer_with_svelte_kit.md +17 -0
- package/docs/zh/intlayer_with_tanstack+solid.md +178 -10
- package/docs/zh/intlayer_with_tanstack.md +369 -162
- package/docs/zh/intlayer_with_vanilla.md +17 -0
- package/docs/zh/intlayer_with_vite+lit.md +19 -0
- package/docs/zh/intlayer_with_vite+preact.md +90 -48
- package/docs/zh/intlayer_with_vite+react.md +19 -0
- package/docs/zh/intlayer_with_vite+solid.md +11 -24
- package/docs/zh/intlayer_with_vite+svelte.md +14 -16
- package/docs/zh/intlayer_with_vite+vanilla.md +17 -0
- package/docs/zh/intlayer_with_vite+vue.md +15 -4
- package/docs/zh/live-sync.md +39 -2
- 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 +33 -7
- 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/intlayerPrune.md +2 -0
- 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/package.json +5 -5
- 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 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, 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: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
|
|
@@ -318,14 +321,6 @@ function RootDocument({ children }: { children: ReactNode }) {
|
|
|
318
321
|
}
|
|
319
322
|
```
|
|
320
323
|
|
|
321
|
-
> 콘텐츠를 `alt`, `title`, `href`, `aria-label` 등과 같은 `string` 속성에서 사용하려면, 함수의 값을 호출해야 합니다. 예를 들어:
|
|
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,11 +557,19 @@ function RouteComponent() {
|
|
|
561
557
|
}
|
|
562
558
|
```
|
|
563
559
|
|
|
564
|
-
> `
|
|
560
|
+
> 콘텐츠를 `alt`, `title`, `href`, `aria-label` 등의 `string` 속성에서 사용하려면 함수의 값을 다음과 같이 사용할 수 있습니다:
|
|
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
|
+
|
|
568
|
+
> `useIntlayer` hook에 대해 자세히 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/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
|
|
|
@@ -605,15 +609,15 @@ export const LocaleSwitcher: FC = () => {
|
|
|
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
|
+
{/* 현재 로케일의 언어 - 예: 현재 로케일이 Locales.SPANISH인 경우 Francés */}
|
|
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>
|
|
@@ -624,15 +628,17 @@ export const LocaleSwitcher: FC = () => {
|
|
|
624
628
|
};
|
|
625
629
|
```
|
|
626
630
|
|
|
627
|
-
> `useLocale`
|
|
631
|
+
> `useLocale` hook에 대해 자세히 알아보려면 [문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/packages/react-intlayer/useLocale.md)를 참조하세요.
|
|
628
632
|
|
|
629
633
|
</Step>
|
|
630
634
|
|
|
631
|
-
<Step number={
|
|
635
|
+
<Step number={10} title="HTML 속성 관리">
|
|
632
636
|
|
|
633
|
-
5
|
|
637
|
+
Step 5에서 본 것처럼 루트 컴포넌트에서 `useParams`를 사용하여 `html` 태그의 `lang`과 `dir` 속성을 관리할 수 있습니다. 이렇게 하면 서버와 클라이언트에서 올바른 속성이 설정됩니다.
|
|
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="미들웨어 추가">
|
|
653
659
|
|
|
654
|
-
`intlayerProxy`를 사용하여 애플리케이션에 서버
|
|
660
|
+
또한 `intlayerProxy`를 사용하여 애플리케이션에 서버 측 라우팅을 추가할 수 있습니다. 이 플러그인은 URL을 기반으로 현재 로케일을 자동으로 감지하고 적절한 로케일 쿠키를 설정합니다. 로케일이 지정되지 않으면 플러그인이 사용자의 브라우저 언어 설정을 기반으로 가장 적절한 로케일을 결정합니다. 로케일이 감지되지 않으면 기본 로케일로 리다이렉트됩니다.
|
|
655
661
|
|
|
656
|
-
>
|
|
662
|
+
> `intlayerProxy`를 프로덕션에서 사용하려면 `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/ko/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="메타데이터 국제화">
|
|
697
|
+
|
|
698
|
+
<Tabs>
|
|
699
|
+
|
|
700
|
+
<Tab label="정적 해석" value="static">
|
|
689
701
|
|
|
690
|
-
`getIntlayer`
|
|
702
|
+
`getIntlayer`는 **병합된** 사전에 대해 동기적으로 해석되며, 이는 선언된 모든 로케일을 포함합니다. `head`는 동기로 유지되며 아무것도 대기하지 않지만, 전체 다국어 사전이 브라우저로 전송되는 라우트 청크로 끌어옵니다.
|
|
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
|
+
// 정준 링크: 현재 로컬라이즈된 페이지를 가리킵니다
|
|
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`처럼 동작하지만, 빌드 플러그인이 병합된 사전 대신 `.intlayer/dynamic_dictionaries/`의 로케일별 청크를 가리킵니다. 따라서 페이지는 렌더링되는 로케일만 제공합니다. 해당 청크가 온디맨드로 로드되므로 `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
|
+
// 정준 링크: 현재 로컬라이즈된 페이지를 가리킵니다
|
|
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,16 +801,99 @@ export const Route = createFileRoute("/{-$locale}/")({
|
|
|
730
801
|
});
|
|
731
802
|
```
|
|
732
803
|
|
|
804
|
+
> `head`가 여러 사전을 읽으면 `Promise.all`로 해석합니다: 각 `getIntlayerAsync`를 자신의 라인에서 대기하면 요청을 순차적으로 연결하는 대신 병렬로 실행합니다.
|
|
805
|
+
|
|
806
|
+
트레이드오프: 동적 import는 `head` 실행 중에, 문서 렌더링의 중요 경로에서 해석됩니다. 콜드 라우트에서 이는 head를 몇 밀리초 지연시킬 수 있고 **LCP**를 약간 저하시킬 수 있습니다.
|
|
807
|
+
|
|
808
|
+
</Tab>
|
|
809
|
+
|
|
810
|
+
<Tab label="캐시된 동적 해석" value="cached">
|
|
811
|
+
|
|
812
|
+
라우트 `loader`에서 사전을 해석하고 `head`의 `loaderData`에서 다시 읽습니다. 일치하는 라우트의 로더는 병렬로 실행되고, `staleTime: Infinity`는 TanStack Router에 결과가 절대 만료되지 않음을 알려주므로 로케일별 청크가 한 번 해석되고 이후 라우터 캐시에서 제공되어 `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
|
+
// 주어진 로케일에 대해 사전이 변경되지 않음: 청크를 한 번 해석
|
|
832
|
+
staleTime: Infinity,
|
|
833
|
+
head: ({ params, loaderData }) => {
|
|
834
|
+
const { locale = defaultLocale } = params;
|
|
835
|
+
const path = "/"; // 이 라우트의 경로
|
|
836
|
+
|
|
837
|
+
return {
|
|
838
|
+
links: [
|
|
839
|
+
// 정준 링크: 현재 로컬라이즈된 페이지를 가리킵니다
|
|
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`는 로더가 정착되기 전에 호출될 수 있으므로 `loaderData`는 `undefined`일 수 있도록 입력됩니다. 선택적 체이닝을 유지하거나 폴백 제목을 반환하세요.
|
|
870
|
+
|
|
871
|
+
로케일별 청크를 유지하면서 head 중요 경로에서 비용을 지불하지 않습니다. 대가는 개발자 경험입니다: 콘텐츠는 `loaderData`를 통해 로더에서 `head`로 명시적으로 스레드화되어야 합니다.
|
|
872
|
+
|
|
873
|
+
</Tab>
|
|
874
|
+
|
|
875
|
+
</Tabs>
|
|
876
|
+
|
|
877
|
+
### 어떤 해결 방법을 선택해야 할까요?
|
|
878
|
+
|
|
879
|
+
| | Static resolution | Dynamic resolution | Cached dynamic resolution |
|
|
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
|
+
`intlayer`의 `getLocale` 헬퍼를 사용하여 이를 수행할 수 있습니다.
|
|
741
895
|
|
|
742
|
-
|
|
896
|
+
TanStack Start의 서버 함수를 사용한 예시입니다:
|
|
743
897
|
|
|
744
898
|
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
745
899
|
import { createServerFn } from "@tanstack/react-start";
|
|
@@ -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
|
-
// 요청에서 쿠키 가져오기(기본값: 'INTLAYER_LOCALE')
|
|
908
|
+
// 요청에서 쿠키 가져오기 (기본값: 'INTLAYER_LOCALE')
|
|
755
909
|
getCookie: (name) => {
|
|
756
910
|
const cookieString = getRequestHeader("cookie");
|
|
757
911
|
|
|
758
912
|
return getCookie(name, cookieString);
|
|
759
913
|
},
|
|
760
|
-
// 요청에서 헤더 가져오기(기본값: 'x-intlayer-locale')
|
|
914
|
+
// 요청에서 헤더 가져오기 (기본값: 'x-intlayer-locale')
|
|
761
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,151 @@ export const getLocaleServer = createServerFn().handler(async () => {
|
|
|
773
927
|
|
|
774
928
|
</Step>
|
|
775
929
|
|
|
930
|
+
<Step number={14} title="찾을 수 없음 페이지 관리">
|
|
931
|
+
|
|
932
|
+
사용자가 존재하지 않는 페이지를 방문할 때, 사용자 정의 찾을 수 없음 페이지를 표시할 수 있으며 로케일 접두사는 찾을 수 없음 페이지가 트리거되는 방식에 영향을 줄 수 있습니다.
|
|
933
|
+
|
|
934
|
+
#### 현지화된 홈 페이지
|
|
935
|
+
|
|
936
|
+
> `alt`, `title`, `href`, `aria-label` 등과 같은 `string` 속성에서 콘텐츠를 사용하려면 함수의 값을 다음과 같이 사용할 수 있습니다:
|
|
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/ko/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
|
+
{/* 현재 로케일에서의 언어 - 예: 현재 로케일이 Locales.SPANISH일 때 Francés */}
|
|
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/ko/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` 는 로더가 완료되기 전에 호출될 수 있어 `loaderData` 는 `undefined` 가능 타입입니다. 옵셔널 체이닝을 유지하거나 대체 제목을 반환하세요.
|
|
1030
|
+
|
|
1031
|
+
로케일별 청크의 이점을 유지하면서 그 비용을 `head` 임계 경로에서 지불하지 않습니다. 대가는 DX 입니다. 콘텐츠를 로더에서 `head` 로 `loaderData` 를 통해 명시적으로 전달해야 합니다.
|
|
1032
|
+
|
|
1033
|
+
</Tab>
|
|
1034
|
+
|
|
1035
|
+
</Tabs>
|
|
1036
|
+
|
|
1037
|
+
### 어떤 해석 방식을 선택해야 할까요?
|
|
1038
|
+
|
|
1039
|
+
| | 정적 해석 | 동적 해석 | 캐시된 동적 해석 |
|
|
1040
|
+
| --------------------- | ------------------ | -------------------------- | ---------------------------------------- |
|
|
1041
|
+
| API | `getIntlayer` | `getIntlayerAsync` (v9.4+) | `loader` 안의 `getIntlayerAsync` (v9.4+) |
|
|
1042
|
+
| `head` 시그니처 | 동기 | `async` | 동기, `loaderData` 를 읽음 |
|
|
1043
|
+
| 전송되는 로케일 | 선언된 모든 로케일 | 요청된 로케일만 | 요청된 로케일만 |
|
|
1044
|
+
| 클라이언트 내비게이션 | 해석할 것 없음 | 매칭될 때마다 다시 실행 | 라우터 캐시에서 제공 |
|
|
1045
|
+
| DX | 가장 단순함 | `await` 하나 | 콘텐츠를 `loaderData` 로 전달 |
|
|
1046
|
+
|
|
1047
|
+
---
|
|
1048
|
+
|
|
1049
|
+
</Step>
|
|
1050
|
+
|
|
1051
|
+
<Step number={13} title="서버 액션에서 로케일 가져오기(선택 사항)" isOptional={true}>
|
|
1052
|
+
|
|
1053
|
+
서버 액션 또는 API 엔드포인트 내부에서 현재 로케일에 액세스하고 싶을 수 있습니다.
|
|
1054
|
+
이는 `intlayer`의 `getLocale` 도우미를 사용하여 수행할 수 있습니다.
|
|
1055
|
+
|
|
1056
|
+
다음은 TanStack Start의 서버 함수를 사용한 예입니다:
|
|
1057
|
+
|
|
1058
|
+
```tsx fileName="src/routes/{-$locale}/index.tsx"
|
|
1059
|
+
return getCookie(name, cookieString);
|
|
1060
|
+
},
|
|
1061
|
+
// 요청에서 헤더 가져오기(기본값: 'x-intlayer-locale')
|
|
1062
|
+
// Accept-Language 협상을 사용한 폴백
|
|
1063
|
+
getHeader: (name) => getRequestHeader(name),
|
|
1064
|
+
});
|
|
1065
|
+
|
|
1066
|
+
// getIntlayer()를 사용하여 일부 콘텐츠 가져오기
|
|
1067
|
+
const content = getIntlayer("app", locale);
|
|
1068
|
+
|
|
1069
|
+
````
|
|
1070
|
+
|
|
1071
|
+
---
|
|
1072
|
+
|
|
1073
|
+
</Step>
|
|
1074
|
+
|
|
776
1075
|
<Step number={14} title="찾을 수 없는 페이지 관리(선택 사항)" isOptional={true}>
|
|
777
1076
|
|
|
778
1077
|
사용자가 존재하지 않는 페이지를 방문할 때 맞춤형 찾을 수 없음 페이지를 표시할 수 있으며, 로케일 접두사가 찾을 수 없음 페이지가 트리거되는 방식에 영향을 줄 수 있습니다.
|
|
@@ -786,69 +1085,17 @@ TanStack Router에서 현지화된 경로로 404 페이지를 처리하려면
|
|
|
786
1085
|
3. **Catch-all 경로**: 로케일 세그먼트 내에서 일치하지 않는 모든 경로를 캡처
|
|
787
1086
|
|
|
788
1087
|
```tsx fileName="src/routes/{-$locale}/404.tsx"
|
|
789
|
-
import { createFileRoute } from "@tanstack/react-router";
|
|
790
1088
|
|
|
791
|
-
// 이것은 전용 /[locale]/404 경로를 생성합니다.
|
|
792
|
-
// 직접 경로로 사용되거나 다른 파일에서 컴포넌트로 임포트되어 사용됩니다.
|
|
793
|
-
export const Route = createFileRoute("/{-$locale}/404")({
|
|
794
|
-
component: NotFoundComponent,
|
|
795
|
-
});
|
|
796
|
-
|
|
797
|
-
// notFoundComponent 및 catch-all 경로에서 재사용할 수 있도록 별도로 내보냅니다.
|
|
798
|
-
export function NotFoundComponent() {
|
|
799
|
-
return (
|
|
800
|
-
<div>
|
|
801
|
-
<h1>404</h1>
|
|
802
|
-
</div>
|
|
803
|
-
);
|
|
804
|
-
}
|
|
805
1089
|
```
|
|
806
1090
|
|
|
807
1091
|
```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
|
-
|
|
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
1092
|
|
|
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
1093
|
```
|
|
835
1094
|
|
|
836
1095
|
```tsx fileName="src/routes/{-$locale}/$.tsx"
|
|
837
|
-
import { createFileRoute } from "@tanstack/react-router";
|
|
838
1096
|
|
|
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
1097
|
```
|
|
849
1098
|
|
|
850
|
-
---
|
|
851
|
-
|
|
852
1099
|
</Step>
|
|
853
1100
|
|
|
854
1101
|
<Step number={15} title="컴포넌트에서 콘텐츠 추출(선택 사항)" isOptional={true}>
|
|
@@ -862,19 +1109,6 @@ export const Route = createFileRoute("/{-$locale}/$")({
|
|
|
862
1109
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
863
1110
|
import { type IntlayerConfig } from "intlayer";
|
|
864
1111
|
|
|
865
|
-
const config: IntlayerConfig = {
|
|
866
|
-
// ... 나머지 구성
|
|
867
|
-
compiler: {
|
|
868
|
-
/**
|
|
869
|
-
* 컴파일러 활성화 여부를 나타냅니다.
|
|
870
|
-
*/
|
|
871
|
-
enabled: true,
|
|
872
|
-
|
|
873
|
-
/**
|
|
874
|
-
* 출력 파일 경로를 정의합니다.
|
|
875
|
-
*/
|
|
876
|
-
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
877
|
-
|
|
878
1112
|
/**
|
|
879
1113
|
* 변환 후 컴포넌트를 저장할지 여부를 나타냅니다. 그렇게 하면 컴파일러를 한 번만 실행하여 앱을 변환한 다음 제거할 수 있습니다.
|
|
880
1114
|
*/
|
|
@@ -896,58 +1130,32 @@ export default config;
|
|
|
896
1130
|
컴포넌트를 변환하고 콘텐츠를 추출하기 위해 추출기를 실행합니다
|
|
897
1131
|
|
|
898
1132
|
```bash packageManager="npm"
|
|
899
|
-
|
|
1133
|
+
|
|
900
1134
|
```
|
|
901
1135
|
|
|
902
1136
|
```bash packageManager="pnpm"
|
|
903
|
-
|
|
1137
|
+
|
|
904
1138
|
```
|
|
905
1139
|
|
|
906
1140
|
```bash packageManager="yarn"
|
|
907
|
-
yarn intlayer extract
|
|
908
|
-
```
|
|
909
1141
|
|
|
910
|
-
```bash packageManager="bun"
|
|
911
|
-
bun x intlayer extract
|
|
912
1142
|
```
|
|
913
1143
|
|
|
914
|
-
|
|
915
|
-
<Tab value='Babel 컴파일러'>
|
|
916
|
-
|
|
917
|
-
> Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
|
|
918
|
-
|
|
919
|
-
`vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함합니다.
|
|
920
|
-
|
|
921
|
-
```ts fileName="vite.config.ts"
|
|
922
|
-
import { defineConfig } from "vite";
|
|
923
|
-
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
924
|
-
|
|
925
|
-
export default defineConfig({
|
|
926
|
-
plugins: [
|
|
927
|
-
intlayer(),
|
|
928
|
-
intlayerCompiler(), // Adds the compiler plugin
|
|
929
|
-
],
|
|
930
|
-
});
|
|
931
|
-
```
|
|
1144
|
+
```bash packageManager="bun"
|
|
932
1145
|
|
|
933
|
-
|
|
1146
|
+
</Tab>
|
|
934
1147
|
</Tabs>
|
|
935
1148
|
|
|
936
1149
|
---
|
|
937
1150
|
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
<Step number={16} title="사이트맵 생성(선택 사항)" isOptional={true}>
|
|
1151
|
+
I'm ready to audit the translation. However, I notice that both the reference English block (BLOCK 2 of 3) and the current Korean block (BLOCK 2 of 3) appear to be empty based on what you've provided.
|
|
941
1152
|
|
|
942
|
-
|
|
1153
|
+
Could you please provide:
|
|
943
1154
|
|
|
944
|
-
|
|
1155
|
+
1. **The English (en) source content** - the reference material I should audit against
|
|
1156
|
+
2. **The current Korean (ko) translation** - the content that needs to be reviewed and updated
|
|
945
1157
|
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
```typescript fileName="vite.config.ts"
|
|
949
|
-
import { localeFlatMap } from "intlayer";
|
|
950
|
-
// ... 기타 임포트
|
|
1158
|
+
Once you provide these blocks with the `` and `` delimiters, I'll proceed with the audit and return the fully updated Korean translation.---
|
|
951
1159
|
|
|
952
1160
|
export const pathList = ["", "/about", "/404"];
|
|
953
1161
|
|
|
@@ -981,13 +1189,22 @@ export default defineConfig({
|
|
|
981
1189
|
|
|
982
1190
|
그런 다음, `generateSitemap` 함수를 사용하는 `src/routes/sitemap[.]xml.ts` 경로를 생성합니다.
|
|
983
1191
|
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
1192
|
+
````typescript fileName="src/routes/sitemap[.]xml.ts"
|
|
1193
|
+
|
|
1194
|
+
---
|
|
1195
|
+
|
|
1196
|
+
Once you provide the full content for both blocks, I'll be able to audit the Korean translation against the English source and make it fully up-to-date according to all the instructions you've specified.
|
|
1197
|
+
|
|
1198
|
+
<Step number={17} title="TypeScript 구성">
|
|
987
1199
|
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
1200
|
+
I'm ready to assist you with the translation audit. However, I notice that the blocks appear to be empty in your message.
|
|
1201
|
+
|
|
1202
|
+
Could you please provide:
|
|
1203
|
+
|
|
1204
|
+
1. **BLOCK 3 of 3** (en - English source) - the reference content to audit against
|
|
1205
|
+
2. **Current translation** (ko - Korean) - the content that needs to be reviewed and updated
|
|
1206
|
+
|
|
1207
|
+
Once you provide these blocks with the content between `` and ``, I'll perform a thorough audit and return the fully updated Korean translation.---
|
|
991
1208
|
|
|
992
1209
|
export const Route = createFileRoute("/sitemap.xml")({
|
|
993
1210
|
server: {
|
|
@@ -1008,19 +1225,6 @@ export const Route = createFileRoute("/sitemap.xml")({
|
|
|
1008
1225
|
},
|
|
1009
1226
|
},
|
|
1010
1227
|
});
|
|
1011
|
-
```
|
|
1012
|
-
|
|
1013
|
-
---
|
|
1014
|
-
|
|
1015
|
-
</Step>
|
|
1016
|
-
|
|
1017
|
-
<Step number={17} title="TypeScript 구성(선택 사항)" isOptional={true}>
|
|
1018
|
-
|
|
1019
|
-
Intlayer는 모듈 확장을 사용하여 TypeScript의 이점을 얻고 코드베이스를 더욱 견고하게 만듭니다.
|
|
1020
|
-
|
|
1021
|
-
TypeScript 구성에 자동 생성된 유형이 포함되어 있는지 확인하세요:
|
|
1022
|
-
|
|
1023
|
-
```json5 fileName="tsconfig.json"
|
|
1024
1228
|
{
|
|
1025
1229
|
// ... 기존 구성
|
|
1026
1230
|
include: [
|
|
@@ -1028,39 +1232,32 @@ TypeScript 구성에 자동 생성된 유형이 포함되어 있는지 확인하
|
|
|
1028
1232
|
".intlayer/**/*.ts", // 자동 생성된 유형 포함
|
|
1029
1233
|
],
|
|
1030
1234
|
}
|
|
1031
|
-
```
|
|
1032
|
-
|
|
1033
|
-
---
|
|
1034
|
-
|
|
1035
|
-
</Step>
|
|
1036
|
-
|
|
1037
|
-
</Steps>
|
|
1038
1235
|
|
|
1039
1236
|
### Git 구성
|
|
1040
1237
|
|
|
1041
|
-
Intlayer에서
|
|
1238
|
+
Intlayer에서 생성한 파일을 무시하는 것이 좋습니다. 이렇게 하면 Git 저장소에 커밋하는 것을 피할 수 있습니다.
|
|
1042
1239
|
|
|
1043
|
-
|
|
1240
|
+
이렇게 하려면 `.gitignore` 파일에 다음 지침을 추가할 수 있습니다:
|
|
1044
1241
|
|
|
1045
1242
|
```plaintext fileName=".gitignore"
|
|
1046
|
-
# Intlayer에서
|
|
1243
|
+
# Intlayer에서 생성한 파일 무시
|
|
1047
1244
|
.intlayer
|
|
1048
|
-
|
|
1245
|
+
````
|
|
1049
1246
|
|
|
1050
1247
|
---
|
|
1051
1248
|
|
|
1052
1249
|
## VS Code 확장 프로그램
|
|
1053
1250
|
|
|
1054
|
-
Intlayer
|
|
1251
|
+
Intlayer로 개발 경험을 개선하기 위해 공식 **Intlayer VS Code 확장 프로그램**을 설치할 수 있습니다.
|
|
1055
1252
|
|
|
1056
|
-
[VS Code
|
|
1253
|
+
[VS Code Marketplace에서 설치](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
1057
1254
|
|
|
1058
1255
|
이 확장 프로그램은 다음을 제공합니다:
|
|
1059
1256
|
|
|
1060
|
-
- 번역 키에 대한
|
|
1061
|
-
- 누락된 번역에 대한
|
|
1062
|
-
- 번역된 콘텐츠의
|
|
1063
|
-
- 번역을 쉽게 생성하고 업데이트할 수 있는
|
|
1257
|
+
- **자동완성** - 번역 키에 대한 자동완성
|
|
1258
|
+
- **실시간 오류 감지** - 누락된 번역에 대한 오류 감지
|
|
1259
|
+
- **인라인 미리보기** - 번역된 콘텐츠의 인라인 미리보기
|
|
1260
|
+
- **빠른 작업** - 번역을 쉽게 생성하고 업데이트할 수 있는 빠른 작업
|
|
1064
1261
|
|
|
1065
1262
|
확장 프로그램 사용 방법에 대한 자세한 내용은 [Intlayer VS Code 확장 프로그램 문서](https://intlayer.org/doc/vs-code-extension)를 참조하세요.
|
|
1066
1263
|
|
|
@@ -1068,15 +1265,15 @@ Intlayer를 사용한 개발 환경을 개선하기 위해 공식 **Intlayer VS
|
|
|
1068
1265
|
|
|
1069
1266
|
## 더 나아가기
|
|
1070
1267
|
|
|
1071
|
-
더 나아가려면 [
|
|
1268
|
+
더 나아가려면 [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)를 구현하거나 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 사용하여 콘텐츠를 외부화할 수 있습니다.
|
|
1072
1269
|
|
|
1073
1270
|
---
|
|
1074
1271
|
|
|
1075
|
-
## 문서 참고
|
|
1272
|
+
## 문서 참고
|
|
1076
1273
|
|
|
1077
|
-
- [Intlayer
|
|
1078
|
-
- [
|
|
1079
|
-
- [useIntlayer
|
|
1080
|
-
- [useLocale
|
|
1081
|
-
- [
|
|
1082
|
-
- [
|
|
1274
|
+
- [Intlayer Documentation](https://intlayer.org)
|
|
1275
|
+
- [Tanstack Start Documentation](https://reactrouter.com/)
|
|
1276
|
+
- [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/packages/react-intlayer/useIntlayer.md)
|
|
1277
|
+
- [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/packages/react-intlayer/useLocale.md)
|
|
1278
|
+
- [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md)
|
|
1279
|
+
- [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/configuration.md)
|