@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,554 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-07
|
|
3
|
+
updatedAt: 2025-09-07
|
|
4
|
+
title: useDictionary Hook Dokümantasyonu | react-intlayer
|
|
5
|
+
description: React uygulamalarında Intlayer ile useDictionary hook'unun verimli kullanımı için tam rehber.
|
|
6
|
+
keywords:
|
|
7
|
+
- useDictionary
|
|
8
|
+
- React
|
|
9
|
+
- hook
|
|
10
|
+
- intlayer
|
|
11
|
+
- yerelleştirme
|
|
12
|
+
- i18n
|
|
13
|
+
- sözlük
|
|
14
|
+
- çeviri
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- package
|
|
18
|
+
- react-intlayer
|
|
19
|
+
- useDictionary
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# React Entegrasyonu: `useDictionary` Hook Dokümantasyonu
|
|
23
|
+
|
|
24
|
+
Bu bölüm, React uygulamalarında görsel düzenleyici olmadan yerelleştirilmiş içeriği verimli bir şekilde yönetmek için `useDictionary` hook'unun kullanımına ilişkin detaylı rehberlik sağlar.
|
|
25
|
+
|
|
26
|
+
## React'te `useDictionary` İçe Aktarma
|
|
27
|
+
|
|
28
|
+
`useDictionary` hook'u, bağlama göre içe aktararak React uygulamalarına entegre edilebilir:
|
|
29
|
+
|
|
30
|
+
- **İstemci Bileşeni:**
|
|
31
|
+
|
|
32
|
+
```typescript codeFormat="typescript"
|
|
33
|
+
import { useDictionary } from "react-intlayer"; // İstemci tarafı React bileşenlerinde kullanılır
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```javascript codeFormat="esm"
|
|
37
|
+
import { useDictionary } from "react-intlayer"; // İstemci tarafı React bileşenlerinde kullanılır
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```javascript codeFormat="commonjs"
|
|
41
|
+
const { useDictionary } = require("react-intlayer"); // İstemci tarafı React bileşenlerinde kullanılır
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- **Sunucu Bileşeni:**
|
|
45
|
+
|
|
46
|
+
```typescript codeFormat="typescript"
|
|
47
|
+
import { useDictionary } from "react-intlayer/server"; // Sunucu tarafı React bileşenlerinde kullanılır
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```javascript codeFormat="esm"
|
|
51
|
+
import { useDictionary } from "react-intlayer/server"; // Sunucu tarafı React bileşenlerinde kullanılır
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```javascript codeFormat="commonjs"
|
|
55
|
+
const { useDictionary } = require("react-intlayer/server"; // Sunucu tarafı React bileşenlerinde kullanılır
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Parametreler
|
|
59
|
+
|
|
60
|
+
Hook iki parametre kabul eder:
|
|
61
|
+
|
|
62
|
+
1. **`dictionary`**: Belirli anahtarlar için yerelleştirilmiş içerik içeren bildirilen bir sözlük nesnesi.
|
|
63
|
+
2. **`locale`** (isteğe bağlı): İstenen yerel ayar. Belirtilmezse, mevcut bağlamın yerel ayarına varsayılan olur.
|
|
64
|
+
|
|
65
|
+
## Sözlük
|
|
66
|
+
|
|
67
|
+
Tüm sözlük nesneleri, tür güvenliğini sağlamak ve çalışma zamanı hatalarını önlemek için yapılandırılmış içerik dosyalarında bildirilmelidir. [Kurulum talimatlarını burada](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/dictionary/get_started.md) bulabilirsiniz. İşte içerik bildirimi örneği:
|
|
68
|
+
|
|
69
|
+
```typescript fileName="./component.content.ts" contentDeclarationFormat="typescript"
|
|
70
|
+
import { t, type Dictionary } from "intlayer";
|
|
71
|
+
|
|
72
|
+
const componentContent = {
|
|
73
|
+
key: "component-example",
|
|
74
|
+
content: {
|
|
75
|
+
title: t({
|
|
76
|
+
en: "Client Component Example",
|
|
77
|
+
fr: "Exemple de composant client",
|
|
78
|
+
es: "Ejemplo de componente cliente",
|
|
79
|
+
}),
|
|
80
|
+
content: t({
|
|
81
|
+
en: "This is the content of a client component example",
|
|
82
|
+
fr: "Ceci est le contenu d'un exemple de composant client",
|
|
83
|
+
es: "Este es el contenido de un ejemplo de componente cliente",
|
|
84
|
+
}),
|
|
85
|
+
},
|
|
86
|
+
} satisfies Dictionary;
|
|
87
|
+
|
|
88
|
+
export default componentContent;
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```javascript fileName="./component.content.mjs" contentDeclarationFormat="esm"
|
|
92
|
+
import { t } from "intlayer";
|
|
93
|
+
|
|
94
|
+
/** @type {import('intlayer').Dictionary} */
|
|
95
|
+
const componentContent = {
|
|
96
|
+
key: "component-example",
|
|
97
|
+
content: {
|
|
98
|
+
title: t({
|
|
99
|
+
en: "Client Component Example",
|
|
100
|
+
fr: "Exemple de composant client",
|
|
101
|
+
es: "Ejemplo de componente cliente",
|
|
102
|
+
}),
|
|
103
|
+
content: t({
|
|
104
|
+
en: "This is the content of a client component example",
|
|
105
|
+
fr: "Ceci est le contenu d'un exemple de composant client",
|
|
106
|
+
es: "Este es el contenido de un ejemplo de componente cliente",
|
|
107
|
+
}),
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export default componentContent;
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```javascript fileName="./component.content.cjs" contentDeclarationFormat="commonjs"
|
|
115
|
+
const { t } = require("intlayer");
|
|
116
|
+
|
|
117
|
+
/** @type {import('intlayer').Dictionary} */
|
|
118
|
+
const componentContent = {
|
|
119
|
+
key: "component-example",
|
|
120
|
+
content: {
|
|
121
|
+
title: t({
|
|
122
|
+
en: "Client Component Example",
|
|
123
|
+
fr: "Exemple de composant client",
|
|
124
|
+
es: "Ejemplo de componente cliente",
|
|
125
|
+
}),
|
|
126
|
+
content: t({
|
|
127
|
+
en: "This is the content of a client component example",
|
|
128
|
+
fr: "Ceci est le contenu d'un exemple de composant client",
|
|
129
|
+
es: "Este es el contenido de un ejemplo de componente cliente",
|
|
130
|
+
}),
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
module.exports = componentContent;
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
```json fileName="./component.content.json" contentDeclarationFormat="json"
|
|
138
|
+
{
|
|
139
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
140
|
+
"key": "component-example",
|
|
141
|
+
"content": {
|
|
142
|
+
"title": {
|
|
143
|
+
"nodeType": "translation",
|
|
144
|
+
"translation": {
|
|
145
|
+
"en": "Client Component Example",
|
|
146
|
+
"fr": "Exemple de composant client",
|
|
147
|
+
"es": "Ejemplo de componente cliente"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"content": {
|
|
151
|
+
"nodeType": "translation",
|
|
152
|
+
"translation": {
|
|
153
|
+
"en": "This is the content of a client component example",
|
|
154
|
+
"fr": "Ceci est le contenu d'un exemple de composant client",
|
|
155
|
+
"es": "Este es el contenido de un ejemplo de componente cliente"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## React'te Örnek Kullanım
|
|
163
|
+
|
|
164
|
+
Aşağıda `useDictionary` hook'unun bir React bileşeninde nasıl kullanılacağına ilişkin bir örnek verilmiştir:
|
|
165
|
+
|
|
166
|
+
```tsx fileName="./ComponentExample.tsx" codeFormat="typescript"
|
|
167
|
+
import type { FC } from "react";
|
|
168
|
+
import { useDictionary } from "react-intlayer";
|
|
169
|
+
import componentContent from "./component.content";
|
|
170
|
+
|
|
171
|
+
const ComponentExample: FC = () => {
|
|
172
|
+
const { title, content } = useDictionary(componentContent);
|
|
173
|
+
|
|
174
|
+
return (
|
|
175
|
+
<div>
|
|
176
|
+
<h1>{title}</h1>
|
|
177
|
+
<p>{content}</p>
|
|
178
|
+
</div>
|
|
179
|
+
);
|
|
180
|
+
};
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
```jsx fileName="./ComponentExample.mjx" codeFormat="esm"
|
|
184
|
+
import { useDictionary } from "react-intlayer";
|
|
185
|
+
import componentContent from "./component.content";
|
|
186
|
+
|
|
187
|
+
const ComponentExample = () => {
|
|
188
|
+
const { title, content } = useDictionary(componentContent);
|
|
189
|
+
|
|
190
|
+
return (
|
|
191
|
+
<div>
|
|
192
|
+
<h1>{title}</h1>
|
|
193
|
+
<p>{content}</p>
|
|
194
|
+
</div>
|
|
195
|
+
);
|
|
196
|
+
};
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
```jsx fileName="./ComponentExample.csx" codeFormat="commonjs"
|
|
200
|
+
const { useDictionary } = require("react-intlayer");
|
|
201
|
+
const componentContent = require("./component.content");
|
|
202
|
+
|
|
203
|
+
const ComponentExample = () => {
|
|
204
|
+
const { title, content } = useDictionary(componentContent);
|
|
205
|
+
|
|
206
|
+
return (
|
|
207
|
+
<div>
|
|
208
|
+
<h1>{title}</h1>
|
|
209
|
+
<p>{content}</p>
|
|
210
|
+
</div>
|
|
211
|
+
);
|
|
212
|
+
};
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Sunucu Entegrasyonu
|
|
216
|
+
|
|
217
|
+
`useDictionary` hook'unu `IntlayerProvider` dışında kullanıyorsanız, bileşeni işlerken yerel ayar açıkça parametre olarak sağlanmalıdır:
|
|
218
|
+
|
|
219
|
+
```tsx fileName="./ServerComponentExample.tsx" codeFormat="typescript"
|
|
220
|
+
import type { FC } from "react";
|
|
221
|
+
import { useDictionary } from "react-intlayer/server";
|
|
222
|
+
import clientComponentExampleContent from "./component.content";
|
|
223
|
+
|
|
224
|
+
const ServerComponentExample: FC<{ locale: string }> = ({ locale }) => {
|
|
225
|
+
const { content } = useDictionary(clientComponentExampleContent, locale);
|
|
226
|
+
|
|
227
|
+
return (
|
|
228
|
+
<div>
|
|
229
|
+
<h1>{content.title}</h1>
|
|
230
|
+
<p>{content.content}</p>
|
|
231
|
+
</div>
|
|
232
|
+
);
|
|
233
|
+
};
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
```jsx fileName="./ServerComponentExample.mjx" codeFormat="esm"
|
|
237
|
+
import { useDictionary } from "react-intlayer/server";
|
|
238
|
+
import componentContent from "./component.content";
|
|
239
|
+
|
|
240
|
+
const ServerComponentExample = ({ locale }) => {
|
|
241
|
+
const { content } = useDictionary(componentContent, locale);
|
|
242
|
+
|
|
243
|
+
return (
|
|
244
|
+
<div>
|
|
245
|
+
<h1>{content.title}</h1>
|
|
246
|
+
<p>{content.content}</p>
|
|
247
|
+
</div>
|
|
248
|
+
);
|
|
249
|
+
};
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
```jsx fileName="./ServerComponentExample.csx" codeFormat="commonjs"
|
|
253
|
+
const { useDictionary } = require("react-intlayer/server");
|
|
254
|
+
const componentContent = require("./component.content");
|
|
255
|
+
|
|
256
|
+
const ServerComponentExample = ({ locale }) => {
|
|
257
|
+
const { content } = useDictionary(componentContent, locale);
|
|
258
|
+
|
|
259
|
+
return (
|
|
260
|
+
<div>
|
|
261
|
+
<h1>{content.title}</h1>
|
|
262
|
+
<p>{content.content}</p>
|
|
263
|
+
</div>
|
|
264
|
+
);
|
|
265
|
+
};
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Özellikler Hakkında Notlar
|
|
269
|
+
|
|
270
|
+
Görsel düzenleyiciler kullanan entegrasyonların aksine, `buttonTitle.value` gibi özellikler burada uygulanmaz. Bunun yerine, içeriği doğrudan bildirildiğiniz gibi erişin.
|
|
271
|
+
|
|
272
|
+
```jsx
|
|
273
|
+
<button title={content.title}>{content.content}</button>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Ek İpuçları
|
|
277
|
+
|
|
278
|
+
- **Tür Güvenliği**: Tür güvenliğini sağlamak için her zaman sözlüklerinizi tanımlamak üzere `Dictionary` kullanın.
|
|
279
|
+
- **Yerelleştirme Güncellemeleri**: İçeriği güncellerken, eksik çevirileri önlemek için tüm yerel ayarların tutarlı olduğundan emin olun.
|
|
280
|
+
|
|
281
|
+
Bu dokümantasyon, `useDictionary` hook'unun entegrasyonuna odaklanır, görsel düzenleyici işlevlerine güvenmeden yerelleştirilmiş içeriği yönetmek için akıcı bir yaklaşım sağlar.
|
|
282
|
+
|
|
283
|
+
## Doküman Geçmişi
|
|
284
|
+
|
|
285
|
+
| Sürüm | Tarih | Değişiklikler |
|
|
286
|
+
| ------ | ---------- | ----------------- |
|
|
287
|
+
| 5.5.10 | 2025-06-29 | Geçmiş başlatıldı |
|
|
288
|
+
|
|
289
|
+
# React Integration: `useDictionary` Hook Documentation
|
|
290
|
+
|
|
291
|
+
This section provides detailed guidance on using the `useDictionary` hook within React applications, enabling efficient handling of localized content without a visual editor.
|
|
292
|
+
|
|
293
|
+
## Importing `useDictionary` in React
|
|
294
|
+
|
|
295
|
+
The `useDictionary` hook can be integrated into React applications by importing it based on the context:
|
|
296
|
+
|
|
297
|
+
- **Client Component:**
|
|
298
|
+
|
|
299
|
+
```typescript codeFormat="typescript"
|
|
300
|
+
import { useDictionary } from "react-intlayer"; // Used in client-side React components
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
```javascript codeFormat="esm"
|
|
304
|
+
import { useDictionary } from "react-intlayer"; // Used in client-side React components
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
```javascript codeFormat="commonjs"
|
|
308
|
+
const { useDictionary } = require("react-intlayer"); // Used in client-side React components
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
- **Server Component:**
|
|
312
|
+
|
|
313
|
+
```typescript codeFormat="typescript"
|
|
314
|
+
import { useDictionary } from "react-intlayer/server"; // Used in server-side React components
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
```javascript codeFormat="esm"
|
|
318
|
+
import { useDictionary } from "react-intlayer/server"; // Used in server-side React components
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
```javascript codeFormat="commonjs"
|
|
322
|
+
const { useDictionary } = require("react-intlayer/server"); // Used in server-side React components
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
## Parameters
|
|
326
|
+
|
|
327
|
+
The hook accepts two parameters:
|
|
328
|
+
|
|
329
|
+
1. **`dictionary`**: A declared dictionary object containing localized content for specific keys.
|
|
330
|
+
2. **`locale`** (optional): The desired locale. Defaults to the current context's locale if not specified.
|
|
331
|
+
|
|
332
|
+
## Dictionary
|
|
333
|
+
|
|
334
|
+
All dictionary objects should be declared in structured content files to ensure type safety and prevent runtime errors. You can find the [setup instructions here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md). Here's an example of content declaration:
|
|
335
|
+
|
|
336
|
+
```typescript fileName="./component.content.ts" contentDeclarationFormat="typescript"
|
|
337
|
+
import { t, type Dictionary } from "intlayer";
|
|
338
|
+
|
|
339
|
+
const componentContent = {
|
|
340
|
+
key: "component-example",
|
|
341
|
+
content: {
|
|
342
|
+
title: t({
|
|
343
|
+
en: "Client Component Example",
|
|
344
|
+
fr: "Exemple de composant client",
|
|
345
|
+
es: "Ejemplo de componente cliente",
|
|
346
|
+
}),
|
|
347
|
+
content: t({
|
|
348
|
+
en: "This is the content of a client component example",
|
|
349
|
+
fr: "Ceci est le contenu d'un exemple de composant client",
|
|
350
|
+
es: "Este es el contenido de un ejemplo de componente cliente",
|
|
351
|
+
}),
|
|
352
|
+
},
|
|
353
|
+
} satisfies Dictionary;
|
|
354
|
+
|
|
355
|
+
export default componentContent;
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
```javascript fileName="./component.content.mjs" contentDeclarationFormat="esm"
|
|
359
|
+
import { t } from "intlayer";
|
|
360
|
+
|
|
361
|
+
/** @type {import('intlayer').Dictionary} */
|
|
362
|
+
const componentContent = {
|
|
363
|
+
key: "component-example",
|
|
364
|
+
content: {
|
|
365
|
+
title: t({
|
|
366
|
+
en: "Client Component Example",
|
|
367
|
+
fr: "Exemple de composant client",
|
|
368
|
+
es: "Ejemplo de componente cliente",
|
|
369
|
+
}),
|
|
370
|
+
content: t({
|
|
371
|
+
en: "This is the content of a client component example",
|
|
372
|
+
fr: "Ceci est le contenu d'un exemple de composant client",
|
|
373
|
+
es: "Este es el contenido de un ejemplo de componente cliente",
|
|
374
|
+
}),
|
|
375
|
+
},
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
export default componentContent;
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
```javascript fileName="./component.content.cjs" contentDeclarationFormat="commonjs"
|
|
382
|
+
const { t } = require("intlayer");
|
|
383
|
+
|
|
384
|
+
/** @type {import('intlayer').Dictionary} */
|
|
385
|
+
const componentContent = {
|
|
386
|
+
key: "component-example",
|
|
387
|
+
content: {
|
|
388
|
+
title: t({
|
|
389
|
+
en: "Client Component Example",
|
|
390
|
+
fr: "Exemple de composant client",
|
|
391
|
+
es: "Ejemplo de componente cliente",
|
|
392
|
+
}),
|
|
393
|
+
content: t({
|
|
394
|
+
en: "This is the content of a client component example",
|
|
395
|
+
fr: "Ceci est le contenu d'un exemple de composant client",
|
|
396
|
+
es: "Este es el contenido de un ejemplo de componente cliente",
|
|
397
|
+
}),
|
|
398
|
+
},
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
module.exports = componentContent;
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
```json fileName="./component.content.json" contentDeclarationFormat="json"
|
|
405
|
+
{
|
|
406
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
407
|
+
"key": "component-example",
|
|
408
|
+
"content": {
|
|
409
|
+
"title": {
|
|
410
|
+
"nodeType": "translation",
|
|
411
|
+
"translation": {
|
|
412
|
+
"en": "Client Component Example",
|
|
413
|
+
"fr": "Exemple de composant client",
|
|
414
|
+
"es": "Ejemplo de componente cliente"
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
"content": {
|
|
418
|
+
"nodeType": "translation",
|
|
419
|
+
"translation": {
|
|
420
|
+
"en": "This is the content of a client component example",
|
|
421
|
+
"fr": "Ceci est le contenu d'un exemple de composant client",
|
|
422
|
+
"es": "Este es el contenido de un ejemplo de componente cliente"
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
## Example Usage in React
|
|
430
|
+
|
|
431
|
+
Below is an example of how to use the `useDictionary` hook in a React component:
|
|
432
|
+
|
|
433
|
+
```tsx fileName="./ComponentExample.tsx" codeFormat="typescript"
|
|
434
|
+
import type { FC } from "react";
|
|
435
|
+
import { useDictionary } from "react-intlayer";
|
|
436
|
+
import componentContent from "./component.content";
|
|
437
|
+
|
|
438
|
+
const ComponentExample: FC = () => {
|
|
439
|
+
const { title, content } = useDictionary(componentContent);
|
|
440
|
+
|
|
441
|
+
return (
|
|
442
|
+
<div>
|
|
443
|
+
<h1>{title}</h1>
|
|
444
|
+
<p>{content}</p>
|
|
445
|
+
</div>
|
|
446
|
+
);
|
|
447
|
+
};
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
```jsx fileName="./ComponentExample.mjx" codeFormat="esm"
|
|
451
|
+
import { useDictionary } from "react-intlayer";
|
|
452
|
+
import componentContent from "./component.content";
|
|
453
|
+
|
|
454
|
+
const ComponentExample = () => {
|
|
455
|
+
const { title, content } = useDictionary(componentContent);
|
|
456
|
+
|
|
457
|
+
return (
|
|
458
|
+
<div>
|
|
459
|
+
<h1>{title}</h1>
|
|
460
|
+
<p>{content}</p>
|
|
461
|
+
</div>
|
|
462
|
+
);
|
|
463
|
+
};
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
```jsx fileName="./ComponentExample.csx" codeFormat="commonjs"
|
|
467
|
+
const { useDictionary } = require("react-intlayer");
|
|
468
|
+
const componentContent = require("./component.content");
|
|
469
|
+
|
|
470
|
+
const ComponentExample = () => {
|
|
471
|
+
const { title, content } = useDictionary(componentContent);
|
|
472
|
+
|
|
473
|
+
return (
|
|
474
|
+
<div>
|
|
475
|
+
<h1>{title}</h1>
|
|
476
|
+
<p>{content}</p>
|
|
477
|
+
</div>
|
|
478
|
+
);
|
|
479
|
+
};
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
## Server Integration
|
|
483
|
+
|
|
484
|
+
If you're using the `useDictionary` hook outside the `IntlayerProvider`, the locale must be explicitly provided as a parameter when rendering the component:
|
|
485
|
+
|
|
486
|
+
```tsx fileName="./ServerComponentExample.tsx" codeFormat="typescript"
|
|
487
|
+
import type { FC } from "react";
|
|
488
|
+
import { useDictionary } from "react-intlayer/server";
|
|
489
|
+
import clientComponentExampleContent from "./component.content";
|
|
490
|
+
|
|
491
|
+
const ServerComponentExample: FC<{ locale: string }> = ({ locale }) => {
|
|
492
|
+
const { content } = useDictionary(clientComponentExampleContent, locale);
|
|
493
|
+
|
|
494
|
+
return (
|
|
495
|
+
<div>
|
|
496
|
+
<h1>{content.title}</h1>
|
|
497
|
+
<p>{content.content}</p>
|
|
498
|
+
</div>
|
|
499
|
+
);
|
|
500
|
+
};
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
```jsx fileName="./ServerComponentExample.mjx" codeFormat="esm"
|
|
504
|
+
import { useDictionary } from "react-intlayer/server";
|
|
505
|
+
import componentContent from "./component.content";
|
|
506
|
+
|
|
507
|
+
const ServerComponentExample = ({ locale }) => {
|
|
508
|
+
const { content } = useDictionary(componentContent, locale);
|
|
509
|
+
|
|
510
|
+
return (
|
|
511
|
+
<div>
|
|
512
|
+
<h1>{content.title}</h1>
|
|
513
|
+
<p>{content.content}</p>
|
|
514
|
+
</div>
|
|
515
|
+
);
|
|
516
|
+
};
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
```jsx fileName="./ServerComponentExample.csx" codeFormat="commonjs"
|
|
520
|
+
const { useDictionary } = require("react-intlayer/server");
|
|
521
|
+
const componentContent = require("./component.content");
|
|
522
|
+
|
|
523
|
+
const ServerComponentExample = ({ locale }) => {
|
|
524
|
+
const { content } = useDictionary(componentContent, locale);
|
|
525
|
+
|
|
526
|
+
return (
|
|
527
|
+
<div>
|
|
528
|
+
<h1>{content.title}</h1>
|
|
529
|
+
<p>{content.content}</p>
|
|
530
|
+
</div>
|
|
531
|
+
);
|
|
532
|
+
};
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
## Notes on Attributes
|
|
536
|
+
|
|
537
|
+
Unlike integrations using visual editors, attributes like `buttonTitle.value` do not apply here. Instead, directly access the localized strings as declared in your content.
|
|
538
|
+
|
|
539
|
+
```jsx
|
|
540
|
+
<button title={content.title}>{content.content}</button>
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
## Additional Tips
|
|
544
|
+
|
|
545
|
+
- **Type Safety**: Always use `Dictionary` to define your dictionaries to ensure type safety.
|
|
546
|
+
- **Localization Updates**: When updating content, ensure all locales are consistent to avoid missing translations.
|
|
547
|
+
|
|
548
|
+
This documentation focuses on the integration of the `useDictionary` hook, providing a streamlined approach to managing localized content without relying on visual editor functionalities.
|
|
549
|
+
|
|
550
|
+
## Doc History
|
|
551
|
+
|
|
552
|
+
| Version | Date | Changes |
|
|
553
|
+
| ------- | ---------- | ------------ |
|
|
554
|
+
| 5.5.10 | 2025-06-29 | Init history |
|