@intlayer/docs 5.8.1 → 6.0.0-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/rag_powered_documentation_assistant.md +282 -0
- package/blog/de/rag_powered_documentation_assistant.md +282 -0
- package/blog/en/rag_powered_documentation_assistant.md +289 -0
- package/blog/en-GB/rag_powered_documentation_assistant.md +284 -0
- package/blog/es/rag_powered_documentation_assistant.md +308 -0
- package/blog/fr/rag_powered_documentation_assistant.md +308 -0
- package/blog/hi/rag_powered_documentation_assistant.md +284 -0
- package/blog/it/rag_powered_documentation_assistant.md +284 -0
- package/blog/ja/rag_powered_documentation_assistant.md +284 -0
- package/blog/ko/rag_powered_documentation_assistant.md +283 -0
- package/blog/pt/rag_powered_documentation_assistant.md +284 -0
- package/blog/ru/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/index.md +69 -0
- package/blog/tr/internationalization_and_SEO.md +273 -0
- package/blog/tr/intlayer_with_i18next.md +162 -0
- package/blog/tr/intlayer_with_next-i18next.md +367 -0
- package/blog/tr/intlayer_with_next-intl.md +392 -0
- package/blog/tr/intlayer_with_react-i18next.md +346 -0
- package/blog/tr/intlayer_with_react-intl.md +345 -0
- package/blog/tr/list_i18n_technologies/CMS/drupal.md +143 -0
- package/blog/tr/list_i18n_technologies/CMS/wix.md +167 -0
- package/blog/tr/list_i18n_technologies/CMS/wordpress.md +188 -0
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +125 -0
- package/blog/tr/list_i18n_technologies/frameworks/flutter.md +150 -0
- package/blog/tr/list_i18n_technologies/frameworks/react-native.md +217 -0
- package/blog/tr/list_i18n_technologies/frameworks/react.md +155 -0
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +129 -0
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +130 -0
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +170 -0
- package/blog/tr/rag_powered_documentation_assistant.md +284 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +162 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +276 -0
- package/blog/tr/what_is_internationalization.md +166 -0
- package/blog/zh/rag_powered_documentation_assistant.md +284 -0
- package/dist/cjs/generated/blog.entry.cjs +212 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +660 -132
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +84 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +6 -0
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +212 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +660 -132
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +84 -0
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +6 -0
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +5 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/autoFill.md +41 -40
- package/docs/ar/configuration.md +202 -199
- package/docs/ar/dictionary/content_file.md +1059 -0
- package/docs/ar/intlayer_CMS.md +4 -4
- package/docs/ar/intlayer_with_nestjs.md +271 -0
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7.md +533 -0
- package/docs/ar/intlayer_with_tanstack.md +465 -299
- package/docs/ar/intlayer_with_vite+preact.md +7 -7
- package/docs/ar/intlayer_with_vite+react.md +7 -7
- package/docs/ar/intlayer_with_vite+vue.md +9 -9
- package/docs/ar/packages/vite-intlayer/index.md +3 -3
- package/docs/ar/readme.md +261 -0
- package/docs/ar/testing.md +199 -0
- package/docs/de/autoFill.md +42 -19
- package/docs/de/configuration.md +155 -147
- package/docs/de/dictionary/content_file.md +1059 -0
- package/docs/de/intlayer_CMS.md +4 -5
- package/docs/de/intlayer_with_nestjs.md +270 -0
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_react_router_v7.md +537 -0
- package/docs/de/intlayer_with_tanstack.md +469 -302
- package/docs/de/intlayer_with_vite+preact.md +7 -7
- package/docs/de/intlayer_with_vite+react.md +7 -7
- package/docs/de/intlayer_with_vite+vue.md +9 -9
- package/docs/de/packages/vite-intlayer/index.md +3 -3
- package/docs/de/readme.md +261 -0
- package/docs/de/testing.md +200 -0
- package/docs/en/CI_CD.md +4 -6
- package/docs/en/autoFill.md +25 -5
- package/docs/en/configuration.md +45 -54
- package/docs/en/dictionary/content_file.md +1054 -0
- package/docs/en/intlayer_CMS.md +8 -7
- package/docs/en/intlayer_cli.md +112 -5
- package/docs/en/intlayer_with_nestjs.md +268 -0
- package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +531 -0
- package/docs/en/intlayer_with_tanstack.md +463 -294
- package/docs/en/intlayer_with_vite+preact.md +8 -8
- package/docs/en/intlayer_with_vite+react.md +8 -8
- package/docs/en/intlayer_with_vite+vue.md +8 -8
- package/docs/en/packages/intlayer/getLocalizedUrl.md +102 -25
- package/docs/en/packages/vite-intlayer/index.md +3 -3
- package/docs/en/readme.md +261 -0
- package/docs/en/testing.md +200 -0
- package/docs/en-GB/autoFill.md +29 -6
- package/docs/en-GB/configuration.md +79 -71
- package/docs/en-GB/dictionary/content_file.md +1084 -0
- package/docs/en-GB/intlayer_CMS.md +4 -5
- package/docs/en-GB/intlayer_with_nestjs.md +268 -0
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7.md +533 -0
- package/docs/en-GB/intlayer_with_tanstack.md +466 -299
- package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
- package/docs/en-GB/intlayer_with_vite+react.md +7 -7
- package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
- package/docs/en-GB/packages/vite-intlayer/index.md +3 -3
- package/docs/en-GB/readme.md +261 -0
- package/docs/en-GB/testing.md +200 -0
- package/docs/es/autoFill.md +45 -23
- package/docs/es/configuration.md +171 -167
- package/docs/es/dictionary/content_file.md +1088 -0
- package/docs/es/intlayer_CMS.md +4 -5
- package/docs/es/intlayer_with_nestjs.md +268 -0
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +533 -0
- package/docs/es/intlayer_with_tanstack.md +469 -280
- package/docs/es/intlayer_with_vite+preact.md +7 -7
- package/docs/es/intlayer_with_vite+react.md +7 -7
- package/docs/es/intlayer_with_vite+vue.md +9 -9
- package/docs/es/packages/vite-intlayer/index.md +3 -3
- package/docs/es/readme.md +261 -0
- package/docs/es/testing.md +200 -0
- package/docs/fr/autoFill.md +47 -24
- package/docs/fr/configuration.md +213 -198
- package/docs/fr/dictionary/content_file.md +1054 -0
- package/docs/fr/intlayer_CMS.md +4 -5
- package/docs/fr/intlayer_with_nestjs.md +268 -0
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7.md +549 -0
- package/docs/fr/intlayer_with_tanstack.md +465 -279
- package/docs/fr/intlayer_with_vite+preact.md +7 -7
- package/docs/fr/intlayer_with_vite+react.md +7 -7
- package/docs/fr/intlayer_with_vite+vue.md +9 -9
- package/docs/fr/packages/vite-intlayer/index.md +3 -3
- package/docs/fr/readme.md +261 -0
- package/docs/fr/testing.md +200 -0
- package/docs/hi/autoFill.md +47 -25
- package/docs/hi/configuration.md +194 -189
- package/docs/hi/dictionary/content_file.md +1056 -0
- package/docs/hi/intlayer_CMS.md +4 -5
- package/docs/hi/intlayer_with_nestjs.md +269 -0
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7.md +533 -0
- package/docs/hi/intlayer_with_tanstack.md +467 -282
- package/docs/hi/intlayer_with_vite+preact.md +7 -7
- package/docs/hi/intlayer_with_vite+react.md +7 -7
- package/docs/hi/intlayer_with_vite+vue.md +9 -9
- package/docs/hi/packages/vite-intlayer/index.md +3 -3
- package/docs/hi/readme.md +261 -0
- package/docs/hi/testing.md +200 -0
- package/docs/it/autoFill.md +46 -24
- package/docs/it/configuration.md +169 -161
- package/docs/it/dictionary/content_file.md +1061 -0
- package/docs/it/intlayer_CMS.md +4 -5
- package/docs/it/intlayer_with_nestjs.md +268 -0
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_react_router_v7.md +535 -0
- package/docs/it/intlayer_with_tanstack.md +467 -301
- package/docs/it/intlayer_with_vite+preact.md +7 -7
- package/docs/it/intlayer_with_vite+react.md +7 -7
- package/docs/it/intlayer_with_vite+vue.md +9 -9
- package/docs/it/packages/vite-intlayer/index.md +3 -3
- package/docs/it/readme.md +261 -0
- package/docs/it/testing.md +200 -0
- package/docs/ja/autoFill.md +45 -23
- package/docs/ja/configuration.md +243 -204
- package/docs/ja/dictionary/content_file.md +1064 -0
- package/docs/ja/intlayer_CMS.md +4 -5
- package/docs/ja/intlayer_with_nestjs.md +268 -0
- package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7.md +534 -0
- package/docs/ja/intlayer_with_tanstack.md +467 -303
- package/docs/ja/intlayer_with_vite+preact.md +7 -7
- package/docs/ja/intlayer_with_vite+react.md +7 -7
- package/docs/ja/intlayer_with_vite+vue.md +9 -9
- package/docs/ja/packages/vite-intlayer/index.md +3 -3
- package/docs/ja/readme.md +263 -0
- package/docs/ja/testing.md +200 -0
- package/docs/ko/autoFill.md +39 -16
- package/docs/ko/configuration.md +217 -197
- package/docs/ko/dictionary/content_file.md +1060 -0
- package/docs/ko/intlayer_CMS.md +4 -5
- package/docs/ko/intlayer_with_nestjs.md +268 -0
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7.md +540 -0
- package/docs/ko/intlayer_with_tanstack.md +466 -302
- package/docs/ko/intlayer_with_vite+preact.md +7 -7
- package/docs/ko/intlayer_with_vite+react.md +7 -7
- package/docs/ko/intlayer_with_vite+vue.md +9 -9
- package/docs/ko/packages/vite-intlayer/index.md +3 -3
- package/docs/ko/readme.md +261 -0
- package/docs/ko/testing.md +200 -0
- package/docs/pt/autoFill.md +39 -15
- package/docs/pt/configuration.md +165 -147
- package/docs/pt/dictionary/content_file.md +1062 -0
- package/docs/pt/intlayer_CMS.md +4 -5
- package/docs/pt/intlayer_with_nestjs.md +271 -0
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +535 -0
- package/docs/pt/intlayer_with_tanstack.md +469 -300
- package/docs/pt/intlayer_with_vite+preact.md +7 -7
- package/docs/pt/intlayer_with_vite+react.md +7 -7
- package/docs/pt/intlayer_with_vite+vue.md +9 -9
- package/docs/pt/packages/vite-intlayer/index.md +3 -3
- package/docs/pt/readme.md +261 -0
- package/docs/pt/testing.md +200 -0
- package/docs/ru/autoFill.md +52 -30
- package/docs/ru/configuration.md +164 -117
- package/docs/ru/dictionary/content_file.md +1064 -0
- package/docs/ru/intlayer_CMS.md +4 -4
- package/docs/ru/intlayer_with_nestjs.md +270 -0
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7.md +534 -0
- package/docs/ru/intlayer_with_tanstack.md +470 -305
- package/docs/ru/intlayer_with_vite+preact.md +7 -7
- package/docs/ru/intlayer_with_vite+react.md +7 -7
- package/docs/ru/intlayer_with_vite+vue.md +9 -9
- package/docs/ru/packages/vite-intlayer/index.md +3 -3
- package/docs/ru/readme.md +261 -0
- package/docs/ru/testing.md +202 -0
- package/docs/tr/CI_CD.md +198 -0
- package/docs/tr/autoFill.md +201 -0
- package/docs/tr/configuration.md +585 -0
- package/docs/tr/dictionary/condition.md +243 -0
- package/docs/tr/dictionary/content_file.md +1055 -0
- package/docs/tr/dictionary/enumeration.md +251 -0
- package/docs/tr/dictionary/file.md +228 -0
- package/docs/tr/dictionary/function_fetching.md +218 -0
- package/docs/tr/dictionary/gender.md +279 -0
- package/docs/tr/dictionary/insertion.md +191 -0
- package/docs/tr/dictionary/markdown.md +385 -0
- package/docs/tr/dictionary/nesting.md +279 -0
- package/docs/tr/dictionary/translation.md +315 -0
- package/docs/tr/formatters.md +618 -0
- package/docs/tr/how_works_intlayer.md +254 -0
- package/docs/tr/index.md +168 -0
- package/docs/tr/interest_of_intlayer.md +288 -0
- package/docs/tr/intlayer_CMS.md +347 -0
- package/docs/tr/intlayer_cli.md +570 -0
- package/docs/tr/intlayer_visual_editor.md +269 -0
- package/docs/tr/intlayer_with_angular.md +694 -0
- package/docs/tr/intlayer_with_create_react_app.md +1218 -0
- package/docs/tr/intlayer_with_express.md +415 -0
- package/docs/tr/intlayer_with_lynx+react.md +511 -0
- package/docs/tr/intlayer_with_nestjs.md +268 -0
- package/docs/tr/intlayer_with_nextjs_14.md +1029 -0
- package/docs/tr/intlayer_with_nextjs_15.md +1506 -0
- package/docs/tr/intlayer_with_nextjs_page_router.md +1484 -0
- package/docs/tr/intlayer_with_nuxt.md +773 -0
- package/docs/tr/intlayer_with_react_native+expo.md +660 -0
- package/docs/tr/intlayer_with_react_router_v7.md +531 -0
- package/docs/tr/intlayer_with_tanstack.md +452 -0
- package/docs/tr/intlayer_with_vite+preact.md +1673 -0
- package/docs/tr/intlayer_with_vite+react.md +1632 -0
- package/docs/tr/intlayer_with_vite+solid.md +288 -0
- package/docs/tr/intlayer_with_vite+svelte.md +288 -0
- package/docs/tr/intlayer_with_vite+vue.md +1042 -0
- package/docs/tr/introduction.md +209 -0
- package/docs/tr/locale_mapper.md +244 -0
- package/docs/tr/mcp_server.md +207 -0
- package/docs/tr/packages/@intlayer/api/index.md +58 -0
- package/docs/tr/packages/@intlayer/chokidar/index.md +57 -0
- package/docs/tr/packages/@intlayer/cli/index.md +47 -0
- package/docs/tr/packages/@intlayer/config/index.md +142 -0
- package/docs/tr/packages/@intlayer/core/index.md +51 -0
- package/docs/tr/packages/@intlayer/design-system/index.md +47 -0
- package/docs/tr/packages/@intlayer/dictionary-entry/index.md +53 -0
- package/docs/tr/packages/@intlayer/editor/index.md +47 -0
- package/docs/tr/packages/@intlayer/editor-react/index.md +47 -0
- package/docs/tr/packages/@intlayer/webpack/index.md +61 -0
- package/docs/tr/packages/angular-intlayer/index.md +59 -0
- package/docs/tr/packages/express-intlayer/index.md +258 -0
- package/docs/tr/packages/express-intlayer/t.md +459 -0
- package/docs/tr/packages/intlayer/getConfiguration.md +151 -0
- package/docs/tr/packages/intlayer/getEnumeration.md +165 -0
- package/docs/tr/packages/intlayer/getHTMLTextDir.md +127 -0
- package/docs/tr/packages/intlayer/getLocaleLang.md +87 -0
- package/docs/tr/packages/intlayer/getLocaleName.md +124 -0
- package/docs/tr/packages/intlayer/getLocalizedUrl.md +324 -0
- package/docs/tr/packages/intlayer/getMultilingualUrls.md +225 -0
- package/docs/tr/packages/intlayer/getPathWithoutLocale.md +81 -0
- package/docs/tr/packages/intlayer/getTranslation.md +196 -0
- package/docs/tr/packages/intlayer/getTranslationContent.md +195 -0
- package/docs/tr/packages/intlayer/index.md +505 -0
- package/docs/tr/packages/intlayer-cli/index.md +71 -0
- package/docs/tr/packages/intlayer-editor/index.md +139 -0
- package/docs/tr/packages/lynx-intlayer/index.md +85 -0
- package/docs/tr/packages/next-intlayer/index.md +154 -0
- package/docs/tr/packages/next-intlayer/t.md +354 -0
- package/docs/tr/packages/next-intlayer/useDictionary.md +270 -0
- package/docs/tr/packages/next-intlayer/useIntlayer.md +265 -0
- package/docs/tr/packages/next-intlayer/useLocale.md +133 -0
- package/docs/tr/packages/nuxt-intlayer/index.md +59 -0
- package/docs/tr/packages/preact-intlayer/index.md +55 -0
- package/docs/tr/packages/react-intlayer/index.md +148 -0
- package/docs/tr/packages/react-intlayer/t.md +304 -0
- package/docs/tr/packages/react-intlayer/useDictionary.md +554 -0
- package/docs/tr/packages/react-intlayer/useI18n.md +478 -0
- package/docs/tr/packages/react-intlayer/useIntlayer.md +253 -0
- package/docs/tr/packages/react-intlayer/useLocale.md +212 -0
- package/docs/tr/packages/react-native-intlayer/index.md +85 -0
- package/docs/tr/packages/react-scripts-intlayer/index.md +82 -0
- package/docs/tr/packages/solid-intlayer/index.md +56 -0
- package/docs/tr/packages/svelte-intlayer/index.md +55 -0
- package/docs/tr/packages/vite-intlayer/index.md +82 -0
- package/docs/tr/packages/vue-intlayer/index.md +59 -0
- package/docs/tr/per_locale_file.md +321 -0
- package/docs/tr/readme.md +261 -0
- package/docs/tr/roadmap.md +338 -0
- package/docs/tr/testing.md +200 -0
- package/docs/tr/vs_code_extension.md +154 -0
- package/docs/zh/autoFill.md +40 -18
- package/docs/zh/configuration.md +245 -226
- package/docs/zh/dictionary/content_file.md +1064 -0
- package/docs/zh/intlayer_CMS.md +4 -5
- package/docs/zh/intlayer_with_nestjs.md +268 -0
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +535 -0
- package/docs/zh/intlayer_with_tanstack.md +468 -278
- package/docs/zh/intlayer_with_vite+preact.md +7 -7
- package/docs/zh/intlayer_with_vite+react.md +7 -7
- package/docs/zh/intlayer_with_vite+vue.md +7 -7
- package/docs/zh/packages/vite-intlayer/index.md +3 -3
- package/docs/zh/readme.md +261 -0
- package/docs/zh/testing.md +198 -0
- package/frequent_questions/tr/SSR_Next_no_[locale].md +105 -0
- package/frequent_questions/tr/array_as_content_declaration.md +72 -0
- package/frequent_questions/tr/build_dictionaries.md +59 -0
- package/frequent_questions/tr/build_error_CI_CD.md +75 -0
- package/frequent_questions/tr/customized_locale_list.md +65 -0
- package/frequent_questions/tr/domain_routing.md +114 -0
- package/frequent_questions/tr/esbuild_error.md +30 -0
- package/frequent_questions/tr/get_locale_cookie.md +142 -0
- package/frequent_questions/tr/intlayer_command_undefined.md +156 -0
- package/frequent_questions/tr/locale_incorect_in_url.md +74 -0
- package/frequent_questions/tr/static_rendering.md +45 -0
- package/frequent_questions/tr/translated_path_url.md +56 -0
- package/frequent_questions/tr/unknown_command.md +98 -0
- package/legal/tr/privacy_notice.md +83 -0
- package/legal/tr/terms_of_service.md +55 -0
- package/package.json +12 -12
- package/src/generated/blog.entry.ts +212 -0
- package/src/generated/docs.entry.ts +663 -135
- package/src/generated/frequentQuestions.entry.ts +85 -1
- package/src/generated/legal.entry.ts +7 -1
- package/docs/ar/dictionary/content_extention_customization.md +0 -100
- package/docs/ar/dictionary/get_started.md +0 -527
- package/docs/de/dictionary/content_extention_customization.md +0 -100
- package/docs/de/dictionary/get_started.md +0 -531
- package/docs/en/dictionary/content_extention_customization.md +0 -102
- package/docs/en/dictionary/get_started.md +0 -529
- package/docs/en-GB/dictionary/content_extention_customization.md +0 -100
- package/docs/en-GB/dictionary/get_started.md +0 -591
- package/docs/es/dictionary/content_extention_customization.md +0 -100
- package/docs/es/dictionary/get_started.md +0 -527
- package/docs/fr/dictionary/content_extention_customization.md +0 -100
- package/docs/fr/dictionary/get_started.md +0 -527
- package/docs/hi/dictionary/content_extention_customization.md +0 -100
- package/docs/hi/dictionary/get_started.md +0 -527
- package/docs/it/dictionary/content_extention_customization.md +0 -113
- package/docs/it/dictionary/get_started.md +0 -573
- package/docs/ja/dictionary/content_extention_customization.md +0 -113
- package/docs/ja/dictionary/get_started.md +0 -576
- package/docs/ko/dictionary/content_extention_customization.md +0 -100
- package/docs/ko/dictionary/get_started.md +0 -530
- package/docs/pt/dictionary/content_extention_customization.md +0 -100
- package/docs/pt/dictionary/get_started.md +0 -532
- package/docs/ru/dictionary/content_extention_customization.md +0 -100
- package/docs/ru/dictionary/get_started.md +0 -575
- package/docs/zh/dictionary/content_extention_customization.md +0 -117
- package/docs/zh/dictionary/get_started.md +0 -533
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Best Internationalization (i18n) Tools for Svelte
|
|
5
|
+
description: Discover top Svelte i18n solutions to tackle translation challenges, boost SEO, and deliver a seamless global web experience.
|
|
6
|
+
keywords:
|
|
7
|
+
- Svelte
|
|
8
|
+
- i18n
|
|
9
|
+
- multilingual
|
|
10
|
+
- SEO
|
|
11
|
+
- Internationalization
|
|
12
|
+
- Blog
|
|
13
|
+
- JavaScript
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-technologies
|
|
17
|
+
- frameworks
|
|
18
|
+
- svelte
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Exploring i18n Solutions to Translate Your Svelte Website
|
|
22
|
+
|
|
23
|
+
As the web continues to connect people across the globe, providing content in multiple languages is increasingly important. For developers working with **Svelte**, implementing i18n is essential to efficiently manage translations, maintain clean code, and uphold good SEO practices. In this article, we dive into various i18n solutions and workflows for Svelte helping you choose the one that best suits your project’s needs.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
## What is Internationalization (i18n)?
|
|
30
|
+
|
|
31
|
+
Internationalization, commonly abbreviated as i18n, is the process of designing and building your application so it can easily adapt to various languages, regions, and cultural conventions. In Svelte, this typically means setting up translation strings, localizing dates, times, and numbers, and ensuring the user interface can dynamically switch among different locales without major code rewrites.
|
|
32
|
+
|
|
33
|
+
To learn more about i18n fundamentals, read our article: [What is Internationalization (i18n)? Definition and Challenges](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/what_is_internationalization.md).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## The Translation Challenge for Svelte Applications
|
|
38
|
+
|
|
39
|
+
Translating a Svelte application can present several hurdles:
|
|
40
|
+
|
|
41
|
+
- **Single-File Components**: Svelte’s single-file component approach (where HTML, CSS, and JavaScript exist together) makes it easy for text to become scattered, requiring a strategy to centralize translations.
|
|
42
|
+
- **Dynamic Content**: Data retrieved from APIs or user inputs adds complexity when ensuring content is translated on the fly.
|
|
43
|
+
- **SEO Considerations**: If you’re using **SvelteKit** for server-side rendering (SSR), configuring localized URLs, meta tags, and sitemaps for effective SEO requires extra care.
|
|
44
|
+
- **State & Routing**: Retaining the correct language across multiple routes and dynamic pages often involves orchestrating global state, route guards, or custom hooks in SvelteKit.
|
|
45
|
+
- **Maintainability**: As your codebase and translation files grow, keeping everything well-organized and synchronized becomes a continuous effort.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Leading i18n Solutions for Svelte
|
|
50
|
+
|
|
51
|
+
Svelte doesn’t provide a native, built-in i18n solution (as Angular does), but the community has created a variety of robust libraries and patterns. Below are several popular approaches.
|
|
52
|
+
|
|
53
|
+
### 1. svelte-i18n
|
|
54
|
+
|
|
55
|
+
Repository: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
|
|
56
|
+
|
|
57
|
+
**Overview**
|
|
58
|
+
**svelte-i18n** is one of the most widely adopted libraries for adding internationalization to Svelte applications. It allows you to dynamically load and switch between locales at runtime and includes helpers for plurals, interpolation, and more.
|
|
59
|
+
|
|
60
|
+
**Key Features**
|
|
61
|
+
|
|
62
|
+
- **Runtime Translations**: Load translation files on demand, enabling you to switch languages without rebuilding your app.
|
|
63
|
+
- **Pluralization & Interpolation**: Offers a straightforward syntax for handling plural forms and inserting variables within translations.
|
|
64
|
+
- **Lazy Loading**: Only fetch the translation files you need, optimizing performance for larger apps or multiple languages.
|
|
65
|
+
- **SvelteKit Support**: Well-documented examples show how to integrate with SSR in SvelteKit for better SEO.
|
|
66
|
+
|
|
67
|
+
**Considerations**
|
|
68
|
+
|
|
69
|
+
- **Project Organization**: You’ll need to structure your translation files logically as the project grows.
|
|
70
|
+
- **SSR Setup**: Configuring SSR for SEO might require additional steps to ensure correct locale detection on the server side.
|
|
71
|
+
- **Performance**: While flexible at runtime, a large number of translations loaded at once can impact initial load times consider lazy loading or caching strategies.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 2. svelte-intl-precompile
|
|
76
|
+
|
|
77
|
+
Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
|
|
78
|
+
|
|
79
|
+
**Overview**
|
|
80
|
+
**svelte-intl-precompile** uses a precompilation approach to reduce runtime overhead and improve performance. This library integrates the concept of message formatting (similar to FormatJS) while generating precompiled messages at build time.
|
|
81
|
+
|
|
82
|
+
**Key Features**
|
|
83
|
+
|
|
84
|
+
- **Precompiled Messages**: By compiling translation strings during the build step, runtime performance is improved, and the bundle size can be smaller.
|
|
85
|
+
- **Integration with SvelteKit**: Compatible with SSR, allowing you to serve fully localized pages for better SEO and user experience.
|
|
86
|
+
- **Message Extraction**: Automatically extract strings from your code, reducing the overhead of manual updates.
|
|
87
|
+
- **Advanced Formatting**: Supports pluralization, gender-specific translations, and variable interpolation.
|
|
88
|
+
|
|
89
|
+
**Considerations**
|
|
90
|
+
|
|
91
|
+
- **Build Complexity**: Setting up precompilation might introduce additional complexity in your build pipeline.
|
|
92
|
+
- **Dynamic Content**: If you need on-the-fly translations for user-generated content, this approach may require extra steps for updates at runtime.
|
|
93
|
+
- **Learning Curve**: The combination of message extraction and precompilation can be slightly more complex for newcomers.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### 3. i18next with Svelte / SvelteKit
|
|
98
|
+
|
|
99
|
+
Website: [https://www.i18next.com/](https://www.i18next.com/)
|
|
100
|
+
|
|
101
|
+
**Overview**
|
|
102
|
+
Although **i18next** is more commonly associated with React or Vue, it’s also possible to integrate it with Svelte or **SvelteKit**. Leveraging i18next’s broad ecosystem can be helpful if you need consistent i18n across different JavaScript frameworks in your organization.
|
|
103
|
+
|
|
104
|
+
**Key Features**
|
|
105
|
+
|
|
106
|
+
- **Mature Ecosystem**: Benefit from an extensive range of plugins, language detection modules, and community support.
|
|
107
|
+
- **Runtime or Build-Time**: Choose between dynamic loading or bundling your translations for slightly faster startup.
|
|
108
|
+
- **SSR-Friendly**: SvelteKit SSR can serve localized content by using i18next on the server side, which is great for SEO.
|
|
109
|
+
- **Rich Features**: Supports interpolation, plurals, nested translations, and more complex i18n scenarios.
|
|
110
|
+
|
|
111
|
+
**Considerations**
|
|
112
|
+
|
|
113
|
+
- **Manual Setup**: i18next doesn’t have a dedicated Svelte integration out of the box, so you’ll need to configure it yourself.
|
|
114
|
+
- **Overhead**: i18next is robust, but for smaller Svelte projects, some of its features might be overkill.
|
|
115
|
+
- **Routing & State**: Handling language routing will likely involve custom SvelteKit hooks or middlewares.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### Final Thoughts
|
|
120
|
+
|
|
121
|
+
When selecting an i18n strategy for your Svelte app:
|
|
122
|
+
|
|
123
|
+
1. **Assess Project Scale**: For smaller projects or quick prototypes, simpler libraries like **svelte-i18n** or a minimal i18n approach might suffice. Larger, more complex apps may benefit from a typed, precompiled, or more robust ecosystem-based solution.
|
|
124
|
+
2. **SSO & SSR Considerations**: If SEO is critical or you need server-side rendering with **SvelteKit**, choose a library that supports SSR effectively and can handle localized routes, metadata, and sitemaps.
|
|
125
|
+
3. **Runtime vs. Build-Time**: Decide whether you need dynamic language switching at runtime or prefer precompiled translations for better performance. Each approach involves different trade-offs.
|
|
126
|
+
4. **TypeScript Integration**: If you rely heavily on TypeScript, solutions like **Intlayer** or libraries with typed keys can significantly reduce runtime errors and improve the developer experience.
|
|
127
|
+
5. **Maintainability & Scalability**: Plan how you’ll organize, update, and version your translation files. Automated extraction, naming conventions, and a consistent folder structure will save time in the long run.
|
|
128
|
+
|
|
129
|
+
Ultimately, each library offers unique strengths. Your choice depends on **performance**, **developer experience**, **SEO needs**, and **long-term maintainability**. By selecting a solution that aligns with your project’s goals, you can create a truly global application in Svelte one that delights users around the world.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: Vue İçin En İyi Uluslararasılaştırma (i18n) Araçları
|
|
5
|
+
description: Çeviri zorluklarını aşmak, SEO'yu artırmak ve sorunsuz bir küresel web deneyimi sunmak için en iyi Vue i18n çözümlerini keşfedin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Vue
|
|
8
|
+
- i18n
|
|
9
|
+
- multilingual
|
|
10
|
+
- SEO
|
|
11
|
+
- Internationalization
|
|
12
|
+
- Blog
|
|
13
|
+
- JavaScript
|
|
14
|
+
slugs:
|
|
15
|
+
- blog
|
|
16
|
+
- i18n-technologies
|
|
17
|
+
- frameworks
|
|
18
|
+
- vue
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Vue.js Web Sitenizi Çevirmek İçin i18n Çözümlerini Keşfetmek
|
|
22
|
+
|
|
23
|
+
Giderek küreselleşen dijital ortamda, Vue.js web sitenizin birden fazla dildeki kullanıcılara ulaşmasını genişletmek artık "iyi olur" değil, rekabet gereksinimi. Uluslararasılaştırma (i18n), geliştiricilerin çevirileri yönetmelerine ve uygulamalarını çeşitli yerel ayarlar için uyarlamalarına olanak tanır, SEO değerini, kullanıcı deneyimini ve sürdürülebilir kod yapılarını koruyarak. Bu makalede, özel kütüphanelerden özel kodlanmış çözümlere kadar farklı yaklaşımları inceleyeceğiz ve i18n'yi Vue.js projenize sorunsuz bir şekilde entegre etmenize yardımcı olacağız.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
## Uluslararasılaştırma (i18n) Nedir?
|
|
30
|
+
|
|
31
|
+
Uluslararasılaştırma (i18n), bir yazılım uygulamasını (veya web sitesini) birden fazla dil ve kültürel kural için hazırlama uygulamasıdır. Vue.js ekosistemi içinde bu, metin, tarihler, sayılar, para birimi ve diğer yerelleştirilebilir unsurların çeşitli yerel ayarlara nasıl uyarlanabileceğini belirlemeyi içerir. Başlangıçtan itibaren i18n'yi ayarlayarak, yeni diller eklemek ve gelecekteki yerelleştirme ihtiyaçlarını yönetmek için organize, ölçeklenebilir bir yapı sağlarsınız.
|
|
32
|
+
|
|
33
|
+
i18n temelleri hakkında daha fazla bilgi edinmek için referansımıza göz atın: [Uluslararasılaştırma (i18n) Nedir? Tanım ve Zorluklar](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/what_is_internationalization.md).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Vue Uygulamaları İçin Çeviri Zorluğu
|
|
38
|
+
|
|
39
|
+
Vue.js uygulamasını çevirmek kendine özgü zorluklar getirir:
|
|
40
|
+
|
|
41
|
+
- **Bileşen Tabanlı Mimari:** React'a benzer şekilde, Vue'nun tek dosyalı bileşenleri (SFC'ler) her biri metin ve yerel ayar spesifik ayarlar içerebilir. Çeviri dizelerini merkezileştirmek için bir stratejiye ihtiyacınız olacak.
|
|
42
|
+
- **Dinamik İçerik:** API'lerden getirilen veya gerçek zamanlı olarak manipüle edilen veriler, çevirileri anında yüklemek ve uygulamak için esnek bir yaklaşım gerektirir.
|
|
43
|
+
- **SEO Hususları:** Nuxt veya diğer SSR kurulumları aracılığıyla sunucu tarafında işleme ile, güçlü SEO'yu korumak için yerelleştirilmiş URL'leri, meta etiketleri ve site haritalarını yönetmek kritik önem taşır.
|
|
44
|
+
- **Durum ve Reaktif Bağlam:** Geçerli yerel ayarın rotalar ve bileşenler arasında korunmasını sağlamak, özellikle Vuex veya Pinia ile durum yönetimi yaparken metinleri ve formatları reaktif olarak güncellemek dikkatli bir yaklaşım gerektirir.
|
|
45
|
+
- **Geliştirme Yükü:** Çeviri dosyalarını organize, tutarlı ve güncel tutmak, dikkatli yönetilmezse hızla büyük bir görev haline gelebilir.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Vue.js İçin Önde Gelen i18n Çözümleri
|
|
50
|
+
|
|
51
|
+
Aşağıda, Vue uygulamalarınıza uluslararasılaştırmayı dahil etmek için kullanabileceğiniz birkaç popüler kütüphane ve yaklaşım bulunmaktadır. Her biri çeviriyi, SEO'yu ve performans hususlarını farklı şekillerde basitleştirmeyi amaçlar.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### 1. Vue I18n
|
|
56
|
+
|
|
57
|
+
> Website: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
|
|
58
|
+
|
|
59
|
+
**Genel Bakış**
|
|
60
|
+
**Vue I18n**, Vue ekosisteminde en yaygın kullanılan yerelleştirme kütüphanesidir ve Vue 2, Vue 3 ve Nuxt tabanlı projelerde çevirileri yönetmek için basit ve özellik açısından zengin bir yol sağlar.
|
|
61
|
+
|
|
62
|
+
**Ana Özellikler**
|
|
63
|
+
|
|
64
|
+
- **Basit Kurulum**
|
|
65
|
+
İyi belgelenmiş bir API kullanarak yerelleştirilmiş mesajları hızlıca yapılandırın ve yerel ayarları değiştirin.
|
|
66
|
+
- **Reaktiflik**
|
|
67
|
+
Vue'nun reaktiflik sistemi sayesinde yerel ayar değişiklikleri metni bileşenler arasında anında günceller.
|
|
68
|
+
- **Çoğullaştırma ve Tarih/Sayı Biçimlendirme**
|
|
69
|
+
Yerleşik yöntemler yaygın kullanım durumlarını yönetir, çoğul formları, tarih/saat biçimlendirmeyi, sayı/para birimi biçimlendirmeyi ve daha fazlasını içerir.
|
|
70
|
+
- **Nuxt.js Desteği**
|
|
71
|
+
Nuxt I18n modülü, her yerel ayar için otomatik rota oluşturma, SEO dostu URL'ler ve site haritaları için Vue I18n'yi genişletir.
|
|
72
|
+
- **TypeScript Desteği**
|
|
73
|
+
TypeScript tabanlı Vue uygulamalarıyla entegre edilebilir, ancak çeviri anahtarları için otomatik tamamlama ek konfigürasyon gerektirebilir.
|
|
74
|
+
- **SSR ve Kod Bölme**
|
|
75
|
+
Performansı artırmak için Nuxt ile sunucu tarafında işleme için sorunsuz çalışır ve çeviri dosyaları için kod bölmeyi destekler.
|
|
76
|
+
|
|
77
|
+
**Dikkat Edilmesi Gerekenler**
|
|
78
|
+
|
|
79
|
+
- **Konfigürasyon Yükü**
|
|
80
|
+
Büyük veya çok ekipli projeler, çeviri dosyalarını verimli bir şekilde yönetmek için açık bir klasör yapısı ve adlandırma kuralları gerektirebilir.
|
|
81
|
+
- **Eklenti Ekosistemi**
|
|
82
|
+
Sağlam olsa da, mükemmel bir kurulum oluşturmak için birden fazla eklenti veya modülden (Nuxt I18n, Vue I18n vb.) dikkatli bir şekilde seçim yapmanız gerekebilir.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### 2. LinguiJS (Vue Entegrasyonu)
|
|
87
|
+
|
|
88
|
+
> Website: [https://lingui.js.org/](https://lingui.js.org/)
|
|
89
|
+
|
|
90
|
+
**Genel Bakış**
|
|
91
|
+
Orijinal olarak React entegrasyonuyla bilinen **LinguiJS**, minimum çalışma zamanı yükü ve otomatik mesaj çıkarım iş akışına odaklanan bir Vue eklentisi de sunar.
|
|
92
|
+
|
|
93
|
+
**Ana Özellikler**
|
|
94
|
+
|
|
95
|
+
- **Otomatik Mesaj Çıkarımı**
|
|
96
|
+
Çeviriler için Vue kodunuzu taramak üzere Lingui CLI'yi kullanın, mesaj kimliklerinin manuel girişini azaltın.
|
|
97
|
+
- **Kompakt ve Performanslı**
|
|
98
|
+
Derlenmiş çeviriler daha küçük bir çalışma zamanı ayak izine yol açar, yüksek performanslı Vue uygulamaları için vazgeçilmez.
|
|
99
|
+
- **TypeScript ve Otomatik Tamamlama**
|
|
100
|
+
Yapılandırması biraz daha manuel olsa da, yazılan kimlikler ve kataloglar TypeScript tabanlı Vue projelerinde geliştirici deneyimini iyileştirebilir.
|
|
101
|
+
- **Nuxt ve SSR Uyumluluğu**
|
|
102
|
+
SEO'yu ve her desteklenen yerel ayar için performansı iyileştirmek üzere tam yerelleştirilmiş sayfaları sunmak için SSR kurulumlarıyla entegre olabilir.
|
|
103
|
+
- **Çoğullaştırma ve Biçimlendirme**
|
|
104
|
+
ICU mesaj formatı standartlarıyla uyumlu çoğullar, sayı biçimlendirme, tarihler ve daha fazlası için yerleşik destek.
|
|
105
|
+
|
|
106
|
+
**Dikkat Edilmesi Gerekenler**
|
|
107
|
+
|
|
108
|
+
- **Daha Az Vue Spesifik Dokümantasyon**
|
|
109
|
+
LinguiJS'nin Vue için resmi desteği olsa da, dokümantasyonu öncelikle React'a odaklanır; topluluk örneklerine güvenmeniz gerekebilir.
|
|
110
|
+
- **Daha Küçük Topluluk**
|
|
111
|
+
Vue I18n'ye kıyasla nispeten daha küçük bir ekosistem vardır. Resmi olarak sürdürülen eklentiler ve üçüncü taraf eklentileri daha sınırlı olabilir.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Son Düşünceler
|
|
116
|
+
|
|
117
|
+
Vue.js uygulamanız için bir i18n çözümü karar verirken:
|
|
118
|
+
|
|
119
|
+
1. **Gereksinimlerinizi Değerlendirin**
|
|
120
|
+
Proje boyutu, geliştirici beceri seti ve yerelleştirmenin karmaşıklığı hepsi seçimlerinize etki eder.
|
|
121
|
+
2. **SSR Uyumluluğunu Değerlendirin**
|
|
122
|
+
Nuxt uygulaması oluşturuyorsanız veya başka şekilde SSR'ye bağımlıysanız, seçtiğiniz yaklaşımın sunucu işlemeyi sorunsuz desteklediğini onaylayın.
|
|
123
|
+
3. **TypeScript ve Otomatik Tamamlama**
|
|
124
|
+
Güçlü bir geliştirici deneyimine ve minimum çeviri anahtarı yazım hatasına değer verirseniz, çözümünüzün yazılan tanımlar sunduğundan veya bunlarla entegre edilebileceğinden emin olun.
|
|
125
|
+
4. **Yönetilebilirlik ve Ölçeklenebilirlik**
|
|
126
|
+
Daha fazla yerel ayar ekledikçe veya uygulamanızı genişlettikçe, organize bir çeviri dosyası yapısı kritik önem taşır.
|
|
127
|
+
5. **SEO ve Meta Veriler**
|
|
128
|
+
Çok dilli sitelerin iyi sıralanması için, çözümünüz her yerel ayar için yerelleştirilmiş meta etiketleri, URL'leri, site haritalarını ve `robots.txt`'yi basitleştirmelidir.
|
|
129
|
+
|
|
130
|
+
Hangi yolu seçerseniz seçin Intlayer, Vue I18n, LinguiJS veya özel kodlanmış bir yaklaşım küresel dostu bir Vue.js uygulaması sunmanın yolunda ilerleyeceksiniz. Her çözüm performans, geliştirici deneyimi ve ölçeklenebilirlik açısından farklı ödünleşimler sunar. Projenizin ihtiyaçlarını dikkatli bir şekilde değerlendirerek, sizi ve çok dilli kitlenizi başarıya hazırlayacak i18n kurulumunu güvenle seçebilirsiniz.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: next-i18next vs next-intl vs Intlayer
|
|
5
|
+
description: next-i18next'i next-intl ve Intlayer ile Next.js uygulamasının uluslararasılaştırması (i18n) için karşılaştırın
|
|
6
|
+
keywords:
|
|
7
|
+
- next-intl
|
|
8
|
+
- next-i18next
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Internationalization
|
|
11
|
+
- Blog
|
|
12
|
+
- Next.js
|
|
13
|
+
- JavaScript
|
|
14
|
+
- React
|
|
15
|
+
slugs:
|
|
16
|
+
- blog
|
|
17
|
+
- next-i18next-vs-next-intl-vs-intlayer
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# next-i18next VS next-intl VS intlayer | Next.js Uluslararasılaştırma (i18n)
|
|
21
|
+
|
|
22
|
+
Bu rehber, **Next.js** için yaygın olarak kullanılan üç i18n seçeneğini karşılaştırır: **next-intl**, **next-i18next** ve **Intlayer**.
|
|
23
|
+
**Next.js 13+ App Router**'a (React Server Components ile) odaklanıyoruz ve şunları değerlendiriyoruz:
|
|
24
|
+
|
|
25
|
+
1. **Mimari ve içerik organizasyonu**
|
|
26
|
+
2. **TypeScript ve güvenlik**
|
|
27
|
+
3. **Eksik çeviri işleme**
|
|
28
|
+
4. **Yönlendirme ve ara yazılım**
|
|
29
|
+
5. **Performans ve yükleme davranışı**
|
|
30
|
+
6. **Geliştirici deneyimi (DX), araçlar ve bakım**
|
|
31
|
+
7. **SEO ve büyük proje ölçeklenebilirliği**
|
|
32
|
+
|
|
33
|
+
> **tl;dr**: Üçü de bir Next.js uygulamasını yerelleştirebilir. **Bileşen kapsamlı içerik**, **katı TypeScript türleri**, **derleme zamanı eksik anahtar kontrolleri**, **ağaç sallanan sözlükler** ve **birinci sınıf App Router + SEO yardımcıları** istiyorsanız, **Intlayer** en kapsamlı, modern seçimdir.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Yüksek düzey konumlandırma
|
|
38
|
+
|
|
39
|
+
- **next-intl** - Hafif, doğrudan mesaj formatlaması ile sağlam Next.js desteği. Merkezi kataloglar yaygındır; DX basittir, ancak güvenlik ve büyük ölçekli bakım çoğunlukla sizin sorumluluğunuzdur.
|
|
40
|
+
- **next-i18next** - Next.js'te i18next. Eklentiler aracılığıyla olgun ekosistem ve özellikler (örneğin, ICU), ancak yapılandırma ayrıntılı olabilir ve kataloglar projeler büyüdükçe merkezi olmaya eğilimlidir.
|
|
41
|
+
- **Intlayer** - Next.js için bileşen merkezli içerik modeli, **katı TS yazımı**, **derleme zamanı kontrolleri**, **ağaç sallama**, **yerleşik ara yazılım ve SEO yardımcıları**, isteğe bağlı **Görsel Düzenleyici/CMS** ve **AI destekli çeviriler**.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Yan Yana Özellik Karşılaştırması (Next.js odaklı)
|
|
46
|
+
|
|
47
|
+
| Özellik | `next-intlayer` (Intlayer) | `next-intl` | `next-i18next` |
|
|
48
|
+
| ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
49
|
+
| **Bileşenlere Yakın Çeviriler** | ✅ Evet, içerik her bileşenle birlikte yerleştirilir | ❌ Hayır | ❌ Hayır |
|
|
50
|
+
| **TypeScript Entegrasyonu** | ✅ Gelişmiş, otomatik olarak oluşturulan katı türler | ✅ İyi | ⚠️ Temel |
|
|
51
|
+
| **Eksik Çeviri Algılama** | ✅ TypeScript hata vurgulaması ve derleme zamanı hata/uyarı | ⚠️ Çalışma zamanı geri dönüşü | ⚠️ Çalışma zamanı geri dönüşü |
|
|
52
|
+
| **Zengin İçerik (JSX/Markdown/bileşenler)** | ✅ Doğrudan destek | ❌ Zengin düğümler için tasarlanmamış | ⚠️ Sınırlı |
|
|
53
|
+
| **AI destekli Çeviri** | ✅ Evet, birden fazla AI sağlayıcısını destekler. Kendi API anahtarlarınızı kullanarak kullanılabilir. Uygulamanızın bağlamını ve içerik kapsamını dikkate alır | ❌ Hayır | ❌ Hayır |
|
|
54
|
+
| **Görsel Düzenleyici** | ✅ Evet, yerel Görsel Düzenleyici + isteğe bağlı CMS; kod tabanı içeriğini dışa aktarabilir; gömülebilir | ❌ Hayır / harici yerelleştirme platformları aracılığıyla mevcut | ❌ Hayır / harici yerelleştirme platformları aracılığıyla mevcut |
|
|
55
|
+
| **Yerelleştirilmiş Yönlendirme** | ✅ Evet, kutudan çıkar çıkmaz yerelleştirilmiş yolları destekler (Next.js ve Vite ile çalışır) | ✅ Yerleşik, App Router `[locale]` segmentini destekler | ✅ Yerleşik |
|
|
56
|
+
| **Dinamik Yol Oluşturma** | ✅ Evet | ✅ Evet | ✅ Evet |
|
|
57
|
+
| **Çoğullaştırma** | ✅ Numaralandırma tabanlı desenler | ✅ İyi | ✅ İyi |
|
|
58
|
+
| **Formatlama (tarihler, sayılar, para birimleri)** | ✅ Optimize edilmiş formatlayıcılar (Intl altında) | ✅ İyi (Intl yardımcıları) | ✅ İyi (Intl yardımcıları) |
|
|
59
|
+
| **İçerik Formatı** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml WIP) | ✅ .json, .js, .ts | ⚠️ .json |
|
|
60
|
+
| **ICU desteği** | ⚠️ WIP | ✅ Evet | ⚠️ Eklenti aracılığıyla (`i18next-icu`) |
|
|
61
|
+
| **SEO Yardımcıları (hreflang, site haritası)** | ✅ Yerleşik araçlar: site haritası, robots.txt, meta veri için yardımcılar | ✅ İyi | ✅ İyi |
|
|
62
|
+
| **Ekosistem / Topluluk** | ⚠️ Daha küçük ama hızlı büyüyen ve reaktif | ✅ İyi | ✅ İyi |
|
|
63
|
+
| **Sunucu Tarafı Oluşturma ve Sunucu Bileşenleri** | ✅ Evet, SSR / React Server Components için kolaylaştırılmış | ⚠️ Sayfa düzeyinde desteklenir ancak alt sunucu bileşenleri için t-fonksiyonlarını bileşen ağacında geçmeniz gerekir | ⚠️ Sayfa düzeyinde desteklenir ancak alt sunucu bileşenleri için t-fonksiyonlarını bileşen ağacında geçmeniz gerekir |
|
|
64
|
+
| **Ağaç sallama (yalnızca kullanılan içeriği yükle)** | ✅ Evet, Babel/SWC eklentileri aracılığıyla derleme zamanında bileşen başına | ⚠️ Kısmi | ⚠️ Kısmi |
|
|
65
|
+
| **Tembel yükleme** | ✅ Evet, yerel / sözlük başına | ✅ Evet (rota/yere göre), ad alanı yönetimi gerektir | ✅ Evet (rota/yere göre), ad alanı yönetimi gerektir |
|
|
66
|
+
| **Kullanılmayan içeriği temizle** | ✅ Evet, derleme zamanında sözlük başına | ❌ Hayır, ad alanı yönetimi ile manuel olarak yönetilebilir | ❌ Hayır, ad alanı yönetimi ile manuel olarak yönetilebilir |
|
|
67
|
+
| **Büyük Projelerin Yönetimi** | ✅ Modüler teşvik eder, tasarım sistemi için uygundur | ✅ Kurulumla modüler | ✅ Kurulumla modüler |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Derinlemesine karşılaştırma
|
|
72
|
+
|
|
73
|
+
### 1) Mimari ve ölçeklenebilirlik
|
|
74
|
+
|
|
75
|
+
- **next-intl / next-i18next**: Yerel başına **merkezi kataloglara** varsayılan (i18next'te **ad alanları** artı). Başlangıçta iyi çalışır, ancak artan bağlantı ve anahtar karmaşasıyla genellikle büyük bir paylaşılan yüzey alanı haline gelir.
|
|
76
|
+
- **Intlayer**: **Bileşen başına** (veya özellik başına) sözlükleri **hizmet ettikleri kodla birlikte** teşvik eder. Bu, bilişsel yükü azaltır, UI parçalarının çoğaltılmasını/migrasyonunu kolaylaştırır ve ekip arası çatışmaları azaltır. Kullanılmayan içerik doğal olarak daha kolay tespit edilir ve temizlenir.
|
|
77
|
+
|
|
78
|
+
**Neden önemli:** Büyük kod tabanlarında veya tasarım sistemi kurulumlarında, **modüler içerik** monolitik kataloglardan daha iyi ölçeklenir.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### 2) TypeScript ve güvenlik
|
|
83
|
+
|
|
84
|
+
- **next-intl**: Sağlam TypeScript desteği, ancak **anahtarlar varsayılan olarak katı şekilde yazılmaz**; güvenliği manuel olarak sürdüreceksiniz.
|
|
85
|
+
- **next-i18next**: Hook'lar için temel yazımlar; **katı anahtar yazımı ekstra araç/yapılandırma gerektirir**.
|
|
86
|
+
- **Intlayer**: İçeriğinizden **katı türler oluşturur**. **IDE otomatik tamamlama** ve **derleme zamanı hataları** dağıtım öncesi yazım hatalarını ve eksik anahtarları yakalar.
|
|
87
|
+
|
|
88
|
+
**Neden önemli:** Güçlü yazım, başarısızlıkları **sol** (CI/derleme) yerine **sağ** (çalışma zamanı) kaydırır.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### 3) Eksik çeviri işleme
|
|
93
|
+
|
|
94
|
+
- **next-intl / next-i18next**: **Çalışma zamanı geri dönüşlerine** güvenir (örneğin, anahtarı göster veya varsayılan yerel). Derleme başarısız olmaz.
|
|
95
|
+
- **Intlayer**: **Derleme zamanı algılama** ile eksik yerel veya anahtarlar için **uyarılar/hatalar**.
|
|
96
|
+
|
|
97
|
+
**Neden önemli:** Derleme sırasında boşlukları yakalamak, üretimde "gizemli dizeler"i önler ve katı sürüm kapılarıyla uyumlu hale getirir.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### 4) Yönlendirme, ara yazılım ve URL stratejisi
|
|
102
|
+
|
|
103
|
+
- Üçü de App Router'da **Next.js yerelleştirilmiş yönlendirme** ile çalışır.
|
|
104
|
+
- **Intlayer**, **i18n ara yazılımı** (üstbilgi/çerezler aracılığıyla yerel algılama) ve yerelleştirilmiş URL'ler ve `<link rel="alternate" hreflang="…">` etiketleri oluşturmak için **yardımcılarla** daha da ileri gider.
|
|
105
|
+
|
|
106
|
+
**Neden önemli:** Daha az özel yapıştırıcı katman; yerel genelinde **tutarlı UX** ve **temiz SEO**.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### 5) Sunucu Bileşenleri (RSC) uyumu
|
|
111
|
+
|
|
112
|
+
- **Hepsi** Next.js 13+'yı destekler.
|
|
113
|
+
- **Intlayer**, RSC için tasarlanmış tutarlı API ve sağlayıcılarla **sunucu/istemci sınırını** yumuşatır, böylece formatlayıcıları veya t-fonksiyonlarını bileşen ağaçları aracılığıyla taşımazsınız.
|
|
114
|
+
|
|
115
|
+
**Neden önemli:** Hibrit ağaçlarda daha temiz zihinsel model ve daha az uç durum.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### 6) Performans ve yükleme davranışı
|
|
120
|
+
|
|
121
|
+
- **next-intl / next-i18next**: **Ad alanları** ve **rota düzeyinde bölmeler** aracılığıyla kısmi kontrol; disiplin kayarsa kullanılmayan dizeleri paketleme riski.
|
|
122
|
+
- **Intlayer**: **Derleme zamanında ağaç sallar** ve **sözlük/yere göre tembel yükler**. Kullanılmayan içerik gönderilmez.
|
|
123
|
+
|
|
124
|
+
**Neden önemli:** Özellikle çok yerel sitelerde daha küçük paketler ve daha hızlı başlatma.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### 7) DX, araçlar ve bakım
|
|
129
|
+
|
|
130
|
+
- **next-intl / next-i18next**: Genellikle çeviriler ve düzenleme iş akışları için harici platformları bağlayacaksınız.
|
|
131
|
+
- **Intlayer**: **Ücretsiz Görsel Düzenleyici** ve **isteğe bağlı CMS** (Git dostu veya dışa aktarılmış) gönderir. Artı içerik yazımı için **VSCode uzantısı** ve kendi sağlayıcı anahtarlarınızı kullanarak **AI destekli çeviriler**.
|
|
132
|
+
|
|
133
|
+
**Neden önemli:** Operasyon maliyetini düşürür ve geliştiriciler ile içerik yazarları arasındaki döngüyü kısaltır.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Hangisini ne zaman seçmeli?
|
|
138
|
+
|
|
139
|
+
- **next-intl**'i seçin eğer **minimal** bir çözüm istiyorsanız, merkezi kataloglarla rahatınız ve uygulamanız **küçük ila orta boy**.
|
|
140
|
+
- **next-i18next**'i seçin eğer **i18next'in eklenti ekosistemine** ihtiyacınız varsa (örneğin, eklentiler aracılığıyla gelişmiş ICU kuralları) ve ekibiniz zaten i18next'i biliyorsa, esnekliği için **daha fazla yapılandırma** kabul ederek.
|
|
141
|
+
- **Intlayer**'ı seçin eğer **bileşen kapsamlı içerik**, **katı TypeScript**, **derleme zamanı garantileri**, **ağaç sallama** ve **pil dahil** yönlendirme/SEO/düzenleyici araçlarını takdir ediyorsanız - özellikle **Next.js App Router**, tasarım sistemleri ve **büyük, modüler kod tabanları** için.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## `next-intl` ve `next-i18next` ile birlikte çalışabilirlik
|
|
146
|
+
|
|
147
|
+
`intlayer`, `next-intl` ve `next-i18next` ad alanlarınızı yönetmenize de yardımcı olabilir.
|
|
148
|
+
|
|
149
|
+
`intlayer` kullanarak, içeriğinizi favori i18n kütüphanenizin formatında beyan edebilirsiniz ve intlayer ad alanlarınızı istediğiniz konumda oluşturacaktır (örnek: `/messages/{{locale}}/{{namespace}}.json`).
|
|
150
|
+
|
|
151
|
+
Daha fazla detay için [`dictionaryOutput` ve `i18nextResourcesDir` seçeneklerine](https://intlayer.org/doc/concept/configuration#content-configuration) bakın.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## GitHub YILDIZLARI
|
|
156
|
+
|
|
157
|
+
GitHub yıldızları, bir projenin popülaritesinin, topluluk güveninin ve uzun vadeli öneminin güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve muhtemelen benimsediğini yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişmeyi karşılaştırmaya ve ekosistem büyümesine ilişkin içgörüler sağlamaya yardımcı olur.
|
|
158
|
+
|
|
159
|
+
[](https://www.star-history.com/#i18next/next-i18next&amannn/next-intl&aymericzip/intlayer)
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Sonuç
|
|
164
|
+
|
|
165
|
+
Üç kütüphane de temel yerelleştirmede başarılı. Fark, **modern Next.js'te** sağlam, ölçeklenebilir bir kurulum elde etmek için **ne kadar iş yapmanız gerektiğidir**:
|
|
166
|
+
|
|
167
|
+
- **Intlayer** ile, **modüler içerik**, **katı TS**, **derleme zamanı güvenliği**, **ağaç sallanan paketler** ve **birinci sınıf App Router + SEO araçları** **varsayılanlardır**, görevler değildir.
|
|
168
|
+
- Ekibiniz çok yerel, bileşen odaklı bir uygulamada **bakım ve hızı** takdir ediyorsa, Intlayer bugün **en kapsamlı** deneyimi sunar.
|
|
169
|
+
|
|
170
|
+
Daha fazla detay için ['Neden Intlayer?' dokümantasyonuna](https://intlayer.org/doc/why) bakın.
|