@intlayer/docs 6.1.6-canary.0 → 6.1.6
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/en/next-i18next_vs_next-intl_vs_intlayer.md +71 -80
- package/dist/cjs/generated/docs.entry.cjs +16 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +16 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/intlayer_with_angular.md +2 -2
- package/docs/ar/intlayer_with_astro.md +246 -0
- package/docs/ar/intlayer_with_create_react_app.md +3 -2
- package/docs/ar/intlayer_with_express.md +2 -2
- package/docs/ar/intlayer_with_nestjs.md +2 -2
- package/docs/ar/intlayer_with_nextjs_14.md +2 -2
- package/docs/ar/intlayer_with_nextjs_15.md +2 -2
- package/docs/ar/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ar/intlayer_with_nuxt.md +2 -2
- package/docs/ar/intlayer_with_react_native+expo.md +11 -20
- package/docs/ar/intlayer_with_react_router_v7.md +195 -241
- package/docs/ar/intlayer_with_tanstack.md +198 -272
- package/docs/ar/intlayer_with_vite+preact.md +9 -9
- 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_angular.md +2 -2
- package/docs/de/intlayer_with_astro.md +246 -0
- package/docs/de/intlayer_with_create_react_app.md +2 -2
- package/docs/de/intlayer_with_express.md +2 -2
- package/docs/de/intlayer_with_nestjs.md +2 -2
- package/docs/de/intlayer_with_nextjs_14.md +2 -2
- package/docs/de/intlayer_with_nextjs_15.md +2 -2
- package/docs/de/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/de/intlayer_with_nuxt.md +2 -2
- package/docs/de/intlayer_with_react_native+expo.md +11 -20
- package/docs/de/intlayer_with_react_router_v7.md +193 -242
- package/docs/de/intlayer_with_tanstack.md +194 -266
- package/docs/de/intlayer_with_vite+preact.md +9 -9
- package/docs/de/intlayer_with_vite+react.md +9 -9
- package/docs/de/intlayer_with_vite+vue.md +11 -11
- package/docs/de/packages/vite-intlayer/index.md +3 -3
- package/docs/en/how_works_intlayer.md +1 -1
- package/docs/en/index.md +1 -1
- package/docs/en/intlayer_cli.md +1 -1
- package/docs/en/intlayer_with_angular.md +4 -4
- package/docs/en/intlayer_with_astro.md +246 -0
- package/docs/en/intlayer_with_create_react_app.md +4 -4
- package/docs/en/intlayer_with_express.md +3 -3
- package/docs/en/intlayer_with_lynx+react.md +1 -1
- package/docs/en/intlayer_with_nestjs.md +2 -2
- package/docs/en/intlayer_with_nextjs_14.md +13 -4
- package/docs/en/intlayer_with_nextjs_15.md +13 -4
- package/docs/en/intlayer_with_nextjs_page_router.md +5 -5
- package/docs/en/intlayer_with_nuxt.md +4 -4
- package/docs/en/intlayer_with_react_native+expo.md +46 -24
- package/docs/en/intlayer_with_react_router_v7.md +164 -211
- package/docs/en/intlayer_with_tanstack.md +166 -241
- package/docs/en/intlayer_with_vite+preact.md +12 -12
- package/docs/en/intlayer_with_vite+react.md +12 -12
- package/docs/en/intlayer_with_vite+solid.md +2 -2
- package/docs/en/intlayer_with_vite+svelte.md +2 -2
- package/docs/en/intlayer_with_vite+vue.md +12 -12
- package/docs/en/introduction.md +1 -1
- package/docs/en/packages/next-intlayer/useDictionary.md +1 -1
- package/docs/en/packages/next-intlayer/useIntlayer.md +1 -1
- package/docs/en/packages/react-intlayer/useDictionary.md +1 -1
- package/docs/en/packages/react-intlayer/useI18n.md +1 -1
- package/docs/en/packages/react-intlayer/useIntlayer.md +1 -1
- package/docs/en/releases/v6.md +1 -0
- package/docs/en/roadmap.md +1 -1
- package/docs/en-GB/intlayer_with_angular.md +3 -3
- package/docs/en-GB/intlayer_with_astro.md +246 -0
- package/docs/en-GB/intlayer_with_create_react_app.md +5 -4
- package/docs/en-GB/intlayer_with_express.md +2 -2
- package/docs/en-GB/intlayer_with_nestjs.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_14.md +4 -4
- package/docs/en-GB/intlayer_with_nextjs_15.md +2 -2
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/en-GB/intlayer_with_nuxt.md +2 -2
- package/docs/en-GB/intlayer_with_react_native+expo.md +11 -20
- package/docs/en-GB/intlayer_with_react_router_v7.md +171 -220
- package/docs/en-GB/intlayer_with_tanstack.md +174 -248
- package/docs/en-GB/intlayer_with_vite+preact.md +9 -9
- package/docs/en-GB/intlayer_with_vite+react.md +9 -9
- package/docs/en-GB/intlayer_with_vite+vue.md +11 -11
- package/docs/en-GB/packages/next-intlayer/useIntlayer.md +1 -1
- package/docs/en-GB/packages/react-intlayer/useIntlayer.md +1 -1
- package/docs/es/intlayer_with_angular.md +2 -2
- package/docs/es/intlayer_with_astro.md +246 -0
- package/docs/es/intlayer_with_create_react_app.md +3 -2
- package/docs/es/intlayer_with_express.md +2 -2
- package/docs/es/intlayer_with_nextjs_14.md +2 -2
- package/docs/es/intlayer_with_nextjs_15.md +2 -2
- package/docs/es/intlayer_with_react_native+expo.md +11 -20
- package/docs/es/intlayer_with_react_router_v7.md +188 -232
- package/docs/es/intlayer_with_tanstack.md +203 -273
- 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_angular.md +2 -2
- package/docs/fr/intlayer_with_astro.md +246 -0
- package/docs/fr/intlayer_with_create_react_app.md +3 -2
- package/docs/fr/intlayer_with_express.md +2 -2
- package/docs/fr/intlayer_with_nestjs.md +2 -2
- package/docs/fr/intlayer_with_nextjs_14.md +2 -2
- package/docs/fr/intlayer_with_react_native+expo.md +11 -20
- package/docs/fr/intlayer_with_react_router_v7.md +188 -248
- package/docs/fr/intlayer_with_tanstack.md +192 -265
- 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_cli.md +1 -4
- package/docs/hi/intlayer_with_angular.md +2 -2
- package/docs/hi/intlayer_with_astro.md +246 -0
- package/docs/hi/intlayer_with_create_react_app.md +2 -2
- package/docs/hi/intlayer_with_express.md +2 -2
- package/docs/hi/intlayer_with_nestjs.md +2 -2
- package/docs/hi/intlayer_with_nextjs_14.md +2 -2
- package/docs/hi/intlayer_with_nextjs_15.md +2 -2
- package/docs/hi/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/hi/intlayer_with_nuxt.md +2 -2
- package/docs/hi/intlayer_with_react_native+expo.md +11 -20
- package/docs/hi/intlayer_with_react_router_v7.md +199 -243
- package/docs/hi/intlayer_with_tanstack.md +210 -285
- package/docs/hi/intlayer_with_vite+preact.md +9 -9
- package/docs/hi/intlayer_with_vite+react.md +9 -9
- package/docs/hi/intlayer_with_vite+solid.md +1 -1
- package/docs/hi/intlayer_with_vite+vue.md +11 -11
- package/docs/it/intlayer_with_angular.md +2 -2
- package/docs/it/intlayer_with_astro.md +246 -0
- package/docs/it/intlayer_with_create_react_app.md +3 -2
- package/docs/it/intlayer_with_express.md +2 -2
- package/docs/it/intlayer_with_nestjs.md +2 -2
- package/docs/it/intlayer_with_nextjs_14.md +2 -2
- package/docs/it/intlayer_with_nextjs_15.md +2 -2
- package/docs/it/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/it/intlayer_with_nuxt.md +2 -2
- package/docs/it/intlayer_with_react_native+expo.md +11 -21
- package/docs/it/intlayer_with_react_router_v7.md +195 -242
- package/docs/it/intlayer_with_tanstack.md +203 -267
- package/docs/it/intlayer_with_vite+preact.md +9 -9
- package/docs/it/intlayer_with_vite+react.md +13 -11
- package/docs/it/intlayer_with_vite+vue.md +11 -11
- package/docs/ja/intlayer_with_angular.md +2 -2
- package/docs/ja/intlayer_with_astro.md +246 -0
- package/docs/ja/intlayer_with_create_react_app.md +3 -2
- package/docs/ja/intlayer_with_express.md +2 -2
- package/docs/ja/intlayer_with_nestjs.md +2 -2
- package/docs/ja/intlayer_with_nextjs_14.md +2 -2
- package/docs/ja/intlayer_with_nextjs_15.md +2 -2
- package/docs/ja/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ja/intlayer_with_nuxt.md +2 -2
- package/docs/ja/intlayer_with_react_native+expo.md +18 -29
- package/docs/ja/intlayer_with_react_router_v7.md +204 -250
- package/docs/ja/intlayer_with_tanstack.md +218 -286
- package/docs/ja/intlayer_with_vite+preact.md +9 -9
- package/docs/ja/intlayer_with_vite+react.md +11 -11
- package/docs/ja/intlayer_with_vite+vue.md +11 -11
- package/docs/ko/intlayer_with_angular.md +2 -2
- package/docs/ko/intlayer_with_astro.md +246 -0
- package/docs/ko/intlayer_with_create_react_app.md +3 -2
- package/docs/ko/intlayer_with_express.md +2 -2
- package/docs/ko/intlayer_with_nestjs.md +2 -2
- package/docs/ko/intlayer_with_nextjs_14.md +2 -2
- package/docs/ko/intlayer_with_nextjs_15.md +2 -2
- package/docs/ko/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ko/intlayer_with_nuxt.md +2 -2
- package/docs/ko/intlayer_with_react_native+expo.md +19 -28
- package/docs/ko/intlayer_with_react_router_v7.md +190 -244
- package/docs/ko/intlayer_with_tanstack.md +200 -270
- package/docs/ko/intlayer_with_vite+preact.md +9 -9
- package/docs/ko/intlayer_with_vite+react.md +9 -9
- package/docs/ko/intlayer_with_vite+vue.md +11 -11
- package/docs/pt/intlayer_with_angular.md +2 -2
- package/docs/pt/intlayer_with_astro.md +246 -0
- package/docs/pt/intlayer_with_create_react_app.md +3 -2
- package/docs/pt/intlayer_with_express.md +2 -2
- package/docs/pt/intlayer_with_nestjs.md +2 -2
- package/docs/pt/intlayer_with_nextjs_14.md +2 -2
- package/docs/pt/intlayer_with_nextjs_15.md +2 -2
- package/docs/pt/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/pt/intlayer_with_nuxt.md +2 -2
- package/docs/pt/intlayer_with_react_native+expo.md +11 -20
- package/docs/pt/intlayer_with_react_router_v7.md +7 -13
- package/docs/pt/intlayer_with_tanstack.md +183 -258
- package/docs/pt/intlayer_with_vite+preact.md +9 -9
- package/docs/pt/intlayer_with_vite+react.md +9 -9
- package/docs/pt/intlayer_with_vite+vue.md +9 -9
- package/docs/ru/intlayer_with_angular.md +2 -2
- package/docs/ru/intlayer_with_astro.md +246 -0
- package/docs/ru/intlayer_with_create_react_app.md +3 -2
- package/docs/ru/intlayer_with_express.md +2 -2
- package/docs/ru/intlayer_with_nestjs.md +2 -2
- package/docs/ru/intlayer_with_nextjs_14.md +2 -2
- package/docs/ru/intlayer_with_nextjs_15.md +2 -2
- package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/ru/intlayer_with_nuxt.md +2 -2
- package/docs/ru/intlayer_with_react_native+expo.md +11 -20
- package/docs/ru/intlayer_with_react_router_v7.md +192 -238
- package/docs/ru/intlayer_with_tanstack.md +197 -269
- package/docs/ru/intlayer_with_vite+preact.md +9 -9
- package/docs/ru/intlayer_with_vite+react.md +9 -9
- package/docs/ru/intlayer_with_vite+vue.md +11 -11
- package/docs/tr/how_works_intlayer.md +1 -1
- package/docs/tr/index.md +1 -1
- package/docs/tr/intlayer_cli.md +1 -1
- package/docs/tr/intlayer_with_angular.md +4 -4
- package/docs/tr/intlayer_with_astro.md +246 -0
- package/docs/tr/intlayer_with_create_react_app.md +4 -4
- package/docs/tr/intlayer_with_express.md +3 -3
- package/docs/tr/intlayer_with_lynx+react.md +1 -1
- package/docs/tr/intlayer_with_nestjs.md +2 -2
- package/docs/tr/intlayer_with_nextjs_14.md +2 -2
- package/docs/tr/intlayer_with_nextjs_15.md +4 -4
- package/docs/tr/intlayer_with_nextjs_page_router.md +5 -5
- package/docs/tr/intlayer_with_nuxt.md +4 -4
- package/docs/tr/intlayer_with_react_native+expo.md +12 -21
- package/docs/tr/intlayer_with_react_router_v7.md +222 -267
- package/docs/tr/intlayer_with_tanstack.md +400 -303
- package/docs/tr/intlayer_with_vite+preact.md +12 -12
- package/docs/tr/intlayer_with_vite+react.md +12 -12
- package/docs/tr/intlayer_with_vite+solid.md +2 -2
- package/docs/tr/intlayer_with_vite+svelte.md +2 -2
- package/docs/tr/intlayer_with_vite+vue.md +12 -12
- package/docs/tr/introduction.md +1 -1
- package/docs/tr/packages/react-intlayer/useDictionary.md +1 -1
- package/docs/tr/packages/react-intlayer/useI18n.md +1 -1
- package/docs/tr/roadmap.md +1 -1
- package/docs/zh/intlayer_with_angular.md +2 -2
- package/docs/zh/intlayer_with_astro.md +246 -0
- package/docs/zh/intlayer_with_create_react_app.md +3 -2
- package/docs/zh/intlayer_with_express.md +2 -2
- package/docs/zh/intlayer_with_nestjs.md +2 -2
- package/docs/zh/intlayer_with_nextjs_14.md +2 -2
- package/docs/zh/intlayer_with_nextjs_15.md +2 -2
- package/docs/zh/intlayer_with_nextjs_page_router.md +2 -2
- package/docs/zh/intlayer_with_nuxt.md +2 -2
- package/docs/zh/intlayer_with_react_native+expo.md +19 -28
- package/docs/zh/intlayer_with_react_router_v7.md +200 -248
- package/docs/zh/intlayer_with_tanstack.md +208 -283
- package/docs/zh/intlayer_with_vite+preact.md +9 -9
- package/docs/zh/intlayer_with_vite+react.md +9 -9
- package/docs/zh/intlayer_with_vite+vue.md +9 -9
- package/package.json +11 -11
- package/src/generated/docs.entry.ts +16 -0
|
@@ -1056,38 +1056,38 @@ const App = () => (
|
|
|
1056
1056
|
module.exports = App;
|
|
1057
1057
|
```
|
|
1058
1058
|
|
|
1059
|
-
Em paralelo, você também pode usar o `
|
|
1059
|
+
Em paralelo, você também pode usar o `intlayerMiddleware` 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.
|
|
1060
1060
|
|
|
1061
1061
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1062
1062
|
import { defineConfig } from "vite";
|
|
1063
1063
|
import preact from "@preact/preset-vite";
|
|
1064
|
-
import { intlayer,
|
|
1064
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
1065
1065
|
|
|
1066
1066
|
// https://vitejs.dev/config/
|
|
1067
1067
|
export default defineConfig({
|
|
1068
|
-
plugins: [preact(), intlayer(),
|
|
1068
|
+
plugins: [preact(), intlayer(), intlayerMiddleware()],
|
|
1069
1069
|
});
|
|
1070
1070
|
```
|
|
1071
1071
|
|
|
1072
1072
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1073
1073
|
import { defineConfig } from "vite";
|
|
1074
1074
|
import preact from "@preact/preset-vite";
|
|
1075
|
-
import { intlayer,
|
|
1075
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
1076
1076
|
|
|
1077
1077
|
// https://vitejs.dev/config/
|
|
1078
1078
|
export default defineConfig({
|
|
1079
|
-
plugins: [preact(), intlayer(),
|
|
1079
|
+
plugins: [preact(), intlayer(), intlayerMiddleware()],
|
|
1080
1080
|
});
|
|
1081
1081
|
```
|
|
1082
1082
|
|
|
1083
1083
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1084
1084
|
const { defineConfig } = require("vite");
|
|
1085
1085
|
const preact = require("@preact/preset-vite");
|
|
1086
|
-
const { intlayer,
|
|
1086
|
+
const { intlayer, intlayerMiddleware } = require("vite-intlayer");
|
|
1087
1087
|
|
|
1088
1088
|
// https://vitejs.dev/config/
|
|
1089
1089
|
module.exports = defineConfig({
|
|
1090
|
-
plugins: [preact(), intlayer(),
|
|
1090
|
+
plugins: [preact(), intlayer(), intlayerMiddleware()],
|
|
1091
1091
|
});
|
|
1092
1092
|
```
|
|
1093
1093
|
|
|
@@ -1631,9 +1631,9 @@ module.exports = { LocalizedLink, checkIsExternalLink };
|
|
|
1631
1631
|
|
|
1632
1632
|
O Intlayer usa a ampliação de módulos para aproveitar os benefícios do TypeScript e tornar sua base de código mais robusta.
|
|
1633
1633
|
|
|
1634
|
-

|
|
1635
1635
|
|
|
1636
|
-

|
|
1637
1637
|
|
|
1638
1638
|
Garanta que sua configuração do TypeScript inclua os tipos gerados automaticamente.
|
|
1639
1639
|
|
|
@@ -1018,38 +1018,38 @@ const App = () => (
|
|
|
1018
1018
|
);
|
|
1019
1019
|
```
|
|
1020
1020
|
|
|
1021
|
-
Paralelamente, você também pode usar o `
|
|
1021
|
+
Paralelamente, você também pode usar o `intlayerMiddleware` 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.
|
|
1022
1022
|
|
|
1023
1023
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
1024
1024
|
import { defineConfig } from "vite";
|
|
1025
1025
|
import react from "@vitejs/plugin-react-swc";
|
|
1026
|
-
import { intlayer,
|
|
1026
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
1027
1027
|
|
|
1028
1028
|
// https://vitejs.dev/config/
|
|
1029
1029
|
export default defineConfig({
|
|
1030
|
-
plugins: [react(), intlayer(),
|
|
1030
|
+
plugins: [react(), intlayer(), intlayerMiddleware()],
|
|
1031
1031
|
});
|
|
1032
1032
|
```
|
|
1033
1033
|
|
|
1034
1034
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
1035
1035
|
import { defineConfig } from "vite";
|
|
1036
1036
|
import react from "@vitejs/plugin-react-swc";
|
|
1037
|
-
import { intlayer,
|
|
1037
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
1038
1038
|
|
|
1039
1039
|
// https://vitejs.dev/config/
|
|
1040
1040
|
export default defineConfig({
|
|
1041
|
-
plugins: [react(), intlayer(),
|
|
1041
|
+
plugins: [react(), intlayer(), intlayerMiddleware()],
|
|
1042
1042
|
});
|
|
1043
1043
|
```
|
|
1044
1044
|
|
|
1045
1045
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
1046
1046
|
const { defineConfig } = require("vite");
|
|
1047
1047
|
const react = require("@vitejs/plugin-react-swc");
|
|
1048
|
-
const { intlayer,
|
|
1048
|
+
const { intlayer, intlayerMiddleware } = require("vite-intlayer");
|
|
1049
1049
|
|
|
1050
1050
|
// https://vitejs.dev/config/
|
|
1051
1051
|
module.exports = defineConfig({
|
|
1052
|
-
plugins: [react(), intlayer(),
|
|
1052
|
+
plugins: [react(), intlayer(), intlayerMiddleware()],
|
|
1053
1053
|
});
|
|
1054
1054
|
```
|
|
1055
1055
|
|
|
@@ -1583,9 +1583,9 @@ Ao integrar este componente `Link` em toda a sua aplicação, você mantém uma
|
|
|
1583
1583
|
|
|
1584
1584
|
O Intlayer utiliza a ampliação de módulos para aproveitar os benefícios do TypeScript e tornar sua base de código mais robusta.
|
|
1585
1585
|
|
|
1586
|
-

|
|
1587
1587
|
|
|
1588
|
-

|
|
1589
1589
|
|
|
1590
1590
|
Certifique-se de que sua configuração do TypeScript inclua os tipos gerados automaticamente.
|
|
1591
1591
|
|
|
@@ -670,46 +670,46 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
|
|
|
670
670
|
</template>
|
|
671
671
|
```
|
|
672
672
|
|
|
673
|
-
Paralelamente, você também pode usar o `
|
|
673
|
+
Paralelamente, você também pode usar o `intlayerMiddleware` 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.
|
|
674
674
|
|
|
675
675
|
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
676
676
|
import { defineConfig } from "vite";
|
|
677
677
|
import vue from "@vitejs/plugin-vue";
|
|
678
|
-
import { intlayer,
|
|
678
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
679
679
|
|
|
680
680
|
// https://vitejs.dev/config/
|
|
681
681
|
export default defineConfig({
|
|
682
|
-
plugins: [vue(), intlayer(),
|
|
682
|
+
plugins: [vue(), intlayer(), intlayerMiddleware()],
|
|
683
683
|
});
|
|
684
684
|
```
|
|
685
685
|
|
|
686
686
|
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
687
687
|
import { defineConfig } from "vite";
|
|
688
688
|
import vue from "@vitejs/plugin-vue";
|
|
689
|
-
import { intlayer,
|
|
689
|
+
import { intlayer, intlayerMiddleware } from "vite-intlayer";
|
|
690
690
|
|
|
691
691
|
// https://vitejs.dev/config/
|
|
692
692
|
export default defineConfig({
|
|
693
|
-
plugins: [vue(), intlayer(),
|
|
693
|
+
plugins: [vue(), intlayer(), intlayerMiddleware()],
|
|
694
694
|
});
|
|
695
695
|
```
|
|
696
696
|
|
|
697
697
|
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
698
698
|
const { defineConfig } = require("vite");
|
|
699
699
|
const vue = require("@vitejs/plugin-vue");
|
|
700
|
-
const { intlayer,
|
|
700
|
+
const { intlayer, intlayerMiddleware } = require("vite-intlayer");
|
|
701
701
|
|
|
702
702
|
// https://vitejs.dev/config/
|
|
703
703
|
module.exports = defineConfig({
|
|
704
|
-
plugins: [vue(), intlayer(),
|
|
704
|
+
plugins: [vue(), intlayer(), intlayerMiddleware()],
|
|
705
705
|
});
|
|
706
706
|
const { defineConfig } = require("vite");
|
|
707
707
|
const vue = require("@vitejs/plugin-vue");
|
|
708
|
-
const { intlayer,
|
|
708
|
+
const { intlayer, intlayerMiddleware } = require("vite-intlayer");
|
|
709
709
|
|
|
710
710
|
// https://vitejs.dev/config/
|
|
711
711
|
module.exports = defineConfig({
|
|
712
|
-
plugins: [vue(), intlayer(),
|
|
712
|
+
plugins: [vue(), intlayer(), intlayerMiddleware()],
|
|
713
713
|
});
|
|
714
714
|
```
|
|
715
715
|
|
|
@@ -664,9 +664,9 @@ export const appConfig: ApplicationConfig = {
|
|
|
664
664
|
|
|
665
665
|
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать ваш код более надежным.
|
|
666
666
|
|
|
667
|
-

|
|
668
668
|
|
|
669
|
-

|
|
670
670
|
|
|
671
671
|
Убедитесь, что ваша конфигурация TypeScript включает автогенерируемые типы.
|
|
672
672
|
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-03-07
|
|
3
|
+
updatedAt: 2025-10-03
|
|
4
|
+
title: Начало работы с Intlayer в Astro
|
|
5
|
+
description: Узнайте, как добавить интернационализацию (i18n) в ваше приложение на Vite и React с помощью Intlayer. Следуйте этому руководству, чтобы сделать ваше приложение многоязычным.
|
|
6
|
+
keywords:
|
|
7
|
+
- Интернационализация
|
|
8
|
+
- Документация
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Vite
|
|
11
|
+
- React
|
|
12
|
+
- i18n
|
|
13
|
+
- JavaScript
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- environment
|
|
17
|
+
- astro
|
|
18
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Начало работы с интернационализацией (i18n) с Intlayer и Astro
|
|
22
|
+
|
|
23
|
+
Смотрите [Шаблон приложения](https://github.com/aymericzip/intlayer-astro-template) на GitHub.
|
|
24
|
+
|
|
25
|
+
## Что такое Intlayer?
|
|
26
|
+
|
|
27
|
+
**Intlayer** — это инновационная, с открытым исходным кодом библиотека интернационализации (i18n), разработанная для упрощения поддержки многоязычности в современных веб-приложениях.
|
|
28
|
+
|
|
29
|
+
С помощью Intlayer вы можете:
|
|
30
|
+
|
|
31
|
+
- **Легко управлять переводами** с использованием декларативных словарей на уровне компонентов.
|
|
32
|
+
- **Динамически локализовать метаданные**, маршруты и контент.
|
|
33
|
+
- **Обеспечить поддержку TypeScript** с помощью автогенерируемых типов, улучшая автозаполнение и обнаружение ошибок.
|
|
34
|
+
- **Воспользоваться расширенными возможностями**, такими как динамическое определение и переключение локали.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Пошаговое руководство по настройке Intlayer в Astro
|
|
39
|
+
|
|
40
|
+
### Шаг 1: Установка зависимостей
|
|
41
|
+
|
|
42
|
+
Установите необходимые пакеты с помощью вашего менеджера пакетов:
|
|
43
|
+
|
|
44
|
+
```bash packageManager="npm"
|
|
45
|
+
npm install intlayer astro-intlayer
|
|
46
|
+
# Optional: add React island support
|
|
47
|
+
npm install react react-dom react-intlayer @astrojs/react
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```bash packageManager="pnpm"
|
|
51
|
+
pnpm add intlayer astro-intlayer
|
|
52
|
+
# Необязательно: добавить поддержку React island
|
|
53
|
+
pnpm add react react-dom react-intlayer @astrojs/react
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```bash packageManager="yarn"
|
|
57
|
+
yarn add intlayer astro-intlayer
|
|
58
|
+
# Необязательно: добавить поддержку React island
|
|
59
|
+
yarn add react react-dom react-intlayer @astrojs/react
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- **intlayer**
|
|
63
|
+
Основной пакет, предоставляющий инструменты интернационализации для управления конфигурацией, переводами, [объявлением контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md), транспиляцией и [CLI-командами](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_cli.md).
|
|
64
|
+
|
|
65
|
+
- **astro-intlayer**
|
|
66
|
+
Включает плагин интеграции Astro для интеграции Intlayer с [сборщиком Vite](https://vite.dev/guide/why.html#why-bundle-for-production), а также промежуточное ПО для определения предпочитаемой пользователем локали, управления cookie и обработки перенаправления URL.
|
|
67
|
+
|
|
68
|
+
### Шаг 2: Конфигурация вашего проекта
|
|
69
|
+
|
|
70
|
+
Создайте файл конфигурации для настройки языков вашего приложения:
|
|
71
|
+
|
|
72
|
+
```typescript fileName="intlayer.config.ts"
|
|
73
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
74
|
+
|
|
75
|
+
const config: IntlayerConfig = {
|
|
76
|
+
internationalization: {
|
|
77
|
+
locales: [
|
|
78
|
+
Locales.ENGLISH,
|
|
79
|
+
Locales.FRENCH,
|
|
80
|
+
Locales.SPANISH,
|
|
81
|
+
// Ваши другие локали
|
|
82
|
+
],
|
|
83
|
+
defaultLocale: Locales.ENGLISH,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export default config;
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
> Через этот файл конфигурации вы можете настроить локализованные URL, перенаправление в промежуточном ПО, имена cookie, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Для полного списка доступных параметров обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
|
|
91
|
+
|
|
92
|
+
### Шаг 3: Интеграция Intlayer в вашу конфигурацию Astro
|
|
93
|
+
|
|
94
|
+
Добавьте плагин intlayer в вашу конфигурацию.
|
|
95
|
+
|
|
96
|
+
```typescript fileName="astro.config.ts"
|
|
97
|
+
// @ts-check
|
|
98
|
+
|
|
99
|
+
import { intlayer } from "astro-intlayer";
|
|
100
|
+
import { defineConfig } from "astro/config";
|
|
101
|
+
|
|
102
|
+
// https://astro.build/config
|
|
103
|
+
export default defineConfig({
|
|
104
|
+
integrations: [intlayer()],
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> Плагин интеграции `intlayer()` для Astro используется для интеграции Intlayer с Astro. Он обеспечивает создание файлов деклараций контента и их мониторинг в режиме разработки. Определяет переменные окружения Intlayer внутри приложения Astro. Кроме того, предоставляет алиасы для оптимизации производительности.
|
|
109
|
+
|
|
110
|
+
### Шаг 4: Объявите ваш контент
|
|
111
|
+
|
|
112
|
+
Создайте и управляйте декларациями контента для хранения переводов:
|
|
113
|
+
|
|
114
|
+
```tsx fileName="src/app.content.tsx"
|
|
115
|
+
import { t, type Dictionary } from "intlayer";
|
|
116
|
+
import type { ReactNode } from "react";
|
|
117
|
+
|
|
118
|
+
const appContent = {
|
|
119
|
+
key: "app",
|
|
120
|
+
content: {
|
|
121
|
+
title: t({
|
|
122
|
+
en: "Hello World",
|
|
123
|
+
fr: "Bonjour le monde",
|
|
124
|
+
es: "Hola mundo",
|
|
125
|
+
}),
|
|
126
|
+
},
|
|
127
|
+
} satisfies Dictionary;
|
|
128
|
+
|
|
129
|
+
export default appContent;
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
> Ваши декларации контента могут быть определены в любом месте вашего приложения, как только они включены в директорию `contentDir` (по умолчанию, `./src`). И соответствуют расширению файла декларации контента (по умолчанию, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
|
|
133
|
+
|
|
134
|
+
> Для получения дополнительной информации обратитесь к [документации по декларации контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/get_started.md).
|
|
135
|
+
|
|
136
|
+
### Шаг 5: Используйте ваш контент в Astro
|
|
137
|
+
|
|
138
|
+
Вы можете использовать словари напрямую в файлах `.astro`, используя основные помощники, экспортируемые `intlayer`.
|
|
139
|
+
|
|
140
|
+
```astro fileName="src/pages/index.astro"
|
|
141
|
+
<!-- astro -->
|
|
142
|
+
---
|
|
143
|
+
import { getIntlayer } from "intlayer";
|
|
144
|
+
import appContent from "../app.content";
|
|
145
|
+
|
|
146
|
+
const { title } = getIntlayer('app');
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
<html lang="en">
|
|
150
|
+
<head>
|
|
151
|
+
<meta charset="utf-8" />
|
|
152
|
+
<meta name="viewport" content="width=device-width" />
|
|
153
|
+
<title>{title}</title>
|
|
154
|
+
</head>
|
|
155
|
+
<body>
|
|
156
|
+
<h1>{title}</h1>
|
|
157
|
+
</body>
|
|
158
|
+
</html>
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Шаг 6: Локализованный роутинг
|
|
162
|
+
|
|
163
|
+
Создайте динамический сегмент маршрута для обслуживания локализованных страниц, например `src/pages/[locale]/index.astro`:
|
|
164
|
+
|
|
165
|
+
```astro fileName="src/pages/[locale]/index.astro"
|
|
166
|
+
<!-- astro -->
|
|
167
|
+
---
|
|
168
|
+
import { getIntlayer } from "intlayer";
|
|
169
|
+
|
|
170
|
+
const { title } = getIntlayer('app');
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
<h1>{title}</h1>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Интеграция Astro добавляет промежуточное ПО Vite во время разработки, которое помогает с маршрутизацией с учётом локали и определениями окружения. Вы всё ещё можете создавать ссылки между локалями, используя свою логику или утилиты, такие как `getLocalizedUrl` из `intlayer`.
|
|
177
|
+
|
|
178
|
+
### Шаг 7: Продолжайте использовать ваш любимый фреймворк
|
|
179
|
+
|
|
180
|
+
Продолжайте использовать ваш любимый фреймворк для создания вашего приложения.
|
|
181
|
+
|
|
182
|
+
- Intlayer + React: [Intlayer с React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_vite+react.md)
|
|
183
|
+
- Intlayer + Vue: [Intlayer с Vue](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_vite+vue.md)
|
|
184
|
+
- Intlayer + Svelte: [Intlayer с Svelte](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_vite+svelte.md)
|
|
185
|
+
- Intlayer + Solid: [Intlayer с Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_vite+solid.md)
|
|
186
|
+
- Intlayer + Preact: [Intlayer с Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_vite+preact.md)
|
|
187
|
+
|
|
188
|
+
### Настройка TypeScript
|
|
189
|
+
|
|
190
|
+
Intlayer использует расширение модулей, чтобы получить преимущества TypeScript и сделать вашу кодовую базу более надежной.
|
|
191
|
+
|
|
192
|
+

|
|
193
|
+
|
|
194
|
+

|
|
195
|
+
|
|
196
|
+
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы.
|
|
197
|
+
|
|
198
|
+
```json5 fileName="tsconfig.json"
|
|
199
|
+
{
|
|
200
|
+
// ... Ваши существующие конфигурации TypeScript
|
|
201
|
+
"include": [
|
|
202
|
+
// ... Ваши существующие конфигурации TypeScript
|
|
203
|
+
".intlayer/**/*.ts", // Включить автоматически сгенерированные типы
|
|
204
|
+
],
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Конфигурация Git
|
|
209
|
+
|
|
210
|
+
Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш Git-репозиторий.
|
|
211
|
+
|
|
212
|
+
Для этого вы можете добавить следующие инструкции в ваш файл `.gitignore`:
|
|
213
|
+
|
|
214
|
+
```plaintext
|
|
215
|
+
# Игнорировать файлы, сгенерированные Intlayer
|
|
216
|
+
.intlayer
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Расширение VS Code
|
|
220
|
+
|
|
221
|
+
Для улучшения вашего опыта разработки с Intlayer вы можете установить официальное **расширение Intlayer для VS Code**.
|
|
222
|
+
|
|
223
|
+
[Установить из магазина расширений VS Code](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
224
|
+
|
|
225
|
+
Это расширение предоставляет:
|
|
226
|
+
|
|
227
|
+
- **Автозаполнение** ключей переводов.
|
|
228
|
+
- **Обнаружение ошибок в реальном времени** для отсутствующих переводов.
|
|
229
|
+
- **Встроенный просмотр** переведённого контента.
|
|
230
|
+
- **Быстрые действия** для лёгкого создания и обновления переводов.
|
|
231
|
+
|
|
232
|
+
Для получения дополнительной информации о том, как использовать расширение, обратитесь к [документации расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
### Продвинутые возможности
|
|
237
|
+
|
|
238
|
+
Для расширения возможностей вы можете реализовать [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) или вынести ваш контент с помощью [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## История документации
|
|
243
|
+
|
|
244
|
+
| Версия | Дата | Изменения |
|
|
245
|
+
| ------ | ---------- | -------------------------------------------------------------- |
|
|
246
|
+
| 6.2.0 | 2025-10-03 | Обновление для интеграции с Astro, конфигурация, использование |
|
|
@@ -1223,9 +1223,10 @@ module.exports = App;
|
|
|
1223
1223
|
|
|
1224
1224
|
Intlayer использует расширение модулей (module augmentation), чтобы получить преимущества TypeScript и сделать вашу кодовую базу более надежной.
|
|
1225
1225
|
|
|
1226
|
-

|
|
1227
|
+
|
|
1228
|
+

|
|
1227
1229
|
|
|
1228
|
-

|
|
1229
1230
|
Убедитесь, что ваша конфигурация TypeScript включает автогенерируемые типы.
|
|
1230
1231
|
|
|
1231
1232
|
```json5 fileName="tsconfig.json"
|
|
@@ -388,9 +388,9 @@ module.exports = config;
|
|
|
388
388
|
|
|
389
389
|
`express-intlayer` использует мощные возможности TypeScript для улучшения процесса интернационализации. Статическая типизация TypeScript гарантирует, что каждый ключ перевода учтён, что снижает риск отсутствия переводов и повышает удобство сопровождения.
|
|
390
390
|
|
|
391
|
-

|
|
392
392
|
|
|
393
|
-

|
|
394
394
|
|
|
395
395
|
Убедитесь, что автогенерируемые типы (по умолчанию в ./types/intlayer.d.ts) включены в ваш файл tsconfig.json.
|
|
396
396
|
|
|
@@ -221,9 +221,9 @@ export default config;
|
|
|
221
221
|
|
|
222
222
|
`express-intlayer` использует мощные возможности TypeScript для улучшения процесса интернационализации. Статическая типизация TypeScript гарантирует, что каждый ключ перевода учтен, снижая риск отсутствия переводов и повышая удобство сопровождения.
|
|
223
223
|
|
|
224
|
-

|
|
225
225
|
|
|
226
|
-

|
|
227
227
|
|
|
228
228
|
Убедитесь, что автогенерируемые типы (по умолчанию в ./types/intlayer.d.ts) включены в ваш файл tsconfig.json.
|
|
229
229
|
|
|
@@ -1252,9 +1252,9 @@ yarn add @intlayer/swc --save-dev
|
|
|
1252
1252
|
|
|
1253
1253
|
Intlayer использует расширение модулей для получения преимуществ TypeScript и усиления вашего кода.
|
|
1254
1254
|
|
|
1255
|
-

|
|
1256
1256
|
|
|
1257
|
-

|
|
1258
1258
|
|
|
1259
1259
|
Убедитесь, что ваша конфигурация TypeScript включает автогенерируемые типы.
|
|
1260
1260
|
|
|
@@ -1497,9 +1497,9 @@ yarn add @intlayer/swc --save-dev
|
|
|
1497
1497
|
|
|
1498
1498
|
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать ваш код более надёжным.
|
|
1499
1499
|
|
|
1500
|
-

|
|
1501
1501
|
|
|
1502
|
-

|
|
1503
1503
|
|
|
1504
1504
|
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы.
|
|
1505
1505
|
|
|
@@ -1457,9 +1457,9 @@ yarn add @intlayer/swc --save-dev
|
|
|
1457
1457
|
|
|
1458
1458
|
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать ваш код более надёжным.
|
|
1459
1459
|
|
|
1460
|
-

|
|
1461
1461
|
|
|
1462
|
-

|
|
1463
1463
|
|
|
1464
1464
|
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы.
|
|
1465
1465
|
|
|
@@ -762,9 +762,9 @@ module.exports = aboutMetaContent;
|
|
|
762
762
|
|
|
763
763
|
Intlayer использует расширение модулей (module augmentation), чтобы использовать преимущества TypeScript и сделать вашу кодовую базу более надежной.
|
|
764
764
|
|
|
765
|
-

|
|
766
766
|
|
|
767
|
-

|
|
768
768
|
|
|
769
769
|
Убедитесь, что ваша конфигурация TypeScript включает автоматически сгенерированные типы.
|
|
770
770
|
|
|
@@ -148,28 +148,25 @@ module.exports = (async () => {
|
|
|
148
148
|
|
|
149
149
|
## Шаг 4: Добавьте провайдер Intlayer
|
|
150
150
|
|
|
151
|
-
Чтобы синхронизировать язык пользователя
|
|
151
|
+
Чтобы синхронизировать язык пользователя во всем приложении, необходимо обернуть корневой компонент в компонент `IntlayerProvider` из `react-intlayer-native`.
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
> Убедитесь, что вы используете провайдер из `react-native-intlayer`, а не из `react-intlayer`. Экспорт из `react-native-intlayer` включает полифилы для веб-API.
|
|
154
154
|
|
|
155
155
|
```tsx fileName="app/_layout.tsx" codeFormat="typescript"
|
|
156
156
|
import { Stack } from "expo-router";
|
|
157
157
|
import { getLocales } from "expo-localization";
|
|
158
|
-
import {
|
|
159
|
-
import { intlayerPolyfill } from "react-native-intlayer";
|
|
158
|
+
import { IntlayerProvider } from "react-native-intlayer";
|
|
160
159
|
import { type FC } from "react";
|
|
161
160
|
|
|
162
|
-
intlayerPolyfill();
|
|
163
|
-
|
|
164
161
|
const getDeviceLocale = () => getLocales()[0]?.languageTag;
|
|
165
162
|
|
|
166
163
|
const RootLayout: FC = () => {
|
|
167
164
|
return (
|
|
168
|
-
<
|
|
165
|
+
<IntlayerProvider defaultLocale={getDeviceLocale()}>
|
|
169
166
|
<Stack>
|
|
170
167
|
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
|
|
171
168
|
</Stack>
|
|
172
|
-
</
|
|
169
|
+
</IntlayerProvider>
|
|
173
170
|
);
|
|
174
171
|
};
|
|
175
172
|
|
|
@@ -179,20 +176,17 @@ export default RootLayout;
|
|
|
179
176
|
```jsx fileName="app/_layout.mjx" codeFormat="esm"
|
|
180
177
|
import { Stack } from "expo-router";
|
|
181
178
|
import { getLocales } from "expo-localization";
|
|
182
|
-
import {
|
|
183
|
-
import { intlayerPolyfill } from "react-native-intlayer";
|
|
184
|
-
|
|
185
|
-
intlayerPolyfill();
|
|
179
|
+
import { IntlayerProvider } from "react-native-intlayer";
|
|
186
180
|
|
|
187
181
|
const getDeviceLocale = () => getLocales()[0]?.languageTag;
|
|
188
182
|
|
|
189
183
|
const RootLayout = () => {
|
|
190
184
|
return (
|
|
191
|
-
<
|
|
185
|
+
<IntlayerProvider defaultLocale={getDeviceLocale()}>
|
|
192
186
|
<Stack>
|
|
193
187
|
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
|
|
194
188
|
</Stack>
|
|
195
|
-
</
|
|
189
|
+
</IntlayerProvider>
|
|
196
190
|
);
|
|
197
191
|
};
|
|
198
192
|
|
|
@@ -202,21 +196,18 @@ export default RootLayout;
|
|
|
202
196
|
```jsx fileName="app/_layout.cjx" codeFormat="commonjs"
|
|
203
197
|
const { Stack } = require("expo-router");
|
|
204
198
|
const { getLocales } = require("expo-localization");
|
|
205
|
-
const {
|
|
206
|
-
const { intlayerPolyfill } = require("react-native-intlayer");
|
|
207
|
-
|
|
208
|
-
intlayerPolyfill();
|
|
199
|
+
const { IntlayerProvider } = require("react-native-intlayer");
|
|
209
200
|
|
|
210
201
|
// Получаем локаль устройства
|
|
211
202
|
const getDeviceLocale = () => getLocales()[0]?.languageTag;
|
|
212
203
|
|
|
213
204
|
const RootLayout = () => {
|
|
214
205
|
return (
|
|
215
|
-
<
|
|
206
|
+
<IntlayerProvider defaultLocale={getDeviceLocale()}>
|
|
216
207
|
<Stack>
|
|
217
208
|
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
|
|
218
209
|
</Stack>
|
|
219
|
-
</
|
|
210
|
+
</IntlayerProvider>
|
|
220
211
|
);
|
|
221
212
|
};
|
|
222
213
|
|