@intlayer/docs 9.1.3 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/index.md +1 -1
- package/blog/ar/rag_powered_documentation_assistant.md +7 -0
- package/blog/de/index.md +1 -1
- package/blog/de/rag_powered_documentation_assistant.md +6 -0
- package/blog/en/index.md +1 -1
- package/blog/en-GB/index.md +1 -1
- package/blog/en-GB/rag_powered_documentation_assistant.md +6 -0
- package/blog/es/index.md +1 -1
- package/blog/es/rag_powered_documentation_assistant.md +7 -0
- package/blog/fr/i18n_meaning.md +7 -1
- package/blog/fr/index.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/angular.md +5 -1
- package/blog/fr/rag_powered_documentation_assistant.md +6 -0
- package/blog/hi/index.md +1 -1
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +119 -42
- package/blog/hi/rag_powered_documentation_assistant.md +7 -0
- package/blog/id/index.md +1 -1
- package/blog/id/rag_powered_documentation_assistant.md +6 -0
- package/blog/it/index.md +1 -1
- package/blog/it/rag_powered_documentation_assistant.md +6 -0
- package/blog/ja/index.md +1 -1
- package/blog/ja/rag_powered_documentation_assistant.md +7 -0
- package/blog/ko/index.md +1 -1
- package/blog/ko/list_i18n_technologies/frameworks/react.md +7 -7
- package/blog/ko/rag_powered_documentation_assistant.md +6 -0
- package/blog/pl/index.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +6 -0
- package/blog/pt/index.md +1 -1
- package/blog/pt/rag_powered_documentation_assistant.md +6 -0
- package/blog/ru/index.md +1 -1
- package/blog/ru/rag_powered_documentation_assistant.md +7 -0
- package/blog/tr/intlayer_with_react-intl.md +3 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +175 -42
- package/blog/tr/rag_powered_documentation_assistant.md +6 -0
- package/blog/uk/index.md +1 -1
- package/blog/uk/rag_powered_documentation_assistant.md +6 -0
- package/blog/vi/index.md +1 -1
- package/blog/vi/rag_powered_documentation_assistant.md +6 -0
- package/blog/zh/index.md +1 -1
- package/blog/zh/intlayer_with_i18next.md +87 -28
- package/blog/zh/intlayer_with_next-i18next.md +86 -29
- package/blog/zh/intlayer_with_next-intl.md +88 -28
- package/blog/zh/intlayer_with_react-i18next.md +87 -28
- package/blog/zh/intlayer_with_react-intl.md +88 -27
- package/blog/zh/intlayer_with_vue-i18n.md +117 -8
- package/blog/zh/rag_powered_documentation_assistant.md +6 -0
- package/dist/cjs/common.cjs +24 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +58 -31
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +265 -218
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +48 -21
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +33 -6
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/common.mjs +24 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +58 -31
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +265 -218
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +48 -21
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +33 -6
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/analytics.md +222 -0
- package/docs/ar/autoFill.md +28 -9
- package/docs/ar/bundle_optimization.md +58 -25
- package/docs/ar/configuration.md +25 -8
- package/docs/ar/dictionary/file.md +3 -1
- package/docs/ar/dictionary/nesting.md +47 -30
- package/docs/ar/formatters.md +148 -193
- package/docs/ar/intlayer_CMS.md +152 -0
- package/docs/ar/intlayer_with_angular_21.md +9 -9
- package/docs/ar/intlayer_with_nextjs_14.md +1 -28
- package/docs/ar/intlayer_with_nextjs_15.md +1 -33
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +40 -83
- package/docs/ar/intlayer_with_solid_start.md +1078 -0
- package/docs/ar/intlayer_with_vite+vue.md +1 -3
- package/docs/ar/live-sync.md +4 -0
- package/docs/ar/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ar/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ar/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/ar/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/ar/packages/vite-intlayer/exports.md +15 -0
- package/docs/ar/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ar/packages/vite-intlayer/intlayerPrune.md +70 -3
- package/docs/ar/releases/v9.md +0 -37
- package/docs/ar/self_hosting.md +46 -49
- package/docs/bn/bundle_optimization.md +58 -25
- package/docs/bn/configuration.md +25 -8
- package/docs/bn/intlayer_with_angular_21.md +9 -9
- package/docs/cs/bundle_optimization.md +58 -25
- package/docs/cs/configuration.md +25 -8
- package/docs/cs/intlayer_with_angular_21.md +9 -9
- package/docs/de/analytics.md +222 -0
- package/docs/de/autoFill.md +28 -9
- package/docs/de/bundle_optimization.md +58 -25
- package/docs/de/configuration.md +25 -8
- package/docs/de/dictionary/file.md +3 -1
- package/docs/de/dictionary/nesting.md +47 -31
- package/docs/de/formatters.md +208 -334
- package/docs/de/intlayer_CMS.md +66 -15
- package/docs/de/intlayer_with_angular_21.md +9 -9
- package/docs/de/intlayer_with_nestjs.md +11 -7
- package/docs/de/intlayer_with_nextjs_14.md +1 -28
- package/docs/de/intlayer_with_nextjs_15.md +1 -33
- package/docs/de/intlayer_with_solid_start.md +1078 -0
- package/docs/de/intlayer_with_vite+vue.md +1 -3
- package/docs/de/live-sync.md +4 -0
- package/docs/de/packages/intlayer/getLocalizedUrl.md +33 -25
- package/docs/de/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/de/packages/react-intlayer/useDictionary.md +2 -5
- package/docs/de/packages/vite-intlayer/exports.md +15 -0
- package/docs/de/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/de/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/de/releases/v9.md +0 -15
- package/docs/de/self_hosting.md +46 -50
- package/docs/en/bundle_optimization.md +51 -23
- package/docs/en/cli/doc-review.md +13 -2
- package/docs/en/configuration.md +24 -15
- package/docs/en/intlayer_with_angular_21.md +9 -9
- package/docs/en/intlayer_with_solid_start.md +1091 -0
- package/docs/en/intlayer_with_vite+solid.md +12 -0
- package/docs/en/live-sync.md +4 -0
- package/docs/en-GB/analytics.md +222 -0
- package/docs/en-GB/autoFill.md +26 -7
- package/docs/en-GB/bundle_optimization.md +58 -25
- package/docs/en-GB/configuration.md +25 -8
- package/docs/en-GB/dictionary/file.md +2 -0
- package/docs/en-GB/dictionary/nesting.md +64 -205
- package/docs/en-GB/formatters.md +146 -181
- package/docs/en-GB/intlayer_CMS.md +152 -0
- package/docs/en-GB/intlayer_with_angular_21.md +9 -9
- package/docs/en-GB/intlayer_with_nestjs.md +6 -2
- package/docs/en-GB/intlayer_with_nextjs_14.md +0 -27
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -33
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +40 -82
- package/docs/en-GB/intlayer_with_solid_start.md +1078 -0
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -3
- package/docs/en-GB/live-sync.md +4 -0
- package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +30 -22
- package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +16 -48
- package/docs/en-GB/packages/vite-intlayer/exports.md +15 -0
- package/docs/en-GB/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/en-GB/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/en-GB/self_hosting.md +60 -49
- package/docs/es/analytics.md +222 -0
- package/docs/es/autoFill.md +28 -9
- package/docs/es/bundle_optimization.md +58 -25
- package/docs/es/configuration.md +24 -7
- package/docs/es/dictionary/file.md +3 -1
- package/docs/es/dictionary/nesting.md +47 -30
- package/docs/es/formatters.md +114 -168
- package/docs/es/intlayer_CMS.md +35 -10
- package/docs/es/intlayer_with_angular_21.md +9 -9
- package/docs/es/intlayer_with_nextjs_14.md +1 -28
- package/docs/es/intlayer_with_nextjs_15.md +1 -33
- package/docs/es/intlayer_with_solid_start.md +1078 -0
- package/docs/es/live-sync.md +4 -0
- package/docs/es/packages/intlayer/getLocalizedUrl.md +31 -23
- package/docs/es/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/es/packages/vite-intlayer/exports.md +15 -0
- package/docs/es/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/es/packages/vite-intlayer/intlayerPrune.md +69 -2
- package/docs/es/releases/v9.md +0 -15
- package/docs/es/self_hosting.md +46 -49
- package/docs/fr/analytics.md +222 -0
- package/docs/fr/autoFill.md +27 -8
- package/docs/fr/bundle_optimization.md +58 -25
- package/docs/fr/configuration.md +25 -8
- package/docs/fr/dictionary/file.md +2 -0
- package/docs/fr/dictionary/nesting.md +37 -184
- package/docs/fr/formatters.md +95 -236
- package/docs/fr/intlayer_CMS.md +66 -15
- package/docs/fr/intlayer_with_angular_21.md +9 -9
- package/docs/fr/intlayer_with_nextjs_14.md +1 -28
- package/docs/fr/intlayer_with_nextjs_15.md +1 -33
- package/docs/fr/intlayer_with_solid_start.md +1078 -0
- package/docs/fr/live-sync.md +4 -0
- package/docs/fr/packages/intlayer/getLocalizedUrl.md +37 -27
- package/docs/fr/packages/intlayer/getMultilingualUrls.md +18 -20
- package/docs/fr/packages/vite-intlayer/exports.md +15 -0
- package/docs/fr/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/fr/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/fr/releases/v9.md +0 -15
- package/docs/fr/self_hosting.md +46 -49
- package/docs/hi/analytics.md +222 -0
- package/docs/hi/autoFill.md +28 -9
- package/docs/hi/bundle_optimization.md +58 -25
- package/docs/hi/configuration.md +25 -8
- package/docs/hi/dictionary/file.md +3 -1
- package/docs/hi/dictionary/nesting.md +47 -30
- package/docs/hi/formatters.md +233 -334
- package/docs/hi/how_works_intlayer.md +3 -1
- package/docs/hi/intlayer_CMS.md +152 -0
- package/docs/hi/intlayer_with_angular_21.md +9 -9
- package/docs/hi/intlayer_with_nestjs.md +11 -7
- package/docs/hi/intlayer_with_nextjs_14.md +1 -28
- package/docs/hi/intlayer_with_nextjs_15.md +1 -33
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +40 -83
- package/docs/hi/intlayer_with_solid_start.md +1077 -0
- package/docs/hi/intlayer_with_vite+preact.md +56 -49
- package/docs/hi/intlayer_with_vite+react.md +48 -41
- package/docs/hi/intlayer_with_vite+solid.md +32 -41
- package/docs/hi/intlayer_with_vite+vue.md +49 -44
- package/docs/hi/live-sync.md +4 -0
- package/docs/hi/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/hi/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/hi/packages/next-intlayer/t.md +33 -1
- package/docs/hi/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/hi/packages/vite-intlayer/exports.md +15 -0
- package/docs/hi/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/hi/packages/vite-intlayer/intlayerPrune.md +78 -5
- package/docs/hi/plugins/sync-json.md +9 -9
- package/docs/hi/releases/v9.md +0 -15
- package/docs/hi/self_hosting.md +38 -51
- package/docs/id/analytics.md +223 -0
- package/docs/id/bundle_optimization.md +58 -25
- package/docs/id/configuration.md +25 -8
- package/docs/id/dictionary/nesting.md +37 -184
- package/docs/id/formatters.md +208 -305
- package/docs/id/intlayer_CMS.md +164 -0
- package/docs/id/intlayer_with_angular_21.md +9 -9
- package/docs/id/intlayer_with_nextjs_14.md +1 -26
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +70 -63
- package/docs/id/intlayer_with_solid_start.md +1078 -0
- package/docs/id/live-sync.md +4 -0
- package/docs/id/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/id/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/id/packages/vite-intlayer/exports.md +15 -0
- package/docs/id/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/id/packages/vite-intlayer/intlayerPrune.md +78 -5
- package/docs/id/releases/v9.md +12 -0
- package/docs/id/self_hosting.md +61 -50
- package/docs/it/analytics.md +222 -0
- package/docs/it/autoFill.md +27 -8
- package/docs/it/bundle_optimization.md +58 -25
- package/docs/it/configuration.md +25 -8
- package/docs/it/dictionary/file.md +3 -1
- package/docs/it/dictionary/nesting.md +47 -30
- package/docs/it/formatters.md +114 -168
- package/docs/it/intlayer_CMS.md +66 -15
- package/docs/it/intlayer_with_angular_21.md +9 -9
- package/docs/it/intlayer_with_nestjs.md +11 -7
- package/docs/it/intlayer_with_nextjs_14.md +1 -28
- package/docs/it/intlayer_with_nextjs_15.md +1 -33
- package/docs/it/intlayer_with_solid_start.md +1078 -0
- package/docs/it/intlayer_with_vite+vue.md +1 -3
- package/docs/it/live-sync.md +4 -0
- package/docs/it/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/it/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/it/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/it/packages/vite-intlayer/exports.md +15 -0
- package/docs/it/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/it/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/it/releases/v9.md +0 -15
- package/docs/it/self_hosting.md +60 -49
- package/docs/ja/analytics.md +222 -0
- package/docs/ja/autoFill.md +28 -9
- package/docs/ja/bundle_optimization.md +58 -25
- package/docs/ja/configuration.md +25 -8
- package/docs/ja/dictionary/content_file.md +15 -7
- package/docs/ja/dictionary/file.md +3 -1
- package/docs/ja/dictionary/nesting.md +47 -30
- package/docs/ja/formatters.md +133 -187
- package/docs/ja/intlayer_visual_editor.md +3 -1
- package/docs/ja/intlayer_with_angular_21.md +6 -6
- package/docs/ja/intlayer_with_nestjs.md +2 -12
- package/docs/ja/intlayer_with_nextjs_14.md +1 -28
- package/docs/ja/intlayer_with_nextjs_15.md +1 -33
- package/docs/ja/intlayer_with_react_router_v7.md +456 -20
- package/docs/ja/intlayer_with_solid_start.md +1078 -0
- package/docs/ja/intlayer_with_vite+preact.md +73 -41
- package/docs/ja/intlayer_with_vite+vue.md +1 -3
- package/docs/ja/live-sync.md +4 -0
- package/docs/ja/mcp_server.md +3 -9
- package/docs/ja/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ja/packages/intlayer/getMultilingualUrls.md +3 -17
- package/docs/ja/packages/vite-intlayer/exports.md +15 -0
- package/docs/ja/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ja/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/ja/releases/v9.md +12 -0
- package/docs/ja/self_hosting.md +46 -50
- package/docs/ko/analytics.md +222 -0
- package/docs/ko/autoFill.md +28 -9
- package/docs/ko/bundle_optimization.md +58 -25
- package/docs/ko/configuration.md +25 -8
- package/docs/ko/dictionary/file.md +3 -1
- package/docs/ko/dictionary/nesting.md +47 -30
- package/docs/ko/formatters.md +133 -187
- package/docs/ko/intlayer_with_angular_21.md +9 -9
- package/docs/ko/intlayer_with_lynx+react.md +133 -39
- package/docs/ko/intlayer_with_nextjs_14.md +1 -28
- package/docs/ko/intlayer_with_nextjs_15.md +1 -33
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +40 -188
- package/docs/ko/intlayer_with_solid_start.md +1078 -0
- package/docs/ko/intlayer_with_vite+preact.md +57 -23
- package/docs/ko/intlayer_with_vite+vue.md +1 -3
- package/docs/ko/live-sync.md +4 -0
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ko/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ko/packages/vite-intlayer/exports.md +15 -0
- package/docs/ko/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ko/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/ko/releases/v9.md +12 -0
- package/docs/ko/self_hosting.md +60 -49
- package/docs/nl/bundle_optimization.md +58 -25
- package/docs/nl/configuration.md +25 -8
- package/docs/nl/intlayer_with_angular_21.md +9 -9
- package/docs/pl/analytics.md +220 -0
- package/docs/pl/bundle_optimization.md +58 -25
- package/docs/pl/configuration.md +25 -8
- package/docs/pl/dictionary/nesting.md +47 -30
- package/docs/pl/formatters.md +208 -305
- package/docs/pl/intlayer_CMS.md +152 -0
- package/docs/pl/intlayer_with_angular_21.md +9 -9
- package/docs/pl/intlayer_with_nextjs_14.md +1 -26
- package/docs/pl/intlayer_with_solid_start.md +1078 -0
- package/docs/pl/live-sync.md +4 -0
- package/docs/pl/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/pl/packages/react-intlayer/useDictionary.md +2 -19
- package/docs/pl/packages/vite-intlayer/exports.md +15 -0
- package/docs/pl/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/pl/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/pl/releases/v9.md +0 -15
- package/docs/pl/self_hosting.md +60 -49
- package/docs/pt/analytics.md +222 -0
- package/docs/pt/bundle_optimization.md +58 -24
- package/docs/pt/configuration.md +25 -8
- package/docs/pt/dictionary/file.md +3 -1
- package/docs/pt/dictionary/nesting.md +47 -30
- package/docs/pt/formatters.md +112 -168
- package/docs/pt/intlayer_CMS.md +66 -15
- package/docs/pt/intlayer_with_angular_21.md +9 -9
- package/docs/pt/intlayer_with_astro_lit.md +26 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -28
- package/docs/pt/intlayer_with_nextjs_15.md +1 -33
- package/docs/pt/intlayer_with_solid_start.md +1078 -0
- package/docs/pt/intlayer_with_vite+vue.md +1 -3
- package/docs/pt/live-sync.md +4 -0
- package/docs/pt/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/pt/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/pt/packages/vite-intlayer/exports.md +15 -0
- package/docs/pt/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/pt/packages/vite-intlayer/intlayerPrune.md +78 -6
- package/docs/pt/releases/v9.md +0 -15
- package/docs/pt/self_hosting.md +60 -49
- package/docs/ru/analytics.md +222 -0
- package/docs/ru/autoFill.md +27 -8
- package/docs/ru/bundle_optimization.md +58 -25
- package/docs/ru/configuration.md +25 -8
- package/docs/ru/dictionary/file.md +3 -1
- package/docs/ru/dictionary/nesting.md +64 -205
- package/docs/ru/formatters.md +108 -128
- package/docs/ru/intlayer_with_angular_21.md +9 -9
- package/docs/ru/intlayer_with_nextjs_14.md +1 -28
- package/docs/ru/intlayer_with_nextjs_15.md +1 -33
- package/docs/ru/intlayer_with_solid_start.md +1078 -0
- package/docs/ru/intlayer_with_vite+vue.md +1 -3
- package/docs/ru/live-sync.md +4 -0
- package/docs/ru/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/ru/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ru/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/ru/packages/vite-intlayer/exports.md +15 -0
- package/docs/ru/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ru/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/ru/releases/v9.md +0 -15
- package/docs/ru/self_hosting.md +60 -49
- package/docs/tr/analytics.md +222 -0
- package/docs/tr/autoFill.md +28 -9
- package/docs/tr/bundle_optimization.md +58 -25
- package/docs/tr/configuration.md +25 -8
- package/docs/tr/dictionary/file.md +2 -0
- package/docs/tr/dictionary/nesting.md +47 -30
- package/docs/tr/formatters.md +144 -190
- package/docs/tr/intlayer_CMS.md +152 -0
- package/docs/tr/intlayer_with_angular_21.md +9 -9
- package/docs/tr/intlayer_with_nestjs.md +2 -12
- package/docs/tr/intlayer_with_nextjs_15.md +1 -33
- package/docs/tr/intlayer_with_solid_start.md +1078 -0
- package/docs/tr/intlayer_with_vite+vue.md +1 -3
- package/docs/tr/live-sync.md +4 -0
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/tr/packages/vite-intlayer/exports.md +15 -0
- package/docs/tr/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/tr/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/tr/self_hosting.md +47 -50
- package/docs/uk/analytics.md +222 -0
- package/docs/uk/bundle_optimization.md +58 -25
- package/docs/uk/configuration.md +25 -8
- package/docs/uk/dictionary/nesting.md +47 -30
- package/docs/uk/formatters.md +128 -185
- package/docs/uk/intlayer_CMS.md +152 -0
- package/docs/uk/intlayer_with_angular_21.md +9 -9
- package/docs/uk/intlayer_with_nextjs_14.md +1 -26
- package/docs/uk/intlayer_with_solid_start.md +1078 -0
- package/docs/uk/live-sync.md +4 -0
- package/docs/uk/packages/react-intlayer/useDictionary.md +2 -19
- package/docs/uk/packages/vite-intlayer/exports.md +15 -0
- package/docs/uk/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/uk/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/uk/releases/v9.md +0 -15
- package/docs/uk/self_hosting.md +60 -50
- package/docs/ur/bundle_optimization.md +58 -25
- package/docs/ur/configuration.md +25 -8
- package/docs/ur/intlayer_with_angular_21.md +9 -9
- package/docs/vi/analytics.md +222 -0
- package/docs/vi/bundle_optimization.md +58 -25
- package/docs/vi/configuration.md +24 -8
- package/docs/vi/dictionary/nesting.md +37 -184
- package/docs/vi/formatters.md +208 -309
- package/docs/vi/intlayer_CMS.md +164 -0
- package/docs/vi/intlayer_with_angular_21.md +9 -9
- package/docs/vi/intlayer_with_nextjs_14.md +0 -25
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +70 -63
- package/docs/vi/intlayer_with_solid_start.md +1078 -0
- package/docs/vi/live-sync.md +4 -0
- package/docs/vi/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/vi/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/vi/packages/vite-intlayer/exports.md +15 -0
- package/docs/vi/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/vi/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/vi/plugins/sync-json.md +6 -6
- package/docs/vi/releases/v9.md +12 -0
- package/docs/vi/self_hosting.md +61 -50
- package/docs/zh/CI_CD.md +4 -0
- package/docs/zh/analytics.md +222 -0
- package/docs/zh/autoFill.md +28 -9
- package/docs/zh/bundle_optimization.md +58 -25
- package/docs/zh/configuration.md +24 -8
- package/docs/zh/dictionary/file.md +2 -0
- package/docs/zh/dictionary/nesting.md +47 -30
- package/docs/zh/formatters.md +140 -188
- package/docs/zh/intlayer_CMS.md +164 -0
- package/docs/zh/intlayer_with_analog.md +193 -3
- package/docs/zh/intlayer_with_angular_19.md +272 -3
- package/docs/zh/intlayer_with_angular_21.md +7 -7
- package/docs/zh/intlayer_with_create_react_app.md +348 -26
- package/docs/zh/intlayer_with_lynx+react.md +263 -4
- package/docs/zh/intlayer_with_nextjs_14.md +1 -28
- package/docs/zh/intlayer_with_nextjs_15.md +1 -33
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +558 -1
- package/docs/zh/intlayer_with_nuxt.md +182 -7
- package/docs/zh/intlayer_with_react_router_v7.md +183 -25
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +306 -42
- package/docs/zh/intlayer_with_solid_start.md +1077 -0
- package/docs/zh/intlayer_with_storybook.md +260 -3
- package/docs/zh/intlayer_with_svelte_kit.md +428 -48
- package/docs/zh/intlayer_with_tanstack+solid.md +713 -13
- package/docs/zh/intlayer_with_tanstack.md +731 -20
- package/docs/zh/intlayer_with_vanilla.md +314 -4
- package/docs/zh/intlayer_with_vite+lit.md +465 -4
- package/docs/zh/intlayer_with_vite+preact.md +422 -116
- package/docs/zh/intlayer_with_vite+react.md +324 -45
- package/docs/zh/intlayer_with_vite+react_compiler.md +228 -13
- package/docs/zh/intlayer_with_vite+solid.md +462 -32
- package/docs/zh/intlayer_with_vite+vanilla.md +497 -4
- package/docs/zh/live-sync.md +4 -0
- package/docs/zh/mcp_server.md +3 -9
- package/docs/zh/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/zh/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/zh/packages/vite-intlayer/exports.md +29 -0
- package/docs/zh/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/zh/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/zh/releases/v9.md +12 -0
- package/docs/zh/self_hosting.md +60 -50
- package/docs/zh-TW/bundle_optimization.md +58 -25
- package/docs/zh-TW/intlayer_with_angular_21.md +7 -7
- package/package.json +7 -7
- package/src/common.ts +39 -2
- package/src/generated/blog.entry.ts +66 -34
- package/src/generated/docs.entry.ts +273 -221
- package/src/generated/frequentQuestions.entry.ts +56 -24
- package/src/generated/legal.entry.ts +41 -9
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-07-08
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
|
+
title: Intlayer Analytics | İçerik gösterimini izleyin ve A/B testleri çalıştırın
|
|
5
|
+
description: "@intlayer/analytics'in sayfa/yerel ayar görünümlerini ve içerik gösterimini nasıl izlediğini ve Intlayer içeriğiniz üzerinde A/B testleri çalıştırmak için onu nasıl kullanacağınızı keşfedin."
|
|
6
|
+
keywords:
|
|
7
|
+
- Analytics
|
|
8
|
+
- A/B Testi
|
|
9
|
+
- Hedef Kitle (Audience)
|
|
10
|
+
- Uluslararasılaştırma (Internationalization)
|
|
11
|
+
- Dokümantasyon
|
|
12
|
+
- Intlayer
|
|
13
|
+
- Next.js
|
|
14
|
+
- JavaScript
|
|
15
|
+
- React
|
|
16
|
+
slugs:
|
|
17
|
+
- doc
|
|
18
|
+
- concept
|
|
19
|
+
- analytics
|
|
20
|
+
history:
|
|
21
|
+
- version: 9.0.0
|
|
22
|
+
date: 2026-07-08
|
|
23
|
+
changes: "Init doc — @intlayer/analytics paketi, provider/node düzeyinde izleme, A/B testi, gösterge paneli"
|
|
24
|
+
author: aymericzip
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Intlayer Analytics Dokümantasyonu
|
|
28
|
+
|
|
29
|
+
`@intlayer/analytics`, ziyaretçilerinize **gerçekte hangi içeriğin gösterildiğini** (hangi sayfanın, hangi yerel ayarda (locale) ve çevrilmiş içeriğin hangi belirli parçasının) size bildiren isteğe bağlı bir yardımcı pakettir, böylece hedef kitlenizi anlayabilir ve **içerik üzerinde A/B testleri** yürütebilirsiniz.
|
|
30
|
+
|
|
31
|
+
## İçindekiler
|
|
32
|
+
|
|
33
|
+
<TOC/>
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Neleri İzler
|
|
38
|
+
|
|
39
|
+
`@intlayer/analytics` üç tür anonim olayı toplu olarak işler (batch):
|
|
40
|
+
|
|
41
|
+
| Olay | Nerede yakalanır | Size ne anlatır |
|
|
42
|
+
| ------------------ | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
43
|
+
| `page_view` | Sağlayıcı düzeyinde (`IntlayerProvider`) | Bir oturumun (session) ilk yüklemede, rota değişikliğinde veya yerel ayar değişiminde hangi sayfayı ve yereli görüntülediği. |
|
|
44
|
+
| `content_exposure` | Düğüm düzeyinde (`useIntlayer` / eklentiler) | Hangi sözlük anahtarının / anahtar yolunun gerçekten çözümlenip görüntülendiği — ve, bir deneyin parçasıysa, hangi **varyantın (variant)**. |
|
|
45
|
+
| `conversion` | `useConversion()` çağırdığınız her yerde | Oturumun maruz kaldığı A/B varyantına atfedilen (attributed) bir ulaşılan hedef (kayıt, tıklama, satın alma...). |
|
|
46
|
+
|
|
47
|
+
Olaylar bellekte toplanır ve **yaklaşık her 20 saniyede bir tek bir toplu istek (batch request)** olarak gönderilir — asla her tuş vuruşunda veya oluşturmada (render) değil — bu nedenle analitik, ilk oluşturma süresini asla etkilemez veya her etkileşim başına bir istek eklemez.
|
|
48
|
+
|
|
49
|
+
## İçerikte A/B Testini Nasıl Destekler
|
|
50
|
+
|
|
51
|
+
Intlayer zaten içerik [Varyantları (Variants)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/dynamic_dictionaries/index.md) (örneğin bir `control` ve bir `black_friday` varyantına sahip bir `hero-banner` sözlüğü) bildirmenize izin verir. `@intlayer/analytics` bu döngüyü tamamlar:
|
|
52
|
+
|
|
53
|
+
1. `getVariant(experimentKey, variants)` her anonim oturumu deterministik olarak bir varyanta atar — oturum kimliğinin ve deney anahtarının (experiment key) saf bir işlevidir (pure function), bu nedenle atama **tüm oturum boyunca kararlıdır** ve ilk oluşturmadan önce **sunucu gidiş-dönüşü (server round-trip) gerektirmez** (titreme yok, düzen kayması (layout shift) yok).
|
|
54
|
+
2. Her `content_exposure` olayı gösterilen `variant` bilgisini taşır.
|
|
55
|
+
3. `useConversion()`, bir hedefi (örneğin `"cta_click"`) o varyanta atfetmenize (attribute) olanak tanır.
|
|
56
|
+
4. Gösterge panelindeki deney sonuçları (experiment results) uç noktası, istatistiksel anlamlılık (z-testi) dahil olmak üzere varyant başına dönüşüm oranlarını (conversion rates) karşılaştırır.
|
|
57
|
+
|
|
58
|
+
## Kurulum
|
|
59
|
+
|
|
60
|
+
`@intlayer/analytics` **eş düzey, isteğe bağlı (peer, optional)** bir bağımlılıktır — bir çerçeve (framework) paketi tarafından asla otomatik olarak kurulmaz. `intlayer`'ın yanına ekleyin:
|
|
61
|
+
|
|
62
|
+
```bash packageManager="npm"
|
|
63
|
+
npm install @intlayer/analytics
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```bash packageManager="yarn"
|
|
67
|
+
yarn add @intlayer/analytics
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```bash packageManager="pnpm"
|
|
71
|
+
pnpm add @intlayer/analytics
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```bash packageManager="bun"
|
|
75
|
+
bun add @intlayer/analytics
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Kurmazsanız, her entegrasyon noktası etkisiz bir işlem (no-op) olarak çözülür — aşağıdaki [Kurulmadığında sıfır maliyet](#kurulmadiginda-sifir-maliyet) bölümüne bakın.
|
|
79
|
+
|
|
80
|
+
## Yapılandırma
|
|
81
|
+
|
|
82
|
+
Analytics, **mevcut `editor` yapılandırma bloğunu yeniden kullanır** — doldurulacak ayrı bir `analytics` yapılandırma şeması yoktur:
|
|
83
|
+
|
|
84
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
85
|
+
import type { IntlayerConfig } from "intlayer";
|
|
86
|
+
|
|
87
|
+
const config: IntlayerConfig = {
|
|
88
|
+
editor: {
|
|
89
|
+
backendURL: "https://back.intlayer.org", // Analytics veri alma uç noktası (ingestion endpoint) olarak da kullanılır
|
|
90
|
+
clientId: "your-client-id", // Analytics proje anahtarı olarak da kullanılır
|
|
91
|
+
clientSecret: "your-client-secret",
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export default config;
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
- `editor.backendURL` — analitik olaylarının gönderildiği temel URL (`POST {backendURL}/api/analytics/events`).
|
|
99
|
+
- `editor.clientId` — yutulan her olaya atfedilen genel proje anahtarı. Aynı zamanda bir **etkinleştirme anahtarı (enable switch)** işlevi görür: `clientId` yapılandırılana kadar analizler tamamen devre dışı bırakılır (ve ölü kod olarak atılır (tree-shaken), aşağıya bakın).
|
|
100
|
+
|
|
101
|
+
Intlayer'ı kendi başınıza barındırıyorsanız (self-host), analiz otomatik olarak `editor.backendURL`'yi paylaştığı için kendi örneğinize (instance) işaret eder.
|
|
102
|
+
|
|
103
|
+
## Çerçeve (Framework) Desteği
|
|
104
|
+
|
|
105
|
+
Analytics, `react-intlayer`'dan paylaşılan `IntlayerProvider`'a bağlanmıştır, bu nedenle bugün bu sağlayıcının kullanıldığı her yerde mevcuttur:
|
|
106
|
+
|
|
107
|
+
| Çerçeve (Framework) | Durum |
|
|
108
|
+
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
109
|
+
| React | ✅ Mevcut |
|
|
110
|
+
| Next.js (`next-intlayer`) | ✅ Mevcut (`react-intlayer` aracılığıyla) |
|
|
111
|
+
| React Native / Expo (`react-native-intlayer`) | ✅ Mevcut (`react-intlayer` aracılığıyla) |
|
|
112
|
+
| Vue, Svelte, Angular, Solid, Preact, Lit, Astro, Vanilla | 🚧 Planlandı — `@intlayer/editor` yayım desenini izleyen, aynı istemci, sağlayıcı düzeyinde bağlamalar (bindings) |
|
|
113
|
+
|
|
114
|
+
## Kullanım
|
|
115
|
+
|
|
116
|
+
### Otomatik sağlayıcı (provider) düzeyinde izleme
|
|
117
|
+
|
|
118
|
+
Kod değişikliği gerekmez. `@intlayer/analytics` kurulduktan ve `editor.clientId` yapılandırıldıktan sonra `IntlayerProvider` otomatik olarak:
|
|
119
|
+
|
|
120
|
+
- mount edildiğinde (bağlandığında) analiz istemcisini başlatır,
|
|
121
|
+
- ilk yüklemede bir `page_view` kaydeder,
|
|
122
|
+
- her yerel ayar değişikliğinde bir `page_view` kaydeder,
|
|
123
|
+
- ~20s boşaltma (flush) döngüsünü başlatır ve unmount / sekme kapatıldığında (tab close) kalan tüm olayları boşaltır (`navigator.sendBeacon` aracılığıyla, `fetch(..., { keepalive: true })` işlevine geri dönerek (fallback)).
|
|
124
|
+
|
|
125
|
+
### Otomatik düğüm (node) düzeyinde izleme
|
|
126
|
+
|
|
127
|
+
`useIntlayer` görüntüleme için bir içerik parçasını her çözümlediğinde, yorumlayıcı (interpreter) o tam `dictionaryKey` + anahtar yolu (key path) + yerel ayar (locale) için bir `content_exposure` olayı bildirir — yine, hiçbir kod değişikliği gerekmez. Aynı düğümün bir boşaltma penceresi (flush window) içindeki tekrarlanan gösterimleri bir `count` (sayım) ile tek bir olayda birleştirilir (coalesced), bu nedenle 50 kez yeniden oluşturulan (re-render) bir liste 50 olay göndermez.
|
|
128
|
+
|
|
129
|
+
### A/B testleri için dönüşümleri izleme
|
|
130
|
+
|
|
131
|
+
Bir oturumun (session) gördüğü varyanta bir hedef atfetmek için `useConversion()` kullanın:
|
|
132
|
+
|
|
133
|
+
```tsx fileName="CTAButton.tsx" codeFormat="tsx"
|
|
134
|
+
import { useConversion } from "react-intlayer";
|
|
135
|
+
|
|
136
|
+
const CTAButton = () => {
|
|
137
|
+
const trackConversion = useConversion();
|
|
138
|
+
|
|
139
|
+
return (
|
|
140
|
+
<button
|
|
141
|
+
onClick={() =>
|
|
142
|
+
trackConversion({
|
|
143
|
+
experimentKey: "homepage-hero",
|
|
144
|
+
variant: "black_friday",
|
|
145
|
+
goal: "cta_click",
|
|
146
|
+
})
|
|
147
|
+
}
|
|
148
|
+
>
|
|
149
|
+
Başlayın
|
|
150
|
+
</button>
|
|
151
|
+
);
|
|
152
|
+
};
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Bir varyantı istemci tarafında çözümleme (Resolving a variant client-side)
|
|
156
|
+
|
|
157
|
+
```tsx fileName="useHeroVariant.ts" codeFormat="tsx"
|
|
158
|
+
import { getGlobalAnalyticsClient } from "@intlayer/analytics/client";
|
|
159
|
+
|
|
160
|
+
const client = getGlobalAnalyticsClient();
|
|
161
|
+
const variant = client?.getVariant("homepage-hero", [
|
|
162
|
+
"control",
|
|
163
|
+
"black_friday",
|
|
164
|
+
]);
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Gizlilik ve Performans
|
|
168
|
+
|
|
169
|
+
- **Tasarım gereği anonim**: Oturumlar dönen (rotating) bir id ile tanımlanır; arka uç (backend) yalnızca o kimliğin bir **SHA-256 karmasını (hash)** saklar — asla ham id'yi ve asla bir IP adresini saklamaz.
|
|
170
|
+
- **Konum kabadır (coarse)**: Yalnızca CDN coğrafi konum başlıklarından (geolocation headers) (`cf-ipcountry`, `x-vercel-ip-country`, ...) elde edilen bir ülke kodu — hiçbir IP okunmaz veya saklanmaz.
|
|
171
|
+
- **URL'ler arama parametrelerini varsayılan olarak hariç tutar**, bu nedenle sorgu dizeleri (query strings) asla yakalanmaz.
|
|
172
|
+
- **Örnekleme (Sampling)**: `sampleRate`, trafiği yüksek uygulamalarda içerik gösterimi olaylarının yalnızca bir kısmını saklamanıza olanak tanır.
|
|
173
|
+
- **Toplu İşleme (Batched)**: Yaklaşık her 20 saniyede bir istek (`flushInterval`) veya arabellek (buffer) dolarsa daha erken (`maxBufferSize`) — hiçbir zaman olay başına bir istek değil.
|
|
174
|
+
|
|
175
|
+
### Kurulmadığında sıfır maliyet (Zero-cost when not installed)
|
|
176
|
+
|
|
177
|
+
`@intlayer/analytics`, `@intlayer/editor` ile tamamen aynı isteğe bağlı bağımlılık desenini izler:
|
|
178
|
+
|
|
179
|
+
- Her entegrasyon noktası, paketi **`try/catch` içine sarılmış dinamik bir `import()`** aracılığıyla yükler — `@intlayer/analytics`'i hiç kurmayan bir uygulama hiçbir zaman paket boyutu veya çalışma zamanı (runtime) maliyeti ödemez ve hiçbir zaman bir hata görmez;
|
|
180
|
+
- `editor.clientId` yapılandırılmadığında `@intlayer/config` tarafından otomatik olarak `'false'` olarak ayarlanan derleme zamanı (compile-time) ortam değişkeni (`INTLAYER_ANALYTICS_ENABLED`), paketleyicilerin (bundlers) tüm entegrasyonu **ölü kod olarak elemesini (dead-code-eliminate)** sağlar;
|
|
181
|
+
- Analytics, Intlayer düzenleyicisi (editor)/CMS önizleme (preview) iframe'i içinde devre dışı bırakılır, böylece düzenleyici oturumları (editor sessions) hiçbir zaman gerçek trafik olarak sayılmaz.
|
|
182
|
+
|
|
183
|
+
## Gösterge Paneli (Dashboard): Analytics sayfası
|
|
184
|
+
|
|
185
|
+
Projeniz olayları topladıktan sonra, [Intlayer gösterge paneli (dashboard)](https://app.intlayer.org/analytics) içindeki **Analytics** sayfası (bir proje seçildikten sonra kenar çubuğunda (sidebar) görünür) şunları gösterir:
|
|
186
|
+
|
|
187
|
+
- **Aktif kullanıcılar** — seçilen hareketli penceredeki (7 / 30 / 90 gün) benzersiz (distinct) ziyaretçiler.
|
|
188
|
+
- **Bugünkü kullanıcılar** ve **son 7 gündeki kullanıcılar**.
|
|
189
|
+
- Seçili pencere boyunca **Sayfa görüntülemeleri (Page views)**.
|
|
190
|
+
- Günlük tekil ziyaretçilerin bir **gelişim grafiği (evolution graph)**.
|
|
191
|
+
- Hedef kitlenizi yerel ayar ve ülkeye göre sıralayan **Yerel Ayarlar (Locales)** ve **Konum (Location)** döküm sekmeleri.
|
|
192
|
+
|
|
193
|
+
## Arka Uç API Referansı (Backend API reference)
|
|
194
|
+
|
|
195
|
+
Tüm okuma uç noktaları (read endpoints) kimlik doğrulama gerektirir; veri alımı (ingestion) geneldir (public) ve gövdedeki `clientId` tarafından ilişkilendirilir (attributed).
|
|
196
|
+
|
|
197
|
+
| Yöntem | Uç Nokta (Endpoint) | Açıklama |
|
|
198
|
+
| ------ | ------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
199
|
+
| `POST` | `/api/analytics/events` | Bir dizi olayı içeri al (genel, gövdede `clientId` tarafından atfedilir). |
|
|
200
|
+
| `GET` | `/api/analytics/overview` | Kimliği doğrulanmış proje için sayfa/yerel ayar toplamları. |
|
|
201
|
+
| `GET` | `/api/analytics/audience?days=30` | Tekil ziyaretçiler, sayfa görünümleri, günlük dizi, yerel + ülke dökümleri. |
|
|
202
|
+
| `GET` | `/api/analytics/content-stats` | İçerik başına gösterim toplamları (sözlük anahtarı / yolu / yerele göre gruplanır). |
|
|
203
|
+
| `GET` | `/api/analytics/experiments/:experimentKey` | Bir A/B deneyi için varyant başına dönüşüm oranları ve istatistiksel anlamlılık. |
|
|
204
|
+
|
|
205
|
+
Bunları [CMS SDK](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md) ile programatik olarak da çağırabilirsiniz:
|
|
206
|
+
|
|
207
|
+
```ts fileName="analytics.ts"
|
|
208
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
209
|
+
import { analyticsEndpoint } from "@intlayer/api/analytics";
|
|
210
|
+
|
|
211
|
+
const cms = createIntlayerCMS();
|
|
212
|
+
|
|
213
|
+
const { data: audience } = await analyticsEndpoint(cms).getAudience(30);
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Faydalı bağlantılar (Useful links)
|
|
217
|
+
|
|
218
|
+
- [Dinamik Sözlükler - Koleksiyonlar ve Varyantlar (Dynamic Dictionaries)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/dynamic_dictionaries/index.md)
|
|
219
|
+
- [Intlayer CMS - CMS SDK](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md)
|
|
220
|
+
- [Intlayer Görsel Düzenleyici (Visual Editor)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_visual_editor.md)
|
|
221
|
+
- [Yapılandırma Referansı (Configuration Reference)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
|
|
222
|
+
- [Kendi Başına Barındırma (Self-Hosting) Kılavuzu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/self_hosting.md)
|
package/docs/tr/autoFill.md
CHANGED
|
@@ -75,11 +75,30 @@ v7'de, `fill` komutunun davranışı güncellenmiştir:
|
|
|
75
75
|
|
|
76
76
|
Başka bir dosyaya yazmak için bir yol seçeneği kullanırken, doldurma mekanizması içerik deklarasyon dosyaları arasında _ana-köle_ ilişkisi aracılığıyla çalışır. Ana (master) dosya gerçeğin kaynağı olarak hizmet eder ve güncellendiğinde, Intlayer bu değişiklikleri otomatik olarak yol tarafından belirtilen türetilmiş (doldurulmuş) deklarasyon dosyalarına uygular.
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
### Locale Başına Özelleştirme
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
Bir nesne kullanarak her locale için davranışı özelleştirebilirsiniz:
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
```ts fileName="intlayer.config.ts"
|
|
83
|
+
const config: IntlayerConfig = {
|
|
84
|
+
content: {
|
|
85
|
+
internationalization: {
|
|
86
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.POLISH],
|
|
87
|
+
defaultLocale: Locales.ENGLISH,
|
|
88
|
+
requiredLocales: [Locales.ENGLISH], // İngilizce için mevcut dosyayı doldur ve düzenle, Fransızca için ayrı dosya oluştur, İspanyolca için doldurmayı devre dışı bırak önerilir - t fonksiyonunuzda '{ en: string; xxx }' türünde 'pl' özelliğinin eksik olmasını önlemek için
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
dictionary: {
|
|
92
|
+
fill: {
|
|
93
|
+
en: true, // İngilizce için mevcut dosyayı doldur ve düzenle
|
|
94
|
+
fr: "./translations/fr.json", // Fransızca için ayrı dosya oluştur
|
|
95
|
+
es: false, // İspanyolca için doldurmayı devre dışı bırak
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Bu, aynı proje içinde farklı locale'ler için farklı doldurma davranışlarına sahip olmanızı sağlar.
|
|
83
102
|
|
|
84
103
|
```ts fileName="src/components/example/example.content.ts"
|
|
85
104
|
import { Locales, type Dictionary } from "intlayer";
|
|
@@ -87,18 +106,18 @@ import { Locales, type Dictionary } from "intlayer";
|
|
|
87
106
|
const exampleContent = {
|
|
88
107
|
key: "example",
|
|
89
108
|
locale: Locales.ENGLISH,
|
|
90
|
-
|
|
109
|
+
fill: "./example.content.json",
|
|
91
110
|
content: {
|
|
92
|
-
contentExample: "
|
|
111
|
+
contentExample: "This is an example of content",
|
|
93
112
|
},
|
|
94
113
|
} satisfies Dictionary;
|
|
95
114
|
|
|
96
115
|
export default exampleContent;
|
|
97
116
|
```
|
|
98
117
|
|
|
99
|
-
|
|
118
|
+
`fill` talimatını kullanan [locale başına içerik bildirim dosyası](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/per_locale_file.md).
|
|
100
119
|
|
|
101
|
-
|
|
120
|
+
Daha sonra, aşağıdaki komutu çalıştırdığınızda:
|
|
102
121
|
|
|
103
122
|
```bash packageManager="npm"
|
|
104
123
|
npx intlayer fill --file 'src/components/example/example.content.ts'
|
|
@@ -116,7 +135,7 @@ pnpm intlayer fill --file 'src/components/example/example.content.ts'
|
|
|
116
135
|
bun x intlayer fill --file 'src/components/example/example.content.ts'
|
|
117
136
|
```
|
|
118
137
|
|
|
119
|
-
Intlayer,
|
|
138
|
+
Intlayer, `src/components/example/example.content.json` adresinde türetilmiş bildirim dosyasını otomatik olarak oluşturacak ve ana dosyada zaten bildirilmemiş olan tüm locale'leri dolduracaktır.
|
|
120
139
|
|
|
121
140
|
```json5 fileName="src/components/example/example.content.json"
|
|
122
141
|
{
|
|
@@ -133,7 +152,7 @@ Intlayer, ana dosyada henüz beyan edilmemiş tüm yerelleri doldurarak, türeti
|
|
|
133
152
|
}
|
|
134
153
|
```
|
|
135
154
|
|
|
136
|
-
|
|
155
|
+
Bundan sonra, her iki bildirim dosyası da standart `useIntlayer("example")` hook'u (react) / composable (vue) kullanılarak erişilebilen tek bir sözlükte birleştirilecektir.
|
|
137
156
|
|
|
138
157
|
## Genel Konfigürasyon
|
|
139
158
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-11-25
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-08-09
|
|
4
4
|
title: i18n Paket Boyutu ve Performans Optimizasyonu
|
|
5
5
|
description: Uluslararasılaştırma (i18n) içeriğini optimize ederek uygulama paket boyutunuzu küçültün. Intlayer ile sözlükler için tree shaking ve lazy loading'i nasıl kullanacağınızı öğrenin.
|
|
6
6
|
keywords:
|
|
@@ -16,6 +16,12 @@ slugs:
|
|
|
16
16
|
- concept
|
|
17
17
|
- bundle-optimization
|
|
18
18
|
history:
|
|
19
|
+
- version: 9.2.1
|
|
20
|
+
date: 2026-08-09
|
|
21
|
+
changes: "`purge` ve `minify` artık `@intlayer/swc` aracılığıyla Next.js'te çalışıyor — `babel.config.js` gerekmiyor"
|
|
22
|
+
- version: 8.12.0
|
|
23
|
+
date: 2026-06-24
|
|
24
|
+
changes: "Babel eklentilerini referans tablolarında gerekli pipeline sırasına göre listeleme (extract → purge → minify → optimize)"
|
|
19
25
|
- version: 8.12.0
|
|
20
26
|
date: 2026-06-07
|
|
21
27
|
changes: "Babel/Webpack için `intlayerPurgeBabelPlugin` ve `intlayerMinifyBabelPlugin` eklendi; eklenti (plugin) süreci netleştirildi"
|
|
@@ -191,12 +197,14 @@ Intlayer'ın derleme optimizasyonu, her birinin tek bir sorumluluğu olduğu bir
|
|
|
191
197
|
|
|
192
198
|
Bunlar doğrudan Webpack tabanlı yapılandırmalarda (Babel ile kullanılan Next.js, CRA, özel Webpack vb.) `babel.config.js` içinde kullanılır.
|
|
193
199
|
|
|
200
|
+
Aşağıdaki tablo bunları gerekli pipeline sırasına göre listeler (`babel.config.js` içinde görünmeleri gereken sırayla aynı):
|
|
201
|
+
|
|
194
202
|
| Eklenti | Ne yapar |
|
|
195
203
|
| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
196
204
|
| `intlayerExtractBabelPlugin` | `.content.ts` dosyalarını tarayarak derlenmiş sözlükleri `.intlayer/` altına yazar |
|
|
197
|
-
| `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` çağrısını `useDictionary(hash)` olarak yeniden yazar ve ilgili sözlük için eşleşen bir `import` ifadesi enjekte eder |
|
|
198
205
|
| `intlayerPurgeBabelPlugin` | Tüm kaynak dosyaları tarar, derlenmiş `.intlayer/**/*.json` sözlük dosyalarından **kullanılmayan içerik alanlarını** temizler |
|
|
199
206
|
| `intlayerMinifyBabelPlugin` | JSON dosyalarındaki ve kaynak koddaki **içerik alanı anahtarlarını kısa alfabetik isimlere (alias)** (`title` → `a`) dönüştürür |
|
|
207
|
+
| `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` çağrısını `useDictionary(hash)` olarak yeniden yazar ve ilgili sözlük için eşleşen bir `import` ifadesi enjekte eder |
|
|
200
208
|
|
|
201
209
|
> **Eklenti sırası önemlidir.** `babel.config.js` dosyanızda purge ve minify eklentileri optimize eklentisinden **önce** gelmelidir. Optimize aşaması `useIntlayer('key')` öğesini belirsiz bir `useDictionary(hash)` çağrısı ile değiştirdiğinden, purge ve minify işlemlerinin hangi alanların kullanıldığını tespit edebilmesi için gerekli olan sözlük anahtar bilgisi kaybolur.
|
|
202
210
|
|
|
@@ -205,9 +213,9 @@ Her Babel eklentisi, yapılandırma yüklenme zamanında `intlayer.config.ts`'yi
|
|
|
205
213
|
| Opsiyon yardımcısı | Birlikte kullanıldığı eklenti |
|
|
206
214
|
| :--------------------------- | :---------------------------- |
|
|
207
215
|
| `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
|
|
208
|
-
| `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
|
|
209
216
|
| `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
|
|
210
217
|
| `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
|
|
218
|
+
| `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
|
|
211
219
|
|
|
212
220
|
### Vite eklentileri (`vite-intlayer`)
|
|
213
221
|
|
|
@@ -220,6 +228,20 @@ Vite kullanıcıları **bunları asla doğrudan yapılandırmaz**. Bunlar `vite.
|
|
|
220
228
|
| Dictionary minify | `intlayerMinifyBabelPlugin` JSON yazma adımı ile aynı |
|
|
221
229
|
| Babel transform | `intlayerMinifyBabelPlugin` kaynak kod yeniden adlandırması + `intlayerOptimizeBabelPlugin` aynı |
|
|
222
230
|
|
|
231
|
+
### SWC eklentisi (`@intlayer/swc`)
|
|
232
|
+
|
|
233
|
+
Next.js kullanıcıları da **bunları asla doğrudan yapılandırmaz**. **v9.2.1**'den itibaren `next.config.ts` içindeki `withIntlayer()`, yalnızca `build.purge` ve `build.minify` bayraklarına dayanarak tüm pipeline'ı — purge, minify ve import yeniden yazımını — çalıştırır.
|
|
234
|
+
|
|
235
|
+
İş ikiye bölünmüştür, çünkü bir SWC Wasm eklentisi her seferinde tek bir dosyayı dönüştürür ve dosya sistemine erişimi yoktur:
|
|
236
|
+
|
|
237
|
+
| Geçiş | Nerede çalışır | Ne yapar |
|
|
238
|
+
| :-------------------------------------------------- | :---------------------------- | :------------------------------------------------------------------------------------------------------------------------ |
|
|
239
|
+
| Kullanım analizi + JSON purge/minify | Node, `withIntlayer()` içinde | Her bileşen kaynak dosyasını okur, `.intlayer/**/*.json` dosyalarını yeniden yazar, yeniden adlandırma tablolarını üretir |
|
|
240
|
+
| Kaynak kodu yeniden yazımı (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | Yeniden adlandırma tablolarını kodunuzdaki eşleşen özellik erişimlerine uygular |
|
|
241
|
+
| Import yeniden yazımı (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | `intlayerOptimizeBabelPlugin` ile aynı |
|
|
242
|
+
|
|
243
|
+
_Hangi_ alanların kullanılmadığına ve her birinin _hangi_ takma adı alacağına karar vermek dosyalar arası durum ve dosya G/Ç gerektirir; bu nedenle bu yarısı Node'da çalışır ve SWC eklentisi yalnızca ortaya çıkan tabloları alır.
|
|
244
|
+
|
|
223
245
|
## Platforma Göre Kurulum
|
|
224
246
|
|
|
225
247
|
<Tabs>
|
|
@@ -227,10 +249,12 @@ Vite kullanıcıları **bunları asla doğrudan yapılandırmaz**. Bunlar `vite.
|
|
|
227
249
|
|
|
228
250
|
### Next.js
|
|
229
251
|
|
|
230
|
-
Next.js,
|
|
252
|
+
Next.js, derlemeler için SWC kullandığından `@intlayer/swc` eklentisini gerektirir. **v9.2.1**'den itibaren bu tek paket tüm pipeline'ı kapsar — optimize (import yeniden yazımı), purge ve minify.
|
|
231
253
|
|
|
232
254
|
> Bu eklenti varsayılan olarak yüklenmez çünkü SWC eklentileri Next.js için hala deneysel aşamadadır. İlerleyen zamanlarda bu durum değişebilir.
|
|
233
255
|
|
|
256
|
+
> **Next.js 16.1.0 minimum sürümdür.** SWC'nin ileriye dönük uyumlu Wasm eklenti ABI'si üzerine kurulan ilk sürümdür; daha eski sürümler eklentiyi reddeder. `withIntlayer` projenizin Next.js sürümünü okur ve 16.1.0'ın altında eklentiyi hiç kaydetmez — bu derlemeler yine de başarılı olur, sadece paket optimizasyonu olmadan çalışır.
|
|
257
|
+
|
|
234
258
|
<Tabs>
|
|
235
259
|
<Tab value="npm">
|
|
236
260
|
|
|
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
|
|
|
265
289
|
|
|
266
290
|
Yüklendikten sonra Intlayer eklentiyi otomatik olarak algılar ve kullanır.
|
|
267
291
|
|
|
268
|
-
**Purge ve minify**
|
|
292
|
+
**Purge ve minify** geçişleri (alan kaldırma ve alan yeniden adlandırma) ek bir paket veya `babel.config.js` gerektirmez. Yapılandırmanızı `withIntlayer` ile sarın ve bayrakları `intlayer.config.ts` içinde açın:
|
|
269
293
|
|
|
270
|
-
```
|
|
271
|
-
|
|
294
|
+
```typescript fileName="next.config.ts"
|
|
295
|
+
import { withIntlayer } from "next-intlayer/server";
|
|
296
|
+
import type { NextConfig } from "next";
|
|
297
|
+
|
|
298
|
+
const nextConfig: NextConfig = {/* yapılandırmanız */};
|
|
299
|
+
|
|
300
|
+
export default withIntlayer(nextConfig);
|
|
272
301
|
```
|
|
273
302
|
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
intlayerPurgeBabelPlugin,
|
|
277
|
-
intlayerMinifyBabelPlugin,
|
|
278
|
-
getPurgePluginOptions,
|
|
279
|
-
getMinifyPluginOptions,
|
|
280
|
-
} = require("@intlayer/babel");
|
|
303
|
+
```typescript fileName="intlayer.config.ts"
|
|
304
|
+
import type { IntlayerConfig } from "intlayer";
|
|
281
305
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
// Minify: JSON + kaynak kodunda içerik alanı anahtarlarını yeniden adlandırır
|
|
288
|
-
[intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
|
|
289
|
-
// Not: intlayerOptimizeBabelPlugin burada GEREKLİ DEĞİLDİR çünkü
|
|
290
|
-
// @intlayer/swc paketi useIntlayer → useDictionary değişikliğini halleder.
|
|
291
|
-
],
|
|
306
|
+
const config: IntlayerConfig = {
|
|
307
|
+
build: {
|
|
308
|
+
purge: true, // paketlenen JSON'dan kullanılmayan içerik alanlarını kaldırır
|
|
309
|
+
minify: true, // içerik alanı anahtarlarını kısa takma adlara dönüştürür
|
|
310
|
+
},
|
|
292
311
|
};
|
|
312
|
+
|
|
313
|
+
export default config;
|
|
293
314
|
```
|
|
294
315
|
|
|
316
|
+
`next build` sırasında `withIntlayer` kaynaklarınızı analiz eder, derlenmiş sözlükleri yeniden yazar ve elde edilen alan yeniden adlandırma tablolarını `@intlayer/swc` eklentisine iletir; eklenti de kodunuzdaki eşleşen özellik erişimlerini günceller.
|
|
317
|
+
|
|
318
|
+
> `withIntlayerSync` yerine asenkron `withIntlayer` kullanın. Senkron sürüm analiz pipeline'ını çalıştırmaz, bu nedenle purge ve minify onunla hiçbir etki yaratmaz.
|
|
319
|
+
|
|
320
|
+
> Purge ve minify yalnızca `next build` sırasında çalışır — optimize pipeline'ı `next dev` sırasında kapalıdır.
|
|
321
|
+
|
|
322
|
+
> Uyumluluk adaptörü çağıranları yapılandırıldığında da devre dışı kalırlar (`swcExtraCallers`; `@intlayer/next-intl` veya `@intlayer/react-i18next` gibi uyumluluk paketleri tarafından ayarlanır): bu çağrı noktaları kullanım analizörüne görünmez, dolayısıyla purge kodun hâlâ okuduğu alanları kaldırırdı. Import yeniden yazımı etkin kalır.
|
|
323
|
+
|
|
324
|
+
**Daha eski sürümler (9.2.1 öncesi)** `@intlayer/babel` paketini ve `intlayerPurgeBabelPlugin` ile `intlayerMinifyBabelPlugin` tanımlayan bir `babel.config.js` dosyasını gerektiriyordu. Bu dosya artık gerekli değildir ve silinebilir.
|
|
325
|
+
|
|
295
326
|
</Tab>
|
|
296
327
|
<Tab value="vite">
|
|
297
328
|
|
|
@@ -447,6 +478,8 @@ export default config;
|
|
|
447
478
|
|
|
448
479
|
> `optimize` seçeneği `false` olduğunda veya `editor.enabled` `true` olduğunda minification atlanır (görsel düzenleyicinin düzenlemeye olanak tanıması için orijinal alan isimlerine ihtiyacı vardır).
|
|
449
480
|
|
|
481
|
+
> Next.js'te minifikasyon, `@intlayer/swc` kurulu değilse veya yüklenemiyorsa (16.1.0 altındaki Next.js) da atlanır. Eklenti, kaynak kodundaki erişimleri yeniden yazan yarıdır; onsuz sözlükleri yeniden adlandırmak kodunuzun artık var olmayan alan adlarını okumasına yol açardı.
|
|
482
|
+
|
|
450
483
|
> Ayrıca, JSON'ların orijinal isimleriyle uzak (remote) API'den getirildiği durumlarda, yani sözlüklerin `importMode: 'fetch'` ile yüklendiği durumlarda da atlanır — istemci tarafındaki (client-side) isimleri değiştirmek sunucu/istemci sözleşmesini bozacaktır.
|
|
451
484
|
|
|
452
485
|
### Purging (kullanılmayan alanların silinmesi)
|
|
@@ -475,7 +508,7 @@ export default config;
|
|
|
475
508
|
{ "title": "…", "subtitle": "…" }
|
|
476
509
|
```
|
|
477
510
|
|
|
478
|
-
> `optimize` `false` olduğunda veya `editor.enabled` `true` olduğunda Purge işlemi atlanır.
|
|
511
|
+
> `optimize` `false` olduğunda veya `editor.enabled` `true` olduğunda Purge işlemi atlanır. Next.js'te ayrıca `@intlayer/swc` kullanılamadığında ve uyumluluk adaptörü çağıranları yapılandırıldığında atlanır.
|
|
479
512
|
|
|
480
513
|
> Ayrıca, bir kaynak dosyasının ayrıştırılamadığı veya `useIntlayer` sonucunun bir değişkene atanıp (örneğin objeye yayılması, parçalama (destructuring) yapılmadan bir prop olarak iletilmesi gibi) statik analiz aracının takip edemeyeceği yollarla gönderildiği durumlarda Purge işlemi tedbir amaçlı olarak atlanır. Bu durumlarda tüm sözlük bozulmadan korunur.
|
|
481
514
|
|
package/docs/tr/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-08-06
|
|
4
4
|
title: Yapılandırma (Configuration)
|
|
5
5
|
description: Uygulamanız için Intlayer'ı nasıl yapılandıracağınızı öğrenin. Intlayer'ı ihtiyaçlarınıza göre özelleştirmek için çeşitli ayarları ve seçenekleri anlayın.
|
|
6
6
|
keywords:
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 9.1.3
|
|
18
|
+
date: 2026-08-06
|
|
19
|
+
changes: "`routing.enableProxy` üç durumlu hale getirildi: ayarlanmamış (auto), `true`, `false`"
|
|
17
20
|
- version: 9.0.0
|
|
18
21
|
date: 2026-07-11
|
|
19
22
|
changes: "`analytics` yapılandırması eklendi"
|
|
@@ -235,6 +238,19 @@ const config: IntlayerConfig = {
|
|
|
235
238
|
*/
|
|
236
239
|
mode: "prefix-no-default",
|
|
237
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Intlayer yerel ayar yönlendirme proxy'sini (middleware) etkinleştirir.
|
|
243
|
+
* dev, preview ve SSR ortamlarında yerel ayar tespiti, yönlendirme ve yeniden yazmayı yönetir.
|
|
244
|
+
* - ayarlanmamış (auto): dev ve preview sunucuları, çerezlerde ve başlıklarda saklanan
|
|
245
|
+
* yerel ayarı yok sayarak yönlendirmeyi URL odaklı tutar. Önekler yine çözümlenir,
|
|
246
|
+
* yerel ayar yine kalıcı hale getirilir ve Accept-Language tespiti yine geçerlidir.
|
|
247
|
+
* Üretimde `true` gibi davranır.
|
|
248
|
+
* - true: her ortamda tam davranış.
|
|
249
|
+
* - false: yerel ayar yönlendirmesi yok.
|
|
250
|
+
* Varsayılan: undefined (auto)
|
|
251
|
+
*/
|
|
252
|
+
enableProxy: undefined,
|
|
253
|
+
|
|
238
254
|
/**
|
|
239
255
|
* Kullanıcının seçtiği dilin nerede saklanacağı.
|
|
240
256
|
* Seçenekler: 'cookie', 'localStorage', 'sessionStorage', 'header' veya bunların bir dizisi.
|
|
@@ -713,13 +729,14 @@ Analitik kesinlikle opt-in'dir: `analytics.enabled` açıkça `true` olarak ayar
|
|
|
713
729
|
|
|
714
730
|
URL yapısı, dil saklama ve ara yazılım yönetimi dahil olmak üzere yönlendirme davranışını kontrol eden ayarlar.
|
|
715
731
|
|
|
716
|
-
| Alan
|
|
717
|
-
|
|
|
718
|
-
| `mode`
|
|
719
|
-
| `
|
|
720
|
-
| `
|
|
721
|
-
| `
|
|
722
|
-
| `
|
|
732
|
+
| Alan | Açıklama | Tür | Varsayılan | Örnek | Not |
|
|
733
|
+
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
734
|
+
| `mode` | Dil yönetimi için URL yönlendirme modu. | `'prefix-no-default'` | <br/> `'prefix-all'` | <br/> `'no-prefix'` | <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) veya `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: dil başka yollarla yönetilir. `'search-params'`: `/dashboard?locale=fr` | Tanımlama bilgisi (cookie) veya dil saklama yönetimini etkilemez. |
|
|
735
|
+
| `enableProxy` | Intlayer yerel ayar yönlendirme proxy'sini (middleware) etkinleştirir. | `boolean` | <br/> `undefined` | `undefined` (auto) | `true` | • Ayarlanmamış (auto): dev ve preview sunucuları çerezlerde/başlıklarda saklanan yerel ayarı yönlendirme kaynağı olarak yok sayar; önekler, kalıcılık ve `Accept-Language` tespiti yine geçerlidir. Üretimde `true` gibi davranır.<br/>• `true`: her yerde tam davranış.<br/>• `false`: yerel ayar yönlendirmesi yok. Next.js’te `intlayerProxy` middleware’i devre dışı geçiş haline gelir. |
|
|
736
|
+
| `storage` | İstemcide dilin saklanması için yapılandırma. | `false` | <br/> `'cookie'` | <br/> `'localStorage'` | <br/> `'sessionStorage'` | <br/> `'header'` | <br/> `CookiesAttributes` | <br/> `StorageAttributes` | <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Aşağıdaki Saklama Seçenekleri tablosuna bakın. |
|
|
737
|
+
| `basePath` | Uygulama URL'leri için temel yol. | `string` | `''` | `'/my-app'` | Uygulama `https://example.com/my-app` adresindeyse, basePath `'/my-app'` olur ve URL'ler `https://example.com/my-app/en` şekline dönüşür. |
|
|
738
|
+
| `rewrite` | Belirli yollar için varsayılan yönlendirme modunu geçersiz kılan özel URL yeniden yazma kuralları. Dinamik `[param]` parametrelerini destekler. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Aşağıdaki örneğe bakın | • Yeniden yazma kuralları `mode` üzerinde önceliğe sahiptir.<br/>• Next.js ve Vite ile çalışır.<br/>• `getLocalizedUrl()` eşleşen kuralları otomatik olarak uygular.<br/>• Şuna bakın: [Özel URL Yeniden Yazmaları](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
|
|
739
|
+
| `domains` | Alan adı tabanlı yönlendirme için dilleri alan adı ana bilgisayar adlarıyla eşleştirir. Ayarlandığında, o dilin URL'leri bu alan adını temel (mutlak URL) olarak kullanır ve yola dil öneki eklenmez. | `Partial<Record<Locale, string>>` | `undefined` | `{ zh: 'intlayer.zh', fr: 'intlayer.org' }` | • Ana bilgisayar adına dahil edilmediğinde varsayılan protokol `https://`'dir.<br/>• Alan adının kendisi dili tanımladığı için `/zh/` öneki eklenmez.<br/>• `getLocalizedUrl('/', 'zh')`, `https://intlayer.zh/` döndürür. |
|
|
723
740
|
|
|
724
741
|
**`rewrite` Örneği**:
|
|
725
742
|
|
|
@@ -25,6 +25,8 @@ author: aymericzip
|
|
|
25
25
|
|
|
26
26
|
# Dosya İçeriği / Intlayer'da Dosyaları Gömme
|
|
27
27
|
|
|
28
|
+
Intlayer'da, `file` işlevi dış dosya içeriğini bir sözlüğe gömmeyi sağlar. Bu yaklaşım, Intlayer'ın kaynak dosyayı tanımasını sağlayarak Intlayer Visual Editor ve CMS ile kusursuz bir entegrasyon sağlar.
|
|
29
|
+
|
|
28
30
|
## Dosya Gömme Nasıl Çalışır
|
|
29
31
|
|
|
30
32
|
Intlayer'da `file` fonksiyonu, harici dosya içeriğini bir sözlüğe gömmeyi sağlar. Bu yaklaşım, Intlayer'ın kaynak dosyayı tanımasını sağlar ve Intlayer Görsel Düzenleyici ve CMS ile sorunsuz entegrasyonu sağlar. Doğrudan `import`, `require` veya `fs` dosya okuma yöntemlerinden farklı olarak, `file` kullanmak dosyayı sözlükle ilişkilendirir ve Intlayer'ın dosya düzenlendiğinde içeriği dinamik olarak takip etmesine ve güncellemesine izin verir.
|