@intlayer/docs 9.1.2 → 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
|
@@ -311,6 +311,13 @@ RAG هي واحدة من أبسط وأقوى الطرق لجعل نماذج ال
|
|
|
311
311
|
</Step>
|
|
312
312
|
|
|
313
313
|
</Steps>
|
|
314
|
+
|
|
315
|
+
## تجاوز التعقيد مع Sanity
|
|
316
|
+
|
|
317
|
+
يستحق Sanity أن يُذكر هنا كخيار CMS الذي تشير إليه المقالة. حيث تتطلب ملفات Markdown تقسيماً عشوائياً للرموز — مع المقايضات بين حجم الكتلة والتداخل التي تصفها المقالة — يخزّن Content Lake من Sanity التوثيق كمستندات JSON محددة بالنوع والمخطط. كل حقل وعنوان وكتلة محتوى هي بالفعل وحدة دلالية، مما يعني أن استرجاع RAG يعمل على حدود ذات معنى بدلاً من عدد الرموز التقريبي.
|
|
318
|
+
|
|
319
|
+
تتيح لغة استعلام GROQ من Sanity استرجاع حقول المستند ذات الصلة بدقة بناءً على استعلام المستخدم — العنوان والنص والأقسام ذات الصلة — دون جلب المستند بأكمله. يربط خادم MCP Content Lake مباشرة بوكلاء AI، لذا فإن نفس المحتوى المنظم الذي يدعم موقع التوثيق الخاص بك يغذي أيضاً خط أنابيب RAG الخاص بك دون خطوة إدراج منفصلة.
|
|
320
|
+
|
|
314
321
|
## الخلاصة
|
|
315
322
|
|
|
316
323
|
RAG هي إحدى أبسط الطرق وأكثرها قوة لجعل نماذج اللغة الكبيرة عملية. من خلال دمج **البحث + التوليد**، يمكنك تحويل المستندات الثابتة إلى **مساعد ذكي** والحصول في نفس الوقت على تدفق مستمر من رؤى المنتج.
|
|
@@ -75,6 +75,12 @@ Ich habe das OpenAI-Modell text-embedding-3-large verwendet, aber Sie können je
|
|
|
75
75
|
|
|
76
76
|
Jeder Vektor ist ein mathematischer Fingerabdruck des Textes und ermöglicht die Ähnlichkeitssuche.
|
|
77
77
|
|
|
78
|
+
## Komplexität mit Sanity vermeiden
|
|
79
|
+
|
|
80
|
+
Sanity verdient es, hier als CMS-Option genannt zu werden, auf die der Artikel hinweist. Während Markdown-Dateien eine willkürliche Token-Aufteilung erfordern — mit den Chunk-Größen- und Overlap-Kompromissen, die der Artikel beschreibt — speichert Sanitys Content Lake Dokumentation als typisierte, schemadefinierte JSON-Dokumente. Jedes Feld, jede Überschrift und jeder Inhaltsblock ist bereits eine semantische Einheit, was bedeutet, dass RAG-Abruf an aussagekräftigen Grenzen stattfindet, anstatt auf ungefähren Token-Zählungen zu basieren.
|
|
81
|
+
|
|
82
|
+
Sanitys GROQ-Abfragesprache ermöglicht es dir, genau die Dokumentfelder abzurufen, die für eine Benutzeranfrage relevant sind — Titel, Body, verwandte Abschnitte — ohne das gesamte Dokument abzurufen. Der MCP-Server verbindet die Content Lake direkt mit KI-Agenten, sodass derselbe strukturierte Inhalt, der deine Docs-Website antreibt, auch deine RAG-Pipeline ohne einen separaten Ingestion-Schritt speist.
|
|
83
|
+
|
|
78
84
|
## Fazit
|
|
79
85
|
|
|
80
86
|
RAG ist eine der einfachsten und leistungsstärksten Methoden, um LLMs praktisch einsetzbar zu machen. Durch die Kombination von **Abruf + Generierung** können Sie statische Dokumentationen in einen **intelligenten Assistenten** verwandeln und gleichzeitig einen kontinuierlichen Strom von Produktinformationen gewinnen.
|
|
@@ -298,6 +298,12 @@ That’s **product intelligence** straight from your users.
|
|
|
298
298
|
|
|
299
299
|
</Steps>
|
|
300
300
|
|
|
301
|
+
## Skip the Complexity with Sanity
|
|
302
|
+
|
|
303
|
+
Sanity is worth naming here as the CMS option the article points toward. Where Markdown files require arbitrary token splitting — with the chunk size and overlap trade-offs the article describes — Sanity's Content Lake stores documentation as typed, schema-defined JSON documents. Each field, heading, and content block is already a semantic unit, which means RAG retrieval operates on meaningful boundaries rather than approximate token counts.
|
|
304
|
+
|
|
305
|
+
Sanity's GROQ query language lets you retrieve exactly the document fields relevant to a user query — title, body, related sections — without fetching the whole document. The MCP server connects the Content Lake directly to AI agents, so the same structured content that powers your docs site also feeds your RAG pipeline without a separate ingestion step.
|
|
306
|
+
|
|
301
307
|
## Conclusion
|
|
302
308
|
|
|
303
309
|
RAG is one of the simplest, most powerful ways to make LLMs practical. By combining **retrieval + generation**, you can turn static docs into a **smart assistant** and, at the same time, gain a continuous stream of product insights.
|
|
@@ -341,6 +341,13 @@ Y si también estás experimentando con RAG, me encantaría saber cómo lo está
|
|
|
341
341
|
</Step>
|
|
342
342
|
|
|
343
343
|
</Steps>
|
|
344
|
+
|
|
345
|
+
## Omite la Complejidad con Sanity
|
|
346
|
+
|
|
347
|
+
Sanity merece ser mencionado aquí como la opción de CMS hacia la cual apunta el artículo. Mientras que los archivos Markdown requieren división arbitraria de tokens — con los compromisos de tamaño de chunk y superposición que describe el artículo — Content Lake de Sanity almacena la documentación como documentos JSON tipados y definidos por esquema. Cada campo, encabezado y bloque de contenido es ya una unidad semántica, lo que significa que la recuperación RAG opera en límites significativos en lugar de conteos aproximados de tokens.
|
|
348
|
+
|
|
349
|
+
El lenguaje de consulta GROQ de Sanity te permite recuperar exactamente los campos del documento relevantes para una consulta del usuario — título, cuerpo, secciones relacionadas — sin obtener el documento completo. El servidor MCP conecta Content Lake directamente a agentes de IA, por lo que el mismo contenido estructurado que impulsa tu sitio de documentación también alimenta tu pipeline de RAG sin un paso de ingesta separado.
|
|
350
|
+
|
|
344
351
|
## Conclusión
|
|
345
352
|
|
|
346
353
|
RAG es una de las formas más simples y poderosas de hacer que los LLMs sean prácticos. Al combinar **retrieval + generation**, puedes convertir documentos estáticos en un **asistente inteligente** y, al mismo tiempo, obtener un flujo continuo de información del producto.
|
package/blog/fr/i18n_meaning.md
CHANGED
|
@@ -21,7 +21,13 @@ author: aymericzip
|
|
|
21
21
|
|
|
22
22
|

