@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,452 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: TanStack Start'ta Intlayer ile Başlarken (React)
|
|
5
|
+
description: Intlayer kullanarak TanStack Start uygulamanıza i18n ekleyin-bileşen düzeyinde sözlükler, yerelleştirilmiş URL'ler ve SEO dostu meta veriler.
|
|
6
|
+
keywords:
|
|
7
|
+
- Uluslararasılaştırma
|
|
8
|
+
- Dokümantasyon
|
|
9
|
+
- Intlayer
|
|
10
|
+
- TanStack Start
|
|
11
|
+
- TanStack Router
|
|
12
|
+
- React
|
|
13
|
+
- i18n
|
|
14
|
+
- JavaScript
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- environment
|
|
18
|
+
- tanstack-start
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Intlayer ve TanStack Start (React) ile uluslararasılaştırma (i18n) başlangıç kılavuzu
|
|
22
|
+
|
|
23
|
+
## Intlayer Nedir?
|
|
24
|
+
|
|
25
|
+
**Intlayer**, React uygulamaları için açık kaynaklı bir i18n araç takımıdır. Size şunları sağlar:
|
|
26
|
+
|
|
27
|
+
- **TypeScript güvenliği ile bileşen yerel sözlükleri**.
|
|
28
|
+
- **Dinamik meta veriler ve rotalar** (SEO hazır).
|
|
29
|
+
- **Çalışma zamanı yerel ayar anahtarlaması** (ve yerel ayarları algılamak/kalıcı hale getirmek için yardımcılar).
|
|
30
|
+
- **Yapı zamanı dönüşümleri + dev DX için Vite eklentisi**.
|
|
31
|
+
|
|
32
|
+
Bu kılavuz, **TanStack Start** projesine Intlayer'ı nasıl bağlayacağınızı gösterir (Vite'i altında kullanan ve yönlendirme/SSR için TanStack Router kullanan).
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Adım 1: Bağımlılıkları Kurma
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# npm
|
|
40
|
+
npm i intlayer react-intlayer
|
|
41
|
+
npm i -D vite-intlayer
|
|
42
|
+
|
|
43
|
+
# pnpm
|
|
44
|
+
pnpm add intlayer react-intlayer
|
|
45
|
+
pnpm add -D vite-intlayer
|
|
46
|
+
|
|
47
|
+
# yarn
|
|
48
|
+
yarn add intlayer react-intlayer
|
|
49
|
+
yarn add -D vite-intlayer
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- **intlayer**: çekirdek (yapılandırma, sözlükler, CLI/dönüşümler).
|
|
53
|
+
- **react-intlayer**: React için `<IntlayerProvider>` + kancalar.
|
|
54
|
+
- **vite-intlayer**: Vite eklentisi, ayrıca yerel ayar algılama/yönlendirmeler için isteğe bağlı middleware (dev & SSR/önizlemede çalışır; üretim SSR için `dependencies`'a taşıyın).
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Adım 2: Intlayer'ı Yapılandırma
|
|
59
|
+
|
|
60
|
+
Proje kökünüzde `intlayer.config.ts` oluşturun:
|
|
61
|
+
|
|
62
|
+
```ts fileName="intlayer.config.ts"
|
|
63
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
64
|
+
|
|
65
|
+
const config: IntlayerConfig = {
|
|
66
|
+
internationalization: {
|
|
67
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
68
|
+
defaultLocale: Locales.ENGLISH,
|
|
69
|
+
},
|
|
70
|
+
// Ayrıca ayarlayabilirsiniz: contentDir, contentFileExtensions, middleware seçenekleri, vb.
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export default config;
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
CommonJS/ESM varyantları, `cjs`/`mjs`'yi tercih ederseniz orijinal dokümanınızla aynıdır.
|
|
77
|
+
|
|
78
|
+
> Tam yapılandırma referansı: Intlayer'ın yapılandırma dokümantasyonuna bakın.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Adım 3: Vite Eklentisini Ekleyin (ve isteğe bağlı middleware)
|
|
83
|
+
|
|
84
|
+
**TanStack Start Vite kullanır**, bu yüzden Intlayer'ın eklenti(leri)ni `vite.config.ts`'nize ekleyin:
|
|
85
|
+
|
|
86
|
+
```ts fileName="vite.config.ts"
|
|
87
|
+
import { defineConfig } from "vite";
|
|
88
|
+
import react from "@vitejs/plugin-react-swc";
|
|
89
|
+
import { intlayerPlugin, intlayerMiddlewarePlugin } from "vite-intlayer";
|
|
90
|
+
|
|
91
|
+
export default defineConfig({
|
|
92
|
+
plugins: [
|
|
93
|
+
react(),
|
|
94
|
+
intlayerPlugin(),
|
|
95
|
+
// Yerel ayar algılama, çerezler ve yönlendirmeler için isteğe bağlı ancak önerilen:
|
|
96
|
+
intlayerMiddlewarePlugin(),
|
|
97
|
+
],
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
> SSR dağıtırsanız, middleware'in üretimde çalışması için `vite-intlayer`'ı `dependencies`'a taşıyın.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Adım 4: İçeriğinizi Bildirin
|
|
106
|
+
|
|
107
|
+
Sözlüklerinizi `./src` altında herhangi bir yere yerleştirin (varsayılan `contentDir`). Örnek:
|
|
108
|
+
|
|
109
|
+
```tsx fileName="src/app.content.tsx"
|
|
110
|
+
import { t, type Dictionary } from "intlayer";
|
|
111
|
+
import type { ReactNode } from "react";
|
|
112
|
+
|
|
113
|
+
const appContent = {
|
|
114
|
+
key: "app",
|
|
115
|
+
content: {
|
|
116
|
+
viteLogo: t({ en: "Vite logo", fr: "Logo Vite", es: "Logo Vite" }),
|
|
117
|
+
reactLogo: t({ en: "React logo", fr: "Logo React", es: "Logo React" }),
|
|
118
|
+
title: t({
|
|
119
|
+
en: "TanStack Start + React",
|
|
120
|
+
fr: "TanStack Start + React",
|
|
121
|
+
es: "TanStack Start + React",
|
|
122
|
+
}),
|
|
123
|
+
count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
|
|
124
|
+
edit: t<ReactNode>({
|
|
125
|
+
en: (
|
|
126
|
+
<>
|
|
127
|
+
Edit <code>src/routes/index.tsx</code> and save to test HMR
|
|
128
|
+
</>
|
|
129
|
+
),
|
|
130
|
+
fr: (
|
|
131
|
+
<>
|
|
132
|
+
Éditez <code>src/routes/index.tsx</code> et enregistrez pour tester
|
|
133
|
+
HMR
|
|
134
|
+
</>
|
|
135
|
+
),
|
|
136
|
+
es: (
|
|
137
|
+
<>
|
|
138
|
+
Edita <code>src/routes/index.tsx</code> y guarda para probar HMR
|
|
139
|
+
</>
|
|
140
|
+
),
|
|
141
|
+
}),
|
|
142
|
+
readTheDocs: t({
|
|
143
|
+
en: "Click the logos to learn more",
|
|
144
|
+
fr: "Cliquez sur les logos pour en savoir plus",
|
|
145
|
+
es: "Haz clic en los logotipos para saber más",
|
|
146
|
+
}),
|
|
147
|
+
},
|
|
148
|
+
} satisfies Dictionary;
|
|
149
|
+
|
|
150
|
+
export default appContent;
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
JSON/ESM/CJS varyantları orijinal dokümanınızla aynı şekilde çalışır.
|
|
154
|
+
|
|
155
|
+
> TSX içeriği? Kurulumunuz gerektiriyorsa `import React from "react"`'ı unutmayın.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Adım 5: TanStack Start'ı Intlayer ile Sarmalayın
|
|
160
|
+
|
|
161
|
+
TanStack Start ile, sağlayıcıları ayarlamak için **kök rota** doğru yerdir.
|
|
162
|
+
|
|
163
|
+
```tsx fileName="src/routes/__root.tsx"
|
|
164
|
+
import {
|
|
165
|
+
Outlet,
|
|
166
|
+
createRootRoute,
|
|
167
|
+
Link as RouterLink,
|
|
168
|
+
} from "@tanstack/react-router";
|
|
169
|
+
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
170
|
+
|
|
171
|
+
function AppShell() {
|
|
172
|
+
// Üst düzeyde bir sözlük kullanma örneği:
|
|
173
|
+
const content = useIntlayer("app");
|
|
174
|
+
|
|
175
|
+
return (
|
|
176
|
+
<div>
|
|
177
|
+
<nav className="flex gap-3 p-3">
|
|
178
|
+
<RouterLink to="/">Home</RouterLink>
|
|
179
|
+
<RouterLink to="/about">About</RouterLink>
|
|
180
|
+
</nav>
|
|
181
|
+
<main className="p-6">
|
|
182
|
+
<h1>{content.title}</h1>
|
|
183
|
+
<Outlet />
|
|
184
|
+
</main>
|
|
185
|
+
</div>
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export const Route = createRootRoute({
|
|
190
|
+
component: () => (
|
|
191
|
+
<IntlayerProvider>
|
|
192
|
+
<AppShell />
|
|
193
|
+
</IntlayerProvider>
|
|
194
|
+
),
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Ardından içeriğinizi sayfalarda kullanın:
|
|
199
|
+
|
|
200
|
+
```tsx fileName="src/routes/index.tsx"
|
|
201
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
202
|
+
import { useIntlayer } from "react-intlayer";
|
|
203
|
+
import reactLogo from "../assets/react.svg";
|
|
204
|
+
|
|
205
|
+
export const Route = createFileRoute("/")({
|
|
206
|
+
component: () => {
|
|
207
|
+
const content = useIntlayer("app");
|
|
208
|
+
return (
|
|
209
|
+
<>
|
|
210
|
+
<button>{content.count}0</button>
|
|
211
|
+
<p>{content.edit}</p>
|
|
212
|
+
<img
|
|
213
|
+
src={reactLogo}
|
|
214
|
+
alt={content.reactLogo.value}
|
|
215
|
+
width={48}
|
|
216
|
+
height={48}
|
|
217
|
+
/>
|
|
218
|
+
<p className="opacity-70">{content.readTheDocs}</p>
|
|
219
|
+
</>
|
|
220
|
+
);
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
> Dize nitelikleri (`alt`, `title`, `aria-label`, …) `.value` gerektirir:
|
|
226
|
+
>
|
|
227
|
+
> ```jsx
|
|
228
|
+
> <img alt={c.reactLogo.value} />
|
|
229
|
+
> ```
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## (İsteğe Bağlı) Adım 6: Yerel Ayar Anahtarlaması (İstemci)
|
|
234
|
+
|
|
235
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx"
|
|
236
|
+
import { Locales } from "intlayer";
|
|
237
|
+
import { useLocale } from "react-intlayer";
|
|
238
|
+
|
|
239
|
+
export function LocaleSwitcher() {
|
|
240
|
+
const { setLocale } = useLocale();
|
|
241
|
+
return (
|
|
242
|
+
<div className="flex gap-2">
|
|
243
|
+
<button onClick={() => setLocale(Locales.ENGLISH)}>English</button>
|
|
244
|
+
<button onClick={() => setLocale(Locales.FRENCH)}>Français</button>
|
|
245
|
+
<button onClick={() => setLocale(Locales.SPANISH)}>Español</button>
|
|
246
|
+
</div>
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## (İsteğe Bağlı) Adım 7: Yerelleştirilmiş Yönlendirme (SEO dostu URL'ler)
|
|
254
|
+
|
|
255
|
+
TanStack Start ile **iki iyi kalıp** vardır. Birini seçin.
|
|
256
|
+
|
|
257
|
+
URL'lerinizin `/:locale/...` olması için dinamik segment klasörü `src/routes/$locale/` oluşturun. `$locale` düzeninde, `params.locale`'ı doğrulayın, `<IntlayerProvider locale=...>` ayarlayın ve `<Outlet />` işleyin. Bu yaklaşım basittir, ancak geri kalan rotalarınızı `$locale` altına monte edeceksiniz ve varsayılan yerel ayarı öneki istemiyorsanız ekstra öneksiz bir ağaca ihtiyacınız olacak.
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## (İsteğe Bağlı) Adım 8: Yerel ayar değiştirirken URL'yi güncelleyin
|
|
262
|
+
|
|
263
|
+
A Kalıbı (basepath) ile, yerel ayarları değiştirmek **farklı bir basepath'e** gezinmek anlamına gelir:
|
|
264
|
+
|
|
265
|
+
```tsx fileName="src/components/LocaleSwitcherNavigate.tsx"
|
|
266
|
+
import { useRouter } from "@tanstack/react-router";
|
|
267
|
+
import { Locales, getLocalizedUrl } from "intlayer";
|
|
268
|
+
import { useLocale } from "react-intlayer";
|
|
269
|
+
|
|
270
|
+
export function LocaleSwitcherNavigate() {
|
|
271
|
+
const router = useRouter();
|
|
272
|
+
const { locale, setLocale } = useLocale();
|
|
273
|
+
|
|
274
|
+
const change = async (next: Locales) => {
|
|
275
|
+
if (next === locale) return;
|
|
276
|
+
const nextPath = getLocalizedUrl(
|
|
277
|
+
window.location.pathname + window.location.search,
|
|
278
|
+
next
|
|
279
|
+
);
|
|
280
|
+
await router.navigate({ to: nextPath }); // geçmişi korur
|
|
281
|
+
setLocale(next);
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
return (
|
|
285
|
+
<div className="flex gap-2">
|
|
286
|
+
<button onClick={() => change(Locales.ENGLISH)}>English</button>
|
|
287
|
+
<button onClick={() => change(Locales.FRENCH)}>Français</button>
|
|
288
|
+
<button onClick={() => change(Locales.SPANISH)}>Español</button>
|
|
289
|
+
</div>
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## (İsteğe Bağlı) Adım 9: `<html lang>` ve `dir` (TanStack Start Document)
|
|
297
|
+
|
|
298
|
+
TanStack Start, özelleştirebileceğiniz bir **Document** (kök HTML kabuğu) sunar. Erişilebilirlik/SEO için `lang` ve `dir` ayarlayın:
|
|
299
|
+
|
|
300
|
+
```tsx fileName="src/routes/__root.tsx" {4,15}
|
|
301
|
+
import { HeadContent, Scripts, createRootRoute } from "@tanstack/react-router";
|
|
302
|
+
import { TanStackRouterDevtools } from "@tanstack/react-router-devtools";
|
|
303
|
+
|
|
304
|
+
import Header from "../components/Header";
|
|
305
|
+
|
|
306
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
307
|
+
import appCss from "../styles.css?url";
|
|
308
|
+
|
|
309
|
+
export const Route = createRootRoute({
|
|
310
|
+
head: () => ({
|
|
311
|
+
meta: [
|
|
312
|
+
{
|
|
313
|
+
charSet: "utf-8",
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
name: "viewport",
|
|
317
|
+
content: "width=device-width, initial-scale=1",
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
title: "TanStack Start Starter",
|
|
321
|
+
},
|
|
322
|
+
],
|
|
323
|
+
links: [
|
|
324
|
+
{
|
|
325
|
+
rel: "stylesheet",
|
|
326
|
+
href: appCss,
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
}),
|
|
330
|
+
|
|
331
|
+
shellComponent: RootDocument,
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
function RootDocument({ children }: { children: React.ReactNode }) {
|
|
335
|
+
return (
|
|
336
|
+
<IntlayerProvider>
|
|
337
|
+
<html lang="en">
|
|
338
|
+
<head>
|
|
339
|
+
<HeadContent />
|
|
340
|
+
</head>
|
|
341
|
+
<body>
|
|
342
|
+
<Header />
|
|
343
|
+
{children}
|
|
344
|
+
<TanStackRouterDevtools />
|
|
345
|
+
<Scripts />
|
|
346
|
+
</body>
|
|
347
|
+
</html>
|
|
348
|
+
</IntlayerProvider>
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
İstemci tarafı düzeltme için, küçük kancanızı da koruyabilirsiniz:
|
|
354
|
+
|
|
355
|
+
```tsx fileName="src/hooks/useI18nHTMLAttributes.ts"
|
|
356
|
+
import { useEffect } from "react";
|
|
357
|
+
import { useLocale } from "react-intlayer";
|
|
358
|
+
import { getHTMLTextDir } from "intlayer";
|
|
359
|
+
|
|
360
|
+
export const useI18nHTMLAttributes = () => {
|
|
361
|
+
const { locale } = useLocale();
|
|
362
|
+
useEffect(() => {
|
|
363
|
+
document.documentElement.lang = locale;
|
|
364
|
+
document.documentElement.dir = getHTMLTextDir(locale);
|
|
365
|
+
}, [locale]);
|
|
366
|
+
};
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## (İsteğe Bağlı) Adım 10: Yerelleştirilmiş Bağlantı bileşeni
|
|
372
|
+
|
|
373
|
+
TanStack Router bir `<Link/>` sağlar, ancak dahili URL'leri otomatik olarak önekeleştiren düz bir `<a>`'ya ihtiyacınız olursa:
|
|
374
|
+
|
|
375
|
+
```tsx fileName="src/components/Link.tsx"
|
|
376
|
+
import { getLocalizedUrl } from "intlayer";
|
|
377
|
+
import {
|
|
378
|
+
forwardRef,
|
|
379
|
+
type AnchorHTMLAttributes,
|
|
380
|
+
type DetailedHTMLProps,
|
|
381
|
+
} from "react";
|
|
382
|
+
import { useLocale } from "react-intlayer";
|
|
383
|
+
|
|
384
|
+
export interface LinkProps
|
|
385
|
+
extends DetailedHTMLProps<
|
|
386
|
+
AnchorHTMLAttributes<HTMLAnchorElement>,
|
|
387
|
+
HTMLAnchorElement
|
|
388
|
+
> {}
|
|
389
|
+
|
|
390
|
+
const isExternal = (href?: string) => /^https?:\/\//.test(href ?? "");
|
|
391
|
+
|
|
392
|
+
export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
393
|
+
({ href, children, ...props }, ref) => {
|
|
394
|
+
const { locale } = useLocale();
|
|
395
|
+
const hrefI18n =
|
|
396
|
+
href && !isExternal(href) ? getLocalizedUrl(href, locale) : href;
|
|
397
|
+
return (
|
|
398
|
+
<a href={hrefI18n} ref={ref} {...props}>
|
|
399
|
+
{children}
|
|
400
|
+
</a>
|
|
401
|
+
);
|
|
402
|
+
}
|
|
403
|
+
);
|
|
404
|
+
Link.displayName = "Link";
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
> A Kalıbını (basepath) kullanırsanız, TanStack'ın `<Link to="/about" />` zaten `basepath` aracılığıyla `/fr/about`'a çözümlenir, bu yüzden özel bir bağlantı isteğe bağlıdır.
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## TypeScript
|
|
412
|
+
|
|
413
|
+
Intlayer'ın oluşturulan türlerini dahil edin:
|
|
414
|
+
|
|
415
|
+
```json5 fileName="tsconfig.json"
|
|
416
|
+
{
|
|
417
|
+
"include": ["src", ".intlayer/**/*.ts"],
|
|
418
|
+
}
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## Git
|
|
424
|
+
|
|
425
|
+
Intlayer'ın oluşturulan eserlerini yok sayın:
|
|
426
|
+
|
|
427
|
+
```gitignore
|
|
428
|
+
.intlayer
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## VS Code Uzantısı
|
|
434
|
+
|
|
435
|
+
- **Intlayer VS Code Uzantısı** → otomatik tamamlama, hatalar, satır içi önizlemeler, hızlı eylemler.
|
|
436
|
+
Marketplace: `intlayer.intlayer-vs-code-extension`
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
440
|
+
## Daha Fazla İlerleyin
|
|
441
|
+
|
|
442
|
+
- Görsel Düzenleyici
|
|
443
|
+
- CMS modu
|
|
444
|
+
- Kenarda yerel ayar algılama / adaptörler
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
## Dokümantasyon Geçmişi
|
|
449
|
+
|
|
450
|
+
| Sürüm | Tarih | Değişiklikler |
|
|
451
|
+
| ----- | ---------- | --------------------------------- |
|
|
452
|
+
| 1.0.0 | 2025-08-11 | TanStack Start uyarlaması eklendi |
|