@intlayer/docs 5.5.11 → 5.5.12
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 +3 -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_with_vite+react.md +100 -108
- package/docs/de/intlayer_with_vite+react.md +121 -142
- package/docs/en/CI_CD.md +3 -1
- package/docs/en/autoFill.md +3 -1
- package/docs/en/configuration.md +4 -1
- 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 +3 -1
- package/docs/en/intlayer_cli.md +3 -1
- package/docs/en/intlayer_visual_editor.md +3 -1
- package/docs/en/intlayer_with_angular.md +3 -1
- package/docs/en/intlayer_with_create_react_app.md +3 -1
- package/docs/en/intlayer_with_express.md +3 -1
- package/docs/en/intlayer_with_lynx+react.md +3 -1
- package/docs/en/intlayer_with_nextjs_14.md +6 -1
- package/docs/en/intlayer_with_nextjs_15.md +5 -1
- package/docs/en/intlayer_with_nextjs_page_router.md +5 -1
- package/docs/en/intlayer_with_nuxt.md +3 -1
- package/docs/en/intlayer_with_react_native+expo.md +3 -1
- package/docs/en/intlayer_with_vite+preact.md +3 -1
- package/docs/en/intlayer_with_vite+react.md +9 -7
- package/docs/en/intlayer_with_vite+solid.md +3 -1
- package/docs/en/intlayer_with_vite+svelte.md +3 -1
- package/docs/en/intlayer_with_vite+vue.md +3 -1
- package/docs/en/introduction.md +3 -1
- package/docs/en/mcp_server.md +42 -1
- 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_with_vite+react.md +64 -83
- package/docs/es/intlayer_with_vite+react.md +91 -94
- package/docs/fr/intlayer_with_vite+react.md +73 -65
- package/docs/hi/intlayer_with_vite+react.md +107 -107
- package/docs/it/intlayer_with_vite+react.md +156 -112
- package/docs/ja/intlayer_with_vite+react.md +153 -218
- package/docs/ko/intlayer_with_vite+react.md +116 -148
- package/docs/ko/packages/intlayer/getLocalizedUrl.md +1 -23
- package/docs/pt/intlayer_with_vite+react.md +110 -132
- package/docs/ru/intlayer_with_vite+react.md +98 -83
- package/docs/zh/intlayer_with_vite+react.md +147 -184
- 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 +7 -6
- package/src/blog.ts +6 -4
- package/src/common.ts +23 -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
|
@@ -496,4 +496,6 @@ The `intlayer` package also provides some functions to help you to international
|
|
|
496
496
|
|
|
497
497
|
## Doc History
|
|
498
498
|
|
|
499
|
-
|
|
499
|
+
| Version | Date | Changes |
|
|
500
|
+
| ------- | ---------- | ------------ |
|
|
501
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -134,4 +134,6 @@ If your content is outlined, you can long-press it to display the edit drawer.
|
|
|
134
134
|
|
|
135
135
|
## Doc History
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
| Version | Date | Changes |
|
|
138
|
+
| ------- | ---------- | ------------ |
|
|
139
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -283,4 +283,6 @@ The `next-intlayer` package also provides some functions to help you to internat
|
|
|
283
283
|
|
|
284
284
|
## Doc History
|
|
285
285
|
|
|
286
|
-
|
|
286
|
+
| Version | Date | Changes |
|
|
287
|
+
| ------- | ---------- | ------------ |
|
|
288
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -349,4 +349,6 @@ For more detailed usage and advanced features, refer to the [next-intlayer docum
|
|
|
349
349
|
|
|
350
350
|
## Doc History
|
|
351
351
|
|
|
352
|
-
|
|
352
|
+
| Version | Date | Changes |
|
|
353
|
+
| ------- | ---------- | ------------ |
|
|
354
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -265,4 +265,6 @@ This documentation focuses on the integration of the `useDictionary` hook, provi
|
|
|
265
265
|
|
|
266
266
|
## Doc History
|
|
267
267
|
|
|
268
|
-
|
|
268
|
+
| Version | Date | Changes |
|
|
269
|
+
| ------- | ---------- | ------------ |
|
|
270
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -260,4 +260,6 @@ This documentation outlines the use of the `useIntlayer` hook specifically withi
|
|
|
260
260
|
|
|
261
261
|
## Doc History
|
|
262
262
|
|
|
263
|
-
|
|
263
|
+
| Version | Date | Changes |
|
|
264
|
+
| ------- | ---------- | ------------ |
|
|
265
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -234,4 +234,6 @@ Instructions for setting up content declaration files are available [here](https
|
|
|
234
234
|
|
|
235
235
|
## Doc History
|
|
236
236
|
|
|
237
|
-
|
|
237
|
+
| Version | Date | Changes |
|
|
238
|
+
| ------- | ---------- | ------------ |
|
|
239
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -128,4 +128,6 @@ The `useLocale` hook from `next-intlayer` is a crucial tool for managing locales
|
|
|
128
128
|
|
|
129
129
|
## Doc History
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
| Version | Date | Changes |
|
|
132
|
+
| ------- | ---------- | ------------ |
|
|
133
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -277,4 +277,6 @@ The `react-intlayer` package also provides some functions to help you to interna
|
|
|
277
277
|
|
|
278
278
|
## Doc History
|
|
279
279
|
|
|
280
|
-
|
|
280
|
+
| Version | Date | Changes |
|
|
281
|
+
| ------- | ---------- | ------------ |
|
|
282
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -299,4 +299,6 @@ For more detailed usage and advanced features, refer to the [react-intlayer docu
|
|
|
299
299
|
|
|
300
300
|
## Doc History
|
|
301
301
|
|
|
302
|
-
|
|
302
|
+
| Version | Date | Changes |
|
|
303
|
+
| ------- | ---------- | ------------ |
|
|
304
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -282,4 +282,6 @@ This documentation focuses on the integration of the `useDictionary` hook, provi
|
|
|
282
282
|
|
|
283
283
|
## Doc History
|
|
284
284
|
|
|
285
|
-
|
|
285
|
+
| Version | Date | Changes |
|
|
286
|
+
| ------- | ---------- | ------------ |
|
|
287
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -248,4 +248,6 @@ This section specifically targets the integration of the `useIntlayer` hook in R
|
|
|
248
248
|
|
|
249
249
|
## Doc History
|
|
250
250
|
|
|
251
|
-
|
|
251
|
+
| Version | Date | Changes |
|
|
252
|
+
| ------- | ---------- | ------------ |
|
|
253
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -249,4 +249,6 @@ Instructions for setting up content declaration files are available [here](https
|
|
|
249
249
|
|
|
250
250
|
## Doc History
|
|
251
251
|
|
|
252
|
-
|
|
252
|
+
| Version | Date | Changes |
|
|
253
|
+
| ------- | ---------- | ------------ |
|
|
254
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -207,4 +207,6 @@ The `useLocale` hook from `react-intlayer` is an essential tool for managing loc
|
|
|
207
207
|
|
|
208
208
|
## Doc History
|
|
209
209
|
|
|
210
|
-
|
|
210
|
+
| Version | Date | Changes |
|
|
211
|
+
| ------- | ---------- | ------------ |
|
|
212
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -316,4 +316,6 @@ Use the [intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/doc
|
|
|
316
316
|
|
|
317
317
|
## Doc History
|
|
318
318
|
|
|
319
|
-
|
|
319
|
+
| Version | Date | Changes |
|
|
320
|
+
| ------- | ---------- | ------------ |
|
|
321
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
package/docs/en/roadmap.md
CHANGED
|
@@ -333,5 +333,8 @@ Stay tuned for upcoming releases, and feel free to explore the existing features
|
|
|
333
333
|
|
|
334
334
|
## Doc History
|
|
335
335
|
|
|
336
|
-
|
|
337
|
-
|
|
336
|
+
| Version | Date | Changes |
|
|
337
|
+
| ------- | ---------- | --------------------------------------------------- |
|
|
338
|
+
| 5.5.10 | 2025-06-30 | Add Preact and Nuxt support, MCP Server, update CLI |
|
|
339
|
+
| 5.5.11 | 2025-06-29 | Add `docs` commands |
|
|
340
|
+
| 5.5.10 | 2025-06-29 | Init history |
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt:
|
|
4
|
-
title:
|
|
5
|
-
description:
|
|
2
|
+
createdAt: 2024-03-07
|
|
3
|
+
updatedAt: 2024-03-07
|
|
4
|
+
title: Getting Started with Intlayer in Vite + React
|
|
5
|
+
description: Learn how to add internationalisation (i18n) to your Vite and React application using Intlayer. Follow this guide to make your app multilingual.
|
|
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
|
-
-
|
|
17
|
+
- vite-and-react
|
|
18
18
|
---
|
|
19
19
|
|
|
20
20
|
# Getting Started Internationalising (i18n) with Intlayer and Vite and React
|
|
@@ -242,13 +242,13 @@ const appContent = {
|
|
|
242
242
|
key: "app",
|
|
243
243
|
content: {
|
|
244
244
|
viteLogo: t({
|
|
245
|
-
|
|
245
|
+
'en-GB': "Vite logo",
|
|
246
246
|
en: "Vite logo",
|
|
247
247
|
fr: "Logo Vite",
|
|
248
248
|
es: "Logo Vite",
|
|
249
249
|
}),
|
|
250
250
|
reactLogo: t({
|
|
251
|
-
|
|
251
|
+
'en-GB': "React logo",
|
|
252
252
|
en: "React logo",
|
|
253
253
|
fr: "Logo React",
|
|
254
254
|
es: "Logo React",
|
|
@@ -257,19 +257,24 @@ const appContent = {
|
|
|
257
257
|
title: "Vite + React",
|
|
258
258
|
|
|
259
259
|
count: t({
|
|
260
|
-
|
|
260
|
+
'en-GB': "count is ",
|
|
261
261
|
en: "count is ",
|
|
262
262
|
fr: "le compte est ",
|
|
263
263
|
es: "el recuento es ",
|
|
264
264
|
}),
|
|
265
265
|
|
|
266
|
-
edit:
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
266
|
+
edit: t<ReactNode>({
|
|
267
|
+
// Remember to import React if you use a React node in your content
|
|
268
|
+
'en-GB': (
|
|
269
|
+
<>
|
|
270
|
+
Edit <code>src/App.tsx</code> and save to test HMR
|
|
271
|
+
</>
|
|
272
|
+
),
|
|
273
|
+
en: (
|
|
274
|
+
<>
|
|
275
|
+
Edit <code>src/App.tsx</code> and save to test HMR
|
|
276
|
+
</>
|
|
277
|
+
),
|
|
273
278
|
Edit <code>src/App.tsx</code> and save to test HMR
|
|
274
279
|
</>
|
|
275
280
|
),
|
|
@@ -286,7 +291,7 @@ const appContent = {
|
|
|
286
291
|
},
|
|
287
292
|
|
|
288
293
|
readTheDocs: t({
|
|
289
|
-
|
|
294
|
+
'en-GB': "Click on the Vite and React logos to learn more",
|
|
290
295
|
en: "Click on the Vite and React logos to learn more",
|
|
291
296
|
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
292
297
|
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
@@ -306,11 +311,13 @@ const appContent = {
|
|
|
306
311
|
content: {
|
|
307
312
|
viteLogo: t({
|
|
308
313
|
"en-GB": "Vite logo",
|
|
314
|
+
en: "Vite logo",
|
|
309
315
|
fr: "Logo Vite",
|
|
310
316
|
es: "Logo Vite",
|
|
311
317
|
}),
|
|
312
318
|
reactLogo: t({
|
|
313
319
|
"en-GB": "React logo",
|
|
320
|
+
en: "React logo",
|
|
314
321
|
fr: "Logo React",
|
|
315
322
|
es: "Logo React",
|
|
316
323
|
}),
|
|
@@ -319,6 +326,7 @@ const appContent = {
|
|
|
319
326
|
|
|
320
327
|
count: t({
|
|
321
328
|
"en-GB": "count is ",
|
|
329
|
+
en: "count is ",
|
|
322
330
|
fr: "le compte est ",
|
|
323
331
|
es: "el recuento es ",
|
|
324
332
|
}),
|
|
@@ -333,6 +341,11 @@ const appContent = {
|
|
|
333
341
|
Edit <code>src/App.tsx</code> and save to test HMR
|
|
334
342
|
</>
|
|
335
343
|
),
|
|
344
|
+
en: (
|
|
345
|
+
<>
|
|
346
|
+
Edit <code>src/App.tsx</code> and save to test HMR
|
|
347
|
+
</>
|
|
348
|
+
),
|
|
336
349
|
fr: (
|
|
337
350
|
<>
|
|
338
351
|
Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR
|
|
@@ -347,6 +360,7 @@ const appContent = {
|
|
|
347
360
|
|
|
348
361
|
readTheDocs: t({
|
|
349
362
|
"en-GB": "Click on the Vite and React logos to learn more",
|
|
363
|
+
en: "Click on the Vite and React logos to learn more",
|
|
350
364
|
fr: "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
351
365
|
es: "Haga clic en los logotipos de Vite y React para obtener más información",
|
|
352
366
|
}),
|
|
@@ -365,6 +379,7 @@ module.exports = appContent;
|
|
|
365
379
|
"nodeType": "translation",
|
|
366
380
|
"translation": {
|
|
367
381
|
"en-GB": "Vite logo",
|
|
382
|
+
"en": "Vite logo",
|
|
368
383
|
"fr": "Logo Vite",
|
|
369
384
|
"es": "Logo Vite"
|
|
370
385
|
}
|
|
@@ -373,6 +388,7 @@ module.exports = appContent;
|
|
|
373
388
|
"nodeType": "translation",
|
|
374
389
|
"translation": {
|
|
375
390
|
"en-GB": "React logo",
|
|
391
|
+
"en": "React logo",
|
|
376
392
|
"fr": "Logo React",
|
|
377
393
|
"es": "Logo React"
|
|
378
394
|
}
|
|
@@ -381,6 +397,7 @@ module.exports = appContent;
|
|
|
381
397
|
"nodeType": "translation",
|
|
382
398
|
"translation": {
|
|
383
399
|
"en-GB": "Vite + React",
|
|
400
|
+
"en": "Vite + React",
|
|
384
401
|
"fr": "Vite + React",
|
|
385
402
|
"es": "Vite + React"
|
|
386
403
|
}
|
|
@@ -389,6 +406,7 @@ module.exports = appContent;
|
|
|
389
406
|
"nodeType": "translation",
|
|
390
407
|
"translation": {
|
|
391
408
|
"en-GB": "count is ",
|
|
409
|
+
"en": "count is ",
|
|
392
410
|
"fr": "le compte est ",
|
|
393
411
|
"es": "el recuento es "
|
|
394
412
|
}
|
|
@@ -397,6 +415,7 @@ module.exports = appContent;
|
|
|
397
415
|
"nodeType": "translation",
|
|
398
416
|
"translation": {
|
|
399
417
|
"en-GB": "Edit src/App.tsx and save to test HMR",
|
|
418
|
+
"en": "Edit src/App.tsx and save to test HMR",
|
|
400
419
|
"fr": "Éditez src/App.tsx et enregistrez pour tester HMR",
|
|
401
420
|
"es": "Edita src/App.tsx y guarda para probar HMR"
|
|
402
421
|
}
|
|
@@ -405,6 +424,7 @@ module.exports = appContent;
|
|
|
405
424
|
"nodeType": "translation",
|
|
406
425
|
"translation": {
|
|
407
426
|
"en-GB": "Click on the Vite and React logos to learn more",
|
|
427
|
+
"en": "Click on the Vite and React logos to learn more",
|
|
408
428
|
"fr": "Cliquez sur les logos Vite et React pour en savoir plus",
|
|
409
429
|
"es": "Haga clic en los logotipos de Vite y React para obtener más información"
|
|
410
430
|
}
|
|
@@ -413,7 +433,7 @@ module.exports = appContent;
|
|
|
413
433
|
}
|
|
414
434
|
```
|
|
415
435
|
|
|
416
|
-
> Your content declarations can be defined anywhere in your application as soon as they are included
|
|
436
|
+
> Your content declarations can be defined anywhere in your application as soon as they are included in the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
417
437
|
|
|
418
438
|
> For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/dictionary/get_started.md).
|
|
419
439
|
|
|
@@ -635,9 +655,9 @@ Example:
|
|
|
635
655
|
- https://example.com/fr/about
|
|
636
656
|
```
|
|
637
657
|
|
|
638
|
-
> By default, the routes are not prefixed for the default locale. If you
|
|
658
|
+
> By default, the routes are not prefixed for the default locale. If you want to prefix the default locale, you can set the `middleware.prefixDefault` option to `true` in your configuration. See the [configuration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/configuration.md) for more information.
|
|
639
659
|
|
|
640
|
-
To add localised routing to your application, you can create a `LocaleRouter` component that wraps your application's routes and
|
|
660
|
+
To add localised routing to your application, you can create a `LocaleRouter` component that wraps your application's routes and handles locale-based routing. Here is an example using [React Router](https://reactrouter.com/home):
|
|
641
661
|
|
|
642
662
|
```tsx fileName="src/components/LocaleRouter.tsx" codeFormat="typescript"
|
|
643
663
|
// Importing necessary dependencies and functions
|
|
@@ -772,6 +792,7 @@ const { locales, defaultLocale } = internationalization;
|
|
|
772
792
|
|
|
773
793
|
/**
|
|
774
794
|
* A component that handles localisation and wraps children with the appropriate locale context.
|
|
795
|
+
/**
|
|
775
796
|
* It manages URL-based locale detection and validation.
|
|
776
797
|
*/
|
|
777
798
|
const AppLocalized = ({ children, locale }) => {
|
|
@@ -807,7 +828,7 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
807
828
|
} else {
|
|
808
829
|
/**
|
|
809
830
|
* When middleware.prefixDefault is false, the default locale is not prefixed.
|
|
810
|
-
* Ensure that the current locale is valid and
|
|
831
|
+
* Ensure that the current locale is valid and not the default locale.
|
|
811
832
|
*/
|
|
812
833
|
if (
|
|
813
834
|
currentLocale.toString() !== defaultLocale.toString() &&
|
|
@@ -876,25 +897,6 @@ const {
|
|
|
876
897
|
useLocation,
|
|
877
898
|
} = require("react-router-dom"); // Router components for managing navigation
|
|
878
899
|
|
|
879
|
-
// Destructuring configuration from Intlayer
|
|
880
|
-
const { internationalisation, middleware } = configuration;
|
|
881
|
-
const { locales, defaultLocale } = internationalisation;
|
|
882
|
-
|
|
883
|
-
/**
|
|
884
|
-
* A component that handles localisation and wraps children with the appropriate locale context.
|
|
885
|
-
* It manages URL-based locale detection and validation.
|
|
886
|
-
*/
|
|
887
|
-
// Importing necessary dependencies and functions
|
|
888
|
-
const { configuration, getPathWithoutLocale } = require("intlayer"); // Utility functions and types from 'intlayer'
|
|
889
|
-
const { IntlayerProvider, useLocale } = require("react-intlayer"); // Provider for internationalisation context
|
|
890
|
-
const {
|
|
891
|
-
BrowserRouter,
|
|
892
|
-
Routes,
|
|
893
|
-
Route,
|
|
894
|
-
Navigate,
|
|
895
|
-
useLocation,
|
|
896
|
-
} = require("react-router-dom"); // Router components for managing navigation
|
|
897
|
-
|
|
898
900
|
// Destructuring configuration from Intlayer
|
|
899
901
|
const { internationalization, middleware } = configuration;
|
|
900
902
|
const { locales, defaultLocale } = internationalization;
|
|
@@ -936,7 +938,7 @@ const AppLocalized = ({ children, locale }) => {
|
|
|
936
938
|
} else {
|
|
937
939
|
/**
|
|
938
940
|
* When middleware.prefixDefault is false, the default locale is not prefixed.
|
|
939
|
-
* Ensure that the current locale is valid and
|
|
941
|
+
* Ensure that the current locale is valid and not the default locale.
|
|
940
942
|
*/
|
|
941
943
|
if (
|
|
942
944
|
currentLocale.toString() !== defaultLocale.toString() &&
|
|
@@ -1271,9 +1273,9 @@ const LocaleSwitcher = () => {
|
|
|
1271
1273
|
> - [`getLocalizedUrl` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/{{locale}}/packages/intlayer/getLocalizedUrl.md)
|
|
1272
1274
|
> - [`getHTMLTextDir` hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/packages/intlayer/getHTMLTextDir.md)
|
|
1273
1275
|
> - [`hrefLang` attribute](https://developers.google.com/search/docs/specialty/international/localized-versions?hl=fr)
|
|
1274
|
-
> - [`lang` attribute`](https://developer.mozilla.org/en-
|
|
1275
|
-
> - [`dir` attribute`](https://developer.mozilla.org/en-
|
|
1276
|
-
> - [`aria-current` attribute`](https://developer.mozilla.org/en-
|
|
1276
|
+
> - [`lang` attribute`](https://developer.mozilla.org/en-GB/docs/Web/HTML/Global_attributes/lang)
|
|
1277
|
+
> - [`dir` attribute`](https://developer.mozilla.org/en-GB/docs/Web/HTML/Global_attributes/dir)
|
|
1278
|
+
> - [`aria-current` attribute`](https://developer.mozilla.org/en-GB/docs/Web/Accessibility/ARIA/Attributes/aria-current)
|
|
1277
1279
|
|
|
1278
1280
|
Below is the updated **Step 9** with added explanations and refined code examples:
|
|
1279
1281
|
|
|
@@ -1285,7 +1287,7 @@ When your application supports multiple languages, it is crucial to update the `
|
|
|
1285
1287
|
|
|
1286
1288
|
- **Accessibility**: Screen readers and assistive technologies depend on the correct `lang` attribute to pronounce and interpret content accurately.
|
|
1287
1289
|
- **Text Rendering**: The `dir` (direction) attribute guarantees that text is rendered in the correct order (e.g., left-to-right for English, right-to-left for Arabic or Hebrew), which is essential for readability.
|
|
1288
|
-
- **SEO**: Search engines use the `lang` attribute to identify the language of your page,
|
|
1290
|
+
- **SEO**: Search engines use the `lang` attribute to identify the language of your page, helping to deliver the appropriate localised content in search results.
|
|
1289
1291
|
|
|
1290
1292
|
By updating these attributes dynamically when the locale changes, you guarantee a consistent and accessible experience for users across all supported languages.
|
|
1291
1293
|
|
|
@@ -1396,33 +1398,6 @@ const App: FC = () => (
|
|
|
1396
1398
|
export default App;
|
|
1397
1399
|
```
|
|
1398
1400
|
|
|
1399
|
-
````jsx fileName="src/App.msx" codeFormat="esm"
|
|
1400
|
-
#### Using the Hook in Your Application
|
|
1401
|
-
|
|
1402
|
-
Integrate the hook into your main component so that the HTML attributes update whenever the locale changes:
|
|
1403
|
-
|
|
1404
|
-
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
1405
|
-
import type { FC } from "react";
|
|
1406
|
-
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1407
|
-
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
1408
|
-
import "./App.css";
|
|
1409
|
-
|
|
1410
|
-
const AppContent: FC = () => {
|
|
1411
|
-
// Apply the hook to update the <html> tag's lang and dir attributes based on the locale.
|
|
1412
|
-
useI18nHTMLAttributes();
|
|
1413
|
-
|
|
1414
|
-
// ... Rest of your component
|
|
1415
|
-
};
|
|
1416
|
-
|
|
1417
|
-
const App: FC = () => (
|
|
1418
|
-
<IntlayerProvider>
|
|
1419
|
-
<AppContent />
|
|
1420
|
-
</IntlayerProvider>
|
|
1421
|
-
);
|
|
1422
|
-
|
|
1423
|
-
export default App;
|
|
1424
|
-
````
|
|
1425
|
-
|
|
1426
1401
|
```jsx fileName="src/App.msx" codeFormat="esm"
|
|
1427
1402
|
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1428
1403
|
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
@@ -1474,21 +1449,27 @@ By applying these changes, your application will:
|
|
|
1474
1449
|
|
|
1475
1450
|
### (Optional) Step 10: Creating a Localised Link Component
|
|
1476
1451
|
|
|
1477
|
-
|
|
1478
|
-
|
|
1452
|
+
```tsx fileName="src/App.tsx" codeFormat="typescript"
|
|
1453
|
+
import type { FC } from "react";
|
|
1454
|
+
import { IntlayerProvider, useIntlayer } from "react-intlayer";
|
|
1455
|
+
import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";
|
|
1456
|
+
import "./App.css";
|
|
1457
|
+
|
|
1458
|
+
const AppContent: FC = () => {
|
|
1459
|
+
// Apply the hook to update the <html> tag's lang and dir attributes based on the locale.
|
|
1460
|
+
useI18nHTMLAttributes();
|
|
1479
1461
|
|
|
1480
|
-
// ... Rest of your component
|
|
1462
|
+
// ... Rest of your component
|
|
1481
1463
|
};
|
|
1482
1464
|
|
|
1483
1465
|
const App = () => (
|
|
1484
|
-
<IntlayerProvider>
|
|
1485
|
-
<AppContent />
|
|
1486
|
-
</IntlayerProvider>
|
|
1466
|
+
<IntlayerProvider>
|
|
1467
|
+
<AppContent />
|
|
1468
|
+
</IntlayerProvider>
|
|
1487
1469
|
);
|
|
1488
1470
|
|
|
1489
1471
|
module.exports = App;
|
|
1490
|
-
|
|
1491
|
-
````
|
|
1472
|
+
```
|
|
1492
1473
|
|
|
1493
1474
|
By applying these changes, your application will:
|
|
1494
1475
|
|
|
@@ -1553,7 +1534,7 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
|
|
|
1553
1534
|
);
|
|
1554
1535
|
|
|
1555
1536
|
Link.displayName = "Link";
|
|
1556
|
-
|
|
1537
|
+
```
|
|
1557
1538
|
|
|
1558
1539
|
```jsx fileName="src/components/Link.mjx" codeFormat="esm"
|
|
1559
1540
|
import { getLocalizedUrl } from "intlayer";
|
|
@@ -1604,7 +1585,7 @@ const checkIsExternalLink = (href) => /^https?:\/\//.test(href ?? "");
|
|
|
1604
1585
|
/**
|
|
1605
1586
|
* A custom Link component that adapts the href attribute based on the current locale.
|
|
1606
1587
|
* For internal links, it uses `getLocalizedUrl` to prefix the URL with the locale (e.g., /fr/about).
|
|
1607
|
-
* This ensures that navigation
|
|
1588
|
+
* This ensures that navigation stays within the same locale context.
|
|
1608
1589
|
*/
|
|
1609
1590
|
const Link = forwardRef(({ href, children, ...props }, ref) => {
|
|
1610
1591
|
const { locale } = useLocale();
|
|
@@ -1642,7 +1623,7 @@ Link.displayName = "Link";
|
|
|
1642
1623
|
- **Returning the Link**:
|
|
1643
1624
|
The component returns an `<a>` element with the localised URL, ensuring that navigation is consistent with the locale.
|
|
1644
1625
|
|
|
1645
|
-
By integrating this `Link` component across your application, you maintain a coherent and language-aware user experience
|
|
1626
|
+
By integrating this `Link` component across your application, you maintain a coherent and language-aware user experience while also benefiting from improved SEO and usability.
|
|
1646
1627
|
|
|
1647
1628
|
### Configure TypeScript
|
|
1648
1629
|
|