@intlayer/docs 9.1.3 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/index.md +1 -1
- package/blog/ar/rag_powered_documentation_assistant.md +7 -0
- package/blog/de/index.md +1 -1
- package/blog/de/rag_powered_documentation_assistant.md +6 -0
- package/blog/en/index.md +1 -1
- package/blog/en-GB/index.md +1 -1
- package/blog/en-GB/rag_powered_documentation_assistant.md +6 -0
- package/blog/es/index.md +1 -1
- package/blog/es/rag_powered_documentation_assistant.md +7 -0
- package/blog/fr/i18n_meaning.md +7 -1
- package/blog/fr/index.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/angular.md +5 -1
- package/blog/fr/rag_powered_documentation_assistant.md +6 -0
- package/blog/hi/index.md +1 -1
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +119 -42
- package/blog/hi/rag_powered_documentation_assistant.md +7 -0
- package/blog/id/index.md +1 -1
- package/blog/id/rag_powered_documentation_assistant.md +6 -0
- package/blog/it/index.md +1 -1
- package/blog/it/rag_powered_documentation_assistant.md +6 -0
- package/blog/ja/index.md +1 -1
- package/blog/ja/rag_powered_documentation_assistant.md +7 -0
- package/blog/ko/index.md +1 -1
- package/blog/ko/list_i18n_technologies/frameworks/react.md +7 -7
- package/blog/ko/rag_powered_documentation_assistant.md +6 -0
- package/blog/pl/index.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +6 -0
- package/blog/pt/index.md +1 -1
- package/blog/pt/rag_powered_documentation_assistant.md +6 -0
- package/blog/ru/index.md +1 -1
- package/blog/ru/rag_powered_documentation_assistant.md +7 -0
- package/blog/tr/intlayer_with_react-intl.md +3 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +175 -42
- package/blog/tr/rag_powered_documentation_assistant.md +6 -0
- package/blog/uk/index.md +1 -1
- package/blog/uk/rag_powered_documentation_assistant.md +6 -0
- package/blog/vi/index.md +1 -1
- package/blog/vi/rag_powered_documentation_assistant.md +6 -0
- package/blog/zh/index.md +1 -1
- package/blog/zh/intlayer_with_i18next.md +87 -28
- package/blog/zh/intlayer_with_next-i18next.md +86 -29
- package/blog/zh/intlayer_with_next-intl.md +88 -28
- package/blog/zh/intlayer_with_react-i18next.md +87 -28
- package/blog/zh/intlayer_with_react-intl.md +88 -27
- package/blog/zh/intlayer_with_vue-i18n.md +117 -8
- package/blog/zh/rag_powered_documentation_assistant.md +6 -0
- package/dist/cjs/common.cjs +24 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +58 -31
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +265 -218
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +48 -21
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +33 -6
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/common.mjs +24 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +58 -31
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +265 -218
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +48 -21
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +33 -6
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/analytics.md +222 -0
- package/docs/ar/autoFill.md +28 -9
- package/docs/ar/bundle_optimization.md +58 -25
- package/docs/ar/configuration.md +25 -8
- package/docs/ar/dictionary/file.md +3 -1
- package/docs/ar/dictionary/nesting.md +47 -30
- package/docs/ar/formatters.md +148 -193
- package/docs/ar/intlayer_CMS.md +152 -0
- package/docs/ar/intlayer_with_angular_21.md +9 -9
- package/docs/ar/intlayer_with_nextjs_14.md +1 -28
- package/docs/ar/intlayer_with_nextjs_15.md +1 -33
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +40 -83
- package/docs/ar/intlayer_with_solid_start.md +1078 -0
- package/docs/ar/intlayer_with_vite+vue.md +1 -3
- package/docs/ar/live-sync.md +4 -0
- package/docs/ar/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ar/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ar/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/ar/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/ar/packages/vite-intlayer/exports.md +15 -0
- package/docs/ar/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ar/packages/vite-intlayer/intlayerPrune.md +70 -3
- package/docs/ar/releases/v9.md +0 -37
- package/docs/ar/self_hosting.md +46 -49
- package/docs/bn/bundle_optimization.md +58 -25
- package/docs/bn/configuration.md +25 -8
- package/docs/bn/intlayer_with_angular_21.md +9 -9
- package/docs/cs/bundle_optimization.md +58 -25
- package/docs/cs/configuration.md +25 -8
- package/docs/cs/intlayer_with_angular_21.md +9 -9
- package/docs/de/analytics.md +222 -0
- package/docs/de/autoFill.md +28 -9
- package/docs/de/bundle_optimization.md +58 -25
- package/docs/de/configuration.md +25 -8
- package/docs/de/dictionary/file.md +3 -1
- package/docs/de/dictionary/nesting.md +47 -31
- package/docs/de/formatters.md +208 -334
- package/docs/de/intlayer_CMS.md +66 -15
- package/docs/de/intlayer_with_angular_21.md +9 -9
- package/docs/de/intlayer_with_nestjs.md +11 -7
- package/docs/de/intlayer_with_nextjs_14.md +1 -28
- package/docs/de/intlayer_with_nextjs_15.md +1 -33
- package/docs/de/intlayer_with_solid_start.md +1078 -0
- package/docs/de/intlayer_with_vite+vue.md +1 -3
- package/docs/de/live-sync.md +4 -0
- package/docs/de/packages/intlayer/getLocalizedUrl.md +33 -25
- package/docs/de/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/de/packages/react-intlayer/useDictionary.md +2 -5
- package/docs/de/packages/vite-intlayer/exports.md +15 -0
- package/docs/de/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/de/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/de/releases/v9.md +0 -15
- package/docs/de/self_hosting.md +46 -50
- package/docs/en/bundle_optimization.md +51 -23
- package/docs/en/cli/doc-review.md +13 -2
- package/docs/en/configuration.md +24 -15
- package/docs/en/intlayer_with_angular_21.md +9 -9
- package/docs/en/intlayer_with_solid_start.md +1091 -0
- package/docs/en/intlayer_with_vite+solid.md +12 -0
- package/docs/en/live-sync.md +4 -0
- package/docs/en-GB/analytics.md +222 -0
- package/docs/en-GB/autoFill.md +26 -7
- package/docs/en-GB/bundle_optimization.md +58 -25
- package/docs/en-GB/configuration.md +25 -8
- package/docs/en-GB/dictionary/file.md +2 -0
- package/docs/en-GB/dictionary/nesting.md +64 -205
- package/docs/en-GB/formatters.md +146 -181
- package/docs/en-GB/intlayer_CMS.md +152 -0
- package/docs/en-GB/intlayer_with_angular_21.md +9 -9
- package/docs/en-GB/intlayer_with_nestjs.md +6 -2
- package/docs/en-GB/intlayer_with_nextjs_14.md +0 -27
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -33
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +40 -82
- package/docs/en-GB/intlayer_with_solid_start.md +1078 -0
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -3
- package/docs/en-GB/live-sync.md +4 -0
- package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +30 -22
- package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +16 -48
- package/docs/en-GB/packages/vite-intlayer/exports.md +15 -0
- package/docs/en-GB/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/en-GB/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/en-GB/self_hosting.md +60 -49
- package/docs/es/analytics.md +222 -0
- package/docs/es/autoFill.md +28 -9
- package/docs/es/bundle_optimization.md +58 -25
- package/docs/es/configuration.md +24 -7
- package/docs/es/dictionary/file.md +3 -1
- package/docs/es/dictionary/nesting.md +47 -30
- package/docs/es/formatters.md +114 -168
- package/docs/es/intlayer_CMS.md +35 -10
- package/docs/es/intlayer_with_angular_21.md +9 -9
- package/docs/es/intlayer_with_nextjs_14.md +1 -28
- package/docs/es/intlayer_with_nextjs_15.md +1 -33
- package/docs/es/intlayer_with_solid_start.md +1078 -0
- package/docs/es/live-sync.md +4 -0
- package/docs/es/packages/intlayer/getLocalizedUrl.md +31 -23
- package/docs/es/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/es/packages/vite-intlayer/exports.md +15 -0
- package/docs/es/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/es/packages/vite-intlayer/intlayerPrune.md +69 -2
- package/docs/es/releases/v9.md +0 -15
- package/docs/es/self_hosting.md +46 -49
- package/docs/fr/analytics.md +222 -0
- package/docs/fr/autoFill.md +27 -8
- package/docs/fr/bundle_optimization.md +58 -25
- package/docs/fr/configuration.md +25 -8
- package/docs/fr/dictionary/file.md +2 -0
- package/docs/fr/dictionary/nesting.md +37 -184
- package/docs/fr/formatters.md +95 -236
- package/docs/fr/intlayer_CMS.md +66 -15
- package/docs/fr/intlayer_with_angular_21.md +9 -9
- package/docs/fr/intlayer_with_nextjs_14.md +1 -28
- package/docs/fr/intlayer_with_nextjs_15.md +1 -33
- package/docs/fr/intlayer_with_solid_start.md +1078 -0
- package/docs/fr/live-sync.md +4 -0
- package/docs/fr/packages/intlayer/getLocalizedUrl.md +37 -27
- package/docs/fr/packages/intlayer/getMultilingualUrls.md +18 -20
- package/docs/fr/packages/vite-intlayer/exports.md +15 -0
- package/docs/fr/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/fr/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/fr/releases/v9.md +0 -15
- package/docs/fr/self_hosting.md +46 -49
- package/docs/hi/analytics.md +222 -0
- package/docs/hi/autoFill.md +28 -9
- package/docs/hi/bundle_optimization.md +58 -25
- package/docs/hi/configuration.md +25 -8
- package/docs/hi/dictionary/file.md +3 -1
- package/docs/hi/dictionary/nesting.md +47 -30
- package/docs/hi/formatters.md +233 -334
- package/docs/hi/how_works_intlayer.md +3 -1
- package/docs/hi/intlayer_CMS.md +152 -0
- package/docs/hi/intlayer_with_angular_21.md +9 -9
- package/docs/hi/intlayer_with_nestjs.md +11 -7
- package/docs/hi/intlayer_with_nextjs_14.md +1 -28
- package/docs/hi/intlayer_with_nextjs_15.md +1 -33
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +40 -83
- package/docs/hi/intlayer_with_solid_start.md +1077 -0
- package/docs/hi/intlayer_with_vite+preact.md +56 -49
- package/docs/hi/intlayer_with_vite+react.md +48 -41
- package/docs/hi/intlayer_with_vite+solid.md +32 -41
- package/docs/hi/intlayer_with_vite+vue.md +49 -44
- package/docs/hi/live-sync.md +4 -0
- package/docs/hi/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/hi/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/hi/packages/next-intlayer/t.md +33 -1
- package/docs/hi/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/hi/packages/vite-intlayer/exports.md +15 -0
- package/docs/hi/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/hi/packages/vite-intlayer/intlayerPrune.md +78 -5
- package/docs/hi/plugins/sync-json.md +9 -9
- package/docs/hi/releases/v9.md +0 -15
- package/docs/hi/self_hosting.md +38 -51
- package/docs/id/analytics.md +223 -0
- package/docs/id/bundle_optimization.md +58 -25
- package/docs/id/configuration.md +25 -8
- package/docs/id/dictionary/nesting.md +37 -184
- package/docs/id/formatters.md +208 -305
- package/docs/id/intlayer_CMS.md +164 -0
- package/docs/id/intlayer_with_angular_21.md +9 -9
- package/docs/id/intlayer_with_nextjs_14.md +1 -26
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +70 -63
- package/docs/id/intlayer_with_solid_start.md +1078 -0
- package/docs/id/live-sync.md +4 -0
- package/docs/id/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/id/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/id/packages/vite-intlayer/exports.md +15 -0
- package/docs/id/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/id/packages/vite-intlayer/intlayerPrune.md +78 -5
- package/docs/id/releases/v9.md +12 -0
- package/docs/id/self_hosting.md +61 -50
- package/docs/it/analytics.md +222 -0
- package/docs/it/autoFill.md +27 -8
- package/docs/it/bundle_optimization.md +58 -25
- package/docs/it/configuration.md +25 -8
- package/docs/it/dictionary/file.md +3 -1
- package/docs/it/dictionary/nesting.md +47 -30
- package/docs/it/formatters.md +114 -168
- package/docs/it/intlayer_CMS.md +66 -15
- package/docs/it/intlayer_with_angular_21.md +9 -9
- package/docs/it/intlayer_with_nestjs.md +11 -7
- package/docs/it/intlayer_with_nextjs_14.md +1 -28
- package/docs/it/intlayer_with_nextjs_15.md +1 -33
- package/docs/it/intlayer_with_solid_start.md +1078 -0
- package/docs/it/intlayer_with_vite+vue.md +1 -3
- package/docs/it/live-sync.md +4 -0
- package/docs/it/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/it/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/it/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/it/packages/vite-intlayer/exports.md +15 -0
- package/docs/it/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/it/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/it/releases/v9.md +0 -15
- package/docs/it/self_hosting.md +60 -49
- package/docs/ja/analytics.md +222 -0
- package/docs/ja/autoFill.md +28 -9
- package/docs/ja/bundle_optimization.md +58 -25
- package/docs/ja/configuration.md +25 -8
- package/docs/ja/dictionary/content_file.md +15 -7
- package/docs/ja/dictionary/file.md +3 -1
- package/docs/ja/dictionary/nesting.md +47 -30
- package/docs/ja/formatters.md +133 -187
- package/docs/ja/intlayer_visual_editor.md +3 -1
- package/docs/ja/intlayer_with_angular_21.md +6 -6
- package/docs/ja/intlayer_with_nestjs.md +2 -12
- package/docs/ja/intlayer_with_nextjs_14.md +1 -28
- package/docs/ja/intlayer_with_nextjs_15.md +1 -33
- package/docs/ja/intlayer_with_react_router_v7.md +456 -20
- package/docs/ja/intlayer_with_solid_start.md +1078 -0
- package/docs/ja/intlayer_with_vite+preact.md +73 -41
- package/docs/ja/intlayer_with_vite+vue.md +1 -3
- package/docs/ja/live-sync.md +4 -0
- package/docs/ja/mcp_server.md +3 -9
- package/docs/ja/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ja/packages/intlayer/getMultilingualUrls.md +3 -17
- package/docs/ja/packages/vite-intlayer/exports.md +15 -0
- package/docs/ja/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ja/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/ja/releases/v9.md +12 -0
- package/docs/ja/self_hosting.md +46 -50
- package/docs/ko/analytics.md +222 -0
- package/docs/ko/autoFill.md +28 -9
- package/docs/ko/bundle_optimization.md +58 -25
- package/docs/ko/configuration.md +25 -8
- package/docs/ko/dictionary/file.md +3 -1
- package/docs/ko/dictionary/nesting.md +47 -30
- package/docs/ko/formatters.md +133 -187
- package/docs/ko/intlayer_with_angular_21.md +9 -9
- package/docs/ko/intlayer_with_lynx+react.md +133 -39
- package/docs/ko/intlayer_with_nextjs_14.md +1 -28
- package/docs/ko/intlayer_with_nextjs_15.md +1 -33
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +40 -188
- package/docs/ko/intlayer_with_solid_start.md +1078 -0
- package/docs/ko/intlayer_with_vite+preact.md +57 -23
- package/docs/ko/intlayer_with_vite+vue.md +1 -3
- package/docs/ko/live-sync.md +4 -0
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ko/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ko/packages/vite-intlayer/exports.md +15 -0
- package/docs/ko/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ko/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/ko/releases/v9.md +12 -0
- package/docs/ko/self_hosting.md +60 -49
- package/docs/nl/bundle_optimization.md +58 -25
- package/docs/nl/configuration.md +25 -8
- package/docs/nl/intlayer_with_angular_21.md +9 -9
- package/docs/pl/analytics.md +220 -0
- package/docs/pl/bundle_optimization.md +58 -25
- package/docs/pl/configuration.md +25 -8
- package/docs/pl/dictionary/nesting.md +47 -30
- package/docs/pl/formatters.md +208 -305
- package/docs/pl/intlayer_CMS.md +152 -0
- package/docs/pl/intlayer_with_angular_21.md +9 -9
- package/docs/pl/intlayer_with_nextjs_14.md +1 -26
- package/docs/pl/intlayer_with_solid_start.md +1078 -0
- package/docs/pl/live-sync.md +4 -0
- package/docs/pl/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/pl/packages/react-intlayer/useDictionary.md +2 -19
- package/docs/pl/packages/vite-intlayer/exports.md +15 -0
- package/docs/pl/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/pl/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/pl/releases/v9.md +0 -15
- package/docs/pl/self_hosting.md +60 -49
- package/docs/pt/analytics.md +222 -0
- package/docs/pt/bundle_optimization.md +58 -24
- package/docs/pt/configuration.md +25 -8
- package/docs/pt/dictionary/file.md +3 -1
- package/docs/pt/dictionary/nesting.md +47 -30
- package/docs/pt/formatters.md +112 -168
- package/docs/pt/intlayer_CMS.md +66 -15
- package/docs/pt/intlayer_with_angular_21.md +9 -9
- package/docs/pt/intlayer_with_astro_lit.md +26 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -28
- package/docs/pt/intlayer_with_nextjs_15.md +1 -33
- package/docs/pt/intlayer_with_solid_start.md +1078 -0
- package/docs/pt/intlayer_with_vite+vue.md +1 -3
- package/docs/pt/live-sync.md +4 -0
- package/docs/pt/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/pt/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/pt/packages/vite-intlayer/exports.md +15 -0
- package/docs/pt/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/pt/packages/vite-intlayer/intlayerPrune.md +78 -6
- package/docs/pt/releases/v9.md +0 -15
- package/docs/pt/self_hosting.md +60 -49
- package/docs/ru/analytics.md +222 -0
- package/docs/ru/autoFill.md +27 -8
- package/docs/ru/bundle_optimization.md +58 -25
- package/docs/ru/configuration.md +25 -8
- package/docs/ru/dictionary/file.md +3 -1
- package/docs/ru/dictionary/nesting.md +64 -205
- package/docs/ru/formatters.md +108 -128
- package/docs/ru/intlayer_with_angular_21.md +9 -9
- package/docs/ru/intlayer_with_nextjs_14.md +1 -28
- package/docs/ru/intlayer_with_nextjs_15.md +1 -33
- package/docs/ru/intlayer_with_solid_start.md +1078 -0
- package/docs/ru/intlayer_with_vite+vue.md +1 -3
- package/docs/ru/live-sync.md +4 -0
- package/docs/ru/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/ru/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ru/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/ru/packages/vite-intlayer/exports.md +15 -0
- package/docs/ru/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ru/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/ru/releases/v9.md +0 -15
- package/docs/ru/self_hosting.md +60 -49
- package/docs/tr/analytics.md +222 -0
- package/docs/tr/autoFill.md +28 -9
- package/docs/tr/bundle_optimization.md +58 -25
- package/docs/tr/configuration.md +25 -8
- package/docs/tr/dictionary/file.md +2 -0
- package/docs/tr/dictionary/nesting.md +47 -30
- package/docs/tr/formatters.md +144 -190
- package/docs/tr/intlayer_CMS.md +152 -0
- package/docs/tr/intlayer_with_angular_21.md +9 -9
- package/docs/tr/intlayer_with_nestjs.md +2 -12
- package/docs/tr/intlayer_with_nextjs_15.md +1 -33
- package/docs/tr/intlayer_with_solid_start.md +1078 -0
- package/docs/tr/intlayer_with_vite+vue.md +1 -3
- package/docs/tr/live-sync.md +4 -0
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/tr/packages/vite-intlayer/exports.md +15 -0
- package/docs/tr/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/tr/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/tr/self_hosting.md +47 -50
- package/docs/uk/analytics.md +222 -0
- package/docs/uk/bundle_optimization.md +58 -25
- package/docs/uk/configuration.md +25 -8
- package/docs/uk/dictionary/nesting.md +47 -30
- package/docs/uk/formatters.md +128 -185
- package/docs/uk/intlayer_CMS.md +152 -0
- package/docs/uk/intlayer_with_angular_21.md +9 -9
- package/docs/uk/intlayer_with_nextjs_14.md +1 -26
- package/docs/uk/intlayer_with_solid_start.md +1078 -0
- package/docs/uk/live-sync.md +4 -0
- package/docs/uk/packages/react-intlayer/useDictionary.md +2 -19
- package/docs/uk/packages/vite-intlayer/exports.md +15 -0
- package/docs/uk/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/uk/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/uk/releases/v9.md +0 -15
- package/docs/uk/self_hosting.md +60 -50
- package/docs/ur/bundle_optimization.md +58 -25
- package/docs/ur/configuration.md +25 -8
- package/docs/ur/intlayer_with_angular_21.md +9 -9
- package/docs/vi/analytics.md +222 -0
- package/docs/vi/bundle_optimization.md +58 -25
- package/docs/vi/configuration.md +24 -8
- package/docs/vi/dictionary/nesting.md +37 -184
- package/docs/vi/formatters.md +208 -309
- package/docs/vi/intlayer_CMS.md +164 -0
- package/docs/vi/intlayer_with_angular_21.md +9 -9
- package/docs/vi/intlayer_with_nextjs_14.md +0 -25
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +70 -63
- package/docs/vi/intlayer_with_solid_start.md +1078 -0
- package/docs/vi/live-sync.md +4 -0
- package/docs/vi/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/vi/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/vi/packages/vite-intlayer/exports.md +15 -0
- package/docs/vi/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/vi/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/vi/plugins/sync-json.md +6 -6
- package/docs/vi/releases/v9.md +12 -0
- package/docs/vi/self_hosting.md +61 -50
- package/docs/zh/CI_CD.md +4 -0
- package/docs/zh/analytics.md +222 -0
- package/docs/zh/autoFill.md +28 -9
- package/docs/zh/bundle_optimization.md +58 -25
- package/docs/zh/configuration.md +24 -8
- package/docs/zh/dictionary/file.md +2 -0
- package/docs/zh/dictionary/nesting.md +47 -30
- package/docs/zh/formatters.md +140 -188
- package/docs/zh/intlayer_CMS.md +164 -0
- package/docs/zh/intlayer_with_analog.md +193 -3
- package/docs/zh/intlayer_with_angular_19.md +272 -3
- package/docs/zh/intlayer_with_angular_21.md +7 -7
- package/docs/zh/intlayer_with_create_react_app.md +348 -26
- package/docs/zh/intlayer_with_lynx+react.md +263 -4
- package/docs/zh/intlayer_with_nextjs_14.md +1 -28
- package/docs/zh/intlayer_with_nextjs_15.md +1 -33
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +558 -1
- package/docs/zh/intlayer_with_nuxt.md +182 -7
- package/docs/zh/intlayer_with_react_router_v7.md +183 -25
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +306 -42
- package/docs/zh/intlayer_with_solid_start.md +1077 -0
- package/docs/zh/intlayer_with_storybook.md +260 -3
- package/docs/zh/intlayer_with_svelte_kit.md +428 -48
- package/docs/zh/intlayer_with_tanstack+solid.md +713 -13
- package/docs/zh/intlayer_with_tanstack.md +731 -20
- package/docs/zh/intlayer_with_vanilla.md +314 -4
- package/docs/zh/intlayer_with_vite+lit.md +465 -4
- package/docs/zh/intlayer_with_vite+preact.md +422 -116
- package/docs/zh/intlayer_with_vite+react.md +324 -45
- package/docs/zh/intlayer_with_vite+react_compiler.md +228 -13
- package/docs/zh/intlayer_with_vite+solid.md +462 -32
- package/docs/zh/intlayer_with_vite+vanilla.md +497 -4
- package/docs/zh/live-sync.md +4 -0
- package/docs/zh/mcp_server.md +3 -9
- package/docs/zh/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/zh/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/zh/packages/vite-intlayer/exports.md +29 -0
- package/docs/zh/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/zh/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/zh/releases/v9.md +12 -0
- package/docs/zh/self_hosting.md +60 -50
- package/docs/zh-TW/bundle_optimization.md +58 -25
- package/docs/zh-TW/intlayer_with_angular_21.md +7 -7
- package/package.json +7 -7
- package/src/common.ts +39 -2
- package/src/generated/blog.entry.ts +66 -34
- package/src/generated/docs.entry.ts +273 -221
- package/src/generated/frequentQuestions.entry.ts +56 -24
- package/src/generated/legal.entry.ts +41 -9
|
@@ -64,6 +64,53 @@ export default firstDictionary;
|
|
|
64
64
|
}
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
### الإشارة باستخدام Nest
|
|
68
|
+
|
|
69
|
+
الآن، قم بإنشاء وحدة محتوى أخرى تستخدم دالة `nest` للإشارة إلى المحتوى أعلاه. يمكنك الإشارة إلى المحتوى بالكامل أو قيمة محددة متداخلة:
|
|
70
|
+
|
|
71
|
+
```typescript fileName="secondDictionary.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
72
|
+
import { nest, type Dictionary } from "intlayer";
|
|
73
|
+
|
|
74
|
+
const myNestingContent = {
|
|
75
|
+
key: "key_of_my_second_dictionary",
|
|
76
|
+
content: {
|
|
77
|
+
// الإشارة إلى القاموس بالكامل:
|
|
78
|
+
fullNestedContent: nest("key_of_my_first_dictionary"),
|
|
79
|
+
// الإشارة إلى قيمة متداخلة محددة:
|
|
80
|
+
partialNestedContent: nest(
|
|
81
|
+
"key_of_my_first_dictionary",
|
|
82
|
+
"subContent.contentNumber"
|
|
83
|
+
),
|
|
84
|
+
},
|
|
85
|
+
} satisfies Dictionary;
|
|
86
|
+
|
|
87
|
+
export default myNestingContent;
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```json fileName="secondDictionary.content.json" contentDeclarationFormat="json"
|
|
91
|
+
{
|
|
92
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
93
|
+
"key": "key_of_my_second_dictionary",
|
|
94
|
+
"content": {
|
|
95
|
+
"fullNestedContent": {
|
|
96
|
+
"nodeType": "nested",
|
|
97
|
+
"nested": {
|
|
98
|
+
"dictionaryKey": "key_of_my_first_dictionary"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"partialNestedContent": {
|
|
102
|
+
"nodeType": "nested",
|
|
103
|
+
"nested": {
|
|
104
|
+
"dictionaryKey": "key_of_my_first_dictionary",
|
|
105
|
+
"path": "subContent.contentNumber"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
كمعامل ثانٍ، يمكنك تحديد المسار إلى قيمة متداخلة داخل هذا المحتوى. عندما لا يتم توفير مسار، يتم إرجاع محتوى القاموس المرجعي بالكامل.
|
|
113
|
+
|
|
67
114
|
## إعداد التعشيش
|
|
68
115
|
|
|
69
116
|
<Tabs group="framework">
|
|
@@ -258,36 +305,6 @@ document.getElementById("nested")!.textContent = content.partialNestedContent;
|
|
|
258
305
|
</Tab>
|
|
259
306
|
</Tabs>
|
|
260
307
|
|
|
261
|
-
## استخدام التعشيش مع React Intlayer
|
|
262
|
-
|
|
263
|
-
لاستخدام المحتوى المتعشش في مكون React، استخدم الخطاف `useIntlayer` من حزمة `react-intlayer`. يسترجع هذا الخطاف المحتوى الصحيح بناءً على المفتاح المحدد. إليك مثال على كيفية استخدامه:
|
|
264
|
-
|
|
265
|
-
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
266
|
-
import type { FC } from "react";
|
|
267
|
-
import { useIntlayer } from "react-intlayer";
|
|
268
|
-
|
|
269
|
-
const NestComponent: FC = () => {
|
|
270
|
-
const { fullNestedContent, partialNestedContent } = useIntlayer(
|
|
271
|
-
"key_of_my_second_dictionary"
|
|
272
|
-
);
|
|
273
|
-
|
|
274
|
-
return (
|
|
275
|
-
<div>
|
|
276
|
-
<p>
|
|
277
|
-
Full Nested Content: {JSON.stringify(fullNestedContent)}
|
|
278
|
-
{/* الإخراج: {"content": "content", "subContent": {"contentNumber": 0, "contentString": "string"}} */}
|
|
279
|
-
</p>
|
|
280
|
-
<p>
|
|
281
|
-
Partial Nested Value: {partialNestedContent}
|
|
282
|
-
{/* الإخراج: 0 */}
|
|
283
|
-
</p>
|
|
284
|
-
</div>
|
|
285
|
-
);
|
|
286
|
-
};
|
|
287
|
-
|
|
288
|
-
export default NestComponent;
|
|
289
|
-
```
|
|
290
|
-
|
|
291
308
|
## موارد إضافية
|
|
292
309
|
|
|
293
310
|
لمزيد من المعلومات التفصيلية حول التكوين والاستخدام، راجع الموارد التالية:
|
package/docs/ar/formatters.md
CHANGED
|
@@ -46,34 +46,6 @@ author: aymericzip
|
|
|
46
46
|
|
|
47
47
|
يوفر Intlayer مجموعة من المساعدين الخفيفين المبنيين على واجهات برمجة التطبيقات الأصلية `Intl`، بالإضافة إلى غلاف `Intl` مخزن مؤقت لتجنب إنشاء أدوات تنسيق ثقيلة بشكل متكرر. هذه الأدوات مدركة تمامًا للغة ويمكن استخدامها من الحزمة الرئيسية `intlayer`.
|
|
48
48
|
|
|
49
|
-
### الاستيراد
|
|
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، فإن الخطافات متاحة أيضًا؛ راجع `react-intlayer/format`.
|
|
76
|
-
|
|
77
49
|
## Intl المخزن مؤقتًا
|
|
78
50
|
|
|
79
51
|
الـ `Intl` المصدر هو غلاف رقيق مخزن مؤقت حول الـ `Intl` العالمي. يقوم بتخزين نسخ من `NumberFormat`، `DateTimeFormat`، `RelativeTimeFormat`، `ListFormat`، `DisplayNames`، `Collator`، و `PluralRules`، مما يتجنب إعادة بناء نفس أداة التنسيق مرارًا وتكرارًا.
|
|
@@ -110,86 +82,8 @@ pluralRules.select(1); // "واحد"
|
|
|
110
82
|
pluralRules.select(2); // "آخر"
|
|
111
83
|
```
|
|
112
84
|
|
|
113
|
-
## أدوات Intl إضافية
|
|
114
|
-
|
|
115
|
-
بعيدًا عن مساعدي التنسيق، يمكنك أيضًا استخدام الغلاف المؤقت لـ Intl مباشرةً لميزات Intl الأخرى:
|
|
116
|
-
|
|
117
|
-
### `Intl.DisplayNames`
|
|
118
|
-
|
|
119
|
-
لأسماء اللغات والمناطق والعملات والكتابات المحلية:
|
|
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
|
-
للمقارنة والفرز النصي المعتمد على اللغة:
|
|
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
|
-
لتحديد أشكال الجمع في لغات مختلفة:
|
|
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
|
## أدوات اللغة
|
|
163
86
|
|
|
164
|
-
### `getLocaleName(displayLocale, targetLocale?)`
|
|
165
|
-
|
|
166
|
-
يحصل على الاسم المحلي للغة في لغة أخرى:
|
|
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**: اللغة التي سيتم الحصول على اسمها
|
|
177
|
-
- **targetLocale**: اللغة التي سيتم عرض الاسم بها (افتراضيًا تكون نفس displayLocale)
|
|
178
|
-
|
|
179
|
-
### `getLocaleLang(locale?)`
|
|
180
|
-
|
|
181
|
-
يستخرج رمز اللغة من سلسلة اللغة:
|
|
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**: اللغة التي سيتم استخراج رمز اللغة منها (افتراضيًا اللغة الحالية)
|
|
192
|
-
|
|
193
87
|
### `getLocaleFromPath(inputUrl)`
|
|
194
88
|
|
|
195
89
|
يستخرج جزء اللغة من عنوان URL أو مسار:
|
|
@@ -330,9 +224,11 @@ const content = await getIntlayerAsync("common", "fr");
|
|
|
330
224
|
|
|
331
225
|
جميع الأدوات التالية مُصدرة من `intlayer`.
|
|
332
226
|
|
|
333
|
-
### `
|
|
227
|
+
### `percentage(value, options?)`
|
|
228
|
+
|
|
229
|
+
يقوم بتنسيق رقم كسلسلة نسبة مئوية.
|
|
334
230
|
|
|
335
|
-
|
|
231
|
+
السلوك: القيم الأكبر من 1 تُفسر كنسب مئوية كاملة ويتم تطبيعها (مثلاً، `25` → `25%`، `0.25` → `25%`).
|
|
336
232
|
|
|
337
233
|
- **value**: `number | string`
|
|
338
234
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
@@ -340,125 +236,196 @@ const content = await getIntlayerAsync("common", "fr");
|
|
|
340
236
|
أمثلة:
|
|
341
237
|
|
|
342
238
|
```ts
|
|
343
|
-
import {
|
|
239
|
+
import { percentage } from "intlayer";
|
|
344
240
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
241
|
+
percentage(0.25); // "25%"
|
|
242
|
+
percentage(25); // "25%"
|
|
243
|
+
percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
|
|
348
244
|
```
|
|
349
245
|
|
|
350
|
-
###
|
|
246
|
+
### ميزات Intl إضافية
|
|
351
247
|
|
|
352
|
-
|
|
248
|
+
#### `number(value, options?)`
|
|
353
249
|
|
|
354
|
-
|
|
250
|
+
تنسيق قيمة رقمية باستخدام التجميع والفواصل العشرية الموجهة للغة.
|
|
355
251
|
|
|
356
252
|
- **value**: `number | string`
|
|
357
253
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
358
254
|
|
|
359
|
-
أمثلة:
|
|
360
|
-
|
|
361
255
|
```ts
|
|
362
|
-
|
|
256
|
+
number(123456.789); // "123,456.789" (in en-US)
|
|
257
|
+
number("1000000", { locale: "fr" }); // "1 000 000"
|
|
258
|
+
number(1234.5, { minimumFractionDigits: 2 }); // "1,234.50"
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### `percentage(value, options?)`
|
|
262
|
+
|
|
263
|
+
تنسّق رقماً كسلسلة نسبة مئوية. يتم تطبيع القيم الأكبر من 1 (على سبيل المثال، `25` → `25%`، `0.25` → `25%`).
|
|
264
|
+
|
|
265
|
+
- **value**: `number | string`
|
|
266
|
+
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
363
267
|
|
|
268
|
+
```ts
|
|
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
|
-
|
|
276
|
+
تنسيق قيمة كعملة محلية. القيمة الافتراضية هي `USD`.
|
|
372
277
|
|
|
373
278
|
- **value**: `number | string`
|
|
374
279
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
375
|
-
-
|
|
376
|
-
|
|
377
|
-
أمثلة:
|
|
280
|
+
- Common: `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
|
+
تنسيق قيمة التاريخ/الوقت.
|
|
389
290
|
|
|
390
291
|
- **date**: `Date | string | number`
|
|
391
|
-
- **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` أو
|
|
392
|
-
- الإعدادات المسبقة: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
|
|
393
|
-
|
|
394
|
-
أمثلة:
|
|
292
|
+
- **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` أو preset: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
|
|
395
293
|
|
|
396
294
|
```ts
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
date(new Date(), "short"); // على سبيل المثال، "08/02/25, 14:30"
|
|
295
|
+
date(new Date(), "short"); // مثال، "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
|
+
تنسيق الوقت النسبي بين لحظتين.
|
|
408
302
|
|
|
409
|
-
- مرر "now" كوسيط أول والهدف كوسيط ثاني للحصول على تعبير طبيعي.
|
|
410
303
|
- **from**: `Date | string | number`
|
|
411
|
-
- **to**: `Date | string | number` (
|
|
412
|
-
- **options**: `{ locale
|
|
413
|
-
- الوحدة الافتراضية `unit` هي `"second"`.
|
|
414
|
-
|
|
415
|
-
أمثلة:
|
|
304
|
+
- **to**: `Date | string | number` (الافتراضي `new Date()`)
|
|
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 أيام"
|
|
423
311
|
|
|
424
312
|
const twoHoursAgo = new Date(now.getTime() - 2 * 3600e3);
|
|
425
|
-
relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "
|
|
313
|
+
relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "قبل ساعتين"
|
|
426
314
|
```
|
|
427
315
|
|
|
428
|
-
|
|
316
|
+
#### `units(value, options?)`
|
|
429
317
|
|
|
430
|
-
|
|
318
|
+
تنسيق قيمة رقمية مع وحدة.
|
|
431
319
|
|
|
432
320
|
- **value**: `number | string`
|
|
433
321
|
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
434
|
-
-
|
|
435
|
-
- القيم الافتراضية: `unit: 'day'`، `unitDisplay: 'short'`، `useGrouping: false`
|
|
436
|
-
|
|
437
|
-
أمثلة:
|
|
322
|
+
- Common: `unit` (على سبيل المثال، `"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
|
+
تنسيق رقم باستخدام الترميز المضغوط.
|
|
449
332
|
|
|
450
333
|
- **value**: `number | string`
|
|
451
|
-
- **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
|
|
452
|
-
|
|
453
|
-
أمثلة:
|
|
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
|
+
تنسيق مصفوفة إلى سلسلة قائمة محلية.
|
|
344
|
+
|
|
345
|
+
- **values**: `(string | number)[]`
|
|
346
|
+
- **options**: `Intl.ListFormatOptions & { locale?: LocalesValues }`
|
|
347
|
+
- Common: `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
|
+
الـ `Intl` المُصدَّر من `intlayer` هو غلاف مُخزّن مؤقتاً حول الـ `Intl` العام. يقوم بحفظ نسخ من instances المُنسِّقات (`NumberFormat`، `DateTimeFormat`، إلخ.) لتجنب بنائها بشكل متكرر، مما يحسّن الأداء.
|
|
357
|
+
|
|
358
|
+
```ts
|
|
359
|
+
import { Intl } from "intlayer";
|
|
360
|
+
|
|
361
|
+
// تنسيق الأرقام
|
|
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
|
+
// عرض الأسماء للغات والمناطق وما إلى ذلك
|
|
369
|
+
const displayNames = new Intl.DisplayNames("fr", { type: "language" });
|
|
370
|
+
displayNames.of("en"); // "anglais"
|
|
371
|
+
|
|
372
|
+
// المصادفة للفرز
|
|
373
|
+
const collator = new Intl.Collator("fr", { sensitivity: "base" });
|
|
374
|
+
collator.compare("é", "e"); // 0 (متساوية)
|
|
375
|
+
|
|
376
|
+
// قواعد الجمع
|
|
377
|
+
const pluralRules = new Intl.PluralRules("fr");
|
|
378
|
+
pluralRules.select(1); // "one"
|
|
379
|
+
pluralRules.select(2); // "other"
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### ميزات Intl إضافية
|
|
383
|
+
|
|
384
|
+
#### `Intl.DisplayNames`
|
|
385
|
+
|
|
386
|
+
للحصول على الأسماء المحلية للغات والمناطق والعملات والنصوص:
|
|
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
|
+
لمقارنة وترتيب السلاسل النصية مع الوعي بالإعدادات المحلية:
|
|
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
|
+
لتحديد أشكال الجمع في لغات مختلفة:
|
|
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
|
## أدوات المناطق الإقليمية
|
|
463
430
|
|
|
464
431
|
### `list(values, options?)`
|
|
@@ -491,11 +458,17 @@ getLocaleLang("en-US"); // "en"
|
|
|
491
458
|
getLocaleLang("fr-CA"); // "fr"
|
|
492
459
|
```
|
|
493
460
|
|
|
494
|
-
|
|
461
|
+
### `getLocaleFromPath(inputUrl)`
|
|
495
462
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
463
|
+
استخراج جزء اللغة من عنوان URL أو مسار:
|
|
464
|
+
|
|
465
|
+
```ts
|
|
466
|
+
import { getLocaleFromPath } from "intlayer";
|
|
467
|
+
|
|
468
|
+
getLocaleFromPath("/en/dashboard"); // "en"
|
|
469
|
+
getLocaleFromPath("/fr/dashboard"); // "fr"
|
|
470
|
+
getLocaleFromPath("/dashboard"); // "en" (اللغة الافتراضية)
|
|
471
|
+
```
|
|
499
472
|
|
|
500
473
|
### `getPathWithoutLocale(inputUrl, locales?)`
|
|
501
474
|
|
|
@@ -519,34 +492,16 @@ getLocalizedUrl("/about", "fr", ["en", "fr"], "en", false); // "/fr/about"
|
|
|
519
492
|
getLocalizedUrl("/about", "en", ["en", "fr"], "en", false); // "/about"
|
|
520
493
|
```
|
|
521
494
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
تعيش أدوات التنسيق في الحزمة الأساسية ويتم إعادة تصديرها من الحزم الأعلى للحفاظ على سهولة الاستيراد عبر بيئات التشغيل المختلفة:
|
|
495
|
+
### `getHTMLTextDir(locale?)`
|
|
525
496
|
|
|
526
|
-
|
|
497
|
+
يعيد اتجاه النص للغة معينة:
|
|
527
498
|
|
|
528
499
|
```ts
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
relativeTime,
|
|
535
|
-
units,
|
|
536
|
-
compact,
|
|
537
|
-
list,
|
|
538
|
-
Intl,
|
|
539
|
-
getLocaleName,
|
|
540
|
-
getLocaleLang,
|
|
541
|
-
getLocaleFromPath,
|
|
542
|
-
getPathWithoutLocale,
|
|
543
|
-
getLocalizedUrl,
|
|
544
|
-
getHTMLTextDir,
|
|
545
|
-
getContent,
|
|
546
|
-
getTranslation,
|
|
547
|
-
getIntlayer,
|
|
548
|
-
getIntlayerAsync,
|
|
549
|
-
} from "intlayer";
|
|
500
|
+
import { getHTMLTextDir } from "intlayer";
|
|
501
|
+
|
|
502
|
+
getHTMLTextDir("en-US"); // "ltr"
|
|
503
|
+
getHTMLTextDir("ar"); // "rtl"
|
|
504
|
+
getHTMLTextDir("he"); // "rtl"
|
|
550
505
|
```
|
|
551
506
|
|
|
552
507
|
## أدوات معالجة المحتوى
|