@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
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-03-01
|
|
3
|
+
updatedAt: 2025-09-20
|
|
4
|
+
title: Testing your content
|
|
5
|
+
description: Discover how to test your content with Intlayer.
|
|
6
|
+
keywords:
|
|
7
|
+
- Testing
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internationalisation
|
|
10
|
+
- CMS
|
|
11
|
+
- Content Management System
|
|
12
|
+
- Visual Editor
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- testing
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Testing your content
|
|
19
|
+
|
|
20
|
+
This guide shows how to automatically verify your dictionaries are complete, catch missing translations before shipping, and test localised UI in your app.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## What you can test
|
|
25
|
+
|
|
26
|
+
- **Missing translations**: fail CI if any required locales are missing for any dictionary.
|
|
27
|
+
- **Localised UI rendering**: render components with a specific locale provider and assert on visible text/attributes.
|
|
28
|
+
- **Build-time audits**: run a quick audit locally via CLI.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Quick start: audit via CLI
|
|
33
|
+
|
|
34
|
+
Run the audit from your project root:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx intlayer content test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Useful flags:
|
|
41
|
+
|
|
42
|
+
- `--env-file [path]`: load environment variables from a file.
|
|
43
|
+
- `-e, --env [name]`: select an environment profile.
|
|
44
|
+
- `--base-dir [path]`: set the app base directory for resolution.
|
|
45
|
+
- `--verbose`: show verbose logs.
|
|
46
|
+
- `--prefix [label]`: prefix log lines.
|
|
47
|
+
|
|
48
|
+
Note: the CLI prints a detailed report but does not exit with a non-zero code on failures. For CI gating, add a unit test (below) that asserts zero missing required locales.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Programmatic test (Vitest/Jest)
|
|
53
|
+
|
|
54
|
+
Use the Intlayer CLI API to assert there are no missing translations for your required locales.
|
|
55
|
+
|
|
56
|
+
```ts file=i18n.test.ts
|
|
57
|
+
/* @vitest-environment node */
|
|
58
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
59
|
+
import { describe, expect, it } from "vitest";
|
|
60
|
+
|
|
61
|
+
describe("translations", () => {
|
|
62
|
+
it("has no missing required locales", () => {
|
|
63
|
+
const result = listMissingTranslations();
|
|
64
|
+
|
|
65
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
66
|
+
// Useful when the test fails locally or in CI
|
|
67
|
+
console.log(result.missingTranslations);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Jest equivalent:
|
|
76
|
+
|
|
77
|
+
```ts file=i18n.test.ts
|
|
78
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
79
|
+
|
|
80
|
+
test("has no missing required locales", () => {
|
|
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
|
+
How it works:
|
|
93
|
+
|
|
94
|
+
- Intlayer reads your configuration (locales, requiredLocales) and declared dictionaries, then reports:
|
|
95
|
+
- `missingTranslations`: per‑key, which locales are missing and from which file.
|
|
96
|
+
- `missingLocales`: union of all missing locales.
|
|
97
|
+
- `missingRequiredLocales`: subset limited to `requiredLocales` (or all locales if `requiredLocales` is not set).
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Testing localised UI (React / Next.js)
|
|
102
|
+
|
|
103
|
+
Render components under an Intlayer provider and assert on visible content.
|
|
104
|
+
|
|
105
|
+
React example (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 localised title in English", () => {
|
|
113
|
+
render(
|
|
114
|
+
<IntlayerProvider locale="en-US">
|
|
115
|
+
<MyComponent />
|
|
116
|
+
</IntlayerProvider>
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
expect(screen.getByText("Expected English title")).toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Next.js (App Router) example: use the 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("renders localised heading in French", () => {
|
|
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
|
+
Tips:
|
|
143
|
+
|
|
144
|
+
- When you need raw string values for attributes (e.g., `aria-label`), access the `.value` field returned by `useIntlayer` in React.
|
|
145
|
+
- Keep dictionaries colocated with components for easier unit testing and cleanup.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Continuous Integration
|
|
150
|
+
|
|
151
|
+
Add a test that fails the build when required translations are missing.
|
|
152
|
+
|
|
153
|
+
`package.json`:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"scripts": {
|
|
158
|
+
"test:i18n": "vitest run -c"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
GitHub Actions example:
|
|
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: run the CLI audit for a human-readable summary alongside tests:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
npx intlayer content test --verbose
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Troubleshooting
|
|
189
|
+
|
|
190
|
+
- Ensure your Intlayer configuration defines `locales` and (optionally) `requiredLocales`.
|
|
191
|
+
- If your app uses dynamic or remote dictionaries, run tests in an environment where the dictionaries are available.
|
|
192
|
+
- For mixed monorepos, use `--base-dir` to point the CLI at the correct application root.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Doc History
|
|
197
|
+
|
|
198
|
+
| Version | Date | Changes |
|
|
199
|
+
| ------- | ---------- | ----------------------- |
|
|
200
|
+
| 6.0.0 | 2025-09-20 | Introduction of testing |
|
package/docs/es/autoFill.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-13
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title:
|
|
5
|
-
description: Aprende
|
|
3
|
+
updatedAt: 2025-09-20
|
|
4
|
+
title: Relleno Automático
|
|
5
|
+
description: Aprende a usar la funcionalidad de relleno automático en Intlayer para poblar contenido automáticamente basado en patrones predefinidos. Sigue esta documentación para implementar funciones de relleno automático de manera eficiente en tu proyecto.
|
|
6
6
|
keywords:
|
|
7
|
-
-
|
|
7
|
+
- Relleno Automático
|
|
8
8
|
- Automatización de Contenido
|
|
9
9
|
- Contenido Dinámico
|
|
10
10
|
- Intlayer
|
|
@@ -17,28 +17,28 @@ slugs:
|
|
|
17
17
|
- auto-fill
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
# Archivos de Declaración de Contenido con
|
|
20
|
+
# Traducciones de Archivos de Declaración de Contenido con Relleno Automático
|
|
21
21
|
|
|
22
|
-
**Los archivos de declaración de contenido con
|
|
23
|
-
|
|
22
|
+
**Los archivos de declaración de contenido con relleno automático** son una forma de acelerar tu flujo de trabajo de desarrollo.
|
|
23
|
+
|
|
24
|
+
El mecanismo de relleno automático funciona mediante una relación _maestro-esclavo_ entre archivos de declaración de contenido. Cuando el archivo principal (maestro) se actualiza, Intlayer aplicará automáticamente esos cambios a los archivos de declaración derivados (rellenados automáticamente).
|
|
24
25
|
|
|
25
26
|
```ts fileName="src/components/example/example.content.ts"
|
|
26
27
|
import { Locales, type Dictionary } from "intlayer";
|
|
27
28
|
|
|
28
|
-
// Contenido de ejemplo con autocompletar configurado
|
|
29
29
|
const exampleContent = {
|
|
30
30
|
key: "example",
|
|
31
31
|
locale: Locales.ENGLISH,
|
|
32
32
|
autoFill: "./example.content.json",
|
|
33
33
|
content: {
|
|
34
|
-
contentExample: "
|
|
34
|
+
contentExample: "Este es un ejemplo de contenido",
|
|
35
35
|
},
|
|
36
36
|
} satisfies Dictionary;
|
|
37
37
|
|
|
38
38
|
export default exampleContent;
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Aquí
|
|
41
|
+
Aquí hay un [archivo de declaración de contenido por idioma](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/per_locale_file.md) que usa la instrucción `autoFill`.
|
|
42
42
|
|
|
43
43
|
Luego, cuando ejecutes el siguiente comando:
|
|
44
44
|
|
|
@@ -63,11 +63,11 @@ Intlayer generará automáticamente el archivo de declaración derivado en `src/
|
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
Después, ambos archivos de declaración se fusionarán en un
|
|
66
|
+
Después, ambos archivos de declaración se fusionarán en un único diccionario, accesible mediante el hook estándar `useIntlayer("example")` (react) / composable (vue).
|
|
67
67
|
|
|
68
|
-
## Formato del Archivo
|
|
68
|
+
## Formato del Archivo Rellenado Automáticamente
|
|
69
69
|
|
|
70
|
-
El formato recomendado para los archivos de declaración
|
|
70
|
+
El formato recomendado para los archivos de declaración autocompletados es **JSON**, lo que ayuda a evitar restricciones de formato. Sin embargo, Intlayer también soporta `.ts`, `.js`, `.mjs`, `.cjs` y otros formatos.
|
|
71
71
|
|
|
72
72
|
```ts fileName="src/components/example/example.content.ts"
|
|
73
73
|
const exampleContent = {
|
|
@@ -87,8 +87,8 @@ src/components/example/example.filled.content.ts
|
|
|
87
87
|
|
|
88
88
|
> La generación de archivos `.js`, `.ts` y similares funciona de la siguiente manera:
|
|
89
89
|
>
|
|
90
|
-
> - Si el archivo ya existe, Intlayer lo analizará usando el AST (Árbol de Sintaxis Abstracta) para localizar cada campo e insertar las traducciones
|
|
91
|
-
> - Si el archivo no existe, Intlayer lo generará usando la plantilla de archivo de declaración de contenido
|
|
90
|
+
> - Si el archivo ya existe, Intlayer lo analizará usando el AST (Árbol de Sintaxis Abstracta) para localizar cada campo e insertar las traducciones faltantes.
|
|
91
|
+
> - Si el archivo no existe, Intlayer lo generará usando la plantilla predeterminada de archivo de declaración de contenido.
|
|
92
92
|
|
|
93
93
|
## Rutas Absolutas
|
|
94
94
|
|
|
@@ -110,9 +110,9 @@ Esto generará el archivo en:
|
|
|
110
110
|
/messages/example.content.json
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
##
|
|
113
|
+
## Autogenerar Archivos de Declaración de Contenido Por Localidad
|
|
114
114
|
|
|
115
|
-
El campo `autoFill` también soporta la generación de archivos de declaración de contenido **por
|
|
115
|
+
El campo `autoFill` también soporta la generación de archivos de declaración de contenido **por localidad**.
|
|
116
116
|
|
|
117
117
|
```ts fileName="src/components/example/example.content.ts"
|
|
118
118
|
const exampleContent = {
|
|
@@ -132,9 +132,11 @@ Esto generará dos archivos separados:
|
|
|
132
132
|
- `src/components/example/example.fr.content.json`
|
|
133
133
|
- `src/components/example/example.es.content.json`
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
> En este caso, si el objeto no contiene todos los locales, Intlayer omitirá la generación de los locales restantes.
|
|
136
|
+
|
|
137
|
+
## Filtrar Autocompletado para Locales Específicos
|
|
136
138
|
|
|
137
|
-
Usar un objeto para el campo `autoFill` te permite aplicar filtros y generar solo archivos para
|
|
139
|
+
Usar un objeto para el campo `autoFill` te permite aplicar filtros y generar solo archivos para locales específicos.
|
|
138
140
|
|
|
139
141
|
```ts fileName="src/components/example/example.content.ts"
|
|
140
142
|
const exampleContent = {
|
|
@@ -150,16 +152,17 @@ const exampleContent = {
|
|
|
150
152
|
|
|
151
153
|
Esto solo generará el archivo de traducción en francés.
|
|
152
154
|
|
|
153
|
-
## Variables
|
|
155
|
+
## Variables de Ruta
|
|
154
156
|
|
|
155
157
|
Puedes usar variables dentro de la ruta `autoFill` para resolver dinámicamente las rutas destino de los archivos generados.
|
|
156
158
|
|
|
157
159
|
**Variables disponibles:**
|
|
158
160
|
|
|
159
|
-
- `{{locale}}` – Código de
|
|
161
|
+
- `{{locale}}` – Código de la localidad (por ejemplo, `fr`, `es`)
|
|
162
|
+
- `{{fileName}}` – Nombre del archivo (por ejemplo, `index`)
|
|
160
163
|
- `{{key}}` – Clave del diccionario (por ejemplo, `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,6 +177,25 @@ Esto generará:
|
|
|
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
|
+
// Tu contenido
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Esto generará:
|
|
191
|
+
|
|
192
|
+
- `./index.content.json`
|
|
193
|
+
- `./index.content.json`
|
|
194
|
+
|
|
177
195
|
## Historial de Documentación
|
|
178
196
|
|
|
179
|
-
|
|
197
|
+
| Versión | Fecha | Cambios |
|
|
198
|
+
| ------- | ---------- | ------------------------------ |
|
|
199
|
+
| 6.0.0 | 2025-09-20 | Añadir configuración global |
|
|
200
|
+
| 6.0.0 | 2025-09-17 | Añadir variable `{{fileName}}` |
|
|
201
|
+
| 5.5.10 | 2025-06-29 | Historial inicial |
|