@intlayer/docs 5.8.1-canary.0 → 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 +13 -13
- 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: Testando seu conteúdo
|
|
5
|
+
description: Descubra como testar seu conteúdo com Intlayer.
|
|
6
|
+
keywords:
|
|
7
|
+
- Testes
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internacionalização
|
|
10
|
+
- CMS
|
|
11
|
+
- Sistema de Gestão de Conteúdo
|
|
12
|
+
- Editor Visual
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- testing
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Testando seu conteúdo
|
|
19
|
+
|
|
20
|
+
Este guia mostra como verificar automaticamente se seus dicionários estão completos, detectar traduções faltantes antes do lançamento e testar a interface localizada em seu aplicativo.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## O que você pode testar
|
|
25
|
+
|
|
26
|
+
- **Traduções faltantes**: falhar no CI se algum idioma obrigatório estiver faltando em qualquer dicionário.
|
|
27
|
+
- **Renderização da interface localizada**: renderizar componentes com um provedor de idioma específico e verificar textos/atributos visíveis.
|
|
28
|
+
- **Auditorias em tempo de build**: executar uma auditoria rápida localmente via CLI.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Início rápido: auditoria via CLI
|
|
33
|
+
|
|
34
|
+
Execute a auditoria a partir da raiz do seu projeto:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx intlayer content test
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Flags úteis:
|
|
41
|
+
|
|
42
|
+
- `--env-file [caminho]`: carrega variáveis de ambiente a partir de um arquivo.
|
|
43
|
+
- `-e, --env [nome]`: seleciona um perfil de ambiente.
|
|
44
|
+
- `--base-dir [caminho]`: define o diretório base do app para resolução.
|
|
45
|
+
- `--verbose`: exibe logs detalhados.
|
|
46
|
+
- `--prefix [rótulo]`: prefixa as linhas de log.
|
|
47
|
+
|
|
48
|
+
Nota: o CLI imprime um relatório detalhado, mas não retorna código de erro em caso de falhas. Para controle em CI, adicione um teste unitário (abaixo) que assegure que não há locais obrigatórios faltando.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Teste programático (Vitest/Jest)
|
|
53
|
+
|
|
54
|
+
Use a API do CLI do Intlayer para garantir que não há traduções faltando para os locais obrigatórios.
|
|
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("traduções", () => {
|
|
62
|
+
it("não possui locais obrigatórios faltando", () => {
|
|
63
|
+
const result = listMissingTranslations();
|
|
64
|
+
|
|
65
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
66
|
+
// Útil quando o teste falha localmente ou no CI
|
|
67
|
+
console.log(result.missingTranslations);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Equivalente em Jest:
|
|
76
|
+
|
|
77
|
+
```ts file=i18n.test.ts
|
|
78
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
79
|
+
|
|
80
|
+
test("não possui locais obrigatórios faltando", () => {
|
|
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
|
+
Como funciona:
|
|
93
|
+
|
|
94
|
+
- O Intlayer lê sua configuração (locales, requiredLocales) e os dicionários declarados, então reporta:
|
|
95
|
+
- `missingTranslations`: por chave, quais locais estão faltando e de qual arquivo.
|
|
96
|
+
- `missingLocales`: união de todos os locais faltantes.
|
|
97
|
+
- `missingRequiredLocales`: subconjunto limitado a `requiredLocales` (ou todos os locais se `requiredLocales` não estiver definido).
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Testando UI localizada (React / Next.js)
|
|
102
|
+
|
|
103
|
+
Renderize componentes dentro de um provedor Intlayer e faça asserções no conteúdo visível.
|
|
104
|
+
|
|
105
|
+
Exemplo React (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("Título esperado em inglês")).toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Exemplo Next.js (App Router): use o wrapper do framework:
|
|
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("renderiza título localizado em francês", () => {
|
|
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
|
+
Dicas:
|
|
143
|
+
|
|
144
|
+
- Quando precisar dos valores brutos das strings para atributos (ex.: `aria-label`), acesse o campo `.value` retornado por `useIntlayer` no React.
|
|
145
|
+
- Mantenha os dicionários localizados junto com os componentes para facilitar os testes unitários e a limpeza.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Integração Contínua
|
|
150
|
+
|
|
151
|
+
Adicione um teste que falhe a build quando traduções obrigatórias estiverem faltando.
|
|
152
|
+
|
|
153
|
+
`package.json`:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"scripts": {
|
|
158
|
+
"test:i18n": "vitest run -c"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Exemplo GitHub Actions:
|
|
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
|
+
Opcional: execute a auditoria CLI para um resumo legível por humanos junto com os testes:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
npx intlayer content test --verbose
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Solução de Problemas
|
|
189
|
+
|
|
190
|
+
- Certifique-se de que sua configuração do Intlayer define `locales` e (opcionalmente) `requiredLocales`.
|
|
191
|
+
- Se seu aplicativo usa dicionários dinâmicos ou remotos, execute os testes em um ambiente onde os dicionários estejam disponíveis.
|
|
192
|
+
- Para monorepos mistos, use `--base-dir` para apontar o CLI para a raiz correta da aplicação.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Histórico do Documento
|
|
197
|
+
|
|
198
|
+
| Versão | Data | Alterações |
|
|
199
|
+
| ------ | ---------- | --------------------- |
|
|
200
|
+
| 6.0.0 | 2025-09-20 | Introdução dos testes |
|
package/docs/ru/autoFill.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-13
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-09-20
|
|
4
4
|
title: Автозаполнение
|
|
5
|
-
description: Узнайте, как использовать функцию автозаполнения в Intlayer для автоматического заполнения контента на основе предопределённых шаблонов. Следуйте этой документации, чтобы эффективно
|
|
5
|
+
description: Узнайте, как использовать функцию автозаполнения в Intlayer для автоматического заполнения контента на основе предопределённых шаблонов. Следуйте этой документации, чтобы эффективно внедрить функции автозаполнения в вашем проекте.
|
|
6
6
|
keywords:
|
|
7
7
|
- Автозаполнение
|
|
8
8
|
- Автоматизация контента
|
|
@@ -17,28 +17,28 @@ slugs:
|
|
|
17
17
|
- auto-fill
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
#
|
|
20
|
+
# Переводы файлов декларации автозаполнения контента
|
|
21
21
|
|
|
22
|
-
**Файлы декларации
|
|
23
|
-
|
|
22
|
+
**Файлы декларации автозаполнения контента** — это способ ускорить ваш процесс разработки.
|
|
23
|
+
|
|
24
|
+
Механизм автозаполнения работает через _мастер-слейв_ отношения между файлами декларации контента. Когда основной (мастер) файл обновляется, Intlayer автоматически применяет эти изменения к производным (автозаполненным) файлам декларации.
|
|
24
25
|
|
|
25
26
|
```ts fileName="src/components/example/example.content.ts"
|
|
26
27
|
import { Locales, type Dictionary } from "intlayer";
|
|
27
28
|
|
|
28
|
-
// Основной файл декларации контента с автозаполнением
|
|
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: "Это пример контента", // пример контента
|
|
35
35
|
},
|
|
36
36
|
} satisfies Dictionary;
|
|
37
37
|
|
|
38
38
|
export default exampleContent;
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Вот [файл декларации контента для каждого
|
|
41
|
+
Вот [файл декларации контента для каждого локаля](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/per_locale_file.md), использующий инструкцию `autoFill`.
|
|
42
42
|
|
|
43
43
|
Затем, когда вы выполните следующую команду:
|
|
44
44
|
|
|
@@ -46,7 +46,7 @@ export default exampleContent;
|
|
|
46
46
|
npx intlayer fill --file 'src/components/example/example.content.ts'
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
Intlayer автоматически сгенерирует производный файл декларации по пути `src/components/example/example.content.json`,
|
|
49
|
+
Intlayer автоматически сгенерирует производный файл декларации по пути `src/components/example/example.content.json`, заполняя все локали, которые ещё не объявлены в основном файле.
|
|
50
50
|
|
|
51
51
|
```json5 fileName="src/components/example/example.content.json"
|
|
52
52
|
{
|
|
@@ -63,23 +63,23 @@ Intlayer автоматически сгенерирует производны
|
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
После этого оба файла
|
|
66
|
+
После этого оба файла деклараций будут объединены в один словарь, доступный через стандартный хук `useIntlayer("example")` (react) / композицию (vue).
|
|
67
67
|
|
|
68
|
-
## Формат файла
|
|
68
|
+
## Формат автозаполненного файла
|
|
69
69
|
|
|
70
|
-
Рекомендуемый формат для автоматически заполняемых файлов деклараций
|
|
70
|
+
Рекомендуемый формат для автоматически заполняемых файлов деклараций — **JSON**, который помогает избежать ограничений форматирования. Однако Intlayer также поддерживает форматы `.ts`, `.js`, `.mjs`, `.cjs` и другие.
|
|
71
71
|
|
|
72
72
|
```ts fileName="src/components/example/example.content.ts"
|
|
73
73
|
const exampleContent = {
|
|
74
74
|
key: "example",
|
|
75
75
|
autoFill: "./example.filled.content.ts",
|
|
76
76
|
content: {
|
|
77
|
-
//
|
|
77
|
+
// Ваше содержимое
|
|
78
78
|
},
|
|
79
79
|
};
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
Это
|
|
82
|
+
Это сгенерирует файл по адресу:
|
|
83
83
|
|
|
84
84
|
```
|
|
85
85
|
src/components/example/example.filled.content.ts
|
|
@@ -87,8 +87,8 @@ src/components/example/example.filled.content.ts
|
|
|
87
87
|
|
|
88
88
|
> Генерация файлов `.js`, `.ts` и подобных работает следующим образом:
|
|
89
89
|
>
|
|
90
|
-
> - Если файл уже существует, Intlayer
|
|
91
|
-
> - Если файл не существует, Intlayer
|
|
90
|
+
> - Если файл уже существует, Intlayer будет парсить его с помощью AST (Абстрактного синтаксического дерева), чтобы найти каждое поле и вставить отсутствующие переводы.
|
|
91
|
+
> - Если файл не существует, Intlayer сгенерирует его, используя шаблон файла декларации содержимого по умолчанию.
|
|
92
92
|
|
|
93
93
|
## Абсолютные пути
|
|
94
94
|
|
|
@@ -99,20 +99,20 @@ const exampleContent = {
|
|
|
99
99
|
key: "example",
|
|
100
100
|
autoFill: "/messages/example.content.json",
|
|
101
101
|
content: {
|
|
102
|
-
//
|
|
102
|
+
// Ваше содержимое
|
|
103
103
|
},
|
|
104
104
|
};
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
Это
|
|
107
|
+
Это сгенерирует файл по адресу:
|
|
108
108
|
|
|
109
109
|
```
|
|
110
110
|
/messages/example.content.json
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
## Автоматическая генерация файлов
|
|
113
|
+
## Автоматическая генерация файлов деклараций содержимого для каждого локаля
|
|
114
114
|
|
|
115
|
-
Поле `autoFill` также поддерживает генерацию файлов
|
|
115
|
+
Поле `autoFill` также поддерживает генерацию файлов деклараций содержимого **для каждого локаля**.
|
|
116
116
|
|
|
117
117
|
```ts fileName="src/components/example/example.content.ts"
|
|
118
118
|
const exampleContent = {
|
|
@@ -122,17 +122,19 @@ const exampleContent = {
|
|
|
122
122
|
es: "./example.es.content.json",
|
|
123
123
|
},
|
|
124
124
|
content: {
|
|
125
|
-
//
|
|
125
|
+
// Ваше содержимое
|
|
126
126
|
},
|
|
127
127
|
};
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
-
Это
|
|
130
|
+
Это сгенерирует два отдельных файла:
|
|
131
131
|
|
|
132
132
|
- `src/components/example/example.fr.content.json`
|
|
133
133
|
- `src/components/example/example.es.content.json`
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
> В этом случае, если объект не содержит все локали, Intlayer пропускает генерацию оставшихся локалей.
|
|
136
|
+
|
|
137
|
+
## Фильтрация автозаполнения для конкретной локали
|
|
136
138
|
|
|
137
139
|
Использование объекта в поле `autoFill` позволяет применять фильтры и генерировать файлы только для определённых локалей.
|
|
138
140
|
|
|
@@ -143,37 +145,57 @@ const exampleContent = {
|
|
|
143
145
|
fr: "./example.fr.content.json",
|
|
144
146
|
},
|
|
145
147
|
content: {
|
|
146
|
-
//
|
|
148
|
+
// Ваше содержимое
|
|
147
149
|
},
|
|
148
150
|
};
|
|
149
151
|
```
|
|
150
152
|
|
|
151
|
-
Это
|
|
153
|
+
Это сгенерирует только файл перевода на французский язык.
|
|
152
154
|
|
|
153
155
|
## Переменные пути
|
|
154
156
|
|
|
155
|
-
Вы можете использовать переменные внутри пути `autoFill` для динамического определения целевых путей
|
|
157
|
+
Вы можете использовать переменные внутри пути `autoFill` для динамического определения целевых путей для сгенерированных файлов.
|
|
156
158
|
|
|
157
159
|
**Доступные переменные:**
|
|
158
160
|
|
|
159
161
|
- `{{locale}}` – Код локали (например, `fr`, `es`)
|
|
162
|
+
- `{{fileName}}` – Имя файла (например, `index`)
|
|
160
163
|
- `{{key}}` – Ключ словаря (например, `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",
|
|
166
169
|
content: {
|
|
167
|
-
//
|
|
170
|
+
// Ваше содержимое
|
|
168
171
|
},
|
|
169
172
|
};
|
|
170
173
|
```
|
|
171
174
|
|
|
172
|
-
Это
|
|
175
|
+
Это сгенерирует:
|
|
173
176
|
|
|
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
|
+
// Ваше содержимое
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Это сгенерирует:
|
|
191
|
+
|
|
192
|
+
- `./index.content.json`
|
|
193
|
+
- `./index.content.json`
|
|
194
|
+
|
|
177
195
|
## История документации
|
|
178
196
|
|
|
179
|
-
|
|
197
|
+
| Версия | Дата | Изменения |
|
|
198
|
+
| ------- | ---------- | -------------------------- |
|
|
199
|
+
| 6.0.0 | 2025-09-20 | Добавлена глобальная конфигурация |
|
|
200
|
+
| 6.0.0 | 2025-09-17 | Добавлена переменная `{{fileName}}` |
|
|
201
|
+
| 5.5.10 | 2025-06-29 | Инициализация истории |
|