@intlayer/docs 7.1.0 → 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
|
@@ -153,7 +153,7 @@ export default withIntlayer(nextConfig);
|
|
|
153
153
|
Kullanıcının tercih ettiği yerel ayarı otomatik olarak algılamak ve işlemek için middleware kurun:
|
|
154
154
|
|
|
155
155
|
```typescript fileName="src/middleware.ts" codeFormat="typescript"
|
|
156
|
-
export {
|
|
156
|
+
export { intlayerProxy as middleware } from "next-intlayer/middleware";
|
|
157
157
|
|
|
158
158
|
export const config = {
|
|
159
159
|
matcher:
|
|
@@ -162,7 +162,7 @@ export const config = {
|
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
```javascript fileName="src/middleware.mjs" codeFormat="esm"
|
|
165
|
-
export {
|
|
165
|
+
export { intlayerProxy as middleware } from "next-intlayer/middleware";
|
|
166
166
|
|
|
167
167
|
export const config = {
|
|
168
168
|
matcher:
|
|
@@ -171,14 +171,14 @@ export const config = {
|
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
|
|
174
|
-
const {
|
|
174
|
+
const { intlayerProxy } = require("next-intlayer/middleware");
|
|
175
175
|
|
|
176
176
|
const config = {
|
|
177
177
|
matcher:
|
|
178
178
|
"/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
|
|
179
179
|
};
|
|
180
180
|
|
|
181
|
-
module.exports = { middleware:
|
|
181
|
+
module.exports = { middleware: intlayerProxy, config };
|
|
182
182
|
```
|
|
183
183
|
|
|
184
184
|
> Eşleştirici parametresini uygulamanızın rotalarına uyacak şekilde uyarlayın. Daha fazla detay için [Next.js dokümantasyonunda eşleştiriciyi yapılandırma](https://nextjs.org/docs/app/building-your-application/routing/middleware) bölümüne bakın.
|
|
@@ -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
|
{/* Yerel ayar - örn. 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
|
{/* Yerel ayar - örn. 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
|
{/* Yerel ayar - örn. FR */}
|
|
@@ -316,7 +316,7 @@ import {
|
|
|
316
316
|
getLocalizedUrl,
|
|
317
317
|
getPathWithoutLocale,
|
|
318
318
|
} from "intlayer";
|
|
319
|
-
import {
|
|
319
|
+
import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
|
|
320
320
|
import { Link, useLocation } from "react-router";
|
|
321
321
|
|
|
322
322
|
export const LocaleSwitcher: FC = () => {
|
|
@@ -334,7 +334,7 @@ export const LocaleSwitcher: FC = () => {
|
|
|
334
334
|
<Link
|
|
335
335
|
aria-current={localeItem === locale ? "sayfa" : undefined}
|
|
336
336
|
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeItem)}`}
|
|
337
|
-
onClick={() =>
|
|
337
|
+
onClick={() => setLocale(localeItem)}
|
|
338
338
|
to={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
339
339
|
>
|
|
340
340
|
<span>
|
|
@@ -403,18 +403,18 @@ export default function RootLayout() {
|
|
|
403
403
|
|
|
404
404
|
### Adım 11: Middleware ekleyin (İsteğe bağlı)
|
|
405
405
|
|
|
406
|
-
Ayrıca uygulamanıza sunucu tarafı yönlendirme eklemek için `
|
|
406
|
+
Ayrıca uygulamanıza sunucu tarafı yönlendirme eklemek için `intlayerProxy` kullanabilirsiniz. Bu eklenti, URL'ye göre geçerli yerel ayarı otomatik olarak algılar ve uygun yerel ayar çerezini ayarlar. Hiçbir yerel ayar belirtilmemişse, eklenti kullanıcının tarayıcı dil tercihlerine göre en uygun yerel ayarı belirler. Hiçbir yerel ayar algılanmazsa, varsayılan yerel ayara yönlendirme yapar.
|
|
407
407
|
|
|
408
|
-
> Üretimde `
|
|
408
|
+
> Üretimde `intlayerProxy` kullanmak için, `vite-intlayer` paketini `devDependencies`'den `dependencies`'e geçirmeniz gerektiğini unutmayın.
|
|
409
409
|
|
|
410
410
|
```typescript {3,7} fileName="vite.config.ts"
|
|
411
411
|
import { defineConfig } from "vite";
|
|
412
412
|
import react from "@vitejs/plugin-react-swc";
|
|
413
|
-
import { intlayer,
|
|
413
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
414
414
|
|
|
415
415
|
// https://vitejs.dev/config/
|
|
416
416
|
export default defineConfig({
|
|
417
|
-
plugins: [react(), intlayer(),
|
|
417
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
418
418
|
});
|
|
419
419
|
```
|
|
420
420
|
|
|
@@ -205,6 +205,7 @@ import type { FC } from "react";
|
|
|
205
205
|
|
|
206
206
|
import { Link, type LinkComponentProps } from "@tanstack/react-router";
|
|
207
207
|
import { useLocale } from "react-intlayer";
|
|
208
|
+
import { getPrefix } from "intlayer";
|
|
208
209
|
|
|
209
210
|
export const LOCALE_ROUTE = "{-$locale}" as const;
|
|
210
211
|
|
|
@@ -234,12 +235,13 @@ type RemoveLocaleFromString<S extends string> = CollapseDoubleSlashes<
|
|
|
234
235
|
|
|
235
236
|
export const LocalizedLink: FC<LocalizedLinkProps> = (props) => {
|
|
236
237
|
const { locale } = useLocale();
|
|
238
|
+
const { localePrefix } = getPrefix(locale);
|
|
237
239
|
|
|
238
240
|
return (
|
|
239
241
|
<Link
|
|
240
242
|
{...props}
|
|
241
243
|
params={{
|
|
242
|
-
locale,
|
|
244
|
+
locale: localePrefix,
|
|
243
245
|
...(typeof props?.params === "object" ? props?.params : {}),
|
|
244
246
|
}}
|
|
245
247
|
to={`/${LOCALE_ROUTE}${props.to}` as LinkComponentProps["to"]}
|
|
@@ -256,43 +258,52 @@ Bu bileşenin iki amacı vardır:
|
|
|
256
258
|
Daha sonra programatik gezinme için bir `useLocalizedNavigate` kancası oluşturabiliriz:
|
|
257
259
|
|
|
258
260
|
```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
|
|
259
|
-
import { useLocale } from "react-intlayer";
|
|
260
261
|
import { useNavigate } from "@tanstack/react-router";
|
|
262
|
+
import { getPrefix } from "intlayer";
|
|
263
|
+
import { useLocale } from "react-intlayer";
|
|
261
264
|
import { LOCALE_ROUTE } from "@/components/localized-link";
|
|
262
265
|
import type { FileRouteTypes } from "@/routeTree.gen";
|
|
263
266
|
|
|
267
|
+
type StripLocalePrefix<T extends string> = T extends
|
|
268
|
+
| `/${typeof LOCALE_ROUTE}`
|
|
269
|
+
| `/${typeof LOCALE_ROUTE}/`
|
|
270
|
+
? "/"
|
|
271
|
+
: T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
|
|
272
|
+
? `/${Rest}`
|
|
273
|
+
: never;
|
|
274
|
+
|
|
275
|
+
type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
|
|
276
|
+
|
|
277
|
+
type LocalizedNavigate = {
|
|
278
|
+
(to: LocalizedTo): ReturnType<ReturnType<typeof useNavigate>>;
|
|
279
|
+
(
|
|
280
|
+
opts: { to: LocalizedTo } & Record<string, unknown>
|
|
281
|
+
): ReturnType<ReturnType<typeof useNavigate>>;
|
|
282
|
+
};
|
|
283
|
+
|
|
264
284
|
export const useLocalizedNavigate = () => {
|
|
265
285
|
const navigate = useNavigate();
|
|
266
286
|
|
|
267
287
|
const { locale } = useLocale();
|
|
268
288
|
|
|
269
|
-
type StripLocalePrefix<T extends string> = T extends
|
|
270
|
-
| `/${typeof LOCALE_ROUTE}`
|
|
271
|
-
| `/${typeof LOCALE_ROUTE}/`
|
|
272
|
-
? "/"
|
|
273
|
-
: T extends `/${typeof LOCALE_ROUTE}/${infer Rest}`
|
|
274
|
-
? `/${Rest}`
|
|
275
|
-
: never;
|
|
276
|
-
|
|
277
|
-
type LocalizedTo = StripLocalePrefix<FileRouteTypes["to"]>;
|
|
278
|
-
|
|
279
|
-
interface LocalizedNavigate {
|
|
280
|
-
(to: LocalizedTo): ReturnType<typeof navigate>;
|
|
281
|
-
(
|
|
282
|
-
opts: { to: LocalizedTo } & Record<string, unknown>
|
|
283
|
-
): ReturnType<typeof navigate>;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
289
|
const localizedNavigate: LocalizedNavigate = (args: any) => {
|
|
290
|
+
const { localePrefix } = getPrefix(locale);
|
|
291
|
+
|
|
287
292
|
if (typeof args === "string") {
|
|
288
|
-
return navigate({
|
|
293
|
+
return navigate({
|
|
294
|
+
to: `/${LOCALE_ROUTE}${args}`,
|
|
295
|
+
params: { locale: localePrefix },
|
|
296
|
+
});
|
|
289
297
|
}
|
|
290
298
|
|
|
291
299
|
const { to, ...rest } = args;
|
|
292
300
|
|
|
293
|
-
const
|
|
301
|
+
const localizedTo = `/${LOCALE_ROUTE}${to}` as any;
|
|
294
302
|
|
|
295
|
-
return navigate({
|
|
303
|
+
return navigate({
|
|
304
|
+
to: localizedTo,
|
|
305
|
+
params: { locale: localePrefix, ...rest } as any,
|
|
306
|
+
});
|
|
296
307
|
};
|
|
297
308
|
|
|
298
309
|
return localizedNavigate;
|
|
@@ -366,8 +377,13 @@ Kullanıcıların dilleri değiştirmesine izin veren bir bileşen oluşturun:
|
|
|
366
377
|
import type { FC } from "react";
|
|
367
378
|
|
|
368
379
|
import { useLocation } from "@tanstack/react-router";
|
|
369
|
-
import {
|
|
370
|
-
|
|
380
|
+
import {
|
|
381
|
+
getHTMLTextDir,
|
|
382
|
+
getLocaleName,
|
|
383
|
+
getPathWithoutLocale,
|
|
384
|
+
getPrefix,
|
|
385
|
+
} from "intlayer";
|
|
386
|
+
import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
|
|
371
387
|
|
|
372
388
|
import { LocalizedLink, To } from "./localized-link";
|
|
373
389
|
|
|
@@ -386,9 +402,8 @@ export const LocaleSwitcher: FC = () => {
|
|
|
386
402
|
<LocalizedLink
|
|
387
403
|
aria-current={localeEl === locale ? "sayfa" : undefined}
|
|
388
404
|
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeEl)}`}
|
|
389
|
-
onClick={() =>
|
|
390
|
-
params={{ locale: localeEl }}
|
|
391
|
-
to={pathWithoutLocale as To}
|
|
405
|
+
onClick={() => setLocaleInStorage(localeEl)}
|
|
406
|
+
params={{ locale: getPrefix(localeEl).localePrefix }}
|
|
392
407
|
>
|
|
393
408
|
<span>
|
|
394
409
|
{/* Dil Kodu - örn. FR */}
|
|
@@ -466,15 +481,15 @@ function LayoutComponent() {
|
|
|
466
481
|
|
|
467
482
|
### Adım 11: Middleware Ekleme (İsteğe Bağlı)
|
|
468
483
|
|
|
469
|
-
Uygulamanıza sunucu tarafı yönlendirme eklemek için `
|
|
484
|
+
Uygulamanıza sunucu tarafı yönlendirme eklemek için `intlayerProxy`'i de kullanabilirsiniz. Bu eklenti, URL'ye göre mevcut yerel ayarı otomatik olarak algılar ve uygun yerel ayar çerezini ayarlar. Hiçbir yerel ayar belirtilmemişse, eklenti kullanıcının tarayıcı dil tercihlerine göre en uygun yerel ayarı belirler. Hiçbir yerel ayar algılanmazsa, varsayılan yerel ayara yönlendirme yapar.
|
|
470
485
|
|
|
471
|
-
> Üretimde `
|
|
486
|
+
> Üretimde `intlayerProxy` kullanmak için, `vite-intlayer` paketini `devDependencies`'den `dependencies`'e geçirmeniz gerektiğini unutmayın.
|
|
472
487
|
|
|
473
488
|
```typescript {3,7} fileName="vite.config.ts"
|
|
474
489
|
import { reactRouter } from "@react-router/dev/vite";
|
|
475
490
|
import tailwindcss from "@tailwindcss/vite";
|
|
476
491
|
import { defineConfig } from "vite";
|
|
477
|
-
import { intlayer,
|
|
492
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
478
493
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
479
494
|
|
|
480
495
|
export default defineConfig({
|
|
@@ -483,7 +498,7 @@ export default defineConfig({
|
|
|
483
498
|
reactRouter(),
|
|
484
499
|
tsconfigPaths(),
|
|
485
500
|
intlayer(),
|
|
486
|
-
|
|
501
|
+
intlayerProxy(),
|
|
487
502
|
],
|
|
488
503
|
});
|
|
489
504
|
```
|
|
@@ -1040,40 +1040,40 @@ const App = () => (
|
|
|
1040
1040
|
module.exports = App;
|
|
1041
1041
|
```
|
|
1042
1042
|
|
|
1043
|
-
Paralel olarak, uygulamanıza sunucu tarafı yönlendirme eklemek için `
|
|
1043
|
+
Paralel olarak, uygulamanıza sunucu tarafı yönlendirme eklemek için `intlayerProxy`'i de kullanabilirsiniz. Bu eklenti, URL'ye göre geçerli yerel ayarı otomatik olarak algılar ve uygun yerel ayar çerezini ayarlar. Hiç yerel ayar belirtilmezse, eklenti kullanıcının tarayıcı dil tercihlerine göre en uygun yerel ayarı belirler. Hiç yerel ayar algılanmazsa, varsayılan yerel ayara yönlendirir.
|
|
1044
1044
|
|
|
1045
|
-
> Not: Üretimde `
|
|
1045
|
+
> Not: Üretimde `intlayerProxy`'i kullanmak için `vite-intlayer` paketini `devDependencies`'den `dependencies`'e taşımalısınız.
|
|
1046
1046
|
|
|
1047
1047
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1048
1048
|
import { defineConfig } from "vite";
|
|
1049
1049
|
import preact from "@preact/preset-vite";
|
|
1050
|
-
import { intlayer,
|
|
1050
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1051
1051
|
|
|
1052
1052
|
// https://vitejs.dev/config/
|
|
1053
1053
|
export default defineConfig({
|
|
1054
|
-
plugins: [preact(), intlayer(),
|
|
1054
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1055
1055
|
});
|
|
1056
1056
|
```
|
|
1057
1057
|
|
|
1058
1058
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1059
1059
|
import { defineConfig } from "vite";
|
|
1060
1060
|
import preact from "@preact/preset-vite";
|
|
1061
|
-
import { intlayer,
|
|
1061
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1062
1062
|
|
|
1063
1063
|
// https://vitejs.dev/config/
|
|
1064
1064
|
export default defineConfig({
|
|
1065
|
-
plugins: [preact(), intlayer(),
|
|
1065
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1066
1066
|
});
|
|
1067
1067
|
```
|
|
1068
1068
|
|
|
1069
1069
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1070
1070
|
const { defineConfig } = require("vite");
|
|
1071
1071
|
const preact = require("@preact/preset-vite");
|
|
1072
|
-
const { intlayer,
|
|
1072
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1073
1073
|
|
|
1074
1074
|
// https://vitejs.dev/config/
|
|
1075
1075
|
module.exports = defineConfig({
|
|
1076
|
-
plugins: [preact(), intlayer(),
|
|
1076
|
+
plugins: [preact(), intlayer(), intlayerProxy()],
|
|
1077
1077
|
});
|
|
1078
1078
|
```
|
|
1079
1079
|
|
|
@@ -1012,40 +1012,40 @@ const App = () => (
|
|
|
1012
1012
|
);
|
|
1013
1013
|
```
|
|
1014
1014
|
|
|
1015
|
-
Paralel olarak, uygulamanıza sunucu tarafı yönlendirme eklemek için `
|
|
1015
|
+
Paralel olarak, uygulamanıza sunucu tarafı yönlendirme eklemek için `intlayerProxy`'i de kullanabilirsiniz. Bu eklenti, URL'ye göre geçerli yerel ayarı otomatik olarak algılar ve uygun yerel ayar çerezini ayarlar. Hiç yerel ayar belirtilmezse, eklenti kullanıcının tarayıcı dil tercihlerine göre en uygun yerel ayarı belirler. Hiç yerel ayar algılanmazsa, varsayılan yerel ayara yönlendirir.
|
|
1016
1016
|
|
|
1017
|
-
> Not: Üretimde `
|
|
1017
|
+
> Not: Üretimde `intlayerProxy`'i kullanmak için `vite-intlayer` paketini `devDependencies`'den `dependencies`'e taşımalısınız.
|
|
1018
1018
|
|
|
1019
1019
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1020
1020
|
import { defineConfig } from "vite";
|
|
1021
1021
|
import react from "@vitejs/plugin-react-swc";
|
|
1022
|
-
import { intlayer,
|
|
1022
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1023
1023
|
|
|
1024
1024
|
// https://vitejs.dev/config/
|
|
1025
1025
|
export default defineConfig({
|
|
1026
|
-
plugins: [react(), intlayer(),
|
|
1026
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1027
1027
|
});
|
|
1028
1028
|
```
|
|
1029
1029
|
|
|
1030
1030
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1031
1031
|
import { defineConfig } from "vite";
|
|
1032
1032
|
import react from "@vitejs/plugin-react-swc";
|
|
1033
|
-
import { intlayer,
|
|
1033
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
1034
1034
|
|
|
1035
1035
|
// https://vitejs.dev/config/
|
|
1036
1036
|
export default defineConfig({
|
|
1037
|
-
plugins: [react(), intlayer(),
|
|
1037
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1038
1038
|
});
|
|
1039
1039
|
```
|
|
1040
1040
|
|
|
1041
1041
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1042
1042
|
const { defineConfig } = require("vite");
|
|
1043
1043
|
const react = "@vitejs/plugin-react-swc";
|
|
1044
|
-
const { intlayer,
|
|
1044
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
1045
1045
|
|
|
1046
1046
|
// https://vitejs.dev/config/
|
|
1047
1047
|
module.exports = defineConfig({
|
|
1048
|
-
plugins: [react(), intlayer(),
|
|
1048
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
1049
1049
|
});
|
|
1050
1050
|
```
|
|
1051
1051
|
|
|
@@ -648,40 +648,40 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
|
648
648
|
</template>
|
|
649
649
|
```
|
|
650
650
|
|
|
651
|
-
Paralel olarak, uygulamanıza sunucu tarafı yönlendirme eklemek için `
|
|
651
|
+
Paralel olarak, uygulamanıza sunucu tarafı yönlendirme eklemek için `intlayerProxy`'i de kullanabilirsiniz. Bu eklenti, URL'ye göre geçerli yerel ayarı otomatik olarak algılar ve uygun yerel ayar çerezini ayarlar. Hiç yerel ayar belirtilmezse, eklenti kullanıcının tarayıcı dil tercihlerine göre en uygun yerel ayarı belirler. Hiç yerel ayar algılanmazsa, varsayılan yerel ayara yönlendirir.
|
|
652
652
|
|
|
653
|
-
> Not: Üretimde `
|
|
653
|
+
> Not: Üretimde `intlayerProxy`'i kullanmak için `vite-intlayer` paketini `devDependencies`'den `dependencies`'e taşımalısınız.
|
|
654
654
|
|
|
655
655
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
656
656
|
import { defineConfig } from "vite";
|
|
657
657
|
import vue from "@vitejs/plugin-vue";
|
|
658
|
-
import { intlayer,
|
|
658
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
659
659
|
|
|
660
660
|
// https://vitejs.dev/config/
|
|
661
661
|
export default defineConfig({
|
|
662
|
-
plugins: [vue(), intlayer(),
|
|
662
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
663
663
|
});
|
|
664
664
|
```
|
|
665
665
|
|
|
666
666
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
667
667
|
import { defineConfig } from "vite";
|
|
668
668
|
import vue from "@vitejs/plugin-vue";
|
|
669
|
-
import { intlayer,
|
|
669
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
670
670
|
|
|
671
671
|
// https://vitejs.dev/config/
|
|
672
672
|
export default defineConfig({
|
|
673
|
-
plugins: [vue(), intlayer(),
|
|
673
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
674
674
|
});
|
|
675
675
|
```
|
|
676
676
|
|
|
677
677
|
```javascript fileName="vite.config.cjs" codeFormat="commonjs"
|
|
678
678
|
const { defineConfig } = require("vite");
|
|
679
679
|
const vue = require("@vitejs/plugin-vue");
|
|
680
|
-
const { intlayer,
|
|
680
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
681
681
|
|
|
682
682
|
// https://vitejs.dev/config/
|
|
683
683
|
module.exports = defineConfig({
|
|
684
|
-
plugins: [vue(), intlayer(),
|
|
684
|
+
plugins: [vue(), intlayer(), intlayerProxy()],
|
|
685
685
|
});
|
|
686
686
|
```
|
|
687
687
|
|
|
@@ -279,7 +279,7 @@ Cách tiếp cận này cho phép bạn:
|
|
|
279
279
|
|
|
280
280
|
Các sao trên GitHub là một chỉ số mạnh mẽ về độ phổ biến của dự án, sự tin tưởng của cộng đồng và tính liên quan lâu dài. Mặc dù không phải là thước đo trực tiếp về chất lượng kỹ thuật, chúng phản ánh số lượng nhà phát triển thấy dự án hữu ích, theo dõi tiến trình của nó và có khả năng áp dụng nó. Để ước tính giá trị của một dự án, các sao giúp so sánh mức độ thu hút giữa các lựa chọn thay thế và cung cấp cái nhìn sâu sắc về sự phát triển của hệ sinh thái.
|
|
281
281
|
|
|
282
|
-
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&aymericzip/intlayer)
|
|
282
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/monorepo&aymericzip/intlayer)
|
|
283
283
|
|
|
284
284
|
---
|
|
285
285
|
|
|
@@ -365,6 +365,7 @@ const inter = Inter({ subsets: ["latin"] });
|
|
|
365
365
|
const LocaleLayout = async ({ children, params: { locale } }) => {
|
|
366
366
|
const { locale } = await params;
|
|
367
367
|
return (
|
|
368
|
+
|
|
368
369
|
<html lang={locale} dir={getHTMLTextDir(locale)}>
|
|
369
370
|
<body className={inter.className}>{children}</body>
|
|
370
371
|
</html>
|
|
@@ -165,7 +165,7 @@ export default withIntlayer(nextConfig);
|
|
|
165
165
|
Thiết lập middleware để tự động phát hiện và xử lý ngôn ngữ ưu tiên của người dùng:
|
|
166
166
|
|
|
167
167
|
```typescript fileName="src/middleware.ts" codeFormat="typescript"
|
|
168
|
-
export {
|
|
168
|
+
export { intlayerProxy as middleware } from "next-intlayer/middleware";
|
|
169
169
|
|
|
170
170
|
export const config = {
|
|
171
171
|
matcher:
|
|
@@ -174,7 +174,7 @@ export const config = {
|
|
|
174
174
|
```
|
|
175
175
|
|
|
176
176
|
```javascript fileName="src/middleware.mjs" codeFormat="esm"
|
|
177
|
-
export {
|
|
177
|
+
export { intlayerProxy as middleware } from "next-intlayer/middleware";
|
|
178
178
|
|
|
179
179
|
export const config = {
|
|
180
180
|
matcher:
|
|
@@ -183,14 +183,14 @@ export const config = {
|
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
```javascript fileName="src/middleware.cjs" codeFormat="commonjs"
|
|
186
|
-
const {
|
|
186
|
+
const { intlayerProxy } = require("next-intlayer/middleware");
|
|
187
187
|
|
|
188
188
|
const config = {
|
|
189
189
|
matcher:
|
|
190
190
|
"/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
|
|
191
191
|
};
|
|
192
192
|
|
|
193
|
-
module.exports = { middleware:
|
|
193
|
+
module.exports = { middleware: intlayerProxy, config };
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
> Điều chỉnh tham số `matcher` để phù hợp với các route của ứng dụng bạn. Để biết thêm chi tiết, tham khảo tài liệu [Next.js về cấu hình matcher](https://nextjs.org/docs/app/building-your-application/routing/middleware).
|
|
@@ -1107,7 +1107,6 @@ import Link from "next/link";
|
|
|
1107
1107
|
|
|
1108
1108
|
const LocaleSwitcher: FC = () => {
|
|
1109
1109
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1110
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1111
1110
|
|
|
1112
1111
|
return (
|
|
1113
1112
|
<div>
|
|
@@ -1119,7 +1118,7 @@ const LocaleSwitcher: FC = () => {
|
|
|
1119
1118
|
hrefLang={localeItem}
|
|
1120
1119
|
key={localeItem}
|
|
1121
1120
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1122
|
-
onClick={() =>
|
|
1121
|
+
onClick={() => setLocale(localeItem)}
|
|
1123
1122
|
>
|
|
1124
1123
|
<span>
|
|
1125
1124
|
{/* Ngôn ngữ địa phương - ví dụ: FR */}
|
|
@@ -1157,7 +1156,6 @@ import Link from "next/link";
|
|
|
1157
1156
|
|
|
1158
1157
|
const LocaleSwitcher = () => {
|
|
1159
1158
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1160
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1161
1159
|
|
|
1162
1160
|
return (
|
|
1163
1161
|
<div>
|
|
@@ -1169,7 +1167,7 @@ const LocaleSwitcher = () => {
|
|
|
1169
1167
|
hrefLang={localeItem}
|
|
1170
1168
|
key={localeItem}
|
|
1171
1169
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1172
|
-
onClick={() =>
|
|
1170
|
+
onClick={() => setLocale(localeItem)}
|
|
1173
1171
|
>
|
|
1174
1172
|
<span>
|
|
1175
1173
|
{/* Locale - ví dụ: FR */}
|
|
@@ -1207,7 +1205,6 @@ const Link = require("next/link");
|
|
|
1207
1205
|
|
|
1208
1206
|
const LocaleSwitcher = () => {
|
|
1209
1207
|
const { locale, pathWithoutLocale, availableLocales } = useLocalePageRouter();
|
|
1210
|
-
const { setLocaleCookie } = useLocaleCookie();
|
|
1211
1208
|
|
|
1212
1209
|
return (
|
|
1213
1210
|
<select>
|
|
@@ -1217,7 +1214,7 @@ const LocaleSwitcher = () => {
|
|
|
1217
1214
|
href={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
1218
1215
|
hrefLang={localeItem}
|
|
1219
1216
|
aria-current={locale === localeItem ? "page" : undefined}
|
|
1220
|
-
onClick={() =>
|
|
1217
|
+
onClick={() => setLocale(localeItem)}
|
|
1221
1218
|
>
|
|
1222
1219
|
<span>
|
|
1223
1220
|
{/* Locale - ví dụ: FR */}
|
|
@@ -328,7 +328,7 @@ import {
|
|
|
328
328
|
getLocalizedUrl,
|
|
329
329
|
getPathWithoutLocale,
|
|
330
330
|
} from "intlayer";
|
|
331
|
-
import {
|
|
331
|
+
import { setLocaleInStorage, useIntlayer, useLocale } from "react-intlayer";
|
|
332
332
|
import { Link, useLocation } from "react-router";
|
|
333
333
|
|
|
334
334
|
export const LocaleSwitcher: FC = () => {
|
|
@@ -346,7 +346,7 @@ export const LocaleSwitcher: FC = () => {
|
|
|
346
346
|
<Link
|
|
347
347
|
aria-current={localeItem === locale ? "page" : undefined}
|
|
348
348
|
aria-label={`${localeSwitcherLabel.value} ${getLocaleName(localeItem)}`}
|
|
349
|
-
onClick={() =>
|
|
349
|
+
onClick={() => setLocale(localeItem)}
|
|
350
350
|
to={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
351
351
|
>
|
|
352
352
|
<span>
|
|
@@ -415,18 +415,18 @@ export default function RootLayout() {
|
|
|
415
415
|
|
|
416
416
|
### Bước 11: Thêm middleware (Tùy chọn)
|
|
417
417
|
|
|
418
|
-
Bạn cũng có thể sử dụng `
|
|
418
|
+
Bạn cũng có thể sử dụng `intlayerProxy` để thêm routing phía server cho ứng dụng của bạn. Plugin này sẽ tự động phát hiện locale hiện tại dựa trên URL và thiết lập cookie locale phù hợp. Nếu không có locale nào được chỉ định, plugin sẽ xác định locale phù hợp nhất dựa trên ngôn ngữ trình duyệt của người dùng. Nếu không phát hiện được locale nào, nó sẽ chuyển hướng đến locale mặc định.
|
|
419
419
|
|
|
420
|
-
> Lưu ý rằng để sử dụng `
|
|
420
|
+
> Lưu ý rằng để sử dụng `intlayerProxy` trong môi trường production, bạn cần chuyển gói `vite-intlayer` từ `devDependencies` sang `dependencies`.
|
|
421
421
|
|
|
422
422
|
```typescript {3,7} fileName="vite.config.ts"
|
|
423
423
|
import { defineConfig } from "vite";
|
|
424
424
|
import react from "@vitejs/plugin-react-swc";
|
|
425
|
-
import { intlayer,
|
|
425
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
426
426
|
|
|
427
427
|
// https://vitejs.dev/config/
|
|
428
428
|
export default defineConfig({
|
|
429
|
-
plugins: [react(), intlayer(),
|
|
429
|
+
plugins: [react(), intlayer(), intlayerProxy()],
|
|
430
430
|
});
|
|
431
431
|
```
|
|
432
432
|
|