@intlayer/docs 5.8.1 → 6.0.0-canary.1
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
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-01
|
|
3
|
+
updatedAt: 2025-09-20
|
|
4
|
+
title: Testen Ihres Inhalts
|
|
5
|
+
description: Entdecken Sie, wie Sie Ihre Inhalte mit Intlayer testen können.
|
|
6
|
+
keywords:
|
|
7
|
+
- Testen
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internationalisierung
|
|
10
|
+
- CMS
|
|
11
|
+
- Content-Management-System
|
|
12
|
+
- Visueller Editor
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- testing
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Testen Ihres Inhalts
|
|
19
|
+
|
|
20
|
+
Dieser Leitfaden zeigt, wie Sie automatisch überprüfen können, ob Ihre Wörterbücher vollständig sind, fehlende Übersetzungen vor der Veröffentlichung erkennen und die lokalisierte Benutzeroberfläche in Ihrer App testen.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Was Sie testen können
|
|
25
|
+
|
|
26
|
+
- **Fehlende Übersetzungen**: CI schlägt fehl, wenn für ein Wörterbuch erforderliche Sprachversionen fehlen.
|
|
27
|
+
- **Lokalisierte UI-Darstellung**: Komponenten mit einem bestimmten Sprachprovider rendern und sichtbaren Text/Attribute überprüfen.
|
|
28
|
+
- **Build-Zeit Prüfungen**: Führen Sie lokal eine schnelle Prüfung über die CLI durch.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Schnellstart: Prüfung über CLI
|
|
33
|
+
|
|
34
|
+
Führen Sie die Prüfung vom Projektstammverzeichnis aus durch:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx intlayer content test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Nützliche Optionen:
|
|
41
|
+
|
|
42
|
+
- `--env-file [Pfad]`: lädt Umgebungsvariablen aus einer Datei.
|
|
43
|
+
- `-e, --env [Name]`: wählt ein Umgebungsprofil aus.
|
|
44
|
+
- `--base-dir [Pfad]`: legt das Basisverzeichnis der App für die Auflösung fest.
|
|
45
|
+
- `--verbose`: zeigt ausführliche Protokolle an.
|
|
46
|
+
- `--prefix [Label]`: fügt den Protokollzeilen ein Präfix hinzu.
|
|
47
|
+
|
|
48
|
+
Hinweis: Die CLI gibt einen detaillierten Bericht aus, beendet sich jedoch bei Fehlern nicht mit einem Fehlercode. Für CI-Gates fügen Sie einen Unit-Test (siehe unten) hinzu, der sicherstellt, dass keine erforderlichen Sprachversionen fehlen.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Programmatischer Test (Vitest/Jest)
|
|
53
|
+
|
|
54
|
+
Verwenden Sie die Intlayer CLI API, um sicherzustellen, dass keine Übersetzungen für Ihre erforderlichen Sprachversionen fehlen.
|
|
55
|
+
|
|
56
|
+
```ts fileName=i18n.test.ts
|
|
57
|
+
/* @vitest-environment node */
|
|
58
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
59
|
+
import { describe, expect, it } from "vitest";
|
|
60
|
+
|
|
61
|
+
describe("Übersetzungen", () => {
|
|
62
|
+
it("hat keine fehlenden erforderlichen Sprachversionen", () => {
|
|
63
|
+
const result = listMissingTranslations();
|
|
64
|
+
|
|
65
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
66
|
+
// Hilfreich, wenn der Test lokal oder in CI fehlschlägt
|
|
67
|
+
console.log(result.missingTranslations);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Jest-Äquivalent:
|
|
76
|
+
|
|
77
|
+
```ts fileName=i18n.test.ts
|
|
78
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
79
|
+
|
|
80
|
+
test("hat keine fehlenden erforderlichen Sprachversionen", () => {
|
|
81
|
+
const result = listMissingTranslations();
|
|
82
|
+
|
|
83
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
84
|
+
// eslint-disable-next-line no-console
|
|
85
|
+
console.log(result.missingTranslations);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Wie es funktioniert:
|
|
93
|
+
|
|
94
|
+
- Intlayer liest Ihre Konfiguration (locales, requiredLocales) und deklarierte Wörterbücher aus und meldet dann:
|
|
95
|
+
- `missingTranslations`: pro Schlüssel, welche Sprachversionen fehlen und aus welcher Datei.
|
|
96
|
+
- `missingLocales`: Vereinigung aller fehlenden Sprachversionen.
|
|
97
|
+
- `missingRequiredLocales`: Teilmenge beschränkt auf `requiredLocales` (oder alle Sprachversionen, wenn `requiredLocales` nicht gesetzt ist).
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Testen der lokalisierten Benutzeroberfläche (React / Next.js)
|
|
102
|
+
|
|
103
|
+
Rendern Sie Komponenten unter einem Intlayer-Provider und prüfen Sie den sichtbaren Inhalt.
|
|
104
|
+
|
|
105
|
+
React-Beispiel (Testing Library):
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
import { IntlayerProvider } from "react-intlayer/client";
|
|
109
|
+
import { render, screen } from "@testing-library/react";
|
|
110
|
+
import { MyComponent } from "./MyComponent";
|
|
111
|
+
|
|
112
|
+
test("renders localized title in English", () => {
|
|
113
|
+
render(
|
|
114
|
+
<IntlayerProvider locale="en-US">
|
|
115
|
+
<MyComponent />
|
|
116
|
+
</IntlayerProvider>
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
expect(screen.getByText("Erwarteter englischer Titel")).toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Next.js (App Router) Beispiel: Verwenden Sie den Framework-Wrapper:
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
import { IntlayerClientProvider } from "next-intlayer/client";
|
|
127
|
+
import { render, screen } from "@testing-library/react";
|
|
128
|
+
import { MyPage } from "./MyPage";
|
|
129
|
+
|
|
130
|
+
test("rendert lokalisierten Überschrift auf Französisch", () => {
|
|
131
|
+
render(
|
|
132
|
+
<IntlayerClientProvider locale="fr-FR">
|
|
133
|
+
<MyPage />
|
|
134
|
+
</IntlayerClientProvider>
|
|
135
|
+
);
|
|
136
|
+
expect(
|
|
137
|
+
screen.getByRole("heading", { name: "Titre attendu" })
|
|
138
|
+
).toBeInTheDocument();
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Tipps:
|
|
143
|
+
|
|
144
|
+
- Wenn Sie rohe Zeichenkettenwerte für Attribute benötigen (z. B. `aria-label`), greifen Sie auf das `.value`-Feld zu, das von `useIntlayer` in React zurückgegeben wird.
|
|
145
|
+
- Behalten Sie Wörterbücher in der Nähe der Komponenten für einfachere Unit-Tests und Bereinigung bei.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Kontinuierliche Integration
|
|
150
|
+
|
|
151
|
+
Fügen Sie einen Test hinzu, der den Build fehlschlagen lässt, wenn erforderliche Übersetzungen fehlen.
|
|
152
|
+
|
|
153
|
+
`package.json`:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"scripts": {
|
|
158
|
+
"test:i18n": "vitest run -c"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
GitHub Actions Beispiel:
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
name: CI
|
|
167
|
+
on: [push, pull_request]
|
|
168
|
+
jobs:
|
|
169
|
+
test:
|
|
170
|
+
runs-on: ubuntu-latest
|
|
171
|
+
steps:
|
|
172
|
+
- uses: actions/checkout@v4
|
|
173
|
+
- uses: actions/setup-node@v4
|
|
174
|
+
with:
|
|
175
|
+
node-version: 20
|
|
176
|
+
- run: npm ci
|
|
177
|
+
- run: npm run test:i18n
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Optional: Führen Sie die CLI-Prüfung für eine menschenlesbare Zusammenfassung neben den Tests aus:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
npx intlayer content test --verbose
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Fehlerbehebung
|
|
189
|
+
|
|
190
|
+
- Stellen Sie sicher, dass Ihre Intlayer-Konfiguration `locales` und (optional) `requiredLocales` definiert.
|
|
191
|
+
- Wenn Ihre Anwendung dynamische oder entfernte Wörterbücher verwendet, führen Sie die Tests in einer Umgebung aus, in der die Wörterbücher verfügbar sind.
|
|
192
|
+
- Für gemischte Monorepos verwenden Sie `--base-dir`, um die CLI auf das richtige Anwendungs-Stammverzeichnis zu verweisen.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Dokumentationsverlauf
|
|
197
|
+
|
|
198
|
+
| Version | Datum | Änderungen |
|
|
199
|
+
| ------- | ---------- | -------------------- |
|
|
200
|
+
| 6.0.0 | 2025-09-20 | Einführung von Tests |
|
package/docs/en/CI_CD.md
CHANGED
|
@@ -23,7 +23,7 @@ Intlayer allows the automatic generation of translations for your content declar
|
|
|
23
23
|
|
|
24
24
|
## Using the CMS
|
|
25
25
|
|
|
26
|
-
With Intlayer, you can adopt a workflow where only a single locale is declared locally, while all translations are managed remotely through the CMS. This allows content and translations to be completely detached from the codebase, offering more flexibility for content editors and enabling
|
|
26
|
+
With Intlayer, you can adopt a workflow where only a single locale is declared locally, while all translations are managed remotely through the CMS. This allows content and translations to be completely detached from the codebase, offering more flexibility for content editors and enabling Live Sync (no need to rebuild the application to apply changes).
|
|
27
27
|
|
|
28
28
|
### Example Configuration
|
|
29
29
|
|
|
@@ -37,12 +37,10 @@ const config: IntlayerConfig = {
|
|
|
37
37
|
defaultLocale: Locales.ENGLISH,
|
|
38
38
|
},
|
|
39
39
|
editor: {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
applicationURL: process.env.APPLICATION_URL, // Application URL used by the CMS
|
|
43
|
-
|
|
44
|
-
clientId: process.env.INTLAYER_CLIENT_ID, // CMS credentials
|
|
40
|
+
// CMS credentials if you use the CMS
|
|
41
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
45
42
|
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
43
|
+
liveSync: true,
|
|
46
44
|
},
|
|
47
45
|
ai: {
|
|
48
46
|
applicationContext: "This is a test application", // Helps ensure consistent translation generation
|
package/docs/en/autoFill.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-13
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-09-20
|
|
4
4
|
title: Auto Fill
|
|
5
5
|
description: Learn how to use auto fill functionality in Intlayer to automatically populate content based on predefined patterns. Follow this documentation to implement auto fill features efficiently in your project.
|
|
6
6
|
keywords:
|
|
@@ -132,6 +132,8 @@ This will generate two separate files:
|
|
|
132
132
|
- `src/components/example/example.fr.content.json`
|
|
133
133
|
- `src/components/example/example.es.content.json`
|
|
134
134
|
|
|
135
|
+
> In this case, if the object does not contain all locales, Intlayer skip the generation of the remaining locales.
|
|
136
|
+
|
|
135
137
|
## Filter Specific Locale Autofill
|
|
136
138
|
|
|
137
139
|
Using an object for the `autoFill` field allows you to apply filters and generate only specific locale files.
|
|
@@ -157,9 +159,10 @@ You can use variables inside the `autoFill` path to dynamically resolve the targ
|
|
|
157
159
|
**Available variables:**
|
|
158
160
|
|
|
159
161
|
- `{{locale}}` – Locale code (e.g. `fr`, `es`)
|
|
162
|
+
- `{{fileName}}` – File name (e.g. `index`)
|
|
160
163
|
- `{{key}}` – Dictionary key (e.g. `example`)
|
|
161
164
|
|
|
162
|
-
```ts fileName="src/components/example/
|
|
165
|
+
```ts fileName="src/components/example/index.content.ts"
|
|
163
166
|
const exampleContent = {
|
|
164
167
|
key: "example",
|
|
165
168
|
autoFill: "/messages/{{locale}}/{{key}}.content.json",
|
|
@@ -174,8 +177,25 @@ This will generate:
|
|
|
174
177
|
- `/messages/fr/example.content.json`
|
|
175
178
|
- `/messages/es/example.content.json`
|
|
176
179
|
|
|
180
|
+
```ts fileName="src/components/example/index.content.ts"
|
|
181
|
+
const exampleContent = {
|
|
182
|
+
key: "example",
|
|
183
|
+
autoFill: "./{{fileName}}.content.json",
|
|
184
|
+
content: {
|
|
185
|
+
// Your content
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
This will generate:
|
|
191
|
+
|
|
192
|
+
- `./index.content.json`
|
|
193
|
+
- `./index.content.json`
|
|
194
|
+
|
|
177
195
|
## Doc History
|
|
178
196
|
|
|
179
|
-
| Version | Date | Changes
|
|
180
|
-
| ------- | ---------- |
|
|
181
|
-
|
|
|
197
|
+
| Version | Date | Changes |
|
|
198
|
+
| ------- | ---------- | --------------------------- |
|
|
199
|
+
| 6.0.0 | 2025-09-20 | Add global configuration |
|
|
200
|
+
| 6.0.0 | 2025-09-17 | Add `{{fileName}}` variable |
|
|
201
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
package/docs/en/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-09-16
|
|
4
4
|
title: Configuration
|
|
5
5
|
description: Learn how to configure Intlayer for your application. Understand the various settings and options available to customize Intlayer to your needs.
|
|
6
6
|
keywords:
|
|
@@ -46,6 +46,7 @@ const config: IntlayerConfig = {
|
|
|
46
46
|
locales: [Locales.ENGLISH],
|
|
47
47
|
},
|
|
48
48
|
content: {
|
|
49
|
+
autoFill: "./{{fileName}}.content.json",
|
|
49
50
|
contentDir: ["src", "../ui-library"],
|
|
50
51
|
},
|
|
51
52
|
middleware: {
|
|
@@ -134,7 +135,6 @@ Defines settings related to internationalization, including available locales an
|
|
|
134
135
|
#### Properties
|
|
135
136
|
|
|
136
137
|
- **locales**:
|
|
137
|
-
|
|
138
138
|
- _Type_: `string[]`
|
|
139
139
|
- _Default_: `['en']`
|
|
140
140
|
- _Description_: The list of supported locales in the application.
|
|
@@ -148,7 +148,6 @@ Defines settings related to internationalization, including available locales an
|
|
|
148
148
|
- _Note_: If empty, all locales are required in `strict` mode.
|
|
149
149
|
- _Note_: Ensure required locales are also defined in the `locales` field.
|
|
150
150
|
- **strictMode**:
|
|
151
|
-
|
|
152
151
|
- _Type_: `string`
|
|
153
152
|
- _Default_: `inclusive`
|
|
154
153
|
- _Description_: Ensure strong implementations of internationalized content using typescript.
|
|
@@ -157,7 +156,6 @@ Defines settings related to internationalization, including available locales an
|
|
|
157
156
|
- _Note_: If set to "loose", the translation `t` function will accept any existing locale.
|
|
158
157
|
|
|
159
158
|
- **defaultLocale**:
|
|
160
|
-
|
|
161
159
|
- _Type_: `string`
|
|
162
160
|
- _Default_: `'en'`
|
|
163
161
|
- _Description_: The default locale used as a fallback if the requested locale is not found.
|
|
@@ -173,7 +171,6 @@ Defines settings related to the integrated editor, including server port and act
|
|
|
173
171
|
#### Properties
|
|
174
172
|
|
|
175
173
|
- **applicationURL**:
|
|
176
|
-
|
|
177
174
|
- _Type_: `string`
|
|
178
175
|
- _Default_: `http://localhost:3000`
|
|
179
176
|
- _Description_: The URL of the application. Used to restrict the origin of the editor for security reasons.
|
|
@@ -184,13 +181,11 @@ Defines settings related to the integrated editor, including server port and act
|
|
|
184
181
|
- _Note_: The URL of the application. Used to restrict the origin of the editor for security reasons. If set to `'*'`, the editor is accessible from any origin.
|
|
185
182
|
|
|
186
183
|
- **port**:
|
|
187
|
-
|
|
188
184
|
- _Type_: `number`
|
|
189
185
|
- _Default_: `8000`
|
|
190
186
|
- _Description_: The port used by the visual editor server.
|
|
191
187
|
|
|
192
188
|
- **editorURL**:
|
|
193
|
-
|
|
194
189
|
- _Type_: `string`
|
|
195
190
|
- _Default_: `'http://localhost:8000'`
|
|
196
191
|
- _Description_: The URL of the editor server. Used to restrict the origin of the editor for security reasons.
|
|
@@ -200,7 +195,6 @@ Defines settings related to the integrated editor, including server port and act
|
|
|
200
195
|
- _Note_: The URL of the editor server to reach from the application. Used to restrict the origins that can interact with the application for security reasons. If set to `'*'`, the editor is accessible from any origin. Should be set if port is changed, or if the editor is hosted on a different domain.
|
|
201
196
|
|
|
202
197
|
- **cmsURL**:
|
|
203
|
-
|
|
204
198
|
- _Type_: `string`
|
|
205
199
|
- _Default_: `'https://intlayer.org'`
|
|
206
200
|
- _Description_: The URL of the Intlayer CMS.
|
|
@@ -208,14 +202,12 @@ Defines settings related to the integrated editor, including server port and act
|
|
|
208
202
|
- _Note_: The URL of the Intlayer CMS.
|
|
209
203
|
|
|
210
204
|
- **backendURL**:
|
|
211
|
-
|
|
212
205
|
- _Type_: `string`
|
|
213
206
|
- _Default_: `https://back.intlayer.org`
|
|
214
207
|
- _Description_: The URL of the backend server.
|
|
215
208
|
- _Example_: `http://localhost:4000`
|
|
216
209
|
|
|
217
210
|
- **enabled**:
|
|
218
|
-
|
|
219
211
|
- _Type_: `boolean`
|
|
220
212
|
- _Default_: `true`
|
|
221
213
|
- _Description_: Indicates if the application interact with the visual editor.
|
|
@@ -223,7 +215,6 @@ Defines settings related to the integrated editor, including server port and act
|
|
|
223
215
|
- _Note_: If true, the editor will be able to interact with the application. If false, the editor will not be able to interact with the application. In any case, the editor can only be enabled by the visual editor. Disabling the editor for specific environments is a way to enforce the security.
|
|
224
216
|
|
|
225
217
|
- **clientId**:
|
|
226
|
-
|
|
227
218
|
- _Type_: `string` | `undefined`
|
|
228
219
|
- _Default_: `undefined`
|
|
229
220
|
- _Description_: clientId and clientSecret allow the intlayer packages to authenticate with the backend using oAuth2 authentication. An access token is used to authenticate the user related to the project. To get an access token, go to https://intlayer.org/dashboard/project and create an account.
|
|
@@ -231,27 +222,39 @@ Defines settings related to the integrated editor, including server port and act
|
|
|
231
222
|
- _Note_: Important: The clientId and clientSecret should be kept secret and not shared publicly. Please ensure to keep them in a secure location, such as environment variables.
|
|
232
223
|
|
|
233
224
|
- **clientSecret**:
|
|
234
|
-
|
|
235
225
|
- _Type_: `string` | `undefined`
|
|
236
226
|
- _Default_: `undefined`
|
|
237
227
|
- _Description_: clientId and clientSecret allow the intlayer packages to authenticate with the backend using oAuth2 authentication. An access token is used to authenticate the user related to the project. To get an access token, go to https://intlayer.org/dashboard/project and create an account.
|
|
238
228
|
- _Example_: `true`
|
|
239
229
|
- _Note_: Important: The clientId and clientSecret should be kept secret and not shared publicly. Please ensure to keep them in a secure location, such as environment variables.
|
|
240
230
|
|
|
241
|
-
- **
|
|
231
|
+
- **dictionaryPriorityStrategy**:
|
|
232
|
+
- _Type_: `string`
|
|
233
|
+
- _Default_: `'local_first'`
|
|
234
|
+
- _Description_: The strategy to prioritize dictionaries in the case of both local and distant dictionaries being present. If set to `'distant_first'`, the application will prioritize distant dictionaries over local dictionaries. If set to `'local_first'`, the application will prioritize local dictionaries over distant dictionaries.
|
|
235
|
+
- _Example_: `'distant_first'`
|
|
242
236
|
|
|
237
|
+
- **liveSync**:
|
|
243
238
|
- _Type_: `boolean`
|
|
244
239
|
- _Default_: `false`
|
|
245
|
-
- _Description_: Indicates if the application server should hot reload the
|
|
240
|
+
- _Description_: Indicates if the application server should hot reload the content of the application when a change is detected on the CMS / Visual Editor / Backend.
|
|
246
241
|
- _Example_: `true`
|
|
247
242
|
- _Note_: For example, when a new dictionary is added or updated, the application will update the content to display in the page.
|
|
248
|
-
- _Note_:
|
|
243
|
+
- _Note_: Live sync need to externalize the content of the application to another server. That means that it can slightly impact the performance of the application. To limit this, we recommand to host the application and the live sync server on the same machine. Also, the combination of live sync and `optimize` can apply a consequent number of requests to the live sync server. Depending of your infrastructure, we recommand to test both options and their combination.
|
|
249
244
|
|
|
250
|
-
- **
|
|
245
|
+
- **liveSyncPort**:
|
|
246
|
+
- _Type_: `number`
|
|
247
|
+
- _Default_: `4000`
|
|
248
|
+
- _Description_: The port of the live sync server.
|
|
249
|
+
- _Example_: `4000`
|
|
250
|
+
- _Note_: The port of the live sync server.
|
|
251
|
+
|
|
252
|
+
- **liveSyncURL**:
|
|
251
253
|
- _Type_: `string`
|
|
252
|
-
- _Default_: `'
|
|
253
|
-
- _Description_: The
|
|
254
|
-
- _Example_: `'
|
|
254
|
+
- _Default_: `'http://localhost:{liveSyncPort}'`
|
|
255
|
+
- _Description_: The URL of the live sync server.
|
|
256
|
+
- _Example_: `'https://example.com'`
|
|
257
|
+
- _Note_: Point to localhost by default but can be changed to any URL in the case of a remote live sync server.
|
|
255
258
|
|
|
256
259
|
### Middleware Configuration
|
|
257
260
|
|
|
@@ -260,7 +263,6 @@ Settings that control middleware behavior, including how the application handles
|
|
|
260
263
|
#### Properties
|
|
261
264
|
|
|
262
265
|
- **headerName**:
|
|
263
|
-
|
|
264
266
|
- _Type_: `string`
|
|
265
267
|
- _Default_: `'x-intlayer-locale'`
|
|
266
268
|
- _Description_: The name of the HTTP header used to determine the locale.
|
|
@@ -268,7 +270,6 @@ Settings that control middleware behavior, including how the application handles
|
|
|
268
270
|
- _Note_: This is useful for API-based locale determination.
|
|
269
271
|
|
|
270
272
|
- **cookieName**:
|
|
271
|
-
|
|
272
273
|
- _Type_: `string`
|
|
273
274
|
- _Default_: `'intlayer-locale'`
|
|
274
275
|
- _Description_: The name of the cookie used to store the locale.
|
|
@@ -276,7 +277,6 @@ Settings that control middleware behavior, including how the application handles
|
|
|
276
277
|
- _Note_: Used to persist the locale across sessions.
|
|
277
278
|
|
|
278
279
|
- **prefixDefault**:
|
|
279
|
-
|
|
280
280
|
- _Type_: `boolean`
|
|
281
281
|
- _Default_: `false`
|
|
282
282
|
- _Description_: Whether to include the default locale in the URL.
|
|
@@ -286,7 +286,6 @@ Settings that control middleware behavior, including how the application handles
|
|
|
286
286
|
- If `false` and `defaultLocale = 'en'`: path = `/dashboard` or `/fr/dashboard`
|
|
287
287
|
|
|
288
288
|
- **basePath**:
|
|
289
|
-
|
|
290
289
|
- _Type_: `string`
|
|
291
290
|
- _Default_: `''`
|
|
292
291
|
- _Description_: The base path for the application URLs.
|
|
@@ -298,7 +297,6 @@ Settings that control middleware behavior, including how the application handles
|
|
|
298
297
|
- If the base path is not set, the URL will be `https://example.com/en`
|
|
299
298
|
|
|
300
299
|
- **serverSetCookie**:
|
|
301
|
-
|
|
302
300
|
- _Type_: `string`
|
|
303
301
|
- _Default_: `'always'`
|
|
304
302
|
- _Description_: Rule for setting the locale cookie on the server.
|
|
@@ -307,7 +305,6 @@ Settings that control middleware behavior, including how the application handles
|
|
|
307
305
|
- _Note_: Controls whether the locale cookie is set on every request or never.
|
|
308
306
|
|
|
309
307
|
- **noPrefix**:
|
|
310
|
-
|
|
311
308
|
- _Type_: `boolean`
|
|
312
309
|
- _Default_: `false`
|
|
313
310
|
- _Description_: Whether to omit the locale prefix from URLs.
|
|
@@ -320,7 +317,6 @@ Settings that control middleware behavior, including how the application handles
|
|
|
320
317
|
- If `noPrefix = true`: URL will be `https://example.com`
|
|
321
318
|
|
|
322
319
|
- **detectLocaleOnPrefetchNoPrefix**:
|
|
323
|
-
|
|
324
320
|
- _Type_: `boolean`
|
|
325
321
|
- _Default_: `false`
|
|
326
322
|
- _Description_: Controls whether locale detection occurs during Next.js prefetch requests.
|
|
@@ -352,14 +348,24 @@ Settings related to content handling within the application, including directory
|
|
|
352
348
|
|
|
353
349
|
#### Properties
|
|
354
350
|
|
|
355
|
-
- **
|
|
351
|
+
- **autoFill**:
|
|
352
|
+
- _Type_: `boolean | string | { [key in Locales]?: string }`
|
|
353
|
+
- _Default_: `undefined`
|
|
354
|
+
- _Description_: Indicate how the content should be automatically filled using AI. Can be declared globally in the `intlayer.config.ts` file.
|
|
355
|
+
- _Example_: true
|
|
356
|
+
- _Example_: `'./{{fileName}}.content.json'`
|
|
357
|
+
- _Example_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
|
|
358
|
+
- _Note_: The auto fill configuration. It can be:
|
|
359
|
+
- boolean: Enable auto fill for all locales
|
|
360
|
+
- string: Path to a single file or template with variables
|
|
361
|
+
- object: Per-locale file paths
|
|
356
362
|
|
|
363
|
+
- **watch**:
|
|
357
364
|
- _Type_: `boolean`
|
|
358
365
|
- _Default_: `process.env.NODE_ENV === 'development'`
|
|
359
366
|
- _Description_: Indicates if Intlayer should watch for changes in the content declaration files in the app to rebuild the related dictionaries.
|
|
360
367
|
|
|
361
368
|
- **fileExtensions**:
|
|
362
|
-
|
|
363
369
|
- _Type_: `string[]`
|
|
364
370
|
- _Default_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
365
371
|
- _Description_: File extensions to look for when building dictionaries.
|
|
@@ -367,7 +373,6 @@ Settings related to content handling within the application, including directory
|
|
|
367
373
|
- _Note_: Customizing file extensions can help avoid conflicts.
|
|
368
374
|
|
|
369
375
|
- **baseDir**:
|
|
370
|
-
|
|
371
376
|
- _Type_: `string`
|
|
372
377
|
- _Default_: `process.cwd()`
|
|
373
378
|
- _Description_: The base directory for the project.
|
|
@@ -375,26 +380,22 @@ Settings related to content handling within the application, including directory
|
|
|
375
380
|
- _Note_: This is used to resolve all Intlayer-related directories.
|
|
376
381
|
|
|
377
382
|
- **dictionaryOutput**:
|
|
378
|
-
|
|
379
383
|
- _Type_: `string[]`
|
|
380
384
|
- _Default_: `['intlayer']`
|
|
381
385
|
- _Description_: The type of dictionary output to use, e.g., `'intlayer'` or `'i18next'`.
|
|
382
386
|
|
|
383
387
|
- **contentDir**:
|
|
384
|
-
|
|
385
388
|
- _Type_: `string[]`
|
|
386
389
|
- _Default_: `['.']`
|
|
387
390
|
- _Example_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
|
|
388
391
|
- _Description_: The directory path where content is stored.
|
|
389
392
|
|
|
390
393
|
- **dictionariesDir**:
|
|
391
|
-
|
|
392
394
|
- _Type_: `string`
|
|
393
395
|
- _Default_: `'.intlayer/dictionaries'`
|
|
394
396
|
- _Description_: The directory path for storing intermediate or output results.
|
|
395
397
|
|
|
396
398
|
- **moduleAugmentationDir**:
|
|
397
|
-
|
|
398
399
|
- _Type_: `string`
|
|
399
400
|
- _Default_: `'.intlayer/types'`
|
|
400
401
|
- _Description_: Directory for module augmentation, allowing better IDE suggestions and type checking.
|
|
@@ -402,21 +403,18 @@ Settings related to content handling within the application, including directory
|
|
|
402
403
|
- _Note_: Be sure to include this in `tsconfig.json`.
|
|
403
404
|
|
|
404
405
|
- **unmergedDictionariesDir**:
|
|
405
|
-
|
|
406
406
|
- _Type_: `string`
|
|
407
407
|
- _Default_: `'.intlayer/unmerged_dictionary'`
|
|
408
408
|
- _Description_: The directory for storing unmerged dictionaries.
|
|
409
409
|
- _Example_: `'translations'`
|
|
410
410
|
|
|
411
411
|
- **dictionariesDir**:
|
|
412
|
-
|
|
413
412
|
- _Type_: `string`
|
|
414
413
|
- _Default_: `'.intlayer/dictionary'`
|
|
415
414
|
- _Description_: The directory for storing localization dictionaries.
|
|
416
415
|
- _Example_: `'translations'`
|
|
417
416
|
|
|
418
417
|
- **i18nextResourcesDir**:
|
|
419
|
-
|
|
420
418
|
- _Type_: `string`
|
|
421
419
|
- _Default_: `'i18next_dictionary'`
|
|
422
420
|
- _Description_: The directory for storing i18n dictionaries.
|
|
@@ -424,14 +422,12 @@ Settings related to content handling within the application, including directory
|
|
|
424
422
|
- _Note_: Ensure this directory is configured for the i18next output type.
|
|
425
423
|
|
|
426
424
|
- **typesDir**:
|
|
427
|
-
|
|
428
425
|
- _Type_: `string`
|
|
429
426
|
- _Default_: `'types'`
|
|
430
427
|
- _Description_: The directory for storing dictionary types.
|
|
431
428
|
- _Example_: `'intlayer-types'`
|
|
432
429
|
|
|
433
430
|
- **mainDir**:
|
|
434
|
-
|
|
435
431
|
- _Type_: `string`
|
|
436
432
|
- _Default_: `'main'`
|
|
437
433
|
- _Description_: The directory where main application files are stored.
|
|
@@ -450,7 +446,6 @@ Settings that control the logger, including the prefix to use.
|
|
|
450
446
|
#### Properties
|
|
451
447
|
|
|
452
448
|
- **mode**:
|
|
453
|
-
|
|
454
449
|
- _Type_: `string`
|
|
455
450
|
- _Default_: `default`
|
|
456
451
|
- _Description_: Indicates the mode of the logger.
|
|
@@ -459,7 +454,6 @@ Settings that control the logger, including the prefix to use.
|
|
|
459
454
|
- _Note_: The mode of the logger. Verbose mode will log more information, but can be used for debugging purposes. Disabled mode will disable the logger.
|
|
460
455
|
|
|
461
456
|
- **prefix**:
|
|
462
|
-
|
|
463
457
|
- _Type_: `string`
|
|
464
458
|
- _Default_: `'[intlayer] '`
|
|
465
459
|
- _Description_: The prefix of the logger.
|
|
@@ -487,7 +481,6 @@ Intlayer supports multiple AI providers for enhanced flexibility and choice. Cur
|
|
|
487
481
|
#### Properties
|
|
488
482
|
|
|
489
483
|
- **provider**:
|
|
490
|
-
|
|
491
484
|
- _Type_: `string`
|
|
492
485
|
- _Default_: `'openai'`
|
|
493
486
|
- _Description_: The provider to use for the AI features of Intlayer.
|
|
@@ -496,7 +489,6 @@ Intlayer supports multiple AI providers for enhanced flexibility and choice. Cur
|
|
|
496
489
|
- _Note_: Different providers may require different API keys and have different pricing models.
|
|
497
490
|
|
|
498
491
|
- **model**:
|
|
499
|
-
|
|
500
492
|
- _Type_: `string`
|
|
501
493
|
- _Default_: None
|
|
502
494
|
- _Description_: The model to use for the AI features of Intlayer.
|
|
@@ -504,7 +496,6 @@ Intlayer supports multiple AI providers for enhanced flexibility and choice. Cur
|
|
|
504
496
|
- _Note_: The specific model to use varies by provider.
|
|
505
497
|
|
|
506
498
|
- **temperature**:
|
|
507
|
-
|
|
508
499
|
- _Type_: `number`
|
|
509
500
|
- _Default_: None
|
|
510
501
|
- _Description_: The temperature controls the randomness of the AI's responses.
|
|
@@ -512,7 +503,6 @@ Intlayer supports multiple AI providers for enhanced flexibility and choice. Cur
|
|
|
512
503
|
- _Note_: A higher temperature will make the AI more creative and less predictable.
|
|
513
504
|
|
|
514
505
|
- **apiKey**:
|
|
515
|
-
|
|
516
506
|
- _Type_: `string`
|
|
517
507
|
- _Default_: None
|
|
518
508
|
- _Description_: Your API key for the selected provider.
|
|
@@ -537,7 +527,6 @@ Build options apply to the `@intlayer/babel` and `@intlayer/swc` plugins.
|
|
|
537
527
|
#### Properties
|
|
538
528
|
|
|
539
529
|
- **optimize**:
|
|
540
|
-
|
|
541
530
|
- _Type_: `boolean`
|
|
542
531
|
- _Default_: `process.env.NODE_ENV === 'production'`
|
|
543
532
|
- _Description_: Controls whether the build should be optimized.
|
|
@@ -548,21 +537,21 @@ Build options apply to the `@intlayer/babel` and `@intlayer/swc` plugins.
|
|
|
548
537
|
- _Note_: Ensure all keys are declared statically in the `useIntlayer` calls. e.g. `useIntlayer('navbar')`.
|
|
549
538
|
|
|
550
539
|
- **importMode**:
|
|
551
|
-
|
|
552
|
-
- _Type_: `'static' | 'dynamic' | 'async'`
|
|
540
|
+
- _Type_: `'static' | 'dynamic' | 'live'`
|
|
553
541
|
- _Default_: `'static'`
|
|
554
542
|
- _Description_: Controls how dictionaries are imported.
|
|
555
543
|
- _Example_: `'dynamic'`
|
|
556
544
|
- _Note_: Available modes:
|
|
557
545
|
- "static": Dictionaries are imported statically. Replaces `useIntlayer` with `useDictionary`.
|
|
558
546
|
- "dynamic": Dictionaries are imported dynamically using Suspense. Replaces `useIntlayer` with `useDictionaryDynamic`.
|
|
559
|
-
- "
|
|
547
|
+
- "live": Dictionaries are fetched dynamically using the live sync API. Replaces `useIntlayer` with `useDictionaryFetch`.
|
|
560
548
|
- _Note_: Dynamic imports rely on Suspense and may slightly impact rendering performance.
|
|
561
549
|
- _Note_: If disabled all locales will be loaded at once, even if they are not used.
|
|
562
550
|
- _Note_: This option relies on the `@intlayer/babel` and `@intlayer/swc` plugins.
|
|
563
551
|
- _Note_: Ensure all keys are declared statically in the `useIntlayer` calls. e.g. `useIntlayer('navbar')`.
|
|
564
552
|
- _Note_: This option will be ignored if `optimize` is disabled.
|
|
565
|
-
- _Note_:
|
|
553
|
+
- _Note_: If set to "live", only the dictionaries that are including remote content, and set as "live" flags will be transformed as live mode. Others will be imported dynamically as "dynamic" mode to optimize the number of fetch queries, and load performance.
|
|
554
|
+
- _Note_: Live mode will use the live sync API to fetch the dictionaries. If the API call fails, the dictionaries will be imported dynamically as "dynamic" mode.
|
|
566
555
|
- _Note_: This option will not impact the `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` and `useDictionaryDynamic` functions.
|
|
567
556
|
|
|
568
557
|
- **traversePattern**:
|
|
@@ -576,8 +565,10 @@ Build options apply to the `@intlayer/babel` and `@intlayer/swc` plugins.
|
|
|
576
565
|
|
|
577
566
|
## Doc History
|
|
578
567
|
|
|
579
|
-
| Version | Date | Changes
|
|
580
|
-
| ------- | ---------- |
|
|
581
|
-
|
|
|
582
|
-
|
|
|
583
|
-
| 5.
|
|
568
|
+
| Version | Date | Changes |
|
|
569
|
+
| ------- | ---------- | --------------------------------------------------------------------------------------- |
|
|
570
|
+
| 6.0.0 | 2025-09-16 | Add `live` import mode |
|
|
571
|
+
| 6.0.0 | 2025-09-04 | Replace `hotReload` field by `liveSync` and add `liveSyncPort` and `liveSyncURL` fields |
|
|
572
|
+
| 5.6.1 | 2025-07-25 | Replace `activateDynamicImport` with `importMode` option |
|
|
573
|
+
| 5.6.0 | 2025-07-13 | Change default contentDir from `['src']` to `['.']` |
|
|
574
|
+
| 5.5.11 | 2025-06-29 | Add `docs` commands |
|