@intlayer/docs 5.5.11 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/intlayer_with_next-intl.md +0 -1
- package/blog/ar/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/ar/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/ar/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/ar/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/ar/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/ar/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/ar/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/ar/what_is_internationalization.md +2 -2
- package/blog/de/intlayer_with_next-intl.md +0 -1
- package/blog/de/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/de/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/de/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/de/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/de/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/de/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/de/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/de/what_is_internationalization.md +2 -2
- package/blog/en/intlayer_with_next-intl.md +0 -1
- package/blog/en/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/en/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/en/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/en/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/en/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/en/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/en/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/en/what_is_internationalization.md +2 -2
- package/blog/en-GB/intlayer_with_next-intl.md +0 -1
- package/blog/en-GB/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/en-GB/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/en-GB/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/en-GB/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/en-GB/what_is_internationalization.md +2 -2
- package/blog/es/intlayer_with_next-intl.md +0 -1
- package/blog/es/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/es/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/es/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/es/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/es/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/es/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/es/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/es/what_is_internationalization.md +2 -2
- package/blog/fr/intlayer_with_next-intl.md +0 -1
- package/blog/fr/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/fr/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/fr/what_is_internationalization.md +2 -2
- package/blog/hi/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/hi/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/hi/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/hi/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/hi/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/hi/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/hi/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/hi/what_is_internationalization.md +2 -2
- package/blog/it/intlayer_with_next-intl.md +0 -1
- package/blog/it/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/it/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/it/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/it/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/it/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/it/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/it/what_is_internationalization.md +2 -2
- package/blog/ja/intlayer_with_next-intl.md +0 -1
- package/blog/ja/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/ja/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/ja/what_is_internationalization.md +2 -2
- package/blog/ko/intlayer_with_next-intl.md +0 -1
- package/blog/ko/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/ko/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/ko/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/ko/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/ko/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/pt/intlayer_with_next-intl.md +0 -1
- package/blog/pt/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/pt/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/pt/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/pt/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/pt/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/pt/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/pt/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/pt/what_is_internationalization.md +2 -2
- package/blog/ru/intlayer_with_next-intl.md +0 -1
- package/blog/ru/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/ru/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/ru/what_is_internationalization.md +2 -2
- package/blog/zh/intlayer_with_next-intl.md +0 -1
- package/blog/zh/list_i18n_technologies/CMS/wordpress.md +1 -1
- package/blog/zh/list_i18n_technologies/frameworks/angular.md +1 -1
- package/blog/zh/list_i18n_technologies/frameworks/flutter.md +1 -1
- package/blog/zh/list_i18n_technologies/frameworks/react-native.md +1 -1
- package/blog/zh/list_i18n_technologies/frameworks/react.md +1 -1
- package/blog/zh/list_i18n_technologies/frameworks/svelte.md +1 -1
- package/blog/zh/list_i18n_technologies/frameworks/vue.md +1 -1
- package/blog/zh/what_is_internationalization.md +2 -2
- package/dist/cjs/blog.cjs +2 -2
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +17 -6
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs +2 -2
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +2 -2
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1152 -252
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +3778 -1124
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +794 -161
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +32 -31
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/legal.cjs +2 -2
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs +2 -2
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +17 -6
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs +2 -2
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs +2 -2
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +1151 -252
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +3777 -1124
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +793 -161
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +31 -31
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/legal.mjs +2 -2
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts +2 -2
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts +5 -2
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/doc.d.ts +2 -2
- package/dist/types/doc.d.ts.map +1 -1
- package/dist/types/frequentQuestions.d.ts +2 -2
- package/dist/types/frequentQuestions.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/dist/types/legal.d.ts +2 -2
- package/dist/types/legal.d.ts.map +1 -1
- package/docs/ar/intlayer_CMS.md +1 -0
- package/docs/ar/intlayer_cli.md +292 -177
- package/docs/ar/intlayer_visual_editor.md +1 -0
- package/docs/ar/intlayer_with_angular.md +1 -0
- package/docs/ar/intlayer_with_create_react_app.md +1 -0
- package/docs/ar/intlayer_with_lynx+react.md +1 -0
- package/docs/ar/intlayer_with_nextjs_14.md +1 -0
- package/docs/ar/intlayer_with_nextjs_15.md +3 -1
- package/docs/ar/intlayer_with_nuxt.md +1 -0
- package/docs/ar/intlayer_with_react_native+expo.md +1 -0
- package/docs/ar/intlayer_with_vite+preact.md +4 -3
- package/docs/ar/intlayer_with_vite+react.md +108 -112
- package/docs/ar/intlayer_with_vite+solid.md +4 -3
- package/docs/ar/intlayer_with_vite+svelte.md +4 -3
- package/docs/ar/intlayer_with_vite+vue.md +5 -4
- package/docs/ar/mcp_server.md +126 -92
- package/docs/de/intlayer_CMS.md +1 -0
- package/docs/de/intlayer_cli.md +291 -171
- package/docs/de/intlayer_visual_editor.md +1 -0
- package/docs/de/intlayer_with_angular.md +1 -0
- package/docs/de/intlayer_with_create_react_app.md +1 -0
- package/docs/de/intlayer_with_lynx+react.md +1 -0
- package/docs/de/intlayer_with_nextjs_14.md +1 -0
- package/docs/de/intlayer_with_nextjs_15.md +3 -1
- package/docs/de/intlayer_with_nuxt.md +1 -0
- package/docs/de/intlayer_with_react_native+expo.md +1 -0
- package/docs/de/intlayer_with_vite+preact.md +4 -3
- package/docs/de/intlayer_with_vite+react.md +128 -146
- package/docs/de/intlayer_with_vite+solid.md +4 -3
- package/docs/de/intlayer_with_vite+svelte.md +4 -3
- package/docs/de/intlayer_with_vite+vue.md +5 -4
- package/docs/de/mcp_server.md +116 -112
- package/docs/en/CI_CD.md +3 -1
- package/docs/en/autoFill.md +3 -1
- package/docs/en/configuration.md +7 -3
- package/docs/en/dictionary/condition.md +3 -1
- package/docs/en/dictionary/content_extention_customization.md +3 -1
- package/docs/en/dictionary/enumeration.md +3 -1
- package/docs/en/dictionary/file.md +3 -1
- package/docs/en/dictionary/function_fetching.md +3 -1
- package/docs/en/dictionary/get_started.md +3 -1
- package/docs/en/dictionary/insertion.md +3 -1
- package/docs/en/dictionary/markdown.md +3 -1
- package/docs/en/dictionary/nesting.md +3 -1
- package/docs/en/dictionary/translation.md +3 -1
- package/docs/en/how_works_intlayer.md +3 -1
- package/docs/en/index.md +3 -1
- package/docs/en/interest_of_intlayer.md +3 -1
- package/docs/en/intlayer_CMS.md +4 -1
- package/docs/en/intlayer_cli.md +246 -136
- package/docs/en/intlayer_visual_editor.md +4 -1
- package/docs/en/intlayer_with_angular.md +4 -1
- package/docs/en/intlayer_with_create_react_app.md +4 -1
- package/docs/en/intlayer_with_express.md +3 -1
- package/docs/en/intlayer_with_lynx+react.md +4 -1
- package/docs/en/intlayer_with_nextjs_14.md +7 -1
- package/docs/en/intlayer_with_nextjs_15.md +8 -2
- package/docs/en/intlayer_with_nextjs_page_router.md +5 -1
- package/docs/en/intlayer_with_nuxt.md +4 -1
- package/docs/en/intlayer_with_react_native+expo.md +4 -1
- package/docs/en/intlayer_with_vite+preact.md +9 -4
- package/docs/en/intlayer_with_vite+react.md +18 -10
- package/docs/en/intlayer_with_vite+solid.md +7 -4
- package/docs/en/intlayer_with_vite+svelte.md +7 -4
- package/docs/en/intlayer_with_vite+vue.md +10 -5
- package/docs/en/introduction.md +3 -1
- package/docs/en/mcp_server.md +114 -80
- package/docs/en/packages/@intlayer/api/index.md +3 -1
- package/docs/en/packages/@intlayer/chokidar/index.md +3 -1
- package/docs/en/packages/@intlayer/cli/index.md +3 -1
- package/docs/en/packages/@intlayer/config/index.md +3 -1
- package/docs/en/packages/@intlayer/core/index.md +3 -1
- package/docs/en/packages/@intlayer/design-system/index.md +3 -1
- package/docs/en/packages/@intlayer/dictionary-entry/index.md +3 -1
- package/docs/en/packages/@intlayer/editor/index.md +3 -1
- package/docs/en/packages/@intlayer/editor-react/index.md +3 -1
- package/docs/en/packages/@intlayer/webpack/index.md +3 -1
- package/docs/en/packages/angular-intlayer/index.md +3 -1
- package/docs/en/packages/express-intlayer/index.md +3 -1
- package/docs/en/packages/express-intlayer/t.md +3 -1
- package/docs/en/packages/intlayer/getConfiguration.md +3 -1
- package/docs/en/packages/intlayer/getEnumeration.md +3 -1
- package/docs/en/packages/intlayer/getHTMLTextDir.md +3 -1
- package/docs/en/packages/intlayer/getLocaleLang.md +3 -1
- package/docs/en/packages/intlayer/getLocaleName.md +3 -1
- package/docs/en/packages/intlayer/getLocalizedUrl.md +3 -1
- package/docs/en/packages/intlayer/getMultilingualUrls.md +3 -1
- package/docs/en/packages/intlayer/getPathWithoutLocale.md +3 -1
- package/docs/en/packages/intlayer/getTranslation.md +3 -1
- package/docs/en/packages/intlayer/getTranslationContent.md +3 -1
- package/docs/en/packages/intlayer/index.md +3 -1
- package/docs/en/packages/intlayer-cli/index.md +3 -1
- package/docs/en/packages/intlayer-editor/index.md +3 -1
- package/docs/en/packages/lynx-intlayer/index.md +3 -1
- package/docs/en/packages/next-intlayer/index.md +3 -1
- package/docs/en/packages/next-intlayer/t.md +3 -1
- package/docs/en/packages/next-intlayer/useDictionary.md +3 -1
- package/docs/en/packages/next-intlayer/useIntlayer.md +3 -1
- package/docs/en/packages/next-intlayer/useIntlayerAsync.md +3 -1
- package/docs/en/packages/next-intlayer/useLocale.md +3 -1
- package/docs/en/packages/nuxt-intlayer/index.md +3 -1
- package/docs/en/packages/preact-intlayer/index.md +3 -1
- package/docs/en/packages/react-intlayer/index.md +3 -1
- package/docs/en/packages/react-intlayer/t.md +3 -1
- package/docs/en/packages/react-intlayer/useDictionary.md +3 -1
- package/docs/en/packages/react-intlayer/useIntlayer.md +3 -1
- package/docs/en/packages/react-intlayer/useIntlayerAsync.md +3 -1
- package/docs/en/packages/react-intlayer/useLocale.md +3 -1
- package/docs/en/packages/react-native-intlayer/index.md +3 -1
- package/docs/en/packages/react-scripts-intlayer/index.md +3 -1
- package/docs/en/packages/solid-intlayer/index.md +3 -1
- package/docs/en/packages/svelte-intlayer/index.md +3 -1
- package/docs/en/packages/vite-intlayer/index.md +3 -1
- package/docs/en/packages/vue-intlayer/index.md +3 -1
- package/docs/en/per_locale_file.md +3 -1
- package/docs/en/roadmap.md +5 -2
- package/docs/en/vs_code_extension.md +3 -1
- package/docs/en-GB/intlayer_CMS.md +1 -0
- package/docs/en-GB/intlayer_cli.md +257 -138
- package/docs/en-GB/intlayer_visual_editor.md +1 -0
- package/docs/en-GB/intlayer_with_angular.md +1 -0
- package/docs/en-GB/intlayer_with_create_react_app.md +1 -0
- package/docs/en-GB/intlayer_with_lynx+react.md +1 -0
- package/docs/en-GB/intlayer_with_nextjs_14.md +1 -0
- package/docs/en-GB/intlayer_with_nextjs_15.md +3 -1
- package/docs/en-GB/intlayer_with_nuxt.md +1 -0
- package/docs/en-GB/intlayer_with_react_native+expo.md +1 -0
- package/docs/en-GB/intlayer_with_vite+preact.md +4 -3
- package/docs/en-GB/intlayer_with_vite+react.md +71 -87
- package/docs/en-GB/intlayer_with_vite+solid.md +4 -3
- package/docs/en-GB/intlayer_with_vite+svelte.md +4 -3
- package/docs/en-GB/intlayer_with_vite+vue.md +5 -4
- package/docs/en-GB/mcp_server.md +116 -82
- package/docs/es/intlayer_CMS.md +1 -0
- package/docs/es/intlayer_cli.md +283 -164
- package/docs/es/intlayer_visual_editor.md +1 -0
- package/docs/es/intlayer_with_angular.md +1 -0
- package/docs/es/intlayer_with_create_react_app.md +1 -0
- package/docs/es/intlayer_with_lynx+react.md +1 -0
- package/docs/es/intlayer_with_nextjs_14.md +1 -0
- package/docs/es/intlayer_with_nextjs_15.md +3 -1
- package/docs/es/intlayer_with_nuxt.md +1 -0
- package/docs/es/intlayer_with_react_native+expo.md +1 -0
- package/docs/es/intlayer_with_vite+preact.md +4 -3
- package/docs/es/intlayer_with_vite+react.md +98 -98
- package/docs/es/intlayer_with_vite+solid.md +4 -3
- package/docs/es/intlayer_with_vite+svelte.md +4 -3
- package/docs/es/intlayer_with_vite+vue.md +5 -4
- package/docs/es/mcp_server.md +120 -86
- package/docs/es/vs_code_extension.md +1 -0
- package/docs/fr/intlayer_CMS.md +1 -0
- package/docs/fr/intlayer_cli.md +280 -184
- package/docs/fr/intlayer_visual_editor.md +1 -0
- package/docs/fr/intlayer_with_angular.md +1 -0
- package/docs/fr/intlayer_with_create_react_app.md +1 -0
- package/docs/fr/intlayer_with_lynx+react.md +1 -0
- package/docs/fr/intlayer_with_nextjs_14.md +1 -0
- package/docs/fr/intlayer_with_nextjs_15.md +3 -1
- package/docs/fr/intlayer_with_nuxt.md +1 -0
- package/docs/fr/intlayer_with_react_native+expo.md +1 -0
- package/docs/fr/intlayer_with_vite+preact.md +5 -4
- package/docs/fr/intlayer_with_vite+react.md +80 -69
- package/docs/fr/intlayer_with_vite+solid.md +4 -3
- package/docs/fr/intlayer_with_vite+svelte.md +4 -3
- package/docs/fr/intlayer_with_vite+vue.md +5 -4
- package/docs/fr/mcp_server.md +121 -87
- package/docs/hi/intlayer_CMS.md +1 -0
- package/docs/hi/intlayer_cli.md +295 -174
- package/docs/hi/intlayer_visual_editor.md +1 -0
- package/docs/hi/intlayer_with_angular.md +1 -0
- package/docs/hi/intlayer_with_create_react_app.md +1 -0
- package/docs/hi/intlayer_with_lynx+react.md +1 -0
- package/docs/hi/intlayer_with_nextjs_14.md +1 -0
- package/docs/hi/intlayer_with_nextjs_15.md +3 -1
- package/docs/hi/intlayer_with_nuxt.md +1 -0
- package/docs/hi/intlayer_with_react_native+expo.md +1 -0
- package/docs/hi/intlayer_with_vite+preact.md +4 -3
- package/docs/hi/intlayer_with_vite+react.md +114 -111
- package/docs/hi/intlayer_with_vite+solid.md +4 -3
- package/docs/hi/intlayer_with_vite+svelte.md +4 -3
- package/docs/hi/intlayer_with_vite+vue.md +5 -4
- package/docs/hi/mcp_server.md +118 -84
- package/docs/it/intlayer_CMS.md +1 -0
- package/docs/it/intlayer_cli.md +282 -167
- package/docs/it/intlayer_visual_editor.md +1 -0
- package/docs/it/intlayer_with_angular.md +1 -0
- package/docs/it/intlayer_with_create_react_app.md +1 -0
- package/docs/it/intlayer_with_lynx+react.md +1 -0
- package/docs/it/intlayer_with_nextjs_14.md +1 -0
- package/docs/it/intlayer_with_nextjs_15.md +3 -1
- package/docs/it/intlayer_with_nuxt.md +1 -0
- package/docs/it/intlayer_with_react_native+expo.md +1 -0
- package/docs/it/intlayer_with_vite+preact.md +4 -3
- package/docs/it/intlayer_with_vite+react.md +163 -116
- package/docs/it/intlayer_with_vite+solid.md +4 -3
- package/docs/it/intlayer_with_vite+svelte.md +4 -3
- package/docs/it/intlayer_with_vite+vue.md +4 -4
- package/docs/it/mcp_server.md +120 -86
- package/docs/ja/intlayer_CMS.md +1 -0
- package/docs/ja/intlayer_cli.md +285 -168
- package/docs/ja/intlayer_visual_editor.md +1 -0
- package/docs/ja/intlayer_with_angular.md +1 -0
- package/docs/ja/intlayer_with_create_react_app.md +1 -0
- package/docs/ja/intlayer_with_lynx+react.md +1 -0
- package/docs/ja/intlayer_with_nextjs_14.md +1 -0
- package/docs/ja/intlayer_with_nextjs_15.md +3 -1
- package/docs/ja/intlayer_with_nuxt.md +1 -0
- package/docs/ja/intlayer_with_react_native+expo.md +1 -0
- package/docs/ja/intlayer_with_vite+preact.md +4 -3
- package/docs/ja/intlayer_with_vite+react.md +160 -222
- package/docs/ja/intlayer_with_vite+solid.md +4 -3
- package/docs/ja/intlayer_with_vite+svelte.md +4 -3
- package/docs/ja/intlayer_with_vite+vue.md +5 -4
- package/docs/ja/mcp_server.md +121 -85
- package/docs/ko/intlayer_CMS.md +1 -0
- package/docs/ko/intlayer_cli.md +291 -175
- package/docs/ko/intlayer_visual_editor.md +1 -0
- package/docs/ko/intlayer_with_angular.md +1 -0
- package/docs/ko/intlayer_with_create_react_app.md +1 -0
- package/docs/ko/intlayer_with_lynx+react.md +1 -0
- package/docs/ko/intlayer_with_nextjs_14.md +1 -0
- package/docs/ko/intlayer_with_nextjs_15.md +3 -1
- package/docs/ko/intlayer_with_nuxt.md +1 -0
- package/docs/ko/intlayer_with_react_native+expo.md +1 -0
- package/docs/ko/intlayer_with_vite+preact.md +4 -3
- package/docs/ko/intlayer_with_vite+react.md +123 -152
- package/docs/ko/intlayer_with_vite+solid.md +4 -3
- package/docs/ko/intlayer_with_vite+svelte.md +4 -3
- package/docs/ko/intlayer_with_vite+vue.md +5 -4
- package/docs/ko/mcp_server.md +117 -83
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +1 -23
- package/docs/pt/intlayer_CMS.md +1 -0
- package/docs/pt/intlayer_cli.md +274 -154
- package/docs/pt/intlayer_visual_editor.md +1 -0
- package/docs/pt/intlayer_with_angular.md +1 -0
- package/docs/pt/intlayer_with_create_react_app.md +1 -0
- package/docs/pt/intlayer_with_lynx+react.md +1 -0
- package/docs/pt/intlayer_with_nextjs_14.md +1 -0
- package/docs/pt/intlayer_with_nextjs_15.md +3 -1
- package/docs/pt/intlayer_with_nuxt.md +1 -0
- package/docs/pt/intlayer_with_react_native+expo.md +1 -0
- package/docs/pt/intlayer_with_vite+preact.md +4 -3
- package/docs/pt/intlayer_with_vite+react.md +117 -136
- package/docs/pt/intlayer_with_vite+solid.md +4 -3
- package/docs/pt/intlayer_with_vite+svelte.md +4 -3
- package/docs/pt/intlayer_with_vite+vue.md +4 -4
- package/docs/pt/mcp_server.md +121 -87
- package/docs/ru/intlayer_CMS.md +1 -0
- package/docs/ru/intlayer_cli.md +287 -170
- package/docs/ru/intlayer_visual_editor.md +1 -0
- package/docs/ru/intlayer_with_angular.md +1 -0
- package/docs/ru/intlayer_with_create_react_app.md +1 -0
- package/docs/ru/intlayer_with_lynx+react.md +1 -0
- package/docs/ru/intlayer_with_nextjs_14.md +1 -0
- package/docs/ru/intlayer_with_nextjs_15.md +3 -1
- package/docs/ru/intlayer_with_nuxt.md +1 -0
- package/docs/ru/intlayer_with_react_native+expo.md +1 -0
- package/docs/ru/intlayer_with_vite+preact.md +4 -3
- package/docs/ru/intlayer_with_vite+react.md +105 -87
- package/docs/ru/intlayer_with_vite+solid.md +4 -3
- package/docs/ru/intlayer_with_vite+svelte.md +4 -3
- package/docs/ru/intlayer_with_vite+vue.md +5 -4
- package/docs/ru/mcp_server.md +119 -85
- package/docs/zh/intlayer_CMS.md +1 -0
- package/docs/zh/intlayer_cli.md +275 -155
- package/docs/zh/intlayer_visual_editor.md +1 -0
- package/docs/zh/intlayer_with_angular.md +1 -0
- package/docs/zh/intlayer_with_create_react_app.md +1 -0
- package/docs/zh/intlayer_with_lynx+react.md +1 -0
- package/docs/zh/intlayer_with_nextjs_14.md +1 -0
- package/docs/zh/intlayer_with_nextjs_15.md +3 -1
- package/docs/zh/intlayer_with_nuxt.md +1 -0
- package/docs/zh/intlayer_with_react_native+expo.md +1 -0
- package/docs/zh/intlayer_with_vite+preact.md +4 -3
- package/docs/zh/intlayer_with_vite+react.md +154 -188
- package/docs/zh/intlayer_with_vite+solid.md +4 -3
- package/docs/zh/intlayer_with_vite+svelte.md +4 -3
- package/docs/zh/intlayer_with_vite+vue.md +5 -4
- package/docs/zh/mcp_server.md +119 -86
- package/docs/zh/packages/intlayer/getLocalizedUrl.md +1 -23
- package/frequent_questions/ar/build_error_CI_CD.md +75 -0
- package/frequent_questions/de/build_error_CI_CD.md +75 -0
- package/frequent_questions/en/build_error_CI_CD.md +75 -0
- package/frequent_questions/en-GB/build_error_CI_CD.md +75 -0
- package/frequent_questions/es/build_error_CI_CD.md +75 -0
- package/frequent_questions/fr/build_error_CI_CD.md +75 -0
- package/frequent_questions/hi/build_error_CI_CD.md +75 -0
- package/frequent_questions/it/build_error_CI_CD.md +75 -0
- package/frequent_questions/ja/build_error_CI_CD.md +75 -0
- package/frequent_questions/ja/intlayer_command_undefined.md +3 -3
- package/frequent_questions/ko/build_error_CI_CD.md +75 -0
- package/frequent_questions/ko/intlayer_command_undefined.md +3 -3
- package/frequent_questions/pt/build_error_CI_CD.md +75 -0
- package/frequent_questions/ru/build_error_CI_CD.md +75 -0
- package/frequent_questions/zh/build_error_CI_CD.md +75 -0
- package/frequent_questions/zh/intlayer_command_undefined.md +3 -3
- package/legal/ar/privacy_notice.md +83 -0
- package/legal/ar/terms_of_service.md +55 -0
- package/legal/de/privacy_notice.md +83 -0
- package/legal/de/terms_of_service.md +55 -0
- package/legal/en/privacy_notice.md +83 -0
- package/legal/en/terms_of_service.md +55 -0
- package/legal/en-GB/privacy_notice.md +83 -0
- package/legal/en-GB/terms_of_service.md +55 -0
- package/legal/es/privacy_notice.md +83 -0
- package/legal/es/terms_of_service.md +55 -0
- package/legal/fr/privacy_notice.md +83 -0
- package/legal/fr/terms_of_service.md +55 -0
- package/legal/hi/privacy_notice.md +83 -0
- package/legal/hi/terms_of_service.md +55 -0
- package/legal/it/privacy_notice.md +83 -0
- package/legal/it/terms_of_service.md +55 -0
- package/legal/ja/privacy_notice.md +83 -0
- package/legal/ja/terms_of_service.md +55 -0
- package/legal/ko/privacy_notice.md +83 -0
- package/legal/ko/terms_of_service.md +55 -0
- package/legal/pt/privacy_notice.md +83 -0
- package/legal/pt/terms_of_service.md +55 -0
- package/legal/ru/privacy_notice.md +83 -0
- package/legal/ru/terms_of_service.md +55 -0
- package/legal/zh/privacy_notice.md +83 -0
- package/legal/zh/terms_of_service.md +55 -0
- package/package.json +12 -11
- package/src/blog.ts +6 -4
- package/src/common.ts +25 -7
- package/src/doc.ts +6 -4
- package/src/frequentQuestions.ts +6 -4
- package/src/generated/blog.entry.ts +1177 -280
- package/src/generated/docs.entry.ts +3868 -1217
- package/src/generated/frequentQuestions.entry.ts +808 -178
- package/src/generated/legal.entry.ts +34 -36
- package/src/legal.ts +6 -4
|
@@ -1,36 +1,39 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt:
|
|
4
|
-
title:
|
|
5
|
-
description:
|
|
2
|
+
createdAt: 2024-03-07
|
|
3
|
+
updatedAt: 2024-03-07
|
|
4
|
+
title: Erste Schritte mit Intlayer in Vite + React
|
|
5
|
+
description: Erfahren Sie, wie Sie Internationalisierung (i18n) zu Ihrer Vite- und React-Anwendung mit Intlayer hinzufügen. Folgen Sie dieser Anleitung, um Ihre App mehrsprachig zu machen.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internationalisierung
|
|
8
8
|
- Dokumentation
|
|
9
9
|
- Intlayer
|
|
10
10
|
- Vite
|
|
11
11
|
- React
|
|
12
|
-
-
|
|
12
|
+
- i18n
|
|
13
13
|
- JavaScript
|
|
14
14
|
slugs:
|
|
15
15
|
- doc
|
|
16
16
|
- environment
|
|
17
|
-
-
|
|
18
|
-
|
|
17
|
+
- vite-and-react
|
|
18
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
19
|
+
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4---
|
|
19
20
|
|
|
20
21
|
# Erste Schritte zur Internationalisierung (i18n) mit Intlayer, Vite und React
|
|
21
22
|
|
|
23
|
+
<iframe title="The best i18n solution for Vite and React? Discover Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
24
|
+
|
|
22
25
|
Siehe [Application Template](https://github.com/aymericzip/intlayer-vite-react-template) auf GitHub.
|
|
23
26
|
|
|
24
27
|
## Was ist Intlayer?
|
|
25
28
|
|
|
26
|
-
**Intlayer** ist eine innovative, Open-Source
|
|
29
|
+
**Intlayer** ist eine innovative, Open-Source Internationalisierungsbibliothek (i18n), die entwickelt wurde, um die mehrsprachige Unterstützung in modernen Webanwendungen zu vereinfachen.
|
|
27
30
|
|
|
28
31
|
Mit Intlayer können Sie:
|
|
29
32
|
|
|
30
|
-
- **Übersetzungen einfach verwalten**
|
|
33
|
+
- **Übersetzungen einfach verwalten** mit deklarativen Wörterbüchern auf Komponentenebene.
|
|
31
34
|
- **Metadaten, Routen und Inhalte dynamisch lokalisieren**.
|
|
32
|
-
- **TypeScript-Unterstützung sicherstellen** durch automatisch generierte Typen, die
|
|
33
|
-
- **Von erweiterten Funktionen profitieren**, wie dynamische
|
|
35
|
+
- **TypeScript-Unterstützung sicherstellen** durch automatisch generierte Typen, die Autovervollständigung und Fehlererkennung verbessern.
|
|
36
|
+
- **Von erweiterten Funktionen profitieren**, wie dynamische Lokalerkennung und -umschaltung.
|
|
34
37
|
|
|
35
38
|
---
|
|
36
39
|
|
|
@@ -42,28 +45,28 @@ Installieren Sie die notwendigen Pakete mit npm:
|
|
|
42
45
|
|
|
43
46
|
```bash packageManager="npm"
|
|
44
47
|
npm install intlayer react-intlayer
|
|
45
|
-
npm install --save-dev
|
|
48
|
+
npm install vite-intlayer --save-dev
|
|
46
49
|
```
|
|
47
50
|
|
|
48
51
|
```bash packageManager="pnpm"
|
|
49
52
|
pnpm add intlayer react-intlayer
|
|
50
|
-
pnpm add --save-dev
|
|
53
|
+
pnpm add vite-intlayer --save-dev
|
|
51
54
|
```
|
|
52
55
|
|
|
53
56
|
```bash packageManager="yarn"
|
|
54
57
|
yarn add intlayer react-intlayer
|
|
55
|
-
yarn add --save-dev
|
|
58
|
+
yarn add vite-intlayer --save-dev
|
|
56
59
|
```
|
|
57
60
|
|
|
58
61
|
- **intlayer**
|
|
59
62
|
|
|
60
|
-
Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [
|
|
63
|
+
Das Kernpaket, das Internationalisierungswerkzeuge für Konfigurationsmanagement, Übersetzung, [Inhaltserklärung](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md), Transpilierung und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_cli.md) bereitstellt.
|
|
61
64
|
|
|
62
65
|
- **react-intlayer**
|
|
63
66
|
Das Paket, das Intlayer in React-Anwendungen integriert. Es stellt Kontext-Provider und Hooks für die Internationalisierung in React bereit.
|
|
64
67
|
|
|
65
68
|
- **vite-intlayer**
|
|
66
|
-
|
|
69
|
+
Enthält das Vite-Plugin zur Integration von Intlayer mit dem [Vite-Bundler](https://vite.dev/guide/why.html#why-bundle-for-production) sowie Middleware zur Erkennung der bevorzugten Sprache des Benutzers, Verwaltung von Cookies und Handhabung von URL-Weiterleitungen.
|
|
67
70
|
|
|
68
71
|
### Schritt 2: Konfiguration Ihres Projekts
|
|
69
72
|
|
|
@@ -78,7 +81,7 @@ const config: IntlayerConfig = {
|
|
|
78
81
|
Locales.ENGLISH,
|
|
79
82
|
Locales.FRENCH,
|
|
80
83
|
Locales.SPANISH,
|
|
81
|
-
// Ihre weiteren
|
|
84
|
+
// Ihre weiteren Sprachversionen
|
|
82
85
|
],
|
|
83
86
|
defaultLocale: Locales.ENGLISH,
|
|
84
87
|
},
|
|
@@ -91,7 +94,6 @@ export default config;
|
|
|
91
94
|
import { Locales } from "intlayer";
|
|
92
95
|
|
|
93
96
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
94
|
-
// Konfiguration der Internationalisierung
|
|
95
97
|
const config = {
|
|
96
98
|
internationalization: {
|
|
97
99
|
locales: [
|
|
@@ -111,7 +113,6 @@ export default config;
|
|
|
111
113
|
const { Locales } = require("intlayer");
|
|
112
114
|
|
|
113
115
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
114
|
-
// Konfiguration der Internationalisierung
|
|
115
116
|
const config = {
|
|
116
117
|
internationalization: {
|
|
117
118
|
locales: [
|
|
@@ -127,7 +128,7 @@ const config = {
|
|
|
127
128
|
module.exports = config;
|
|
128
129
|
```
|
|
129
130
|
|
|
130
|
-
> Durch diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einrichten, Intlayer-
|
|
131
|
+
> Durch diese Konfigurationsdatei können Sie lokalisierte URLs, Middleware-Weiterleitungen, Cookie-Namen, den Speicherort und die Erweiterung Ihrer Inhaltsdeklarationen einrichten, Intlayer-Protokolle in der Konsole deaktivieren und vieles mehr. Für eine vollständige Liste der verfügbaren Parameter verweisen wir auf die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
|
|
131
132
|
|
|
132
133
|
### Schritt 3: Integrieren Sie Intlayer in Ihre Vite-Konfiguration
|
|
133
134
|
|
|
@@ -166,9 +167,9 @@ module.exports = defineConfig({
|
|
|
166
167
|
});
|
|
167
168
|
```
|
|
168
169
|
|
|
169
|
-
> Das `intlayerPlugin()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es
|
|
170
|
+
> Das `intlayerPlugin()` Vite-Plugin wird verwendet, um Intlayer mit Vite zu integrieren. Es stellt sicher, dass Inhaltsdeklarationsdateien erstellt und im Entwicklungsmodus überwacht werden. Es definiert Intlayer-Umgebungsvariablen innerhalb der Vite-Anwendung. Zusätzlich bietet es Aliase zur Optimierung der Leistung.
|
|
170
171
|
|
|
171
|
-
### Schritt 4: Deklarieren Sie
|
|
172
|
+
### Schritt 4: Deklarieren Sie Ihre Inhalte
|
|
172
173
|
|
|
173
174
|
Erstellen und verwalten Sie Ihre Inhaltsdeklarationen, um Übersetzungen zu speichern:
|
|
174
175
|
|
|
@@ -277,7 +278,7 @@ const appContent = {
|
|
|
277
278
|
},
|
|
278
279
|
|
|
279
280
|
readTheDocs: t({
|
|
280
|
-
en: "Klicken Sie auf die
|
|
281
|
+
en: "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren",
|
|
281
282
|
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
282
283
|
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
283
284
|
}),
|
|
@@ -295,13 +296,11 @@ const appContent = {
|
|
|
295
296
|
key: "app",
|
|
296
297
|
content: {
|
|
297
298
|
viteLogo: t({
|
|
298
|
-
de: "Vite-Logo",
|
|
299
299
|
en: "Vite logo",
|
|
300
300
|
fr: "Logo Vite",
|
|
301
301
|
es: "Logo Vite",
|
|
302
302
|
}),
|
|
303
303
|
reactLogo: t({
|
|
304
|
-
de: "React-Logo",
|
|
305
304
|
en: "React logo",
|
|
306
305
|
fr: "Logo React",
|
|
307
306
|
es: "Logo React",
|
|
@@ -310,7 +309,6 @@ const appContent = {
|
|
|
310
309
|
title: "Vite + React",
|
|
311
310
|
|
|
312
311
|
count: t({
|
|
313
|
-
de: "Zähler ist ",
|
|
314
312
|
en: "count is ",
|
|
315
313
|
fr: "le compte est ",
|
|
316
314
|
es: "el recuento es ",
|
|
@@ -321,15 +319,9 @@ const appContent = {
|
|
|
321
319
|
ReactNode >
|
|
322
320
|
{
|
|
323
321
|
// Vergessen Sie nicht, React zu importieren, wenn Sie einen React-Knoten in Ihrem Inhalt verwenden
|
|
324
|
-
de: (
|
|
325
|
-
<>
|
|
326
|
-
Bearbeiten Sie <code>src/App.tsx</code> und speichern Sie, um HMR zu
|
|
327
|
-
testen
|
|
328
|
-
</>
|
|
329
|
-
),
|
|
330
322
|
en: (
|
|
331
323
|
<>
|
|
332
|
-
Edit <code>src/App.tsx</code>
|
|
324
|
+
Edit <code>src/App.tsx</code> und speichern, um HMR zu testen
|
|
333
325
|
</>
|
|
334
326
|
),
|
|
335
327
|
fr: (
|
|
@@ -339,14 +331,14 @@ const appContent = {
|
|
|
339
331
|
),
|
|
340
332
|
es: (
|
|
341
333
|
<>
|
|
342
|
-
|
|
334
|
+
Editieren Sie <code>src/App.tsx</code> und speichern Sie, um HMR zu
|
|
335
|
+
testen
|
|
343
336
|
</>
|
|
344
337
|
),
|
|
345
338
|
},
|
|
346
339
|
|
|
347
340
|
readTheDocs: t({
|
|
348
|
-
|
|
349
|
-
en: "Click on the Vite and React logos to learn more",
|
|
341
|
+
en: "Klicken Sie auf die Vite- und React-Logos, um mehr zu erfahren",
|
|
350
342
|
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
351
343
|
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
352
344
|
}),
|
|
@@ -364,7 +356,6 @@ module.exports = appContent;
|
|
|
364
356
|
"viteLogo": {
|
|
365
357
|
"nodeType": "translation",
|
|
366
358
|
"translation": {
|
|
367
|
-
"de": "Vite-Logo",
|
|
368
359
|
"en": "Vite logo",
|
|
369
360
|
"fr": "Logo Vite",
|
|
370
361
|
"es": "Logo Vite"
|
|
@@ -381,6 +372,7 @@ module.exports = appContent;
|
|
|
381
372
|
"title": {
|
|
382
373
|
"nodeType": "translation",
|
|
383
374
|
"translation": {
|
|
375
|
+
"de": "Vite + React",
|
|
384
376
|
"en": "Vite + React",
|
|
385
377
|
"fr": "Vite + React",
|
|
386
378
|
"es": "Vite + React"
|
|
@@ -389,6 +381,7 @@ module.exports = appContent;
|
|
|
389
381
|
"count": {
|
|
390
382
|
"nodeType": "translation",
|
|
391
383
|
"translation": {
|
|
384
|
+
"de": "Zähler ist ",
|
|
392
385
|
"en": "count is ",
|
|
393
386
|
"fr": "le compte est ",
|
|
394
387
|
"es": "el recuento es "
|
|
@@ -397,16 +390,16 @@ module.exports = appContent;
|
|
|
397
390
|
"edit": {
|
|
398
391
|
"nodeType": "translation",
|
|
399
392
|
"translation": {
|
|
393
|
+
"de": "Bearbeiten Sie src/App.tsx und speichern Sie, um HMR zu testen",
|
|
400
394
|
"en": "Edit src/App.tsx and save to test HMR",
|
|
401
395
|
"fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
|
|
402
|
-
"es": "Edita src/App.tsx y guarda para probar HMR"
|
|
403
|
-
"de": "Bearbeite src/App.tsx und speichere, um HMR zu testen"
|
|
396
|
+
"es": "Edita src/App.tsx y guarda para probar HMR"
|
|
404
397
|
}
|
|
405
398
|
},
|
|
406
399
|
"readTheDocs": {
|
|
407
400
|
"nodeType": "translation",
|
|
408
401
|
"translation": {
|
|
409
|
-
"de": "Klicken Sie auf die Vite
|
|
402
|
+
"de": "Klicken Sie auf die Logos von Vite und React, um mehr zu erfahren",
|
|
410
403
|
"en": "Click on the Vite and React logos to learn more",
|
|
411
404
|
"fr": "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
412
405
|
"es": "Haga clic en los logotipos de Vite y React para obtener más información"
|
|
@@ -416,9 +409,9 @@ module.exports = appContent;
|
|
|
416
409
|
}
|
|
417
410
|
```
|
|
418
411
|
|
|
419
|
-
> Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das `contentDir`-Verzeichnis (standardmäßig `./src`) aufgenommen werden
|
|
412
|
+
> Ihre Inhaltsdeklarationen können überall in Ihrer Anwendung definiert werden, sobald sie in das `contentDir`-Verzeichnis (standardmäßig `./src`) aufgenommen werden. Und die Dateiendung der Inhaltsdeklaration muss übereinstimmen (standardmäßig `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
420
413
|
|
|
421
|
-
> Für weitere Details
|
|
414
|
+
> Für weitere Details siehe die [Dokumentation zur Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/get_started.md).
|
|
422
415
|
|
|
423
416
|
> Wenn Ihre Inhaltsdatei TSX-Code enthält, sollten Sie in Ihrer Inhaltsdatei `import React from "react";` importieren.
|
|
424
417
|
|
|
@@ -464,7 +457,7 @@ const AppContent: FC = () => {
|
|
|
464
457
|
);
|
|
465
458
|
};
|
|
466
459
|
|
|
467
|
-
const App
|
|
460
|
+
const App = () => (
|
|
468
461
|
<IntlayerProvider>
|
|
469
462
|
<AppContent />
|
|
470
463
|
</IntlayerProvider>
|
|
@@ -567,13 +560,19 @@ const App = () => (
|
|
|
567
560
|
module.exports = App;
|
|
568
561
|
```
|
|
569
562
|
|
|
563
|
+
> Wenn Sie Ihren Inhalt in einem `string`-Attribut verwenden möchten, wie z.B. `alt`, `title`, `href`, `aria-label` usw., müssen Sie den Wert der Funktion aufrufen, wie:
|
|
564
|
+
|
|
565
|
+
> ```jsx
|
|
566
|
+
> <img src={content.image.src.value} alt={content.image.value} />
|
|
567
|
+
> ```
|
|
568
|
+
|
|
570
569
|
> Wenn Sie Ihren Inhalt in einem `string`-Attribut verwenden möchten, wie z.B. `alt`, `title`, `href`, `aria-label` usw., müssen Sie den Wert der Funktion aufrufen, zum Beispiel:
|
|
571
570
|
|
|
572
571
|
> ```jsx
|
|
573
572
|
> <img src={content.image.src.value} alt={content.image.value} />
|
|
574
573
|
> ```
|
|
575
574
|
|
|
576
|
-
> Um mehr über den `useIntlayer` Hook zu erfahren,
|
|
575
|
+
> Um mehr über den `useIntlayer` Hook zu erfahren, lesen Sie die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useIntlayer.md).
|
|
577
576
|
|
|
578
577
|
### (Optional) Schritt 6: Ändern Sie die Sprache Ihres Inhalts
|
|
579
578
|
|
|
@@ -627,7 +626,7 @@ const LocaleSwitcher = () => {
|
|
|
627
626
|
|
|
628
627
|
> Um mehr über den `useLocale` Hook zu erfahren, lesen Sie die [Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useLocale.md).
|
|
629
628
|
|
|
630
|
-
### (Optional) Schritt 7:
|
|
629
|
+
### (Optional) Schritt 7: Lokalisierte Routen zu Ihrer Anwendung hinzufügen
|
|
631
630
|
|
|
632
631
|
Der Zweck dieses Schrittes ist es, für jede Sprache eindeutige Routen zu erstellen. Dies ist nützlich für SEO und SEO-freundliche URLs.
|
|
633
632
|
Beispiel:
|
|
@@ -640,7 +639,7 @@ Beispiel:
|
|
|
640
639
|
|
|
641
640
|
> Standardmäßig sind die Routen für die Standardsprache nicht mit einem Präfix versehen. Wenn Sie die Standardsprache mit einem Präfix versehen möchten, können Sie in Ihrer Konfiguration die Option `middleware.prefixDefault` auf `true` setzen. Weitere Informationen finden Sie in der [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
|
|
642
641
|
|
|
643
|
-
Um lokalisierte Routen
|
|
642
|
+
Um lokalisierte Routen in Ihre Anwendung hinzuzufügen, können Sie eine `LocaleRouter`-Komponente erstellen, die die Routen Ihrer Anwendung umschließt und die sprachabhängige Navigation verwaltet. Hier ist ein Beispiel unter Verwendung von [React Router](https://reactrouter.com/home):
|
|
644
643
|
|
|
645
644
|
```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
|
|
646
645
|
// Importieren der notwendigen Abhängigkeiten und Funktionen
|
|
@@ -660,8 +659,8 @@ const { internationalization, middleware } = configuration;
|
|
|
660
659
|
const { locales, defaultLocale } = internationalization;
|
|
661
660
|
|
|
662
661
|
/**
|
|
663
|
-
* Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden
|
|
664
|
-
* Sie verwaltet die
|
|
662
|
+
* Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden Locale-Kontext umschließt.
|
|
663
|
+
* Sie verwaltet die URL-basierte Lokalerkennung und -validierung.
|
|
665
664
|
*/
|
|
666
665
|
const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
|
|
667
666
|
children,
|
|
@@ -669,21 +668,21 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
|
|
|
669
668
|
}) => {
|
|
670
669
|
const { pathname, search } = useLocation(); // Aktuellen URL-Pfad abrufen
|
|
671
670
|
|
|
672
|
-
//
|
|
671
|
+
// Bestimmen der aktuellen Locale, Standardwert verwenden, falls nicht angegeben
|
|
673
672
|
const currentLocale = locale ?? defaultLocale;
|
|
674
673
|
|
|
675
|
-
//
|
|
674
|
+
// Entfernen des Locale-Präfixes aus dem Pfad, um einen Basis-Pfad zu erstellen
|
|
676
675
|
const pathWithoutLocale = getPathWithoutLocale(
|
|
677
676
|
pathname // Aktueller URL-Pfad
|
|
678
677
|
);
|
|
679
678
|
|
|
680
679
|
/**
|
|
681
|
-
* Wenn middleware.prefixDefault true ist, sollte die
|
|
680
|
+
* Wenn middleware.prefixDefault true ist, sollte die Standard-Locale immer vorangestellt werden.
|
|
682
681
|
*/
|
|
683
682
|
if (middleware.prefixDefault) {
|
|
684
683
|
// Locale validieren
|
|
685
684
|
if (!locale || !locales.includes(locale)) {
|
|
686
|
-
// Weiterleitung zur
|
|
685
|
+
// Weiterleitung zur Standard-Locale mit aktualisiertem Pfad
|
|
687
686
|
return (
|
|
688
687
|
<Navigate
|
|
689
688
|
to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
|
|
@@ -698,14 +697,14 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
|
|
|
698
697
|
);
|
|
699
698
|
} else {
|
|
700
699
|
/**
|
|
701
|
-
* Wenn middleware.prefixDefault false ist, wird die
|
|
702
|
-
*
|
|
700
|
+
* Wenn middleware.prefixDefault false ist, wird die Standardsprache nicht mit einem Präfix versehen.
|
|
701
|
+
* Stellen Sie sicher, dass die aktuelle Locale gültig ist und nicht die Standardsprache ist.
|
|
703
702
|
*/
|
|
704
703
|
if (
|
|
705
704
|
currentLocale.toString() !== defaultLocale.toString() &&
|
|
706
705
|
!locales
|
|
707
706
|
.filter(
|
|
708
|
-
(locale) => locale.toString() !== defaultLocale.toString() // Schließt die
|
|
707
|
+
(locale) => locale.toString() !== defaultLocale.toString() // Schließt die Standardsprache aus
|
|
709
708
|
)
|
|
710
709
|
.includes(currentLocale) // Überprüfen, ob die aktuelle Locale in der Liste der gültigen Locales enthalten ist
|
|
711
710
|
) {
|
|
@@ -721,8 +720,8 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
|
|
|
721
720
|
};
|
|
722
721
|
|
|
723
722
|
/**
|
|
724
|
-
*
|
|
725
|
-
*
|
|
723
|
+
* Eine Router-Komponente, die locale-spezifische Routen einrichtet.
|
|
724
|
+
* Sie verwendet React Router, um die Navigation zu verwalten und lokalisierte Komponenten zu rendern.
|
|
726
725
|
*/
|
|
727
726
|
export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
728
727
|
<BrowserRouter>
|
|
@@ -736,18 +735,18 @@ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
|
736
735
|
// Routenmuster, um die Locale zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade zu erfassen
|
|
737
736
|
path={`/${locale}/*`}
|
|
738
737
|
key={locale}
|
|
739
|
-
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt die Kinder mit der
|
|
738
|
+
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt die Kinder mit der Locale-Verwaltung
|
|
740
739
|
/>
|
|
741
740
|
))}
|
|
742
741
|
|
|
743
742
|
{
|
|
744
|
-
// Wenn das Präfix für die Standard-Locale deaktiviert ist,
|
|
743
|
+
// Wenn das Präfix für die Standard-Locale deaktiviert ist, werden die Kinder direkt im Stammverzeichnis gerendert
|
|
745
744
|
!middleware.prefixDefault && (
|
|
746
745
|
<Route
|
|
747
746
|
path="*"
|
|
748
747
|
element={
|
|
749
748
|
<AppLocalized locale={defaultLocale}>{children}</AppLocalized>
|
|
750
|
-
} // Umschließt die Kinder mit der
|
|
749
|
+
} // Umschließt die Kinder mit der Locale-Verwaltung
|
|
751
750
|
/>
|
|
752
751
|
)
|
|
753
752
|
}
|
|
@@ -774,14 +773,14 @@ const { internationalization, middleware } = configuration;
|
|
|
774
773
|
const { locales, defaultLocale } = internationalization;
|
|
775
774
|
|
|
776
775
|
/**
|
|
777
|
-
* Eine Komponente, die die Lokalisierung verwaltet und
|
|
776
|
+
* Eine Komponente, die die Lokalisierung verwaltet und Kinder mit dem entsprechenden Locale-Kontext umschließt.
|
|
778
777
|
/**
|
|
779
|
-
* Es verwaltet die
|
|
778
|
+
* Es verwaltet die auf der URL basierende Lokalisierungserkennung und -validierung.
|
|
780
779
|
*/
|
|
781
780
|
const AppLocalized = ({ children, locale }) => {
|
|
782
781
|
const { pathname, search } = useLocation(); // Holt den aktuellen URL-Pfad
|
|
783
782
|
|
|
784
|
-
// Bestimmt die aktuelle Locale, standardmäßig die
|
|
783
|
+
// Bestimmt die aktuelle Locale, standardmäßig die Standard-Locale, falls keine angegeben ist
|
|
785
784
|
const currentLocale = locale ?? defaultLocale;
|
|
786
785
|
|
|
787
786
|
// Entfernt das Locale-Präfix aus dem Pfad, um einen Basis-Pfad zu erstellen
|
|
@@ -790,7 +789,7 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
790
789
|
);
|
|
791
790
|
|
|
792
791
|
/**
|
|
793
|
-
* Wenn middleware.prefixDefault true ist, sollte die Standard-Locale immer
|
|
792
|
+
* Wenn middleware.prefixDefault true ist, sollte die Standard-Locale immer als Präfix verwendet werden.
|
|
794
793
|
*/
|
|
795
794
|
if (middleware.prefixDefault) {
|
|
796
795
|
// Validiert die Locale
|
|
@@ -845,21 +844,21 @@ export const LocaleRouter = ({ children }) => (
|
|
|
845
844
|
)
|
|
846
845
|
.map((locale) => (
|
|
847
846
|
<Route
|
|
848
|
-
// Routenmuster, um die Locale zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade
|
|
847
|
+
// Routenmuster, um die Locale zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade abzugleichen
|
|
849
848
|
path={`/${locale}/*`}
|
|
850
849
|
key={locale}
|
|
851
|
-
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt Kinder mit Locale-Verwaltung
|
|
850
|
+
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt die Kinder mit der Locale-Verwaltung
|
|
852
851
|
/>
|
|
853
852
|
))}
|
|
854
853
|
|
|
855
854
|
{
|
|
856
|
-
// Wenn das Präfix für die Standard-Locale deaktiviert ist,
|
|
855
|
+
// Wenn das Präfix für die Standard-Locale deaktiviert ist, werden die Kinder direkt im Stammverzeichnis gerendert
|
|
857
856
|
!middleware.prefixDefault && (
|
|
858
857
|
<Route
|
|
859
858
|
path="*"
|
|
860
859
|
element={
|
|
861
860
|
<AppLocalized locale={defaultLocale}>{children}</AppLocalized>
|
|
862
|
-
} // Umschließt Kinder mit Locale-Verwaltung
|
|
861
|
+
} // Umschließt die Kinder mit der Locale-Verwaltung
|
|
863
862
|
/>
|
|
864
863
|
)
|
|
865
864
|
}
|
|
@@ -886,15 +885,15 @@ const { locales, defaultLocale } = internationalization;
|
|
|
886
885
|
|
|
887
886
|
/**
|
|
888
887
|
* Eine Komponente, die die Lokalisierung verwaltet und die Kinder mit dem entsprechenden Lokalisierungskontext umschließt.
|
|
889
|
-
* Sie verwaltet die URL-basierte
|
|
888
|
+
* Sie verwaltet die URL-basierte Lokalerkennung und Validierung.
|
|
890
889
|
*/
|
|
891
890
|
const AppLocalized = ({ children, locale }) => {
|
|
892
891
|
const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad
|
|
893
892
|
|
|
894
|
-
// Bestimme die aktuelle Locale, standardmäßig die Default-Locale
|
|
893
|
+
// Bestimme die aktuelle Locale, standardmäßig auf die Default-Locale zurückfallend, falls nicht angegeben
|
|
895
894
|
const currentLocale = locale ?? defaultLocale;
|
|
896
895
|
|
|
897
|
-
// Entferne das Locale-Präfix
|
|
896
|
+
// Entferne das Locale-Präfix aus dem Pfad, um einen Basis-Pfad zu erstellen
|
|
898
897
|
const pathWithoutLocale = getPathWithoutLocale(
|
|
899
898
|
pathname // Aktueller URL-Pfad
|
|
900
899
|
);
|
|
@@ -903,13 +902,13 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
903
902
|
* Wenn middleware.prefixDefault true ist, sollte die Default-Locale immer vorangestellt werden.
|
|
904
903
|
*/
|
|
905
904
|
if (middleware.prefixDefault) {
|
|
906
|
-
//
|
|
905
|
+
// Überprüfe die Locale
|
|
907
906
|
if (!locale || !locales.includes(locale)) {
|
|
908
|
-
// Weiterleitung zur Default-Locale mit
|
|
907
|
+
// Weiterleitung zur Default-Locale mit dem aktualisierten Pfad
|
|
909
908
|
return (
|
|
910
909
|
<Navigate
|
|
911
910
|
to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
|
|
912
|
-
replace // Ersetzt den aktuellen Eintrag
|
|
911
|
+
replace // Ersetzt den aktuellen Eintrag in der Historie durch den neuen
|
|
913
912
|
/>
|
|
914
913
|
);
|
|
915
914
|
}
|
|
@@ -921,15 +920,15 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
921
920
|
} else {
|
|
922
921
|
/**
|
|
923
922
|
* Wenn middleware.prefixDefault false ist, wird die Standard-Locale nicht vorangestellt.
|
|
924
|
-
* Stelle sicher, dass die aktuelle Locale gültig ist und nicht die Standard-Locale.
|
|
923
|
+
* Stelle sicher, dass die aktuelle Locale gültig ist und nicht die Standard-Locale ist.
|
|
925
924
|
*/
|
|
926
925
|
if (
|
|
927
926
|
currentLocale.toString() !== defaultLocale.toString() &&
|
|
928
927
|
!locales
|
|
929
928
|
.filter(
|
|
930
|
-
(locale) => locale.toString() !== defaultLocale.toString() //
|
|
929
|
+
(locale) => locale.toString() !== defaultLocale.toString() // Schließt die Standard-Locale aus
|
|
931
930
|
)
|
|
932
|
-
.includes(currentLocale) //
|
|
931
|
+
.includes(currentLocale) // Prüft, ob die aktuelle Locale in der Liste der gültigen Locales ist
|
|
933
932
|
) {
|
|
934
933
|
// Weiterleitung zum Pfad ohne Sprachpräfix
|
|
935
934
|
return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
|
|
@@ -955,10 +954,10 @@ const LocaleRouter = ({ children }) => (
|
|
|
955
954
|
)
|
|
956
955
|
.map((locale) => (
|
|
957
956
|
<Route
|
|
958
|
-
// Routenmuster, um die Sprache zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade zu
|
|
957
|
+
// Routenmuster, um die Sprache zu erfassen (z.B. /en/, /fr/) und alle nachfolgenden Pfade zu erfassen
|
|
959
958
|
path={`/${locale}/*`}
|
|
960
959
|
key={locale}
|
|
961
|
-
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt Kinder mit der
|
|
960
|
+
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Umschließt Kinder mit der Sprachverwaltung
|
|
962
961
|
/>
|
|
963
962
|
))}
|
|
964
963
|
|
|
@@ -969,7 +968,7 @@ const LocaleRouter = ({ children }) => (
|
|
|
969
968
|
path="*"
|
|
970
969
|
element={
|
|
971
970
|
<AppLocalized locale={defaultLocale}>{children}</AppLocalized>
|
|
972
|
-
} // Umschließt Kinder mit der
|
|
971
|
+
} // Umschließt Kinder mit der Sprachverwaltung
|
|
973
972
|
/>
|
|
974
973
|
)
|
|
975
974
|
}
|
|
@@ -1017,7 +1016,7 @@ const App = () => (
|
|
|
1017
1016
|
);
|
|
1018
1017
|
```
|
|
1019
1018
|
|
|
1020
|
-
Parallel dazu können Sie auch das `intLayerMiddlewarePlugin` verwenden, um serverseitiges Routing in Ihre Anwendung zu integrieren. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die
|
|
1019
|
+
Parallel dazu können Sie auch das `intLayerMiddlewarePlugin` verwenden, um serverseitiges Routing in Ihre Anwendung zu integrieren. Dieses Plugin erkennt automatisch die aktuelle Locale basierend auf der URL und setzt das entsprechende Locale-Cookie. Wenn keine Locale angegeben ist, bestimmt das Plugin die passendste Locale basierend auf den Spracheinstellungen des Browsers des Benutzers. Wird keine Locale erkannt, erfolgt eine Weiterleitung zur Standard-Locale.
|
|
1021
1020
|
|
|
1022
1021
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1023
1022
|
import { defineConfig } from "vite";
|
|
@@ -1068,16 +1067,16 @@ import { useLocale } from "react-intlayer";
|
|
|
1068
1067
|
import { type FC } from "react";
|
|
1069
1068
|
|
|
1070
1069
|
const LocaleSwitcher: FC = () => {
|
|
1071
|
-
const { pathname, search } = useLocation(); //
|
|
1070
|
+
const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
|
|
1072
1071
|
const navigate = useNavigate();
|
|
1073
1072
|
|
|
1074
1073
|
const { locale, availableLocales, setLocale } = useLocale({
|
|
1075
1074
|
onLocaleChange: (locale) => {
|
|
1076
|
-
//
|
|
1075
|
+
// Erstelle die URL mit der aktualisierten Locale
|
|
1077
1076
|
// Beispiel: /es/about?foo=bar
|
|
1078
1077
|
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
1079
1078
|
|
|
1080
|
-
//
|
|
1079
|
+
// Aktualisiere den URL-Pfad
|
|
1081
1080
|
navigate(pathWithLocale);
|
|
1082
1081
|
},
|
|
1083
1082
|
});
|
|
@@ -1106,7 +1105,7 @@ const LocaleSwitcher: FC = () => {
|
|
|
1106
1105
|
{getLocaleName(localeItem, locale)}
|
|
1107
1106
|
</span>
|
|
1108
1107
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1109
|
-
{/* Sprache im aktuellen Gebietsschema - z.B. Francés
|
|
1108
|
+
{/* Sprache im aktuellen Gebietsschema - z.B. Francés, wenn das aktuelle Gebietsschema auf Locales.SPANISH gesetzt ist */}
|
|
1110
1109
|
{getLocaleName(localeItem)}
|
|
1111
1110
|
</span>
|
|
1112
1111
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
@@ -1166,7 +1165,7 @@ const LocaleSwitcher = () => {
|
|
|
1166
1165
|
{localeItem}
|
|
1167
1166
|
</span>
|
|
1168
1167
|
<span>
|
|
1169
|
-
{/* Sprache
|
|
1168
|
+
{/* Sprache in ihrem eigenen Gebietsschema - z.B. Français */}
|
|
1170
1169
|
{getLocaleName(localeItem, locale)}
|
|
1171
1170
|
</span>
|
|
1172
1171
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
@@ -1196,16 +1195,16 @@ const {
|
|
|
1196
1195
|
const { useLocale } = require("react-intlayer");
|
|
1197
1196
|
|
|
1198
1197
|
const LocaleSwitcher = () => {
|
|
1199
|
-
const { pathname, search } = useLocation(); //
|
|
1198
|
+
const { pathname, search } = useLocation(); // Hole den aktuellen URL-Pfad. Beispiel: /fr/about?foo=bar
|
|
1200
1199
|
const navigate = useNavigate();
|
|
1201
1200
|
|
|
1202
1201
|
const { locale, availableLocales, setLocale } = useLocale({
|
|
1203
1202
|
onLocaleChange: (locale) => {
|
|
1204
|
-
//
|
|
1203
|
+
// Erstelle die URL mit der aktualisierten Locale
|
|
1205
1204
|
// Beispiel: /es/about?foo=bar
|
|
1206
1205
|
const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale);
|
|
1207
1206
|
|
|
1208
|
-
//
|
|
1207
|
+
// Aktualisiere den URL-Pfad
|
|
1209
1208
|
navigate(pathWithLocale);
|
|
1210
1209
|
},
|
|
1211
1210
|
});
|
|
@@ -1234,11 +1233,11 @@ const LocaleSwitcher = () => {
|
|
|
1234
1233
|
{getLocaleName(localeItem, locale)}
|
|
1235
1234
|
</span>
|
|
1236
1235
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1237
|
-
{/* Sprache im aktuellen Gebietsschema - z.B. Francés
|
|
1236
|
+
{/* Sprache im aktuellen Gebietsschema - z.B. Francés, wenn das aktuelle Gebietsschema auf Locales.SPANISH gesetzt ist */}
|
|
1238
1237
|
{getLocaleName(localeItem)}
|
|
1239
1238
|
</span>
|
|
1240
1239
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1241
|
-
{/* Sprache auf Englisch
|
|
1240
|
+
{/* Sprache auf Englisch – z.B. Französisch */}
|
|
1242
1241
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1243
1242
|
</span>
|
|
1244
1243
|
</a>
|
|
@@ -1249,12 +1248,12 @@ const LocaleSwitcher = () => {
|
|
|
1249
1248
|
};
|
|
1250
1249
|
```
|
|
1251
1250
|
|
|
1252
|
-
>
|
|
1251
|
+
> Dokumentationsreferenzen:
|
|
1253
1252
|
>
|
|
1254
1253
|
> - [`useLocale` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/react-intlayer/useLocale.md)
|
|
1255
1254
|
> - [`getLocaleName` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/intlayer/getLocaleName.md)
|
|
1256
1255
|
> - [`getLocalizedUrl` Hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/intlayer/getLocalizedUrl.md)
|
|
1257
|
-
> - [`getHTMLTextDir`
|
|
1256
|
+
> - [`getHTMLTextDir` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/packages/intlayer/getHTMLTextDir.md)
|
|
1258
1257
|
> - [`hrefLang` Attribut](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
|
|
1259
1258
|
> - [`lang` Attribut](https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/lang)
|
|
1260
1259
|
> - [`dir` Attribut](https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/dir)
|
|
@@ -1270,7 +1269,7 @@ Wenn Ihre Anwendung mehrere Sprachen unterstützt, ist es entscheidend, die `lan
|
|
|
1270
1269
|
|
|
1271
1270
|
- **Barrierefreiheit**: Screenreader und unterstützende Technologien verlassen sich auf das korrekte `lang`-Attribut, um Inhalte richtig auszusprechen und zu interpretieren.
|
|
1272
1271
|
- **Textdarstellung**: Das `dir`-Attribut (Richtung) sorgt dafür, dass der Text in der richtigen Reihenfolge dargestellt wird (z. B. von links nach rechts für Englisch, von rechts nach links für Arabisch oder Hebräisch), was für die Lesbarkeit unerlässlich ist.
|
|
1273
|
-
- **SEO**: Suchmaschinen verwenden das `lang`-Attribut, um die Sprache Ihrer Seite zu bestimmen
|
|
1272
|
+
- **SEO**: Suchmaschinen verwenden das `lang`-Attribut, um die Sprache Ihrer Seite zu bestimmen und so die passende lokalisierte Version in den Suchergebnissen anzuzeigen.
|
|
1274
1273
|
|
|
1275
1274
|
Indem Sie diese Attribute dynamisch aktualisieren, wenn sich die Spracheinstellung ändert, gewährleisten Sie eine konsistente und barrierefreie Erfahrung für Benutzer in allen unterstützten Sprachen.
|
|
1276
1275
|
|
|
@@ -1313,7 +1312,7 @@ import { getHTMLTextDir } from "intlayer";
|
|
|
1313
1312
|
* - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
|
|
1314
1313
|
* - `dir`: Stellt die korrekte Leserichtung sicher (z.B. 'ltr' für Englisch, 'rtl' für Arabisch).
|
|
1315
1314
|
*
|
|
1316
|
-
* Dieses dynamische Update ist
|
|
1315
|
+
* Dieses dynamische Update ist essentiell für die korrekte Textdarstellung, Barrierefreiheit und SEO.
|
|
1317
1316
|
*/
|
|
1318
1317
|
export const useI18nHTMLAttributes = () => {
|
|
1319
1318
|
const { locale } = useLocale();
|
|
@@ -1322,7 +1321,7 @@ export const useI18nHTMLAttributes = () => {
|
|
|
1322
1321
|
// Aktualisiert das Sprachattribut auf die aktuelle Locale.
|
|
1323
1322
|
document.documentElement.lang = locale;
|
|
1324
1323
|
|
|
1325
|
-
// Setzt die
|
|
1324
|
+
// Setzt die Leserichtung basierend auf der aktuellen Locale.
|
|
1326
1325
|
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1327
1326
|
}, [locale]);
|
|
1328
1327
|
};
|
|
@@ -1334,9 +1333,9 @@ const { useLocale } = require("react-intlayer");
|
|
|
1334
1333
|
const { getHTMLTextDir } = require("intlayer");
|
|
1335
1334
|
|
|
1336
1335
|
/**
|
|
1337
|
-
* Aktualisiert die `lang`- und `dir`-Attribute des HTML
|
|
1336
|
+
* Aktualisiert die `lang`- und `dir`-Attribute des HTML-Elements <html> basierend auf der aktuellen Locale.
|
|
1338
1337
|
* - `lang`: Informiert Browser und Suchmaschinen über die Sprache der Seite.
|
|
1339
|
-
* - `dir`: Stellt die korrekte Leserichtung sicher (z.B. 'ltr' für Englisch, 'rtl' für Arabisch).
|
|
1338
|
+
* - `dir`: Stellt die korrekte Leserichtung sicher (z. B. 'ltr' für Englisch, 'rtl' für Arabisch).
|
|
1340
1339
|
*
|
|
1341
1340
|
* Diese dynamische Aktualisierung ist essenziell für die korrekte Textdarstellung, Barrierefreiheit und SEO.
|
|
1342
1341
|
*/
|
|
@@ -1347,7 +1346,7 @@ const useI18nHTMLAttributes = () => {
|
|
|
1347
1346
|
// Aktualisiere das Sprachattribut auf die aktuelle Locale.
|
|
1348
1347
|
document.documentElement.lang = locale;
|
|
1349
1348
|
|
|
1350
|
-
// Setze die
|
|
1349
|
+
// Setze die Textrichtung basierend auf der aktuellen Locale.
|
|
1351
1350
|
document.documentElement.dir = getHTMLTextDir(locale);
|
|
1352
1351
|
}, [locale]);
|
|
1353
1352
|
};
|
|
@@ -1381,10 +1380,9 @@ const App: FC = () => (
|
|
|
1381
1380
|
export default App;
|
|
1382
1381
|
```
|
|
1383
1382
|
|
|
1384
|
-
````jsx fileName="src/App.msx" codeFormat="esm"
|
|
1385
1383
|
#### Verwendung des Hooks in Ihrer Anwendung
|
|
1386
1384
|
|
|
1387
|
-
Integrieren Sie den Hook in Ihre Hauptkomponente, damit die HTML-Attribute
|
|
1385
|
+
Integrieren Sie den Hook in Ihre Hauptkomponente, damit die HTML-Attribute aktualisiert werden, sobald sich die Locale ändert:
|
|
1388
1386
|
|
|
1389
1387
|
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
1390
1388
|
import type { FC } from "react";
|
|
@@ -1393,7 +1391,7 @@ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
|
1393
1391
|
import "./App.css";
|
|
1394
1392
|
|
|
1395
1393
|
const AppContent: FC = () => {
|
|
1396
|
-
// Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der
|
|
1394
|
+
// Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Locale zu aktualisieren.
|
|
1397
1395
|
useI18nHTMLAttributes();
|
|
1398
1396
|
|
|
1399
1397
|
// ... Rest Ihrer Komponente
|
|
@@ -1406,7 +1404,7 @@ const App: FC = () => (
|
|
|
1406
1404
|
);
|
|
1407
1405
|
|
|
1408
1406
|
export default App;
|
|
1409
|
-
|
|
1407
|
+
```
|
|
1410
1408
|
|
|
1411
1409
|
```jsx fileName="src/App.msx" codeFormat="esm"
|
|
1412
1410
|
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
@@ -1414,7 +1412,7 @@ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
|
1414
1412
|
import "./App.css";
|
|
1415
1413
|
|
|
1416
1414
|
const AppContent = () => {
|
|
1417
|
-
// Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der
|
|
1415
|
+
// Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Locale zu aktualisieren.
|
|
1418
1416
|
useI18nHTMLAttributes();
|
|
1419
1417
|
|
|
1420
1418
|
// ... Rest Ihrer Komponente
|
|
@@ -1436,7 +1434,7 @@ const { useI18nHTMLAttributes } = require("./hooks/useI18nHTMLAttributes");
|
|
|
1436
1434
|
require("./App.css");
|
|
1437
1435
|
|
|
1438
1436
|
const AppContent = () => {
|
|
1439
|
-
// Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der
|
|
1437
|
+
// Wenden Sie den Hook an, um die lang- und dir-Attribute des <html>-Tags basierend auf der Locale zu aktualisieren.
|
|
1440
1438
|
useI18nHTMLAttributes();
|
|
1441
1439
|
|
|
1442
1440
|
// ... Rest Ihrer Komponente
|
|
@@ -1453,43 +1451,27 @@ module.exports = App;
|
|
|
1453
1451
|
|
|
1454
1452
|
Durch diese Änderungen wird Ihre Anwendung:
|
|
1455
1453
|
|
|
1456
|
-
- Sicherstellen, dass das **language** (`lang`) Attribut die aktuelle
|
|
1457
|
-
- Die **Schreibrichtung** (`dir`) entsprechend der
|
|
1458
|
-
- Eine
|
|
1454
|
+
- Sicherstellen, dass das **language** (`lang`) Attribut die aktuelle Locale korrekt widerspiegelt, was wichtig für SEO und das Verhalten des Browsers ist.
|
|
1455
|
+
- Die **Schreibrichtung** (`dir`) entsprechend der Locale anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlicher Leserichtung zu verbessern.
|
|
1456
|
+
- Eine bessere **Barrierefreiheit** bieten, da unterstützende Technologien auf diese Attribute angewiesen sind, um optimal zu funktionieren.
|
|
1459
1457
|
|
|
1460
1458
|
### (Optional) Schritt 10: Erstellen einer lokalisierten Link-Komponente
|
|
1461
1459
|
|
|
1462
|
-
// Wenden Sie den Hook an, um die Attribute lang und dir des <html>-Tags basierend auf der Locale zu aktualisieren.
|
|
1463
|
-
useI18nHTMLAttributes();
|
|
1464
|
-
|
|
1465
|
-
// ... Rest Ihres Components
|
|
1466
|
-
};
|
|
1467
|
-
|
|
1468
|
-
const App = () => (
|
|
1469
|
-
<IntlayerProvider>
|
|
1470
|
-
<AppContent />
|
|
1471
|
-
</IntlayerProvider>
|
|
1472
|
-
);
|
|
1473
|
-
|
|
1474
|
-
module.exports = App;
|
|
1475
|
-
|
|
1476
|
-
````
|
|
1477
|
-
|
|
1478
1460
|
Durch die Anwendung dieser Änderungen wird Ihre Anwendung:
|
|
1479
1461
|
|
|
1480
|
-
- Sicherstellen, dass das **Sprach
|
|
1481
|
-
- Die **Schreibrichtung** (`dir`) entsprechend der Locale anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit
|
|
1462
|
+
- Sicherstellen, dass das **Sprach**-Attribut (`lang`) die aktuelle Locale korrekt widerspiegelt, was wichtig für SEO und das Verhalten des Browsers ist.
|
|
1463
|
+
- Die **Schreibrichtung** (`dir`) entsprechend der Locale anpassen, um die Lesbarkeit und Benutzerfreundlichkeit für Sprachen mit unterschiedlichen Leserichtungen zu verbessern.
|
|
1482
1464
|
- Eine zugänglichere **Benutzererfahrung** bieten, da unterstützende Technologien auf diese Attribute angewiesen sind, um optimal zu funktionieren.
|
|
1483
1465
|
|
|
1484
1466
|
### (Optional) Schritt 10: Erstellen einer lokalisierten Link-Komponente
|
|
1485
1467
|
|
|
1486
|
-
Um sicherzustellen, dass die Navigation Ihrer Anwendung die aktuelle
|
|
1468
|
+
Um sicherzustellen, dass die Navigation Ihrer Anwendung die aktuelle Sprache berücksichtigt, können Sie eine benutzerdefinierte `Link`-Komponente erstellen. Diese Komponente fügt automatisch den aktuellen Sprachpräfix zu internen URLs hinzu. Zum Beispiel wird ein französischsprachiger Benutzer, der auf einen Link zur "Über uns"-Seite klickt, zu `/fr/about` statt zu `/about` weitergeleitet.
|
|
1487
1469
|
|
|
1488
1470
|
Dieses Verhalten ist aus mehreren Gründen nützlich:
|
|
1489
1471
|
|
|
1490
1472
|
- **SEO und Benutzererfahrung**: Lokalisierte URLs helfen Suchmaschinen, sprachspezifische Seiten korrekt zu indexieren, und bieten den Nutzern Inhalte in ihrer bevorzugten Sprache.
|
|
1491
|
-
- **Konsistenz**: Durch die Verwendung eines lokalisierten Links in Ihrer gesamten Anwendung stellen Sie sicher, dass die Navigation innerhalb der aktuellen
|
|
1492
|
-
- **Wartbarkeit**: Die Zentralisierung der Lokalisierungslogik in einer einzigen Komponente vereinfacht die Verwaltung
|
|
1473
|
+
- **Konsistenz**: Durch die Verwendung eines lokalisierten Links in Ihrer gesamten Anwendung stellen Sie sicher, dass die Navigation innerhalb der aktuellen Sprache bleibt und unerwartete Sprachwechsel vermieden werden.
|
|
1474
|
+
- **Wartbarkeit**: Die Zentralisierung der Lokalisierungslogik in einer einzigen Komponente vereinfacht die Verwaltung der URLs und macht Ihren Code leichter wartbar und erweiterbar, wenn Ihre Anwendung wächst.
|
|
1493
1475
|
|
|
1494
1476
|
Nachfolgend finden Sie die Implementierung einer lokalisierten `Link`-Komponente in TypeScript:
|
|
1495
1477
|
|
|
@@ -1510,14 +1492,14 @@ export interface LinkProps
|
|
|
1510
1492
|
|
|
1511
1493
|
/**
|
|
1512
1494
|
* Hilfsfunktion, um zu prüfen, ob eine gegebene URL extern ist.
|
|
1513
|
-
* Wenn die URL mit http:// oder https:// beginnt,
|
|
1495
|
+
* Wenn die URL mit http:// oder https:// beginnt, wird sie als extern betrachtet.
|
|
1514
1496
|
*/
|
|
1515
1497
|
export const checkIsExternalLink = (href?: string): boolean =>
|
|
1516
1498
|
/^https?:\/\//.test(href ?? "");
|
|
1517
1499
|
|
|
1518
1500
|
/**
|
|
1519
1501
|
* Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Locale anpasst.
|
|
1520
|
-
* Für interne Links
|
|
1502
|
+
* Für interne Links verwendet sie `getLocalizedUrl`, um die URL mit der Locale zu versehen (z.B. /fr/about).
|
|
1521
1503
|
* Dies stellt sicher, dass die Navigation im gleichen Locale-Kontext bleibt.
|
|
1522
1504
|
*/
|
|
1523
1505
|
export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
@@ -1525,7 +1507,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
1525
1507
|
const { locale } = useLocale();
|
|
1526
1508
|
const isExternalLink = checkIsExternalLink(href);
|
|
1527
1509
|
|
|
1528
|
-
// Wenn der Link intern ist und
|
|
1510
|
+
// Wenn der Link intern ist und ein gültiges href vorhanden ist, wird die lokalisierte URL verwendet.
|
|
1529
1511
|
const hrefI18n =
|
|
1530
1512
|
href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
|
|
1531
1513
|
|
|
@@ -1538,7 +1520,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
1538
1520
|
);
|
|
1539
1521
|
|
|
1540
1522
|
Link.displayName = "Link";
|
|
1541
|
-
|
|
1523
|
+
```
|
|
1542
1524
|
|
|
1543
1525
|
```jsx fileName="src/components/Link.mjx" codeFormat="esm"
|
|
1544
1526
|
import { getLocalizedUrl } from "intlayer";
|
|
@@ -1554,14 +1536,14 @@ export const checkIsExternalLink = (href?: string): boolean =>
|
|
|
1554
1536
|
|
|
1555
1537
|
/**
|
|
1556
1538
|
* Eine benutzerdefinierte Link-Komponente, die das href-Attribut basierend auf der aktuellen Locale anpasst.
|
|
1557
|
-
* Für interne Links
|
|
1539
|
+
* Für interne Links wird `getLocalizedUrl` verwendet, um die URL mit der Locale zu versehen (z.B. /fr/about).
|
|
1558
1540
|
* Dies stellt sicher, dass die Navigation im gleichen Locale-Kontext bleibt.
|
|
1559
1541
|
*/
|
|
1560
1542
|
export const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1561
1543
|
const { locale } = useLocale();
|
|
1562
1544
|
const isExternalLink = checkIsExternalLink(href);
|
|
1563
1545
|
|
|
1564
|
-
// Wenn der Link intern ist und eine gültige href
|
|
1546
|
+
// Wenn der Link intern ist und eine gültige href vorhanden ist, wird die lokalisierte URL abgerufen.
|
|
1565
1547
|
const hrefI18n =
|
|
1566
1548
|
href && !isExternalLink ? getLocalizedUrl(href, locale) : href;
|
|
1567
1549
|
|
|
@@ -1595,7 +1577,7 @@ const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
|
1595
1577
|
const { locale } = useLocale();
|
|
1596
1578
|
const isExternalLink = checkIsExternalLink(href);
|
|
1597
1579
|
|
|
1598
|
-
// Wenn der Link intern ist und eine gültige href
|
|
1580
|
+
// Wenn der Link intern ist und eine gültige href angegeben ist, wird die lokalisierte URL ermittelt.
|
|
1599
1581
|
const localizedHref = isExternalLink ? href : getLocalizedUrl(href, locale);
|
|
1600
1582
|
|
|
1601
1583
|
return (
|
|
@@ -1613,25 +1595,25 @@ const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
|
1613
1595
|
Link.displayName = "Link";
|
|
1614
1596
|
```
|
|
1615
1597
|
|
|
1616
|
-
####
|
|
1598
|
+
#### Funktionsweise
|
|
1617
1599
|
|
|
1618
1600
|
- **Erkennung externer Links**:
|
|
1619
|
-
Die Hilfsfunktion `checkIsExternalLink` bestimmt, ob eine URL extern ist. Externe Links bleiben unverändert, da sie
|
|
1601
|
+
Die Hilfsfunktion `checkIsExternalLink` bestimmt, ob eine URL extern ist. Externe Links bleiben unverändert, da sie nicht lokalisiert werden müssen.
|
|
1620
1602
|
|
|
1621
1603
|
- **Abrufen der aktuellen Locale**:
|
|
1622
|
-
Der Hook `useLocale` liefert die aktuelle Locale (z.B. `fr` für Französisch).
|
|
1604
|
+
Der Hook `useLocale` liefert die aktuelle Locale (z. B. `fr` für Französisch).
|
|
1623
1605
|
|
|
1624
1606
|
- **Lokalisierung der URL**:
|
|
1625
|
-
Für interne Links (d.h. nicht extern) wird `getLocalizedUrl` verwendet, um die URL automatisch mit der aktuellen Locale zu versehen. Das bedeutet, wenn Ihr Benutzer Französisch eingestellt hat, wird aus `/about` als `href` automatisch `/fr/about`.
|
|
1607
|
+
Für interne Links (d. h. nicht extern) wird `getLocalizedUrl` verwendet, um die URL automatisch mit der aktuellen Locale zu versehen. Das bedeutet, wenn Ihr Benutzer Französisch eingestellt hat, wird aus `/about` als `href` automatisch `/fr/about`.
|
|
1626
1608
|
|
|
1627
1609
|
- **Rückgabe des Links**:
|
|
1628
1610
|
Die Komponente gibt ein `<a>`-Element mit der lokalisierten URL zurück, wodurch sichergestellt wird, dass die Navigation konsistent mit der Spracheinstellung erfolgt.
|
|
1629
1611
|
|
|
1630
|
-
|
|
1612
|
+
Indem Sie diese `Link`-Komponente in Ihrer gesamten Anwendung integrieren, gewährleisten Sie eine kohärente und sprachbewusste Benutzererfahrung und profitieren gleichzeitig von verbesserter SEO und Benutzerfreundlichkeit.
|
|
1631
1613
|
|
|
1632
1614
|
### TypeScript konfigurieren
|
|
1633
1615
|
|
|
1634
|
-
Intlayer verwendet Module Augmentation, um die Vorteile von TypeScript zu nutzen und Ihren
|
|
1616
|
+
Intlayer verwendet Module Augmentation, um die Vorteile von TypeScript zu nutzen und Ihren Codebasis robuster zu machen.
|
|
1635
1617
|
|
|
1636
1618
|

|
|
1637
1619
|
|
|
@@ -1651,9 +1633,9 @@ Stellen Sie sicher, dass Ihre TypeScript-Konfiguration die automatisch generiert
|
|
|
1651
1633
|
|
|
1652
1634
|
### Git-Konfiguration
|
|
1653
1635
|
|
|
1654
|
-
Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren.
|
|
1636
|
+
Es wird empfohlen, die von Intlayer generierten Dateien zu ignorieren. Dadurch vermeiden Sie, diese versehentlich in Ihr Git-Repository zu committen.
|
|
1655
1637
|
|
|
1656
|
-
|
|
1638
|
+
Fügen Sie dazu folgende Anweisungen in Ihre `.gitignore`-Datei ein:
|
|
1657
1639
|
|
|
1658
1640
|
```plaintext
|
|
1659
1641
|
# Ignoriere die von Intlayer generierten Dateien
|
|
@@ -1673,7 +1655,7 @@ Diese Erweiterung bietet:
|
|
|
1673
1655
|
- **Inline-Vorschauen** des übersetzten Inhalts.
|
|
1674
1656
|
- **Schnellaktionen**, um Übersetzungen einfach zu erstellen und zu aktualisieren.
|
|
1675
1657
|
|
|
1676
|
-
Für weitere Details zur
|
|
1658
|
+
Für weitere Details zur Nutzung der Erweiterung siehe die [Intlayer VS Code Extension Dokumentation](https://intlayer.org/doc/vs-code-extension).
|
|
1677
1659
|
|
|
1678
1660
|
---
|
|
1679
1661
|
|
|
@@ -1685,4 +1667,4 @@ Um weiterzugehen, können Sie den [visuellen Editor](https://github.com/aymericz
|
|
|
1685
1667
|
|
|
1686
1668
|
## Dokumentationshistorie
|
|
1687
1669
|
|
|
1688
|
-
- 5.5.10 - 2025-06-29:
|
|
1670
|
+
- 5.5.10 - 2025-06-29: Historie initialisiert
|