@intlayer/docs 5.8.1 → 6.0.0-canary.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 +282 -0
- package/blog/de/rag_powered_documentation_assistant.md +282 -0
- package/blog/en/rag_powered_documentation_assistant.md +289 -0
- package/blog/en-GB/rag_powered_documentation_assistant.md +284 -0
- package/blog/es/rag_powered_documentation_assistant.md +308 -0
- package/blog/fr/rag_powered_documentation_assistant.md +308 -0
- package/blog/hi/rag_powered_documentation_assistant.md +284 -0
- package/blog/it/rag_powered_documentation_assistant.md +284 -0
- package/blog/ja/rag_powered_documentation_assistant.md +284 -0
- package/blog/ko/rag_powered_documentation_assistant.md +283 -0
- package/blog/pt/rag_powered_documentation_assistant.md +284 -0
- package/blog/ru/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/index.md +69 -0
- package/blog/tr/internationalization_and_SEO.md +273 -0
- package/blog/tr/intlayer_with_i18next.md +162 -0
- package/blog/tr/intlayer_with_next-i18next.md +367 -0
- package/blog/tr/intlayer_with_next-intl.md +392 -0
- package/blog/tr/intlayer_with_react-i18next.md +346 -0
- package/blog/tr/intlayer_with_react-intl.md +345 -0
- package/blog/tr/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/tr/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/tr/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/tr/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/tr/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/tr/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +129 -0
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +170 -0
- package/blog/tr/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +162 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +276 -0
- package/blog/tr/what_is_internationalization.md +166 -0
- package/blog/zh/rag_powered_documentation_assistant.md +284 -0
- package/dist/cjs/generated/blog.entry.cjs +212 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +660 -132
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +84 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +6 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +212 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +660 -132
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +84 -0
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +6 -0
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +5 -2
- 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/autoFill.md +41 -40
- package/docs/ar/configuration.md +202 -199
- package/docs/ar/dictionary/content_file.md +1059 -0
- package/docs/ar/intlayer_CMS.md +4 -4
- package/docs/ar/intlayer_with_nestjs.md +271 -0
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7.md +533 -0
- package/docs/ar/intlayer_with_tanstack.md +465 -299
- package/docs/ar/intlayer_with_vite+preact.md +7 -7
- package/docs/ar/intlayer_with_vite+react.md +7 -7
- package/docs/ar/intlayer_with_vite+vue.md +9 -9
- package/docs/ar/packages/vite-intlayer/index.md +3 -3
- package/docs/ar/readme.md +261 -0
- package/docs/ar/testing.md +199 -0
- package/docs/de/autoFill.md +42 -19
- package/docs/de/configuration.md +155 -147
- package/docs/de/dictionary/content_file.md +1059 -0
- package/docs/de/intlayer_CMS.md +4 -5
- package/docs/de/intlayer_with_nestjs.md +270 -0
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_react_router_v7.md +537 -0
- package/docs/de/intlayer_with_tanstack.md +469 -302
- package/docs/de/intlayer_with_vite+preact.md +7 -7
- package/docs/de/intlayer_with_vite+react.md +7 -7
- package/docs/de/intlayer_with_vite+vue.md +9 -9
- package/docs/de/packages/vite-intlayer/index.md +3 -3
- package/docs/de/readme.md +261 -0
- package/docs/de/testing.md +200 -0
- package/docs/en/CI_CD.md +4 -6
- package/docs/en/autoFill.md +25 -5
- package/docs/en/configuration.md +45 -54
- package/docs/en/dictionary/content_file.md +1054 -0
- package/docs/en/intlayer_CMS.md +8 -7
- package/docs/en/intlayer_cli.md +112 -5
- package/docs/en/intlayer_with_nestjs.md +268 -0
- package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +531 -0
- package/docs/en/intlayer_with_tanstack.md +463 -294
- package/docs/en/intlayer_with_vite+preact.md +8 -8
- package/docs/en/intlayer_with_vite+react.md +8 -8
- package/docs/en/intlayer_with_vite+vue.md +8 -8
- package/docs/en/packages/intlayer/getLocalizedUrl.md +102 -25
- package/docs/en/packages/vite-intlayer/index.md +3 -3
- package/docs/en/readme.md +261 -0
- package/docs/en/testing.md +200 -0
- package/docs/en-GB/autoFill.md +29 -6
- package/docs/en-GB/configuration.md +79 -71
- package/docs/en-GB/dictionary/content_file.md +1084 -0
- package/docs/en-GB/intlayer_CMS.md +4 -5
- package/docs/en-GB/intlayer_with_nestjs.md +268 -0
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7.md +533 -0
- package/docs/en-GB/intlayer_with_tanstack.md +466 -299
- package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
- package/docs/en-GB/intlayer_with_vite+react.md +7 -7
- package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
- package/docs/en-GB/packages/vite-intlayer/index.md +3 -3
- package/docs/en-GB/readme.md +261 -0
- package/docs/en-GB/testing.md +200 -0
- package/docs/es/autoFill.md +45 -23
- package/docs/es/configuration.md +171 -167
- package/docs/es/dictionary/content_file.md +1088 -0
- package/docs/es/intlayer_CMS.md +4 -5
- package/docs/es/intlayer_with_nestjs.md +268 -0
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +533 -0
- package/docs/es/intlayer_with_tanstack.md +469 -280
- package/docs/es/intlayer_with_vite+preact.md +7 -7
- package/docs/es/intlayer_with_vite+react.md +7 -7
- package/docs/es/intlayer_with_vite+vue.md +9 -9
- package/docs/es/packages/vite-intlayer/index.md +3 -3
- package/docs/es/readme.md +261 -0
- package/docs/es/testing.md +200 -0
- package/docs/fr/autoFill.md +47 -24
- package/docs/fr/configuration.md +213 -198
- package/docs/fr/dictionary/content_file.md +1054 -0
- package/docs/fr/intlayer_CMS.md +4 -5
- package/docs/fr/intlayer_with_nestjs.md +268 -0
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7.md +549 -0
- package/docs/fr/intlayer_with_tanstack.md +465 -279
- package/docs/fr/intlayer_with_vite+preact.md +7 -7
- package/docs/fr/intlayer_with_vite+react.md +7 -7
- package/docs/fr/intlayer_with_vite+vue.md +9 -9
- package/docs/fr/packages/vite-intlayer/index.md +3 -3
- package/docs/fr/readme.md +261 -0
- package/docs/fr/testing.md +200 -0
- package/docs/hi/autoFill.md +47 -25
- package/docs/hi/configuration.md +194 -189
- package/docs/hi/dictionary/content_file.md +1056 -0
- package/docs/hi/intlayer_CMS.md +4 -5
- package/docs/hi/intlayer_with_nestjs.md +269 -0
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7.md +533 -0
- package/docs/hi/intlayer_with_tanstack.md +467 -282
- package/docs/hi/intlayer_with_vite+preact.md +7 -7
- package/docs/hi/intlayer_with_vite+react.md +7 -7
- package/docs/hi/intlayer_with_vite+vue.md +9 -9
- package/docs/hi/packages/vite-intlayer/index.md +3 -3
- package/docs/hi/readme.md +261 -0
- package/docs/hi/testing.md +200 -0
- package/docs/it/autoFill.md +46 -24
- package/docs/it/configuration.md +169 -161
- package/docs/it/dictionary/content_file.md +1061 -0
- package/docs/it/intlayer_CMS.md +4 -5
- package/docs/it/intlayer_with_nestjs.md +268 -0
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_react_router_v7.md +535 -0
- package/docs/it/intlayer_with_tanstack.md +467 -301
- package/docs/it/intlayer_with_vite+preact.md +7 -7
- package/docs/it/intlayer_with_vite+react.md +7 -7
- package/docs/it/intlayer_with_vite+vue.md +9 -9
- package/docs/it/packages/vite-intlayer/index.md +3 -3
- package/docs/it/readme.md +261 -0
- package/docs/it/testing.md +200 -0
- package/docs/ja/autoFill.md +45 -23
- package/docs/ja/configuration.md +243 -204
- package/docs/ja/dictionary/content_file.md +1064 -0
- package/docs/ja/intlayer_CMS.md +4 -5
- package/docs/ja/intlayer_with_nestjs.md +268 -0
- package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7.md +534 -0
- package/docs/ja/intlayer_with_tanstack.md +467 -303
- package/docs/ja/intlayer_with_vite+preact.md +7 -7
- package/docs/ja/intlayer_with_vite+react.md +7 -7
- package/docs/ja/intlayer_with_vite+vue.md +9 -9
- package/docs/ja/packages/vite-intlayer/index.md +3 -3
- package/docs/ja/readme.md +263 -0
- package/docs/ja/testing.md +200 -0
- package/docs/ko/autoFill.md +39 -16
- package/docs/ko/configuration.md +217 -197
- package/docs/ko/dictionary/content_file.md +1060 -0
- package/docs/ko/intlayer_CMS.md +4 -5
- package/docs/ko/intlayer_with_nestjs.md +268 -0
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7.md +540 -0
- package/docs/ko/intlayer_with_tanstack.md +466 -302
- package/docs/ko/intlayer_with_vite+preact.md +7 -7
- package/docs/ko/intlayer_with_vite+react.md +7 -7
- package/docs/ko/intlayer_with_vite+vue.md +9 -9
- package/docs/ko/packages/vite-intlayer/index.md +3 -3
- package/docs/ko/readme.md +261 -0
- package/docs/ko/testing.md +200 -0
- package/docs/pt/autoFill.md +39 -15
- package/docs/pt/configuration.md +165 -147
- package/docs/pt/dictionary/content_file.md +1062 -0
- package/docs/pt/intlayer_CMS.md +4 -5
- package/docs/pt/intlayer_with_nestjs.md +271 -0
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +535 -0
- package/docs/pt/intlayer_with_tanstack.md +469 -300
- package/docs/pt/intlayer_with_vite+preact.md +7 -7
- package/docs/pt/intlayer_with_vite+react.md +7 -7
- package/docs/pt/intlayer_with_vite+vue.md +9 -9
- package/docs/pt/packages/vite-intlayer/index.md +3 -3
- package/docs/pt/readme.md +261 -0
- package/docs/pt/testing.md +200 -0
- package/docs/ru/autoFill.md +52 -30
- package/docs/ru/configuration.md +164 -117
- package/docs/ru/dictionary/content_file.md +1064 -0
- package/docs/ru/intlayer_CMS.md +4 -4
- package/docs/ru/intlayer_with_nestjs.md +270 -0
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7.md +534 -0
- package/docs/ru/intlayer_with_tanstack.md +470 -305
- package/docs/ru/intlayer_with_vite+preact.md +7 -7
- package/docs/ru/intlayer_with_vite+react.md +7 -7
- package/docs/ru/intlayer_with_vite+vue.md +9 -9
- package/docs/ru/packages/vite-intlayer/index.md +3 -3
- package/docs/ru/readme.md +261 -0
- package/docs/ru/testing.md +202 -0
- package/docs/tr/CI_CD.md +198 -0
- package/docs/tr/autoFill.md +201 -0
- package/docs/tr/configuration.md +585 -0
- package/docs/tr/dictionary/condition.md +243 -0
- package/docs/tr/dictionary/content_file.md +1055 -0
- package/docs/tr/dictionary/enumeration.md +251 -0
- package/docs/tr/dictionary/file.md +228 -0
- package/docs/tr/dictionary/function_fetching.md +218 -0
- package/docs/tr/dictionary/gender.md +279 -0
- package/docs/tr/dictionary/insertion.md +191 -0
- package/docs/tr/dictionary/markdown.md +385 -0
- package/docs/tr/dictionary/nesting.md +279 -0
- package/docs/tr/dictionary/translation.md +315 -0
- package/docs/tr/formatters.md +618 -0
- package/docs/tr/how_works_intlayer.md +254 -0
- package/docs/tr/index.md +168 -0
- package/docs/tr/interest_of_intlayer.md +288 -0
- package/docs/tr/intlayer_CMS.md +347 -0
- package/docs/tr/intlayer_cli.md +570 -0
- package/docs/tr/intlayer_visual_editor.md +269 -0
- package/docs/tr/intlayer_with_angular.md +694 -0
- package/docs/tr/intlayer_with_create_react_app.md +1218 -0
- package/docs/tr/intlayer_with_express.md +415 -0
- package/docs/tr/intlayer_with_lynx+react.md +511 -0
- package/docs/tr/intlayer_with_nestjs.md +268 -0
- package/docs/tr/intlayer_with_nextjs_14.md +1029 -0
- package/docs/tr/intlayer_with_nextjs_15.md +1506 -0
- package/docs/tr/intlayer_with_nextjs_page_router.md +1484 -0
- package/docs/tr/intlayer_with_nuxt.md +773 -0
- package/docs/tr/intlayer_with_react_native+expo.md +660 -0
- package/docs/tr/intlayer_with_react_router_v7.md +531 -0
- package/docs/tr/intlayer_with_tanstack.md +452 -0
- package/docs/tr/intlayer_with_vite+preact.md +1673 -0
- package/docs/tr/intlayer_with_vite+react.md +1632 -0
- package/docs/tr/intlayer_with_vite+solid.md +288 -0
- package/docs/tr/intlayer_with_vite+svelte.md +288 -0
- package/docs/tr/intlayer_with_vite+vue.md +1042 -0
- package/docs/tr/introduction.md +209 -0
- package/docs/tr/locale_mapper.md +244 -0
- package/docs/tr/mcp_server.md +207 -0
- package/docs/tr/packages/@intlayer/api/index.md +58 -0
- package/docs/tr/packages/@intlayer/chokidar/index.md +57 -0
- package/docs/tr/packages/@intlayer/cli/index.md +47 -0
- package/docs/tr/packages/@intlayer/config/index.md +142 -0
- package/docs/tr/packages/@intlayer/core/index.md +51 -0
- package/docs/tr/packages/@intlayer/design-system/index.md +47 -0
- package/docs/tr/packages/@intlayer/dictionary-entry/index.md +53 -0
- package/docs/tr/packages/@intlayer/editor/index.md +47 -0
- package/docs/tr/packages/@intlayer/editor-react/index.md +47 -0
- package/docs/tr/packages/@intlayer/webpack/index.md +61 -0
- package/docs/tr/packages/angular-intlayer/index.md +59 -0
- package/docs/tr/packages/express-intlayer/index.md +258 -0
- package/docs/tr/packages/express-intlayer/t.md +459 -0
- package/docs/tr/packages/intlayer/getConfiguration.md +151 -0
- package/docs/tr/packages/intlayer/getEnumeration.md +165 -0
- package/docs/tr/packages/intlayer/getHTMLTextDir.md +127 -0
- package/docs/tr/packages/intlayer/getLocaleLang.md +87 -0
- package/docs/tr/packages/intlayer/getLocaleName.md +124 -0
- package/docs/tr/packages/intlayer/getLocalizedUrl.md +324 -0
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +225 -0
- package/docs/tr/packages/intlayer/getPathWithoutLocale.md +81 -0
- package/docs/tr/packages/intlayer/getTranslation.md +196 -0
- package/docs/tr/packages/intlayer/getTranslationContent.md +195 -0
- package/docs/tr/packages/intlayer/index.md +505 -0
- package/docs/tr/packages/intlayer-cli/index.md +71 -0
- package/docs/tr/packages/intlayer-editor/index.md +139 -0
- package/docs/tr/packages/lynx-intlayer/index.md +85 -0
- package/docs/tr/packages/next-intlayer/index.md +154 -0
- package/docs/tr/packages/next-intlayer/t.md +354 -0
- package/docs/tr/packages/next-intlayer/useDictionary.md +270 -0
- package/docs/tr/packages/next-intlayer/useIntlayer.md +265 -0
- package/docs/tr/packages/next-intlayer/useLocale.md +133 -0
- package/docs/tr/packages/nuxt-intlayer/index.md +59 -0
- package/docs/tr/packages/preact-intlayer/index.md +55 -0
- package/docs/tr/packages/react-intlayer/index.md +148 -0
- package/docs/tr/packages/react-intlayer/t.md +304 -0
- package/docs/tr/packages/react-intlayer/useDictionary.md +554 -0
- package/docs/tr/packages/react-intlayer/useI18n.md +478 -0
- package/docs/tr/packages/react-intlayer/useIntlayer.md +253 -0
- package/docs/tr/packages/react-intlayer/useLocale.md +212 -0
- package/docs/tr/packages/react-native-intlayer/index.md +85 -0
- package/docs/tr/packages/react-scripts-intlayer/index.md +82 -0
- package/docs/tr/packages/solid-intlayer/index.md +56 -0
- package/docs/tr/packages/svelte-intlayer/index.md +55 -0
- package/docs/tr/packages/vite-intlayer/index.md +82 -0
- package/docs/tr/packages/vue-intlayer/index.md +59 -0
- package/docs/tr/per_locale_file.md +321 -0
- package/docs/tr/readme.md +261 -0
- package/docs/tr/roadmap.md +338 -0
- package/docs/tr/testing.md +200 -0
- package/docs/tr/vs_code_extension.md +154 -0
- package/docs/zh/autoFill.md +40 -18
- package/docs/zh/configuration.md +245 -226
- package/docs/zh/dictionary/content_file.md +1064 -0
- package/docs/zh/intlayer_CMS.md +4 -5
- package/docs/zh/intlayer_with_nestjs.md +268 -0
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +535 -0
- package/docs/zh/intlayer_with_tanstack.md +468 -278
- package/docs/zh/intlayer_with_vite+preact.md +7 -7
- package/docs/zh/intlayer_with_vite+react.md +7 -7
- package/docs/zh/intlayer_with_vite+vue.md +7 -7
- package/docs/zh/packages/vite-intlayer/index.md +3 -3
- package/docs/zh/readme.md +261 -0
- package/docs/zh/testing.md +198 -0
- package/frequent_questions/tr/SSR_Next_no_[locale].md +105 -0
- package/frequent_questions/tr/array_as_content_declaration.md +72 -0
- package/frequent_questions/tr/build_dictionaries.md +59 -0
- package/frequent_questions/tr/build_error_CI_CD.md +75 -0
- package/frequent_questions/tr/customized_locale_list.md +65 -0
- package/frequent_questions/tr/domain_routing.md +114 -0
- package/frequent_questions/tr/esbuild_error.md +30 -0
- package/frequent_questions/tr/get_locale_cookie.md +142 -0
- package/frequent_questions/tr/intlayer_command_undefined.md +156 -0
- package/frequent_questions/tr/locale_incorect_in_url.md +74 -0
- package/frequent_questions/tr/static_rendering.md +45 -0
- package/frequent_questions/tr/translated_path_url.md +56 -0
- package/frequent_questions/tr/unknown_command.md +98 -0
- package/legal/tr/privacy_notice.md +83 -0
- package/legal/tr/terms_of_service.md +55 -0
- package/package.json +12 -12
- package/src/generated/blog.entry.ts +212 -0
- package/src/generated/docs.entry.ts +663 -135
- package/src/generated/frequentQuestions.entry.ts +85 -1
- package/src/generated/legal.entry.ts +7 -1
- package/docs/ar/dictionary/content_extention_customization.md +0 -100
- package/docs/ar/dictionary/get_started.md +0 -527
- package/docs/de/dictionary/content_extention_customization.md +0 -100
- package/docs/de/dictionary/get_started.md +0 -531
- package/docs/en/dictionary/content_extention_customization.md +0 -102
- package/docs/en/dictionary/get_started.md +0 -529
- package/docs/en-GB/dictionary/content_extention_customization.md +0 -100
- package/docs/en-GB/dictionary/get_started.md +0 -591
- package/docs/es/dictionary/content_extention_customization.md +0 -100
- package/docs/es/dictionary/get_started.md +0 -527
- package/docs/fr/dictionary/content_extention_customization.md +0 -100
- package/docs/fr/dictionary/get_started.md +0 -527
- package/docs/hi/dictionary/content_extention_customization.md +0 -100
- package/docs/hi/dictionary/get_started.md +0 -527
- package/docs/it/dictionary/content_extention_customization.md +0 -113
- package/docs/it/dictionary/get_started.md +0 -573
- package/docs/ja/dictionary/content_extention_customization.md +0 -113
- package/docs/ja/dictionary/get_started.md +0 -576
- package/docs/ko/dictionary/content_extention_customization.md +0 -100
- package/docs/ko/dictionary/get_started.md +0 -530
- package/docs/pt/dictionary/content_extention_customization.md +0 -100
- package/docs/pt/dictionary/get_started.md +0 -532
- package/docs/ru/dictionary/content_extention_customization.md +0 -100
- package/docs/ru/dictionary/get_started.md +0 -575
- package/docs/zh/dictionary/content_extention_customization.md +0 -117
- package/docs/zh/dictionary/get_started.md +0 -533
package/docs/zh/configuration.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-09-16
|
|
4
4
|
title: 配置
|
|
5
|
-
description:
|
|
5
|
+
description: 了解如何为您的应用程序配置 Intlayer。了解各种设置和选项,以根据您的需求自定义 Intlayer。
|
|
6
6
|
keywords:
|
|
7
7
|
- 配置
|
|
8
8
|
- 设置
|
|
@@ -19,13 +19,13 @@ slugs:
|
|
|
19
19
|
|
|
20
20
|
## 概述
|
|
21
21
|
|
|
22
|
-
Intlayer
|
|
22
|
+
Intlayer 配置文件允许自定义插件的各个方面,例如国际化、中间件和内容处理。本文档详细描述了配置中的每个属性。
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
26
26
|
## 配置文件支持
|
|
27
27
|
|
|
28
|
-
Intlayer 支持 JSON、JS、MJS 和 TS
|
|
28
|
+
Intlayer 支持 JSON、JS、MJS 和 TS 配置文件格式:
|
|
29
29
|
|
|
30
30
|
- `intlayer.config.ts`
|
|
31
31
|
- `intlayer.config.js`
|
|
@@ -36,30 +36,31 @@ Intlayer 支持 JSON、JS、MJS 和 TS 格式的配置文件:
|
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
|
-
##
|
|
39
|
+
## 示例配置文件
|
|
40
40
|
|
|
41
41
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
42
42
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
43
43
|
|
|
44
44
|
const config: IntlayerConfig = {
|
|
45
45
|
internationalization: {
|
|
46
|
-
locales: [Locales.ENGLISH],
|
|
46
|
+
locales: [Locales.ENGLISH], // 支持的语言列表
|
|
47
47
|
},
|
|
48
48
|
content: {
|
|
49
|
-
|
|
49
|
+
autoFill: "./{{fileName}}.content.json", // 自动填充内容文件路径模板
|
|
50
|
+
contentDir: ["src", "../ui-library"], // 内容目录
|
|
50
51
|
},
|
|
51
52
|
middleware: {
|
|
52
|
-
noPrefix: false,
|
|
53
|
+
noPrefix: false, // 是否禁用前缀
|
|
53
54
|
},
|
|
54
55
|
editor: {
|
|
55
|
-
applicationURL: "https://example.com",
|
|
56
|
+
applicationURL: "https://example.com", // 编辑器应用程序 URL
|
|
56
57
|
},
|
|
57
58
|
ai: {
|
|
58
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
59
|
-
applicationContext: "This is a test application",
|
|
59
|
+
apiKey: process.env.OPENAI_API_KEY, // AI 接口密钥
|
|
60
|
+
applicationContext: "This is a test application", // 应用上下文描述
|
|
60
61
|
},
|
|
61
62
|
build: {
|
|
62
|
-
importMode: "dynamic",
|
|
63
|
+
importMode: "dynamic", // 构建时的导入模式
|
|
63
64
|
},
|
|
64
65
|
};
|
|
65
66
|
|
|
@@ -70,6 +71,7 @@ export default config;
|
|
|
70
71
|
const { Locales } = require("intlayer");
|
|
71
72
|
|
|
72
73
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
74
|
+
// 配置对象类型定义
|
|
73
75
|
const config = {
|
|
74
76
|
internationalization: {
|
|
75
77
|
locales: [Locales.ENGLISH], // 支持的语言列表
|
|
@@ -84,11 +86,11 @@ const config = {
|
|
|
84
86
|
applicationURL: "https://example.com", // 编辑器应用程序 URL
|
|
85
87
|
},
|
|
86
88
|
ai: {
|
|
87
|
-
apiKey: process.env.OPENAI_API_KEY, // AI
|
|
88
|
-
applicationContext: "This is a test application", //
|
|
89
|
+
apiKey: process.env.OPENAI_API_KEY, // AI 接口密钥
|
|
90
|
+
applicationContext: "This is a test application", // 应用上下文描述
|
|
89
91
|
},
|
|
90
92
|
build: {
|
|
91
|
-
importMode: "dynamic", //
|
|
93
|
+
importMode: "dynamic", // 构建时的导入模式
|
|
92
94
|
},
|
|
93
95
|
};
|
|
94
96
|
|
|
@@ -101,10 +103,20 @@ module.exports = config;
|
|
|
101
103
|
"locales": ["en"], // 支持的语言列表
|
|
102
104
|
},
|
|
103
105
|
"content": {
|
|
104
|
-
"
|
|
106
|
+
"contentDir": ["src", "../ui-library"], // 内容目录
|
|
105
107
|
},
|
|
106
108
|
"middleware": {
|
|
107
|
-
"noPrefix": false,
|
|
109
|
+
"noPrefix": false, // 是否禁用前缀
|
|
110
|
+
},
|
|
111
|
+
"editor": {
|
|
112
|
+
"applicationURL": "https://example.com", // 编辑器应用程序 URL
|
|
113
|
+
},
|
|
114
|
+
"ai": {
|
|
115
|
+
"apiKey": "XXXX",
|
|
116
|
+
"applicationContext": "这是一个测试应用",
|
|
117
|
+
},
|
|
118
|
+
"build": {
|
|
119
|
+
"importMode": "dynamic",
|
|
108
120
|
},
|
|
109
121
|
}
|
|
110
122
|
```
|
|
@@ -119,40 +131,37 @@ module.exports = config;
|
|
|
119
131
|
|
|
120
132
|
### 国际化配置
|
|
121
133
|
|
|
122
|
-
|
|
134
|
+
定义与国际化相关的设置,包括可用的语言环境和应用的默认语言环境。
|
|
123
135
|
|
|
124
136
|
#### 属性
|
|
125
137
|
|
|
126
|
-
- **locales
|
|
127
|
-
|
|
128
|
-
- _
|
|
129
|
-
- _
|
|
130
|
-
- _
|
|
131
|
-
- _示例_: `['en', 'fr', 'es']`
|
|
132
|
-
|
|
133
|
-
- **requiredLocales**:
|
|
134
|
-
- _类型_: `string[]`
|
|
135
|
-
- _默认值_: `[]`
|
|
136
|
-
- _描述_: 应用程序中必需的语言列表。
|
|
137
|
-
- _示例_: `[]`
|
|
138
|
-
- _注意_: 如果为空,在 `strict` 模式下所有语言都是必需的。
|
|
139
|
-
- _注意_: 确保必需的语言也在 `locales` 字段中定义。
|
|
140
|
-
- **strictMode**:
|
|
138
|
+
- **locales**:
|
|
139
|
+
- _类型_:`string[]`
|
|
140
|
+
- _默认值_:`['en']`
|
|
141
|
+
- _描述_:应用中支持的语言环境列表。
|
|
142
|
+
- _示例_:`['en', 'fr', 'es']`
|
|
141
143
|
|
|
142
|
-
|
|
143
|
-
- _
|
|
144
|
-
- _
|
|
145
|
-
- _
|
|
146
|
-
- _
|
|
147
|
-
- _注意_
|
|
144
|
+
- **requiredLocales**:
|
|
145
|
+
- _类型_:`string[]`
|
|
146
|
+
- _默认值_:`[]`
|
|
147
|
+
- _描述_:应用中必需的语言环境列表。
|
|
148
|
+
- _示例_:`[]`
|
|
149
|
+
- _注意_:如果为空,则在 `strict` 模式下所有语言环境都是必需的。
|
|
150
|
+
- _注意_:确保必需的语言环境也在 `locales` 字段中定义。
|
|
151
|
+
- **strictMode**:
|
|
152
|
+
- _类型_:`string`
|
|
153
|
+
- _默认值_:`inclusive`
|
|
154
|
+
- _描述_:确保使用 TypeScript 强化国际化内容的实现。
|
|
155
|
+
- _注意_:如果设置为 "strict",翻译函数 `t` 将要求每个声明的语言环境都必须定义。如果缺少某个语言环境,或者配置中未声明某个语言环境,将抛出错误。
|
|
156
|
+
- _注意_:如果设置为 "inclusive",翻译函数 `t` 将要求每个声明的语言环境都必须定义。如果缺少某个语言环境,将发出警告。但如果配置中未声明某个语言环境但该语言环境存在,则接受。
|
|
157
|
+
- _注意_: 如果设置为 "loose",翻译函数 `t` 将接受任何存在的语言环境。
|
|
148
158
|
|
|
149
159
|
- **defaultLocale**:
|
|
150
|
-
|
|
151
160
|
- _类型_: `string`
|
|
152
161
|
- _默认值_: `'en'`
|
|
153
162
|
- _描述_: 当请求的语言环境未找到时,使用的默认语言环境作为回退。
|
|
154
163
|
- _示例_: `'en'`
|
|
155
|
-
- _注意_:
|
|
164
|
+
- _注意_: 用于在 URL、cookie 或请求头中未指定语言环境时确定语言环境。
|
|
156
165
|
|
|
157
166
|
---
|
|
158
167
|
|
|
@@ -163,174 +172,172 @@ module.exports = config;
|
|
|
163
172
|
#### 属性
|
|
164
173
|
|
|
165
174
|
- **applicationURL**:
|
|
166
|
-
|
|
167
175
|
- _类型_: `string`
|
|
168
176
|
- _默认值_: `http://localhost:3000`
|
|
169
|
-
- _描述_: 应用程序的 URL
|
|
177
|
+
- _描述_: 应用程序的 URL。用于出于安全原因限制编辑器的来源。
|
|
170
178
|
- _示例_:
|
|
171
179
|
- `'http://localhost:3000'`
|
|
172
180
|
- `'https://example.com'`
|
|
173
|
-
|
|
174
|
-
- _注意_: 应用程序的 URL
|
|
181
|
+
- `process.env.INTLAYER_EDITOR_URL`
|
|
182
|
+
- _注意_: 应用程序的 URL。用于出于安全原因限制编辑器的来源。如果设置为 `'*'`,则编辑器可从任何来源访问。
|
|
175
183
|
|
|
176
184
|
- **port**:
|
|
177
|
-
|
|
178
185
|
- _类型_: `number`
|
|
179
186
|
- _默认值_: `8000`
|
|
180
187
|
- _描述_: 可视化编辑器服务器使用的端口。
|
|
181
188
|
|
|
182
189
|
- **editorURL**:
|
|
183
|
-
|
|
184
190
|
- _类型_: `string`
|
|
185
191
|
- _默认值_: `'http://localhost:8000'`
|
|
186
|
-
- _描述_: 编辑器服务器的 URL
|
|
192
|
+
- _描述_: 编辑器服务器的 URL。用于出于安全原因限制编辑器的来源。
|
|
187
193
|
- `'http://localhost:3000'`
|
|
188
194
|
- `'https://example.com'`
|
|
189
195
|
- `process.env.INTLAYER_EDITOR_URL`
|
|
190
|
-
- _注意_
|
|
191
|
-
|
|
192
|
-
- **cmsURL**:
|
|
193
|
-
|
|
194
|
-
- _类型_: `string`
|
|
195
|
-
- _默认值_: `'https://intlayer.org'`
|
|
196
|
-
- _描述_: Intlayer CMS 的 URL。
|
|
197
|
-
- _示例_: `'https://intlayer.org'`
|
|
198
|
-
- _注意_: Intlayer CMS 的 URL。
|
|
199
|
-
|
|
200
|
-
- **backendURL**:
|
|
196
|
+
- _注意_:应用程序访问的编辑器服务器的 URL。用于限制可以与应用程序交互的来源以确保安全。如果设置为 `'*'`,编辑器可以从任何来源访问。如果端口更改或编辑器托管在不同域名上,应设置此项。
|
|
201
197
|
|
|
202
|
-
|
|
203
|
-
- _
|
|
204
|
-
- _
|
|
205
|
-
- _
|
|
198
|
+
- **cmsURL**:
|
|
199
|
+
- _类型_:`string`
|
|
200
|
+
- _默认值_:`'https://intlayer.org'`
|
|
201
|
+
- _描述_:Intlayer CMS 的 URL。
|
|
202
|
+
- _示例_:`'https://intlayer.org'`
|
|
203
|
+
- _注意_:Intlayer CMS 的 URL。
|
|
206
204
|
|
|
207
|
-
- **
|
|
205
|
+
- **backendURL**:
|
|
206
|
+
- _类型_:`string`
|
|
207
|
+
- _默认值_:`https://back.intlayer.org`
|
|
208
|
+
- _描述_:后端服务器的 URL。
|
|
209
|
+
- _示例_:`http://localhost:4000`
|
|
208
210
|
|
|
209
|
-
|
|
210
|
-
- _
|
|
211
|
-
- _
|
|
212
|
-
- _
|
|
213
|
-
- _
|
|
211
|
+
- **enabled**:
|
|
212
|
+
- _类型_:`boolean`
|
|
213
|
+
- _默认值_:`true`
|
|
214
|
+
- _描述_:指示应用程序是否与可视化编辑器交互。
|
|
215
|
+
- _示例_:`process.env.NODE_ENV !== 'production'`
|
|
216
|
+
- _注意_:如果为 true,编辑器将能够与应用程序交互。如果为 false,编辑器将无法与应用程序交互。无论如何,编辑器只能由可视化编辑器启用。在特定环境中禁用编辑器是一种加强安全性的方式。
|
|
214
217
|
|
|
215
218
|
- **clientId**:
|
|
216
|
-
|
|
217
|
-
- _
|
|
218
|
-
- _默认值_: `undefined`
|
|
219
|
+
- _类型_:`string` | `undefined`
|
|
220
|
+
- _默认值_:`undefined`
|
|
219
221
|
- _描述_: clientId 和 clientSecret 允许 intlayer 包使用 oAuth2 认证与后端进行身份验证。访问令牌用于验证与项目相关的用户。要获取访问令牌,请访问 https://intlayer.org/dashboard/project 并创建一个账户。
|
|
220
222
|
- _示例_: `true`
|
|
221
|
-
- _注意_:
|
|
223
|
+
- _注意_: 重要提示:clientId 和 clientSecret 应保持机密,不得公开共享。请确保将它们保存在安全的位置,例如环境变量中。
|
|
222
224
|
|
|
223
225
|
- **clientSecret**:
|
|
224
|
-
|
|
225
226
|
- _类型_: `string` | `undefined`
|
|
226
227
|
- _默认值_: `undefined`
|
|
227
228
|
- _描述_: clientId 和 clientSecret 允许 intlayer 包使用 oAuth2 认证与后端进行身份验证。访问令牌用于验证与项目相关的用户。要获取访问令牌,请访问 https://intlayer.org/dashboard/project 并创建一个账户。
|
|
228
229
|
- _示例_: `true`
|
|
229
|
-
- _注意_: 重要提示:clientId 和 clientSecret
|
|
230
|
+
- _注意_: 重要提示:clientId 和 clientSecret 应保持机密,不得公开共享。请确保将它们保存在安全的位置,例如环境变量中。
|
|
230
231
|
|
|
231
|
-
- **
|
|
232
|
+
- **dictionaryPriorityStrategy**:
|
|
233
|
+
- _类型_: `string`
|
|
234
|
+
- _默认值_: `'local_first'`
|
|
235
|
+
- _描述_: 当本地和远程词典同时存在时,优先使用词典的策略。如果设置为 `'distant_first'`,应用程序将优先使用远程词典而非本地词典。如果设置为 `'local_first'`,应用程序将优先使用本地词典而非远程词典。
|
|
236
|
+
- _示例_: `'distant_first'`
|
|
232
237
|
|
|
238
|
+
- **liveSync**:
|
|
233
239
|
- _类型_: `boolean`
|
|
234
240
|
- _默认值_: `false`
|
|
235
|
-
- _描述_:
|
|
241
|
+
- _描述_: 指示当检测到 CMS / 可视化编辑器 / 后端内容发生变化时,应用服务器是否应热重载应用内容。
|
|
236
242
|
- _示例_: `true`
|
|
237
|
-
- _
|
|
238
|
-
- _注意_:
|
|
243
|
+
- _备注_: 例如,当添加或更新新的词典时,应用程序会更新页面中显示的内容。
|
|
244
|
+
- _注意_: 实时同步需要将应用内容外部化到另一个服务器。这意味着它可能会稍微影响应用的性能。为限制这种影响,我们建议将应用和实时同步服务器托管在同一台机器上。此外,实时同步与 `optimize` 的组合可能会对实时同步服务器产生大量请求。根据您的基础设施,我们建议测试这两种选项及其组合。
|
|
239
245
|
|
|
240
|
-
- **
|
|
246
|
+
- **liveSyncPort**:
|
|
247
|
+
- _类型_: `number`
|
|
248
|
+
- _默认值_: `4000`
|
|
249
|
+
- _描述_: 实时同步服务器的端口。
|
|
250
|
+
- _示例_: `4000`
|
|
251
|
+
- _注意_: 实时同步服务器的端口。
|
|
252
|
+
|
|
253
|
+
- **liveSyncURL**:
|
|
241
254
|
- _类型_: `string`
|
|
242
|
-
- _默认值_: `'
|
|
243
|
-
- _描述_:
|
|
244
|
-
- _示例_: `'
|
|
255
|
+
- _默认值_: `'http://localhost:{liveSyncPort}'`
|
|
256
|
+
- _描述_: 实时同步服务器的 URL。
|
|
257
|
+
- _示例_: `'https://example.com'`
|
|
258
|
+
- _备注_: 默认指向 localhost,但在远程实时同步服务器的情况下可以更改为任何 URL。
|
|
245
259
|
|
|
246
260
|
### 中间件配置
|
|
247
261
|
|
|
248
|
-
|
|
262
|
+
控制中间件行为的设置,包括应用如何处理 cookie、头信息以及用于区域管理的 URL 前缀。
|
|
249
263
|
|
|
250
264
|
#### 属性
|
|
251
265
|
|
|
252
266
|
- **headerName**:
|
|
253
|
-
|
|
254
267
|
- _类型_: `string`
|
|
255
268
|
- _默认值_: `'x-intlayer-locale'`
|
|
256
|
-
- _描述_:
|
|
269
|
+
- _描述_: 用于确定区域的 HTTP 头名称。
|
|
257
270
|
- _示例_: `'x-custom-locale'`
|
|
258
|
-
- _
|
|
271
|
+
- _备注_: 这对于基于 API 的区域确定非常有用。
|
|
259
272
|
|
|
260
273
|
- **cookieName**:
|
|
261
|
-
|
|
262
274
|
- _类型_: `string`
|
|
263
275
|
- _默认值_: `'intlayer-locale'`
|
|
264
|
-
- _描述_:
|
|
276
|
+
- _描述_: 用于存储区域的 cookie 名称。
|
|
265
277
|
- _示例_: `'custom-locale'`
|
|
266
|
-
- _
|
|
278
|
+
- _说明_: 用于在会话之间保持语言环境。
|
|
267
279
|
|
|
268
280
|
- **prefixDefault**:
|
|
269
|
-
|
|
270
281
|
- _类型_: `boolean`
|
|
271
282
|
- _默认值_: `false`
|
|
272
|
-
- _
|
|
283
|
+
- _说明_: 是否在 URL 中包含默认语言环境。
|
|
273
284
|
- _示例_: `true`
|
|
274
|
-
- _
|
|
275
|
-
-
|
|
276
|
-
-
|
|
285
|
+
- _说明_:
|
|
286
|
+
- 如果为 `true` 且 `defaultLocale = 'en'`:路径为 `/en/dashboard` 或 `/fr/dashboard`
|
|
287
|
+
- 如果为 `false` 且 `defaultLocale = 'en'`:路径为 `/dashboard` 或 `/fr/dashboard`
|
|
277
288
|
|
|
278
289
|
- **basePath**:
|
|
279
|
-
|
|
280
290
|
- _类型_: `string`
|
|
281
291
|
- _默认值_: `''`
|
|
282
|
-
- _
|
|
292
|
+
- _说明_: 应用程序 URL 的基础路径。
|
|
283
293
|
- _示例_: `'/my-app'`
|
|
284
|
-
- _
|
|
285
|
-
-
|
|
286
|
-
-
|
|
294
|
+
- _说明_:
|
|
295
|
+
- 如果应用托管在 `https://example.com/my-app`
|
|
296
|
+
- 基础路径为 `'/my-app'`
|
|
287
297
|
- URL 将是 `https://example.com/my-app/en`
|
|
288
|
-
-
|
|
289
|
-
|
|
290
|
-
- **serverSetCookie**:
|
|
298
|
+
- 如果未设置基础路径,URL 将是 `https://example.com/en`
|
|
291
299
|
|
|
292
|
-
|
|
293
|
-
- _
|
|
294
|
-
- _
|
|
295
|
-
- _
|
|
296
|
-
- _
|
|
297
|
-
- _
|
|
298
|
-
|
|
299
|
-
- **noPrefix**:
|
|
300
|
+
- **serverSetCookie**:
|
|
301
|
+
- _类型_:`string`
|
|
302
|
+
- _默认值_:`'always'`
|
|
303
|
+
- _描述_:服务器端设置语言环境 Cookie 的规则。
|
|
304
|
+
- _选项_:`'always'`,`'never'`
|
|
305
|
+
- _示例_:`'never'`
|
|
306
|
+
- _说明_:控制是否在每次请求时设置语言环境 Cookie,或者从不设置。
|
|
300
307
|
|
|
301
|
-
|
|
302
|
-
- _
|
|
303
|
-
- _
|
|
304
|
-
- _
|
|
305
|
-
- _
|
|
306
|
-
|
|
307
|
-
-
|
|
308
|
-
-
|
|
309
|
-
|
|
310
|
-
- 如果 `noPrefix =
|
|
308
|
+
- **noPrefix**:
|
|
309
|
+
- _类型_:`boolean`
|
|
310
|
+
- _默认值_:`false`
|
|
311
|
+
- _描述_:是否在 URL 中省略语言环境前缀。
|
|
312
|
+
- _示例_:`true`
|
|
313
|
+
- _说明_:
|
|
314
|
+
- 如果为 `true`:URL 中无前缀
|
|
315
|
+
- 如果为 `false`:URL 中有前缀
|
|
316
|
+
- 以 `basePath = '/my-app'` 为例:
|
|
317
|
+
- 如果 `noPrefix = false`:URL 将是 `https://example.com/my-app/en`
|
|
318
|
+
- 如果 `noPrefix = true`:URL 将是 `https://example.com`
|
|
311
319
|
|
|
312
320
|
- **detectLocaleOnPrefetchNoPrefix**:
|
|
313
|
-
|
|
314
321
|
- _类型_: `boolean`
|
|
315
322
|
- _默认值_: `false`
|
|
316
323
|
- _描述_: 控制是否在 Next.js 预取请求期间进行语言环境检测。
|
|
317
324
|
- _示例_: `true`
|
|
318
|
-
- _
|
|
319
|
-
-
|
|
320
|
-
-
|
|
321
|
-
-
|
|
325
|
+
- _说明_: 此设置影响 Next.js 如何处理语言环境预取:
|
|
326
|
+
- **示例场景:**
|
|
327
|
+
- 用户浏览器语言为 `'fr'`
|
|
328
|
+
- 当前页面为 `/fr/about`
|
|
322
329
|
- 链接预取 `/about`
|
|
323
|
-
-
|
|
330
|
+
- **当 `detectLocaleOnPrefetchNoPrefix: true` 时:**
|
|
324
331
|
- 预取从浏览器检测到 `'fr'` 语言环境
|
|
325
332
|
- 将预取重定向到 `/fr/about`
|
|
326
|
-
-
|
|
333
|
+
- **当 `detectLocaleOnPrefetchNoPrefix: false`(默认)时:**
|
|
327
334
|
- 预取使用默认语言环境
|
|
328
|
-
- 将预取重定向到 `/en/about
|
|
329
|
-
- **何时使用 `true
|
|
330
|
-
-
|
|
331
|
-
-
|
|
332
|
-
- **何时使用 `false
|
|
333
|
-
-
|
|
335
|
+
- 将预取重定向到 `/en/about`(假设 `'en'` 是默认语言)
|
|
336
|
+
- **何时使用 `true`:**
|
|
337
|
+
- 您的应用使用非本地化的内部链接(例如 `<a href="/about">`)
|
|
338
|
+
- 您希望常规请求和预取请求之间的语言检测行为保持一致
|
|
339
|
+
- **何时使用 `false`(默认值):**
|
|
340
|
+
- 您的应用使用带语言前缀的链接(例如 `<a href="/fr/about">`)
|
|
334
341
|
- 您希望优化预取性能
|
|
335
342
|
- 您希望避免潜在的重定向循环
|
|
336
343
|
|
|
@@ -338,101 +345,100 @@ module.exports = config;
|
|
|
338
345
|
|
|
339
346
|
### 内容配置
|
|
340
347
|
|
|
341
|
-
|
|
348
|
+
与应用内内容处理相关的设置,包括目录名称、文件扩展名及派生配置。
|
|
342
349
|
|
|
343
350
|
#### 属性
|
|
344
351
|
|
|
345
|
-
- **
|
|
352
|
+
- **autoFill**:
|
|
353
|
+
- _类型_:`boolean | string | { [key in Locales]?: string }`
|
|
354
|
+
- _默认值_:`undefined`
|
|
355
|
+
- _描述_:指示内容应如何使用 AI 自动填充。可以在 `intlayer.config.ts` 文件中全局声明。
|
|
356
|
+
- _示例_:true
|
|
357
|
+
- _示例_:'./{{fileName}}.content.json'
|
|
358
|
+
- _示例_:{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }
|
|
359
|
+
- _备注_:自动填充配置。它可以是:
|
|
360
|
+
- boolean:为所有语言启用自动填充
|
|
361
|
+
- string:单个文件路径或带变量的模板路径
|
|
362
|
+
- object:每个语言的文件路径
|
|
346
363
|
|
|
347
|
-
|
|
348
|
-
- _
|
|
349
|
-
- _
|
|
364
|
+
- **watch**:
|
|
365
|
+
- _类型_:`boolean`
|
|
366
|
+
- _默认值_:`process.env.NODE_ENV === 'development'`
|
|
367
|
+
- _描述_:指示 Intlayer 是否应监视应用中内容声明文件的更改,以重建相关字典。
|
|
350
368
|
|
|
351
369
|
- **fileExtensions**:
|
|
352
|
-
|
|
353
|
-
- _类型_: `string[]`
|
|
370
|
+
- _类型_:`string[]`
|
|
354
371
|
- _默认值_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
355
372
|
- _描述_: 构建字典时要查找的文件扩展名。
|
|
356
373
|
- _示例_: `['.data.ts', '.data.js', '.data.json']`
|
|
357
|
-
- _
|
|
374
|
+
- _备注_: 自定义文件扩展名可以帮助避免冲突。
|
|
358
375
|
|
|
359
376
|
- **baseDir**:
|
|
360
|
-
|
|
361
377
|
- _类型_: `string`
|
|
362
378
|
- _默认值_: `process.cwd()`
|
|
363
379
|
- _描述_: 项目的基础目录。
|
|
364
380
|
- _示例_: `'/path/to/project'`
|
|
365
|
-
- _
|
|
381
|
+
- _备注_: 用于解析所有与 Intlayer 相关的目录。
|
|
366
382
|
|
|
367
383
|
- **dictionaryOutput**:
|
|
368
|
-
|
|
369
384
|
- _类型_: `string[]`
|
|
370
385
|
- _默认值_: `['intlayer']`
|
|
371
|
-
- _描述_:
|
|
386
|
+
- _描述_: 使用的字典输出类型,例如 `'intlayer'` 或 `'i18next'`。
|
|
372
387
|
|
|
373
388
|
- **contentDir**:
|
|
374
|
-
|
|
375
389
|
- _类型_: `string[]`
|
|
376
|
-
- _默认值_: `['
|
|
390
|
+
- _默认值_: `['.']`
|
|
377
391
|
- _示例_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
|
|
378
392
|
- _描述_: 存储内容的目录路径。
|
|
379
393
|
|
|
380
394
|
- **dictionariesDir**:
|
|
381
|
-
|
|
382
395
|
- _类型_: `string`
|
|
383
|
-
- _
|
|
384
|
-
- _描述_:
|
|
396
|
+
- _默认_: `'.intlayer/dictionaries'`
|
|
397
|
+
- _描述_: 用于存储中间结果或输出结果的目录路径。
|
|
385
398
|
|
|
386
399
|
- **moduleAugmentationDir**:
|
|
387
|
-
|
|
388
400
|
- _类型_: `string`
|
|
389
|
-
- _
|
|
390
|
-
- _描述_: 模块增强目录,允许更好的 IDE
|
|
401
|
+
- _默认_: `'.intlayer/types'`
|
|
402
|
+
- _描述_: 模块增强目录,允许更好的 IDE 提示和类型检查。
|
|
391
403
|
- _示例_: `'intlayer-types'`
|
|
392
|
-
- _注意_:
|
|
404
|
+
- _注意_: 确保在 `tsconfig.json` 中包含此目录。
|
|
393
405
|
|
|
394
406
|
- **unmergedDictionariesDir**:
|
|
395
|
-
|
|
396
407
|
- _类型_: `string`
|
|
397
|
-
- _
|
|
408
|
+
- _默认_: `'.intlayer/unmerged_dictionary'`
|
|
398
409
|
- _描述_: 用于存储未合并字典的目录。
|
|
399
410
|
- _示例_: `'translations'`
|
|
400
411
|
|
|
401
412
|
- **dictionariesDir**:
|
|
402
|
-
|
|
403
413
|
- _类型_: `string`
|
|
404
414
|
- _默认值_: `'.intlayer/dictionary'`
|
|
405
|
-
- _描述_:
|
|
415
|
+
- _描述_: 用于存储本地化词典的目录。
|
|
406
416
|
- _示例_: `'translations'`
|
|
407
417
|
|
|
408
418
|
- **i18nextResourcesDir**:
|
|
409
|
-
- **i18nextResourcesDir**:
|
|
410
|
-
|
|
411
419
|
- _类型_: `string`
|
|
412
420
|
- _默认值_: `'i18next_dictionary'`
|
|
413
|
-
- _描述_: 用于存储 i18n
|
|
421
|
+
- _描述_: 用于存储 i18n 词典的目录。
|
|
414
422
|
- _示例_: `'translations'`
|
|
415
|
-
- _注意_:
|
|
423
|
+
- _注意_: 确保该目录已为 i18next 输出类型进行配置。
|
|
416
424
|
|
|
417
425
|
- **typesDir**:
|
|
418
|
-
|
|
419
426
|
- _类型_: `string`
|
|
420
427
|
- _默认值_: `'types'`
|
|
421
|
-
- _描述_:
|
|
428
|
+
- _描述_: 用于存储词典类型的目录。
|
|
422
429
|
- _示例_: `'intlayer-types'`
|
|
423
430
|
|
|
424
431
|
- **mainDir**:
|
|
425
|
-
|
|
426
432
|
- _类型_: `string`
|
|
427
433
|
- _默认值_: `'main'`
|
|
428
|
-
- _描述_:
|
|
434
|
+
- _描述_: 存放主应用程序文件的目录。
|
|
429
435
|
- _示例_: `'intlayer-main'`
|
|
430
436
|
|
|
431
437
|
- **excludedPath**:
|
|
432
438
|
- _类型_: `string[]`
|
|
433
439
|
- _默认值_: `['node_modules']`
|
|
434
|
-
- _描述_:
|
|
435
|
-
- _
|
|
440
|
+
- _描述_: 排除内容搜索的目录。
|
|
441
|
+
- _备注_: 此设置尚未使用,但计划在未来实现。
|
|
436
442
|
|
|
437
443
|
### 日志配置
|
|
438
444
|
|
|
@@ -441,30 +447,30 @@ module.exports = config;
|
|
|
441
447
|
#### 属性
|
|
442
448
|
|
|
443
449
|
- **mode**:
|
|
444
|
-
|
|
445
450
|
- _类型_: `string`
|
|
446
451
|
- _默认值_: `default`
|
|
447
452
|
- _描述_: 指示日志记录器的模式。
|
|
448
|
-
- _选项_: `default
|
|
453
|
+
- _选项_: `default`,`verbose`,`disabled`
|
|
449
454
|
- _示例_: `default`
|
|
450
|
-
- _
|
|
455
|
+
- _备注_: 日志记录器的模式。详细模式将记录更多信息,可用于调试。禁用模式将关闭日志记录器。
|
|
451
456
|
|
|
452
457
|
- **prefix**:
|
|
453
|
-
|
|
454
458
|
- _类型_: `string`
|
|
455
459
|
- _默认值_: `'[intlayer] '`
|
|
456
460
|
- _描述_: 日志记录器的前缀。
|
|
457
461
|
- _示例_: `'[my custom prefix] '`
|
|
458
|
-
- _
|
|
462
|
+
- _注释_: 日志器的前缀。
|
|
459
463
|
|
|
460
464
|
### AI 配置
|
|
461
465
|
|
|
462
466
|
控制 Intlayer AI 功能的设置,包括提供商、模型和 API 密钥。
|
|
463
|
-
如果您已使用访问密钥在 [Intlayer Dashboard](https://intlayer.org/dashboard/project) 上注册,则此配置是可选的。Intlayer 将自动为您的需求管理最有效和最具成本效益的 AI 解决方案。使用默认选项可确保更好的长期可维护性,因为 Intlayer 会不断更新以使用最相关的模型。
|
|
464
467
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
+
如果您已使用访问密钥在[Intlayer 控制面板](https://intlayer.org/dashboard/project)注册,则此配置是可选的。Intlayer 会自动管理最有效且具有成本效益的 AI 解决方案以满足您的需求。使用默认选项可确保更好的长期可维护性,因为 Intlayer 会持续更新以使用最相关的模型。
|
|
469
|
+
|
|
470
|
+
如果您希望使用自己的 API 密钥或特定模型,可以定义自定义的 AI 配置。
|
|
471
|
+
此 AI 配置将在整个 Intlayer 环境中全局使用。CLI 命令将使用这些设置作为命令的默认值(例如 `fill`),同时 SDK、可视化编辑器和 CMS 也会使用这些默认值。您可以通过命令参数覆盖这些默认值以满足特定用例。
|
|
472
|
+
|
|
473
|
+
Intlayer 支持多个 AI 提供商,以增强灵活性和选择。目前支持的提供商有:
|
|
468
474
|
|
|
469
475
|
- **OpenAI**(默认)
|
|
470
476
|
- **Anthropic Claude**
|
|
@@ -476,93 +482,106 @@ Intlayer 支持多个 AI 提供商,以增强灵活性和选择性。目前支
|
|
|
476
482
|
#### 属性
|
|
477
483
|
|
|
478
484
|
- **provider**:
|
|
479
|
-
|
|
480
485
|
- _类型_:`string`
|
|
481
486
|
- _默认值_:`'openai'`
|
|
482
487
|
- _描述_:用于 Intlayer AI 功能的提供商。
|
|
483
488
|
- _选项_:`'openai'`、`'anthropic'`、`'mistral'`、`'deepseek'`、`'gemini'`
|
|
484
489
|
- _示例_:`'anthropic'`
|
|
485
|
-
- _注意_
|
|
490
|
+
- _注意_: 不同的提供商可能需要不同的 API 密钥,并且有不同的定价模型。
|
|
486
491
|
|
|
487
|
-
- **model
|
|
488
|
-
|
|
489
|
-
- _
|
|
490
|
-
- _
|
|
491
|
-
- _
|
|
492
|
-
- _
|
|
493
|
-
- _注意_: 不同提供商使用的具体模型可能有所不同。
|
|
492
|
+
- **model**:
|
|
493
|
+
- _类型_: `string`
|
|
494
|
+
- _默认值_: 无
|
|
495
|
+
- _描述_: 用于 Intlayer AI 功能的模型。
|
|
496
|
+
- _示例_: `'gpt-4o-2024-11-20'`
|
|
497
|
+
- _注意_: 具体使用的模型因提供商而异。
|
|
494
498
|
|
|
495
499
|
- **temperature**:
|
|
496
|
-
|
|
497
500
|
- _类型_: `number`
|
|
498
501
|
- _默认值_: 无
|
|
499
|
-
- _描述_:
|
|
502
|
+
- _描述_: temperature 控制 AI 回答的随机性。
|
|
500
503
|
- _示例_: `0.1`
|
|
501
|
-
- _注意_:
|
|
504
|
+
- _注意_: 较高的 temperature 会使 AI 更具创造性且不可预测。
|
|
502
505
|
|
|
503
506
|
- **apiKey**:
|
|
504
|
-
|
|
505
507
|
- _类型_: `string`
|
|
506
508
|
- _默认值_: 无
|
|
507
|
-
- _描述_:
|
|
509
|
+
- _描述_: 你为所选提供商提供的 API 密钥。
|
|
508
510
|
- _示例_: `process.env.OPENAI_API_KEY`
|
|
509
|
-
- _注意_: 重要提示:API
|
|
511
|
+
- _注意_: 重要提示:API 密钥应保密,切勿公开共享。请确保将其保存在安全的位置,例如环境变量中。
|
|
510
512
|
|
|
511
513
|
- **applicationContext**:
|
|
512
514
|
- _类型_: `string`
|
|
513
515
|
- _默认值_: 无
|
|
514
|
-
- _描述_
|
|
516
|
+
- _描述_: 向 AI 模型提供有关您的应用程序的额外上下文,帮助其生成更准确且符合上下文的翻译。这可以包括您的应用领域、目标受众、语气或特定术语的信息。
|
|
515
517
|
|
|
516
518
|
### 构建配置
|
|
517
519
|
|
|
518
|
-
控制 Intlayer
|
|
520
|
+
控制 Intlayer 如何优化和构建您的应用程序国际化的设置。
|
|
519
521
|
|
|
520
522
|
构建选项适用于 `@intlayer/babel` 和 `@intlayer/swc` 插件。
|
|
521
523
|
|
|
522
|
-
> 在开发模式下,Intlayer
|
|
524
|
+
> 在开发模式下,Intlayer 使用静态导入字典,以简化开发体验。
|
|
523
525
|
|
|
524
|
-
>
|
|
526
|
+
> 在优化模式下,Intlayer 会替换字典调用以优化代码分块,因此最终打包只会导入实际使用的字典。
|
|
525
527
|
|
|
526
528
|
#### 属性
|
|
527
529
|
|
|
528
530
|
- **optimize**:
|
|
529
|
-
|
|
530
531
|
- _类型_:`boolean`
|
|
531
532
|
- _默认值_:`process.env.NODE_ENV === 'production'`
|
|
532
|
-
- _描述_
|
|
533
|
+
- _描述_:控制构建是否应进行优化。
|
|
533
534
|
- _示例_:`true`
|
|
534
|
-
- _注意_:启用时,Intlayer
|
|
535
|
-
- _注意_
|
|
536
|
-
- _注意_
|
|
537
|
-
- _注意_
|
|
538
|
-
|
|
539
|
-
- **importMode
|
|
540
|
-
|
|
541
|
-
- _
|
|
542
|
-
- _
|
|
543
|
-
- _
|
|
544
|
-
- _
|
|
545
|
-
|
|
546
|
-
- "
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
- _注意_:动态导入依赖于 Suspense,可能会略微影响渲染性能。
|
|
535
|
+
- _注意_:启用时,Intlayer 会替换所有字典调用以优化代码分块。这样最终打包只会导入被使用的字典。所有导入将保持为静态导入,以避免加载字典时的异步处理。
|
|
536
|
+
- _注意_: Intlayer 会根据 `importMode` 选项定义的模式替换所有 `useIntlayer` 的调用,并将 `getIntlayer` 替换为 `getDictionary`。
|
|
537
|
+
- _注意_: 此选项依赖于 `@intlayer/babel` 和 `@intlayer/swc` 插件。
|
|
538
|
+
- _注意_: 确保所有键在 `useIntlayer` 调用中是静态声明的。例如 `useIntlayer('navbar')`。
|
|
539
|
+
|
|
540
|
+
- **importMode**:
|
|
541
|
+
- _类型_: `'static' | 'dynamic' | 'live'`
|
|
542
|
+
- _默认值_: `'static'`
|
|
543
|
+
- _描述_: 控制字典的导入方式。
|
|
544
|
+
- _示例_: `'dynamic'`
|
|
545
|
+
- _注意_: 可用模式:
|
|
546
|
+
- "static":字典以静态方式导入。将 `useIntlayer` 替换为 `useDictionary`。
|
|
547
|
+
- "dynamic":字典通过 Suspense 动态导入。将 `useIntlayer` 替换为 `useDictionaryDynamic`。
|
|
548
|
+
- "live":字典通过实时同步 API 动态获取。将 `useIntlayer` 替换为 `useDictionaryFetch`。
|
|
549
|
+
- _注意_:动态导入依赖 Suspense,可能会略微影响渲染性能。
|
|
550
550
|
- _注意_:如果禁用,所有语言环境将一次性加载,即使未被使用。
|
|
551
|
-
- _注意_
|
|
552
|
-
- _注意_
|
|
553
|
-
- _注意_
|
|
554
|
-
- _注意_
|
|
555
|
-
- _注意_
|
|
551
|
+
- _注意_:此选项依赖 `@intlayer/babel` 和 `@intlayer/swc` 插件。
|
|
552
|
+
- _注意_:确保在 `useIntlayer` 调用中所有键都是静态声明的。例如 `useIntlayer('navbar')`。
|
|
553
|
+
- _注意_:如果禁用 `optimize`,此选项将被忽略。
|
|
554
|
+
- _注意_: 如果设置为 "live",只有包含远程内容且标记为 "live" 的字典会被转换为实时模式。其他字典将以 "dynamic" 模式动态导入,以优化请求次数和加载性能。
|
|
555
|
+
- _注意_: 实时模式将使用实时同步 API 来获取字典。如果 API 调用失败,字典将以 "dynamic" 模式动态导入。
|
|
556
|
+
- _注意_: 此选项不会影响 `getIntlayer`、`getDictionary`、`useDictionary`、`useDictionaryAsync` 和 `useDictionaryDynamic` 函数。
|
|
556
557
|
|
|
557
|
-
- **traversePattern
|
|
558
|
-
- _类型_
|
|
559
|
-
- _默认值_
|
|
558
|
+
- **traversePattern**:
|
|
559
|
+
- _类型_: `string[]`
|
|
560
|
+
- _默认值_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**\/node_modules/**']`
|
|
560
561
|
- _描述_:定义在优化过程中应遍历哪些文件的模式。
|
|
561
|
-
- _示例_:`['src
|
|
562
|
-
- _注意_
|
|
562
|
+
- _示例_:`['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
563
|
+
- _注意_:使用此选项限制优化范围到相关代码文件,以提升构建性能。
|
|
563
564
|
- _注意_:如果禁用 `optimize`,此选项将被忽略。
|
|
564
565
|
- _注意_:使用 glob 模式。
|
|
565
566
|
|
|
566
567
|
## 文档历史
|
|
567
568
|
|
|
568
|
-
|
|
569
|
+
| 版本 | 日期 | 变更 |
|
|
570
|
+
| ----- | ---------- | -------------------- |
|
|
571
|
+
| 6.0.0 | 2025-09-16 | 添加 `live` 导入模式 |
|
|
572
|
+
|
|
573
|
+
- _描述_: 定义在优化过程中应遍历哪些文件的模式。
|
|
574
|
+
- _示例_: `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']`
|
|
575
|
+
- _注意_: 使用此选项限制优化范围到相关代码文件,以提升构建性能。
|
|
576
|
+
- _注意_: 如果禁用 `optimize`,此选项将被忽略。
|
|
577
|
+
- _注意_: 使用 glob 模式。
|
|
578
|
+
|
|
579
|
+
## 文档历史
|
|
580
|
+
|
|
581
|
+
| 版本 | 日期 | 变更说明 |
|
|
582
|
+
| ------ | ---------- | -------------------------------------------------------------------------------- |
|
|
583
|
+
| 6.0.0 | 2025-09-16 | 添加 `live` 导入模式 |
|
|
584
|
+
| 6.0.0 | 2025-09-04 | 用 `liveSync` 替换 `hotReload` 字段,并新增 `liveSyncPort` 和 `liveSyncURL` 字段 |
|
|
585
|
+
| 5.6.1 | 2025-07-25 | 用 `importMode` 选项替换 `activateDynamicImport` |
|
|
586
|
+
| 5.6.0 | 2025-07-13 | 默认的 contentDir 从 `['src']` 改为 `['.']` |
|
|
587
|
+
| 5.5.11 | 2025-06-29 | 添加 `docs` 命令 |
|