@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,773 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Nuxt ve Vue web sitenizi çevirin (i18n)
|
|
5
|
+
description: Nuxt ve Vue web sitenizi çok dilli hale getirmeyi öğrenin. Uluslararasılaştırma (i18n) ve çeviri yapmak için dokümantasyonu takip edin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Uluslararasılaştırma
|
|
8
|
+
- Dokümantasyon
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Nuxt
|
|
11
|
+
- Vue
|
|
12
|
+
- JavaScript
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- environment
|
|
16
|
+
- nuxt-and-vue
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-nuxt-template
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Intlayer ve Nuxt ile uluslararasılaştırma (i18n) başlangıç kılavuzu
|
|
21
|
+
|
|
22
|
+
GitHub'da [Uygulama Şablonu](https://github.com/aymericzip/intlayer-nuxt-template)na bakın.
|
|
23
|
+
|
|
24
|
+
## Intlayer Nedir?
|
|
25
|
+
|
|
26
|
+
**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.
|
|
27
|
+
|
|
28
|
+
Intlayer ile şunları yapabilirsiniz:
|
|
29
|
+
|
|
30
|
+
- **Bileşen düzeyinde bildirimsel sözlükler kullanarak çevirileri kolayca yönetin**.
|
|
31
|
+
- **Meta verileri, rotaları ve içeriği dinamik olarak yerelleştirin**.
|
|
32
|
+
- **Otomatik tamamlama ve hata algılama ile TypeScript desteği sağlayın**.
|
|
33
|
+
- **Dinamik yerel algılama ve anahtarlama gibi gelişmiş özelliklerden yararlanın**.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Nuxt Uygulamasında Intlayer Kurulumu Adım Adım Kılavuzu
|
|
38
|
+
|
|
39
|
+
### Adım 1: Bağımlılıkları Kurma
|
|
40
|
+
|
|
41
|
+
Gerekli paketleri npm kullanarak kurun:
|
|
42
|
+
|
|
43
|
+
```bash packageManager="npm"
|
|
44
|
+
npm install intlayer vue-intlayer
|
|
45
|
+
npm install --save-dev nuxt-intlayer
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```bash packageManager="pnpm"
|
|
49
|
+
pnpm add intlayer vue-intlayer
|
|
50
|
+
pnpm add --save-dev nuxt-intlayer
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```bash packageManager="yarn"
|
|
54
|
+
yarn add intlayer vue-intlayer
|
|
55
|
+
yarn add --save-dev nuxt-intlayer
|
|
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
|
+
- **vue-intlayer**
|
|
63
|
+
Intlayer'ı Vue uygulaması ile entegre eden paket. Vue bileşenleri için composable'ları sağlar.
|
|
64
|
+
|
|
65
|
+
- **nuxt-intlayer**
|
|
66
|
+
Intlayer'ı Nuxt uygulamaları ile entegre eden Nuxt modülü. Otomatik kurulum, yerel algılama için middleware, çerez yönetimi ve URL yönlendirmesi sağlar.
|
|
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 { Locales, type IntlayerConfig } from "intlayer";
|
|
74
|
+
|
|
75
|
+
const config: IntlayerConfig = {
|
|
76
|
+
internationalization: {
|
|
77
|
+
locales: [
|
|
78
|
+
Locales.ENGLISH,
|
|
79
|
+
Locales.FRENCH,
|
|
80
|
+
Locales.SPANISH,
|
|
81
|
+
// Diğer yerel ayarlarınız
|
|
82
|
+
],
|
|
83
|
+
defaultLocale: Locales.ENGLISH,
|
|
84
|
+
},
|
|
85
|
+
content: {
|
|
86
|
+
contentDir: ["."], // Çünkü varsayılan olarak Intayer, içerik bildirim dosyalarını `./src` dizininden izleyecek
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export default config;
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
94
|
+
import { Locales } from "intlayer";
|
|
95
|
+
|
|
96
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
97
|
+
const config = {
|
|
98
|
+
internationalization: {
|
|
99
|
+
locales: [
|
|
100
|
+
Locales.ENGLISH,
|
|
101
|
+
Locales.FRENCH,
|
|
102
|
+
Locales.SPANISH,
|
|
103
|
+
// Diğer yerel ayarlarınız
|
|
104
|
+
],
|
|
105
|
+
defaultLocale: Locales.ENGLISH,
|
|
106
|
+
},
|
|
107
|
+
content: {
|
|
108
|
+
contentDir: ["."],
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export default config;
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
116
|
+
const { Locales } = require("intlayer");
|
|
117
|
+
|
|
118
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
119
|
+
const config = {
|
|
120
|
+
internationalization: {
|
|
121
|
+
locales: [
|
|
122
|
+
Locales.ENGLISH,
|
|
123
|
+
Locales.FRENCH,
|
|
124
|
+
Locales.SPANISH,
|
|
125
|
+
// Diğer yerel ayarlarınız
|
|
126
|
+
],
|
|
127
|
+
defaultLocale: Locales.ENGLISH,
|
|
128
|
+
},
|
|
129
|
+
content: {
|
|
130
|
+
contentDir: ["."],
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
module.exports = config;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
> 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.
|
|
138
|
+
|
|
139
|
+
### Adım 3: Nuxt Yapılandırmanızda Intlayer'ı Entegre Etme
|
|
140
|
+
|
|
141
|
+
Intlayer modülünü Nuxt yapılandırmanıza ekleyin:
|
|
142
|
+
|
|
143
|
+
```typescript fileName="nuxt.config.ts"
|
|
144
|
+
import { defineNuxtConfig } from "nuxt/config";
|
|
145
|
+
|
|
146
|
+
export default defineNuxtConfig({
|
|
147
|
+
// ... Mevcut Nuxt yapılandırmanız
|
|
148
|
+
modules: ["nuxt-intlayer"],
|
|
149
|
+
});
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
> `nuxt-intlayer` modülü, Intlayer'ın Nuxt ile entegrasyonunu otomatik olarak yönetir. İçerik bildirim oluşturmasını ayarlar, geliştirme modunda dosyaları izler, yerel algılama için middleware sağlar ve yerelleştirilmiş yönlendirmeyi yönetir.
|
|
153
|
+
|
|
154
|
+
### Adım 4: İçeriğinizi Bildirin
|
|
155
|
+
|
|
156
|
+
Çevirileri depolamak için içerik bildirimlerinizi oluşturun ve yönetin:
|
|
157
|
+
|
|
158
|
+
```tsx fileName="components/helloWorld.content.ts" contentDeclarationFormat="typescript"
|
|
159
|
+
import { t, type Dictionary } from "intlayer";
|
|
160
|
+
|
|
161
|
+
const helloWorldContent = {
|
|
162
|
+
key: "helloworld",
|
|
163
|
+
content: {
|
|
164
|
+
count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
|
|
165
|
+
edit: t({
|
|
166
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
167
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
168
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
169
|
+
}),
|
|
170
|
+
checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
|
|
171
|
+
nuxtIntlayer: t({
|
|
172
|
+
en: "Nuxt Intlayer documentation",
|
|
173
|
+
fr: "Documentation de Nuxt Intlayer",
|
|
174
|
+
es: "Documentación de Nuxt Intlayer",
|
|
175
|
+
}),
|
|
176
|
+
learnMore: t({
|
|
177
|
+
en: "Learn more about Nuxt in the ",
|
|
178
|
+
fr: "En savoir plus sur Nuxt dans la ",
|
|
179
|
+
es: "Aprenda más sobre Nuxt en la ",
|
|
180
|
+
}),
|
|
181
|
+
nuxtDocs: t({
|
|
182
|
+
en: "Nuxt Documentation",
|
|
183
|
+
fr: "Documentation Nuxt",
|
|
184
|
+
es: "Documentación de Nuxt",
|
|
185
|
+
}),
|
|
186
|
+
readTheDocs: t({
|
|
187
|
+
en: "Click on the Nuxt logo to learn more",
|
|
188
|
+
fr: "Cliquez sur le logo Nuxt pour en savoir plus",
|
|
189
|
+
es: "Haga clic en el logotipo de Nuxt para obtener más información",
|
|
190
|
+
}),
|
|
191
|
+
},
|
|
192
|
+
} satisfies Dictionary;
|
|
193
|
+
|
|
194
|
+
export default helloWorldContent;
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
```javascript fileName="components/helloWorld.content.mjs" contentDeclarationFormat="esm"
|
|
198
|
+
import { t } from "intlayer";
|
|
199
|
+
|
|
200
|
+
/** @type {import('intlayer').Dictionary} */
|
|
201
|
+
const helloWorldContent = {
|
|
202
|
+
key: "helloworld",
|
|
203
|
+
content: {
|
|
204
|
+
count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
|
|
205
|
+
edit: t({
|
|
206
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
207
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
208
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
209
|
+
}),
|
|
210
|
+
checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
|
|
211
|
+
nuxtIntlayer: t({
|
|
212
|
+
en: "Nuxt Intlayer documentation",
|
|
213
|
+
fr: "Documentation de Nuxt Intlayer",
|
|
214
|
+
es: "Documentación de Nuxt Intlayer",
|
|
215
|
+
}),
|
|
216
|
+
learnMore: t({
|
|
217
|
+
en: "Learn more about Nuxt in the ",
|
|
218
|
+
fr: "En savoir plus sur Nuxt dans la ",
|
|
219
|
+
es: "Aprenda más sobre Nuxt en la ",
|
|
220
|
+
}),
|
|
221
|
+
nuxtDocs: t({
|
|
222
|
+
en: "Nuxt Documentation",
|
|
223
|
+
fr: "Documentation Nuxt",
|
|
224
|
+
es: "Documentación de Nuxt",
|
|
225
|
+
}),
|
|
226
|
+
readTheDocs: t({
|
|
227
|
+
en: "Click on the Nuxt logo to learn more",
|
|
228
|
+
fr: "Cliquez sur le logo Nuxt pour en savoir plus",
|
|
229
|
+
es: "Haga clic en el logotipo de Nuxt para obtener más información",
|
|
230
|
+
}),
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export default helloWorldContent;
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
```javascript fileName="components/helloWorld.content.cjs" codeFormat="commonjs"
|
|
238
|
+
const { t } = require("intlayer");
|
|
239
|
+
|
|
240
|
+
/** @type {import('intlayer').Dictionary} */
|
|
241
|
+
const helloWorldContent = {
|
|
242
|
+
key: "helloworld",
|
|
243
|
+
content: {
|
|
244
|
+
count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
|
|
245
|
+
edit: t({
|
|
246
|
+
en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
247
|
+
fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
248
|
+
es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
|
|
249
|
+
}),
|
|
250
|
+
checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
|
|
251
|
+
nuxtIntlayer: t({
|
|
252
|
+
en: "Nuxt Intlayer documentation",
|
|
253
|
+
fr: "Documentation de Nuxt Intlayer",
|
|
254
|
+
es: "Documentación de Nuxt Intlayer",
|
|
255
|
+
}),
|
|
256
|
+
learnMore: t({
|
|
257
|
+
en: "Learn more about Nuxt in the ",
|
|
258
|
+
fr: "En savoir plus sur Nuxt dans la ",
|
|
259
|
+
es: "Aprenda más sobre Nuxt en la ",
|
|
260
|
+
}),
|
|
261
|
+
nuxtDocs: t({
|
|
262
|
+
en: "Nuxt Documentation",
|
|
263
|
+
fr: "Documentation Nuxt",
|
|
264
|
+
es: "Documentación de Nuxt",
|
|
265
|
+
}),
|
|
266
|
+
readTheDocs: t({
|
|
267
|
+
en: "Click on the Nuxt logo to learn more",
|
|
268
|
+
fr: "Cliquez sur le logo Nuxt pour en savoir plus",
|
|
269
|
+
es: "Haga clic en el logotipo de Nuxt para obtener más información",
|
|
270
|
+
}),
|
|
271
|
+
},
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
module.exports = helloWorldContent;
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
```json fileName="components/helloWorld.content.json" contentDeclarationFormat="json"
|
|
278
|
+
{
|
|
279
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
280
|
+
"key": "helloworld",
|
|
281
|
+
"content": {
|
|
282
|
+
"count": {
|
|
283
|
+
"nodeType": "translation",
|
|
284
|
+
"translation": {
|
|
285
|
+
"en": "count is ",
|
|
286
|
+
"fr": "le compte est ",
|
|
287
|
+
"es": "el recuento es "
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
"edit": {
|
|
291
|
+
"nodeType": "translation",
|
|
292
|
+
"translation": {
|
|
293
|
+
"en": "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
|
|
294
|
+
"fr": "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
|
|
295
|
+
"es": "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR"
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"checkOut": {
|
|
299
|
+
"nodeType": "translation",
|
|
300
|
+
"translation": {
|
|
301
|
+
"en": "Check out ",
|
|
302
|
+
"fr": "Vérifiez ",
|
|
303
|
+
"es": "Compruebe "
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
"nuxtIntlayer": {
|
|
307
|
+
"nodeType": "translation",
|
|
308
|
+
"translation": {
|
|
309
|
+
"en": "Nuxt Intlayer documentation",
|
|
310
|
+
"fr": "Documentation de Nuxt Intlayer",
|
|
311
|
+
"es": "Documentación de Nuxt Intlayer"
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"learnMore": {
|
|
315
|
+
"nodeType": "translation",
|
|
316
|
+
"translation": {
|
|
317
|
+
"en": "Learn more about Nuxt in the ",
|
|
318
|
+
"fr": "En savoir plus sur Nuxt dans la ",
|
|
319
|
+
"es": "Aprenda más sobre Nuxt en la "
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"nuxtDocs": {
|
|
323
|
+
"nodeType": "translation",
|
|
324
|
+
"translation": {
|
|
325
|
+
"en": "Nuxt Documentation",
|
|
326
|
+
"fr": "Documentation Nuxt",
|
|
327
|
+
"es": "Documentación de Nuxt"
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
"readTheDocs": {
|
|
331
|
+
"nodeType": "translation",
|
|
332
|
+
"translation": {
|
|
333
|
+
"en": "Click on the Nuxt logo to learn more",
|
|
334
|
+
"fr": "Cliquez sur le logo Nuxt pour en savoir plus",
|
|
335
|
+
"es": "Haga clic en el logotipo de Nuxt para obtener más información"
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
> İçerik bildirimleriniz, `contentDir` dizinine dahil edildiği sürece uygulamanızın herhangi bir yerinde tanımlanabilir (varsayılan olarak, `./src`). Ve içerik bildirim dosyası uzantısıyla eşleşmelidir (varsayılan olarak, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
343
|
+
|
|
344
|
+
> 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.
|
|
345
|
+
|
|
346
|
+
### Adım 5: Kodunuzda Intlayer'ı Kullanın
|
|
347
|
+
|
|
348
|
+
`useIntlayer` composable'ını kullanarak Nuxt uygulamanız boyunca içerik sözlüklerinize erişin:
|
|
349
|
+
|
|
350
|
+
```vue fileName="components/HelloWorld.vue"
|
|
351
|
+
<script setup lang="ts">
|
|
352
|
+
import { ref } from "vue";
|
|
353
|
+
import { useIntlayer } from "vue-intlayer";
|
|
354
|
+
|
|
355
|
+
defineProps({
|
|
356
|
+
msg: String,
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
const {
|
|
360
|
+
count,
|
|
361
|
+
edit,
|
|
362
|
+
checkOut,
|
|
363
|
+
nuxtIntlayer,
|
|
364
|
+
learnMore,
|
|
365
|
+
nuxtDocs,
|
|
366
|
+
readTheDocs,
|
|
367
|
+
} = useIntlayer("helloworld");
|
|
368
|
+
const countRef = ref(0);
|
|
369
|
+
</script>
|
|
370
|
+
|
|
371
|
+
<template>
|
|
372
|
+
<h1>{{ msg }}</h1>
|
|
373
|
+
|
|
374
|
+
<div class="card">
|
|
375
|
+
<button type="button" @click="countRef++">
|
|
376
|
+
<count />
|
|
377
|
+
{{ countRef }}
|
|
378
|
+
</button>
|
|
379
|
+
<p v-html="edit"></p>
|
|
380
|
+
</div>
|
|
381
|
+
|
|
382
|
+
<p>
|
|
383
|
+
<checkOut />
|
|
384
|
+
<a href="https://nuxt.com/docs/getting-started/introduction" target="_blank"
|
|
385
|
+
>Nuxt</a
|
|
386
|
+
>, <nuxtIntlayer />
|
|
387
|
+
</p>
|
|
388
|
+
<p>
|
|
389
|
+
<learnMore />
|
|
390
|
+
<a href="https://nuxt.com" target="_blank"><nuxtDocs /></a>.
|
|
391
|
+
</p>
|
|
392
|
+
<p class="read-the-docs"><readTheDocs /></p>
|
|
393
|
+
<p class="read-the-docs">{{ readTheDocs }}</p>
|
|
394
|
+
</template>
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
#### Intlayer'da İçeriğe Erişim
|
|
398
|
+
|
|
399
|
+
Intlayer, içeriğinize erişmek için farklı API'ler sunar:
|
|
400
|
+
|
|
401
|
+
- **Bileşen tabanlı sözdizimi** (önerilen):
|
|
402
|
+
İçeriği Intlayer Düğümü olarak işlemek için `<myContent />` veya `<Component :is="myContent" />` sözdizimini kullanın. Bu, [Görsel Düzenleyici](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) ve [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md) ile sorunsuz bir şekilde entegre olur.
|
|
403
|
+
|
|
404
|
+
- **Dize tabanlı sözdizimi**:
|
|
405
|
+
Görsel Düzenleyici desteği olmadan içeriği düz metin olarak işlemek için `{{ myContent }}` kullanın.
|
|
406
|
+
|
|
407
|
+
- **Ham HTML sözdizimi**:
|
|
408
|
+
Görsel Düzenleyici desteği olmadan içeriği ham HTML olarak işlemek için `<div v-html="myContent" />` kullanın.
|
|
409
|
+
|
|
410
|
+
- **Yapılandırma sözdizimi**:
|
|
411
|
+
`useIntlayer` composable'ı, içeriği döndüren bir Proxy döndürür. Bu proxy, reaktiviteyi korurken içeriğe erişmek için yapılandırılabilir.
|
|
412
|
+
- `const content = useIntlayer("myContent");` Ve `{{ content.myContent }}` / `<content.myContent />` kullanın.
|
|
413
|
+
- Veya `const { myContent } = useIntlayer("myContent");` Ve `{{ myContent}}` / `<myContent/>` kullanarak içeriği yapılandırın.
|
|
414
|
+
|
|
415
|
+
### (İsteğe Bağlı) Adım 6: İçeriğinizin dilini değiştirme
|
|
416
|
+
|
|
417
|
+
İçeriğinizin dilini değiştirmek için, `useLocale` composable'ı tarafından sağlanan `setLocale` fonksiyonunu kullanabilirsiniz. Bu fonksiyon, uygulamanın yerel ayarını ayarlamanıza ve içeriği buna göre güncellemenize olanak tanır.
|
|
418
|
+
|
|
419
|
+
Diller arasında geçiş yapmak için bir bileşen oluşturun:
|
|
420
|
+
|
|
421
|
+
```vue fileName="components/LocaleSwitcher.vue"
|
|
422
|
+
<template>
|
|
423
|
+
<div class="locale-switcher">
|
|
424
|
+
<select v-model="selectedLocale" @change="changeLocale">
|
|
425
|
+
<option v-for="loc in availableLocales" :key="loc" :value="loc">
|
|
426
|
+
{{ getLocaleName(loc) }}
|
|
427
|
+
</option>
|
|
428
|
+
</select>
|
|
429
|
+
</div>
|
|
430
|
+
</template>
|
|
431
|
+
|
|
432
|
+
<script setup lang="ts">
|
|
433
|
+
import { ref, watch } from "vue";
|
|
434
|
+
import { getLocaleName } from "intlayer";
|
|
435
|
+
import { useLocale } from "vue-intlayer";
|
|
436
|
+
|
|
437
|
+
// Yerel ayar bilgilerini ve setLocale fonksiyonunu alın
|
|
438
|
+
const { locale, availableLocales, setLocale } = useLocale();
|
|
439
|
+
|
|
440
|
+
// Seçilen yerel ayarı bir ref ile takip edin
|
|
441
|
+
const selectedLocale = ref(locale.value);
|
|
442
|
+
|
|
443
|
+
// Seçim değiştiğinde yerel ayarı güncelleyin
|
|
444
|
+
const changeLocale = () => setLocale(selectedLocale.value);
|
|
445
|
+
|
|
446
|
+
// Seçilen yerel ayarı küresel yerel ayar ile senkronize tutun
|
|
447
|
+
watch(
|
|
448
|
+
() => locale.value,
|
|
449
|
+
(newLocale) => {
|
|
450
|
+
selectedLocale.value = newLocale;
|
|
451
|
+
}
|
|
452
|
+
);
|
|
453
|
+
</script>
|
|
454
|
+
</template>
|
|
455
|
+
|
|
456
|
+
<style scoped>
|
|
457
|
+
.locale-switcher {
|
|
458
|
+
margin: 1rem 0;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
select {
|
|
462
|
+
padding: 0.5rem;
|
|
463
|
+
border-radius: 0.25rem;
|
|
464
|
+
border: 1px solid #ccc;
|
|
465
|
+
}
|
|
466
|
+
</style>
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
Ardından, bu bileşeni sayfalarınızda veya düzeninizde kullanın:
|
|
470
|
+
|
|
471
|
+
```vue fileName="app.vue"
|
|
472
|
+
<script setup lang="ts">
|
|
473
|
+
import { useIntlayer } from "vue-intlayer";
|
|
474
|
+
import LocaleSwitcher from "~/components/LocaleSwitcher.vue";
|
|
475
|
+
|
|
476
|
+
const content = useIntlayer("app"); // İlgili intlayer bildirim dosyası oluşturun
|
|
477
|
+
</script>
|
|
478
|
+
|
|
479
|
+
<template>
|
|
480
|
+
<div>
|
|
481
|
+
<header>
|
|
482
|
+
<LocaleSwitcher />
|
|
483
|
+
</header>
|
|
484
|
+
<main>
|
|
485
|
+
<NuxtPage />
|
|
486
|
+
</main>
|
|
487
|
+
</div>
|
|
488
|
+
</template>
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### (İsteğe Bağlı) Adım 7: Uygulamanıza yerelleştirilmiş yönlendirme ekleme
|
|
492
|
+
|
|
493
|
+
`nuxt-intlayer` modülünü kullanırken Nuxt, yerelleştirilmiş yönlendirmeyi otomatik olarak yönetir. Bu, sayfalar dizin yapınıza göre her dil için rotaları otomatik olarak oluşturur.
|
|
494
|
+
|
|
495
|
+
Örnek:
|
|
496
|
+
|
|
497
|
+
```plaintext
|
|
498
|
+
pages/
|
|
499
|
+
├── index.vue → /, /fr, /es
|
|
500
|
+
├── about.vue → /about, /fr/about, /es/about
|
|
501
|
+
└── contact/
|
|
502
|
+
└── index.vue → /contact, /fr/contact, /es/contact
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Yerelleştirilmiş bir sayfa oluşturmak için, `pages/` dizininde Vue dosyalarınızı oluşturun:
|
|
506
|
+
|
|
507
|
+
```vue fileName="pages/about.vue"
|
|
508
|
+
<script setup lang="ts">
|
|
509
|
+
import { useIntlayer } from "vue-intlayer";
|
|
510
|
+
|
|
511
|
+
const content = useIntlayer("about");
|
|
512
|
+
</script>
|
|
513
|
+
|
|
514
|
+
<template>
|
|
515
|
+
<div>
|
|
516
|
+
<h1>{{ content.title }}</h1>
|
|
517
|
+
<p>{{ content.description }}</p>
|
|
518
|
+
</div>
|
|
519
|
+
</template>
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
`nuxt-intlayer` modülü otomatik olarak:
|
|
523
|
+
|
|
524
|
+
- Kullanıcının tercih ettiği yerel ayarı algılar
|
|
525
|
+
- URL aracılığıyla yerel ayar anahtarlamayı yönetir
|
|
526
|
+
- Uygun `<html lang="">` özelliğini ayarlar
|
|
527
|
+
- Yerel ayar çerezlerini yönetir
|
|
528
|
+
- Kullanıcıları uygun yerelleştirilmiş URL'ye yönlendirir
|
|
529
|
+
|
|
530
|
+
### (İsteğe Bağlı) Adım 8: Yerelleştirilmiş Bağlantı Bileşeni Oluşturma
|
|
531
|
+
|
|
532
|
+
Uygulamanızın navigasyonunun mevcut yerel ayarı saygı göstermesini sağlamak için, özel bir `LocalizedLink` bileşeni oluşturabilirsiniz. Bu bileşen, dahili URL'leri otomatik olarak mevcut dille önekler.
|
|
533
|
+
|
|
534
|
+
```vue fileName="components/LocalizedLink.vue"
|
|
535
|
+
<template>
|
|
536
|
+
<NuxtLink :to="localizedHref" v-bind="$attrs">
|
|
537
|
+
<slot />
|
|
538
|
+
</NuxtLink>
|
|
539
|
+
</template>
|
|
540
|
+
|
|
541
|
+
<script setup lang="ts">
|
|
542
|
+
import { computed } from "vue";
|
|
543
|
+
import { getLocalizedUrl } from "intlayer";
|
|
544
|
+
import { useLocale } from "vue-intlayer";
|
|
545
|
+
|
|
546
|
+
const props = defineProps({
|
|
547
|
+
to: {
|
|
548
|
+
type: String,
|
|
549
|
+
required: true,
|
|
550
|
+
},
|
|
551
|
+
});
|
|
552
|
+
|
|
553
|
+
const { locale } = useLocale();
|
|
554
|
+
|
|
555
|
+
// Bağlantının harici olup olmadığını kontrol edin
|
|
556
|
+
const isExternalLink = computed(() => /^https?:\/\//.test(props.to || ""));
|
|
557
|
+
|
|
558
|
+
// Dahili bağlantılar için yerelleştirilmiş bir href oluşturun
|
|
559
|
+
const localizedHref = computed(() =>
|
|
560
|
+
isExternalLink.value ? props.to : getLocalizedUrl(props.to, locale.value)
|
|
561
|
+
);
|
|
562
|
+
</script>
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
Ardından, bu bileşeni uygulamanız boyunca kullanın:
|
|
566
|
+
|
|
567
|
+
```vue fileName="pages/index.vue"
|
|
568
|
+
<template>
|
|
569
|
+
<div>
|
|
570
|
+
<LocalizedLink to="/about">
|
|
571
|
+
{{ content.aboutLink }}
|
|
572
|
+
</LocalizedLink>
|
|
573
|
+
<LocalizedLink to="/contact">
|
|
574
|
+
{{ content.contactLink }}
|
|
575
|
+
</LocalizedLink>
|
|
576
|
+
</div>
|
|
577
|
+
</template>
|
|
578
|
+
|
|
579
|
+
<script setup lang="ts">
|
|
580
|
+
import { useIntlayer } from "vue-intlayer";
|
|
581
|
+
import LocalizedLink from "~/components/LocalizedLink.vue";
|
|
582
|
+
|
|
583
|
+
const content = useIntlayer("home");
|
|
584
|
+
</script>
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
### (İsteğe Bağlı) Adım 9: Meta Verileri ve SEO'yu Yönetme
|
|
588
|
+
|
|
589
|
+
Nuxt, mükemmel SEO yetenekleri sağlar. Yerelleştirilmiş meta verileri yönetmek için Intlayer'ı kullanabilirsiniz:
|
|
590
|
+
|
|
591
|
+
```vue fileName="pages/about.vue"
|
|
592
|
+
<script setup lang="ts">
|
|
593
|
+
import { useSeoMeta } from "nuxt/app";
|
|
594
|
+
import { getIntlayer } from "intlayer";
|
|
595
|
+
import { useLocale } from "vue-intlayer";
|
|
596
|
+
|
|
597
|
+
const { locale } = useLocale();
|
|
598
|
+
const content = getIntlayer("about-meta", locale.value);
|
|
599
|
+
|
|
600
|
+
useSeoMeta({
|
|
601
|
+
title: content.title,
|
|
602
|
+
description: content.description,
|
|
603
|
+
});
|
|
604
|
+
</script>
|
|
605
|
+
|
|
606
|
+
<template>
|
|
607
|
+
<div>
|
|
608
|
+
<h1>{{ content.pageTitle }}</h1>
|
|
609
|
+
<p>{{ content.pageContent }}</p>
|
|
610
|
+
</div>
|
|
611
|
+
</template>
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
Karşılık gelen içerik bildirimini oluşturun:
|
|
615
|
+
|
|
616
|
+
```ts fileName="pages/about-meta.content.ts"
|
|
617
|
+
import { t, type Dictionary } from "intlayer";
|
|
618
|
+
import type { useSeoMeta } from "nuxt/app";
|
|
619
|
+
|
|
620
|
+
const aboutMetaContent = {
|
|
621
|
+
key: "about-meta",
|
|
622
|
+
content: {
|
|
623
|
+
title: t({
|
|
624
|
+
en: "About Us - My Company",
|
|
625
|
+
fr: "À Propos - Ma Société",
|
|
626
|
+
es: "Acerca de Nosotros - Mi Empresa",
|
|
627
|
+
}),
|
|
628
|
+
description: t({
|
|
629
|
+
en: "Learn more about our company and our mission",
|
|
630
|
+
fr: "En savoir plus sur notre société et notre mission",
|
|
631
|
+
es: "Conozca más sobre nuestra empresa y nuestra misión",
|
|
632
|
+
}),
|
|
633
|
+
},
|
|
634
|
+
} satisfies Dictionary<Parameters<typeof useSeoMeta>[0]>;
|
|
635
|
+
|
|
636
|
+
export default aboutMetaContent;
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
```typescript fileName="pages/about-meta.content.mjs" contentDeclarationFormat="esm"
|
|
640
|
+
import { t } from "intlayer";
|
|
641
|
+
|
|
642
|
+
/** @type {import('intlayer').Dictionary} */
|
|
643
|
+
const aboutMetaContent = {
|
|
644
|
+
key: "about-meta",
|
|
645
|
+
content: {
|
|
646
|
+
title: t({
|
|
647
|
+
zh: "关于我们 - 我的公司",
|
|
648
|
+
en: "About Us - My Company",
|
|
649
|
+
fr: "À Propos - Ma Société",
|
|
650
|
+
es: "Acerca de Nosotros - Mi Empresa",
|
|
651
|
+
}),
|
|
652
|
+
description: t({
|
|
653
|
+
zh: "了解更多关于我们公司和我们的使命",
|
|
654
|
+
en: "Learn more about our company and our mission",
|
|
655
|
+
fr: "En savoir plus sur notre société et notre mission",
|
|
656
|
+
es: "Conozca más sobre nuestra empresa y nuestra misión",
|
|
657
|
+
}),
|
|
658
|
+
},
|
|
659
|
+
};
|
|
660
|
+
|
|
661
|
+
export default aboutMetaContent;
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
```typescript fileName="pages/about-meta.content.js" contentDeclarationFormat="cjs"
|
|
665
|
+
const { t } = require("intlayer");
|
|
666
|
+
|
|
667
|
+
/** @type {import('intlayer').Dictionary} */
|
|
668
|
+
const aboutMetaContent = {
|
|
669
|
+
key: "about-meta",
|
|
670
|
+
content: {
|
|
671
|
+
title: t({
|
|
672
|
+
zh: "关于我们 - 我的公司",
|
|
673
|
+
en: "About Us - My Company",
|
|
674
|
+
fr: "À Propos - Ma Société",
|
|
675
|
+
es: "Acerca de Nosotros - Mi Empresa",
|
|
676
|
+
}),
|
|
677
|
+
description: t({
|
|
678
|
+
zh: "了解更多关于我们公司和我们的使命",
|
|
679
|
+
en: "Learn more about our company and our mission",
|
|
680
|
+
fr: "En savoir plus sur notre société et notre mission",
|
|
681
|
+
es: "Conozca más sobre nuestra empresa y nuestra misión",
|
|
682
|
+
}),
|
|
683
|
+
},
|
|
684
|
+
};
|
|
685
|
+
|
|
686
|
+
module.exports = aboutMetaContent;
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
```json fileName="pages/about-meta.content.json" contentDeclarationFormat="json"
|
|
690
|
+
{
|
|
691
|
+
"key": "about-meta",
|
|
692
|
+
"content": {
|
|
693
|
+
"title": {
|
|
694
|
+
"nodeType": "translation",
|
|
695
|
+
"translations": {
|
|
696
|
+
"zh": "关于我们 - 我的公司",
|
|
697
|
+
"en": "About Us - My Company",
|
|
698
|
+
"fr": "À Propos - Ma Société",
|
|
699
|
+
"es": "Acerca de Nosotros - Mi Empresa"
|
|
700
|
+
}
|
|
701
|
+
},
|
|
702
|
+
"description": {
|
|
703
|
+
"nodeType": "translation",
|
|
704
|
+
"translations": {
|
|
705
|
+
"zh": "了解更多关于我们公司和我们的使命",
|
|
706
|
+
"en": "Learn more about our company and our mission",
|
|
707
|
+
"fr": "En savoir plus sur notre société et notre mission",
|
|
708
|
+
"es": "Conozca más sobre nuestra empresa y nuestra misión"
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
### TypeScript Yapılandırma
|
|
716
|
+
|
|
717
|
+
Intlayer, TypeScript'ten faydalanmak ve kod tabanınızı daha güçlü hale getirmek için modül genişletmesi kullanır.
|
|
718
|
+
|
|
719
|
+

|
|
720
|
+
|
|
721
|
+

|
|
722
|
+
|
|
723
|
+
TypeScript yapılandırmanızın otomatik olarak oluşturulan türleri içerdiğinden emin olun.
|
|
724
|
+
|
|
725
|
+
```json5 fileName="tsconfig.json"
|
|
726
|
+
{
|
|
727
|
+
// ... Mevcut TypeScript yapılandırmalarınız
|
|
728
|
+
"include": [
|
|
729
|
+
// ... Mevcut TypeScript yapılandırmalarınız
|
|
730
|
+
".intlayer/**/*.ts", // Otomatik olarak oluşturulan türleri dahil edin
|
|
731
|
+
],
|
|
732
|
+
}
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
### Git Yapılandırma
|
|
736
|
+
|
|
737
|
+
Intlayer tarafından oluşturulan dosyaları yok saymanız önerilir. Bu, onları Git deponuza göndermekten kaçınmanıza olanak tanır.
|
|
738
|
+
|
|
739
|
+
Bunu yapmak için, `.gitignore` dosyanıza aşağıdaki talimatları ekleyin:
|
|
740
|
+
|
|
741
|
+
```plaintext fileName=".gitignore"
|
|
742
|
+
# Intlayer tarafından oluşturulan dosyaları yok say
|
|
743
|
+
.intlayer
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
### VS Code Uzantısı
|
|
747
|
+
|
|
748
|
+
Intlayer ile geliştirme deneyiminizi geliştirmek için, resmi **Intlayer VS Code Uzantısı**'nı kurabilirsiniz.
|
|
749
|
+
|
|
750
|
+
[VS Code Marketplace'ten Kurun](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
751
|
+
|
|
752
|
+
Bu uzantı şunları sağlar:
|
|
753
|
+
|
|
754
|
+
- **Çeviri anahtarları için otomatik tamamlama**.
|
|
755
|
+
- **Eksik çeviriler için gerçek zamanlı hata algılama**.
|
|
756
|
+
- **Çevrilmiş içeriğin satır içi önizlemeleri**.
|
|
757
|
+
- **Çevirileri kolayca oluşturmak ve güncellemek için hızlı eylemler**.
|
|
758
|
+
|
|
759
|
+
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.
|
|
760
|
+
|
|
761
|
+
---
|
|
762
|
+
|
|
763
|
+
### Daha Fazla İlerleyin
|
|
764
|
+
|
|
765
|
+
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.
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
## Dokümantasyon Geçmişi
|
|
770
|
+
|
|
771
|
+
| Sürüm | Tarih | Değişiklikler |
|
|
772
|
+
| ------ | ---------- | -------------- |
|
|
773
|
+
| 5.5.10 | 2025-06-29 | Geçmişi başlat |
|