@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,273 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: SEO ve Uluslararasılaştırma
|
|
5
|
+
description: Çok dilli web sitenizi arama motorları için optimize etmeyi ve SEO'nuzu iyileştirmeyi öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- SEO
|
|
8
|
+
- Intlayer
|
|
9
|
+
- Internationalization
|
|
10
|
+
- Blog
|
|
11
|
+
- Next.js
|
|
12
|
+
- JavaScript
|
|
13
|
+
- React
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- SEO-and-i18n
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# SEO & I18n: Web Sitenizi Çok Dilli Yapmanın Nihai Rehberi
|
|
20
|
+
|
|
21
|
+
Dünya çapında daha fazla kullanıcıya ulaşmak mı istiyorsunuz? Web sitenizi çok dilli yapmak, kitleinizi genişletmenin ve SEO'nuzu (Arama Motoru Optimizasyonu) iyileştirmenin en iyi yollarından biridir. Bu blog yazısında, uluslararası SEO'nun temellerini, genellikle **i18n** (uluslararasılaştırmanın kısaltması) olarak adlandırılanı, açık ve anlaşılır terimlerle açıklayacağız. Almanız gereken temel kararları, `hreflang` gibi teknik unsurları nasıl kullanacağınızı öğreneceksiniz ve **Intlayer** gibi araçların Next.js projelerinizde çok dilli yapmayı nasıl basitleştirebileceğini göreceksiniz.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. Web Sitenizi Çok Dilli Yapmak Ne Anlama Geliyor?
|
|
26
|
+
|
|
27
|
+
Çok dilli bir web sitesi, içeriğini birden fazla dilde sunar. Örneğin, İngilizce bir sürümünüz (`example.com/en/`), Fransızca bir sürümünüz (`example.com/fr/`) ve İspanyolca bir sürümünüz (`example.com/es/`) olabilir. Bu yaklaşım, arama motorlarının kullanıcıların tercihlerine veya coğrafi konumlarına göre doğru dil sürümünü göstermesini sağlar.
|
|
28
|
+
|
|
29
|
+
Bunu doğru yaptığınızda, İngilizce konuşmayanlar için çok daha kullanıcı dostu bir deneyim yaratırsınız, bu da daha iyi etkileşim, daha yüksek dönüşüm oranları ve farklı bölgelerde iyileştirilmiş SEO anlamına gelir.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. Doğru URL Yapısını Seçmek
|
|
34
|
+
|
|
35
|
+
Birden fazla dil sürümüne karar verirseniz, sitenizin URL'lerini açık ve tutarlı bir şekilde organize etmeniz gerekir. Her dil (veya bölge) internette kendi benzersiz "adresine" sahip olmalıdır. Aşağıda çok dilli web sitelerini yapılandırmanın üç yaygın yolu vardır:
|
|
36
|
+
|
|
37
|
+
1. Ülke Kodu Üst Düzey Alan Adları (ccTLD'ler)
|
|
38
|
+
- Örnek: `example.fr`, `example.de`
|
|
39
|
+
- **Artıları:** Arama motorlarına içeriğin hangi ülkeyi hedeflediğini güçlü bir sinyal gönderir (örneğin, `.fr` = Fransa).
|
|
40
|
+
- **Eksileri:** Birden fazla alan adını yönetmek daha pahalı ve karmaşık olabilir.
|
|
41
|
+
|
|
42
|
+
2. **Alt Alan Adları**
|
|
43
|
+
- **Örnek:** `fr.example.com`, `de.example.com`
|
|
44
|
+
- **Artıları:** Her dil kendi alt alan adında "yaşar", dilleri eklemek veya kaldırmak nispeten kolaydır.
|
|
45
|
+
- **Eksileri:** Arama motorları bazen alt alan adlarını ayrı siteler olarak değerlendirir, bu da ana alan adınızın otoritesini zayıflatabilir.
|
|
46
|
+
|
|
47
|
+
3. **Alt Dizinler (Alt Klasörler)**
|
|
48
|
+
- **Örnek:** `example.com/fr/`, `example.com/de/`
|
|
49
|
+
- **Artıları:** Yönetmesi kolaydır ve tüm trafik bir ana alan adına yönlendirilir.
|
|
50
|
+
- **Eksileri:** ccTLD'ler kadar güçlü bir yerel SEO sinyali değildir (ancak doğru yapılırsa hala çok etkilidir).
|
|
51
|
+
|
|
52
|
+
> **İpucu:** Küresel bir markanız varsa ve işleri basit tutmak istiyorsanız, alt dizinler genellikle en iyisidir. Sadece bir veya iki ana ülkeyi hedefliyorsanız ve her birini gerçekten vurgulamak istiyorsanız, ccTLD'ler yol olabilir.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 3. Hreflang ile Dil Hedeflemeyi Usta Düzeyine Getirmek
|
|
57
|
+
|
|
58
|
+
### 3.1. Hreflang Nedir?
|
|
59
|
+
|
|
60
|
+
Birden fazla dilde aynı veya çok benzer içeriğiniz olduğunda, Google gibi arama motorları hangi sürümü kullanıcıya gösterecekleri konusunda karışabilir. **Hreflang**, arama motorlarına belirli bir sayfanın hangi dil (ve bölge) için tasarlandığını ve alternatif dil/bölge sayfalarının ne olduğunu söyleyen bir HTML özelliğidir.
|
|
61
|
+
|
|
62
|
+
### 3.2. Bu Neden Önemli?
|
|
63
|
+
|
|
64
|
+
1. **Yinelenen içerik** sorunlarını önler (arama motorları aynı içeriği birden fazla kez yayınladığınızı düşündüğünde).
|
|
65
|
+
2. **Fransız kullanıcıların Fransızca sürümü**, **İspanyol kullanıcıların İspanyolca sürümü** görmesini sağlar ve benzeri.
|
|
66
|
+
3. Genel kullanıcı deneyimini iyileştirir, bu da daha iyi etkileşim ve daha yüksek SEO sıralaması anlamına gelir.
|
|
67
|
+
|
|
68
|
+
### 3.3. `<head>` Etiketinde Hreflang Nasıl Kullanılır
|
|
69
|
+
|
|
70
|
+
HTML'nizde şuna benzer bir şey ekleyeceksiniz:
|
|
71
|
+
|
|
72
|
+
```html
|
|
73
|
+
<link rel="alternate" hreflang="en" href="https://example.com/en" />
|
|
74
|
+
<link rel="alternate" hreflang="fr" href="https://example.com/fr" />
|
|
75
|
+
<link rel="alternate" hreflang="es" href="https://example.com/es" />
|
|
76
|
+
<link rel="alternate" hreflang="x-default" href="https://example.com/en" />
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- **`hreflang="en"`**: Sayfanın İngilizce sürümünü belirtir.
|
|
80
|
+
- **`hreflang="fr"`**: Sayfanın Fransızca sürümünü belirtir.
|
|
81
|
+
- **`hreflang="es"`**: Sayfanın İspanyolca sürümünü belirtir.
|
|
82
|
+
- **`hreflang="x-default"`**: Diğer diller kullanıcının tercihleriyle eşleşmediğinde bir "yedek" dil veya varsayılan URL.
|
|
83
|
+
|
|
84
|
+
> **Hızlı Not:** Bu etiketlerdeki URL'lerin doğrudan son sayfaya yönlendirdiğinden emin olun, **ekstra yönlendirme olmadan**.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 4. İçeriği Gerçekten "Yerel" Yapmak (Sadece Çevrilmiş Değil)
|
|
89
|
+
|
|
90
|
+
### 4.1. Yerelleştirme vs. Çeviri
|
|
91
|
+
|
|
92
|
+
- **Çeviri**, metni bir dilden diğerine kelime kelime dönüştürmek anlamına gelir.
|
|
93
|
+
- **Yerelleştirme**, içeriğin formatını, para birimini, ölçümleri ve kültürel referansları yerel bir kitle için uyarlamak anlamına gelir. Örneğin, Fransa'yı hedefliyorsanız, `$` yerine `€` kullanır ve yerel tatilleri veya bölgeye özgü ayrıntıları bahsedebilirsiniz.
|
|
94
|
+
|
|
95
|
+
### 4.2. Yinelenen İçerikten Kaçınmak
|
|
96
|
+
|
|
97
|
+
İyi çevirilere rağmen, arama motorları yapısı çok benzer görünüyorsa sitenizi yinelenen içerik için işaretleyebilir. Hreflang, bu sayfaların kopya olmadığını, dil varyasyonları olduğunu açıklar.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 5. Teknik SEO Gereklilikleri
|
|
102
|
+
|
|
103
|
+
### 5.1. Dil Bildirimleri (`lang` ve `dir`)
|
|
104
|
+
|
|
105
|
+
HTML etiketinizde dili şöyle bildirebilirsiniz:
|
|
106
|
+
|
|
107
|
+
```html
|
|
108
|
+
<html lang="en"></html>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
- **`lang="en"`** tarayıcıların ve yardımcı teknolojilerin dili anlamasına yardımcı olur.
|
|
112
|
+
|
|
113
|
+
Sağdan sola diller için (Arapça veya İbranice gibi), şunu ekleyin:
|
|
114
|
+
|
|
115
|
+
```html
|
|
116
|
+
<html dir="rtl" lang="ar"></html>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- **`dir="rtl"`** metin yönünün sağdan sola olduğundan emin olur.
|
|
120
|
+
|
|
121
|
+
### 5.2. Kurallı Etiketler
|
|
122
|
+
|
|
123
|
+
Kurallı etiketler, yakın kopya sayfalarınız varsa arama motorlarına hangi sayfanın "orijinal" veya birincil sürüm olduğunu söyler. Genellikle çok dilli siteler için **kendi kendine referans veren** bir kurallı etiketiniz olur.
|
|
124
|
+
|
|
125
|
+
```html
|
|
126
|
+
<link rel="canonical" href="https://example.com/fr/produits" />
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 6. Birden Fazla Dilde Sayfa İçi SEO
|
|
132
|
+
|
|
133
|
+
### 6.1. Başlık & Meta Açıklamaları
|
|
134
|
+
|
|
135
|
+
- Her dil için **çevrilmiş ve optimize edilmiş**.
|
|
136
|
+
- Her pazar için **anahtar kelime araştırması** yapın çünkü İngilizce'de insanlar ne arıyorsa Fransızca veya İspanyolca'da farklı olabilir.
|
|
137
|
+
|
|
138
|
+
### 6.2. Başlıklar (H1, H2, H3)
|
|
139
|
+
|
|
140
|
+
Başlıklarınız her bölgenin **yerel ifadeleri** veya **anahtar kelimelerini** yansıtmalıdır. Orijinal İngilizce başlığınızı Google Translate'ten geçirmeyin ve işin bittiğini düşünmeyin.
|
|
141
|
+
|
|
142
|
+
### 6.3. Görseller & Medya
|
|
143
|
+
|
|
144
|
+
- Gerekirse alt metni, açıklamaları ve dosya adlarını yerelleştirin.
|
|
145
|
+
- Hedef kültürle rezonansa giren görseller kullanın.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 7. Dil Değiştirme & Kullanıcı Deneyimi
|
|
150
|
+
|
|
151
|
+
### 7.1. Otomatik Yönlendirme mi Yoksa Dil Seçici mi?
|
|
152
|
+
|
|
153
|
+
- **Otomatik Yönlendirme** (IP veya tarayıcı ayarlarına göre) uygun olabilir ama gezginleri veya VPN kullanıcılarını yanlış sürüme gönderebilir.
|
|
154
|
+
- **Bir Dil Seçici** genellikle daha şeffaftır, kullanıcılar yanlış algılanan dil yanlışsa kendi dillerini seçebilir.
|
|
155
|
+
|
|
156
|
+
İşte basitleştirilmiş bir Next.js + Intlayer örneği:
|
|
157
|
+
|
|
158
|
+
```tsx
|
|
159
|
+
import { useLocation, useNavigate } from "react-router-dom";
|
|
160
|
+
import {
|
|
161
|
+
Locales,
|
|
162
|
+
getHTMLTextDir,
|
|
163
|
+
getLocaleName,
|
|
164
|
+
getLocalizedUrl,
|
|
165
|
+
} from "intlayer";
|
|
166
|
+
import { useLocale } from "react-intlayer";
|
|
167
|
+
import { type FC } from "react";
|
|
168
|
+
|
|
169
|
+
const LocaleSwitcher: FC = () => {
|
|
170
|
+
const { pathname, search } = useLocation(); // Geçerli URL yolunu al. Örnek: /fr/about?foo=bar
|
|
171
|
+
const navigate = useNavigate();
|
|
172
|
+
|
|
173
|
+
const { locale, availableLocales, setLocale } = useLocale({
|
|
174
|
+
onLocaleChange: (locale) => {
|
|
175
|
+
// Güncellenmiş yerel ile URL'yi oluştur
|
|
176
|
+
// Örnek: /es/about?foo=bar
|
|
177
|
+
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
178
|
+
|
|
179
|
+
// URL yolunu güncelle
|
|
180
|
+
navigate(pathWithLocale);
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
return (
|
|
185
|
+
<ol>
|
|
186
|
+
{availableLocales.map((localeItem) => (
|
|
187
|
+
<li key={localeItem}>
|
|
188
|
+
<a
|
|
189
|
+
href={getLocalizedUrl(location.pathname, localeItem)}
|
|
190
|
+
hrefLang={locale === localeItem ? "x-default" : localeItem}
|
|
191
|
+
aria-current={locale === localeItem ? "page" : undefined}
|
|
192
|
+
onClick={(e) => {
|
|
193
|
+
e.preventDefault();
|
|
194
|
+
setLocale(localeItem);
|
|
195
|
+
}}
|
|
196
|
+
>
|
|
197
|
+
<span>
|
|
198
|
+
{/* Yerel - örn. FR */}
|
|
199
|
+
{localeItem}
|
|
200
|
+
</span>
|
|
201
|
+
<span>
|
|
202
|
+
{/* Kendi Yerelinde Dil - örn. Français */}
|
|
203
|
+
{getLocaleName(localeItem, locale)}
|
|
204
|
+
</span>
|
|
205
|
+
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
206
|
+
{/* Geçerli Yerel Ayarlı Dil - örn. Francés, geçerli yerel Locales.SPANISH olarak ayarlı */}
|
|
207
|
+
{getLocaleName(localeItem)}
|
|
208
|
+
</span>
|
|
209
|
+
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
210
|
+
{/* İngilizce'de Dil - örn. French */}
|
|
211
|
+
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
212
|
+
</span>
|
|
213
|
+
</a>
|
|
214
|
+
</li>
|
|
215
|
+
))}
|
|
216
|
+
</ol>
|
|
217
|
+
);
|
|
218
|
+
};
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### 7.2. Tercihleri Saklamak
|
|
222
|
+
|
|
223
|
+
- Kullanıcınızın dil seçimini bir **çerez** veya **oturumda** kaydedin.
|
|
224
|
+
- Bir sonraki ziyaretlerinde sitenize otomatik olarak tercih ettikleri dili yükleyebilirsiniz.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 8. Yerel Geri Bağlantılar Oluşturmak
|
|
229
|
+
|
|
230
|
+
**Geri bağlantılar** (dış sitelerden sitenize bağlantılar) önemli bir SEO faktörü olmaya devam ediyor. Çok dilli bir site çalıştırdığınızda şunları göz önünde bulundurun:
|
|
231
|
+
|
|
232
|
+
- Yerel haber sitelerine, bloglara veya forumlara ulaşın. Örneğin, Fransızca alt dizininize işaret eden bir `.fr` alan adı, yerel Fransızca SEO'nuzu artırabilir.
|
|
233
|
+
- Her dil için geri bağlantıları izleyin ve hangi bölgelerin daha fazla PR/pazarlama çabasına ihtiyacı olduğunu görün.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## 9. Çok Dilli Sitenizi İzleme ve Bakım
|
|
238
|
+
|
|
239
|
+
### 9.1. Google Analytics & Search Console
|
|
240
|
+
|
|
241
|
+
- Verilerinizi her dil dizini için segmentleyin (`/en/`, `/fr/`, `/es/`).
|
|
242
|
+
- Her dil temelinde **tarama hatalarına**, **yinelenen içerik işaretlerine** ve **dizinleme sorunlarına** dikkat edin.
|
|
243
|
+
|
|
244
|
+
### 9.2. Düzenli İçerik Güncellemeleri
|
|
245
|
+
|
|
246
|
+
- Çevirileri taze tutun. İngilizce'de bir ürün açıklamasını değiştirirseniz, Fransızca, İspanyolca vb.'de güncelleyin.
|
|
247
|
+
- Güncel olmayan çeviriler müşteriler için kafa karıştırıcı olabilir ve kullanıcı güvenini zedeleyebilir.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 10. Kaçınılması Gereken Yaygın Tuzaklar
|
|
252
|
+
|
|
253
|
+
1. **Makine Çevrilmiş İçerik**
|
|
254
|
+
İnsan incelemesi olmadan otomatik çeviriler hatalarla dolu olabilir.
|
|
255
|
+
|
|
256
|
+
2. **Yanlış veya Eksik `hreflang` Etiketleri**
|
|
257
|
+
Etiketleriniz eksik veya yanlış kodlara sahipse, arama motorları dil sürümlerini kendileri belirleyemez.
|
|
258
|
+
|
|
259
|
+
3. **Sadece JavaScript ile Dil Değiştirme**
|
|
260
|
+
Google her dil için benzersiz URL'leri tarayamazsa, sayfalarınız doğru yerel arama sonuçlarında görünmeyebilir.
|
|
261
|
+
|
|
262
|
+
4. **Kültürel Nüansları Göz Ardı Etmek**
|
|
263
|
+
Bir ülkede işe yarayan bir şaka veya ifade başka bir ülkede saldırgan veya anlamsız olabilir.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Sonuç
|
|
268
|
+
|
|
269
|
+
Web sitenizi çok dilli yapmak, metni çevirmekten daha fazlasını içerir. URL'leri etkili bir şekilde yapılandırmak, arama motorlarının doğru sürümü sunmasına yardımcı olmak için `hreflang` etiketlerini kullanmak ve yerelleştirilmiş görseller, dil seçiciler ve tutarlı navigasyon ile mükemmel bir kullanıcı deneyimi sağlamakla ilgilidir. Bu en iyi uygulamaları takip etmek, küresel pazarlarda başarı için sizi hazırlayacak, kullanıcı memnuniyetini artıracak ve sonuçta bölgeler genelinde daha iyi SEO sonuçları sunacaktır.
|
|
270
|
+
|
|
271
|
+
Next.js kullanıyorsanız (özellikle Next.js 13+'da App Router), **Intlayer** gibi bir araç bu süreci tamamen basitleştirebilir. Yerelleştirilmiş site haritaları oluşturmaktan `hreflang` bağlantılarını otomatik olarak işlemeye, dil algılamaya ve daha fazlasına kadar her şeyi yardımcı olur, böylece kaliteli çok dilli içerik oluşturmaya odaklanabilirsiniz.
|
|
272
|
+
|
|
273
|
+
**Küresel olmaya hazır mısınız?** Bu SEO ve i18n stratejilerini şimdi uygulayın ve dünya çapından yeni ziyaretçilerin sitenizle keşfetmesini ve etkileşim kurmasını izleyin!
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Intlayer ve i18next
|
|
5
|
+
description: Optimal uluslararasılaştırma için Intlayer'ı i18next ile entegre edin. İki çerçeveyi karşılaştırın ve birlikte yapılandırmayı öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- i18next
|
|
9
|
+
- Internationalisation
|
|
10
|
+
- i18n
|
|
11
|
+
- Localisation
|
|
12
|
+
- Translation
|
|
13
|
+
- React
|
|
14
|
+
- Next.js
|
|
15
|
+
- JavaScript
|
|
16
|
+
- TypeScript
|
|
17
|
+
slugs:
|
|
18
|
+
- blog
|
|
19
|
+
- intlayer-with-i18next
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Intlayer ve i18next ile Uluslararasılaştırma
|
|
23
|
+
|
|
24
|
+
i18next, JavaScript uygulamaları için tasarlanmış açık kaynaklı bir uluslararasılaştırma (i18n) çerçevesidir. Yazılım projelerinde çevirileri, yerelleştirmeyi ve dil değiştirmeyi yönetmek için yaygın olarak kullanılır. Ancak, ölçeklenebilirliği ve geliştirmeyi karmaşıklaştırabilecek bazı sınırlamaları vardır.
|
|
25
|
+
|
|
26
|
+
Intlayer, bu sınırlamaları ele alan başka bir uluslararasılaştırma çerçevesidir ve içerik beyanı ve yönetimine daha esnek bir yaklaşım sunar. i18next ve Intlayer arasındaki bazı temel farkları keşfedelim ve her ikisini de optimal uluslararasılaştırma için nasıl yapılandıracağımızı görelim.
|
|
27
|
+
|
|
28
|
+
## Intlayer vs. i18next: Temel Farklılıklar
|
|
29
|
+
|
|
30
|
+
### 1. Sözlük
|
|
31
|
+
|
|
32
|
+
i18next ile çeviri sözlükleri belirli bir klasörde beyan edilmelidir, bu da uygulama ölçeklenebilirliğini karmaşıklaştırabilir. Aksine, Intlayer içeriğin bileşenle aynı dizinde beyan edilmesine izin verir. Bunun birkaç avantajı vardır:
|
|
33
|
+
|
|
34
|
+
- **Basitleştirilmiş İçerik Düzenleme**: Kullanıcıların doğru sözlüğü aramak zorunda kalmadan düzenleme yapmaları, hataları azaltır.
|
|
35
|
+
- **Otomatik Uyum**: Bir bileşen konum değiştirirse veya kaldırılırsa, Intlayer bunu algılar ve otomatik olarak uyum sağlar.
|
|
36
|
+
|
|
37
|
+
### 2. Yapılandırma Karmaşıklığı
|
|
38
|
+
|
|
39
|
+
i18next'i yapılandırmak, Next.js gibi çerçevelerde sunucu tarafı bileşenlerle entegrasyon veya ara yazılım yapılandırma sırasında karmaşık olabilir. Intlayer bu süreci basitleştirir, daha basit yapılandırma sunar.
|
|
40
|
+
|
|
41
|
+
### 3. Çeviri Sözlüklerinin Tutarlılığı
|
|
42
|
+
|
|
43
|
+
i18next ile çeviri sözlüklerinin farklı diller arasında tutarlı olmasını sağlamak zor olabilir. Bu tutarsızlık, düzgün ele alınmazsa uygulama çökmelerine yol açabilir. Intlayer, çevrilmiş içeriğe kısıtlamalar uygulayarak hiçbir çevirinin kaçırılmamasını ve çevrilmiş içeriğin doğru olmasını sağlar.
|
|
44
|
+
|
|
45
|
+
### 4. TypeScript Entegrasyonu
|
|
46
|
+
|
|
47
|
+
Intlayer, kodunuzda içeriğin otomatik önerilerini sağlayarak geliştirme verimliliğini artıran daha iyi TypeScript entegrasyonu sunar.
|
|
48
|
+
|
|
49
|
+
### 5. İçeriği Uygulamalar Arasında Paylaşma
|
|
50
|
+
|
|
51
|
+
Intlayer, içerik beyan dosyalarının birden fazla uygulama ve paylaşılan kütüphane arasında paylaşılmasını kolaylaştırır. Bu özellik, daha büyük bir kod tabanında tutarlı çevirileri korumayı kolaylaştırır.
|
|
52
|
+
|
|
53
|
+
## Intlayer ile i18next Sözlükleri Nasıl Oluşturulur
|
|
54
|
+
|
|
55
|
+
### i18next Sözlüklerini Dışa Aktarmak İçin Intlayer'ı Yapılandırma
|
|
56
|
+
|
|
57
|
+
> Önemli Notlar
|
|
58
|
+
|
|
59
|
+
> i18next sözlüklerinin dışa aktarılması şu anda beta aşamasındadır ve diğer çerçevelerle 1:1 uyumluluk sağlamaz. Sorunları en aza indirmek için Intlayer tabanlı bir yapılandırmaya bağlı kalmak önerilir.
|
|
60
|
+
|
|
61
|
+
i18next sözlüklerini dışa aktarmak için Intlayer'ı uygun şekilde yapılandırmanız gerekir. Aşağıda Intlayer'ı hem Intlayer hem de i18next sözlüklerini dışa aktarmak için nasıl ayarlayacağınızın bir örneği vardır.
|
|
62
|
+
|
|
63
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
64
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
65
|
+
|
|
66
|
+
const config: IntlayerConfig = {
|
|
67
|
+
content: {
|
|
68
|
+
// Intlayer'ın hem Intlayer hem de i18next sözlüklerini dışa aktaracağını belirt
|
|
69
|
+
dictionaryOutput: ["intlayer", "i18next"],
|
|
70
|
+
// Proje kökünden i18n sözlüklerinin dışa aktarılacağı dizine göreli yol
|
|
71
|
+
i18nextResourcesDir: "./i18next/dictionaries",
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export default config;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
79
|
+
import { Locales } from "intlayer";
|
|
80
|
+
|
|
81
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
82
|
+
const config = {
|
|
83
|
+
content: {
|
|
84
|
+
// Intlayer'ın hem Intlayer hem de i18next sözlüklerini dışa aktaracağını belirt
|
|
85
|
+
dictionaryOutput: ["intlayer", "i18next"],
|
|
86
|
+
// Proje kökünden i18n sözlüklerinin dışa aktarılacağı dizine göreli yol
|
|
87
|
+
i18nextResourcesDir: "./i18next/dictionaries",
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export default config;
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
95
|
+
const { Locales } = require("intlayer");
|
|
96
|
+
|
|
97
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
98
|
+
const config = {
|
|
99
|
+
content: {
|
|
100
|
+
// Intlayer'ın hem Intlayer hem de i18next sözlüklerini dışa aktaracağını belirt
|
|
101
|
+
dictionaryOutput: ["intlayer", "i18next"],
|
|
102
|
+
// Proje kökünden i18n sözlüklerinin dışa aktarılacağı dizine göreli yol
|
|
103
|
+
i18nextResourcesDir: "./i18next/dictionaries",
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
module.exports = config;
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Yapılandırmaya 'i18next' dahil ederek, Intlayer Intlayer sözlüklerine ek olarak özel i18next sözlükleri oluşturur. Yapılandırmadan 'intlayer'ı kaldırmanın React-Intlayer veya Next-Intlayer ile uyumluluğu bozabileceğini unutmayın.
|
|
111
|
+
|
|
112
|
+
### Sözlükleri i18next Yapılandırmanıza İçe Aktarma
|
|
113
|
+
|
|
114
|
+
Oluşturulan sözlükleri i18next yapılandırmanıza içe aktarmak için 'i18next-resources-to-backend' kullanabilirsiniz. i18next sözlüklerinizi içe aktarmanın bir örneği burada:
|
|
115
|
+
|
|
116
|
+
```typescript fileName="i18n/client.ts" codeFormat="typescript"
|
|
117
|
+
// i18n/client.ts
|
|
118
|
+
|
|
119
|
+
import i18next from "i18next";
|
|
120
|
+
import resourcesToBackend from "i18next-resources-to-backend";
|
|
121
|
+
|
|
122
|
+
i18next
|
|
123
|
+
// Sizin i18next yapılandırmanız
|
|
124
|
+
.use(
|
|
125
|
+
resourcesToBackend(
|
|
126
|
+
(language: string, namespace: string) =>
|
|
127
|
+
import(`../i18next/dictionaries/${language}/${namespace}.json`)
|
|
128
|
+
)
|
|
129
|
+
);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
```javascript fileName="i18n/client.mjs" codeFormat="esm"
|
|
133
|
+
// i18n/client.mjs
|
|
134
|
+
|
|
135
|
+
import i18next from "i18next";
|
|
136
|
+
import resourcesToBackend from "i18next-resources-to-backend";
|
|
137
|
+
|
|
138
|
+
i18next
|
|
139
|
+
// Sizin i18next yapılandırmanız
|
|
140
|
+
.use(
|
|
141
|
+
resourcesToBackend(
|
|
142
|
+
(language, namespace) =>
|
|
143
|
+
import(`../i18next/dictionaries/${language}/${namespace}.json`)
|
|
144
|
+
)
|
|
145
|
+
);
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
```javascript fileName="i18n/client.cjs" codeFormat="commonjs"
|
|
149
|
+
// i18n/client.cjs
|
|
150
|
+
|
|
151
|
+
const i18next = require("i18next");
|
|
152
|
+
const resourcesToBackend = "i18next-resources-to-backend";
|
|
153
|
+
|
|
154
|
+
i18next
|
|
155
|
+
// Sizin i18next yapılandırmanız
|
|
156
|
+
.use(
|
|
157
|
+
resourcesToBackend(
|
|
158
|
+
(language, namespace) =>
|
|
159
|
+
import(`../i18next/dictionaries/${language}/${namespace}.json`)
|
|
160
|
+
)
|
|
161
|
+
);
|
|
162
|
+
```
|