@intlayer/docs 9.1.3 → 9.2.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/rag_powered_documentation_assistant.md +7 -0
- package/blog/de/rag_powered_documentation_assistant.md +6 -0
- package/blog/en-GB/rag_powered_documentation_assistant.md +6 -0
- package/blog/es/rag_powered_documentation_assistant.md +7 -0
- package/blog/fr/i18n_meaning.md +7 -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/next-i18next_vs_next-intl_vs_intlayer.md +119 -42
- package/blog/hi/rag_powered_documentation_assistant.md +7 -0
- package/blog/id/rag_powered_documentation_assistant.md +6 -0
- package/blog/it/rag_powered_documentation_assistant.md +6 -0
- package/blog/ja/rag_powered_documentation_assistant.md +7 -0
- package/blog/ko/list_i18n_technologies/frameworks/react.md +7 -7
- package/blog/ko/rag_powered_documentation_assistant.md +6 -0
- package/blog/pl/rag_powered_documentation_assistant.md +6 -0
- package/blog/pt/rag_powered_documentation_assistant.md +6 -0
- 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/rag_powered_documentation_assistant.md +6 -0
- package/blog/vi/rag_powered_documentation_assistant.md +6 -0
- 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/generated/blog.entry.cjs +27 -27
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +234 -214
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +17 -17
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +2 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +27 -27
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +234 -214
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +17 -17
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +2 -2
- package/dist/esm/generated/legal.entry.mjs.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/docs/ar/analytics.md +222 -0
- package/docs/ar/autoFill.md +28 -9
- 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/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/configuration.md +25 -8
- package/docs/bn/intlayer_with_angular_21.md +9 -9
- 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/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/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/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-GB/analytics.md +222 -0
- package/docs/en-GB/autoFill.md +26 -7
- 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/configuration.md +25 -8
- package/docs/nl/intlayer_with_angular_21.md +9 -9
- package/docs/pl/analytics.md +220 -0
- 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/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/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/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/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/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/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/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/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/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/configuration.md +25 -8
- package/docs/ur/intlayer_with_angular_21.md +9 -9
- package/docs/vi/analytics.md +222 -0
- 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/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/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/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/intlayer_with_angular_21.md +7 -7
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +27 -27
- package/src/generated/docs.entry.ts +234 -214
- package/src/generated/frequentQuestions.entry.ts +17 -17
- package/src/generated/legal.entry.ts +2 -2
package/docs/tr/formatters.md
CHANGED
|
@@ -46,34 +46,6 @@ author: aymericzip
|
|
|
46
46
|
|
|
47
47
|
Intlayer, yerel `Intl` API'leri üzerine inşa edilmiş hafif yardımcılar kümesi sağlar, ayrıca ağır biçimlendiricileri tekrar tekrar oluşturmaktan kaçınmak için önbelleğe alınmış bir `Intl` sarmalayıcısı. Bu yardımcılar tamamen yerel ayar duyarlıdır ve ana `intlayer` paketinden kullanılabilir.
|
|
48
48
|
|
|
49
|
-
### İçe Aktarma
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
import {
|
|
53
|
-
Intl,
|
|
54
|
-
number,
|
|
55
|
-
percentage,
|
|
56
|
-
currency,
|
|
57
|
-
date,
|
|
58
|
-
relativeTime,
|
|
59
|
-
units,
|
|
60
|
-
compact,
|
|
61
|
-
list,
|
|
62
|
-
getLocaleName,
|
|
63
|
-
getLocaleLang,
|
|
64
|
-
getLocaleFromPath,
|
|
65
|
-
getPathWithoutLocale,
|
|
66
|
-
getLocalizedUrl,
|
|
67
|
-
getHTMLTextDir,
|
|
68
|
-
getContent,
|
|
69
|
-
getTranslation,
|
|
70
|
-
getIntlayer,
|
|
71
|
-
getIntlayerAsync,
|
|
72
|
-
} from "intlayer";
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
React kullanıyorsanız, kancalar da kullanılabilir; `react-intlayer/format` bölümüne bakın.
|
|
76
|
-
|
|
77
49
|
## Önbelleğe Alınmış Intl
|
|
78
50
|
|
|
79
51
|
Dışa aktarılan `Intl`, global `Intl` etrafında ince, önbelleğe alınmış bir sarmalayıcıdır. `NumberFormat`, `DateTimeFormat`, `RelativeTimeFormat`, `ListFormat`, `DisplayNames`, `Collator` ve `PluralRules` örneklerini önbelleğe alır, bu da aynı biçimlendiriciyi tekrar tekrar yeniden oluşturmaktan kaçınır.
|
|
@@ -110,86 +82,8 @@ pluralRules.select(1); // "one"
|
|
|
110
82
|
pluralRules.select(2); // "other"
|
|
111
83
|
```
|
|
112
84
|
|
|
113
|
-
## Ek Intl Yardımcıları
|
|
114
|
-
|
|
115
|
-
Biçimlendirici yardımcılarının ötesinde, önbelleğe alınmış Intl sarmalayıcısını doğrudan diğer Intl özellikleri için de kullanabilirsiniz:
|
|
116
|
-
|
|
117
|
-
### `Intl.DisplayNames`
|
|
118
|
-
|
|
119
|
-
Diller, bölgeler, para birimleri ve yazılar için yerelleştirilmiş adlar için:
|
|
120
|
-
|
|
121
|
-
```ts
|
|
122
|
-
import { Intl } from "intlayer";
|
|
123
|
-
|
|
124
|
-
const languageNames = new Intl.DisplayNames("en", { type: "language" });
|
|
125
|
-
languageNames.of("fr"); // "French"
|
|
126
|
-
|
|
127
|
-
const regionNames = new Intl.DisplayNames("fr", { type: "region" });
|
|
128
|
-
regionNames.of("US"); // "États-Unis"
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### `Intl.Collator`
|
|
132
|
-
|
|
133
|
-
Yerel ayar duyarlı dize karşılaştırması ve sıralama için:
|
|
134
|
-
|
|
135
|
-
```ts
|
|
136
|
-
import { Intl } from "intlayer";
|
|
137
|
-
|
|
138
|
-
const collator = new Intl.Collator("de", {
|
|
139
|
-
sensitivity: "base",
|
|
140
|
-
numeric: true,
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
const words = ["äpfel", "zebra", "100", "20"];
|
|
144
|
-
words.sort(collator.compare); // ["20", "100", "äpfel", "zebra"]
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### `Intl.PluralRules`
|
|
148
|
-
|
|
149
|
-
Farklı yerel ayarlarda çoğul formları belirlemek için:
|
|
150
|
-
|
|
151
|
-
```ts
|
|
152
|
-
import { Intl } from "intlayer";
|
|
153
|
-
|
|
154
|
-
const pluralRules = new Intl.PluralRules("ar");
|
|
155
|
-
pluralRules.select(0); // "zero"
|
|
156
|
-
pluralRules.select(1); // "one"
|
|
157
|
-
pluralRules.select(2); // "two"
|
|
158
|
-
pluralRules.select(3); // "few"
|
|
159
|
-
pluralRules.select(11); // "many"
|
|
160
|
-
```
|
|
161
|
-
|
|
162
85
|
## Yerel Ayar Yardımcıları
|
|
163
86
|
|
|
164
|
-
### `getLocaleName(displayLocale, targetLocale?)`
|
|
165
|
-
|
|
166
|
-
Bir yerel ayar adını başka bir yerel ayarda alır:
|
|
167
|
-
|
|
168
|
-
```ts
|
|
169
|
-
import { getLocaleName } from "intlayer";
|
|
170
|
-
|
|
171
|
-
getLocaleName("fr", "en"); // "French"
|
|
172
|
-
getLocaleName("en", "fr"); // "anglais"
|
|
173
|
-
getLocaleName("de", "es"); // "alemán"
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
- **displayLocale**: Adı alınacak yerel ayar
|
|
177
|
-
- **targetLocale**: Adın görüntüleneceği yerel ayar (varsayılan olarak displayLocale)
|
|
178
|
-
|
|
179
|
-
### `getLocaleLang(locale?)`
|
|
180
|
-
|
|
181
|
-
Bir yerel ayar dizesinden dil kodunu çıkarır:
|
|
182
|
-
|
|
183
|
-
```ts
|
|
184
|
-
import { getLocaleLang } from "intlayer";
|
|
185
|
-
|
|
186
|
-
getLocaleLang("en-US"); // "en"
|
|
187
|
-
getLocaleLang("fr-CA"); // "fr"
|
|
188
|
-
getLocaleLang("de"); // "de"
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
- **locale**: Dili çıkarılacak yerel ayar (varsayılan olarak mevcut yerel ayar)
|
|
192
|
-
|
|
193
87
|
### `getLocaleFromPath(inputUrl)`
|
|
194
88
|
|
|
195
89
|
Bir URL veya yol adından yerel ayar segmentini çıkarır:
|
|
@@ -330,9 +224,11 @@ const content = await getIntlayerAsync("common", "fr");
|
|
|
330
224
|
|
|
331
225
|
Aşağıdaki tüm yardımcılar `intlayer`'dan dışa aktarılır.
|
|
332
226
|
|
|
333
|
-
### `
|
|
227
|
+
### `percentage(value, options?)`
|
|
228
|
+
|
|
229
|
+
Bir sayıyı yüzde dizesi olarak biçimlendirir.
|
|
334
230
|
|
|
335
|
-
|
|
231
|
+
Davranış: 1'den büyük değerler tam yüzdeler olarak yorumlanır ve normalleştirilir (ör. `25` → `25%`, `0.25` → `25%`).
|
|
336
232
|
|
|
337
233
|
- **value**: `number | string`
|
|
338
234
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
@@ -340,125 +236,196 @@ Yerel ayar duyarlı gruplandırma ve ondalıklar kullanarak sayısal bir değeri
|
|
|
340
236
|
Örnekler:
|
|
341
237
|
|
|
342
238
|
```ts
|
|
343
|
-
import {
|
|
239
|
+
import { percentage } from "intlayer";
|
|
240
|
+
|
|
241
|
+
percentage(0.25); // "25%"
|
|
242
|
+
percentage(25); // "25%"
|
|
243
|
+
percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Ek Intl Özellikleri
|
|
344
247
|
|
|
248
|
+
#### `number(value, options?)`
|
|
249
|
+
|
|
250
|
+
Sayısal bir değeri yerel ayara duyarlı gruplama ve ondalık sayılarla biçimlendirir.
|
|
251
|
+
|
|
252
|
+
- **value**: `number | string`
|
|
253
|
+
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
254
|
+
|
|
255
|
+
```ts
|
|
345
256
|
number(123456.789); // "123,456.789" (en-US'de)
|
|
346
257
|
number("1000000", { locale: "fr" }); // "1 000 000"
|
|
347
258
|
number(1234.5, { minimumFractionDigits: 2 }); // "1,234.50"
|
|
348
259
|
```
|
|
349
260
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
Bir sayıyı yüzde dizesi olarak biçimlendirir.
|
|
261
|
+
#### `percentage(value, options?)`
|
|
353
262
|
|
|
354
|
-
|
|
263
|
+
Bir sayıyı yüzde dizesi olarak biçimlendirir. 1'den büyük değerler normalize edilir (örneğin, `25` → `25%`, `0.25` → `25%`).
|
|
355
264
|
|
|
356
265
|
- **value**: `number | string`
|
|
357
266
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
358
267
|
|
|
359
|
-
Örnekler:
|
|
360
|
-
|
|
361
268
|
```ts
|
|
362
|
-
import { percentage } from "intlayer";
|
|
363
|
-
|
|
364
269
|
percentage(0.25); // "25%"
|
|
365
270
|
percentage(25); // "25%"
|
|
366
271
|
percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
|
|
367
272
|
```
|
|
368
273
|
|
|
369
|
-
|
|
274
|
+
#### `currency(value, options?)`
|
|
370
275
|
|
|
371
|
-
Bir değeri yerelleştirilmiş para
|
|
276
|
+
Bir değeri yerelleştirilmiş para biriminde biçimlendirir. Varsayılan olarak `USD` kullanılır.
|
|
372
277
|
|
|
373
278
|
- **value**: `number | string`
|
|
374
279
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
375
|
-
-
|
|
376
|
-
|
|
377
|
-
Örnekler:
|
|
280
|
+
- Ortak: `currency`, `currencyDisplay` (`"symbol" | "code" | "name"`)
|
|
378
281
|
|
|
379
282
|
```ts
|
|
380
|
-
import { currency } from "intlayer";
|
|
381
|
-
|
|
382
283
|
currency(1234.5, { currency: "EUR" }); // "€1,234.50"
|
|
383
284
|
currency("5000", { locale: "fr", currency: "CAD", currencyDisplay: "code" }); // "5 000,00 CAD"
|
|
384
285
|
```
|
|
385
286
|
|
|
386
|
-
|
|
287
|
+
#### `date(date, optionsOrPreset?)`
|
|
387
288
|
|
|
388
|
-
|
|
289
|
+
Bir tarih/saat değerini biçimlendirir.
|
|
389
290
|
|
|
390
291
|
- **date**: `Date | string | number`
|
|
391
|
-
- **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` veya
|
|
392
|
-
- Ön ayarlar: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
|
|
393
|
-
|
|
394
|
-
Örnekler:
|
|
292
|
+
- **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` veya preset: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
|
|
395
293
|
|
|
396
294
|
```ts
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
date(new Date(), "short"); // ör. "08/02/25, 14:30"
|
|
295
|
+
date(new Date(), "short"); // örn., "08/02/25, 14:30"
|
|
400
296
|
date("2025-08-02T14:30:00Z", { locale: "fr", month: "long", day: "numeric" }); // "2 août"
|
|
401
297
|
```
|
|
402
298
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
### `relativeTime(from, to = new Date(), options?)`
|
|
299
|
+
#### `relativeTime(from, to?, options?)`
|
|
406
300
|
|
|
407
|
-
|
|
301
|
+
İki zaman noktası arasındaki göreceli zamanı biçimlendirir.
|
|
408
302
|
|
|
409
|
-
- Doğal ifadeler için ilk argüman olarak "now" geçin ve ikinci olarak hedefi.
|
|
410
303
|
- **from**: `Date | string | number`
|
|
411
304
|
- **to**: `Date | string | number` (varsayılan olarak `new Date()`)
|
|
412
|
-
- **options**: `{ locale
|
|
413
|
-
- Varsayılan `unit` `"second"`.
|
|
414
|
-
|
|
415
|
-
Örnekler:
|
|
305
|
+
- **options**: `{ locale?, unit?, numeric?, style? }`
|
|
416
306
|
|
|
417
307
|
```ts
|
|
418
|
-
import { relativeTime } from "intlayer";
|
|
419
|
-
|
|
420
308
|
const now = new Date();
|
|
421
309
|
const in3Days = new Date(now.getTime() + 3 * 864e5);
|
|
422
|
-
relativeTime(now, in3Days, { unit: "day" }); // "
|
|
310
|
+
relativeTime(now, in3Days, { unit: "day" }); // "3 gün içinde"
|
|
423
311
|
|
|
424
312
|
const twoHoursAgo = new Date(now.getTime() - 2 * 3600e3);
|
|
425
|
-
relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2
|
|
313
|
+
relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2 saat önce"
|
|
426
314
|
```
|
|
427
315
|
|
|
428
|
-
|
|
316
|
+
#### `units(value, options?)`
|
|
429
317
|
|
|
430
|
-
|
|
318
|
+
Bir sayısal değeri bir birimle biçimlendirir.
|
|
431
319
|
|
|
432
320
|
- **value**: `number | string`
|
|
433
321
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
434
|
-
- Yaygın
|
|
435
|
-
- Varsayılanlar: `unit: 'day'`, `unitDisplay: 'short'`, `useGrouping: false`
|
|
436
|
-
|
|
437
|
-
Örnekler:
|
|
322
|
+
- Yaygın: `unit` (örn. `"kilometer"`, `"byte"`), `unitDisplay` (`"short" | "narrow" | "long"`)
|
|
438
323
|
|
|
439
324
|
```ts
|
|
440
|
-
import { units } from "intlayer";
|
|
441
|
-
|
|
442
325
|
units(5, { unit: "kilometer", unitDisplay: "long", locale: "en-GB" }); // "5 kilometers"
|
|
443
|
-
units(1024, { unit: "byte", unitDisplay: "narrow" }); // "1,024B"
|
|
326
|
+
units(1024, { unit: "byte", unitDisplay: "narrow" }); // "1,024B"
|
|
444
327
|
```
|
|
445
328
|
|
|
446
|
-
|
|
329
|
+
#### `compact(value, options?)`
|
|
447
330
|
|
|
448
|
-
|
|
331
|
+
Bir sayıyı compact gösterimini kullanarak biçimlendirir.
|
|
449
332
|
|
|
450
333
|
- **value**: `number | string`
|
|
451
|
-
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
452
|
-
|
|
453
|
-
Örnekler:
|
|
334
|
+
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
454
335
|
|
|
455
336
|
```ts
|
|
456
|
-
import { compact } from "intlayer";
|
|
457
|
-
|
|
458
337
|
compact(1200); // "1.2K"
|
|
459
338
|
compact("1000000", { locale: "fr", compactDisplay: "long" }); // "1 million"
|
|
460
339
|
```
|
|
461
340
|
|
|
341
|
+
#### `list(values, options?)`
|
|
342
|
+
|
|
343
|
+
Bir diziyi yerelleştirilmiş bir liste dizesine biçimlendirir.
|
|
344
|
+
|
|
345
|
+
- **values**: `(string | number)[]`
|
|
346
|
+
- **options**: `Intl.ListFormatOptions & { locale?: LocalesValues }`
|
|
347
|
+
- Yaygın: `type` (`"conjunction" | "disjunction" | "unit"`), `style` (`"long" | "short" | "narrow"`)
|
|
348
|
+
|
|
349
|
+
```ts
|
|
350
|
+
list(["apple", "banana", "orange"]); // "apple, banana, and orange"
|
|
351
|
+
list(["red", "green", "blue"], { locale: "fr", type: "disjunction" }); // "rouge, vert ou bleu"
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## Cached Intl
|
|
355
|
+
|
|
356
|
+
`intlayer`'dan dışa aktarılan `Intl`, global `Intl` etrafında bir cache wrapper'ıdır. Formatter örneklerini (`NumberFormat`, `DateTimeFormat`, vb.) memoize eder, bunları tekrar tekrar oluşturmaktan kaçınır ve performansı artırır.
|
|
357
|
+
|
|
358
|
+
```ts
|
|
359
|
+
import { Intl } from "intlayer";
|
|
360
|
+
|
|
361
|
+
// Sayı biçimlendirme
|
|
362
|
+
const numberFormat = new Intl.NumberFormat("en-GB", {
|
|
363
|
+
style: "currency",
|
|
364
|
+
currency: "GBP",
|
|
365
|
+
});
|
|
366
|
+
numberFormat.format(1234.5); // "£1,234.50"
|
|
367
|
+
|
|
368
|
+
// Diller, bölgeler vb. için görünen adlar
|
|
369
|
+
const displayNames = new Intl.DisplayNames("fr", { type: "language" });
|
|
370
|
+
displayNames.of("en"); // "anglais"
|
|
371
|
+
|
|
372
|
+
// Sıralama için harflerin sıralanması
|
|
373
|
+
const collator = new Intl.Collator("fr", { sensitivity: "base" });
|
|
374
|
+
collator.compare("é", "e"); // 0 (eşit)
|
|
375
|
+
|
|
376
|
+
// Çoğul kuralları
|
|
377
|
+
const pluralRules = new Intl.PluralRules("fr");
|
|
378
|
+
pluralRules.select(1); // "one"
|
|
379
|
+
pluralRules.select(2); // "other"
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Ek Intl Özellikleri
|
|
383
|
+
|
|
384
|
+
#### `Intl.DisplayNames`
|
|
385
|
+
|
|
386
|
+
Diller, bölgeler, para birimleri ve yazı sistemlerinin yerelleştirilmiş adları için:
|
|
387
|
+
|
|
388
|
+
```ts
|
|
389
|
+
import { Intl } from "intlayer";
|
|
390
|
+
|
|
391
|
+
const languageNames = new Intl.DisplayNames("en", { type: "language" });
|
|
392
|
+
languageNames.of("fr"); // "French"
|
|
393
|
+
|
|
394
|
+
const regionNames = new Intl.DisplayNames("fr", { type: "region" });
|
|
395
|
+
regionNames.of("US"); // "États-Unis"
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
#### `Intl.Collator`
|
|
399
|
+
|
|
400
|
+
Locale'a duyarlı string karşılaştırması ve sıralaması için:
|
|
401
|
+
|
|
402
|
+
```ts
|
|
403
|
+
import { Intl } from "intlayer";
|
|
404
|
+
|
|
405
|
+
const collator = new Intl.Collator("de", {
|
|
406
|
+
sensitivity: "base",
|
|
407
|
+
numeric: true,
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
const words = ["äpfel", "zebra", "100", "20"];
|
|
411
|
+
words.sort(collator.compare); // ["20", "100", "äpfel", "zebra"]
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
#### `Intl.PluralRules`
|
|
415
|
+
|
|
416
|
+
Farklı yerel ayarlarda çoğul formlarını belirlemek için:
|
|
417
|
+
|
|
418
|
+
```ts
|
|
419
|
+
import { Intl } from "intlayer";
|
|
420
|
+
|
|
421
|
+
const pluralRules = new Intl.PluralRules("ar");
|
|
422
|
+
pluralRules.select(0); // "zero"
|
|
423
|
+
pluralRules.select(1); // "one"
|
|
424
|
+
pluralRules.select(2); // "two"
|
|
425
|
+
pluralRules.select(3); // "few"
|
|
426
|
+
pluralRules.select(11); // "many"
|
|
427
|
+
```
|
|
428
|
+
|
|
462
429
|
## Locale Utilities
|
|
463
430
|
|
|
464
431
|
### `list(values, options?)`
|
|
@@ -491,40 +458,27 @@ getLocaleLang("en-US"); // "en"
|
|
|
491
458
|
getLocaleLang("fr-CA"); // "fr"
|
|
492
459
|
```
|
|
493
460
|
|
|
494
|
-
|
|
461
|
+
### `getLocaleFromPath(inputUrl)`
|
|
462
|
+
|
|
463
|
+
Bir URL veya pathname'den locale segmentini çıkarır:
|
|
495
464
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
- Bu yardımcılar ince sarmalayıcılardır; gelişmiş biçimlendirme için standart `Intl` seçeneklerini geçirin.
|
|
465
|
+
```ts
|
|
466
|
+
import { getLocaleFromPath } from "intlayer";
|
|
499
467
|
|
|
500
|
-
|
|
468
|
+
getLocaleFromPath("/en/dashboard"); // "en"
|
|
469
|
+
getLocaleFromPath("/fr/dashboard"); // "fr"
|
|
470
|
+
getLocaleFromPath("/dashboard"); // "en" (varsayılan locale)
|
|
471
|
+
```
|
|
501
472
|
|
|
502
|
-
|
|
473
|
+
### `getPathWithoutLocale(inputUrl, locales?)`
|
|
503
474
|
|
|
504
|
-
|
|
475
|
+
URL'den yerel ayar segmentini kaldırır:
|
|
505
476
|
|
|
506
477
|
```ts
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
date,
|
|
512
|
-
relativeTime,
|
|
513
|
-
units,
|
|
514
|
-
compact,
|
|
515
|
-
list,
|
|
516
|
-
Intl,
|
|
517
|
-
getLocaleName,
|
|
518
|
-
getLocaleLang,
|
|
519
|
-
getLocaleFromPath,
|
|
520
|
-
getPathWithoutLocale,
|
|
521
|
-
getLocalizedUrl,
|
|
522
|
-
getHTMLTextDir,
|
|
523
|
-
getContent,
|
|
524
|
-
getTranslation,
|
|
525
|
-
getIntlayer,
|
|
526
|
-
getIntlayerAsync,
|
|
527
|
-
} from "intlayer";
|
|
478
|
+
import { getPathWithoutLocale } from "intlayer";
|
|
479
|
+
|
|
480
|
+
getPathWithoutLocale("/en/dashboard"); // "/dashboard"
|
|
481
|
+
getPathWithoutLocale("/fr/dashboard"); // "/dashboard"
|
|
528
482
|
```
|
|
529
483
|
|
|
530
484
|
### React
|
package/docs/tr/intlayer_CMS.md
CHANGED
|
@@ -247,6 +247,158 @@ Bu komut, başlangıç içerik sözlüklerinizi yükler ve Intlayer platformu ü
|
|
|
247
247
|
|
|
248
248
|
Daha sonra sözlüğünüzü [Intlayer CMS](https://app.intlayer.org/content) üzerinde görüntüleyip yönetebileceksiniz.
|
|
249
249
|
|
|
250
|
+
## `@intlayer/api` SDK ile Programmatic Erişim
|
|
251
|
+
|
|
252
|
+
CLI ve visual editor'ın ötesinde, Intlayer [`@intlayer/api`](https://www.npmjs.com/package/@intlayer/api) paketinde yazılı bir SDK ile birlikte gelir. CMS'i bir **headless içerik veritabanı** olarak ele almanızı sağlar: projeleri alabilir, sözlükleri alabilir ve bunları doğrudan kendi uygulamanızdan, script'lerinizden veya CI pipeline'ınızdan gönderebilir veya güncelleyebilirsiniz.
|
|
253
|
+
|
|
254
|
+
SDK, kimlik doğrulamasını sizin için yönetir. `clientId` ve `clientSecret` değerleriniz mevcut olduğu sürece (Intlayer yapılandırmanızda veya ortam değişkenlerinde), OAuth2 erişim tokenini otomatik olarak alır ve yeniler, her isteği imzalar.
|
|
255
|
+
|
|
256
|
+
### Kurulum
|
|
257
|
+
|
|
258
|
+
```bash packageManager="npm"
|
|
259
|
+
npm install @intlayer/api
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
```bash packageManager="yarn"
|
|
263
|
+
yarn add @intlayer/api
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
```bash packageManager="pnpm"
|
|
267
|
+
pnpm add @intlayer/api
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
```bash packageManager="bun"
|
|
271
|
+
bun add @intlayer/api
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Nasıl çalışır: authenticator + endpoints
|
|
275
|
+
|
|
276
|
+
SDK, paket boyutunuzu küçük tutmak amacıyla **iki ayrı import**'a bölünmüştür:
|
|
277
|
+
|
|
278
|
+
1. `createIntlayerCMS` — hafif bir **authenticator** oluşturur. Yalnızca kimlik bilgilerini ve yönetilen erişim token'ını taşır; belirli bir alan adı hakkında hiçbir şey bilmez.
|
|
279
|
+
2. `dictionaryEndpoint`, `projectEndpoint`, … — alan başına **endpoint bağlayıcıları**, her biri kendi alt yolundan içe aktarılır (`@intlayer/api/dictionary`, `@intlayer/api/project`, …). Authenticator'u ihtiyacınız olan endpoint'e geçirirsiniz.
|
|
280
|
+
|
|
281
|
+
Her endpoint ayrı olarak içe aktarıldığından, paketiniz yalnızca gerçekten kullandığınız alanları içerir — `dictionaryEndpoint` içe aktarmak hiçbir zaman proje, AI veya başka bir alan istemcisini içeri çekmez.
|
|
282
|
+
|
|
283
|
+
```typescript fileName="cms.ts" codeFormat="typescript"
|
|
284
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
285
|
+
|
|
286
|
+
// Yapılandırma isteğe bağlıdır: atlanırsa, kimlik bilgileri
|
|
287
|
+
// `@intlayer/config/built` dosyasından okunur; bu dosya INTLAYER_CLIENT_ID ve
|
|
288
|
+
// INTLAYER_CLIENT_SECRET ortam değişkenlerini çözer.
|
|
289
|
+
export const cmsAuthenticator = createIntlayerCMS();
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
> [!WARNING]
|
|
293
|
+
> CMS kimlik bilgileri (`clientId` / `clientSecret`) içeriğinize **yazma erişimi** verir. Authenticator'u yalnızca **sunucu tarafında** (server actions, route handlers, scripts, CI) oluşturun. İstemci tarafı koduna asla içe aktarmayın veya kimlik bilgilerinizi tarayıcıya maruz bırakmayın.
|
|
294
|
+
|
|
295
|
+
Yapı zamanı yapılandırmasına güvenmemeyi tercih ederseniz, kimlik bilgilerini açıkça geçirin:
|
|
296
|
+
|
|
297
|
+
```typescript fileName="cms.ts" codeFormat="typescript"
|
|
298
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
299
|
+
|
|
300
|
+
export const cmsAuthenticator = createIntlayerCMS({
|
|
301
|
+
editor: {
|
|
302
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
303
|
+
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
304
|
+
// İsteğe bağlı, kendi barındırılan arka uçlar için:
|
|
305
|
+
// backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
306
|
+
},
|
|
307
|
+
});
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
> [Intlayer Dashboard - Projects](https://app.intlayer.org/projects) içinde yeni bir erişim anahtarı oluşturarak kimlik bilgilerinizi alın.
|
|
311
|
+
|
|
312
|
+
### Projeleri Getir
|
|
313
|
+
|
|
314
|
+
```typescript fileName="projects.ts" codeFormat="typescript"
|
|
315
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
316
|
+
import { projectEndpoint } from "@intlayer/api/project";
|
|
317
|
+
|
|
318
|
+
const cmsAuthenticator = createIntlayerCMS();
|
|
319
|
+
|
|
320
|
+
// Kimlik bilgilerinizle erişilebilir projeleri listeleyin
|
|
321
|
+
const { data: projects } =
|
|
322
|
+
await projectEndpoint(cmsAuthenticator).getProjects();
|
|
323
|
+
|
|
324
|
+
// Seçilen projenin toplu lokalizasyon içgörülerini okuyun
|
|
325
|
+
const { data: insights } =
|
|
326
|
+
await projectEndpoint(cmsAuthenticator).getProjectInsights();
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Sözlükleri Getir
|
|
330
|
+
|
|
331
|
+
```typescript fileName="read-dictionaries.ts" codeFormat="typescript"
|
|
332
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
333
|
+
import { dictionaryEndpoint } from "@intlayer/api/dictionary";
|
|
334
|
+
|
|
335
|
+
const cmsAuthenticator = createIntlayerCMS();
|
|
336
|
+
|
|
337
|
+
// Projenin tüm uzak sözlüklerini listele
|
|
338
|
+
const { data: dictionaries } =
|
|
339
|
+
await dictionaryEndpoint(cmsAuthenticator).getDictionaries();
|
|
340
|
+
|
|
341
|
+
// Veya anahtara göre tek bir sözlük al
|
|
342
|
+
const { data: dictionary } = await dictionaryEndpoint(
|
|
343
|
+
cmsAuthenticator
|
|
344
|
+
).getDictionary("my-first-dictionary-key");
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### Sözlükleri push etme ve güncelleme
|
|
348
|
+
|
|
349
|
+
İçeriği geri yazmak için CMS'yi bir veritabanı olarak kullanın:
|
|
350
|
+
|
|
351
|
+
```typescript fileName="write-dictionaries.ts" codeFormat="typescript"
|
|
352
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
353
|
+
import { dictionaryEndpoint } from "@intlayer/api/dictionary";
|
|
354
|
+
|
|
355
|
+
const cmsAuthenticator = createIntlayerCMS();
|
|
356
|
+
|
|
357
|
+
// Yeni bir sözlük oluştur
|
|
358
|
+
await dictionaryEndpoint(cmsAuthenticator).addDictionary({
|
|
359
|
+
key: "my-first-dictionary-key",
|
|
360
|
+
content: { title: "Hello world" },
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
// Sözlüklerin bir batch'ini upsert et (bunları bir çağrıda oluştur veya güncelle)
|
|
364
|
+
await dictionaryEndpoint(cmsAuthenticator).pushDictionaries([
|
|
365
|
+
{ key: "home", content: { title: "Home" } },
|
|
366
|
+
{ key: "about", content: { title: "About" } },
|
|
367
|
+
]);
|
|
368
|
+
|
|
369
|
+
// Mevcut bir sözlüğü güncelle
|
|
370
|
+
await dictionaryEndpoint(cmsAuthenticator).updateDictionary({
|
|
371
|
+
id: "<dictionary-id>",
|
|
372
|
+
key: "home",
|
|
373
|
+
content: { title: "Updated title" },
|
|
374
|
+
});
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
> İpucu: kendinizi tekrarlamaktan kaçınmak için bağlı endpoint'i yeniden kullanın:
|
|
378
|
+
>
|
|
379
|
+
> ```typescript codeFormat="typescript"
|
|
380
|
+
> const dictionary = dictionaryEndpoint(cmsAuthenticator);
|
|
381
|
+
> await dictionary.pushDictionaries([myDictionary]);
|
|
382
|
+
> const { data } = await dictionary.getDictionaries();
|
|
383
|
+
> ```
|
|
384
|
+
|
|
385
|
+
### Tek bir yöntemi çıkarma
|
|
386
|
+
|
|
387
|
+
Her endpoint yöntemi zaten kimliği doğrulanmış ve bağımsızdır (kendi token işlemesini taşır), bu nedenle birini çıkarabilir ve etrafta geçirebilirsiniz — örneğin bir bağımlılık olarak enjekte etmek için:
|
|
388
|
+
|
|
389
|
+
```typescript fileName="push.ts" codeFormat="typescript"
|
|
390
|
+
import { createIntlayerCMS } from "@intlayer/api";
|
|
391
|
+
import { dictionaryEndpoint } from "@intlayer/api/dictionary";
|
|
392
|
+
|
|
393
|
+
const dictionary = dictionaryEndpoint(createIntlayerCMS());
|
|
394
|
+
|
|
395
|
+
// Zaten kimliği doğrulanmış — her çağrıda token'ı otomatik olarak yeniler
|
|
396
|
+
export const pushDictionaries = dictionary.pushDictionaries;
|
|
397
|
+
|
|
398
|
+
// Kullanım
|
|
399
|
+
await pushDictionaries([{ key: "home", content: { title: "Home" } }]);
|
|
400
|
+
```
|
|
401
|
+
|
|
250
402
|
## Canlı senkronizasyon
|
|
251
403
|
|
|
252
404
|
Canlı Senkronizasyon, uygulamanızın CMS içerik değişikliklerini çalışma zamanında yansıtmasını sağlar. Yeniden derleme veya yeniden dağıtım gerekmez. Etkinleştirildiğinde, güncellemeler uygulamanızın okuduğu sözlükleri yenileyen bir Canlı Senkronizasyon sunucusuna aktarılır.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
3
|
updatedAt: 2026-05-31
|
|
4
|
-
title: "Angular
|
|
5
|
-
description: "Artık i18next yok. 2026 yılı için çok dilli (i18n) Angular
|
|
4
|
+
title: "Angular 22 i18n - Uygulamanızı çevirmek için eksiksiz kılavuz"
|
|
5
|
+
description: "Artık i18next yok. 2026 yılı için çok dilli (i18n) Angular 22 uygulaması oluşturma kılavuzu. Yapay zeka ajanlarıyla çevirin ve bundle boyutu, SEO ve performansı optimize edin."
|
|
6
6
|
keywords:
|
|
7
7
|
- Uluslararasılaştırma
|
|
8
8
|
- Dokümantasyon
|
|
@@ -13,8 +13,8 @@ slugs:
|
|
|
13
13
|
- doc
|
|
14
14
|
- environment
|
|
15
15
|
- angular
|
|
16
|
-
applicationTemplate: https://github.com/aymericzip/intlayer-angular-
|
|
17
|
-
applicationShowcase: https://intlayer-angular-
|
|
16
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-angular-22-template
|
|
17
|
+
applicationShowcase: https://intlayer-angular-22-template.vercel.app/
|
|
18
18
|
history:
|
|
19
19
|
- version: 8.9.0
|
|
20
20
|
date: 2026-05-04
|
|
@@ -31,7 +31,7 @@ history:
|
|
|
31
31
|
author: aymericzip
|
|
32
32
|
---
|
|
33
33
|
|
|
34
|
-
# Angular
|
|
34
|
+
# Angular 22 (Vite) web sitenizi Intlayer kullanarak çevirin | Uluslararasılaştırma (i18n)
|
|
35
35
|
|
|
36
36
|
## İçindekiler
|
|
37
37
|
|
|
@@ -94,7 +94,7 @@ Bir i18n çözümünden çok daha fazlası olan Intlayer, **kendi kendine barın
|
|
|
94
94
|
<Tab label="Kod" value="code">
|
|
95
95
|
|
|
96
96
|
<iframe
|
|
97
|
-
src="https://ide.intlayer.org/aymericzip/intlayer-angular-
|
|
97
|
+
src="https://ide.intlayer.org/aymericzip/intlayer-angular-22-template?file=intlayer.config.ts"
|
|
98
98
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
99
99
|
title="Demo CodeSandbox - Uygulamanızı Intlayer kullanarak nasıl uluslararasılaştırabilirsiniz"
|
|
100
100
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
@@ -105,7 +105,7 @@ Bir i18n çözümünden çok daha fazlası olan Intlayer, **kendi kendine barın
|
|
|
105
105
|
<Tab label="Demo" value="demo">
|
|
106
106
|
|
|
107
107
|
<iframe
|
|
108
|
-
src="https://intlayer-angular-
|
|
108
|
+
src="https://intlayer-angular-22-template.vercel.app/"
|
|
109
109
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
110
110
|
title="Demo - intlayer-angular-template"
|
|
111
111
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
@@ -115,7 +115,7 @@ Bir i18n çözümünden çok daha fazlası olan Intlayer, **kendi kendine barın
|
|
|
115
115
|
</Tab>
|
|
116
116
|
</Tabs>
|
|
117
117
|
|
|
118
|
-
GitHub'da [Uygulama Şablonunu](https://github.com/aymericzip/intlayer-angular-
|
|
118
|
+
GitHub'da [Uygulama Şablonunu](https://github.com/aymericzip/intlayer-angular-22-template) görüntüleyin.
|
|
119
119
|
|
|
120
120
|
<Steps>
|
|
121
121
|
|
|
@@ -203,7 +203,7 @@ export default config;
|
|
|
203
203
|
|
|
204
204
|
<Step number={3} title="Intlayer'ı Angular Yapılandırmanıza Entegre Edin">
|
|
205
205
|
|
|
206
|
-
Intlayer'ı Angular CLI ile bütünleştirmek için özel bir oluşturucu (builder) kullanmanız gerekir. Bu kılavuz, Vite/esbuild kullandığınızı (Angular
|
|
206
|
+
Intlayer'ı Angular CLI ile bütünleştirmek için özel bir oluşturucu (builder) kullanmanız gerekir. Bu kılavuz, Vite/esbuild kullandığınızı (Angular 22 projeleri için varsayılan) varsaymaktadır.
|
|
207
207
|
|
|
208
208
|
Öncelikle, `angular.json` dosyanızı özel esbuild oluşturucuyu kullanacak şekilde değiştirin. `build` ve `serve` yapılandırmalarını güncelleyin:
|
|
209
209
|
|