@intlayer/docs 9.1.3 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/rag_powered_documentation_assistant.md +7 -0
- package/blog/de/rag_powered_documentation_assistant.md +6 -0
- package/blog/en-GB/rag_powered_documentation_assistant.md +6 -0
- package/blog/es/rag_powered_documentation_assistant.md +7 -0
- package/blog/fr/i18n_meaning.md +7 -1
- package/blog/fr/list_i18n_technologies/frameworks/angular.md +5 -1
- package/blog/fr/rag_powered_documentation_assistant.md +6 -0
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +119 -42
- package/blog/hi/rag_powered_documentation_assistant.md +7 -0
- package/blog/id/rag_powered_documentation_assistant.md +6 -0
- package/blog/it/rag_powered_documentation_assistant.md +6 -0
- package/blog/ja/rag_powered_documentation_assistant.md +7 -0
- package/blog/ko/list_i18n_technologies/frameworks/react.md +7 -7
- package/blog/ko/rag_powered_documentation_assistant.md +6 -0
- package/blog/pl/rag_powered_documentation_assistant.md +6 -0
- package/blog/pt/rag_powered_documentation_assistant.md +6 -0
- package/blog/ru/rag_powered_documentation_assistant.md +7 -0
- package/blog/tr/intlayer_with_react-intl.md +3 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +175 -42
- package/blog/tr/rag_powered_documentation_assistant.md +6 -0
- package/blog/uk/rag_powered_documentation_assistant.md +6 -0
- package/blog/vi/rag_powered_documentation_assistant.md +6 -0
- package/blog/zh/intlayer_with_i18next.md +87 -28
- package/blog/zh/intlayer_with_next-i18next.md +86 -29
- package/blog/zh/intlayer_with_next-intl.md +88 -28
- package/blog/zh/intlayer_with_react-i18next.md +87 -28
- package/blog/zh/intlayer_with_react-intl.md +88 -27
- package/blog/zh/intlayer_with_vue-i18n.md +117 -8
- package/blog/zh/rag_powered_documentation_assistant.md +6 -0
- package/dist/cjs/generated/blog.entry.cjs +27 -27
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +234 -214
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +17 -17
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +2 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +27 -27
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +234 -214
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +17 -17
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +2 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/analytics.md +222 -0
- package/docs/ar/autoFill.md +28 -9
- package/docs/ar/configuration.md +25 -8
- package/docs/ar/dictionary/file.md +3 -1
- package/docs/ar/dictionary/nesting.md +47 -30
- package/docs/ar/formatters.md +148 -193
- package/docs/ar/intlayer_CMS.md +152 -0
- package/docs/ar/intlayer_with_angular_21.md +9 -9
- package/docs/ar/intlayer_with_nextjs_14.md +1 -28
- package/docs/ar/intlayer_with_nextjs_15.md +1 -33
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +40 -83
- package/docs/ar/intlayer_with_solid_start.md +1078 -0
- package/docs/ar/intlayer_with_vite+vue.md +1 -3
- package/docs/ar/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ar/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ar/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/ar/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/ar/packages/vite-intlayer/exports.md +15 -0
- package/docs/ar/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ar/packages/vite-intlayer/intlayerPrune.md +70 -3
- package/docs/ar/releases/v9.md +0 -37
- package/docs/ar/self_hosting.md +46 -49
- package/docs/bn/configuration.md +25 -8
- package/docs/bn/intlayer_with_angular_21.md +9 -9
- package/docs/cs/configuration.md +25 -8
- package/docs/cs/intlayer_with_angular_21.md +9 -9
- package/docs/de/analytics.md +222 -0
- package/docs/de/autoFill.md +28 -9
- package/docs/de/configuration.md +25 -8
- package/docs/de/dictionary/file.md +3 -1
- package/docs/de/dictionary/nesting.md +47 -31
- package/docs/de/formatters.md +208 -334
- package/docs/de/intlayer_CMS.md +66 -15
- package/docs/de/intlayer_with_angular_21.md +9 -9
- package/docs/de/intlayer_with_nestjs.md +11 -7
- package/docs/de/intlayer_with_nextjs_14.md +1 -28
- package/docs/de/intlayer_with_nextjs_15.md +1 -33
- package/docs/de/intlayer_with_solid_start.md +1078 -0
- package/docs/de/intlayer_with_vite+vue.md +1 -3
- package/docs/de/packages/intlayer/getLocalizedUrl.md +33 -25
- package/docs/de/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/de/packages/react-intlayer/useDictionary.md +2 -5
- package/docs/de/packages/vite-intlayer/exports.md +15 -0
- package/docs/de/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/de/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/de/releases/v9.md +0 -15
- package/docs/de/self_hosting.md +46 -50
- package/docs/en/cli/doc-review.md +13 -2
- package/docs/en/configuration.md +24 -15
- package/docs/en/intlayer_with_angular_21.md +9 -9
- package/docs/en/intlayer_with_solid_start.md +1091 -0
- package/docs/en/intlayer_with_vite+solid.md +12 -0
- package/docs/en-GB/analytics.md +222 -0
- package/docs/en-GB/autoFill.md +26 -7
- package/docs/en-GB/configuration.md +25 -8
- package/docs/en-GB/dictionary/file.md +2 -0
- package/docs/en-GB/dictionary/nesting.md +64 -205
- package/docs/en-GB/formatters.md +146 -181
- package/docs/en-GB/intlayer_CMS.md +152 -0
- package/docs/en-GB/intlayer_with_angular_21.md +9 -9
- package/docs/en-GB/intlayer_with_nestjs.md +6 -2
- package/docs/en-GB/intlayer_with_nextjs_14.md +0 -27
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -33
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +40 -82
- package/docs/en-GB/intlayer_with_solid_start.md +1078 -0
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -3
- package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +30 -22
- package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +16 -48
- package/docs/en-GB/packages/vite-intlayer/exports.md +15 -0
- package/docs/en-GB/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/en-GB/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/en-GB/self_hosting.md +60 -49
- package/docs/es/analytics.md +222 -0
- package/docs/es/autoFill.md +28 -9
- package/docs/es/configuration.md +24 -7
- package/docs/es/dictionary/file.md +3 -1
- package/docs/es/dictionary/nesting.md +47 -30
- package/docs/es/formatters.md +114 -168
- package/docs/es/intlayer_CMS.md +35 -10
- package/docs/es/intlayer_with_angular_21.md +9 -9
- package/docs/es/intlayer_with_nextjs_14.md +1 -28
- package/docs/es/intlayer_with_nextjs_15.md +1 -33
- package/docs/es/intlayer_with_solid_start.md +1078 -0
- package/docs/es/packages/intlayer/getLocalizedUrl.md +31 -23
- package/docs/es/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/es/packages/vite-intlayer/exports.md +15 -0
- package/docs/es/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/es/packages/vite-intlayer/intlayerPrune.md +69 -2
- package/docs/es/releases/v9.md +0 -15
- package/docs/es/self_hosting.md +46 -49
- package/docs/fr/analytics.md +222 -0
- package/docs/fr/autoFill.md +27 -8
- package/docs/fr/configuration.md +25 -8
- package/docs/fr/dictionary/file.md +2 -0
- package/docs/fr/dictionary/nesting.md +37 -184
- package/docs/fr/formatters.md +95 -236
- package/docs/fr/intlayer_CMS.md +66 -15
- package/docs/fr/intlayer_with_angular_21.md +9 -9
- package/docs/fr/intlayer_with_nextjs_14.md +1 -28
- package/docs/fr/intlayer_with_nextjs_15.md +1 -33
- package/docs/fr/intlayer_with_solid_start.md +1078 -0
- package/docs/fr/packages/intlayer/getLocalizedUrl.md +37 -27
- package/docs/fr/packages/intlayer/getMultilingualUrls.md +18 -20
- package/docs/fr/packages/vite-intlayer/exports.md +15 -0
- package/docs/fr/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/fr/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/fr/releases/v9.md +0 -15
- package/docs/fr/self_hosting.md +46 -49
- package/docs/hi/analytics.md +222 -0
- package/docs/hi/autoFill.md +28 -9
- package/docs/hi/configuration.md +25 -8
- package/docs/hi/dictionary/file.md +3 -1
- package/docs/hi/dictionary/nesting.md +47 -30
- package/docs/hi/formatters.md +233 -334
- package/docs/hi/how_works_intlayer.md +3 -1
- package/docs/hi/intlayer_CMS.md +152 -0
- package/docs/hi/intlayer_with_angular_21.md +9 -9
- package/docs/hi/intlayer_with_nestjs.md +11 -7
- package/docs/hi/intlayer_with_nextjs_14.md +1 -28
- package/docs/hi/intlayer_with_nextjs_15.md +1 -33
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +40 -83
- package/docs/hi/intlayer_with_solid_start.md +1077 -0
- package/docs/hi/intlayer_with_vite+preact.md +56 -49
- package/docs/hi/intlayer_with_vite+react.md +48 -41
- package/docs/hi/intlayer_with_vite+solid.md +32 -41
- package/docs/hi/intlayer_with_vite+vue.md +49 -44
- package/docs/hi/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/hi/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/hi/packages/next-intlayer/t.md +33 -1
- package/docs/hi/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/hi/packages/vite-intlayer/exports.md +15 -0
- package/docs/hi/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/hi/packages/vite-intlayer/intlayerPrune.md +78 -5
- package/docs/hi/plugins/sync-json.md +9 -9
- package/docs/hi/releases/v9.md +0 -15
- package/docs/hi/self_hosting.md +38 -51
- package/docs/id/analytics.md +223 -0
- package/docs/id/configuration.md +25 -8
- package/docs/id/dictionary/nesting.md +37 -184
- package/docs/id/formatters.md +208 -305
- package/docs/id/intlayer_CMS.md +164 -0
- package/docs/id/intlayer_with_angular_21.md +9 -9
- package/docs/id/intlayer_with_nextjs_14.md +1 -26
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +70 -63
- package/docs/id/intlayer_with_solid_start.md +1078 -0
- package/docs/id/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/id/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/id/packages/vite-intlayer/exports.md +15 -0
- package/docs/id/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/id/packages/vite-intlayer/intlayerPrune.md +78 -5
- package/docs/id/releases/v9.md +12 -0
- package/docs/id/self_hosting.md +61 -50
- package/docs/it/analytics.md +222 -0
- package/docs/it/autoFill.md +27 -8
- package/docs/it/configuration.md +25 -8
- package/docs/it/dictionary/file.md +3 -1
- package/docs/it/dictionary/nesting.md +47 -30
- package/docs/it/formatters.md +114 -168
- package/docs/it/intlayer_CMS.md +66 -15
- package/docs/it/intlayer_with_angular_21.md +9 -9
- package/docs/it/intlayer_with_nestjs.md +11 -7
- package/docs/it/intlayer_with_nextjs_14.md +1 -28
- package/docs/it/intlayer_with_nextjs_15.md +1 -33
- package/docs/it/intlayer_with_solid_start.md +1078 -0
- package/docs/it/intlayer_with_vite+vue.md +1 -3
- package/docs/it/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/it/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/it/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/it/packages/vite-intlayer/exports.md +15 -0
- package/docs/it/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/it/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/it/releases/v9.md +0 -15
- package/docs/it/self_hosting.md +60 -49
- package/docs/ja/analytics.md +222 -0
- package/docs/ja/autoFill.md +28 -9
- package/docs/ja/configuration.md +25 -8
- package/docs/ja/dictionary/content_file.md +15 -7
- package/docs/ja/dictionary/file.md +3 -1
- package/docs/ja/dictionary/nesting.md +47 -30
- package/docs/ja/formatters.md +133 -187
- package/docs/ja/intlayer_visual_editor.md +3 -1
- package/docs/ja/intlayer_with_angular_21.md +6 -6
- package/docs/ja/intlayer_with_nestjs.md +2 -12
- package/docs/ja/intlayer_with_nextjs_14.md +1 -28
- package/docs/ja/intlayer_with_nextjs_15.md +1 -33
- package/docs/ja/intlayer_with_react_router_v7.md +456 -20
- package/docs/ja/intlayer_with_solid_start.md +1078 -0
- package/docs/ja/intlayer_with_vite+preact.md +73 -41
- package/docs/ja/intlayer_with_vite+vue.md +1 -3
- package/docs/ja/mcp_server.md +3 -9
- package/docs/ja/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ja/packages/intlayer/getMultilingualUrls.md +3 -17
- package/docs/ja/packages/vite-intlayer/exports.md +15 -0
- package/docs/ja/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ja/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/ja/releases/v9.md +12 -0
- package/docs/ja/self_hosting.md +46 -50
- package/docs/ko/analytics.md +222 -0
- package/docs/ko/autoFill.md +28 -9
- package/docs/ko/configuration.md +25 -8
- package/docs/ko/dictionary/file.md +3 -1
- package/docs/ko/dictionary/nesting.md +47 -30
- package/docs/ko/formatters.md +133 -187
- package/docs/ko/intlayer_with_angular_21.md +9 -9
- package/docs/ko/intlayer_with_lynx+react.md +133 -39
- package/docs/ko/intlayer_with_nextjs_14.md +1 -28
- package/docs/ko/intlayer_with_nextjs_15.md +1 -33
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +40 -188
- package/docs/ko/intlayer_with_solid_start.md +1078 -0
- package/docs/ko/intlayer_with_vite+preact.md +57 -23
- package/docs/ko/intlayer_with_vite+vue.md +1 -3
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/ko/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ko/packages/vite-intlayer/exports.md +15 -0
- package/docs/ko/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ko/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/ko/releases/v9.md +12 -0
- package/docs/ko/self_hosting.md +60 -49
- package/docs/nl/configuration.md +25 -8
- package/docs/nl/intlayer_with_angular_21.md +9 -9
- package/docs/pl/analytics.md +220 -0
- package/docs/pl/configuration.md +25 -8
- package/docs/pl/dictionary/nesting.md +47 -30
- package/docs/pl/formatters.md +208 -305
- package/docs/pl/intlayer_CMS.md +152 -0
- package/docs/pl/intlayer_with_angular_21.md +9 -9
- package/docs/pl/intlayer_with_nextjs_14.md +1 -26
- package/docs/pl/intlayer_with_solid_start.md +1078 -0
- package/docs/pl/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/pl/packages/react-intlayer/useDictionary.md +2 -19
- package/docs/pl/packages/vite-intlayer/exports.md +15 -0
- package/docs/pl/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/pl/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/pl/releases/v9.md +0 -15
- package/docs/pl/self_hosting.md +60 -49
- package/docs/pt/analytics.md +222 -0
- package/docs/pt/configuration.md +25 -8
- package/docs/pt/dictionary/file.md +3 -1
- package/docs/pt/dictionary/nesting.md +47 -30
- package/docs/pt/formatters.md +112 -168
- package/docs/pt/intlayer_CMS.md +66 -15
- package/docs/pt/intlayer_with_angular_21.md +9 -9
- package/docs/pt/intlayer_with_astro_lit.md +26 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -28
- package/docs/pt/intlayer_with_nextjs_15.md +1 -33
- package/docs/pt/intlayer_with_solid_start.md +1078 -0
- package/docs/pt/intlayer_with_vite+vue.md +1 -3
- package/docs/pt/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/pt/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/pt/packages/vite-intlayer/exports.md +15 -0
- package/docs/pt/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/pt/packages/vite-intlayer/intlayerPrune.md +78 -6
- package/docs/pt/releases/v9.md +0 -15
- package/docs/pt/self_hosting.md +60 -49
- package/docs/ru/analytics.md +222 -0
- package/docs/ru/autoFill.md +27 -8
- package/docs/ru/configuration.md +25 -8
- package/docs/ru/dictionary/file.md +3 -1
- package/docs/ru/dictionary/nesting.md +64 -205
- package/docs/ru/formatters.md +108 -128
- package/docs/ru/intlayer_with_angular_21.md +9 -9
- package/docs/ru/intlayer_with_nextjs_14.md +1 -28
- package/docs/ru/intlayer_with_nextjs_15.md +1 -33
- package/docs/ru/intlayer_with_solid_start.md +1078 -0
- package/docs/ru/intlayer_with_vite+vue.md +1 -3
- package/docs/ru/packages/intlayer/getLocalizedUrl.md +34 -26
- package/docs/ru/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/ru/packages/react-intlayer/useDictionary.md +4 -21
- package/docs/ru/packages/vite-intlayer/exports.md +15 -0
- package/docs/ru/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/ru/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/ru/releases/v9.md +0 -15
- package/docs/ru/self_hosting.md +60 -49
- package/docs/tr/analytics.md +222 -0
- package/docs/tr/autoFill.md +28 -9
- package/docs/tr/configuration.md +25 -8
- package/docs/tr/dictionary/file.md +2 -0
- package/docs/tr/dictionary/nesting.md +47 -30
- package/docs/tr/formatters.md +144 -190
- package/docs/tr/intlayer_CMS.md +152 -0
- package/docs/tr/intlayer_with_angular_21.md +9 -9
- package/docs/tr/intlayer_with_nestjs.md +2 -12
- package/docs/tr/intlayer_with_nextjs_15.md +1 -33
- package/docs/tr/intlayer_with_solid_start.md +1078 -0
- package/docs/tr/intlayer_with_vite+vue.md +1 -3
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/tr/packages/vite-intlayer/exports.md +15 -0
- package/docs/tr/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/tr/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/tr/self_hosting.md +47 -50
- package/docs/uk/analytics.md +222 -0
- package/docs/uk/configuration.md +25 -8
- package/docs/uk/dictionary/nesting.md +47 -30
- package/docs/uk/formatters.md +128 -185
- package/docs/uk/intlayer_CMS.md +152 -0
- package/docs/uk/intlayer_with_angular_21.md +9 -9
- package/docs/uk/intlayer_with_nextjs_14.md +1 -26
- package/docs/uk/intlayer_with_solid_start.md +1078 -0
- package/docs/uk/packages/react-intlayer/useDictionary.md +2 -19
- package/docs/uk/packages/vite-intlayer/exports.md +15 -0
- package/docs/uk/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/uk/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/uk/releases/v9.md +0 -15
- package/docs/uk/self_hosting.md +60 -50
- package/docs/ur/configuration.md +25 -8
- package/docs/ur/intlayer_with_angular_21.md +9 -9
- package/docs/vi/analytics.md +222 -0
- package/docs/vi/configuration.md +24 -8
- package/docs/vi/dictionary/nesting.md +37 -184
- package/docs/vi/formatters.md +208 -309
- package/docs/vi/intlayer_CMS.md +164 -0
- package/docs/vi/intlayer_with_angular_21.md +9 -9
- package/docs/vi/intlayer_with_nextjs_14.md +0 -25
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +70 -63
- package/docs/vi/intlayer_with_solid_start.md +1078 -0
- package/docs/vi/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/vi/packages/react-intlayer/useIntlayer.md +2 -2
- package/docs/vi/packages/vite-intlayer/exports.md +15 -0
- package/docs/vi/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/vi/packages/vite-intlayer/intlayerPrune.md +77 -4
- package/docs/vi/plugins/sync-json.md +6 -6
- package/docs/vi/releases/v9.md +12 -0
- package/docs/vi/self_hosting.md +61 -50
- package/docs/zh/CI_CD.md +4 -0
- package/docs/zh/analytics.md +222 -0
- package/docs/zh/autoFill.md +28 -9
- package/docs/zh/configuration.md +24 -8
- package/docs/zh/dictionary/file.md +2 -0
- package/docs/zh/dictionary/nesting.md +47 -30
- package/docs/zh/formatters.md +140 -188
- package/docs/zh/intlayer_CMS.md +164 -0
- package/docs/zh/intlayer_with_analog.md +193 -3
- package/docs/zh/intlayer_with_angular_19.md +272 -3
- package/docs/zh/intlayer_with_angular_21.md +7 -7
- package/docs/zh/intlayer_with_create_react_app.md +348 -26
- package/docs/zh/intlayer_with_lynx+react.md +263 -4
- package/docs/zh/intlayer_with_nextjs_14.md +1 -28
- package/docs/zh/intlayer_with_nextjs_15.md +1 -33
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +558 -1
- package/docs/zh/intlayer_with_nuxt.md +182 -7
- package/docs/zh/intlayer_with_react_router_v7.md +183 -25
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +306 -42
- package/docs/zh/intlayer_with_solid_start.md +1077 -0
- package/docs/zh/intlayer_with_storybook.md +260 -3
- package/docs/zh/intlayer_with_svelte_kit.md +428 -48
- package/docs/zh/intlayer_with_tanstack+solid.md +713 -13
- package/docs/zh/intlayer_with_tanstack.md +731 -20
- package/docs/zh/intlayer_with_vanilla.md +314 -4
- package/docs/zh/intlayer_with_vite+lit.md +465 -4
- package/docs/zh/intlayer_with_vite+preact.md +422 -116
- package/docs/zh/intlayer_with_vite+react.md +324 -45
- package/docs/zh/intlayer_with_vite+react_compiler.md +228 -13
- package/docs/zh/intlayer_with_vite+solid.md +462 -32
- package/docs/zh/intlayer_with_vite+vanilla.md +497 -4
- package/docs/zh/mcp_server.md +3 -9
- package/docs/zh/packages/intlayer/getLocalizedUrl.md +26 -24
- package/docs/zh/packages/intlayer/getMultilingualUrls.md +4 -18
- package/docs/zh/packages/vite-intlayer/exports.md +29 -0
- package/docs/zh/packages/vite-intlayer/intlayer.md +121 -6
- package/docs/zh/packages/vite-intlayer/intlayerPrune.md +79 -6
- package/docs/zh/releases/v9.md +12 -0
- package/docs/zh/self_hosting.md +60 -50
- package/docs/zh-TW/intlayer_with_angular_21.md +7 -7
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +27 -27
- package/src/generated/docs.entry.ts +234 -214
- package/src/generated/frequentQuestions.entry.ts +17 -17
- package/src/generated/legal.entry.ts +2 -2
|
@@ -92,9 +92,271 @@ Intlayer 不仅仅是一个 i18n 解决方案,还提供了一个**自托管的
|
|
|
92
92
|
|
|
93
93
|
---
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
## Vanilla JS 应用中设置 Intlayer 的分步指南
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
<Steps>
|
|
98
|
+
|
|
99
|
+
<Step number={1} title="安装依赖">
|
|
100
|
+
|
|
101
|
+
使用 npm 安装必要的软件包:
|
|
102
|
+
|
|
103
|
+
```bash packageManager="npm"
|
|
104
|
+
# 生成 intlayer 和 vanilla-intlayer 的独立捆绑包
|
|
105
|
+
# 此文件将被导入到您的 HTML 文件中
|
|
106
|
+
npx intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
|
|
107
|
+
|
|
108
|
+
# 使用配置文件初始化 intlayer
|
|
109
|
+
npx intlayer init --no-gitignore
|
|
110
|
+
|
|
111
|
+
# 构建字典
|
|
112
|
+
npx intlayer build
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
```bash packageManager="pnpm"
|
|
116
|
+
# 生成 intlayer 和 vanilla-intlayer 的独立捆绑包
|
|
117
|
+
# 此文件将被导入到您的 HTML 文件中
|
|
118
|
+
pnpm intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
|
|
119
|
+
|
|
120
|
+
# 使用配置文件初始化 intlayer
|
|
121
|
+
pnpm intlayer init --no-gitignore
|
|
122
|
+
|
|
123
|
+
# 构建字典
|
|
124
|
+
pnpm intlayer build
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```bash packageManager="yarn"
|
|
128
|
+
# 生成 intlayer 和 vanilla-intlayer 的独立捆绑包
|
|
129
|
+
# 此文件将被导入到您的 HTML 文件中
|
|
130
|
+
yarn intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
|
|
131
|
+
|
|
132
|
+
# 初始化 intlayer 配置文件、TypeScript(如果已设置)、环境变量
|
|
133
|
+
yarn intlayer init --no-gitignore
|
|
134
|
+
|
|
135
|
+
# 构建字典
|
|
136
|
+
yarn intlayer build
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```bash packageManager="bun"
|
|
140
|
+
# 生成 intlayer 和 vanilla-intlayer 的独立捆绑包
|
|
141
|
+
# 此文件将被导入到您的 HTML 文件中
|
|
142
|
+
bun x intlayer standalone --packages intlayer vanilla-intlayer --outfile intlayer.js
|
|
143
|
+
|
|
144
|
+
# 使用配置文件初始化 intlayer
|
|
145
|
+
bun x intlayer init --no-gitignore
|
|
146
|
+
|
|
147
|
+
# 构建字典
|
|
148
|
+
bun x intlayer build
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
- **intlayer**
|
|
152
|
+
核心软件包,为配置管理、翻译、[内容声明](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/content_file.md)、转译和 [CLI 命令](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/index.md)提供国际化工具。
|
|
153
|
+
|
|
154
|
+
- **vanilla-intlayer**
|
|
155
|
+
将 Intlayer 与纯 JavaScript / TypeScript 应用程序集成的软件包。它提供了一个 pub/sub 单例(`IntlayerClient`)和基于回调的辅助函数(`useIntlayer`、`useLocale` 等),使应用的任何部分都可以响应语言区域变化,而无需依赖 UI 框架。
|
|
156
|
+
|
|
157
|
+
> `intlayer standalone` CLI 的捆绑导出通过树摇动未使用的软件包、语言区域和特定于您的配置的非必要逻辑(如重定向或前缀)来生成优化的构建。
|
|
158
|
+
|
|
159
|
+
</Step>
|
|
160
|
+
|
|
161
|
+
<Step number={2} title="配置您的项目">
|
|
162
|
+
|
|
163
|
+
创建一个配置文件来配置应用的语言:
|
|
164
|
+
|
|
165
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
166
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
167
|
+
|
|
168
|
+
const config: IntlayerConfig = {
|
|
169
|
+
internationalization: {
|
|
170
|
+
locales: [
|
|
171
|
+
Locales.ENGLISH,
|
|
172
|
+
Locales.FRENCH,
|
|
173
|
+
Locales.SPANISH,
|
|
174
|
+
// 您的其他语言区域
|
|
175
|
+
],
|
|
176
|
+
defaultLocale: Locales.ENGLISH,
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
export default config;
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
> 通过此配置文件,您可以设置本地化的 URL、中间件重定向、cookie 名称、内容声明的位置和扩展名、禁用控制台中的 Intlayer 日志等。有关可用参数的完整列表,请参考[配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md)。
|
|
184
|
+
|
|
185
|
+
</Step>
|
|
186
|
+
|
|
187
|
+
<Step number={3} title="在您的 HTML 中导入捆绑包">
|
|
188
|
+
|
|
189
|
+
生成 `intlayer.js` 捆绑包后,可以将其导入到 HTML 文件中:
|
|
190
|
+
|
|
191
|
+
```html fileName="index.html"
|
|
192
|
+
<!DOCTYPE html>
|
|
193
|
+
<html lang="en">
|
|
194
|
+
<head>
|
|
195
|
+
<meta charset="UTF-8" />
|
|
196
|
+
|
|
197
|
+
<!-- 导入捆绑包 -->
|
|
198
|
+
<script src="./intlayer.js" defer></script>
|
|
199
|
+
<!-- 导入您的主脚本 -->
|
|
200
|
+
<script src="./src/main.js" defer></script>
|
|
201
|
+
</head>
|
|
202
|
+
<body>
|
|
203
|
+
<h1 id="title"></h1>
|
|
204
|
+
<p class="read-the-docs"></p>
|
|
205
|
+
</body>
|
|
206
|
+
</html>
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
该捆绑包在 `window` 上将 `Intlayer` 和 `VanillaIntlayer` 暴露为全局对象。
|
|
210
|
+
|
|
211
|
+
</Step>
|
|
212
|
+
|
|
213
|
+
<Step number={4} title="在您的入口点引导 Intlayer">
|
|
214
|
+
|
|
215
|
+
在您的 `src/main.js` 中,在渲染任何内容**之前**调用 `installIntlayer()`,以便全局语言区域单例已准备就绪。
|
|
216
|
+
|
|
217
|
+
```javascript fileName="src/main.js"
|
|
218
|
+
const { installIntlayer } = window.VanillaIntlayer;
|
|
219
|
+
|
|
220
|
+
// 必须在渲染任何 i18n 内容之前调用。
|
|
221
|
+
installIntlayer();
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
如果您还想使用 markdown 渲染器,请调用 `installIntlayerMarkdown()`:
|
|
225
|
+
|
|
226
|
+
```javascript fileName="src/main.js"
|
|
227
|
+
const { installIntlayer, installIntlayerMarkdown } = window.VanillaIntlayer;
|
|
228
|
+
|
|
229
|
+
installIntlayer();
|
|
230
|
+
installIntlayerMarkdown();
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
</Step>
|
|
234
|
+
|
|
235
|
+
<Step number={5} title="声明您的内容">
|
|
236
|
+
|
|
237
|
+
创建和管理您的内容声明以存储翻译:
|
|
238
|
+
|
|
239
|
+
```typescript fileName="src/app.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
240
|
+
import { insert, t, type Dictionary } from "intlayer";
|
|
241
|
+
|
|
242
|
+
const appContent = {
|
|
243
|
+
key: "app",
|
|
244
|
+
content: {
|
|
245
|
+
title: "Vite + Vanilla",
|
|
246
|
+
|
|
247
|
+
viteLogoLabel: t({
|
|
248
|
+
zh: "Vite Logo",
|
|
249
|
+
en: "Vite Logo",
|
|
250
|
+
fr: "Logo Vite",
|
|
251
|
+
es: "Logo Vite",
|
|
252
|
+
}),
|
|
253
|
+
|
|
254
|
+
count: insert(
|
|
255
|
+
t({
|
|
256
|
+
zh: "计数为 {{count}}",
|
|
257
|
+
en: "count is {{count}}",
|
|
258
|
+
fr: "le compte est {{count}}",
|
|
259
|
+
es: "el recuento es {{count}}",
|
|
260
|
+
})
|
|
261
|
+
),
|
|
262
|
+
|
|
263
|
+
readTheDocs: t({
|
|
264
|
+
zh: "单击 Vite 徽标以了解更多信息",
|
|
265
|
+
en: "Click on the Vite logo to learn more",
|
|
266
|
+
fr: "Cliquez sur le logo Vite pour en savoir plus",
|
|
267
|
+
es: "Haga clic en el logotipo de Vite para obtener más información",
|
|
268
|
+
}),
|
|
269
|
+
},
|
|
270
|
+
} satisfies Dictionary;
|
|
271
|
+
|
|
272
|
+
export default appContent;
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
```json fileName="src/app.content.json" contentDeclarationFormat="json"
|
|
276
|
+
{
|
|
277
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
278
|
+
"key": "app",
|
|
279
|
+
"content": {
|
|
280
|
+
"title": "Vite + Vanilla",
|
|
281
|
+
"viteLogoLabel": {
|
|
282
|
+
"nodeType": "translation",
|
|
283
|
+
"translation": {
|
|
284
|
+
"zh": "Vite Logo",
|
|
285
|
+
"en": "Vite Logo",
|
|
286
|
+
"fr": "Logo Vite",
|
|
287
|
+
"es": "Logo Vite"
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"count": {
|
|
291
|
+
"nodeType": "insertion",
|
|
292
|
+
"insertion": {
|
|
293
|
+
"nodeType": "translation",
|
|
294
|
+
"translation": {
|
|
295
|
+
"zh": "计数为 {{count}}",
|
|
296
|
+
"en": "count is {{count}}",
|
|
297
|
+
"fr": "le compte est {{count}}",
|
|
298
|
+
"es": "el recuento es {{count}}"
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
"readTheDocs": {
|
|
303
|
+
"nodeType": "translation",
|
|
304
|
+
"translation": {
|
|
305
|
+
"zh": "单击 Vite 徽标以了解更多信息",
|
|
306
|
+
"en": "Click on the Vite logo to learn more",
|
|
307
|
+
"fr": "Cliquez sur le logo Vite pour en savoir plus",
|
|
308
|
+
"es": "Haga clic en el logotipo de Vite para obtener más información"
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
> 您的内容声明可以在应用的任何位置定义,只要它们包含在 `contentDir` 目录中(默认为 `./src`),并与内容声明文件扩展名匹配(默认为 `.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}`)。
|
|
316
|
+
>
|
|
317
|
+
> 有关更多详细信息,请参考[内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/content_file.md)。
|
|
318
|
+
|
|
319
|
+
</Step>
|
|
320
|
+
|
|
321
|
+
<Step number={6} title="在您的 JavaScript 中使用 Intlayer">
|
|
322
|
+
|
|
323
|
+
`window.VanillaIntlayer` 对象提供 API 辅助函数:`useIntlayer(key, locale?)` 返回给定键的已翻译内容。
|
|
324
|
+
|
|
325
|
+
```javascript fileName="src/main.js"
|
|
326
|
+
const { installIntlayer, useIntlayer } = window.VanillaIntlayer;
|
|
327
|
+
|
|
328
|
+
installIntlayer();
|
|
329
|
+
|
|
330
|
+
// 获取当前语言区域的初始内容。
|
|
331
|
+
// 链接 .onChange() 以在语言区域更改时获得通知。
|
|
332
|
+
const content = useIntlayer("app").onChange((newContent) => {
|
|
333
|
+
// 仅重新渲染或修补受影响的 DOM 节点
|
|
334
|
+
document.querySelector("h1").textContent = String(newContent.title);
|
|
335
|
+
document.querySelector(".read-the-docs").textContent = String(
|
|
336
|
+
newContent.readTheDocs
|
|
337
|
+
);
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
// 初始渲染
|
|
341
|
+
document.querySelector("h1").textContent = String(content.title);
|
|
342
|
+
document.querySelector(".read-the-docs").textContent = String(
|
|
343
|
+
content.readTheDocs
|
|
344
|
+
);
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
> 通过将叶值包装在 `String()` 中来以字符串形式访问它们,该函数调用节点的 `toString()` 方法并返回翻译的文本。
|
|
348
|
+
>
|
|
349
|
+
> 当您需要用于原生 HTML 属性(例如 `alt`、`aria-label`)的值时,直接使用 `.value`:
|
|
350
|
+
>
|
|
351
|
+
> ```javascript
|
|
352
|
+
> img.alt = content.viteLogoLabel.value;
|
|
353
|
+
> ```
|
|
354
|
+
|
|
355
|
+
</Step>
|
|
356
|
+
|
|
357
|
+
<Step number={7} title="更改您的内容的语言" isOptional={true}>
|
|
358
|
+
|
|
359
|
+
要更改您的内容的语言,请使用由 `useLocale` 暴露的 `setLocale` 函数。
|
|
98
360
|
|
|
99
361
|
```javascript fileName="src/locale-switcher.js"
|
|
100
362
|
const { getLocaleName } = window.Intlayer;
|
|
@@ -104,7 +366,7 @@ export function setupLocaleSwitcher(container) {
|
|
|
104
366
|
const { locale, availableLocales, setLocale, subscribe } = useLocale();
|
|
105
367
|
|
|
106
368
|
const select = document.createElement("select");
|
|
107
|
-
select.setAttribute("aria-label", "
|
|
369
|
+
select.setAttribute("aria-label", "Language");
|
|
108
370
|
|
|
109
371
|
const render = (currentLocale) => {
|
|
110
372
|
select.innerHTML = availableLocales
|
|
@@ -122,11 +384,59 @@ export function setupLocaleSwitcher(container) {
|
|
|
122
384
|
|
|
123
385
|
select.addEventListener("change", () => setLocale(select.value));
|
|
124
386
|
|
|
125
|
-
//
|
|
387
|
+
// 保持下拉列表与从其他位置更改的语言区域同步
|
|
126
388
|
return subscribe((newLocale) => render(newLocale));
|
|
127
389
|
}
|
|
128
390
|
```
|
|
129
391
|
|
|
392
|
+
</Step>
|
|
393
|
+
|
|
394
|
+
<Step number={8} title="切换 HTML 语言和方向属性" isOptional={true}>
|
|
395
|
+
|
|
396
|
+
更新 `<html>` 标签的 `lang` 和 `dir` 属性以匹配当前语言区域,以实现无障碍访问和 SEO。
|
|
397
|
+
|
|
398
|
+
```javascript fileName="src/main.js"
|
|
399
|
+
const { getHTMLTextDir } = window.Intlayer;
|
|
400
|
+
const { installIntlayer, useLocale } = window.VanillaIntlayer;
|
|
401
|
+
|
|
402
|
+
installIntlayer();
|
|
403
|
+
|
|
404
|
+
useLocale({
|
|
405
|
+
onLocaleChange: (locale) => {
|
|
406
|
+
document.documentElement.lang = locale;
|
|
407
|
+
document.documentElement.dir = getHTMLTextDir(locale);
|
|
408
|
+
},
|
|
409
|
+
});
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
</Step>
|
|
413
|
+
|
|
414
|
+
<Step number={9} title="按语言区域懒加载字典" isOptional={true}>
|
|
415
|
+
|
|
416
|
+
如果您想按语言区域懒加载字典,可以使用 `useDictionaryDynamic`。这在您不想将所有翻译捆绑在初始 `intlayer.js` 文件中时很有用。
|
|
417
|
+
|
|
418
|
+
```javascript fileName="src/app.js"
|
|
419
|
+
const { installIntlayer, useDictionaryDynamic } = window.VanillaIntlayer;
|
|
420
|
+
|
|
421
|
+
installIntlayer();
|
|
422
|
+
|
|
423
|
+
const unsubscribe = useDictionaryDynamic(
|
|
424
|
+
{
|
|
425
|
+
en: () => import("../.intlayer/dictionaries/en/app.mjs"),
|
|
426
|
+
fr: () => import("../.intlayer/dictionaries/fr/app.mjs"),
|
|
427
|
+
es: () => import("../.intlayer/dictionaries/es/app.mjs"),
|
|
428
|
+
},
|
|
429
|
+
"app"
|
|
430
|
+
).onChange((content) => {
|
|
431
|
+
document.querySelector("h1").textContent = String(content.title);
|
|
432
|
+
});
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
> 注意:`useDictionaryDynamic` 要求字典作为单独的 ESM 文件可用。如果您有一个 Web 服务器提供字典,通常会使用此方法。
|
|
436
|
+
> </Step>
|
|
437
|
+
|
|
438
|
+
</Steps>
|
|
439
|
+
|
|
130
440
|
### 配置 TypeScript
|
|
131
441
|
|
|
132
442
|
确保您的 TypeScript 配置包含自动生成的类型。
|