@intlayer/docs 7.1.0 → 7.1.1-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/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
|
@@ -1085,45 +1085,45 @@ const App = () => (
|
|
|
1085
1085
|
module.exports = App;
|
|
1086
1086
|
```
|
|
1087
1087
|
|
|
1088
|
-
Równolegle możesz również użyć `
|
|
1088
|
+
Równolegle możesz również użyć `intlayerProxy`, aby dodać routing po stronie serwera do swojej aplikacji. Ten plugin automatycznie wykryje bieżący język na podstawie URL i ustawi odpowiedni cookie językowy. Jeśli nie zostanie określony żaden język, plugin wybierze najbardziej odpowiedni język na podstawie preferencji językowych przeglądarki użytkownika. Jeśli nie zostanie wykryty żaden język, nastąpi przekierowanie do domyślnego języka.
|
|
1089
1089
|
|
|
1090
|
-
> Uwaga: aby używać `
|
|
1090
|
+
> Uwaga: aby używać `intlayerProxy` w środowisku produkcyjnym, musisz przenieść pakiet `vite-intlayer` z `devDependencies` do `dependencies`.
|
|
1091
1091
|
|
|
1092
1092
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1093
1093
|
import { defineConfig } from "vite";
|
|
1094
1094
|
import preact from "@preact/preset-vite";
|
|
1095
|
-
import { intlayer,
|
|
1095
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1096
1096
|
|
|
1097
1097
|
typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1098
1098
|
import { defineConfig } from "vite";
|
|
1099
1099
|
import preact from "@preact/preset-vite";
|
|
1100
|
-
import { intlayer,
|
|
1100
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1101
1101
|
|
|
1102
1102
|
// https://vitejs.dev/config/
|
|
1103
1103
|
export default defineConfig({
|
|
1104
|
-
plugins: [preact(), intlayer(),
|
|
1104
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1105
1105
|
});
|
|
1106
1106
|
```
|
|
1107
1107
|
|
|
1108
1108
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1109
1109
|
import { defineConfig } from "vite";
|
|
1110
1110
|
import preact from "@preact/preset-vite";
|
|
1111
|
-
import { intlayer,
|
|
1111
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1112
1112
|
|
|
1113
1113
|
// https://vitejs.dev/config/
|
|
1114
1114
|
export default defineConfig({
|
|
1115
|
-
plugins: [preact(), intlayer(),
|
|
1115
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1116
1116
|
});
|
|
1117
1117
|
```
|
|
1118
1118
|
|
|
1119
1119
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1120
1120
|
const { defineConfig } = require("vite");
|
|
1121
1121
|
const preact = require("@preact/preset-vite");
|
|
1122
|
-
const { intlayer,
|
|
1122
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1123
1123
|
|
|
1124
1124
|
// https://vitejs.dev/config/
|
|
1125
1125
|
module.exports = defineConfig({
|
|
1126
|
-
plugins: [preact(), intlayer(),
|
|
1126
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1127
1127
|
});
|
|
1128
1128
|
```
|
|
1129
1129
|
|
|
@@ -1144,7 +1144,7 @@ import type { FunctionalComponent } from "preact";
|
|
|
1144
1144
|
|
|
1145
1145
|
const LocaleSwitcher: FunctionalComponent = () => {
|
|
1146
1146
|
const location = useLocation();
|
|
1147
|
-
plugins: [preact(), intlayer(),
|
|
1147
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1148
1148
|
});
|
|
1149
1149
|
```
|
|
1150
1150
|
|
|
@@ -807,40 +807,40 @@ const App = () => (
|
|
|
807
807
|
);
|
|
808
808
|
```
|
|
809
809
|
|
|
810
|
-
Równolegle możesz również użyć `
|
|
810
|
+
Równolegle możesz również użyć `intlayerProxy`, aby dodać routing po stronie serwera do swojej aplikacji. Ten plugin automatycznie wykryje bieżącą lokalizację na podstawie URL i ustawi odpowiedni cookie lokalizacji. Jeśli lokalizacja nie jest określona, plugin wybierze najbardziej odpowiednią lokalizację na podstawie preferencji językowych przeglądarki użytkownika. Jeśli żadna lokalizacja nie zostanie wykryta, nastąpi przekierowanie do domyślnej lokalizacji.
|
|
811
811
|
|
|
812
|
-
> Uwaga: aby używać `
|
|
812
|
+
> Uwaga: aby używać `intlayerProxy` w produkcji, musisz przenieść pakiet `vite-intlayer` z `devDependencies` do `dependencies`.
|
|
813
813
|
|
|
814
814
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
815
815
|
import { defineConfig } from "vite";
|
|
816
816
|
import react from "@vitejs/plugin-react-swc";
|
|
817
|
-
import { intlayer,
|
|
817
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
818
818
|
|
|
819
819
|
// https://vitejs.dev/config/
|
|
820
820
|
export default defineConfig({
|
|
821
|
-
plugins: [react(), intlayer(),
|
|
821
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
822
822
|
});
|
|
823
823
|
```
|
|
824
824
|
|
|
825
825
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
826
826
|
import { defineConfig } from "vite";
|
|
827
827
|
import react from "@vitejs/plugin-react-swc";
|
|
828
|
-
import { intlayer,
|
|
828
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
829
829
|
|
|
830
830
|
// https://vitejs.dev/config/
|
|
831
831
|
export default defineConfig({
|
|
832
|
-
plugins: [react(), intlayer(),
|
|
832
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
833
833
|
});
|
|
834
834
|
```
|
|
835
835
|
|
|
836
836
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
837
837
|
const { defineConfig } = require("vite");
|
|
838
838
|
const react = require("@vitejs/plugin-react-swc");
|
|
839
|
-
const { intlayer,
|
|
839
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
840
840
|
|
|
841
841
|
// https://vitejs.dev/config/
|
|
842
842
|
module.exports = defineConfig({
|
|
843
|
-
plugins: [react(), intlayer(),
|
|
843
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
844
844
|
});
|
|
845
845
|
```
|
|
846
846
|
|
|
@@ -705,40 +705,40 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
|
705
705
|
</template>
|
|
706
706
|
```
|
|
707
707
|
|
|
708
|
-
Równolegle możesz również użyć `
|
|
708
|
+
Równolegle możesz również użyć `intlayerProxy`, aby dodać routowanie po stronie serwera do swojej aplikacji. Ten plugin automatycznie wykryje bieżący język na podstawie URL i ustawi odpowiedni cookie językowy. Jeśli nie zostanie określony żaden język, plugin wybierze najbardziej odpowiedni język na podstawie preferencji językowych przeglądarki użytkownika. Jeśli nie zostanie wykryty żaden język, nastąpi przekierowanie do domyślnego języka.
|
|
709
709
|
|
|
710
|
-
> Zauważ, że aby używać `
|
|
710
|
+
> Zauważ, że aby używać `intlayerProxy` w produkcji, musisz przenieść pakiet `vite-intlayer` z `devDependencies` do `dependencies`.
|
|
711
711
|
|
|
712
712
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
713
713
|
import { defineConfig } from "vite";
|
|
714
714
|
import vue from "@vitejs/plugin-vue";
|
|
715
|
-
import { intlayer,
|
|
715
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
716
716
|
|
|
717
717
|
// https://vitejs.dev/config/
|
|
718
718
|
export default defineConfig({
|
|
719
|
-
plugins: [vue(), intlayer(),
|
|
719
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
720
720
|
});
|
|
721
721
|
```
|
|
722
722
|
|
|
723
723
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
724
724
|
import { defineConfig } from "vite";
|
|
725
725
|
import vue from "@vitejs/plugin-vue";
|
|
726
|
-
import { intlayer,
|
|
726
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
727
727
|
|
|
728
728
|
// https://vitejs.dev/config/
|
|
729
729
|
export default defineConfig({
|
|
730
|
-
plugins: [vue(), intlayer(),
|
|
730
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
731
731
|
});
|
|
732
732
|
```
|
|
733
733
|
|
|
734
734
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
735
735
|
const { defineConfig } = require("vite");
|
|
736
736
|
const vue = require("@vitejs/plugin-vue");
|
|
737
|
-
const { intlayer,
|
|
737
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
738
738
|
|
|
739
739
|
// https://vitejs.dev/config/
|
|
740
740
|
module.exports = defineConfig({
|
|
741
|
-
plugins: [vue(), intlayer(),
|
|
741
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
742
742
|
});
|
|
743
743
|
```
|
|
744
744
|
|
package/docs/pl/releases/v6.md
CHANGED
|
@@ -277,7 +277,7 @@ Aby to obejść, zrezygnowaliśmy z polecenia `intlayer watch`, używając opcji
|
|
|
277
277
|
- Zalecane jest użycie nowej globalnej opcji `content.autoFill` do masowego generowania brakujących tłumaczeń.
|
|
278
278
|
- Użyj `npx intlayer content test`, aby blokować PR-y z powodu brakujących tłumaczeń.
|
|
279
279
|
- Dla szczegółowej diagnostyki ustaw `log.mode = 'verbose'`.
|
|
280
|
-
- W konfiguracji Vite używaj `intlayer` zamiast `intlayerPlugin` oraz `
|
|
280
|
+
- W konfiguracji Vite używaj `intlayer` zamiast `intlayerPlugin` oraz `intlayerProxy` zamiast `intlayerProxyPlugin`.
|
|
281
281
|
|
|
282
282
|
---
|
|
283
283
|
|
|
@@ -928,8 +928,8 @@ import { type FC } from "react";
|
|
|
928
928
|
import Link from "next/link";
|
|
929
929
|
|
|
930
930
|
const LocaleSwitcher: FC = () => {
|
|
931
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
932
|
-
|
|
931
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
932
|
+
useLocale();
|
|
933
933
|
|
|
934
934
|
return (
|
|
935
935
|
<div>
|
|
@@ -941,7 +941,7 @@ const LocaleSwitcher: FC = () => {
|
|
|
941
941
|
hrefLang={localeItem}
|
|
942
942
|
key={localeItem}
|
|
943
943
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
944
|
-
onClick={() =>
|
|
944
|
+
onClick={() => setLocale(localeItem)}
|
|
945
945
|
>
|
|
946
946
|
<span>
|
|
947
947
|
{/* Localidade - ex.: FR */}
|
|
@@ -980,8 +980,8 @@ import { useLocale } from "next-intlayer";
|
|
|
980
980
|
import Link from "next/link";
|
|
981
981
|
|
|
982
982
|
const LocaleSwitcher = () => {
|
|
983
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
984
|
-
|
|
983
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
984
|
+
useLocale();
|
|
985
985
|
|
|
986
986
|
return (
|
|
987
987
|
<div>
|
|
@@ -993,7 +993,7 @@ const LocaleSwitcher = () => {
|
|
|
993
993
|
hrefLang={localeItem}
|
|
994
994
|
key={localeItem}
|
|
995
995
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
996
|
-
onClick={() =>
|
|
996
|
+
onClick={() => setLocale(localeItem)}
|
|
997
997
|
>
|
|
998
998
|
<span>
|
|
999
999
|
{/* Localidade - ex.: FR */}
|
|
@@ -1032,8 +1032,8 @@ const { useLocale } = require("next-intlayer");
|
|
|
1032
1032
|
const Link = require("next/link");
|
|
1033
1033
|
|
|
1034
1034
|
const LocaleSwitcher = () => {
|
|
1035
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1036
|
-
|
|
1035
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1036
|
+
useLocale();
|
|
1037
1037
|
|
|
1038
1038
|
return (
|
|
1039
1039
|
<div>
|
|
@@ -1045,7 +1045,7 @@ const LocaleSwitcher = () => {
|
|
|
1045
1045
|
hrefLang={localeItem}
|
|
1046
1046
|
key={localeItem}
|
|
1047
1047
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1048
|
-
onClick={() =>
|
|
1048
|
+
onClick={() => setLocale(localeItem)}
|
|
1049
1049
|
>
|
|
1050
1050
|
<span>
|
|
1051
1051
|
{/* Localidade - ex.: FR */}
|
|
@@ -1159,8 +1159,8 @@ import { useLocale } from "next-intlayer";
|
|
|
1159
1159
|
import Link from "next/link";
|
|
1160
1160
|
|
|
1161
1161
|
export const LocaleSwitcher: FC = () => {
|
|
1162
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1163
|
-
|
|
1162
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1163
|
+
useLocale();
|
|
1164
1164
|
|
|
1165
1165
|
return (
|
|
1166
1166
|
<div>
|
|
@@ -1172,7 +1172,7 @@ export const LocaleSwitcher: FC = () => {
|
|
|
1172
1172
|
hrefLang={localeItem}
|
|
1173
1173
|
key={localeItem}
|
|
1174
1174
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1175
|
-
onClick={() =>
|
|
1175
|
+
onClick={() => setLocale(localeItem)}
|
|
1176
1176
|
>
|
|
1177
1177
|
<span>
|
|
1178
1178
|
{/* Local - ex. FR */}
|
|
@@ -1211,8 +1211,8 @@ import { useLocale } from "next-intlayer";
|
|
|
1211
1211
|
import Link from "next/link";
|
|
1212
1212
|
|
|
1213
1213
|
export const LocaleSwitcher = () => {
|
|
1214
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1215
|
-
|
|
1214
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1215
|
+
useLocale();
|
|
1216
1216
|
|
|
1217
1217
|
return (
|
|
1218
1218
|
<div>
|
|
@@ -1224,7 +1224,7 @@ export const LocaleSwitcher = () => {
|
|
|
1224
1224
|
hrefLang={localeItem}
|
|
1225
1225
|
key={localeItem}
|
|
1226
1226
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1227
|
-
onClick={() =>
|
|
1227
|
+
onClick={() => setLocale(localeItem)}
|
|
1228
1228
|
>
|
|
1229
1229
|
<span>
|
|
1230
1230
|
{/* Local - ex. FR */}
|
|
@@ -1263,7 +1263,8 @@ const { useLocale } = require("next-intlayer");
|
|
|
1263
1263
|
const Link = require("next/link");
|
|
1264
1264
|
|
|
1265
1265
|
export const LocaleSwitcher = () => {
|
|
1266
|
-
const { locale, pathWithoutLocale, availableLocales } =
|
|
1266
|
+
const { locale, pathWithoutLocale, availableLocales, setLocale } =
|
|
1267
|
+
useLocale();
|
|
1267
1268
|
|
|
1268
1269
|
return (
|
|
1269
1270
|
<div>
|
|
@@ -1275,7 +1276,7 @@ export const LocaleSwitcher = () => {
|
|
|
1275
1276
|
hrefLang={localeItem}
|
|
1276
1277
|
key={localeItem}
|
|
1277
1278
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1278
|
-
onClick={() =>
|
|
1279
|
+
onClick={() => setLocale(localeItem)}
|
|
1279
1280
|
>
|
|
1280
1281
|
<span>
|
|
1281
1282
|
{/* Localidade - ex. FR */}
|
|
@@ -151,7 +151,7 @@ export default withIntlayer(nextConfig);
|
|
|
151
151
|
Configure o middleware para detectar e tratar automaticamente a localidade preferida do usuário:
|
|
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 o parâmetro `matcher` para corresponder às rotas da sua aplicação. Para mais detalhes, consulte a [documentação do Next.js sobre configuração do matcher](https://nextjs.org/docs/app/building-your-application/routing/middleware).
|
|
@@ -1130,7 +1130,6 @@ import Link from "next/link";
|
|
|
1130
1130
|
|
|
1131
1131
|
const LocaleSwitcher: FC = () => {
|
|
1132
1132
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1133
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1134
1133
|
|
|
1135
1134
|
return (
|
|
1136
1135
|
<div>
|
|
@@ -1142,7 +1141,7 @@ const LocaleSwitcher: FC = () => {
|
|
|
1142
1141
|
hrefLang={localeItem}
|
|
1143
1142
|
key={localeItem}
|
|
1144
1143
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1145
|
-
onClick={() =>
|
|
1144
|
+
onClick={() => setLocale(localeItem)}
|
|
1146
1145
|
>
|
|
1147
1146
|
<span>
|
|
1148
1147
|
{/* Local - ex. FR */}
|
|
@@ -1180,7 +1179,6 @@ import Link from "next/link";
|
|
|
1180
1179
|
|
|
1181
1180
|
const LocaleSwitcher = () => {
|
|
1182
1181
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1183
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1184
1182
|
|
|
1185
1183
|
return (
|
|
1186
1184
|
<div>
|
|
@@ -1192,7 +1190,7 @@ const LocaleSwitcher = () => {
|
|
|
1192
1190
|
hrefLang={localeItem}
|
|
1193
1191
|
key={localeItem}
|
|
1194
1192
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1195
|
-
onClick={() =>
|
|
1193
|
+
onClick={() => setLocale(localeItem)}
|
|
1196
1194
|
>
|
|
1197
1195
|
<span>
|
|
1198
1196
|
{/* Localidade - ex: FR */}
|
|
@@ -1230,7 +1228,6 @@ const Link = require("next/link");
|
|
|
1230
1228
|
|
|
1231
1229
|
const LocaleSwitcher = () => {
|
|
1232
1230
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1233
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1234
1231
|
|
|
1235
1232
|
return (
|
|
1236
1233
|
<select>
|
|
@@ -1240,7 +1237,7 @@ const LocaleSwitcher = () => {
|
|
|
1240
1237
|
href={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
1241
1238
|
hrefLang={localeItem}
|
|
1242
1239
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1243
|
-
onClick={() =>
|
|
1240
|
+
onClick={() => setLocale(localeItem)}
|
|
1244
1241
|
>
|
|
1245
1242
|
<span>
|
|
1246
1243
|
{/* Localidade - ex: FR */}
|
|
@@ -151,11 +151,11 @@ Adicione o plugin intlayer na sua configuração:
|
|
|
151
151
|
```typescript fileName="vite.config.ts" codeFormat="typescript"
|
|
152
152
|
import { reactRouter } from "@react-router/dev/vite";
|
|
153
153
|
import { defineConfig } from "vite";
|
|
154
|
-
import {
|
|
154
|
+
import { intlayerProxy, intlayer } from "vite-intlayer";
|
|
155
155
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
156
156
|
|
|
157
157
|
export default defineConfig({
|
|
158
|
-
plugins: [reactRouter(), tsconfigPaths(), intlayer(),
|
|
158
|
+
plugins: [reactRouter(), tsconfigPaths(), intlayer(), intlayerProxy()],
|
|
159
159
|
});
|
|
160
160
|
```
|
|
161
161
|
|
|
@@ -202,6 +202,7 @@ import type { FC } from "react";
|
|
|
202
202
|
|
|
203
203
|
import { Link, type LinkComponentProps } from "@tanstack/react-router";
|
|
204
204
|
import { useLocale } from "react-intlayer";
|
|
205
|
+
import { getPrefix } from "intlayer";
|
|
205
206
|
|
|
206
207
|
export const LOCALE_ROUTE = "{-$locale}" as const;
|
|
207
208
|
|
|
@@ -231,12 +232,13 @@ type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
|
|
|
231
232
|
|
|
232
233
|
export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
|
|
233
234
|
const { locale } = useLocale();
|
|
235
|
+
const { localePrefix } = getPrefix(locale);
|
|
234
236
|
|
|
235
237
|
return (
|
|
236
238
|
<Link
|
|
237
239
|
{...props}
|
|
238
240
|
params={{
|
|
239
|
-
locale,
|
|
241
|
+
locale: localePrefix,
|
|
240
242
|
...(typeof props?.params === "object" ? props?.params : {}),
|
|
241
243
|
}}
|
|
242
244
|
to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
|
|
@@ -253,43 +255,52 @@ Este componente tem dois objetivos:
|
|
|
253
255
|
Então, podemos criar um hook `useLocalizedNavigate` para navegação programática:
|
|
254
256
|
|
|
255
257
|
```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
|
|
256
|
-
import { useLocale } from "react-intlayer";
|
|
257
258
|
import { useNavigate } from "@tanstack/react-router";
|
|
259
|
+
import { getPrefix } from "intlayer";
|
|
260
|
+
import { useLocale } from "react-intlayer";
|
|
258
261
|
import { LOCALE_ROUTE } from "@/components/localized-link";
|
|
259
262
|
import type { FileRouteTypes } from "@/routeTree.gen";
|
|
260
263
|
|
|
264
|
+
type StripLocalePrefix<T extends string> = T extends
|
|
265
|
+
| `/${typeof LOCALE_ROUTE}`
|
|
266
|
+
| `/${typeof LOCALE_ROUTE}/`
|
|
267
|
+
? "/"
|
|
268
|
+
: T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
|
|
269
|
+
? `/${Rest}`
|
|
270
|
+
: never;
|
|
271
|
+
|
|
272
|
+
type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
|
|
273
|
+
|
|
274
|
+
type LocalizedNavigate = {
|
|
275
|
+
(to: LocalizedTo): ReturnType<ReturnType<typeof useNavigate>>;
|
|
276
|
+
(
|
|
277
|
+
opts: { to: LocalizedTo } & Record<string, unknown>
|
|
278
|
+
): ReturnType<ReturnType<typeof useNavigate>>;
|
|
279
|
+
};
|
|
280
|
+
|
|
261
281
|
export const useLocalizedNavigate = () => {
|
|
262
282
|
const navigate = useNavigate();
|
|
263
283
|
|
|
264
284
|
const { locale } = useLocale();
|
|
265
285
|
|
|
266
|
-
type StripLocalePrefix<T extends string> = T extends
|
|
267
|
-
| `/${typeof LOCALE_ROUTE}`
|
|
268
|
-
| `/${typeof LOCALE_ROUTE}/`
|
|
269
|
-
? "/"
|
|
270
|
-
: T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
|
|
271
|
-
? `/${Rest}`
|
|
272
|
-
: never;
|
|
273
|
-
|
|
274
|
-
type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
|
|
275
|
-
|
|
276
|
-
interface LocalizedNavigate {
|
|
277
|
-
(to: LocalizedTo): ReturnType<typeof navigate>;
|
|
278
|
-
(
|
|
279
|
-
opts: { to: LocalizedTo } & Record<string, unknown>
|
|
280
|
-
): ReturnType<typeof navigate>;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
286
|
const localizedNavigate: LocalizedNavigate = (args: any) => {
|
|
287
|
+
const { localePrefix } = getPrefix(locale);
|
|
288
|
+
|
|
284
289
|
if (typeof args === "string") {
|
|
285
|
-
return navigate({
|
|
290
|
+
return navigate({
|
|
291
|
+
to: `/${LOCALE_ROUTE}${args}`,
|
|
292
|
+
params: { locale: localePrefix },
|
|
293
|
+
});
|
|
286
294
|
}
|
|
287
295
|
|
|
288
296
|
const { to, ...rest } = args;
|
|
289
297
|
|
|
290
|
-
const
|
|
298
|
+
const localizedTo = `/${LOCALE_ROUTE}${to}` as any;
|
|
291
299
|
|
|
292
|
-
return navigate({
|
|
300
|
+
return navigate({
|
|
301
|
+
to: localizedTo,
|
|
302
|
+
params: { locale: localePrefix, ...rest } as any,
|
|
303
|
+
});
|
|
293
304
|
};
|
|
294
305
|
|
|
295
306
|
return localizedNavigate;
|
|
@@ -363,8 +374,13 @@ Crie um componente para permitir que os usuários mudem de idioma:
|
|
|
363
374
|
import type { FC } from "react";
|
|
364
375
|
|
|
365
376
|
import { useLocation } from "@tanstack/react-router";
|
|
366
|
-
import {
|
|
367
|
-
|
|
377
|
+
import {
|
|
378
|
+
getHTMLTextDir,
|
|
379
|
+
getLocaleName,
|
|
380
|
+
getPathWithoutLocale,
|
|
381
|
+
getPrefix,
|
|
382
|
+
} from "intlayer";
|
|
383
|
+
import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
|
|
368
384
|
|
|
369
385
|
import { LocalizedLink, To } from "./localized-link";
|
|
370
386
|
|
|
@@ -383,9 +399,8 @@ export const LocaleSwitcher: FC = () => {
|
|
|
383
399
|
<LocalizedLink
|
|
384
400
|
aria-current={localeEl === locale ? "page" : undefined}
|
|
385
401
|
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
|
|
386
|
-
onClick={() =>
|
|
387
|
-
params={{ locale: localeEl }}
|
|
388
|
-
to={pathWithoutLocale as To}
|
|
402
|
+
onClick={() => setLocaleInStorage(localeEl)}
|
|
403
|
+
params={{ locale: getPrefix(localeEl).localePrefix }}
|
|
389
404
|
>
|
|
390
405
|
<span>
|
|
391
406
|
{/* Local - ex. FR */}
|
|
@@ -463,15 +478,15 @@ function LayoutComponent() {
|
|
|
463
478
|
|
|
464
479
|
### Passo 11: Adicionar middleware (Opcional)
|
|
465
480
|
|
|
466
|
-
Você também pode usar o `
|
|
481
|
+
Você também pode usar o `intlayerProxy` para adicionar roteamento do lado do servidor à sua aplicação. Este plugin detectará automaticamente o idioma atual com base na URL e definirá o cookie de idioma apropriado. Se nenhum idioma for especificado, o plugin determinará o idioma mais adequado com base nas preferências de idioma do navegador do usuário. Se nenhum idioma for detectado, ele redirecionará para o idioma padrão.
|
|
467
482
|
|
|
468
|
-
> Observe que, para usar o `
|
|
483
|
+
> Observe que, para usar o `intlayerProxy` em produção, você precisa mover o pacote `vite-intlayer` de `devDependencies` para `dependencies`.
|
|
469
484
|
|
|
470
485
|
```typescript {3,7} fileName="vite.config.ts"
|
|
471
486
|
import { reactRouter } from "@react-router/dev/vite";
|
|
472
487
|
import tailwindcss from "@tailwindcss/vite";
|
|
473
488
|
import { defineConfig } from "vite";
|
|
474
|
-
import { intlayer,
|
|
489
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
475
490
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
476
491
|
|
|
477
492
|
export default defineConfig({
|
|
@@ -480,7 +495,7 @@ export default defineConfig({
|
|
|
480
495
|
reactRouter(),
|
|
481
496
|
tsconfigPaths(),
|
|
482
497
|
intlayer(),
|
|
483
|
-
|
|
498
|
+
intlayerProxy(),
|
|
484
499
|
],
|
|
485
500
|
});
|
|
486
501
|
```
|
|
@@ -1060,38 +1060,38 @@ const App = () => (
|
|
|
1060
1060
|
module.exports = App;
|
|
1061
1061
|
```
|
|
1062
1062
|
|
|
1063
|
-
Em paralelo, você também pode usar o `
|
|
1063
|
+
Em paralelo, você também pode usar o `intlayerProxy` para adicionar roteamento no lado do servidor à sua aplicação. Este plugin detectará automaticamente o locale atual com base na URL e definirá o cookie de locale apropriado. Se nenhum locale for especificado, o plugin determinará o locale mais adequado com base nas preferências de idioma do navegador do usuário. Se nenhum locale for detectado, ele redirecionará para o locale padrão.
|
|
1064
1064
|
|
|
1065
1065
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1066
1066
|
import { defineConfig } from "vite";
|
|
1067
1067
|
import preact from "@preact/preset-vite";
|
|
1068
|
-
import { intlayer,
|
|
1068
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1069
1069
|
|
|
1070
1070
|
// https://vitejs.dev/config/
|
|
1071
1071
|
export default defineConfig({
|
|
1072
|
-
plugins: [preact(), intlayer(),
|
|
1072
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1073
1073
|
});
|
|
1074
1074
|
```
|
|
1075
1075
|
|
|
1076
1076
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1077
1077
|
import { defineConfig } from "vite";
|
|
1078
1078
|
import preact from "@preact/preset-vite";
|
|
1079
|
-
import { intlayer,
|
|
1079
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1080
1080
|
|
|
1081
1081
|
// https://vitejs.dev/config/
|
|
1082
1082
|
export default defineConfig({
|
|
1083
|
-
plugins: [preact(), intlayer(),
|
|
1083
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1084
1084
|
});
|
|
1085
1085
|
```
|
|
1086
1086
|
|
|
1087
1087
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1088
1088
|
const { defineConfig } = require("vite");
|
|
1089
1089
|
const preact = require("@preact/preset-vite");
|
|
1090
|
-
const { intlayer,
|
|
1090
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1091
1091
|
|
|
1092
1092
|
// https://vitejs.dev/config/
|
|
1093
1093
|
module.exports = defineConfig({
|
|
1094
|
-
plugins: [preact(), intlayer(),
|
|
1094
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1095
1095
|
});
|
|
1096
1096
|
```
|
|
1097
1097
|
|
|
@@ -1027,38 +1027,38 @@ const App = () => (
|
|
|
1027
1027
|
);
|
|
1028
1028
|
```
|
|
1029
1029
|
|
|
1030
|
-
Paralelamente, você também pode usar o `
|
|
1030
|
+
Paralelamente, você também pode usar o `intlayerProxy` para adicionar roteamento no lado do servidor à sua aplicação. Este plugin detectará automaticamente o idioma atual com base na URL e definirá o cookie de idioma apropriado. Se nenhum idioma for especificado, o plugin determinará o idioma mais adequado com base nas preferências de idioma do navegador do usuário. Se nenhum idioma for detectado, ele redirecionará para o idioma padrão.
|
|
1031
1031
|
|
|
1032
1032
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1033
1033
|
import { defineConfig } from "vite";
|
|
1034
1034
|
import react from "@vitejs/plugin-react-swc";
|
|
1035
|
-
import { intlayer,
|
|
1035
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1036
1036
|
|
|
1037
1037
|
// https://vitejs.dev/config/
|
|
1038
1038
|
export default defineConfig({
|
|
1039
|
-
plugins: [react(), intlayer(),
|
|
1039
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1040
1040
|
});
|
|
1041
1041
|
```
|
|
1042
1042
|
|
|
1043
1043
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1044
1044
|
import { defineConfig } from "vite";
|
|
1045
1045
|
import react from "@vitejs/plugin-react-swc";
|
|
1046
|
-
import { intlayer,
|
|
1046
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1047
1047
|
|
|
1048
1048
|
// https://vitejs.dev/config/
|
|
1049
1049
|
export default defineConfig({
|
|
1050
|
-
plugins: [react(), intlayer(),
|
|
1050
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1051
1051
|
});
|
|
1052
1052
|
```
|
|
1053
1053
|
|
|
1054
1054
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1055
1055
|
const { defineConfig } = require("vite");
|
|
1056
1056
|
const react = require("@vitejs/plugin-react-swc");
|
|
1057
|
-
const { intlayer,
|
|
1057
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1058
1058
|
|
|
1059
1059
|
// https://vitejs.dev/config/
|
|
1060
1060
|
module.exports = defineConfig({
|
|
1061
|
-
plugins: [react(), intlayer(),
|
|
1061
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1062
1062
|
});
|
|
1063
1063
|
```
|
|
1064
1064
|
|