@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
|
@@ -15,6 +15,8 @@ slugs:
|
|
|
15
15
|
- environment
|
|
16
16
|
- fr
|
|
17
17
|
- nextjs
|
|
18
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-next-15-template
|
|
19
|
+
youtubeVideo: https://www.youtube.com/watch?v=e_PPG7PTqGU
|
|
18
20
|
---
|
|
19
21
|
|
|
20
22
|
# Premiers pas pour internationaliser (i18n) avec Intlayer et Next.js 15 App Router
|
|
@@ -131,7 +133,7 @@ module.exports = config;
|
|
|
131
133
|
|
|
132
134
|
Configurez votre setup Next.js pour utiliser Intlayer :
|
|
133
135
|
|
|
134
|
-
```typescript
|
|
136
|
+
```typescript fileName="next.config.ts" codeFormat="typescript"
|
|
135
137
|
import type { NextConfig } from "next";
|
|
136
138
|
import { withIntlayer } from "next-intlayer/server";
|
|
137
139
|
|
|
@@ -13,7 +13,8 @@ keywords:
|
|
|
13
13
|
slugs:
|
|
14
14
|
- doc
|
|
15
15
|
- environment
|
|
16
|
-
- vite-and-
|
|
16
|
+
- vite-and-
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-preact-template
|
|
17
18
|
---
|
|
18
19
|
|
|
19
20
|
# Commencer l'internationalisation (i18n) avec Intlayer, Vite et Preact
|
|
@@ -43,17 +44,17 @@ Installez les paquets nécessaires avec npm :
|
|
|
43
44
|
|
|
44
45
|
```bash packageManager="npm"
|
|
45
46
|
npm install intlayer preact-intlayer
|
|
46
|
-
npm install --save-dev
|
|
47
|
+
npm install vite-intlayer --save-dev
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
```bash packageManager="pnpm"
|
|
50
51
|
pnpm add intlayer preact-intlayer
|
|
51
|
-
pnpm add --save-dev
|
|
52
|
+
pnpm add vite-intlayer --save-dev
|
|
52
53
|
```
|
|
53
54
|
|
|
54
55
|
```bash packageManager="yarn"
|
|
55
56
|
yarn add intlayer preact-intlayer
|
|
56
|
-
yarn add --save-dev
|
|
57
|
+
yarn add vite-intlayer --save-dev
|
|
57
58
|
```
|
|
58
59
|
|
|
59
60
|
- **intlayer**
|
|
@@ -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: Prise en main d'Intlayer avec Vite + React
|
|
5
|
+
description: Apprenez à ajouter l'internationalisation (i18n) à votre application Vite et React en utilisant Intlayer. Suivez ce guide pour rendre votre application multilingue.
|
|
6
6
|
keywords:
|
|
7
7
|
- Internationalisation
|
|
8
8
|
- Documentation
|
|
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---
|
|
20
|
+
|
|
21
|
+
# Prise en main de l'internationalisation (i18n) avec Intlayer, Vite et React
|
|
19
22
|
|
|
20
|
-
|
|
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"/>
|
|
21
24
|
|
|
22
|
-
Voir le [Modèle d'
|
|
25
|
+
Voir le [Modèle d'application](https://github.com/aymericzip/intlayer-vite-react-template) sur GitHub.
|
|
23
26
|
|
|
24
|
-
## Qu'est-ce
|
|
27
|
+
## Qu'est-ce qu'Intlayer ?
|
|
25
28
|
|
|
26
29
|
**Intlayer** est une bibliothèque d'internationalisation (i18n) innovante et open-source conçue pour simplifier la prise en charge multilingue dans les applications web modernes.
|
|
27
30
|
|
|
28
31
|
Avec Intlayer, vous pouvez :
|
|
29
32
|
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
33
|
-
- **
|
|
33
|
+
- **Gérez facilement les traductions** en utilisant des dictionnaires déclaratifs au niveau des composants.
|
|
34
|
+
- **Localisez dynamiquement les métadonnées**, les routes et le contenu.
|
|
35
|
+
- **Assurez la prise en charge de TypeScript** avec des types générés automatiquement, améliorant l'autocomplétion et la détection des erreurs.
|
|
36
|
+
- **Bénéficiez de fonctionnalités avancées**, comme la détection dynamique de la langue et le changement de locale.
|
|
34
37
|
|
|
35
38
|
---
|
|
36
39
|
|
|
@@ -38,32 +41,32 @@ Avec Intlayer, vous pouvez :
|
|
|
38
41
|
|
|
39
42
|
### Étape 1 : Installer les dépendances
|
|
40
43
|
|
|
41
|
-
Installez les paquets nécessaires
|
|
44
|
+
Installez les paquets nécessaires en utilisant 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
|
-
Le
|
|
63
|
+
Le paquet principal qui fournit des outils d'internationalisation pour la gestion de la configuration, la traduction, la [déclaration de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md), la transpilation, et les [commandes CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/intlayer_cli.md).
|
|
61
64
|
|
|
62
65
|
- **react-intlayer**
|
|
63
|
-
Le
|
|
66
|
+
Le paquet qui intègre Intlayer avec une application React. Il fournit des fournisseurs de contexte et des hooks pour l'internationalisation dans React.
|
|
64
67
|
|
|
65
68
|
- **vite-intlayer**
|
|
66
|
-
Inclut le plugin Vite pour intégrer Intlayer avec le [bundler Vite](https://vite.dev/guide/why.html#why-bundle-for-production), ainsi que
|
|
69
|
+
Inclut le plugin Vite pour intégrer Intlayer avec le [bundler Vite](https://vite.dev/guide/why.html#why-bundle-for-production), ainsi que des middlewares pour détecter la locale préférée de l'utilisateur, gérer les cookies, et gérer la redirection des URL.
|
|
67
70
|
|
|
68
71
|
### Étape 2 : Configuration de votre projet
|
|
69
72
|
|
|
@@ -78,7 +81,7 @@ const config: IntlayerConfig = {
|
|
|
78
81
|
Locales.ENGLISH,
|
|
79
82
|
Locales.FRENCH,
|
|
80
83
|
Locales.SPANISH,
|
|
81
|
-
// Vos autres
|
|
84
|
+
// Vos autres langues
|
|
82
85
|
],
|
|
83
86
|
defaultLocale: Locales.ENGLISH,
|
|
84
87
|
},
|
|
@@ -91,14 +94,13 @@ export default config;
|
|
|
91
94
|
import { Locales } from "intlayer";
|
|
92
95
|
|
|
93
96
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
94
|
-
// Configuration de l'internationalisation
|
|
95
97
|
const config = {
|
|
96
98
|
internationalization: {
|
|
97
99
|
locales: [
|
|
98
100
|
Locales.ENGLISH,
|
|
99
101
|
Locales.FRENCH,
|
|
100
102
|
Locales.SPANISH,
|
|
101
|
-
// Vos autres
|
|
103
|
+
// Vos autres langues
|
|
102
104
|
],
|
|
103
105
|
defaultLocale: Locales.ENGLISH,
|
|
104
106
|
},
|
|
@@ -111,14 +113,13 @@ export default config;
|
|
|
111
113
|
const { Locales } = require("intlayer");
|
|
112
114
|
|
|
113
115
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
114
|
-
// Configuration de l'internationalisation
|
|
115
116
|
const config = {
|
|
116
117
|
internationalization: {
|
|
117
118
|
locales: [
|
|
118
119
|
Locales.ENGLISH,
|
|
119
120
|
Locales.FRENCH,
|
|
120
121
|
Locales.SPANISH,
|
|
121
|
-
// Vos autres
|
|
122
|
+
// Vos autres langues
|
|
122
123
|
],
|
|
123
124
|
defaultLocale: Locales.ENGLISH,
|
|
124
125
|
},
|
|
@@ -127,7 +128,7 @@ const config = {
|
|
|
127
128
|
module.exports = config;
|
|
128
129
|
```
|
|
129
130
|
|
|
130
|
-
> Grâce à ce fichier de configuration, vous pouvez configurer des
|
|
131
|
+
> Grâce à ce fichier de configuration, vous pouvez configurer des URLs localisées, la redirection via middleware, les noms des cookies, l'emplacement et l'extension de vos déclarations de contenu, désactiver les logs Intlayer dans la console, et bien plus encore. Pour une liste complète des paramètres disponibles, consultez la [documentation de configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/configuration.md).
|
|
131
132
|
|
|
132
133
|
### Étape 3 : Intégrer Intlayer dans votre configuration Vite
|
|
133
134
|
|
|
@@ -329,7 +330,7 @@ const appContent = {
|
|
|
329
330
|
),
|
|
330
331
|
es: (
|
|
331
332
|
<>
|
|
332
|
-
|
|
333
|
+
Editez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
333
334
|
</>
|
|
334
335
|
),
|
|
335
336
|
},
|
|
@@ -345,7 +346,7 @@ const appContent = {
|
|
|
345
346
|
module.exports = appContent;
|
|
346
347
|
```
|
|
347
348
|
|
|
348
|
-
|
|
349
|
+
```json fileName="src/app.content.json" contentDeclarationFormat="json"
|
|
349
350
|
{
|
|
350
351
|
"$schema": "https://intlayer.org/schema.json",
|
|
351
352
|
"key": "app",
|
|
@@ -361,7 +362,7 @@ module.exports = appContent;
|
|
|
361
362
|
"reactLogo": {
|
|
362
363
|
"nodeType": "translation",
|
|
363
364
|
"translation": {
|
|
364
|
-
"en": "
|
|
365
|
+
"en": "React logo",
|
|
365
366
|
"fr": "Logo React",
|
|
366
367
|
"es": "Logo React"
|
|
367
368
|
}
|
|
@@ -393,6 +394,15 @@ module.exports = appContent;
|
|
|
393
394
|
"readTheDocs": {
|
|
394
395
|
"nodeType": "translation",
|
|
395
396
|
"translation": {
|
|
397
|
+
"en": "Click on the Vite and React logos to learn more",
|
|
398
|
+
"fr": "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
399
|
+
"es": "Haga clic en los logotipos de Vite y React para obtener más información"
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
```
|
|
405
|
+
|
|
396
406
|
> Vos déclarations de contenu peuvent être définies n'importe où dans votre application dès qu'elles sont incluses dans le répertoire `contentDir` (par défaut, `./src`). Et correspondent à l'extension de fichier de déclaration de contenu (par défaut, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
397
407
|
|
|
398
408
|
> Pour plus de détails, consultez la [documentation sur la déclaration de contenu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/get_started.md).
|
|
@@ -448,7 +458,7 @@ const App: FC = () => (
|
|
|
448
458
|
);
|
|
449
459
|
|
|
450
460
|
export default App;
|
|
451
|
-
|
|
461
|
+
```
|
|
452
462
|
|
|
453
463
|
```tsx {5,9} fileName="src/App.msx" codeFormat="esm"
|
|
454
464
|
import { useState } from "react";
|
|
@@ -606,7 +616,7 @@ const LocaleSwitcher = () => {
|
|
|
606
616
|
|
|
607
617
|
### (Optionnel) Étape 7 : Ajouter un routage localisé à votre application
|
|
608
618
|
|
|
609
|
-
|
|
619
|
+
L'objectif de cette étape est de créer des routes uniques pour chaque langue. Cela est utile pour le SEO et pour des URLs optimisées pour le référencement.
|
|
610
620
|
Exemple :
|
|
611
621
|
|
|
612
622
|
```plaintext
|
|
@@ -664,7 +674,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
|
|
|
664
674
|
return (
|
|
665
675
|
<Navigate
|
|
666
676
|
to={`/${defaultLocale}/${pathWithoutLocale}${search}`}
|
|
667
|
-
replace //
|
|
677
|
+
replace // Remplace l'entrée actuelle de l'historique par la nouvelle
|
|
668
678
|
/>
|
|
669
679
|
);
|
|
670
680
|
}
|
|
@@ -698,7 +708,7 @@ const AppLocalized: FC<PropsWithChildren<{ locale: Locales }>> = ({
|
|
|
698
708
|
};
|
|
699
709
|
|
|
700
710
|
/**
|
|
701
|
-
* Un composant de routeur qui configure les routes spécifiques à
|
|
711
|
+
* Un composant de routeur qui configure les routes spécifiques à chaque locale.
|
|
702
712
|
* Il utilise React Router pour gérer la navigation et rendre les composants localisés.
|
|
703
713
|
*/
|
|
704
714
|
export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => (
|
|
@@ -809,7 +819,7 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
809
819
|
};
|
|
810
820
|
|
|
811
821
|
/**
|
|
812
|
-
* Un composant
|
|
822
|
+
* Un composant routeur qui configure les routes spécifiques à chaque locale.
|
|
813
823
|
* Il utilise React Router pour gérer la navigation et rendre les composants localisés.
|
|
814
824
|
*/
|
|
815
825
|
export const LocaleRouter = ({ children }) => (
|
|
@@ -890,14 +900,14 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
890
900
|
);
|
|
891
901
|
}
|
|
892
902
|
|
|
893
|
-
// Envelopper les enfants avec IntlayerProvider et définir la locale
|
|
903
|
+
// Envelopper les enfants avec IntlayerProvider et définir la locale actuelle
|
|
894
904
|
return (
|
|
895
905
|
<IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider>
|
|
896
906
|
);
|
|
897
907
|
} else {
|
|
898
908
|
/**
|
|
899
909
|
* Lorsque middleware.prefixDefault est faux, la locale par défaut n'est pas préfixée.
|
|
900
|
-
* Assurez-vous que la locale
|
|
910
|
+
* Assurez-vous que la locale actuelle est valide et n'est pas la locale par défaut.
|
|
901
911
|
*/
|
|
902
912
|
if (
|
|
903
913
|
currentLocale.toString() !== defaultLocale.toString() &&
|
|
@@ -905,7 +915,7 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
905
915
|
.filter(
|
|
906
916
|
(locale) => locale.toString() !== defaultLocale.toString() // Exclure la locale par défaut
|
|
907
917
|
)
|
|
908
|
-
.includes(currentLocale) // Vérifier si la locale
|
|
918
|
+
.includes(currentLocale) // Vérifier si la locale actuelle est dans la liste des locales valides
|
|
909
919
|
) {
|
|
910
920
|
// Rediriger vers le chemin sans préfixe de locale
|
|
911
921
|
return <Navigate to={`${pathWithoutLocale}${search}`} replace />;
|
|
@@ -920,7 +930,7 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
920
930
|
|
|
921
931
|
/**
|
|
922
932
|
* Un composant de routeur qui configure des routes spécifiques à la locale.
|
|
923
|
-
* Il utilise React Router pour gérer la navigation et rendre
|
|
933
|
+
* Il utilise React Router pour gérer la navigation et rendre des composants localisés.
|
|
924
934
|
*/
|
|
925
935
|
const LocaleRouter = ({ children }) => (
|
|
926
936
|
<BrowserRouter>
|
|
@@ -931,7 +941,7 @@ const LocaleRouter = ({ children }) => (
|
|
|
931
941
|
)
|
|
932
942
|
.map((locale) => (
|
|
933
943
|
<Route
|
|
934
|
-
// Modèle de route pour capturer la locale (ex. /en/, /fr/) et correspondre à tous les chemins suivants
|
|
944
|
+
// Modèle de route pour capturer la locale (ex. : /en/, /fr/) et correspondre à tous les chemins suivants
|
|
935
945
|
path={`/${locale}/*`}
|
|
936
946
|
key={locale}
|
|
937
947
|
element={<AppLocalized locale={locale}>{children}</AppLocalized>} // Enveloppe les enfants avec la gestion de la locale
|
|
@@ -939,7 +949,7 @@ const LocaleRouter = ({ children }) => (
|
|
|
939
949
|
))}
|
|
940
950
|
|
|
941
951
|
{
|
|
942
|
-
// Si le préfixe
|
|
952
|
+
// Si le préfixe pour la locale par défaut est désactivé, rendre les enfants directement à la racine
|
|
943
953
|
!middleware.prefixDefault && (
|
|
944
954
|
<Route
|
|
945
955
|
path="*"
|
|
@@ -1028,9 +1038,9 @@ module.exports = defineConfig({
|
|
|
1028
1038
|
});
|
|
1029
1039
|
```
|
|
1030
1040
|
|
|
1031
|
-
### (Optionnel) Étape 8 : Modifier l
|
|
1041
|
+
### (Optionnel) Étape 8 : Modifier l'URL lorsque la langue change
|
|
1032
1042
|
|
|
1033
|
-
Pour modifier l
|
|
1043
|
+
Pour modifier l'URL lorsque la langue change, vous pouvez utiliser la propriété `onLocaleChange` fournie par le hook `useLocale`. Parallèlement, vous pouvez utiliser les hooks `useLocation` et `useNavigate` de `react-router-dom` pour mettre à jour le chemin de l'URL.
|
|
1034
1044
|
|
|
1035
1045
|
```tsx fileName="src/components/LocaleSwitcher.tsx" codeFormat="typescript"
|
|
1036
1046
|
import { useLocation, useNavigate } from "react-router-dom";
|
|
@@ -1044,7 +1054,7 @@ import { useLocale } from "react-intlayer";
|
|
|
1044
1054
|
import { type FC } from "react";
|
|
1045
1055
|
|
|
1046
1056
|
const LocaleSwitcher: FC = () => {
|
|
1047
|
-
const { pathname, search } = useLocation(); //
|
|
1057
|
+
const { pathname, search } = useLocation(); // Récupère le chemin URL actuel. Exemple : /fr/about?foo=bar
|
|
1048
1058
|
const navigate = useNavigate();
|
|
1049
1059
|
|
|
1050
1060
|
const { locale, availableLocales, setLocale } = useLocale({
|
|
@@ -1138,7 +1148,7 @@ const LocaleSwitcher = () => {
|
|
|
1138
1148
|
key={localeItem}
|
|
1139
1149
|
>
|
|
1140
1150
|
<span>
|
|
1141
|
-
{/*
|
|
1151
|
+
{/* Locale - ex. FR */}
|
|
1142
1152
|
{localeItem}
|
|
1143
1153
|
</span>
|
|
1144
1154
|
<span>
|
|
@@ -1146,7 +1156,7 @@ const LocaleSwitcher = () => {
|
|
|
1146
1156
|
{getLocaleName(localeItem, locale)}
|
|
1147
1157
|
</span>
|
|
1148
1158
|
<span dir={getHTMLTextDir(localeItem)} lang={localeItem}>
|
|
1149
|
-
{/* Langue dans la locale
|
|
1159
|
+
{/* Langue dans la locale actuelle - ex. Francés avec la locale actuelle définie sur Locales.SPANISH */}
|
|
1150
1160
|
{getLocaleName(localeItem)}
|
|
1151
1161
|
</span>
|
|
1152
1162
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
@@ -1214,7 +1224,7 @@ const LocaleSwitcher = () => {
|
|
|
1214
1224
|
{getLocaleName(localeItem)}
|
|
1215
1225
|
</span>
|
|
1216
1226
|
<span dir="ltr" lang={Locales.ENGLISH}>
|
|
1217
|
-
{/* Langue en anglais - par exemple
|
|
1227
|
+
{/* Langue en anglais - par exemple Français */}
|
|
1218
1228
|
{getLocaleName(localeItem, Locales.ENGLISH)}
|
|
1219
1229
|
</span>
|
|
1220
1230
|
</a>
|
|
@@ -1240,15 +1250,15 @@ Voici la **Étape 9** mise à jour avec des explications supplémentaires et des
|
|
|
1240
1250
|
|
|
1241
1251
|
---
|
|
1242
1252
|
|
|
1243
|
-
### (Optionnel) Étape 9 : Modifier les attributs
|
|
1253
|
+
### (Optionnel) Étape 9 : Modifier les attributs de langue et de direction du HTML
|
|
1244
1254
|
|
|
1245
|
-
Lorsque votre application prend en charge plusieurs langues, il est crucial de mettre à jour les attributs `lang` et `dir` de la balise `<html>` pour
|
|
1255
|
+
Lorsque votre application prend en charge plusieurs langues, il est crucial de mettre à jour les attributs `lang` et `dir` de la balise `<html>` pour qu'ils correspondent à la locale actuelle. Cela garantit :
|
|
1246
1256
|
|
|
1247
1257
|
- **Accessibilité** : Les lecteurs d'écran et les technologies d'assistance s'appuient sur l'attribut `lang` correct pour prononcer et interpréter le contenu avec précision.
|
|
1248
1258
|
- **Rendu du texte** : L'attribut `dir` (direction) assure que le texte est affiché dans le bon ordre (par exemple, de gauche à droite pour l'anglais, de droite à gauche pour l'arabe ou l'hébreu), ce qui est essentiel pour la lisibilité.
|
|
1249
1259
|
- **SEO** : Les moteurs de recherche utilisent l'attribut `lang` pour déterminer la langue de votre page, aidant ainsi à diffuser le contenu localisé approprié dans les résultats de recherche.
|
|
1250
1260
|
|
|
1251
|
-
En mettant à jour ces attributs
|
|
1261
|
+
En mettant à jour ces attributs de manière dynamique lorsque la locale change, vous garantissez une expérience cohérente et accessible pour les utilisateurs dans toutes les langues prises en charge.
|
|
1252
1262
|
|
|
1253
1263
|
#### Implémentation du Hook
|
|
1254
1264
|
|
|
@@ -1289,7 +1299,7 @@ import { getHTMLTextDir } from "intlayer";
|
|
|
1289
1299
|
* - `lang` : Informe les navigateurs et les moteurs de recherche de la langue de la page.
|
|
1290
1300
|
* - `dir` : Assure l'ordre de lecture correct (par exemple, 'ltr' pour l'anglais, 'rtl' pour l'arabe).
|
|
1291
1301
|
*
|
|
1292
|
-
* Cette mise à jour dynamique est essentielle pour un rendu correct du texte, l'accessibilité et le SEO.
|
|
1302
|
+
* Cette mise à jour dynamique est essentielle pour un rendu correct du texte, l'accessibilité et le référencement SEO.
|
|
1293
1303
|
*/
|
|
1294
1304
|
export const useI18nHTMLAttributes = () => {
|
|
1295
1305
|
const { locale } = useLocale();
|
|
@@ -1311,7 +1321,7 @@ const { getHTMLTextDir } = require("intlayer");
|
|
|
1311
1321
|
|
|
1312
1322
|
/**
|
|
1313
1323
|
* Met à jour les attributs `lang` et `dir` de l'élément HTML <html> en fonction de la locale courante.
|
|
1314
|
-
* - `lang` : Informe les navigateurs et moteurs de recherche de la langue de la page.
|
|
1324
|
+
* - `lang` : Informe les navigateurs et les moteurs de recherche de la langue de la page.
|
|
1315
1325
|
* - `dir` : Assure l'ordre de lecture correct (par exemple, 'ltr' pour l'anglais, 'rtl' pour l'arabe).
|
|
1316
1326
|
*
|
|
1317
1327
|
* Cette mise à jour dynamique est essentielle pour un rendu correct du texte, l'accessibilité et le SEO.
|
|
@@ -1342,7 +1352,7 @@ import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
|
1342
1352
|
import "./App.css";
|
|
1343
1353
|
|
|
1344
1354
|
const AppContent: FC = () => {
|
|
1345
|
-
// Appliquez le hook pour mettre à jour les attributs lang et dir de la balise <html>
|
|
1355
|
+
// Appliquez le hook pour mettre à jour les attributs lang et dir de la balise <html> en fonction de la locale.
|
|
1346
1356
|
useI18nHTMLAttributes();
|
|
1347
1357
|
|
|
1348
1358
|
// ... Le reste de votre composant
|
|
@@ -1402,12 +1412,13 @@ module.exports = App;
|
|
|
1402
1412
|
|
|
1403
1413
|
En appliquant ces modifications, votre application va :
|
|
1404
1414
|
|
|
1405
|
-
- Assurer que l'attribut **
|
|
1415
|
+
- Assurer que l'attribut **langue** (`lang`) reflète correctement la locale actuelle, ce qui est important pour le SEO et le comportement du navigateur.
|
|
1406
1416
|
- Ajuster la **direction du texte** (`dir`) selon la locale, améliorant la lisibilité et l'utilisabilité pour les langues avec des ordres de lecture différents.
|
|
1407
1417
|
- Fournir une expérience plus **accessible**, car les technologies d'assistance dépendent de ces attributs pour fonctionner de manière optimale.
|
|
1408
1418
|
|
|
1409
|
-
### (Optionnel) Étape 10 :
|
|
1419
|
+
### (Optionnel) Étape 10 : Créer un composant de lien localisé
|
|
1410
1420
|
|
|
1421
|
+
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
1411
1422
|
// Appliquer le hook pour mettre à jour les attributs lang et dir de la balise <html> en fonction de la locale.
|
|
1412
1423
|
useI18nHTMLAttributes();
|
|
1413
1424
|
|
|
@@ -1422,23 +1433,23 @@ const App = () => (
|
|
|
1422
1433
|
|
|
1423
1434
|
module.exports = App;
|
|
1424
1435
|
|
|
1425
|
-
|
|
1436
|
+
```
|
|
1426
1437
|
|
|
1427
1438
|
En appliquant ces modifications, votre application va :
|
|
1428
1439
|
|
|
1429
|
-
- S'assurer que l'attribut **
|
|
1430
|
-
- Ajuster la **direction du texte** (`dir`) selon la locale, améliorant
|
|
1440
|
+
- S'assurer que l'attribut **lang** reflète correctement la locale actuelle, ce qui est important pour le SEO et le comportement des navigateurs.
|
|
1441
|
+
- Ajuster la **direction du texte** (`dir`) selon la locale, améliorant la lisibilité et l'utilisabilité pour les langues avec des ordres de lecture différents.
|
|
1431
1442
|
- Offrir une expérience plus **accessible**, car les technologies d'assistance dépendent de ces attributs pour fonctionner de manière optimale.
|
|
1432
1443
|
|
|
1433
1444
|
### (Optionnel) Étape 10 : Créer un composant Link localisé
|
|
1434
1445
|
|
|
1435
|
-
Pour garantir que la navigation de votre application respecte la
|
|
1446
|
+
Pour garantir que la navigation de votre application respecte la locale actuelle, vous pouvez créer un composant `Link` personnalisé. Ce composant préfixe automatiquement les URL internes avec la langue courante. Par exemple, lorsqu’un utilisateur francophone clique sur un lien vers la page "À propos", il est redirigé vers `/fr/about` au lieu de `/about`.
|
|
1436
1447
|
|
|
1437
1448
|
Ce comportement est utile pour plusieurs raisons :
|
|
1438
1449
|
|
|
1439
|
-
- **SEO et expérience utilisateur** : Les URL localisées aident les moteurs de recherche à indexer correctement les pages spécifiques à une langue et fournissent aux utilisateurs
|
|
1440
|
-
- **Cohérence** : En utilisant un lien localisé dans toute votre application, vous garantissez que la navigation reste dans la
|
|
1441
|
-
- **Maintenabilité** : Centraliser la logique de localisation dans un seul composant simplifie la gestion des
|
|
1450
|
+
- **SEO et expérience utilisateur** : Les URL localisées aident les moteurs de recherche à indexer correctement les pages spécifiques à une langue et fournissent aux utilisateurs du contenu dans leur langue préférée.
|
|
1451
|
+
- **Cohérence** : En utilisant un lien localisé dans toute votre application, vous garantissez que la navigation reste dans la locale actuelle, évitant ainsi des changements de langue inattendus.
|
|
1452
|
+
- **Maintenabilité** : Centraliser la logique de localisation dans un seul composant simplifie la gestion des URL, rendant votre base de code plus facile à maintenir et à étendre à mesure que votre application grandit.
|
|
1442
1453
|
|
|
1443
1454
|
Voici l'implémentation d'un composant `Link` localisé en TypeScript :
|
|
1444
1455
|
|
|
@@ -1487,7 +1498,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
1487
1498
|
);
|
|
1488
1499
|
|
|
1489
1500
|
Link.displayName = "Link";
|
|
1490
|
-
|
|
1501
|
+
```
|
|
1491
1502
|
|
|
1492
1503
|
```jsx fileName="src/components/Link.mjx" codeFormat="esm"
|
|
1493
1504
|
import { getLocalizedUrl } from "intlayer";
|
|
@@ -1503,7 +1514,7 @@ export const checkIsExternalLink = (href?: string): boolean =>
|
|
|
1503
1514
|
|
|
1504
1515
|
/**
|
|
1505
1516
|
* Composant Link personnalisé qui adapte l'attribut href en fonction de la locale actuelle.
|
|
1506
|
-
* Pour les liens internes, il utilise `getLocalizedUrl` pour préfixer l'URL avec la locale (
|
|
1517
|
+
* Pour les liens internes, il utilise `getLocalizedUrl` pour préfixer l'URL avec la locale (ex. : /fr/about).
|
|
1507
1518
|
* Cela garantit que la navigation reste dans le même contexte de locale.
|
|
1508
1519
|
*/
|
|
1509
1520
|
export const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
@@ -1571,12 +1582,12 @@ Link.displayName = "Link";
|
|
|
1571
1582
|
Le hook `useLocale` fournit la locale actuelle (par exemple, `fr` pour le français).
|
|
1572
1583
|
|
|
1573
1584
|
- **Localisation de l'URL** :
|
|
1574
|
-
Pour les liens internes (c
|
|
1585
|
+
Pour les liens internes (c’est-à-dire non externes), `getLocalizedUrl` est utilisé pour préfixer automatiquement l'URL avec la locale courante. Cela signifie que si votre utilisateur est en français, passer `/about` comme `href` le transformera en `/fr/about`.
|
|
1575
1586
|
|
|
1576
1587
|
- **Retour du lien** :
|
|
1577
1588
|
Le composant retourne un élément `<a>` avec l’URL localisée, garantissant que la navigation est cohérente avec la locale.
|
|
1578
1589
|
|
|
1579
|
-
En intégrant ce composant `Link` dans toute votre application, vous maintenez une expérience utilisateur cohérente et adaptée à la langue tout en bénéficiant d’
|
|
1590
|
+
En intégrant ce composant `Link` dans toute votre application, vous maintenez une expérience utilisateur cohérente et adaptée à la langue tout en bénéficiant d’une meilleure SEO et d’une meilleure utilisabilité.
|
|
1580
1591
|
|
|
1581
1592
|
### Configurer TypeScript
|
|
1582
1593
|
|
|
@@ -1602,7 +1613,7 @@ Assurez-vous que votre configuration TypeScript inclut les types générés auto
|
|
|
1602
1613
|
|
|
1603
1614
|
Il est recommandé d'ignorer les fichiers générés par Intlayer. Cela vous permet d'éviter de les commettre dans votre dépôt Git.
|
|
1604
1615
|
|
|
1605
|
-
Pour ce faire, vous pouvez ajouter les instructions suivantes
|
|
1616
|
+
Pour ce faire, vous pouvez ajouter les instructions suivantes dans votre fichier `.gitignore` :
|
|
1606
1617
|
|
|
1607
1618
|
```plaintext
|
|
1608
1619
|
# Ignorer les fichiers générés par Intlayer
|
|
@@ -1615,7 +1626,7 @@ Pour améliorer votre expérience de développement avec Intlayer, vous pouvez i
|
|
|
1615
1626
|
|
|
1616
1627
|
[Installer depuis le Marketplace VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
1617
1628
|
|
|
1618
|
-
Cette extension
|
|
1629
|
+
Cette extension offre :
|
|
1619
1630
|
|
|
1620
1631
|
- **Autocomplétion** pour les clés de traduction.
|
|
1621
1632
|
- **Détection d'erreurs en temps réel** pour les traductions manquantes.
|
|
@@ -1632,6 +1643,6 @@ Pour aller plus loin, vous pouvez implémenter l’[éditeur visuel](https://git
|
|
|
1632
1643
|
|
|
1633
1644
|
---
|
|
1634
1645
|
|
|
1635
|
-
## Historique
|
|
1646
|
+
## Historique du document
|
|
1636
1647
|
|
|
1637
1648
|
- 5.5.10 - 2025-06-29 : Historique initial
|
|
@@ -14,6 +14,7 @@ slugs:
|
|
|
14
14
|
- doc
|
|
15
15
|
- environment
|
|
16
16
|
- vite-and-solid
|
|
17
|
+
# applicationTemplate: https://github.com/aymericzip/intlayer-vite-solid-template
|
|
17
18
|
---
|
|
18
19
|
|
|
19
20
|
# Commencer l'internationalisation (i18n) avec Intlayer, Vite et Solid
|
|
@@ -43,17 +44,17 @@ Installez les paquets nécessaires avec npm :
|
|
|
43
44
|
|
|
44
45
|
```bash packageManager="npm"
|
|
45
46
|
npm install intlayer solid-intlayer
|
|
46
|
-
npm install --save-dev
|
|
47
|
+
npm install vite-intlayer --save-dev
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
```bash packageManager="pnpm"
|
|
50
51
|
pnpm add intlayer solid-intlayer
|
|
51
|
-
pnpm add --save-dev
|
|
52
|
+
pnpm add vite-intlayer --save-dev
|
|
52
53
|
```
|
|
53
54
|
|
|
54
55
|
```bash packageManager="yarn"
|
|
55
56
|
yarn add intlayer solid-intlayer
|
|
56
|
-
yarn add --save-dev
|
|
57
|
+
yarn add vite-intlayer --save-dev
|
|
57
58
|
```
|
|
58
59
|
|
|
59
60
|
- **intlayer**
|
|
@@ -14,6 +14,7 @@ slugs:
|
|
|
14
14
|
- doc
|
|
15
15
|
- environment
|
|
16
16
|
- vite-and-svelte
|
|
17
|
+
# applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
|
|
17
18
|
---
|
|
18
19
|
|
|
19
20
|
# Commencer l'internationalisation (i18n) avec Intlayer, Vite et Svelte
|
|
@@ -43,17 +44,17 @@ Installez les paquets nécessaires avec npm :
|
|
|
43
44
|
|
|
44
45
|
```bash packageManager="npm"
|
|
45
46
|
npm install intlayer svelte-intlayer
|
|
46
|
-
npm install --save-dev
|
|
47
|
+
npm install vite-intlayer --save-dev
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
```bash packageManager="pnpm"
|
|
50
51
|
pnpm add intlayer svelte-intlayer
|
|
51
|
-
pnpm add --save-dev
|
|
52
|
+
pnpm add vite-intlayer --save-dev
|
|
52
53
|
```
|
|
53
54
|
|
|
54
55
|
```bash packageManager="yarn"
|
|
55
56
|
yarn add intlayer svelte-intlayer
|
|
56
|
-
yarn add --save-dev
|
|
57
|
+
yarn add vite-intlayer --save-dev
|
|
57
58
|
```
|
|
58
59
|
|
|
59
60
|
- **intlayer**
|