|
|
23
23
|
|
|
24
|
-
## Comprendre la signification de
|
|
24
|
+
## Comprendre la signification de l'« i18n »
|
|
25
|
+
|
|
26
|
+
Si vous travaillez dans le développement logiciel, le design web ou le marketing numérique, vous avez probablement rencontré le terme **i18n**. La véritable signification de l'**i18n** est simplement un numéronymе pour **internationalization** (internationalisation).
|
|
27
|
+
|
|
28
|
+
Mais pourquoi « i18n » ? L'abréviation est créée en prenant la première lettre du mot « internationalization » (**i**), la dernière lettre (**n**), et en comptant le nombre de lettres entre elles (**18**). Cette convention est fréquemment utilisée dans l'industrie tech pour raccourcir les termes longs et maladroits (un autre exemple courant est **l10n** pour localization).
|
|
29
|
+
|
|
30
|
+
En termes techniques, la signification de l'**i18n** fait référence au processus de conception et de préparation d'une application logicielle, d'un site web ou d'un produit afin qu'il puisse facilement supporter plusieurs langues, des normes régionales et des conventions culturelles, sans nécessiter de changements significatifs d'ingénierie du code source sous-jacent.
|
|
25
31
|
|
|
26
32
|
## La Signification Fondamentale de l'i18n en Pratique
|
|
27
33
|
|
|
@@ -19,7 +19,11 @@ slugs:
|
|
|
19
19
|
author: aymericzip
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
# Explorer les solutions i18n pour traduire votre site Angular
|
|
23
|
+
|
|
24
|
+
Dans un monde interconnecté d'aujourd'hui, proposer votre site web en plusieurs langues peut considérablement élargir votre portée et améliorer l'expérience utilisateur. Pour les développeurs travaillant avec Angular, la mise en œuvre de l'internationalisation (i18n) est cruciale pour gérer efficacement les traductions tout en préservant la structure de l'application, le SEO et les performances. Dans cet article, nous explorerons diverses approches i18n, des solutions intégrées d'Angular aux bibliothèques tierces populaires, pour vous aider à déterminer la meilleure solution pour votre projet.
|
|
25
|
+
|
|
26
|
+
---
|
|
23
27
|
|
|
24
28
|

