@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,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Next.js ile `[locale]` olmadan Intlayer kullanmak mümkün mü?
|
|
5
|
+
description: Next.js ile `[locale]` olmadan Intlayer nasıl kullanılır, öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- locale
|
|
8
|
+
- yol
|
|
9
|
+
- intlayer
|
|
10
|
+
- next.js
|
|
11
|
+
- vite
|
|
12
|
+
- framework
|
|
13
|
+
- middleware
|
|
14
|
+
- yapılandırma
|
|
15
|
+
- prefixDefault
|
|
16
|
+
- noPrefix
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- faq
|
|
20
|
+
- ssr-next-no-[locale]
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Next.js ile `[locale]` olmadan Intlayer kullanmak mümkün mü?
|
|
24
|
+
|
|
25
|
+
Evet, Next.js ile `[locale]` olmadan Intlayer kullanmak mümkündür. Ancak, sayfalarınızı bölmek arama motorlarında daha fazla anahtar kelime tetiklenmesini sağlar ve SSR performansınız etkilenebilir.
|
|
26
|
+
|
|
27
|
+
Bunu yapmak isterseniz, [Intlayer ile Next.js](https://intlayer.org/doc/environment/nextjs) rehberinde anlatılan adımları izleyin:
|
|
28
|
+
|
|
29
|
+
- `src/middleware.ts` dosyası yok
|
|
30
|
+
- `generateStaticParams` yok
|
|
31
|
+
|
|
32
|
+
```tsx fileName="src/app/layout.tsx"
|
|
33
|
+
import type { FC, PropsWithChildren } from "react";
|
|
34
|
+
|
|
35
|
+
const LocaleLayout: FC<PropsWithChildren> = ({ children }) => (
|
|
36
|
+
<html lang={undefined} dir={undefined}>
|
|
37
|
+
<body className={inter.className}>{children}</body>
|
|
38
|
+
</html>
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
export default LocaleLayout;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```tsx fileName="src/app/page.tsx"
|
|
45
|
+
import type { FC } from "react";
|
|
46
|
+
import { ClientComponentExample } from "@components/ClientComponentExample";
|
|
47
|
+
import { ServerComponentExample } from "@components/ServerComponentExample";
|
|
48
|
+
import { PageContent } from "@components/pageContent";
|
|
49
|
+
import { type NextPageIntlayer, IntlayerClientProvider } from "next-intlayer";
|
|
50
|
+
import { IntlayerServerProvider } from "next-intlayer/server";
|
|
51
|
+
|
|
52
|
+
const Page: FC = () => {
|
|
53
|
+
return (
|
|
54
|
+
<IntlayerServerProvider>
|
|
55
|
+
<PageContent />
|
|
56
|
+
<ServerComponentExample />
|
|
57
|
+
|
|
58
|
+
<IntlayerClientProvider>
|
|
59
|
+
<ClientComponentExample />
|
|
60
|
+
</IntlayerClientProvider>
|
|
61
|
+
</IntlayerServerProvider>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export default Page;
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```tsx fileName="src/component/pageContent.ts"
|
|
69
|
+
"use client";
|
|
70
|
+
|
|
71
|
+
import { type FC } from "react";
|
|
72
|
+
import { useIntlayer } from "next-intlayer";
|
|
73
|
+
import { useHTMLLanguage } from "@hooks/htmlTextDir";
|
|
74
|
+
|
|
75
|
+
const PageContent: FC = () => {
|
|
76
|
+
useHTMLLanguage();
|
|
77
|
+
const content = useIntlayer("page");
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<>
|
|
81
|
+
<p>{content.getStarted.main}</p>
|
|
82
|
+
<code>{content.getStarted.pageLink}</code>
|
|
83
|
+
</>
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```tsx fileName="src/hooks/htmlTextDir.ts"
|
|
89
|
+
"use client";
|
|
90
|
+
|
|
91
|
+
import { useEffect } from "react";
|
|
92
|
+
import { getHTMLTextDir } from "intlayer";
|
|
93
|
+
import { useLocale } from "next-intlayer";
|
|
94
|
+
|
|
95
|
+
export const useHTMLLanguage = () => {
|
|
96
|
+
const { locale } = useLocale();
|
|
97
|
+
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
if (!document) return;
|
|
100
|
+
|
|
101
|
+
document.documentElement.lang = locale;
|
|
102
|
+
document.documentElement.dir = getHTMLTextDir(locale);
|
|
103
|
+
}, [locale]);
|
|
104
|
+
};
|
|
105
|
+
```
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: İçerik bildirimi olarak dizi kullanabilir miyim?
|
|
5
|
+
description: İçerik bildirimi olarak dizi nasıl kullanılır, öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- dizi
|
|
8
|
+
- içerik
|
|
9
|
+
- bildirim
|
|
10
|
+
- intlayer
|
|
11
|
+
slugs:
|
|
12
|
+
- doc
|
|
13
|
+
- faq
|
|
14
|
+
- array-as-content-declaration
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# İçerik bildirimi olarak dizi kullanabilir miyim?
|
|
18
|
+
|
|
19
|
+
Evet, içerik bildirimi olarak bir dizi kullanabilirsiniz.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { t, type Dictionary } from "intlayer";
|
|
23
|
+
|
|
24
|
+
const ornekIcerik = {
|
|
25
|
+
key: "ornek",
|
|
26
|
+
content: {
|
|
27
|
+
test: t({
|
|
28
|
+
en: ["Test", "Test2", "Test3"],
|
|
29
|
+
fr: ["Test", "Test2", "Test3"],
|
|
30
|
+
es: ["Test", "Test2", "Test3"],
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default ornekIcerik;
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Daha sonra içeriği şu şekilde kullanabilirsiniz:
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { useIntlayer } from "react-intlayer";
|
|
42
|
+
|
|
43
|
+
const Ornek = () => {
|
|
44
|
+
const content = useIntlayer("ornek");
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<div>
|
|
48
|
+
{content.test.map((item) => (
|
|
49
|
+
<div key={item.value}>{item}</div>
|
|
50
|
+
))}
|
|
51
|
+
</div>
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```vue
|
|
57
|
+
<script setup lang="ts">
|
|
58
|
+
import { useIntlayer } from "vue-intlayer";
|
|
59
|
+
|
|
60
|
+
const content = useIntlayer("ornek");
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
<template>
|
|
64
|
+
<div>
|
|
65
|
+
<div v-for="item in content.test" :key="item.value">
|
|
66
|
+
{{ item }}
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</template>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
`.value` ile, içeriğin IntlayerNode ile sarmalanmamış gerçek değerini alabilirsiniz.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Sözlükler nasıl oluşturulur?
|
|
5
|
+
description: Sözlüklerin nasıl oluşturulacağını öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- oluştur
|
|
8
|
+
- sözlük
|
|
9
|
+
- intlayer
|
|
10
|
+
- komut
|
|
11
|
+
- izleme
|
|
12
|
+
- vscode
|
|
13
|
+
- eklenti
|
|
14
|
+
- framework
|
|
15
|
+
- next.js
|
|
16
|
+
- vite
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- faq
|
|
20
|
+
- build-dictionaries
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Sözlükleri Oluşturma
|
|
24
|
+
|
|
25
|
+
## Sözlükler Nasıl Oluşturulur
|
|
26
|
+
|
|
27
|
+
Intlayer, sözlükleri oluşturmak için bir komut satırı aracı sağlar.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx intlayer dictionaries build
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Bu komut:
|
|
34
|
+
|
|
35
|
+
- Projenizdeki tüm içerik bildirim dosyalarını (`.content.{ts,tsx,js,mjs,cjs,json,...}`) tarar.
|
|
36
|
+
- Sözlükleri oluşturur ve `.intlayer/dictionary` klasörüne kaydeder.
|
|
37
|
+
|
|
38
|
+
### İzleme Modu
|
|
39
|
+
|
|
40
|
+
İçerik bildirim dosyalarında değişiklik yapıldığında sözlüklerin otomatik olarak güncellenmesini istiyorsanız, aşağıdaki komutu çalıştırın:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx intlayer dictionaries build --watch
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Bu modda, Intlayer içerik bildirim dosyalarında değişiklik olduğunda sözlükleri tarar ve `.intlayer/dictionary` klasörünü otomatik olarak günceller.
|
|
47
|
+
|
|
48
|
+
### VSCode eklentisini kullanma
|
|
49
|
+
|
|
50
|
+
[Intlayer VSCode eklentisini](https://github.com/aymericzip/intlayer/tree/main/docs/en/vs_code_extension.md) kullanarak Intlayer deneyiminizi VSCode'da geliştirebilirsiniz.
|
|
51
|
+
|
|
52
|
+
### Favori uygulama framework'ünüz için eklenti kullanma
|
|
53
|
+
|
|
54
|
+
Next.js (Webpack / Turbopack), Vite veya React Native, Lynx gibi bir framework kullanıyorsanız, Intlayer uygulamanıza entegre etmek için bir eklenti sunar.
|
|
55
|
+
|
|
56
|
+
Intlayer, uygulamanızın derlemesinden önce sözlükleri oluşturur.
|
|
57
|
+
Aynı şekilde, geliştirme modunda içerik bildirim dosyalarındaki değişiklikleri izler ve sözlükleri otomatik olarak yeniden oluşturur.
|
|
58
|
+
|
|
59
|
+
Eklentiyi entegre etmek için kullandığınız framework'ün özel dokümantasyonuna bakın.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: CI/CD'de Derleme Hatası
|
|
5
|
+
description: CI/CD ortamlarında oluşan derleme hatalarını nasıl düzelteceğinizi öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- derleme
|
|
8
|
+
- hata
|
|
9
|
+
- ci
|
|
10
|
+
- cd
|
|
11
|
+
- pipeline
|
|
12
|
+
- intlayer
|
|
13
|
+
- sözlük
|
|
14
|
+
- next.js
|
|
15
|
+
- ön-derleme
|
|
16
|
+
- otomasyon
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- faq
|
|
20
|
+
- build-error-ci-cd
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# CI/CD'de Derleme Hatası
|
|
24
|
+
|
|
25
|
+
Eğer Next.js'de aşağıdaki gibi bir hata alırsanız:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
Error: An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
İşte bazı çözümler:
|
|
32
|
+
|
|
33
|
+
## 1. Eksik sözlükler
|
|
34
|
+
|
|
35
|
+
Derleme aşamasında sözlüklerin oluşturulduğundan emin olun.
|
|
36
|
+
|
|
37
|
+
Genellikle derleme yerelde çalışırken CI/CD'de çalışmaz. Bunun nedeni, yerelde `.intlayer` klasörünün mevcut olması, ancak CI/CD'de derlemeye dahil edilmemesidir.
|
|
38
|
+
|
|
39
|
+
Bunu, projenizin `package.json` dosyasına bir ön-derleme (prebuild) script'i ekleyerek çözebilirsiniz.
|
|
40
|
+
|
|
41
|
+
```json5 fileName=package.json
|
|
42
|
+
{
|
|
43
|
+
// ...
|
|
44
|
+
"scripts": {
|
|
45
|
+
"prebuild": "npx intlayer dictionaries build", // Derlemeden önce çalışır
|
|
46
|
+
"build": "next build",
|
|
47
|
+
},
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
> Eğer `withIntlayer` fonksiyonunu veya framework'ünüz için eşdeğer paketleyici eklentisini kullanıyorsanız, ön-derleme script'i derlemeden önce çalışacaktır.
|
|
52
|
+
|
|
53
|
+
## 2. Derleme/çalışma zamanında eksik ortam değişkenleri
|
|
54
|
+
|
|
55
|
+
Bir konteynerde veya otomatik dağıtım platformunda, `.env` dosyasını derlemeden hariç tutmanız önerilir.
|
|
56
|
+
|
|
57
|
+
```text fileName=".gitignore veya .dockerignore"
|
|
58
|
+
# Ortam değişkenleri
|
|
59
|
+
.env
|
|
60
|
+
**/.env
|
|
61
|
+
.env.*
|
|
62
|
+
**/.env.*
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Ortam değişkenleriniz derleme sırasında mevcut değilse, hata alırsınız.
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
import { Metadata } from "next";
|
|
69
|
+
|
|
70
|
+
export const generateMetadata = async ({ params }): Promise<Metadata> => ({
|
|
71
|
+
metadataBase: new URL(process.env.NEXT_PUBLIC_URL),
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Bu muhtemelen Intlayer ile ilgili değildir. Bu yüzden CI/CD platformunuzda derleme sırasında ortam değişkenlerinizi kontrol edin.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Dil listesi nasıl özelleştirilir?
|
|
5
|
+
description: Dil listesini nasıl özelleştireceğinizi öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- diller
|
|
8
|
+
- liste
|
|
9
|
+
- intlayer
|
|
10
|
+
- yapılandırma
|
|
11
|
+
- availableLocales
|
|
12
|
+
- defaultLocale
|
|
13
|
+
- useLocale
|
|
14
|
+
- hook
|
|
15
|
+
- locale
|
|
16
|
+
- list
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- faq
|
|
20
|
+
- customized-locale-list
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# İngilizce gibi bir dil tipini engellemek mümkün mü? Sözlüklerime İngilizce ekliyorum ama henüz sitede İngilizceyi aktif etmek istemiyorum
|
|
24
|
+
|
|
25
|
+
Evet, İngilizce gibi bir dili `availableLocales` seçeneğiyle engelleyebilirsiniz.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { IntlayerConfig } from "intlayer";
|
|
29
|
+
|
|
30
|
+
const config: IntlayerConfig = {
|
|
31
|
+
locales: [Locales.FRENCH, Locales.SPANISH, Locales.ENGLISH],
|
|
32
|
+
availableLocales: [Locales.FRENCH, Locales.SPANISH],
|
|
33
|
+
defaultLocale: Locales.FRENCH,
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
veya
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { IntlayerConfig } from "intlayer";
|
|
41
|
+
|
|
42
|
+
const locales = [Locales.FRENCH, Locales.SPANISH, Locales.ENGLISH];
|
|
43
|
+
|
|
44
|
+
const config: IntlayerConfig = {
|
|
45
|
+
locales,
|
|
46
|
+
availableLocales: locales.filter((locale) => locale !== Locales.ENGLISH),
|
|
47
|
+
defaultLocale: Locales.FRENCH,
|
|
48
|
+
};
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Bu yapılandırma, `t()` fonksiyonunuzun tiplerini sadece kullanılabilir dillerle sınırlar.
|
|
52
|
+
|
|
53
|
+
`availableLocales` isteğe bağlıdır, belirtmezseniz tüm diller kullanılabilir olur.
|
|
54
|
+
|
|
55
|
+
Dikkat: `availableLocales`'a eklediğiniz tüm diller, `locales` içinde de olmalıdır.
|
|
56
|
+
|
|
57
|
+
Eğer `useLocale` hook'unu kullanırsanız, `availableLocales` seçeneği dil listesini belirler.
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { useLocale } from "intlayer";
|
|
61
|
+
|
|
62
|
+
const { availableLocales } = useLocale();
|
|
63
|
+
|
|
64
|
+
console.log(availableLocales); // [Locales.FRENCH, Locales.SPANISH]
|
|
65
|
+
```
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Alan adına göre yönlendirme nasıl yapılır?
|
|
5
|
+
description: Alan adına göre yönlendirme nasıl yapılır, öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- alan adı
|
|
8
|
+
- yönlendirme
|
|
9
|
+
- intlayer
|
|
10
|
+
- yapılandırma
|
|
11
|
+
- middleware
|
|
12
|
+
- react-router
|
|
13
|
+
- vue-router
|
|
14
|
+
- next.js
|
|
15
|
+
- vite
|
|
16
|
+
- framework
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- faq
|
|
20
|
+
- domain-routing
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Intlayer ile **alan adına göre yönlendirme** nasıl yapılandırılır? `/[locale]/` yolları yerine
|
|
24
|
+
|
|
25
|
+
## Kısa cevap
|
|
26
|
+
|
|
27
|
+
Alan adına göre yönlendirme, yol tabanlı yönlendirmeden (`example.com/[locale]/`) daha basittir çünkü tüm middleware ve yönlendirme yapılandırmasını atlayabilirsiniz. Sadece uygulamanızı her dil için ayrı bir domaine dağıtın ve her domain için bir ortam değişkeni ayarlayın.
|
|
28
|
+
|
|
29
|
+
## Adım adım
|
|
30
|
+
|
|
31
|
+
1. **Her domain için ayrı dağıtım yapın** (`example.com`, `exemple.fr`, `ejemplo.es`, ...).
|
|
32
|
+
2. Her dağıtımda, o domainin hangi dili sunacağını belirten `LOCALE` (ve diğer Intlayer ortam değişkenlerini) ayarlayın.
|
|
33
|
+
3. Bu değişkeni `intlayer.config.[ts|js]` dosyanızda `defaultLocale` olarak kullanın.
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
37
|
+
|
|
38
|
+
const config: IntlayerConfig = {
|
|
39
|
+
internationalization: {
|
|
40
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
41
|
+
defaultLocale: process.env.LOCALE, // 👈 domain dili belirler
|
|
42
|
+
},
|
|
43
|
+
// ... diğer ayarlar
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export default config;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Bu kadar! **Next.js**, **Vite + React**, **Vite + Vue** vb. için aynıdır.
|
|
50
|
+
|
|
51
|
+
## Tüm domainler **aynı** dağıtıma yönleniyorsa?
|
|
52
|
+
|
|
53
|
+
Tüm domainler aynı uygulama paketine yönleniyorsa, host'u çalışma zamanında tespit edip locale'i sağlayıcıya manuel iletmeniz gerekir.
|
|
54
|
+
|
|
55
|
+
### Next.js için
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
// src/IntlayerProvider.tsx
|
|
59
|
+
import {
|
|
60
|
+
IntlayerClientProvider,
|
|
61
|
+
type IntlayerClientProviderProps,
|
|
62
|
+
} from "next-intlayer";
|
|
63
|
+
import { IntlayerServerProvider } from "next-intlayer/server";
|
|
64
|
+
import type { FC } from "react";
|
|
65
|
+
|
|
66
|
+
export const IntlayerProvider: FC<IntlayerClientProviderProps> = ({
|
|
67
|
+
children,
|
|
68
|
+
locale,
|
|
69
|
+
}) => {
|
|
70
|
+
const resolvedLocale = locale ?? getLocaleFromHostname();
|
|
71
|
+
return (
|
|
72
|
+
<IntlayerServerProvider locale={resolvedLocale}>
|
|
73
|
+
<IntlayerClientProvider locale={resolvedLocale}>
|
|
74
|
+
{children}
|
|
75
|
+
</IntlayerClientProvider>
|
|
76
|
+
</IntlayerServerProvider>
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Vue için
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import { createApp } from "vue";
|
|
85
|
+
import { installIntlayer } from "vue-intlayer";
|
|
86
|
+
import App from "./App.vue";
|
|
87
|
+
import { router } from "./routes";
|
|
88
|
+
|
|
89
|
+
const app = createApp(App);
|
|
90
|
+
app.use(router);
|
|
91
|
+
installIntlayer(app, getLocaleFromHostname());
|
|
92
|
+
app.mount("#app");
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`getLocaleFromHostname()` fonksiyonunu kendi domain tespit mantığınızla değiştirin.
|
|
96
|
+
|
|
97
|
+
## Dil değiştirici güncelleyin
|
|
98
|
+
|
|
99
|
+
Alan adına göre yönlendirme kullanırken, dil değiştirmek başka bir domaine gitmek anlamına gelir:
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
const { locale } = useLocale();
|
|
103
|
+
|
|
104
|
+
function changeLanguage(target: Locale) {
|
|
105
|
+
window.location.href = domainForLocale[target];
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Alan adına göre yönlendirmenin avantajları
|
|
110
|
+
|
|
111
|
+
1. **Daha basit yapılandırma**: `intlayerMiddleware`, `generateStaticParams`, `react-router` veya `vue-router` yapılandırmaya gerek yok
|
|
112
|
+
2. **Daha iyi SEO**: Her dilin kendi domaini olur
|
|
113
|
+
3. **Daha temiz URL'ler**: Yolda dil öneki yok
|
|
114
|
+
4. **Daha kolay bakım**: Her dil dağıtımı bağımsızdır
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: ESBuild Hatası
|
|
5
|
+
description: ESBuild hatalarını nasıl düzelteceğinizi öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- esbuild
|
|
8
|
+
- hata
|
|
9
|
+
- intlayer
|
|
10
|
+
- eklenti
|
|
11
|
+
- framework
|
|
12
|
+
- next.js
|
|
13
|
+
- vite
|
|
14
|
+
- react-native
|
|
15
|
+
- lynx
|
|
16
|
+
slugs:
|
|
17
|
+
- doc
|
|
18
|
+
- faq
|
|
19
|
+
- esbuild-error
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# ESBuild Hatası
|
|
23
|
+
|
|
24
|
+
Derleme sırasında bir ESBuild hatası ile karşılaşırsanız, muhtemelen Intlayer eklentisi doğru yapılandırılmamıştır.
|
|
25
|
+
|
|
26
|
+
ESBuild, içerik bildirim dosyalarını (`.content.{ts,js,mjs,cjs,json}`) okuyup ilgili sözlükleri `.intlayer/dictionary` klasöründe oluşturmakla sorumludur. Ayrıca yapılandırma dosyasını (`intlayer.config.ts`) da okur.
|
|
27
|
+
|
|
28
|
+
Intlayer, paketleyicilerinizle entegre olabilmeniz için eklentiler sağlar. Sunucu tarafında çalışması gereken bileşenleri ayırmak için tasarlanmıştır.
|
|
29
|
+
|
|
30
|
+
Next.js (Webpack / Turbopack), Vite veya React Native, Lynx gibi bir framework kullanıyorsanız, Intlayer uygulamanıza entegre etmek için bir eklenti sunar. Eklentiyi entegre etmek için kullandığınız framework'ün özel dokümantasyonuna bakın.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Çerezlerden / başlıklardan locale nasıl alınır?
|
|
5
|
+
description: Çerezlerden / başlıklardan locale nasıl alınır, öğrenin.
|
|
6
|
+
keywords:
|
|
7
|
+
- çerez
|
|
8
|
+
- başlık
|
|
9
|
+
- intlayer
|
|
10
|
+
- locale
|
|
11
|
+
- hook
|
|
12
|
+
- useLocale
|
|
13
|
+
- useLocaleCookie
|
|
14
|
+
- next.js
|
|
15
|
+
- react-intlayer
|
|
16
|
+
- vue-intlayer
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- faq
|
|
20
|
+
- get-locale-cookie
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Çerezlerden / başlıklardan locale nasıl alınır
|
|
24
|
+
|
|
25
|
+
## Hook Kullanımı (Önerilen)
|
|
26
|
+
|
|
27
|
+
Çoğu kullanım için, mevcut locale'i otomatik olarak çözen `useLocale` hook'unu kullanmanız önerilir. Bu, Vue.js'deki `useLocale` composable ile benzer şekilde çalışır.
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { useLocale } from "next-intlayer";
|
|
31
|
+
// veya import { useLocale } from "react-intlayer";
|
|
32
|
+
// veya import { useLocale } from "vue-intlayer";
|
|
33
|
+
|
|
34
|
+
// İstemci tarafı kullanım
|
|
35
|
+
const { locale } = useLocale();
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Sunucu bileşenleri için şuradan içe aktarabilirsiniz:
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { useLocale } from "next-intlayer/server";
|
|
42
|
+
|
|
43
|
+
const Test = () => {
|
|
44
|
+
const { locale } = useLocale();
|
|
45
|
+
return <>{locale}</>;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const Page = async ({ params }) => {
|
|
49
|
+
const { locale } = await params;
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<IntlayerServerProvider locale={locale}>
|
|
53
|
+
<Test />
|
|
54
|
+
</IntlayerServerProvider>
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Sadece çerez değerini çözen bir `useLocaleCookie` hook'u da vardır.
|
|
60
|
+
|
|
61
|
+
## Manuel Çerez Yapılandırması
|
|
62
|
+
|
|
63
|
+
Özel çerez adı tanımlayabilirsiniz:
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
import { type IntlayerConfig } from "intlayer";
|
|
67
|
+
|
|
68
|
+
const config: IntlayerConfig = {
|
|
69
|
+
middleware: {
|
|
70
|
+
cookieName: "ozelLocaleCookie", // varsayılan 'intlayer-locale'
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export default config;
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
ve şu şekilde alabilirsiniz:
|
|
78
|
+
|
|
79
|
+
### İstemci tarafı
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
// Varsayılan çerez adı ile
|
|
83
|
+
const locale = document.cookie
|
|
84
|
+
.split("; ")
|
|
85
|
+
.find((row) => row.startsWith("intlayer-locale="))
|
|
86
|
+
?.split("=")[1];
|
|
87
|
+
|
|
88
|
+
// Özel çerez adı ile
|
|
89
|
+
const locale = document.cookie
|
|
90
|
+
.split("; ")
|
|
91
|
+
.find((row) => row.startsWith("ozelLocaleCookie="))
|
|
92
|
+
?.split("=")[1];
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Sunucu tarafı (Next.js)
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import { cookies } from "next/headers";
|
|
99
|
+
|
|
100
|
+
// Varsayılan çerez adı ile
|
|
101
|
+
const locale = cookies().get("intlayer-locale")?.value;
|
|
102
|
+
|
|
103
|
+
// Özel çerez adı ile
|
|
104
|
+
const locale = cookies().get("ozelLocaleCookie")?.value;
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Locale henüz ayarlanmadıysa
|
|
108
|
+
|
|
109
|
+
Locale, kullanıcı dili açıkça seçtiğinde çerez olarak ayarlanır. Varsayılan olarak, yeni ziyaretçiler için locale başlık alanlarından yorumlanır.
|
|
110
|
+
|
|
111
|
+
Kullanıcının tercih ettiği locale'i istek başlıklarından tespit edebilirsiniz. İşte nasıl yapılacağına dair bir örnek:
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
/**
|
|
115
|
+
* İstek başlıklarından locale tespiti
|
|
116
|
+
*
|
|
117
|
+
* accept-language başlığı, locale tespiti için en önemlisidir.
|
|
118
|
+
* Kullanıcının tercih ettiği dilleri öncelik sırasına göre q-değerleriyle içerir.
|
|
119
|
+
*
|
|
120
|
+
* Örnek: "en-US,en;q=0.9,fr;q=0.8,es;q=0.7"
|
|
121
|
+
* - en-US birincil dil (q=1.0 varsayılır)
|
|
122
|
+
* - en ikinci tercih (q=0.9)
|
|
123
|
+
* - fr üçüncü tercih (q=0.8)
|
|
124
|
+
* - es dördüncü tercih (q=0.7)
|
|
125
|
+
*/
|
|
126
|
+
import { localeDetector } from "@intlayer/core";
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Tarayıcıların tipik olarak gönderdiği örnek başlıklar
|
|
130
|
+
* Bu başlıklar kullanıcının tercih ettiği dili belirlemeye yardımcı olur
|
|
131
|
+
*/
|
|
132
|
+
const ornekNegotiatorHeaders: Record<string, string> = {
|
|
133
|
+
"accept-language": "en-US,en;q=0.9,fr;q=0.8,es;q=0.7",
|
|
134
|
+
"accept":
|
|
135
|
+
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
|
|
136
|
+
"user-agent":
|
|
137
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
// Kullanım örneği:
|
|
141
|
+
const tespitEdilenLocale = localeDetector(ornekNegotiatorHeaders);
|
|
142
|
+
```
|