@intlayer/docs 7.1.0-canary.2 → 7.1.1-canary.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/internationalization_and_SEO.md +0 -4
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/de/internationalization_and_SEO.md +0 -2
- package/blog/en/internationalization_and_SEO.md +0 -2
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/en-GB/internationalization_and_SEO.md +0 -2
- package/blog/es/internationalization_and_SEO.md +0 -4
- package/blog/fr/internationalization_and_SEO.md +0 -2
- package/blog/hi/internationalization_and_SEO.md +0 -2
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/it/internationalization_and_SEO.md +0 -2
- package/blog/ja/internationalization_and_SEO.md +0 -2
- package/blog/ko/internationalization_and_SEO.md +0 -2
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/pt/internationalization_and_SEO.md +0 -4
- package/blog/ru/internationalization_and_SEO.md +0 -4
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +2 -2
- package/blog/zh/internationalization_and_SEO.md +0 -4
- package/docs/ar/intlayer_with_nextjs_14.md +9 -9
- package/docs/ar/intlayer_with_nextjs_15.md +9 -8
- package/docs/ar/intlayer_with_nextjs_16.md +2 -56
- package/docs/ar/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/ar/intlayer_with_react_router_v7.md +6 -6
- package/docs/ar/intlayer_with_tanstack.md +46 -31
- package/docs/ar/intlayer_with_vite+preact.md +7 -7
- package/docs/ar/intlayer_with_vite+react.md +7 -7
- package/docs/ar/intlayer_with_vite+vue.md +9 -9
- package/docs/de/intlayer_with_nextjs_14.md +9 -9
- package/docs/de/intlayer_with_nextjs_15.md +9 -8
- package/docs/de/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/de/intlayer_with_react_router_v7.md +6 -6
- package/docs/de/intlayer_with_tanstack.md +46 -31
- package/docs/de/intlayer_with_vite+preact.md +7 -7
- package/docs/de/intlayer_with_vite+react.md +7 -7
- package/docs/de/intlayer_with_vite+vue.md +9 -9
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/en/intlayer_with_react_router_v7.md +6 -6
- package/docs/en/intlayer_with_tanstack.md +57 -33
- package/docs/en/intlayer_with_vite+preact.md +8 -8
- package/docs/en/intlayer_with_vite+react.md +8 -8
- package/docs/en/intlayer_with_vite+vue.md +8 -8
- package/docs/en/releases/v6.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +9 -9
- package/docs/en-GB/intlayer_with_nextjs_15.md +9 -8
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/en-GB/intlayer_with_react_router_v7.md +6 -6
- package/docs/en-GB/intlayer_with_tanstack.md +46 -31
- package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
- package/docs/en-GB/intlayer_with_vite+react.md +7 -7
- package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
- package/docs/es/intlayer_with_nextjs_14.md +9 -9
- package/docs/es/intlayer_with_nextjs_15.md +9 -8
- package/docs/es/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/es/intlayer_with_react_router_v7.md +6 -6
- package/docs/es/intlayer_with_tanstack.md +15 -10
- package/docs/es/intlayer_with_vite+preact.md +7 -7
- package/docs/es/intlayer_with_vite+react.md +7 -7
- package/docs/es/intlayer_with_vite+vue.md +9 -9
- package/docs/fr/intlayer_with_nextjs_14.md +9 -9
- package/docs/fr/intlayer_with_nextjs_15.md +9 -8
- package/docs/fr/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/fr/intlayer_with_react_router_v7.md +6 -6
- package/docs/fr/intlayer_with_tanstack.md +46 -31
- package/docs/fr/intlayer_with_vite+preact.md +7 -7
- package/docs/fr/intlayer_with_vite+react.md +7 -7
- package/docs/fr/intlayer_with_vite+vue.md +9 -9
- package/docs/hi/intlayer_with_nextjs_14.md +9 -9
- package/docs/hi/intlayer_with_nextjs_15.md +9 -8
- package/docs/hi/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/hi/intlayer_with_react_router_v7.md +6 -6
- package/docs/hi/intlayer_with_tanstack.md +15 -10
- package/docs/hi/intlayer_with_vite+preact.md +7 -7
- package/docs/hi/intlayer_with_vite+react.md +7 -7
- package/docs/hi/intlayer_with_vite+vue.md +9 -9
- package/docs/id/interest_of_intlayer.md +1 -1
- package/docs/id/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/id/intlayer_with_react_router_v7.md +6 -6
- package/docs/id/intlayer_with_tanstack.md +15 -10
- package/docs/id/intlayer_with_vite+preact.md +9 -9
- package/docs/id/intlayer_with_vite+react.md +8 -8
- package/docs/id/intlayer_with_vite+vue.md +8 -8
- package/docs/id/releases/v6.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +9 -9
- package/docs/it/intlayer_with_nextjs_15.md +9 -8
- package/docs/it/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/it/intlayer_with_react_router_v7.md +6 -6
- package/docs/it/intlayer_with_tanstack.md +46 -31
- package/docs/it/intlayer_with_vite+preact.md +7 -7
- package/docs/it/intlayer_with_vite+react.md +7 -7
- package/docs/it/intlayer_with_vite+vue.md +9 -9
- package/docs/ja/intlayer_with_nextjs_14.md +9 -9
- package/docs/ja/intlayer_with_nextjs_15.md +9 -8
- package/docs/ja/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/ja/intlayer_with_react_router_v7.md +6 -6
- package/docs/ja/intlayer_with_tanstack.md +16 -10
- package/docs/ja/intlayer_with_vite+preact.md +7 -7
- package/docs/ja/intlayer_with_vite+react.md +7 -7
- package/docs/ja/intlayer_with_vite+vue.md +9 -9
- package/docs/ko/intlayer_with_nextjs_14.md +9 -9
- package/docs/ko/intlayer_with_nextjs_15.md +9 -8
- package/docs/ko/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/ko/intlayer_with_react_router_v7.md +6 -6
- package/docs/ko/intlayer_with_tanstack.md +46 -31
- package/docs/ko/intlayer_with_vite+preact.md +7 -7
- package/docs/ko/intlayer_with_vite+react.md +7 -7
- package/docs/ko/intlayer_with_vite+vue.md +9 -9
- package/docs/pl/interest_of_intlayer.md +1 -1
- package/docs/pl/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/pl/intlayer_with_react_router_v7.md +6 -6
- package/docs/pl/intlayer_with_tanstack.md +15 -10
- package/docs/pl/intlayer_with_vite+preact.md +10 -10
- package/docs/pl/intlayer_with_vite+react.md +8 -8
- package/docs/pl/intlayer_with_vite+vue.md +8 -8
- package/docs/pl/releases/v6.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +9 -9
- package/docs/pt/intlayer_with_nextjs_15.md +9 -8
- package/docs/pt/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/pt/intlayer_with_react_router_v7.md +2 -2
- package/docs/pt/intlayer_with_tanstack.md +46 -31
- package/docs/pt/intlayer_with_vite+preact.md +7 -7
- package/docs/pt/intlayer_with_vite+react.md +7 -7
- package/docs/pt/intlayer_with_vite+vue.md +9 -9
- package/docs/ru/intlayer_with_nextjs_14.md +9 -9
- package/docs/ru/intlayer_with_nextjs_15.md +9 -8
- package/docs/ru/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/ru/intlayer_with_react_router_v7.md +6 -6
- package/docs/ru/intlayer_with_tanstack.md +15 -10
- package/docs/ru/intlayer_with_vite+preact.md +7 -7
- package/docs/ru/intlayer_with_vite+react.md +7 -7
- package/docs/ru/intlayer_with_vite+vue.md +9 -9
- package/docs/tr/interest_of_intlayer.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +9 -8
- package/docs/tr/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/tr/intlayer_with_react_router_v7.md +6 -6
- package/docs/tr/intlayer_with_tanstack.md +46 -31
- package/docs/tr/intlayer_with_vite+preact.md +8 -8
- package/docs/tr/intlayer_with_vite+react.md +8 -8
- package/docs/tr/intlayer_with_vite+vue.md +8 -8
- package/docs/vi/interest_of_intlayer.md +1 -1
- package/docs/vi/intlayer_with_nextjs_15.md +1 -0
- package/docs/vi/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/vi/intlayer_with_react_router_v7.md +6 -6
- package/docs/vi/intlayer_with_tanstack.md +46 -31
- package/docs/vi/intlayer_with_vite+preact.md +9 -9
- package/docs/vi/intlayer_with_vite+react.md +8 -8
- package/docs/vi/intlayer_with_vite+vue.md +8 -8
- package/docs/vi/releases/v6.md +1 -1
- package/docs/zh/intlayer_with_nextjs_14.md +9 -9
- package/docs/zh/intlayer_with_nextjs_15.md +9 -8
- package/docs/zh/intlayer_with_nextjs_page_router.md +7 -10
- package/docs/zh/intlayer_with_react_router_v7.md +6 -6
- package/docs/zh/intlayer_with_tanstack.md +14 -8
- package/docs/zh/intlayer_with_vite+preact.md +7 -7
- package/docs/zh/intlayer_with_vite+react.md +7 -7
- package/docs/zh/intlayer_with_vite+vue.md +7 -7
- package/frequent_questions/ar/domain_routing.md +1 -1
- package/frequent_questions/de/domain_routing.md +1 -1
- package/frequent_questions/en/domain_routing.md +1 -1
- package/frequent_questions/en/package_version_error.md +29 -1
- package/frequent_questions/en-GB/domain_routing.md +1 -1
- package/frequent_questions/es/domain_routing.md +1 -1
- package/frequent_questions/fr/domain_routing.md +1 -1
- package/frequent_questions/hi/domain_routing.md +1 -1
- package/frequent_questions/id/domain_routing.md +1 -1
- package/frequent_questions/it/domain_routing.md +1 -1
- package/frequent_questions/it/package_version_error.md +4 -4
- package/frequent_questions/ja/domain_routing.md +1 -1
- package/frequent_questions/ko/domain_routing.md +1 -1
- package/frequent_questions/pl/domain_routing.md +1 -1
- package/frequent_questions/pt/domain_routing.md +1 -1
- package/frequent_questions/ru/domain_routing.md +1 -1
- package/frequent_questions/tr/domain_routing.md +1 -1
- package/frequent_questions/vi/domain_routing.md +1 -1
- package/frequent_questions/zh/domain_routing.md +1 -1
- package/package.json +7 -14
|
@@ -676,38 +676,38 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
|
676
676
|
</template>
|
|
677
677
|
```
|
|
678
678
|
|
|
679
|
-
In parallel, you can also use the `
|
|
679
|
+
In parallel, you can also use the `intlayerProxy` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
|
|
680
680
|
|
|
681
681
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
682
682
|
import { defineConfig } from "vite";
|
|
683
683
|
import vue from "@vitejs/plugin-vue";
|
|
684
|
-
import { intlayer,
|
|
684
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
685
685
|
|
|
686
686
|
// https://vitejs.dev/config/
|
|
687
687
|
export default defineConfig({
|
|
688
|
-
plugins: [vue(), intlayer(),
|
|
688
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
689
689
|
});
|
|
690
690
|
```
|
|
691
691
|
|
|
692
692
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
693
693
|
import { defineConfig } from "vite";
|
|
694
694
|
import vue from "@vitejs/plugin-vue";
|
|
695
|
-
import { intlayer,
|
|
695
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
696
696
|
|
|
697
697
|
// https://vitejs.dev/config/
|
|
698
698
|
export default defineConfig({
|
|
699
|
-
plugins: [vue(), intlayer(),
|
|
699
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
700
700
|
});
|
|
701
701
|
```
|
|
702
702
|
|
|
703
703
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
704
704
|
const { defineConfig } = require("vite");
|
|
705
705
|
const vue = require("@vitejs/plugin-vue");
|
|
706
|
-
const { intlayer,
|
|
706
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
707
707
|
|
|
708
708
|
// https://vitejs.dev/config/
|
|
709
709
|
module.exports = defineConfig({
|
|
710
|
-
plugins: [vue(), intlayer(),
|
|
710
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
711
711
|
});
|
|
712
712
|
```
|
|
713
713
|
|
|
@@ -725,9 +725,9 @@ To automatically update the URL when the user changes the language, you can modi
|
|
|
725
725
|
</select>
|
|
726
726
|
</div>
|
|
727
727
|
const { defineConfig } = require("vite"); const vue =
|
|
728
|
-
require("@vitejs/plugin-vue"); const { intlayer,
|
|
728
|
+
require("@vitejs/plugin-vue"); const { intlayer, intlayerProxy } =
|
|
729
729
|
require("vite-intlayer"); // https://vitejs.dev/config/ module.exports =
|
|
730
|
-
defineConfig({ plugins: [vue(), intlayer(),
|
|
730
|
+
defineConfig({ plugins: [vue(), intlayer(), intlayerProxy()], });
|
|
731
731
|
</template>
|
|
732
732
|
```
|
|
733
733
|
|
|
@@ -1113,8 +1113,8 @@ import { type FC } from "react";
|
|
|
1113
1113
|
import Link from "next/link";
|
|
1114
1114
|
|
|
1115
1115
|
const LocaleSwitcher: FC = () => {
|
|
1116
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1117
|
-
|
|
1116
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1117
|
+
useLocale();
|
|
1118
1118
|
|
|
1119
1119
|
return (
|
|
1120
1120
|
<div>
|
|
@@ -1126,7 +1126,7 @@ const LocaleSwitcher: FC = () => {
|
|
|
1126
1126
|
hrefLang={localeItem}
|
|
1127
1127
|
key={localeItem}
|
|
1128
1128
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1129
|
-
onClick={() =>
|
|
1129
|
+
onClick={() => setLocale(localeItem)}
|
|
1130
1130
|
>
|
|
1131
1131
|
<span>
|
|
1132
1132
|
{/* Localización - p.ej. FR */}
|
|
@@ -1165,8 +1165,8 @@ import { useLocale } from "next-intlayer";
|
|
|
1165
1165
|
import Link from "next/link";
|
|
1166
1166
|
|
|
1167
1167
|
const LocaleSwitcher = () => {
|
|
1168
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1169
|
-
|
|
1168
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1169
|
+
useLocale();
|
|
1170
1170
|
|
|
1171
1171
|
return (
|
|
1172
1172
|
<div>
|
|
@@ -1178,7 +1178,7 @@ const LocaleSwitcher = () => {
|
|
|
1178
1178
|
hrefLang={localeItem}
|
|
1179
1179
|
key={localeItem}
|
|
1180
1180
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1181
|
-
onClick={() =>
|
|
1181
|
+
onClick={() => setLocale(localeItem)}
|
|
1182
1182
|
>
|
|
1183
1183
|
<span>
|
|
1184
1184
|
{/* Localidad - por ejemplo FR */}
|
|
@@ -1217,8 +1217,8 @@ const { useLocale } = require("next-intlayer");
|
|
|
1217
1217
|
const Link = require("next/link");
|
|
1218
1218
|
|
|
1219
1219
|
const LocaleSwitcher = () => {
|
|
1220
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1221
|
-
|
|
1220
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1221
|
+
useLocale();
|
|
1222
1222
|
|
|
1223
1223
|
return (
|
|
1224
1224
|
<div>
|
|
@@ -1230,7 +1230,7 @@ const LocaleSwitcher = () => {
|
|
|
1230
1230
|
hrefLang={localeItem}
|
|
1231
1231
|
key={localeItem}
|
|
1232
1232
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1233
|
-
onClick={() =>
|
|
1233
|
+
onClick={() => setLocale(localeItem)}
|
|
1234
1234
|
>
|
|
1235
1235
|
<span>
|
|
1236
1236
|
{/* Localidad - p. ej. FR */}
|
|
@@ -1151,8 +1151,8 @@ import { useLocale } from "next-intlayer";
|
|
|
1151
1151
|
import Link from "next/link";
|
|
1152
1152
|
|
|
1153
1153
|
export const LocaleSwitcher: FC = () => {
|
|
1154
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1155
|
-
|
|
1154
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1155
|
+
useLocale();
|
|
1156
1156
|
|
|
1157
1157
|
return (
|
|
1158
1158
|
<div>
|
|
@@ -1164,7 +1164,7 @@ export const LocaleSwitcher: FC = () => {
|
|
|
1164
1164
|
hrefLang={localeItem}
|
|
1165
1165
|
key={localeItem}
|
|
1166
1166
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1167
|
-
onClick={() =>
|
|
1167
|
+
onClick={() => setLocale(localeItem)}
|
|
1168
1168
|
>
|
|
1169
1169
|
<span>
|
|
1170
1170
|
{/* Localización - por ejemplo FR */}
|
|
@@ -1203,8 +1203,8 @@ import { useLocale } from "next-intlayer";
|
|
|
1203
1203
|
import Link from "next/link";
|
|
1204
1204
|
|
|
1205
1205
|
export const LocaleSwitcher = () => {
|
|
1206
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1207
|
-
|
|
1206
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1207
|
+
useLocale();
|
|
1208
1208
|
|
|
1209
1209
|
return (
|
|
1210
1210
|
<div>
|
|
@@ -1216,7 +1216,7 @@ export const LocaleSwitcher = () => {
|
|
|
1216
1216
|
hrefLang={localeItem}
|
|
1217
1217
|
key={localeItem}
|
|
1218
1218
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1219
|
-
onClick={() =>
|
|
1219
|
+
onClick={() => setLocale(localeItem)}
|
|
1220
1220
|
>
|
|
1221
1221
|
<span>
|
|
1222
1222
|
{/* Localización - por ejemplo FR */}
|
|
@@ -1255,7 +1255,8 @@ const { useLocale } = require("next-intlayer");
|
|
|
1255
1255
|
const Link = require("next/link");
|
|
1256
1256
|
|
|
1257
1257
|
export const LocaleSwitcher = () => {
|
|
1258
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1258
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1259
|
+
useLocale();
|
|
1259
1260
|
|
|
1260
1261
|
return (
|
|
1261
1262
|
<div>
|
|
@@ -1267,7 +1268,7 @@ export const LocaleSwitcher = () => {
|
|
|
1267
1268
|
hrefLang={localeItem}
|
|
1268
1269
|
key={localeItem}
|
|
1269
1270
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1270
|
-
onClick={() =>
|
|
1271
|
+
onClick={() => setLocale(localeItem)}
|
|
1271
1272
|
>
|
|
1272
1273
|
<span>
|
|
1273
1274
|
{/* Localización - por ejemplo, FR */}
|
|
@@ -151,7 +151,7 @@ export default withIntlayer(nextConfig);
|
|
|
151
151
|
Configura el middleware para detectar y manejar automáticamente el idioma preferido del usuario:
|
|
152
152
|
|
|
153
153
|
```typescript fileName="src/middleware.ts" codeFormat="typescript"
|
|
154
|
-
export {
|
|
154
|
+
export { intlayerProxy as middleware } from "next-intlayer/middleware";
|
|
155
155
|
|
|
156
156
|
export const config = {
|
|
157
157
|
matcher:
|
|
@@ -160,7 +160,7 @@ export const config = {
|
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
```javascript fileName="src/middleware.mjs" codeFormat="esm"
|
|
163
|
-
export {
|
|
163
|
+
export { intlayerProxy as middleware } from "next-intlayer/middleware";
|
|
164
164
|
|
|
165
165
|
export const config = {
|
|
166
166
|
matcher:
|
|
@@ -169,14 +169,14 @@ export const config = {
|
|
|
169
169
|
```
|
|
170
170
|
|
|
171
171
|
```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
|
|
172
|
-
const {
|
|
172
|
+
const { intlayerProxy } = require("next-intlayer/middleware");
|
|
173
173
|
|
|
174
174
|
const config = {
|
|
175
175
|
matcher:
|
|
176
176
|
"/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
|
|
177
177
|
};
|
|
178
178
|
|
|
179
|
-
module.exports = { middleware:
|
|
179
|
+
module.exports = { middleware: intlayerProxy, config };
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
> Adapte el parámetro `matcher` para que coincida con las rutas de su aplicación. Para más detalles, consulte la [documentación de Next.js sobre cómo configurar el matcher](https://nextjs.org/docs/app/building-your-application/routing/middleware).
|
|
@@ -1091,7 +1091,6 @@ import Link from "next/link";
|
|
|
1091
1091
|
|
|
1092
1092
|
const LocaleSwitcher: FC = () => {
|
|
1093
1093
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1094
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1095
1094
|
|
|
1096
1095
|
return (
|
|
1097
1096
|
<div>
|
|
@@ -1103,7 +1102,7 @@ const LocaleSwitcher: FC = () => {
|
|
|
1103
1102
|
hrefLang={localeItem}
|
|
1104
1103
|
key={localeItem}
|
|
1105
1104
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1106
|
-
onClick={() =>
|
|
1105
|
+
onClick={() => setLocale(localeItem)}
|
|
1107
1106
|
>
|
|
1108
1107
|
<span>
|
|
1109
1108
|
{/* Localización - por ejemplo FR */}
|
|
@@ -1141,7 +1140,6 @@ import Link from "next/link";
|
|
|
1141
1140
|
|
|
1142
1141
|
const LocaleSwitcher = () => {
|
|
1143
1142
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1144
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1145
1143
|
|
|
1146
1144
|
return (
|
|
1147
1145
|
<div>
|
|
@@ -1153,7 +1151,7 @@ const LocaleSwitcher = () => {
|
|
|
1153
1151
|
hrefLang={localeItem}
|
|
1154
1152
|
key={localeItem}
|
|
1155
1153
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1156
|
-
onClick={() =>
|
|
1154
|
+
onClick={() => setLocale(localeItem)}
|
|
1157
1155
|
>
|
|
1158
1156
|
<span>
|
|
1159
1157
|
{/* Localización - por ejemplo FR */}
|
|
@@ -1191,7 +1189,6 @@ const Link = require("next/link");
|
|
|
1191
1189
|
|
|
1192
1190
|
const LocaleSwitcher = () => {
|
|
1193
1191
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1194
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1195
1192
|
|
|
1196
1193
|
return (
|
|
1197
1194
|
<select>
|
|
@@ -1201,7 +1198,7 @@ const LocaleSwitcher = () => {
|
|
|
1201
1198
|
href={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
1202
1199
|
hrefLang={localeItem}
|
|
1203
1200
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1204
|
-
onClick={() =>
|
|
1201
|
+
onClick={() => setLocale(localeItem)}
|
|
1205
1202
|
>
|
|
1206
1203
|
<span>
|
|
1207
1204
|
{/* Localidad - por ejemplo, FR */}
|
|
@@ -319,7 +319,7 @@ import {
|
|
|
319
319
|
getLocalizedUrl,
|
|
320
320
|
getPathWithoutLocale,
|
|
321
321
|
} from "intlayer";
|
|
322
|
-
import {
|
|
322
|
+
import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
|
|
323
323
|
import { Link, useLocation } from "react-router";
|
|
324
324
|
|
|
325
325
|
export const LocaleSwitcher: FC = () => {
|
|
@@ -337,7 +337,7 @@ export const LocaleSwitcher: FC = () => {
|
|
|
337
337
|
<Link
|
|
338
338
|
aria-current={localeItem === locale ? "page" : undefined}
|
|
339
339
|
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeItem)}`}
|
|
340
|
-
onClick={() =>
|
|
340
|
+
onClick={() => setLocale(localeItem)}
|
|
341
341
|
to={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
342
342
|
>
|
|
343
343
|
<span>
|
|
@@ -406,18 +406,18 @@ export default function RootLayout() {
|
|
|
406
406
|
|
|
407
407
|
### Paso 11: Añadir middleware (Opcional)
|
|
408
408
|
|
|
409
|
-
También puedes usar el `
|
|
409
|
+
También puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
|
|
410
410
|
|
|
411
|
-
> Ten en cuenta que para usar el `
|
|
411
|
+
> Ten en cuenta que para usar el `intlayerProxy` en producción, necesitas cambiar el paquete `vite-intlayer` de `devDependencies` a `dependencies`.
|
|
412
412
|
|
|
413
413
|
```typescript {3,7} fileName="vite.config.ts"
|
|
414
414
|
import { defineConfig } from "vite";
|
|
415
415
|
import react from "@vitejs/plugin-react-swc";
|
|
416
|
-
import { intlayer,
|
|
416
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
417
417
|
|
|
418
418
|
// https://vitejs.dev/config/
|
|
419
419
|
export default defineConfig({
|
|
420
|
-
plugins: [react(), intlayer(),
|
|
420
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
421
421
|
});
|
|
422
422
|
```
|
|
423
423
|
|
|
@@ -234,12 +234,13 @@ type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
|
|
|
234
234
|
|
|
235
235
|
export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
|
|
236
236
|
const { locale } = useLocale();
|
|
237
|
+
const { localePrefix } = getPrefix(locale);
|
|
237
238
|
|
|
238
239
|
return (
|
|
239
240
|
<Link
|
|
240
241
|
{...props}
|
|
241
242
|
params={{
|
|
242
|
-
locale,
|
|
243
|
+
locale: localePrefix,
|
|
243
244
|
...(typeof props?.params === "object" ? props?.params : {}),
|
|
244
245
|
}}
|
|
245
246
|
to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
|
|
@@ -366,8 +367,13 @@ Crea un componente para permitir a los usuarios cambiar de idioma:
|
|
|
366
367
|
import type { FC } from "react";
|
|
367
368
|
|
|
368
369
|
import { useLocation } from "@tanstack/react-router";
|
|
369
|
-
import {
|
|
370
|
-
|
|
370
|
+
import {
|
|
371
|
+
getHTMLTextDir,
|
|
372
|
+
getLocaleName,
|
|
373
|
+
getPathWithoutLocale,
|
|
374
|
+
getPrefix,
|
|
375
|
+
} from "intlayer";
|
|
376
|
+
import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
|
|
371
377
|
|
|
372
378
|
import { LocalizedLink, To } from "./localized-link";
|
|
373
379
|
|
|
@@ -386,9 +392,8 @@ export const LocaleSwitcher: FC = () => {
|
|
|
386
392
|
<LocalizedLink
|
|
387
393
|
aria-current={localeEl === locale ? "page" : undefined}
|
|
388
394
|
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
|
|
389
|
-
onClick={() =>
|
|
390
|
-
params={{ locale: localeEl }}
|
|
391
|
-
to={pathWithoutLocale as To}
|
|
395
|
+
onClick={() => setLocaleInStorage(localeEl)}
|
|
396
|
+
params={{ locale: getPrefix(localeEl).localePrefix }}
|
|
392
397
|
>
|
|
393
398
|
<span>
|
|
394
399
|
{/* Localización - por ejemplo FR */}
|
|
@@ -466,15 +471,15 @@ function LayoutComponent() {
|
|
|
466
471
|
|
|
467
472
|
### Paso 11: Añadir middleware (Opcional)
|
|
468
473
|
|
|
469
|
-
También puedes usar el `
|
|
474
|
+
También puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
|
|
470
475
|
|
|
471
|
-
> Ten en cuenta que para usar el `
|
|
476
|
+
> Ten en cuenta que para usar el `intlayerProxy` en producción, necesitas cambiar el paquete `vite-intlayer` de `devDependencies` a `dependencies`.
|
|
472
477
|
|
|
473
478
|
```typescript {3,7} fileName="vite.config.ts"
|
|
474
479
|
import { reactRouter } from "@react-router/dev/vite";
|
|
475
480
|
import tailwindcss from "@tailwindcss/vite";
|
|
476
481
|
import { defineConfig } from "vite";
|
|
477
|
-
import { intlayer,
|
|
482
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
478
483
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
479
484
|
|
|
480
485
|
export default defineConfig({
|
|
@@ -483,7 +488,7 @@ export default defineConfig({
|
|
|
483
488
|
reactRouter(),
|
|
484
489
|
tsconfigPaths(),
|
|
485
490
|
intlayer(),
|
|
486
|
-
|
|
491
|
+
intlayerProxy(),
|
|
487
492
|
],
|
|
488
493
|
});
|
|
489
494
|
```
|
|
@@ -1059,38 +1059,38 @@ const App = () => (
|
|
|
1059
1059
|
module.exports = App;
|
|
1060
1060
|
```
|
|
1061
1061
|
|
|
1062
|
-
En paralelo, también puedes usar el `
|
|
1062
|
+
En paralelo, también puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional apropiada. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
|
|
1063
1063
|
|
|
1064
1064
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1065
1065
|
import { defineConfig } from "vite";
|
|
1066
1066
|
import preact from "@preact/preset-vite";
|
|
1067
|
-
import { intlayer,
|
|
1067
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1068
1068
|
|
|
1069
1069
|
// https://vitejs.dev/config/
|
|
1070
1070
|
export default defineConfig({
|
|
1071
|
-
plugins: [preact(), intlayer(),
|
|
1071
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1072
1072
|
});
|
|
1073
1073
|
```
|
|
1074
1074
|
|
|
1075
1075
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1076
1076
|
import { defineConfig } from "vite";
|
|
1077
1077
|
import preact from "@preact/preset-vite";
|
|
1078
|
-
import { intlayer,
|
|
1078
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1079
1079
|
|
|
1080
1080
|
// https://vitejs.dev/config/
|
|
1081
1081
|
export default defineConfig({
|
|
1082
|
-
plugins: [preact(), intlayer(),
|
|
1082
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1083
1083
|
});
|
|
1084
1084
|
```
|
|
1085
1085
|
|
|
1086
1086
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1087
1087
|
const { defineConfig } = require("vite");
|
|
1088
1088
|
const preact = require("@preact/preset-vite");
|
|
1089
|
-
const { intlayer,
|
|
1089
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1090
1090
|
|
|
1091
1091
|
// https://vitejs.dev/config/
|
|
1092
1092
|
module.exports = defineConfig({
|
|
1093
|
-
plugins: [preact(), intlayer(),
|
|
1093
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1094
1094
|
});
|
|
1095
1095
|
```
|
|
1096
1096
|
|
|
@@ -1012,38 +1012,38 @@ const App = () => (
|
|
|
1012
1012
|
);
|
|
1013
1013
|
```
|
|
1014
1014
|
|
|
1015
|
-
Paralelamente, también puedes usar el `
|
|
1015
|
+
Paralelamente, también puedes usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada basándose en las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
|
|
1016
1016
|
|
|
1017
1017
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1018
1018
|
import { defineConfig } from "vite";
|
|
1019
1019
|
import react from "@vitejs/plugin-react-swc";
|
|
1020
|
-
import { intlayer,
|
|
1020
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1021
1021
|
|
|
1022
1022
|
// https://vitejs.dev/config/
|
|
1023
1023
|
export default defineConfig({
|
|
1024
|
-
plugins: [react(), intlayer(),
|
|
1024
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1025
1025
|
});
|
|
1026
1026
|
```
|
|
1027
1027
|
|
|
1028
1028
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1029
1029
|
import { defineConfig } from "vite";
|
|
1030
1030
|
import react from "@vitejs/plugin-react-swc";
|
|
1031
|
-
import { intlayer,
|
|
1031
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1032
1032
|
|
|
1033
1033
|
// https://vitejs.dev/config/
|
|
1034
1034
|
export default defineConfig({
|
|
1035
|
-
plugins: [react(), intlayer(),
|
|
1035
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1036
1036
|
});
|
|
1037
1037
|
```
|
|
1038
1038
|
|
|
1039
1039
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1040
1040
|
const { defineConfig } = require("vite");
|
|
1041
1041
|
const react = require("@vitejs/plugin-react-swc");
|
|
1042
|
-
const { intlayer,
|
|
1042
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1043
1043
|
|
|
1044
1044
|
// https://vitejs.dev/config/
|
|
1045
1045
|
module.exports = defineConfig({
|
|
1046
|
-
plugins: [react(), intlayer(),
|
|
1046
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1047
1047
|
});
|
|
1048
1048
|
```
|
|
1049
1049
|
|
|
@@ -701,46 +701,46 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
|
701
701
|
</template>
|
|
702
702
|
```
|
|
703
703
|
|
|
704
|
-
Paralelamente, también puede usar el `
|
|
704
|
+
Paralelamente, también puede usar el `intlayerProxy` para agregar enrutamiento del lado del servidor a su aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada según las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.
|
|
705
705
|
|
|
706
706
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
707
707
|
import { defineConfig } from "vite";
|
|
708
708
|
import vue from "@vitejs/plugin-vue";
|
|
709
|
-
import { intlayer,
|
|
709
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
710
710
|
|
|
711
711
|
// https://vitejs.dev/config/
|
|
712
712
|
export default defineConfig({
|
|
713
|
-
plugins: [vue(), intlayer(),
|
|
713
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
714
714
|
});
|
|
715
715
|
```
|
|
716
716
|
|
|
717
717
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
718
718
|
import { defineConfig } from "vite";
|
|
719
719
|
import vue from "@vitejs/plugin-vue";
|
|
720
|
-
import { intlayer,
|
|
720
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
721
721
|
|
|
722
722
|
// https://vitejs.dev/config/
|
|
723
723
|
export default defineConfig({
|
|
724
|
-
plugins: [vue(), intlayer(),
|
|
724
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
725
725
|
});
|
|
726
726
|
```
|
|
727
727
|
|
|
728
728
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
729
729
|
const { defineConfig } = require("vite");
|
|
730
730
|
const vue = require("@vitejs/plugin-vue");
|
|
731
|
-
const { intlayer,
|
|
731
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
732
732
|
|
|
733
733
|
// https://vitejs.dev/config/
|
|
734
734
|
module.exports = defineConfig({
|
|
735
|
-
plugins: [vue(), intlayer(),
|
|
735
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
736
736
|
});
|
|
737
737
|
const { defineConfig } = require("vite");
|
|
738
738
|
const vue = require("@vitejs/plugin-vue");
|
|
739
|
-
const { intlayer,
|
|
739
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
740
740
|
|
|
741
741
|
// https://vitejs.dev/config/
|
|
742
742
|
module.exports = defineConfig({
|
|
743
|
-
plugins: [vue(), intlayer(),
|
|
743
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
744
744
|
});
|
|
745
745
|
```
|
|
746
746
|
|
|
@@ -914,8 +914,8 @@ import { type FC } from "react";
|
|
|
914
914
|
import Link from "next/link";
|
|
915
915
|
|
|
916
916
|
const LocaleSwitcher: FC = () => {
|
|
917
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
918
|
-
|
|
917
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
918
|
+
useLocale();
|
|
919
919
|
|
|
920
920
|
return (
|
|
921
921
|
<div>
|
|
@@ -927,7 +927,7 @@ const LocaleSwitcher: FC = () => {
|
|
|
927
927
|
hrefLang={localeItem}
|
|
928
928
|
key={localeItem}
|
|
929
929
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
930
|
-
onClick={() =>
|
|
930
|
+
onClick={() => setLocale(localeItem)}
|
|
931
931
|
>
|
|
932
932
|
<span>
|
|
933
933
|
{/* Langue - ex. FR */}
|
|
@@ -966,8 +966,8 @@ import { useLocale } from "next-intlayer";
|
|
|
966
966
|
import Link from "next/link";
|
|
967
967
|
|
|
968
968
|
const LocaleSwitcher = () => {
|
|
969
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
970
|
-
|
|
969
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
970
|
+
useLocale();
|
|
971
971
|
|
|
972
972
|
return (
|
|
973
973
|
<div>
|
|
@@ -979,7 +979,7 @@ const LocaleSwitcher = () => {
|
|
|
979
979
|
hrefLang={localeItem}
|
|
980
980
|
key={localeItem}
|
|
981
981
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
982
|
-
onClick={() =>
|
|
982
|
+
onClick={() => setLocale(localeItem)}
|
|
983
983
|
>
|
|
984
984
|
<span>
|
|
985
985
|
{/* Langue - ex. FR */}
|
|
@@ -1018,8 +1018,8 @@ const { useLocale } = require("next-intlayer");
|
|
|
1018
1018
|
const Link = require("next/link");
|
|
1019
1019
|
|
|
1020
1020
|
const LocaleSwitcher = () => {
|
|
1021
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1022
|
-
|
|
1021
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1022
|
+
useLocale();
|
|
1023
1023
|
|
|
1024
1024
|
return (
|
|
1025
1025
|
<div>
|
|
@@ -1031,7 +1031,7 @@ const LocaleSwitcher = () => {
|
|
|
1031
1031
|
hrefLang={localeItem}
|
|
1032
1032
|
key={localeItem}
|
|
1033
1033
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1034
|
-
onClick={() =>
|
|
1034
|
+
onClick={() => setLocale(localeItem)}
|
|
1035
1035
|
>
|
|
1036
1036
|
<span>
|
|
1037
1037
|
{/* Langue - ex. FR */}
|
|
@@ -1198,8 +1198,8 @@ import { useLocale } from "next-intlayer";
|
|
|
1198
1198
|
import Link from "next/link";
|
|
1199
1199
|
|
|
1200
1200
|
export const LocaleSwitcher: FC = () => {
|
|
1201
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1202
|
-
|
|
1201
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1202
|
+
useLocale();
|
|
1203
1203
|
|
|
1204
1204
|
return (
|
|
1205
1205
|
<div>
|
|
@@ -1211,7 +1211,7 @@ export const LocaleSwitcher: FC = () => {
|
|
|
1211
1211
|
hrefLang={localeItem}
|
|
1212
1212
|
key={localeItem}
|
|
1213
1213
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1214
|
-
onClick={() =>
|
|
1214
|
+
onClick={() => setLocale(localeItem)}
|
|
1215
1215
|
>
|
|
1216
1216
|
<span>
|
|
1217
1217
|
{/* Locale - par ex. FR */}
|
|
@@ -1250,8 +1250,8 @@ import { useLocale } from "next-intlayer";
|
|
|
1250
1250
|
import Link from "next/link";
|
|
1251
1251
|
|
|
1252
1252
|
export const LocaleSwitcher = () => {
|
|
1253
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1254
|
-
|
|
1253
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1254
|
+
useLocale();
|
|
1255
1255
|
|
|
1256
1256
|
return (
|
|
1257
1257
|
<div>
|
|
@@ -1263,7 +1263,7 @@ export const LocaleSwitcher = () => {
|
|
|
1263
1263
|
hrefLang={localeItem}
|
|
1264
1264
|
key={localeItem}
|
|
1265
1265
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1266
|
-
onClick={() =>
|
|
1266
|
+
onClick={() => setLocale(localeItem)}
|
|
1267
1267
|
>
|
|
1268
1268
|
<span>
|
|
1269
1269
|
{/* Locale - ex. FR */}
|
|
@@ -1302,7 +1302,8 @@ const { useLocale } = require("next-intlayer");
|
|
|
1302
1302
|
const Link = require("next/link");
|
|
1303
1303
|
|
|
1304
1304
|
export const LocaleSwitcher = () => {
|
|
1305
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1305
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1306
|
+
useLocale();
|
|
1306
1307
|
|
|
1307
1308
|
return (
|
|
1308
1309
|
<div>
|
|
@@ -1314,7 +1315,7 @@ export const LocaleSwitcher = () => {
|
|
|
1314
1315
|
hrefLang={localeItem}
|
|
1315
1316
|
key={localeItem}
|
|
1316
1317
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1317
|
-
onClick={() =>
|
|
1318
|
+
onClick={() => setLocale(localeItem)}
|
|
1318
1319
|
>
|
|
1319
1320
|
<span>
|
|
1320
1321
|
{/* Locale - ex. FR */}
|