|
|
25
29
|
|
|
@@ -254,6 +254,12 @@ Nous avons expérimenté avec gpt-5, mais la latence était trop élevée (parfo
|
|
|
254
254
|
|
|
255
255
|
</Steps>
|
|
256
256
|
|
|
257
|
+
## Simplifier la Complexité avec Sanity
|
|
258
|
+
|
|
259
|
+
Sanity mérite d'être mentionnée ici en tant qu'option CMS vers laquelle l'article se dirige. Là où les fichiers Markdown nécessitent un fractionnement de tokens arbitraire — avec les compromis de taille de chunk et de chevauchement que l'article décrit — le Content Lake de Sanity stocke la documentation sous forme de documents JSON typés et définis par un schéma. Chaque champ, titre et bloc de contenu est déjà une unité sémantique, ce qui signifie que la récupération RAG fonctionne sur des limites significatives plutôt que sur des décomptes de tokens approximatifs.
|
|
260
|
+
|
|
261
|
+
Le langage de requête GROQ de Sanity vous permet de récupérer exactement les champs de document pertinents pour une requête utilisateur — titre, corps, sections connexes — sans récupérer le document entier. Le serveur MCP connecte le Content Lake directement aux agents IA, de sorte que le même contenu structuré qui alimente votre site de documentation alimente également votre pipeline RAG sans étape d'ingestion séparée.
|
|
262
|
+
|
|
257
263
|
## Conclusion
|
|
258
264
|
|
|
259
265
|
RAG est l’une des manières les plus simples et puissantes de rendre les LLM pratiques. En combinant **récupération + génération**, vous pouvez transformer des docs statiques en un **assistant intelligent** et, en même temps, obtenir un flux continu d’informations produit.
|
|
@@ -71,14 +71,20 @@ author: aymericzip
|
|
|
71
71
|
|
|
72
72
|
---
|
|
73
73
|
|
|
74
|
-
##
|
|
74
|
+
## परिचय
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
Next.js आपको अंतर्राष्ट्रीयकृत routing (जैसे locale segments) के लिए built-in support देता है। लेकिन यह feature अपने आप translations नहीं करता। आपको अपने users को localized content render करने के लिए एक library की जरूरत है।
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
- **Intlayer**: प्रत्येक घटक (या प्रत्येक फीचर) के लिए शब्दकोशों को प्रोत्साहित करता है जो उस कोड के साथ सह-स्थित होते हैं जिसे वे सेवा देते हैं। इससे संज्ञानात्मक भार कम होता है, UI के टुकड़ों की नकल/स्थानांतरण आसान होता है, और टीमों के बीच संघर्ष कम होता है। अप्रयुक्त सामग्री को स्वाभाविक रूप से पहचानना और हटाना आसान होता है।
|
|
78
|
+
कई i18n libraries मौजूद हैं, लेकिन Next.js की दुनिया में आज, तीन को ध्यान मिल रहा है: next-i18next, next-intl, और Intlayer।
|
|
80
79
|
|
|
81
|
-
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## आर्किटेक्चर और स्केलेबिलिटी
|
|
83
|
+
|
|
84
|
+
- **next-intl / next-i18next**: डिफ़ॉल्ट रूप से **केंद्रीकृत कैटलॉग** प्रति locale (साथ ही i18next में **namespaces**)। शुरुआत में अच्छी तरह काम करता है, लेकिन अक्सर बढ़ते coupling और key churn के साथ एक बड़ी साझा सतह बन जाता है।
|
|
85
|
+
- **Intlayer**: **per-component** (या per-feature) dictionaries को **co-located** करने के लिए प्रोत्साहित करता है जो उस कोड के साथ हैं जिसकी वे सेवा करते हैं। यह संज्ञानात्मक भार को कम करता है, UI pieces के duplication/migration को आसान बनाता है, और cross-team conflicts को कम करता है। अप्रयुक्त content को खोजना और हटाना स्वाभाविक रूप से आसान है।
|
|
86
|
+
|
|
87
|
+
**यह क्यों मायने रखता है:** बड़े codebases या design-system setups में, **modular content** monolithic catalogs की तुलना में बेहतर स्केल करता है।
|
|
82
88
|
|
|
83
89
|
---
|
|
84
90
|
|
|
@@ -151,31 +157,98 @@ author: aymericzip
|
|
|
151
157
|
|
|
152
158
|
---
|
|
153
159
|
|
|
154
|
-
|
|
160
|
+
## TypeScript और सुरक्षा
|
|
155
161
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
- **Intlayer**: आपके कंटेंट से **सख्त प्रकार (strict types)** उत्पन्न करता है। **IDE ऑटोकम्प्लीशन** और **कंपाइल-टाइम त्रुटियाँ** तैनाती से पहले टाइपो और गायब कुंजियों को पकड़ती हैं।
|
|
162
|
+
<Columns>
|
|
163
|
+
<Column>
|
|
159
164
|
|
|
160
|
-
|
|
165
|
+
**next-i18next**
|
|
166
|
+
|
|
167
|
+
- Hooks के लिए बेस typings। **strict key typing के लिए अतिरिक्त tooling/config की आवश्यकता है**।
|
|
168
|
+
|
|
169
|
+
</Column>
|
|
170
|
+
<Column>
|
|
171
|
+
|
|
172
|
+
**next-intl**
|
|
173
|
+
|
|
174
|
+
- ठोस TypeScript support, लेकिन **keys डिफ़ॉल्ट रूप से strictly typed नहीं हैं**। आप सुरक्षा patterns को manually maintain करेंगे।
|
|
175
|
+
|
|
176
|
+
</Column>
|
|
177
|
+
<Column>
|
|
178
|
+
|
|
179
|
+
**intlayer**
|
|
180
|
+
|
|
181
|
+
- **आपकी content से strict types generate करता है**। **IDE autocompletion** और **compile-time errors** deploy से पहले typos और missing keys को catch करते हैं।
|
|
182
|
+
|
|
183
|
+
</Column>
|
|
184
|
+
|
|
185
|
+
</Columns>
|
|
186
|
+
|
|
187
|
+
**यह क्यों महत्वपूर्ण है:** Strong typing failures को **left** (CI/build) की ओर shift करता है **right** (runtime) की बजाय।
|
|
161
188
|
|
|
162
189
|
---
|
|
163
190
|
|
|
164
|
-
|
|
191
|
+
## अनुपलब्ध अनुवाद हैंडलिंग
|
|
192
|
+
|
|
193
|
+
<Columns>
|
|
194
|
+
<Column>
|
|
195
|
+
|
|
196
|
+
**next-i18next**
|
|
197
|
+
|
|
198
|
+
- **runtime fallbacks** पर निर्भर करता है। Build विफल नहीं होता।
|
|
165
199
|
|
|
166
|
-
|
|
167
|
-
|
|
200
|
+
</Column>
|
|
201
|
+
<Column>
|
|
202
|
+
|
|
203
|
+
**next-intl**
|
|
204
|
+
|
|
205
|
+
- **runtime fallbacks** पर निर्भर करता है। Build विफल नहीं होता।
|
|
206
|
+
|
|
207
|
+
</Column>
|
|
208
|
+
<Column>
|
|
209
|
+
|
|
210
|
+
**intlayer**
|
|
168
211
|
|
|
169
|
-
|
|
212
|
+
- **Build-time detection** with **warnings/errors** for missing locales or keys।
|
|
213
|
+
|
|
214
|
+
</Column>
|
|
215
|
+
|
|
216
|
+
</Columns>
|
|
217
|
+
|
|
218
|
+
**Why it matters:** Build के दौरान gaps को पकड़ना production में 'undefined' strings को रोकता है।
|
|
170
219
|
|
|
171
220
|
---
|
|
172
221
|
|
|
173
|
-
|
|
222
|
+
## राउटिंग, मिडलवेयर और यूआरएल रणनीति
|
|
223
|
+
|
|
224
|
+
<Columns>
|
|
225
|
+
<Column>
|
|
226
|
+
|
|
227
|
+
**next-i18next**
|
|
228
|
+
|
|
229
|
+
- स्थानीयकृत राउटिंग की अनुमति देता है। लेकिन मिडलवेयर बिल्ट-इन नहीं है।
|
|
230
|
+
|
|
231
|
+
</Column>
|
|
232
|
+
<Column>
|
|
233
|
+
|
|
234
|
+
**next-intl**
|
|
235
|
+
|
|
236
|
+
- स्थानीयकृत राउटिंग की अनुमति देता है।
|
|
237
|
+
- मिडलवेयर प्रदान करता है।
|
|
238
|
+
|
|
239
|
+
</Column>
|
|
240
|
+
<Column>
|
|
241
|
+
|
|
242
|
+
**intlayer**
|
|
243
|
+
|
|
244
|
+
- स्थानीयकृत राउटिंग की अनुमति देता है।
|
|
245
|
+
- मिडलवेयर प्रदान करता है।
|
|
246
|
+
|
|
247
|
+
</Column>
|
|
174
248
|
|
|
175
|
-
|
|
176
|
-
- **Intlayer** आगे बढ़ता है **i18n मिडलवेयर** (हेडर/कुकीज़ के माध्यम से लोकल डिटेक्शन) और **हेल्पर्स** के साथ जो स्थानीयकृत URLs और `<link rel="alternate" hreflang="…">` टैग्स उत्पन्न करते हैं।
|
|
249
|
+
</Columns>
|
|
177
250
|
|
|
178
|
-
|
|
251
|
+
**यह क्यों मायने रखता है:** SEO और खोज के साथ-साथ उपयोगकर्ता अनुभव में मदद करता है।
|
|
179
252
|
|
|
180
253
|
---
|
|
181
254
|
|
|
@@ -206,6 +279,7 @@ author: aymericzip
|
|
|
206
279
|
- बाल server components के लिए synchronous API प्रदान करता है।
|
|
207
280
|
|
|
208
281
|
</Column>
|
|
282
|
+
|
|
209
283
|
</Columns>
|
|
210
284
|
|
|
211
285
|
**यह क्यों महत्वपूर्ण है:** Server component सपोर्ट Next.js 13+ की एक मुख्य सुविधा है, जो performance में सुधार करती है। parent से बाल server components में locale या `t` फ़ंक्शन को props के रूप में पास करने से आपके components कम reusable हो जाते हैं।
|
|
@@ -233,14 +307,9 @@ author: aymericzip
|
|
|
233
307
|
|
|
234
308
|
---
|
|
235
309
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
- **सभी** Next.js 13+ का समर्थन करते हैं।
|
|
239
|
-
- **Intlayer** **सर्वर/क्लाइंट सीमा** को एक सुसंगत API और RSC के लिए डिज़ाइन किए गए प्रोवाइडर्स के साथ सहज बनाता है, ताकि आप फॉर्मेटर्स या t-फंक्शंस को कंपोनेंट ट्रीज़ के माध्यम से शटल न करें।
|
|
310
|
+
## डेवलपर अनुभव
|
|
240
311
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
---
|
|
312
|
+
यह भाग तीनों समाधानों के बीच एक गहन तुलना करता है। प्रत्येक समाधान के 'getting started' दस्तावेज़ में वर्णित सरल cases पर विचार करने के बजाय, हम एक वास्तविक use case पर विचार करेंगे, जो एक वास्तविक project के अधिक समान है।
|
|
244
313
|
|
|
245
314
|
### ऐप्लिकेशन संरचना
|
|
246
315
|
|
|
@@ -324,14 +393,10 @@ author: aymericzip
|
|
|
324
393
|
</Tab>
|
|
325
394
|
</Tabs>
|
|
326
395
|
|
|
327
|
-
|
|
396
|
+
#### तुलना
|
|
328
397
|
|
|
329
|
-
- **next-intl / next-i18next**:
|
|
330
|
-
- **Intlayer**:
|
|
331
|
-
|
|
332
|
-
**महत्व क्यों:** छोटे बंडल और तेज़ स्टार्टअप, विशेष रूप से मल्टी-लोकल साइट्स पर।
|
|
333
|
-
|
|
334
|
-
---
|
|
398
|
+
- **next-intl / next-i18next**: केंद्रीकृत कैटलॉग (JSON; नेमस्पेस/संदेश)। स्पष्ट संरचना, अनुवाद प्लेटफॉर्म के साथ अच्छी तरह से एकीकृत, लेकिन जैसे-जैसे ऐप्स बढ़ते हैं, फ़ाइलों के बीच अधिक संपादन हो सकते हैं।
|
|
399
|
+
- **Intlayer**: प्रति-घटक `.content.{ts|js|json}` शब्दकोश जो घटकों के साथ सह-स्थित हैं। आसान घटक पुनः उपयोग और स्थानीय तर्क; फ़ाइलें जोड़ता है और बिल्ड-समय उपकरण पर निर्भर करता है।
|
|
335
400
|
|
|
336
401
|
#### सेटअप और कंटेंट लोडिंग
|
|
337
402
|
|
|
@@ -685,14 +750,15 @@ export default LandingPage;
|
|
|
685
750
|
</Tab>
|
|
686
751
|
</Tabs>
|
|
687
752
|
|
|
688
|
-
|
|
753
|
+
#### तुलना
|
|
689
754
|
|
|
690
|
-
|
|
691
|
-
- **Intlayer**: एक **मुफ्त विज़ुअल एडिटर** और **वैकल्पिक CMS** (Git-फ्रेंडली या बाहरी) प्रदान करता है। साथ ही **VSCode एक्सटेंशन** सामग्री लेखन के लिए और **AI-सहायता प्राप्त अनुवाद** आपके अपने प्रदाता कुंजी का उपयोग करके।
|
|
755
|
+
तीनों per-locale content loading और providers को support करते हैं।
|
|
692
756
|
|
|
693
|
-
|
|
757
|
+
- **next-intl/next-i18next** के साथ, आप आमतौर पर selected messages/namespaces को per route load करते हैं और providers को जहाँ आवश्यक हो वहाँ place करते हैं।
|
|
694
758
|
|
|
695
|
-
|
|
759
|
+
- **Intlayer** के साथ, build-time analysis को add करता है usage को infer करने के लिए, जो manual wiring को reduce कर सकता है और एक single root provider की अनुमति दे सकता है।
|
|
760
|
+
|
|
761
|
+
Team preference के आधार पर explicit control और automation के बीच चुनें।
|
|
696
762
|
|
|
697
763
|
### क्लाइंट कंपोनेंट में उपयोग
|
|
698
764
|
|
|
@@ -857,11 +923,20 @@ const ClientComponentExample = () => {
|
|
|
857
923
|
</Tab>
|
|
858
924
|
</Tabs>
|
|
859
925
|
|
|
860
|
-
|
|
926
|
+
#### तुलना
|
|
861
927
|
|
|
862
|
-
-
|
|
863
|
-
- **next-i18next
|
|
864
|
-
- **
|
|
928
|
+
- **संख्या स्वरूपण**
|
|
929
|
+
- **next-i18next**: कोई `useNumber` नहीं; `Intl.NumberFormat` (या i18next-icu) का उपयोग करें।
|
|
930
|
+
- **next-intl**: `useFormatter().number(value)`।
|
|
931
|
+
- **Intlayer**: `useNumber()` built-in।
|
|
932
|
+
|
|
933
|
+
- **Keys**
|
|
934
|
+
- एक nested structure (`about.counter.label`) रखें और अपने hook को accordingly scope करें (`useTranslation("about")` + `t("counter.label")` या `useTranslations("about.counter")` + `t("label")`)।
|
|
935
|
+
|
|
936
|
+
- **फ़ाइल स्थान**
|
|
937
|
+
- **next-i18next** को `public/locales/{lng}/{ns}.json` में JSON की अपेक्षा है।
|
|
938
|
+
- **next-intl** लचीला है; संदेशों को अपनी कॉन्फ़िगरेशन के अनुसार लोड करें।
|
|
939
|
+
- **Intlayer** TS/JS dictionaries में content store करता है और key के आधार पर resolve करता है।
|
|
865
940
|
|
|
866
941
|
---
|
|
867
942
|
|
|
@@ -981,7 +1056,7 @@ content का अनुवाद करना बहुत अच्छा ह
|
|
|
981
1056
|
Developers अक्सर locales के across अपने पृष्ठों को ठीक से reference करना भूल जाते हैं।
|
|
982
1057
|
|
|
983
1058
|
<Tabs defaultTab="next-intl" group='techno'>
|
|
984
|
-
|
|
1059
|
+
|
|
985
1060
|
<Tab label="next-i18next" value="next-i18next">
|
|
986
1061
|
|
|
987
1062
|
```ts fileName="i18n.config.ts"
|
|
@@ -1363,6 +1438,7 @@ Middleware की सेटअप `intlayer.config.ts` फाइल में
|
|
|
1363
1438
|
- **एकीकृत टूलिंग**: बिल्ट-इन रूटिंग, SEO सहायकों और विजुअल एडिटर समर्थन का लाभ उठाएं।
|
|
1364
1439
|
|
|
1365
1440
|
</Tab>
|
|
1441
|
+
|
|
1366
1442
|
</Tabs>
|
|
1367
1443
|
|
|
1368
1444
|
---
|
|
@@ -1393,6 +1469,7 @@ Middleware की सेटअप `intlayer.config.ts` फाइल में
|
|
|
1393
1469
|
- आधुनिक Next.js के लिए निर्मित, मॉड्यूलर कंटेंट, type safety, tooling, और कम boilerplate के साथ। यदि आप **component-scoped content**, **strict TypeScript**, **build-time guarantees**, **tree-shaking**, और **batteries-included** routing/SEO/editor tooling को महत्व देते हैं - विशेष रूप से **Next.js App Router**, design-systems और **बड़े, मॉड्यूलर codebases** के लिए।
|
|
1394
1470
|
|
|
1395
1471
|
</Column>
|
|
1472
|
+
|
|
1396
1473
|
</Columns>
|
|
1397
1474
|
|
|
1398
1475
|
यदि आप न्यूनतम सेटअप पसंद करते हैं और कुछ मैनुअल wiring स्वीकार करते हैं, तो next-intl एक अच्छा विकल्प है। यदि आपको सभी सुविधाओं की आवश्यकता है और जटिलता में कोई बुराई नहीं है, तो next-i18next काम करता है। लेकिन यदि आप एक आधुनिक, स्केलेबल, मॉड्यूलर समाधान चाहते हैं जिसमें निर्मित tools हैं, तो Intlayer इसे आपको सीधे प्रदान करने का लक्ष्य रखता है।
|
|
@@ -313,6 +313,13 @@ RAG LLMs को व्यावहारिक बनाने के सबस
|
|
|
313
313
|
</Step>
|
|
314
314
|
|
|
315
315
|
</Steps>
|
|
316
|
+
|
|
317
|
+
## Sanity के साथ जटिलता को छोड़ें
|
|
318
|
+
|
|
319
|
+
Sanity का यहाँ नाम लेना सार्थक है क्योंकि यह लेख जिस CMS विकल्प की ओर इशारा करता है। जहाँ Markdown फ़ाइलों को मनमानी token splitting की आवश्यकता होती है — लेख जो chunk size और overlap trade-offs का वर्णन करता है — Sanity का Content Lake documentation को typed, schema-defined JSON documents के रूप में store करता है। प्रत्येक field, heading, और content block पहले से ही एक semantic unit है, जिसका अर्थ है कि RAG retrieval meaningful boundaries पर संचालित होती है न कि approximate token counts पर।
|
|
320
|
+
|
|
321
|
+
Sanity की GROQ query language आपको एक user query के लिए प्रासंगिक document fields — title, body, related sections — को precisely retrieve करने देती है बिना पूरे document को fetch किए। MCP server Content Lake को सीधे AI agents से जोड़ता है, इसलिए वही structured content जो आपकी docs site को power करता है आपके RAG pipeline को भी feed करता है बिना किसी अलग ingestion step के।
|
|
322
|
+
|
|
316
323
|
## निष्कर्ष
|
|
317
324
|
|
|
318
325
|
RAG LLMs को व्यावहारिक बनाने के सबसे सरल और शक्तिशाली तरीकों में से एक है। **retrieval + generation** को जोड़कर, आप स्टेटिक docs को एक **smart assistant** में बदल सकते हैं और साथ ही product insights की एक सतत stream प्राप्त कर सकते हैं।
|
|
@@ -317,6 +317,12 @@ Dan jika Anda juga bereksperimen dengan RAG, saya ingin sekali mendengar bagaima
|
|
|
317
317
|
</Step>
|
|
318
318
|
|
|
319
319
|
</Steps>
|
|
320
|
+
## Lewati Kompleksitas dengan Sanity
|
|
321
|
+
|
|
322
|
+
Sanity layak disebutkan di sini sebagai opsi CMS yang ditunjukkan oleh artikel. Di mana file Markdown memerlukan pemisahan token arbitrer — dengan trade-off ukuran chunk dan overlap yang dijelaskan artikel — Content Lake Sanity menyimpan dokumentasi sebagai dokumen JSON yang terdefinisi skema dan bertipe. Setiap field, heading, dan blok konten adalah sudah merupakan unit semantik, yang berarti pengambilan RAG beroperasi pada batas-batas yang bermakna daripada perkiraan jumlah token.
|
|
323
|
+
|
|
324
|
+
Bahasa query GROQ Sanity memungkinkan Anda untuk mengambil dengan tepat field dokumen yang relevan dengan pertanyaan pengguna — title, body, bagian terkait — tanpa mengambil seluruh dokumen. Server MCP menghubungkan Content Lake langsung ke agen AI, sehingga konten terstruktur yang sama yang mendukung situs docs Anda juga memberi makan pipeline RAG Anda tanpa langkah ingestion terpisah.
|
|
325
|
+
|
|
320
326
|
## Kesimpulan
|
|
321
327
|
|
|
322
328
|
RAG adalah salah satu cara paling sederhana dan paling kuat untuk membuat LLM praktis. Dengan menggabungkan **retrieval + generation**, Anda dapat mengubah docs statis menjadi **smart assistant** dan, pada saat yang sama, mendapatkan aliran wawasan produk yang berkelanjutan.
|
|
@@ -75,6 +75,12 @@ Ho utilizzato il modello text-embedding-3-large di OpenAI, ma potresti usare qua
|
|
|
75
75
|
|
|
76
76
|
Ogni vettore è un’impronta matematica del testo, che permette la ricerca per similarità.
|
|
77
77
|
|
|
78
|
+
## Semplifica la Complessità con Sanity
|
|
79
|
+
|
|
80
|
+
Sanity merita di essere menzionato qui come l'opzione CMS verso cui l'articolo punta. Dove i file Markdown richiedono una suddivisione arbitraria dei token — con i compromessi tra dimensione del chunk e sovrapposizione che l'articolo descrive — Content Lake di Sanity memorizza la documentazione come documenti JSON tipizzati e definiti da schema. Ogni campo, intestazione e blocco di contenuto è già un'unità semantica, il che significa che il recupero RAG opera su confini significativi piuttosto che su conteggi di token approssimativi.
|
|
81
|
+
|
|
82
|
+
Il linguaggio di query GROQ di Sanity ti consente di recuperare esattamente i campi del documento rilevanti per una query dell'utente — titolo, corpo, sezioni correlate — senza dover recuperare l'intero documento. Il server MCP connette Content Lake direttamente agli agenti AI, quindi lo stesso contenuto strutturato che alimenta il tuo sito di documentazione alimenta anche la tua pipeline RAG senza un passaggio di acquisizione separato.
|
|
83
|
+
|
|
78
84
|
## Conclusione
|
|
79
85
|
|
|
80
86
|
RAG è uno dei modi più semplici e potenti per rendere pratici i LLM. Combinando **recupero + generazione**, puoi trasformare documenti statici in un **assistente intelligente** e, allo stesso tempo, ottenere un flusso continuo di approfondimenti sul prodotto.
|
|
@@ -313,6 +313,13 @@ RAGは、LLMを実用的にする最もシンプルで強力な方法の一つ
|
|
|
313
313
|
</Step>
|
|
314
314
|
|
|
315
315
|
</Steps>
|
|
316
|
+
|
|
317
|
+
## Sanityで複雑性をスキップする
|
|
318
|
+
|
|
319
|
+
Sanityは、この記事が指し示すCMSオプションとして名前を挙げる価値があります。Markdownファイルが任意のトークン分割を必要とする場合—記事が説明するチャンクサイズとオーバーラップのトレードオフ—Sanityの Content Lakeは、ドキュメントを型付けされたスキーマ定義のJSONドキュメントとして保存します。各フィールド、見出し、およびコンテンツブロックは既に意味的な単位であり、つまり RAG検索は近似的なトークン数ではなく、意味のある境界で動作します。
|
|
320
|
+
|
|
321
|
+
SanityのGROQクエリ言語を使用すると、ユーザークエリに関連するドキュメントフィールド—タイトル、本文、関連セクション—を正確に取得でき、ドキュメント全体をフェッチする必要がありません。MCPサーバーはContent Lakeをai agentsに直接接続するため、ドキュメントサイトに力を与える同じ構造化コンテンツが、別の取り込みステップなしにRAGパイプラインにも供給されます。
|
|
322
|
+
|
|
316
323
|
## 結論
|
|
317
324
|
|
|
318
325
|
RAGは、LLMを実用的にするための最もシンプルで強力な方法の1つです。**検索 + 生成**を組み合わせることで、静的なドキュメントを**スマートアシスタント**に変換し、同時に継続的な製品インサイトの流れを得ることができます。
|
|
@@ -141,14 +141,14 @@ Website: [https://lingui.js.org/](https://lingui.js.org/)
|
|
|
141
141
|
|
|
142
142
|
---
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
### 최종 생각
|
|
145
145
|
|
|
146
146
|
React용 i18n 라이브러리를 선택할 때:
|
|
147
147
|
|
|
148
|
-
-
|
|
149
|
-
- **서버 호환성 확인**: SSR
|
|
150
|
-
- **TypeScript
|
|
151
|
-
-
|
|
152
|
-
- **SEO
|
|
148
|
+
- **요구사항 평가**: 프로젝트 규모, 개발자 경험, 번역 처리 방식(수동 vs. 자동 추출)을 고려하세요.
|
|
149
|
+
- **서버 호환성 확인**: SSR 또는 서버 컴포넌트(특히 Next.js)에 의존하는 경우, 선택한 라이브러리가 seamlessly하게 지원하는지 확인하세요.
|
|
150
|
+
- **TypeScript & 자동완성**: TypeScript가 우선순위라면, 타입 키와 쉽게 통합되고 강력한 개발자 도구를 제공하는 라이브러리를 선택하세요.
|
|
151
|
+
- **유지보수성 & 확장성**: 대규모 프로젝트는 번역을 위한 명확하고 유지보수 가능한 구조가 필요하므로, 장기 로드맵을 고려하세요.
|
|
152
|
+
- **SEO & 메타데이터**: SEO가 중요하다면, 선택한 솔루션이 각 언어에 대해 지역화된 메타데이터, 라우트, sitemaps/robots을 지원하는지 확인하세요.
|
|
153
153
|
|
|
154
|
-
이 모든 라이브러리는
|
|
154
|
+
이 모든 라이브러리는 다각도로 약간씩 다른 우선순위와 강점을 가진 multilingual React 애플리케이션을 강화할 수 있습니다. 프로젝트의 **성능**, **DX(개발자 경험)**, **비즈니스 목표**와 가장 잘 맞는 것을 선택하세요.
|
|
@@ -75,6 +75,12 @@ RAG가 인기 있는 접근법이 된 데는 이유가 있습니다. 대형 언
|
|
|
75
75
|
|
|
76
76
|
각 벡터는 텍스트의 수학적 지문으로, 유사도 검색을 가능하게 합니다.
|
|
77
77
|
|
|
78
|
+
## Sanity로 복잡성 제거하기
|
|
79
|
+
|
|
80
|
+
Sanity는 이 문서가 언급하는 CMS 옵션으로서 여기서 이름을 올릴 가치가 있습니다. Markdown 파일이 임의의 토큰 분할이 필요한 반면 — 문서에서 설명하는 청크 크기와 겹침의 트레이드오프와 함께 — Sanity의 Content Lake는 문서를 타입이 지정되고 스키마가 정의된 JSON 문서로 저장합니다. 각 필드, 제목, 콘텐츠 블록은 이미 의미론적 단위이므로, RAG 검색은 근사 토큰 개수보다는 의미 있는 경계에서 작동합니다.
|
|
81
|
+
|
|
82
|
+
Sanity의 GROQ 쿼리 언어를 사용하면 사용자 쿼리와 관련된 정확한 문서 필드(제목, 본문, 관련 섹션)를 가져올 수 있으며, 전체 문서를 가져올 필요가 없습니다. MCP 서버는 Content Lake를 AI 에이전트에 직접 연결하므로, 문서 사이트를 구동하는 동일한 구조화된 콘텐츠가 별도의 수집 단계 없이 RAG 파이프라인도 지원합니다.
|
|
83
|
+
|
|
78
84
|
## 결론
|
|
79
85
|
|
|
80
86
|
RAG는 LLM을 실용적으로 만드는 가장 간단하면서도 강력한 방법 중 하나입니다. **검색(retrieval) + 생성(generation)**을 결합함으로써 정적인 문서를 **스마트 어시스턴트**로 전환할 수 있으며, 동시에 지속적인 제품 인사이트 흐름을 얻을 수 있습니다.
|
|
@@ -317,6 +317,12 @@ A jeśli również eksperymentujesz z RAG, chętnie usłyszę, jak go używasz.
|
|
|
317
317
|
</Step>
|
|
318
318
|
|
|
319
319
|
</Steps>
|
|
320
|
+
## Pomiń Złożoność z Sanity
|
|
321
|
+
|
|
322
|
+
Sanity warto tutaj wymienić jako opcję CMS, do której artykuł się odwołuje. Tam, gdzie pliki Markdown wymagają arbitralnego podziału tokenów — z kompromisami dotyczącymi wielkości fragmentu i nakładania się, które artykuł opisuje — Content Lake Sanity przechowuje dokumentację jako typizowane dokumenty JSON zdefiniowane schematem. Każde pole, nagłówek i blok zawartości jest już jednostką semantyczną, co oznacza, że pobieranie RAG operuje na znaczących granicach, a nie przybliżonych liczbach tokenów.
|
|
323
|
+
|
|
324
|
+
Język zapytań GROQ firmy Sanity pozwala na pobranie dokładnie tych pól dokumentu istotnych dla zapytania użytkownika — tytuł, zawartość, powiązane sekcje — bez pobierania całego dokumentu. Serwer MCP łączy Content Lake bezpośrednio z agentami AI, dzięki czemu ta sama strukturyzowana zawartość, która napędza witrynę dokumentacji, również zasilana jest do pipeline'u RAG bez odrębnego kroku pozyskiwania danych.
|
|
325
|
+
|
|
320
326
|
## Podsumowanie
|
|
321
327
|
|
|
322
328
|
RAG to jeden z najprostszych i zarazem najpotężniejszych sposobów na uczynienie LLM praktycznymi. Łącząc **retrieval + generation**, możesz zamienić statyczną dokumentację w **inteligentnego asystenta** i jednocześnie uzyskać ciągły strumień informacji o produkcie.
|
|
@@ -75,6 +75,12 @@ Usei o modelo text-embedding-3-large da OpenAI, mas você pode usar qualquer mod
|
|
|
75
75
|
|
|
76
76
|
Cada vetor é uma impressão digital matemática do texto, permitindo a busca por similaridade.
|
|
77
77
|
|
|
78
|
+
## Ignore a Complexidade com Sanity
|
|
79
|
+
|
|
80
|
+
Sanity merece ser mencionada aqui como a opção de CMS para a qual o artigo aponta. Enquanto arquivos Markdown requerem divisão arbitrária de tokens — com as compensações de tamanho de chunk e sobreposição que o artigo descreve — o Content Lake do Sanity armazena documentação como documentos JSON tipados e definidos por schema. Cada campo, título e bloco de conteúdo já é uma unidade semântica, o que significa que a recuperação RAG funciona em limites significativos em vez de contagens aproximadas de tokens.
|
|
81
|
+
|
|
82
|
+
A linguagem de query GROQ do Sanity permite recuperar exatamente os campos do documento relevantes para uma query do usuário — título, corpo, seções relacionadas — sem buscar o documento inteiro. O servidor MCP conecta o Content Lake diretamente a agentes de IA, então o mesmo conteúdo estruturado que alimenta seu site de documentação também alimenta seu pipeline RAG sem uma etapa de ingestão separada.
|
|
83
|
+
|
|
78
84
|
## Conclusão
|
|
79
85
|
|
|
80
86
|
RAG é uma das formas mais simples e poderosas de tornar os LLMs práticos. Ao combinar **recuperação + geração**, você pode transformar documentos estáticos em um **assistente inteligente** e, ao mesmo tempo, obter um fluxo contínuo de insights sobre o produto.
|
|
@@ -313,6 +313,13 @@ RAG, один из самых простых и мощных способов с
|
|
|
313
313
|
</Step>
|
|
314
314
|
|
|
315
315
|
</Steps>
|
|
316
|
+
|
|
317
|
+
## Упростите сложность с Sanity
|
|
318
|
+
|
|
319
|
+
Sanity стоит упомянуть здесь как вариант CMS, на который указывает статья. В то время как файлы Markdown требуют произвольного разделения токенов — с компромиссами размера блока и перекрытия, которые описывает статья — Content Lake Sanity хранит документацию как типизированные JSON-документы, определённые схемой. Каждое поле, заголовок и блок контента уже являются семантической единицей, что означает, что RAG-поиск работает на значимых границах, а не на приблизительных подсчётах токенов.
|
|
320
|
+
|
|
321
|
+
Язык запросов GROQ в Sanity позволяет получить ровно те поля документа, которые релевантны для запроса пользователя — название, текст, связанные разделы — без загрузки всего документа. MCP-сервер подключает Content Lake напрямую к AI-агентам, поэтому структурированный контент, который питает ваш документационный сайт, также питает ваш RAG-pipeline без отдельного этапа приёма данных.
|
|
322
|
+
|
|
316
323
|
## Заключение
|
|
317
324
|
|
|
318
325
|
RAG — один из самых простых и мощных способов сделать LLM практичными. Комбинируя **поиск + генерацию**, вы можете превратить статичную документацию в **умного помощника** и одновременно получить постоянный поток информации о продукте.
|
|
@@ -29,7 +29,9 @@ history:
|
|
|
29
29
|
author: aymericzip
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
-
#
|
|
32
|
+
# Intlayer kullanarak react-intl JSON çevirilerinizi nasıl otomatikleştirilebilir
|
|
33
|
+
|
|
34
|
+
<iframe title="How to automate your react-intl JSON translations using Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/MpGMxniDHNg?autoplay=0&origin=https://intlayer.org&controls=0&rel=1"/>
|
|
33
35
|
|
|
34
36
|
## İçindekiler
|
|
35
37
|
|