@intlayer/docs 5.8.1 → 6.0.0-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/rag_powered_documentation_assistant.md +282 -0
- package/blog/de/rag_powered_documentation_assistant.md +282 -0
- package/blog/en/rag_powered_documentation_assistant.md +289 -0
- package/blog/en-GB/rag_powered_documentation_assistant.md +284 -0
- package/blog/es/rag_powered_documentation_assistant.md +308 -0
- package/blog/fr/rag_powered_documentation_assistant.md +308 -0
- package/blog/hi/rag_powered_documentation_assistant.md +284 -0
- package/blog/it/rag_powered_documentation_assistant.md +284 -0
- package/blog/ja/rag_powered_documentation_assistant.md +284 -0
- package/blog/ko/rag_powered_documentation_assistant.md +283 -0
- package/blog/pt/rag_powered_documentation_assistant.md +284 -0
- package/blog/ru/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/index.md +69 -0
- package/blog/tr/internationalization_and_SEO.md +273 -0
- package/blog/tr/intlayer_with_i18next.md +162 -0
- package/blog/tr/intlayer_with_next-i18next.md +367 -0
- package/blog/tr/intlayer_with_next-intl.md +392 -0
- package/blog/tr/intlayer_with_react-i18next.md +346 -0
- package/blog/tr/intlayer_with_react-intl.md +345 -0
- package/blog/tr/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/tr/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/tr/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/tr/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/tr/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/tr/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +129 -0
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +170 -0
- package/blog/tr/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +162 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +276 -0
- package/blog/tr/what_is_internationalization.md +166 -0
- package/blog/zh/rag_powered_documentation_assistant.md +284 -0
- package/dist/cjs/generated/blog.entry.cjs +212 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +660 -132
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +84 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +6 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +212 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +660 -132
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +84 -0
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +6 -0
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +5 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/autoFill.md +41 -40
- package/docs/ar/configuration.md +202 -199
- package/docs/ar/dictionary/content_file.md +1059 -0
- package/docs/ar/intlayer_CMS.md +4 -4
- package/docs/ar/intlayer_with_nestjs.md +271 -0
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7.md +533 -0
- package/docs/ar/intlayer_with_tanstack.md +465 -299
- package/docs/ar/intlayer_with_vite+preact.md +7 -7
- package/docs/ar/intlayer_with_vite+react.md +7 -7
- package/docs/ar/intlayer_with_vite+vue.md +9 -9
- package/docs/ar/packages/vite-intlayer/index.md +3 -3
- package/docs/ar/readme.md +261 -0
- package/docs/ar/testing.md +199 -0
- package/docs/de/autoFill.md +42 -19
- package/docs/de/configuration.md +155 -147
- package/docs/de/dictionary/content_file.md +1059 -0
- package/docs/de/intlayer_CMS.md +4 -5
- package/docs/de/intlayer_with_nestjs.md +270 -0
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_react_router_v7.md +537 -0
- package/docs/de/intlayer_with_tanstack.md +469 -302
- package/docs/de/intlayer_with_vite+preact.md +7 -7
- package/docs/de/intlayer_with_vite+react.md +7 -7
- package/docs/de/intlayer_with_vite+vue.md +9 -9
- package/docs/de/packages/vite-intlayer/index.md +3 -3
- package/docs/de/readme.md +261 -0
- package/docs/de/testing.md +200 -0
- package/docs/en/CI_CD.md +4 -6
- package/docs/en/autoFill.md +25 -5
- package/docs/en/configuration.md +45 -54
- package/docs/en/dictionary/content_file.md +1054 -0
- package/docs/en/intlayer_CMS.md +8 -7
- package/docs/en/intlayer_cli.md +112 -5
- package/docs/en/intlayer_with_nestjs.md +268 -0
- package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +531 -0
- package/docs/en/intlayer_with_tanstack.md +463 -294
- package/docs/en/intlayer_with_vite+preact.md +8 -8
- package/docs/en/intlayer_with_vite+react.md +8 -8
- package/docs/en/intlayer_with_vite+vue.md +8 -8
- package/docs/en/packages/intlayer/getLocalizedUrl.md +102 -25
- package/docs/en/packages/vite-intlayer/index.md +3 -3
- package/docs/en/readme.md +261 -0
- package/docs/en/testing.md +200 -0
- package/docs/en-GB/autoFill.md +29 -6
- package/docs/en-GB/configuration.md +79 -71
- package/docs/en-GB/dictionary/content_file.md +1084 -0
- package/docs/en-GB/intlayer_CMS.md +4 -5
- package/docs/en-GB/intlayer_with_nestjs.md +268 -0
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7.md +533 -0
- package/docs/en-GB/intlayer_with_tanstack.md +466 -299
- package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
- package/docs/en-GB/intlayer_with_vite+react.md +7 -7
- package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
- package/docs/en-GB/packages/vite-intlayer/index.md +3 -3
- package/docs/en-GB/readme.md +261 -0
- package/docs/en-GB/testing.md +200 -0
- package/docs/es/autoFill.md +45 -23
- package/docs/es/configuration.md +171 -167
- package/docs/es/dictionary/content_file.md +1088 -0
- package/docs/es/intlayer_CMS.md +4 -5
- package/docs/es/intlayer_with_nestjs.md +268 -0
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +533 -0
- package/docs/es/intlayer_with_tanstack.md +469 -280
- package/docs/es/intlayer_with_vite+preact.md +7 -7
- package/docs/es/intlayer_with_vite+react.md +7 -7
- package/docs/es/intlayer_with_vite+vue.md +9 -9
- package/docs/es/packages/vite-intlayer/index.md +3 -3
- package/docs/es/readme.md +261 -0
- package/docs/es/testing.md +200 -0
- package/docs/fr/autoFill.md +47 -24
- package/docs/fr/configuration.md +213 -198
- package/docs/fr/dictionary/content_file.md +1054 -0
- package/docs/fr/intlayer_CMS.md +4 -5
- package/docs/fr/intlayer_with_nestjs.md +268 -0
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7.md +549 -0
- package/docs/fr/intlayer_with_tanstack.md +465 -279
- package/docs/fr/intlayer_with_vite+preact.md +7 -7
- package/docs/fr/intlayer_with_vite+react.md +7 -7
- package/docs/fr/intlayer_with_vite+vue.md +9 -9
- package/docs/fr/packages/vite-intlayer/index.md +3 -3
- package/docs/fr/readme.md +261 -0
- package/docs/fr/testing.md +200 -0
- package/docs/hi/autoFill.md +47 -25
- package/docs/hi/configuration.md +194 -189
- package/docs/hi/dictionary/content_file.md +1056 -0
- package/docs/hi/intlayer_CMS.md +4 -5
- package/docs/hi/intlayer_with_nestjs.md +269 -0
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7.md +533 -0
- package/docs/hi/intlayer_with_tanstack.md +467 -282
- package/docs/hi/intlayer_with_vite+preact.md +7 -7
- package/docs/hi/intlayer_with_vite+react.md +7 -7
- package/docs/hi/intlayer_with_vite+vue.md +9 -9
- package/docs/hi/packages/vite-intlayer/index.md +3 -3
- package/docs/hi/readme.md +261 -0
- package/docs/hi/testing.md +200 -0
- package/docs/it/autoFill.md +46 -24
- package/docs/it/configuration.md +169 -161
- package/docs/it/dictionary/content_file.md +1061 -0
- package/docs/it/intlayer_CMS.md +4 -5
- package/docs/it/intlayer_with_nestjs.md +268 -0
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_react_router_v7.md +535 -0
- package/docs/it/intlayer_with_tanstack.md +467 -301
- package/docs/it/intlayer_with_vite+preact.md +7 -7
- package/docs/it/intlayer_with_vite+react.md +7 -7
- package/docs/it/intlayer_with_vite+vue.md +9 -9
- package/docs/it/packages/vite-intlayer/index.md +3 -3
- package/docs/it/readme.md +261 -0
- package/docs/it/testing.md +200 -0
- package/docs/ja/autoFill.md +45 -23
- package/docs/ja/configuration.md +243 -204
- package/docs/ja/dictionary/content_file.md +1064 -0
- package/docs/ja/intlayer_CMS.md +4 -5
- package/docs/ja/intlayer_with_nestjs.md +268 -0
- package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7.md +534 -0
- package/docs/ja/intlayer_with_tanstack.md +467 -303
- package/docs/ja/intlayer_with_vite+preact.md +7 -7
- package/docs/ja/intlayer_with_vite+react.md +7 -7
- package/docs/ja/intlayer_with_vite+vue.md +9 -9
- package/docs/ja/packages/vite-intlayer/index.md +3 -3
- package/docs/ja/readme.md +263 -0
- package/docs/ja/testing.md +200 -0
- package/docs/ko/autoFill.md +39 -16
- package/docs/ko/configuration.md +217 -197
- package/docs/ko/dictionary/content_file.md +1060 -0
- package/docs/ko/intlayer_CMS.md +4 -5
- package/docs/ko/intlayer_with_nestjs.md +268 -0
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7.md +540 -0
- package/docs/ko/intlayer_with_tanstack.md +466 -302
- package/docs/ko/intlayer_with_vite+preact.md +7 -7
- package/docs/ko/intlayer_with_vite+react.md +7 -7
- package/docs/ko/intlayer_with_vite+vue.md +9 -9
- package/docs/ko/packages/vite-intlayer/index.md +3 -3
- package/docs/ko/readme.md +261 -0
- package/docs/ko/testing.md +200 -0
- package/docs/pt/autoFill.md +39 -15
- package/docs/pt/configuration.md +165 -147
- package/docs/pt/dictionary/content_file.md +1062 -0
- package/docs/pt/intlayer_CMS.md +4 -5
- package/docs/pt/intlayer_with_nestjs.md +271 -0
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +535 -0
- package/docs/pt/intlayer_with_tanstack.md +469 -300
- package/docs/pt/intlayer_with_vite+preact.md +7 -7
- package/docs/pt/intlayer_with_vite+react.md +7 -7
- package/docs/pt/intlayer_with_vite+vue.md +9 -9
- package/docs/pt/packages/vite-intlayer/index.md +3 -3
- package/docs/pt/readme.md +261 -0
- package/docs/pt/testing.md +200 -0
- package/docs/ru/autoFill.md +52 -30
- package/docs/ru/configuration.md +164 -117
- package/docs/ru/dictionary/content_file.md +1064 -0
- package/docs/ru/intlayer_CMS.md +4 -4
- package/docs/ru/intlayer_with_nestjs.md +270 -0
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7.md +534 -0
- package/docs/ru/intlayer_with_tanstack.md +470 -305
- package/docs/ru/intlayer_with_vite+preact.md +7 -7
- package/docs/ru/intlayer_with_vite+react.md +7 -7
- package/docs/ru/intlayer_with_vite+vue.md +9 -9
- package/docs/ru/packages/vite-intlayer/index.md +3 -3
- package/docs/ru/readme.md +261 -0
- package/docs/ru/testing.md +202 -0
- package/docs/tr/CI_CD.md +198 -0
- package/docs/tr/autoFill.md +201 -0
- package/docs/tr/configuration.md +585 -0
- package/docs/tr/dictionary/condition.md +243 -0
- package/docs/tr/dictionary/content_file.md +1055 -0
- package/docs/tr/dictionary/enumeration.md +251 -0
- package/docs/tr/dictionary/file.md +228 -0
- package/docs/tr/dictionary/function_fetching.md +218 -0
- package/docs/tr/dictionary/gender.md +279 -0
- package/docs/tr/dictionary/insertion.md +191 -0
- package/docs/tr/dictionary/markdown.md +385 -0
- package/docs/tr/dictionary/nesting.md +279 -0
- package/docs/tr/dictionary/translation.md +315 -0
- package/docs/tr/formatters.md +618 -0
- package/docs/tr/how_works_intlayer.md +254 -0
- package/docs/tr/index.md +168 -0
- package/docs/tr/interest_of_intlayer.md +288 -0
- package/docs/tr/intlayer_CMS.md +347 -0
- package/docs/tr/intlayer_cli.md +570 -0
- package/docs/tr/intlayer_visual_editor.md +269 -0
- package/docs/tr/intlayer_with_angular.md +694 -0
- package/docs/tr/intlayer_with_create_react_app.md +1218 -0
- package/docs/tr/intlayer_with_express.md +415 -0
- package/docs/tr/intlayer_with_lynx+react.md +511 -0
- package/docs/tr/intlayer_with_nestjs.md +268 -0
- package/docs/tr/intlayer_with_nextjs_14.md +1029 -0
- package/docs/tr/intlayer_with_nextjs_15.md +1506 -0
- package/docs/tr/intlayer_with_nextjs_page_router.md +1484 -0
- package/docs/tr/intlayer_with_nuxt.md +773 -0
- package/docs/tr/intlayer_with_react_native+expo.md +660 -0
- package/docs/tr/intlayer_with_react_router_v7.md +531 -0
- package/docs/tr/intlayer_with_tanstack.md +452 -0
- package/docs/tr/intlayer_with_vite+preact.md +1673 -0
- package/docs/tr/intlayer_with_vite+react.md +1632 -0
- package/docs/tr/intlayer_with_vite+solid.md +288 -0
- package/docs/tr/intlayer_with_vite+svelte.md +288 -0
- package/docs/tr/intlayer_with_vite+vue.md +1042 -0
- package/docs/tr/introduction.md +209 -0
- package/docs/tr/locale_mapper.md +244 -0
- package/docs/tr/mcp_server.md +207 -0
- package/docs/tr/packages/@intlayer/api/index.md +58 -0
- package/docs/tr/packages/@intlayer/chokidar/index.md +57 -0
- package/docs/tr/packages/@intlayer/cli/index.md +47 -0
- package/docs/tr/packages/@intlayer/config/index.md +142 -0
- package/docs/tr/packages/@intlayer/core/index.md +51 -0
- package/docs/tr/packages/@intlayer/design-system/index.md +47 -0
- package/docs/tr/packages/@intlayer/dictionary-entry/index.md +53 -0
- package/docs/tr/packages/@intlayer/editor/index.md +47 -0
- package/docs/tr/packages/@intlayer/editor-react/index.md +47 -0
- package/docs/tr/packages/@intlayer/webpack/index.md +61 -0
- package/docs/tr/packages/angular-intlayer/index.md +59 -0
- package/docs/tr/packages/express-intlayer/index.md +258 -0
- package/docs/tr/packages/express-intlayer/t.md +459 -0
- package/docs/tr/packages/intlayer/getConfiguration.md +151 -0
- package/docs/tr/packages/intlayer/getEnumeration.md +165 -0
- package/docs/tr/packages/intlayer/getHTMLTextDir.md +127 -0
- package/docs/tr/packages/intlayer/getLocaleLang.md +87 -0
- package/docs/tr/packages/intlayer/getLocaleName.md +124 -0
- package/docs/tr/packages/intlayer/getLocalizedUrl.md +324 -0
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +225 -0
- package/docs/tr/packages/intlayer/getPathWithoutLocale.md +81 -0
- package/docs/tr/packages/intlayer/getTranslation.md +196 -0
- package/docs/tr/packages/intlayer/getTranslationContent.md +195 -0
- package/docs/tr/packages/intlayer/index.md +505 -0
- package/docs/tr/packages/intlayer-cli/index.md +71 -0
- package/docs/tr/packages/intlayer-editor/index.md +139 -0
- package/docs/tr/packages/lynx-intlayer/index.md +85 -0
- package/docs/tr/packages/next-intlayer/index.md +154 -0
- package/docs/tr/packages/next-intlayer/t.md +354 -0
- package/docs/tr/packages/next-intlayer/useDictionary.md +270 -0
- package/docs/tr/packages/next-intlayer/useIntlayer.md +265 -0
- package/docs/tr/packages/next-intlayer/useLocale.md +133 -0
- package/docs/tr/packages/nuxt-intlayer/index.md +59 -0
- package/docs/tr/packages/preact-intlayer/index.md +55 -0
- package/docs/tr/packages/react-intlayer/index.md +148 -0
- package/docs/tr/packages/react-intlayer/t.md +304 -0
- package/docs/tr/packages/react-intlayer/useDictionary.md +554 -0
- package/docs/tr/packages/react-intlayer/useI18n.md +478 -0
- package/docs/tr/packages/react-intlayer/useIntlayer.md +253 -0
- package/docs/tr/packages/react-intlayer/useLocale.md +212 -0
- package/docs/tr/packages/react-native-intlayer/index.md +85 -0
- package/docs/tr/packages/react-scripts-intlayer/index.md +82 -0
- package/docs/tr/packages/solid-intlayer/index.md +56 -0
- package/docs/tr/packages/svelte-intlayer/index.md +55 -0
- package/docs/tr/packages/vite-intlayer/index.md +82 -0
- package/docs/tr/packages/vue-intlayer/index.md +59 -0
- package/docs/tr/per_locale_file.md +321 -0
- package/docs/tr/readme.md +261 -0
- package/docs/tr/roadmap.md +338 -0
- package/docs/tr/testing.md +200 -0
- package/docs/tr/vs_code_extension.md +154 -0
- package/docs/zh/autoFill.md +40 -18
- package/docs/zh/configuration.md +245 -226
- package/docs/zh/dictionary/content_file.md +1064 -0
- package/docs/zh/intlayer_CMS.md +4 -5
- package/docs/zh/intlayer_with_nestjs.md +268 -0
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +535 -0
- package/docs/zh/intlayer_with_tanstack.md +468 -278
- package/docs/zh/intlayer_with_vite+preact.md +7 -7
- package/docs/zh/intlayer_with_vite+react.md +7 -7
- package/docs/zh/intlayer_with_vite+vue.md +7 -7
- package/docs/zh/packages/vite-intlayer/index.md +3 -3
- package/docs/zh/readme.md +261 -0
- package/docs/zh/testing.md +198 -0
- package/frequent_questions/tr/SSR_Next_no_[locale].md +105 -0
- package/frequent_questions/tr/array_as_content_declaration.md +72 -0
- package/frequent_questions/tr/build_dictionaries.md +59 -0
- package/frequent_questions/tr/build_error_CI_CD.md +75 -0
- package/frequent_questions/tr/customized_locale_list.md +65 -0
- package/frequent_questions/tr/domain_routing.md +114 -0
- package/frequent_questions/tr/esbuild_error.md +30 -0
- package/frequent_questions/tr/get_locale_cookie.md +142 -0
- package/frequent_questions/tr/intlayer_command_undefined.md +156 -0
- package/frequent_questions/tr/locale_incorect_in_url.md +74 -0
- package/frequent_questions/tr/static_rendering.md +45 -0
- package/frequent_questions/tr/translated_path_url.md +56 -0
- package/frequent_questions/tr/unknown_command.md +98 -0
- package/legal/tr/privacy_notice.md +83 -0
- package/legal/tr/terms_of_service.md +55 -0
- package/package.json +12 -12
- package/src/generated/blog.entry.ts +212 -0
- package/src/generated/docs.entry.ts +663 -135
- package/src/generated/frequentQuestions.entry.ts +85 -1
- package/src/generated/legal.entry.ts +7 -1
- package/docs/ar/dictionary/content_extention_customization.md +0 -100
- package/docs/ar/dictionary/get_started.md +0 -527
- package/docs/de/dictionary/content_extention_customization.md +0 -100
- package/docs/de/dictionary/get_started.md +0 -531
- package/docs/en/dictionary/content_extention_customization.md +0 -102
- package/docs/en/dictionary/get_started.md +0 -529
- package/docs/en-GB/dictionary/content_extention_customization.md +0 -100
- package/docs/en-GB/dictionary/get_started.md +0 -591
- package/docs/es/dictionary/content_extention_customization.md +0 -100
- package/docs/es/dictionary/get_started.md +0 -527
- package/docs/fr/dictionary/content_extention_customization.md +0 -100
- package/docs/fr/dictionary/get_started.md +0 -527
- package/docs/hi/dictionary/content_extention_customization.md +0 -100
- package/docs/hi/dictionary/get_started.md +0 -527
- package/docs/it/dictionary/content_extention_customization.md +0 -113
- package/docs/it/dictionary/get_started.md +0 -573
- package/docs/ja/dictionary/content_extention_customization.md +0 -113
- package/docs/ja/dictionary/get_started.md +0 -576
- package/docs/ko/dictionary/content_extention_customization.md +0 -100
- package/docs/ko/dictionary/get_started.md +0 -530
- package/docs/pt/dictionary/content_extention_customization.md +0 -100
- package/docs/pt/dictionary/get_started.md +0 -532
- package/docs/ru/dictionary/content_extention_customization.md +0 -100
- package/docs/ru/dictionary/get_started.md +0 -575
- package/docs/zh/dictionary/content_extention_customization.md +0 -117
- package/docs/zh/dictionary/get_started.md +0 -533
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: React Router v7'de Intlayer ile Başlarken
|
|
5
|
+
description: Intlayer kullanarak React Router v7 uygulamanıza uluslararasılaştırma (i18n) eklemeyi öğrenin. Yerel ayar bilincine sahip yönlendirme ile uygulamanızı çok dilli hale getirmek için bu kapsamlı kılavuzu takip edin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Uluslararasılaştırma
|
|
8
|
+
- Dokümantasyon
|
|
9
|
+
- Intlayer
|
|
10
|
+
- React Router v7
|
|
11
|
+
- React
|
|
12
|
+
- i18n
|
|
13
|
+
- TypeScript
|
|
14
|
+
- Yerel Yönlendirme
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- environment
|
|
18
|
+
- vite-and-react
|
|
19
|
+
- react-router-v7
|
|
20
|
+
applicationTemplate: https://github.com/AydinTheFirst/react-router-intlayer
|
|
21
|
+
author: AydinTheFirst
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Intlayer ve React Router v7 ile uluslararasılaştırma (i18n) başlangıç kılavuzu
|
|
25
|
+
|
|
26
|
+
Bu kılavuz, React Router v7 projelerinde yerel ayar bilincine sahip yönlendirme, TypeScript desteği ve modern geliştirme uygulamaları ile **Intlayer**'ı sorunsuz bir şekilde entegre etmeyi gösterir.
|
|
27
|
+
|
|
28
|
+
## Intlayer Nedir?
|
|
29
|
+
|
|
30
|
+
**Intlayer**, modern web uygulamalarında çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma (i18n) kütüphanesidir.
|
|
31
|
+
|
|
32
|
+
Intlayer ile şunları yapabilirsiniz:
|
|
33
|
+
|
|
34
|
+
- **Bileşen düzeyinde bildirimsel sözlükler kullanarak çevirileri kolayca yönetin**.
|
|
35
|
+
- **Meta verileri, rotaları ve içeriği dinamik olarak yerelleştirin**.
|
|
36
|
+
- **Otomatik tamamlama ve hata algılama ile TypeScript desteği sağlayın**.
|
|
37
|
+
- **Dinamik yerel algılama ve anahtarlama gibi gelişmiş özelliklerden yararlanın**.
|
|
38
|
+
- **React Router v7'nin yapılandırma tabanlı yönlendirme sistemi ile yerel ayar bilincine sahip yönlendirmeyi etkinleştirin**.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## React Router v7 Uygulamasında Intlayer Kurulumu Adım Adım Kılavuzu
|
|
43
|
+
|
|
44
|
+
### Adım 1: Bağımlılıkları Kurma
|
|
45
|
+
|
|
46
|
+
Tercih ettiğiniz paket yöneticisini kullanarak gerekli paketleri kurun:
|
|
47
|
+
|
|
48
|
+
```bash packageManager="npm"
|
|
49
|
+
npm install intlayer react-intlayer
|
|
50
|
+
npm install vite-intlayer --save-dev
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```bash packageManager="pnpm"
|
|
54
|
+
pnpm add intlayer react-intlayer
|
|
55
|
+
pnpm add vite-intlayer --save-dev
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- **intlayer**
|
|
59
|
+
|
|
60
|
+
Yapılandırma yönetimi, çeviri, [içerik bildirimi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md), derleme ve [CLI komutları](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md) için uluslararasılaştırma araçları sağlayan çekirdek paket.
|
|
61
|
+
|
|
62
|
+
- **react-intlayer**
|
|
63
|
+
Intlayer'ı React uygulaması ile entegre eden paket. React uluslararasılaştırması için bağlam sağlayıcıları ve kancalar sağlar.
|
|
64
|
+
|
|
65
|
+
- **vite-intlayer**
|
|
66
|
+
[Vite paketleyici](https://vite.dev/guide/why.html#why-bundle-for-production) ile Intlayer'ı entegre etmek için Vite eklentisini içerir, ayrıca kullanıcının tercih ettiği yerel ayarı algılamak, çerezleri yönetmek ve URL yönlendirmesini işlemek için middleware içerir.
|
|
67
|
+
|
|
68
|
+
### Adım 2: Projenizi Yapılandırma
|
|
69
|
+
|
|
70
|
+
Uygulamanızın dillerini yapılandırmak için bir yapılandırma dosyası oluşturun:
|
|
71
|
+
|
|
72
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
73
|
+
import { type IntlayerConfig, Locales } from "intlayer";
|
|
74
|
+
|
|
75
|
+
const config: IntlayerConfig = {
|
|
76
|
+
internationalization: {
|
|
77
|
+
defaultLocale: Locales.ENGLISH,
|
|
78
|
+
locales: [Locales.ENGLISH, Locales.TURKISH],
|
|
79
|
+
},
|
|
80
|
+
middleware: {
|
|
81
|
+
prefixDefault: true, // URL'lerde her zaman varsayılan yerel ayarı önekle
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export default config;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
89
|
+
import { Locales } from "intlayer";
|
|
90
|
+
|
|
91
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
92
|
+
const config = {
|
|
93
|
+
internationalization: {
|
|
94
|
+
defaultLocale: Locales.ENGLISH,
|
|
95
|
+
locales: [Locales.ENGLISH, Locales.TURKISH],
|
|
96
|
+
},
|
|
97
|
+
middleware: {
|
|
98
|
+
prefixDefault: true,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export default config;
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
106
|
+
const { Locales } = require("intlayer");
|
|
107
|
+
|
|
108
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
109
|
+
const config = {
|
|
110
|
+
internationalization: {
|
|
111
|
+
defaultLocale: Locales.ENGLISH,
|
|
112
|
+
locales: [Locales.ENGLISH, Locales.TURKISH],
|
|
113
|
+
},
|
|
114
|
+
middleware: {
|
|
115
|
+
prefixDefault: true,
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
module.exports = config;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
> Bu yapılandırma dosyası aracılığıyla, yerelleştirilmiş URL'ler, middleware yönlendirmesi, çerez adları, içerik bildirimlerinizin konumu ve uzantısı, konsolda Intlayer günlüklerinin devre dışı bırakılması ve daha fazlasını ayarlayabilirsiniz. Kullanılabilir parametrelerin tam listesi için [yapılandırma dokümantasyonuna](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md) bakın.
|
|
123
|
+
|
|
124
|
+
### Adım 3: React Router v7 Rotalarını Yapılandırma
|
|
125
|
+
|
|
126
|
+
Yerel ayar bilincine sahip rotalarla yönlendirme yapılandırmanızı ayarlayın:
|
|
127
|
+
|
|
128
|
+
```typescript fileName="app/routes.ts" codeFormat="typescript"
|
|
129
|
+
import { layout, route, type RouteConfig } from "@react-router/dev/routes";
|
|
130
|
+
|
|
131
|
+
export default [
|
|
132
|
+
layout("routes/layout.tsx", [
|
|
133
|
+
route("/", "routes/page.tsx"), // Kök sayfa - yerel ayara yönlendirir
|
|
134
|
+
route("/:lang", "routes/[lang]/page.tsx"), // Yerelleştirilmiş ana sayfa
|
|
135
|
+
route("/:lang/about", "routes/[lang]/about/page.tsx"), // Yerelleştirilmiş hakkımızda sayfası
|
|
136
|
+
]),
|
|
137
|
+
] satisfies RouteConfig;
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Adım 4: Vite Yapılandırmanızda Intlayer'ı Entegre Etme
|
|
141
|
+
|
|
142
|
+
Intlayer eklentisini yapılandırmanıza ekleyin:
|
|
143
|
+
|
|
144
|
+
```typescript fileName="vite.config.ts" codeFormat="typescript"
|
|
145
|
+
import { reactRouter } from "@react-router/dev/vite";
|
|
146
|
+
import { defineConfig } from "vite";
|
|
147
|
+
import { intlayerMiddlewarePlugin, intlayerPlugin } from "vite-intlayer";
|
|
148
|
+
import tsconfigPaths from "vite-tsconfig-paths";
|
|
149
|
+
|
|
150
|
+
export default defineConfig({
|
|
151
|
+
plugins: [
|
|
152
|
+
reactRouter(),
|
|
153
|
+
tsconfigPaths(),
|
|
154
|
+
intlayerPlugin(),
|
|
155
|
+
intlayerMiddlewarePlugin(),
|
|
156
|
+
],
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
> `intlayerPlugin()` Vite eklentisi, Intlayer'ı Vite ile entegre etmek için kullanılır. İçerik bildirim dosyalarının oluşturulmasını sağlar ve bunları geliştirme modunda izler. Vite uygulaması içinde Intlayer ortam değişkenlerini tanımlar. Ayrıca, performansı optimize etmek için takma adlar sağlar.
|
|
161
|
+
|
|
162
|
+
### Adım 5: Düzen Bileşenleri Oluşturma
|
|
163
|
+
|
|
164
|
+
Kök düzeninizi ve yerel ayar özel düzenlerinizi ayarlayın:
|
|
165
|
+
|
|
166
|
+
#### Kök Düzen
|
|
167
|
+
|
|
168
|
+
```tsx fileName="app/routes/layout.tsx" codeFormat="typescript"
|
|
169
|
+
// app/routes/layout.tsx
|
|
170
|
+
import { Outlet } from "react-router";
|
|
171
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
172
|
+
|
|
173
|
+
export default function RootLayout() {
|
|
174
|
+
return (
|
|
175
|
+
<IntlayerProvider>
|
|
176
|
+
<Outlet />
|
|
177
|
+
</IntlayerProvider>
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Adım 6: İçeriğinizi Bildirin
|
|
183
|
+
|
|
184
|
+
Çevirileri depolamak için içerik bildirimlerinizi oluşturun ve yönetin:
|
|
185
|
+
|
|
186
|
+
```tsx fileName="app/routes/[lang]/page.content.ts" contentDeclarationFormat="typescript"
|
|
187
|
+
import { t, type Dictionary } from "intlayer";
|
|
188
|
+
|
|
189
|
+
const pageContent = {
|
|
190
|
+
key: "page",
|
|
191
|
+
content: {
|
|
192
|
+
title: t({
|
|
193
|
+
en: "Welcome to React Router v7 + Intlayer",
|
|
194
|
+
tr: "React Router v7 + Intlayer'a Hoş Geldiniz",
|
|
195
|
+
}),
|
|
196
|
+
description: t({
|
|
197
|
+
en: "Build multilingual applications with ease using React Router v7 and Intlayer.",
|
|
198
|
+
tr: "React Router v7 ve Intlayer kullanarak kolayca çok dilli uygulamalar geliştirin.",
|
|
199
|
+
}),
|
|
200
|
+
aboutLink: t({
|
|
201
|
+
en: "Learn About Us",
|
|
202
|
+
tr: "Hakkımızda Öğrenin",
|
|
203
|
+
}),
|
|
204
|
+
homeLink: t({
|
|
205
|
+
en: "Home",
|
|
206
|
+
tr: "Ana Sayfa",
|
|
207
|
+
}),
|
|
208
|
+
},
|
|
209
|
+
} satisfies Dictionary;
|
|
210
|
+
|
|
211
|
+
export default pageContent;
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
> İçerik bildirimleriniz, `contentDir` dizinine dahil edildiği sürece uygulamanızın herhangi bir yerinde tanımlanabilir (varsayılan olarak, `./app`). Ve içerik bildirim dosyası uzantısıyla eşleşmelidir (varsayılan olarak, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
215
|
+
|
|
216
|
+
> Daha fazla detay için [içerik bildirim dokümantasyonuna](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md) bakın.
|
|
217
|
+
|
|
218
|
+
### Adım 7: Yerel Ayar Bilincine Sahip Bileşenler Oluşturma
|
|
219
|
+
|
|
220
|
+
Yerel ayar bilincine sahip navigasyon için bir `LocalizedLink` bileşeni oluşturun:
|
|
221
|
+
|
|
222
|
+
```tsx fileName="app/components/localized-link.tsx" codeFormat="typescript"
|
|
223
|
+
// app/components/localized-link.tsx
|
|
224
|
+
import { getLocalizedUrl } from "intlayer";
|
|
225
|
+
import { useLocale } from "react-intlayer";
|
|
226
|
+
import React from "react";
|
|
227
|
+
import { Link, useLocation } from "react-router";
|
|
228
|
+
|
|
229
|
+
type RouterLinkProps = React.ComponentProps<typeof Link>;
|
|
230
|
+
|
|
231
|
+
export default function LocalizedLink({ to, ...props }: RouterLinkProps) {
|
|
232
|
+
const { locale } = useLocale();
|
|
233
|
+
const location = useLocation();
|
|
234
|
+
|
|
235
|
+
const isExternal = (path: string) =>
|
|
236
|
+
/^([a-z][a-z0-9+.-]*:)?\/\//i.test(path) || path.startsWith("mailto:");
|
|
237
|
+
|
|
238
|
+
if (typeof to === "string") {
|
|
239
|
+
if (to.startsWith("/") && !isExternal(to)) {
|
|
240
|
+
return <Link to={getLocalizedUrl(to, locale)} {...props} />;
|
|
241
|
+
}
|
|
242
|
+
return <Link to={to} {...props} />;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (to && typeof to === "object") {
|
|
246
|
+
const pathname = (to as { pathname?: string }).pathname;
|
|
247
|
+
if (pathname && pathname.startsWith("/") && !isExternal(pathname)) {
|
|
248
|
+
return (
|
|
249
|
+
<Link
|
|
250
|
+
to={{ ...to, pathname: getLocalizedUrl(pathname, locale) }}
|
|
251
|
+
{...props}
|
|
252
|
+
/>
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
return <Link to={to} {...props} />;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return (
|
|
259
|
+
<Link
|
|
260
|
+
to={getLocalizedUrl(location.pathname + location.search, locale)}
|
|
261
|
+
{...props}
|
|
262
|
+
/>
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Adım 8: Sayfalarınızda Intlayer'ı Kullanın
|
|
268
|
+
|
|
269
|
+
Uygulamanız boyunca içerik sözlüklerinize erişin:
|
|
270
|
+
|
|
271
|
+
#### Kök Yönlendirme Sayfası
|
|
272
|
+
|
|
273
|
+
```tsx fileName="app/routes/page.tsx" codeFormat="typescript"
|
|
274
|
+
// app/routes/page.tsx
|
|
275
|
+
import { useLocale } from "react-intlayer";
|
|
276
|
+
import { Navigate } from "react-router";
|
|
277
|
+
|
|
278
|
+
export default function Page() {
|
|
279
|
+
const { locale } = useLocale();
|
|
280
|
+
|
|
281
|
+
return <Navigate replace to={locale} />;
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
#### Yerelleştirilmiş Ana Sayfa
|
|
286
|
+
|
|
287
|
+
```tsx fileName="app/routes/[lang]/page.tsx" codeFormat="typescript"
|
|
288
|
+
import { useIntlayer } from "react-intlayer";
|
|
289
|
+
import LocalizedLink from "~/components/localized-link";
|
|
290
|
+
|
|
291
|
+
export default function Page() {
|
|
292
|
+
const content = useIntlayer("page");
|
|
293
|
+
|
|
294
|
+
return (
|
|
295
|
+
<div style={{ padding: "2rem", textAlign: "center" }}>
|
|
296
|
+
<h1>{content.title}</h1>
|
|
297
|
+
<p>{content.description}</p>
|
|
298
|
+
<nav style={{ marginTop: "2rem" }}>
|
|
299
|
+
<LocalizedLink
|
|
300
|
+
to="/about"
|
|
301
|
+
style={{
|
|
302
|
+
display: "inline-block",
|
|
303
|
+
padding: "0.5rem 1rem",
|
|
304
|
+
backgroundColor: "#007bff",
|
|
305
|
+
color: "white",
|
|
306
|
+
textDecoration: "none",
|
|
307
|
+
borderRadius: "4px",
|
|
308
|
+
}}
|
|
309
|
+
>
|
|
310
|
+
{content.aboutLink}
|
|
311
|
+
</LocalizedLink>
|
|
312
|
+
</nav>
|
|
313
|
+
</div>
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
> `useIntlayer` kancası hakkında daha fazla bilgi edinmek için [dokümantasyona](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md) bakın.
|
|
319
|
+
|
|
320
|
+
### Adım 9: Yerel Ayar Anahtarlama Bileşeni Oluşturma
|
|
321
|
+
|
|
322
|
+
Kullanıcıların dilleri değiştirmesine izin veren bir bileşen oluşturun:
|
|
323
|
+
|
|
324
|
+
```tsx fileName="app/components/locale-switcher.tsx" codeFormat="typescript"
|
|
325
|
+
import { getLocalizedUrl, getLocaleName } from "intlayer";
|
|
326
|
+
import { useLocale } from "react-intlayer";
|
|
327
|
+
import { useLocation, useNavigate } from "react-router";
|
|
328
|
+
|
|
329
|
+
export default function LocaleSwitcher() {
|
|
330
|
+
const { locale, availableLocales, setLocale } = useLocale();
|
|
331
|
+
const location = useLocation();
|
|
332
|
+
const navigate = useNavigate();
|
|
333
|
+
|
|
334
|
+
const handleLocaleChange = (newLocale: string) => {
|
|
335
|
+
const localizedUrl = getLocalizedUrl(
|
|
336
|
+
location.pathname + location.search,
|
|
337
|
+
newLocale
|
|
338
|
+
);
|
|
339
|
+
setLocale(newLocale);
|
|
340
|
+
navigate(localizedUrl);
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
return (
|
|
344
|
+
<div style={{ margin: "1rem 0" }}>
|
|
345
|
+
<label htmlFor="locale-select">Dil Seçin: </label>
|
|
346
|
+
<select
|
|
347
|
+
id="locale-select"
|
|
348
|
+
value={locale}
|
|
349
|
+
onChange={(e) => handleLocaleChange(e.target.value)}
|
|
350
|
+
style={{ padding: "0.25rem", marginLeft: "0.5rem" }}
|
|
351
|
+
>
|
|
352
|
+
{availableLocales.map((availableLocale) => (
|
|
353
|
+
<option key={availableLocale} value={availableLocale}>
|
|
354
|
+
{getLocaleName(availableLocale)}
|
|
355
|
+
</option>
|
|
356
|
+
))}
|
|
357
|
+
</select>
|
|
358
|
+
</div>
|
|
359
|
+
);
|
|
360
|
+
}
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
> `useLocale` kancası hakkında daha fazla bilgi edinmek için [dokümantasyona](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md) bakın.
|
|
364
|
+
|
|
365
|
+
### Adım 10: HTML Özellikleri Yönetimini Ekleyin (İsteğe Bağlı)
|
|
366
|
+
|
|
367
|
+
HTML lang ve dir özelliklerini yönetmek için bir kanca oluşturun:
|
|
368
|
+
|
|
369
|
+
```tsx fileName="app/hooks/useI18nHTMLAttributes.tsx" codeFormat="typescript"
|
|
370
|
+
// app/hooks/useI18nHTMLAttributes.tsx
|
|
371
|
+
import { getHTMLTextDir } from "intlayer";
|
|
372
|
+
import { useEffect } from "react";
|
|
373
|
+
import { useLocale } from "react-intlayer";
|
|
374
|
+
|
|
375
|
+
export const useI18nHTMLAttributes = () => {
|
|
376
|
+
const { locale } = useLocale();
|
|
377
|
+
|
|
378
|
+
useEffect(() => {
|
|
379
|
+
document.documentElement.lang = locale;
|
|
380
|
+
document.documentElement.dir = getHTMLTextDir(locale);
|
|
381
|
+
}, [locale]);
|
|
382
|
+
};
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
Ardından kök bileşeninizde kullanın:
|
|
386
|
+
|
|
387
|
+
```tsx fileName="app/root.tsx" codeFormat="typescript"
|
|
388
|
+
// app/routes/layout.tsx
|
|
389
|
+
import { Outlet } from "react-router";
|
|
390
|
+
import { IntlayerProvider } from "react-intlayer";
|
|
391
|
+
|
|
392
|
+
import { useI18nHTMLAttributes } from "app/hooks/useI18nHTMLAttributes"; // kancayı içe aktarın
|
|
393
|
+
|
|
394
|
+
export default function RootLayout() {
|
|
395
|
+
useI18nHTMLAttributes(); // kancayı çağırın
|
|
396
|
+
|
|
397
|
+
return (
|
|
398
|
+
<IntlayerProvider>
|
|
399
|
+
<Outlet />
|
|
400
|
+
</IntlayerProvider>
|
|
401
|
+
);
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### Adım 11: Uygulamanızı Oluşturun ve Çalıştırın
|
|
406
|
+
|
|
407
|
+
İçerik sözlüklerini oluşturun ve uygulamanızı çalıştırın:
|
|
408
|
+
|
|
409
|
+
```bash packageManager="npm"
|
|
410
|
+
# Intlayer sözlüklerini oluşturun
|
|
411
|
+
npm run intlayer:build
|
|
412
|
+
|
|
413
|
+
# Geliştirme sunucusunu başlatın
|
|
414
|
+
npm run dev
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
```bash packageManager="pnpm"
|
|
418
|
+
# Intlayer sözlüklerini oluşturun
|
|
419
|
+
pnpm intlayer:build
|
|
420
|
+
|
|
421
|
+
# Geliştirme sunucusunu başlatın
|
|
422
|
+
pnpm dev
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
```bash packageManager="yarn"
|
|
426
|
+
# Intlayer sözlüklerini oluşturun
|
|
427
|
+
yarn intlayer:build
|
|
428
|
+
|
|
429
|
+
# Geliştirme sunucusunu başlatın
|
|
430
|
+
yarn dev
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### Adım 12: TypeScript Yapılandırma (İsteğe Bağlı)
|
|
434
|
+
|
|
435
|
+
Intlayer, TypeScript'ten faydalanmak ve kod tabanınızı daha güçlü hale getirmek için modül genişletmesi kullanır.
|
|
436
|
+
|
|
437
|
+
TypeScript yapılandırmanızın otomatik olarak oluşturulan türleri içerdiğinden emin olun:
|
|
438
|
+
|
|
439
|
+
```json5 fileName="tsconfig.json"
|
|
440
|
+
{
|
|
441
|
+
compilerOptions: {
|
|
442
|
+
// ... mevcut TypeScript yapılandırmalarınız
|
|
443
|
+
},
|
|
444
|
+
include: [
|
|
445
|
+
// ... mevcut dahil ettikleriniz
|
|
446
|
+
".intlayer/**/*.ts", // Otomatik olarak oluşturulan türleri dahil edin
|
|
447
|
+
],
|
|
448
|
+
}
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### Git Yapılandırma
|
|
452
|
+
|
|
453
|
+
Intlayer tarafından oluşturulan dosyaları yok saymanız önerilir. Bu, onları Git deponuza göndermekten kaçınmanıza olanak tanır.
|
|
454
|
+
|
|
455
|
+
Bunu yapmak için, `.gitignore` dosyanıza aşağıdaki talimatları ekleyin:
|
|
456
|
+
|
|
457
|
+
```plaintext fileName=".gitignore"
|
|
458
|
+
# Intlayer tarafından oluşturulan dosyaları yok say
|
|
459
|
+
.intlayer
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Üretim Dağıtımı
|
|
465
|
+
|
|
466
|
+
Uygulamanızı dağıtırken:
|
|
467
|
+
|
|
468
|
+
1. **Uygulamanızı oluşturun:**
|
|
469
|
+
|
|
470
|
+
```bash
|
|
471
|
+
npm run build
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
2. **Intlayer sözlüklerini oluşturun:**
|
|
475
|
+
|
|
476
|
+
```bash
|
|
477
|
+
npm run intlayer:build
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
3. **Üretimde middleware kullanıyorsanız `vite-intlayer`'ı bağımlılıklara taşıyın:**
|
|
481
|
+
```bash
|
|
482
|
+
npm install vite-intlayer --save
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
Uygulamanız artık şunları destekleyecek:
|
|
486
|
+
|
|
487
|
+
- **URL Yapısı**: `/en`, `/en/about`, `/tr`, `/tr/about`
|
|
488
|
+
- **Tarayıcı tercihlerine göre otomatik yerel ayar algılama**
|
|
489
|
+
- **React Router v7 ile yerel ayar bilincine sahip yönlendirme**
|
|
490
|
+
- **Otomatik olarak oluşturulan türlerle TypeScript desteği**
|
|
491
|
+
- **Uygun yerel ayar yönetimi ile sunucu tarafı işleme**
|
|
492
|
+
|
|
493
|
+
## VS Code Uzantısı
|
|
494
|
+
|
|
495
|
+
Intlayer ile geliştirme deneyiminizi geliştirmek için, resmi **Intlayer VS Code Uzantısı**'nı kurabilirsiniz.
|
|
496
|
+
|
|
497
|
+
[VS Code Marketplace'ten Kurun](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
498
|
+
|
|
499
|
+
Bu uzantı şunları sağlar:
|
|
500
|
+
|
|
501
|
+
- **Çeviri anahtarları için otomatik tamamlama**.
|
|
502
|
+
- **Eksik çeviriler için gerçek zamanlı hata algılama**.
|
|
503
|
+
- **Çevrilmiş içeriğin satır içi önizlemeleri**.
|
|
504
|
+
- **Çevirileri kolayca oluşturmak ve güncellemek için hızlı eylemler**.
|
|
505
|
+
|
|
506
|
+
Uzantının nasıl kullanılacağı hakkında daha fazla detay için, [Intlayer VS Code Uzantısı dokümantasyonuna](https://intlayer.org/doc/vs-code-extension) bakın.
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## Daha Fazla İlerleyin
|
|
511
|
+
|
|
512
|
+
Daha fazla ilerlemek için, [görsel düzenleyiciyi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) uygulayabilir veya içeriğinizi [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md) kullanarak harici hale getirebilirsiniz.
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
## Dokümantasyon Referansları
|
|
517
|
+
|
|
518
|
+
- [Intlayer Dokümantasyonu](https://intlayer.org)
|
|
519
|
+
- [React Router v7 Dokümantasyonu](https://reactrouter.com/)
|
|
520
|
+
- [useIntlayer kancası](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
|
|
521
|
+
- [useLocale kancası](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
|
|
522
|
+
- [İçerik Bildirimi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md)
|
|
523
|
+
- [Yapılandırma](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
|
|
524
|
+
|
|
525
|
+
Bu kapsamlı kılavuz, React Router v7 ile Intlayer'ı yerel ayar bilincine sahip yönlendirme ve TypeScript desteği ile tamamen uluslararasılaştırılmış bir uygulama için entegre etmek için ihtiyacınız olan her şeyi sağlar.
|
|
526
|
+
|
|
527
|
+
## Dokümantasyon Geçmişi
|
|
528
|
+
|
|
529
|
+
| Sürüm | Tarih | Değişiklikler |
|
|
530
|
+
| ----- | --------- | ---------------------------- |
|
|
531
|
+
| 5.8.2 | 2025-09-4 | React Router v7 için eklendi |
|