@intlayer/docs 8.3.0-canary.4 → 8.3.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/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + Vue i18n - Como traduzir uma aplicação Vue em 2026
|
|
5
5
|
description: Descubra como tornar seu site Vite e Vue multilíngue. Siga a documentação para internacionalizar (i18n) e traduzir.
|
|
6
6
|
keywords:
|
|
@@ -1037,6 +1037,162 @@ const { myMarkdownContent } = useIntlayer("my-component");
|
|
|
1037
1037
|
</script>
|
|
1038
1038
|
```
|
|
1039
1039
|
|
|
1040
|
+
### (Opcional) Etapa 1 : Extrair o conteúdo dos seus componentes
|
|
1041
|
+
|
|
1042
|
+
Se você tiver uma base de código existente, transformar milhares de arquivos pode ser demorado.
|
|
1043
|
+
|
|
1044
|
+
Para facilitar esse processo, o Intlayer propõe um [compilador](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/compiler.md) / [extrator](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/cli/extract.md) para transformar seus componentes e extrair o conteúdo.
|
|
1045
|
+
|
|
1046
|
+
Para configurá-lo, você pode adicionar uma seção `compiler` no seu arquivo `intlayer.config.ts`:
|
|
1047
|
+
|
|
1048
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1049
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1050
|
+
|
|
1051
|
+
const config: IntlayerConfig = {
|
|
1052
|
+
// ... Resto da sua configuração
|
|
1053
|
+
compiler: {
|
|
1054
|
+
/**
|
|
1055
|
+
* Indica se o compilador deve ser ativado.
|
|
1056
|
+
*/
|
|
1057
|
+
enabled: true,
|
|
1058
|
+
|
|
1059
|
+
/**
|
|
1060
|
+
* Define o caminho dos arquivos de saída
|
|
1061
|
+
*/
|
|
1062
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1063
|
+
|
|
1064
|
+
/**
|
|
1065
|
+
* Indica se os componentes devem ser salvos após serem transformados. Dessa forma, o compilador pode ser executado apenas uma vez para transformar o aplicativo e depois removido.
|
|
1066
|
+
*/
|
|
1067
|
+
saveComponents: false,
|
|
1068
|
+
|
|
1069
|
+
/**
|
|
1070
|
+
* Prefixo da chave do dicionário
|
|
1071
|
+
*/
|
|
1072
|
+
dictionaryKeyPrefix: "",
|
|
1073
|
+
},
|
|
1074
|
+
};
|
|
1075
|
+
|
|
1076
|
+
export default config;
|
|
1077
|
+
```
|
|
1078
|
+
|
|
1079
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1080
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1081
|
+
const config = {
|
|
1082
|
+
// ... Resto da sua configuração
|
|
1083
|
+
compiler: {
|
|
1084
|
+
/**
|
|
1085
|
+
* Indica se o compilador deve ser ativado.
|
|
1086
|
+
*/
|
|
1087
|
+
enabled: true,
|
|
1088
|
+
|
|
1089
|
+
/**
|
|
1090
|
+
* Define o caminho dos arquivos de saída
|
|
1091
|
+
*/
|
|
1092
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1093
|
+
|
|
1094
|
+
/**
|
|
1095
|
+
* Indica se os componentes devem ser salvos após serem transformados. Dessa forma, o compilador pode ser executado apenas uma vez para transformar o aplicativo e depois removido.
|
|
1096
|
+
*/
|
|
1097
|
+
saveComponents: false,
|
|
1098
|
+
|
|
1099
|
+
/**
|
|
1100
|
+
* Prefixo da chave do dicionário
|
|
1101
|
+
*/
|
|
1102
|
+
dictionaryKeyPrefix: "",
|
|
1103
|
+
},
|
|
1104
|
+
};
|
|
1105
|
+
|
|
1106
|
+
export default config;
|
|
1107
|
+
```
|
|
1108
|
+
|
|
1109
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1110
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1111
|
+
const config = {
|
|
1112
|
+
// ... Resto da sua configuração
|
|
1113
|
+
compiler: {
|
|
1114
|
+
/**
|
|
1115
|
+
* Indica se o compilador deve ser ativado.
|
|
1116
|
+
*/
|
|
1117
|
+
enabled: true,
|
|
1118
|
+
|
|
1119
|
+
/**
|
|
1120
|
+
* Define o caminho dos arquivos de saída
|
|
1121
|
+
*/
|
|
1122
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1123
|
+
|
|
1124
|
+
/**
|
|
1125
|
+
* Indica se os componentes devem ser salvos após serem transformados. Dessa forma, o compilador pode ser executado apenas uma vez para transformar o aplicativo e depois removido.
|
|
1126
|
+
*/
|
|
1127
|
+
saveComponents: false,
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
* Prefixo da chave do dicionário
|
|
1131
|
+
*/
|
|
1132
|
+
dictionaryKeyPrefix: "",
|
|
1133
|
+
},
|
|
1134
|
+
};
|
|
1135
|
+
|
|
1136
|
+
module.exports = config;
|
|
1137
|
+
```
|
|
1138
|
+
|
|
1139
|
+
<Tabs>
|
|
1140
|
+
<Tab value='Comando de extração'>
|
|
1141
|
+
|
|
1142
|
+
Execute o extrator para transformar seus componentes e extrair o conteúdo
|
|
1143
|
+
|
|
1144
|
+
```bash packageManager="npm"
|
|
1145
|
+
npx intlayer extract
|
|
1146
|
+
```
|
|
1147
|
+
|
|
1148
|
+
```bash packageManager="pnpm"
|
|
1149
|
+
pnpm intlayer extract
|
|
1150
|
+
```
|
|
1151
|
+
|
|
1152
|
+
```bash packageManager="yarn"
|
|
1153
|
+
yarn intlayer extract
|
|
1154
|
+
```
|
|
1155
|
+
|
|
1156
|
+
```bash packageManager="bun"
|
|
1157
|
+
bunx intlayer extract
|
|
1158
|
+
```
|
|
1159
|
+
|
|
1160
|
+
</Tab>
|
|
1161
|
+
<Tab value='Compilador Babel'>
|
|
1162
|
+
|
|
1163
|
+
Atualize seu `vite.config.ts` para incluir o plugin `intlayerCompiler`:
|
|
1164
|
+
|
|
1165
|
+
```ts fileName="vite.config.ts"
|
|
1166
|
+
import { defineConfig } from "vite";
|
|
1167
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
1168
|
+
|
|
1169
|
+
export default defineConfig({
|
|
1170
|
+
plugins: [
|
|
1171
|
+
intlayer(),
|
|
1172
|
+
intlayerCompiler(), // Adiciona o plugin do compilador
|
|
1173
|
+
],
|
|
1174
|
+
});
|
|
1175
|
+
```
|
|
1176
|
+
|
|
1177
|
+
```bash packageManager="npm"
|
|
1178
|
+
npm run build # Ou npm run dev
|
|
1179
|
+
```
|
|
1180
|
+
|
|
1181
|
+
```bash packageManager="pnpm"
|
|
1182
|
+
pnpm run build # Or pnpm run dev
|
|
1183
|
+
```
|
|
1184
|
+
|
|
1185
|
+
```bash packageManager="yarn"
|
|
1186
|
+
yarn build # Or yarn dev
|
|
1187
|
+
```
|
|
1188
|
+
|
|
1189
|
+
```bash packageManager="bun"
|
|
1190
|
+
bun run build # Or bun run dev
|
|
1191
|
+
```
|
|
1192
|
+
|
|
1193
|
+
</Tab>
|
|
1194
|
+
</Tabs>
|
|
1195
|
+
|
|
1040
1196
|
### Configurar TypeScript
|
|
1041
1197
|
|
|
1042
1198
|
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.
|
package/docs/ru/compiler.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Intlayer Compiler | Автоматизированное извлечение контента для i18n
|
|
5
5
|
description: Автоматизируйте процесс интернационализации с помощью Intlayer Compiler. Извлекайте контент напрямую из ваших компонентов для более быстрого и эффективного i18n в Vite, Next.js и других.
|
|
6
6
|
keywords:
|
|
@@ -21,8 +21,8 @@ slugs:
|
|
|
21
21
|
- compiler
|
|
22
22
|
history:
|
|
23
23
|
- version: 8.2.0
|
|
24
|
-
date: 2026-03-
|
|
25
|
-
changes:
|
|
24
|
+
date: 2026-03-09
|
|
25
|
+
changes: Обновление опций компилятора, добавление поддержки FilePathPattern
|
|
26
26
|
- version: 8.1.7
|
|
27
27
|
date: 2026-02-25
|
|
28
28
|
changes: Обновление опций компилятора
|
|
@@ -35,7 +35,7 @@ history:
|
|
|
35
35
|
|
|
36
36
|
## Что такое Intlayer Compiler?
|
|
37
37
|
|
|
38
|
-
**Intlayer Compiler
|
|
38
|
+
**Intlayer Compiler** — это мощный инструмент, разработанный для автоматизации процесса интернационализации (i18n) в ваших приложениях. Он сканирует ваш исходный код (JSX, TSX, Vue, Svelte) на предмет объявлений контента, извлекает их и автоматически генерирует необходимые файлы словарей. Это позволяет вам хранить контент вместе с компонентами, в то время как Intlayer управляет и синхронизирует ваши словари.
|
|
39
39
|
|
|
40
40
|
## Почему стоит использовать Intlayer Compiler?
|
|
41
41
|
|
|
@@ -50,7 +50,7 @@ history:
|
|
|
50
50
|
|
|
51
51
|
Хотя компилятор предлагает отличный опыт "работает из коробки", он также вводит некоторые компромиссы, о которых вы должны знать:
|
|
52
52
|
|
|
53
|
-
- **Эвристическая неоднозначность**: Компилятор должен угадывать, что является пользовательским контентом, а
|
|
53
|
+
- **Эвристическая неоднозначность**: Компилятор должен угадывать, что является пользовательским контентом, а что — логикой приложения (например, `className="active"`, коды состояния, ID продуктов). В сложных кодовых базах это может привести к ложным срабатываниям или пропущенным строкам, которые требуют ручных аннотаций и исключений.
|
|
54
54
|
- **Только статическое извлечение**: Извлечение на основе компилятора полагается на статический анализ. Строки, которые существуют только во время выполнения (коды ошибок API, поля CMS и т.д.), не могут быть обнаружены или переведены компилятором в одиночку, поэтому вам все еще нужна дополнительная стратегия i18n времени выполнения.
|
|
55
55
|
|
|
56
56
|
Для более глубокого архитектурного сравнения см. блог-пост [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/ru/compiler_vs_declarative_i18n.md).
|
|
@@ -64,7 +64,7 @@ history:
|
|
|
64
64
|
|
|
65
65
|
### Vite
|
|
66
66
|
|
|
67
|
-
Для приложений на базе Vite (React, Vue, Svelte и др.) самый простой способ использовать
|
|
67
|
+
Для приложений на базе Vite (React, Vue, Svelte и др.) самый простой способ использовать компилятор — через плагин `vite-intlayer`.
|
|
68
68
|
|
|
69
69
|
#### Установка
|
|
70
70
|
|
|
@@ -136,9 +136,9 @@ const {
|
|
|
136
136
|
module.exports = {
|
|
137
137
|
presets: ["next/babel"],
|
|
138
138
|
plugins: [
|
|
139
|
-
//
|
|
139
|
+
// Извлечение контента из компонентов в словари
|
|
140
140
|
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
141
|
-
//
|
|
141
|
+
// Оптимизация импорта путем замены useIntlayer на прямой импорт словарей
|
|
142
142
|
[intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
|
|
143
143
|
],
|
|
144
144
|
};
|
|
@@ -149,73 +149,83 @@ module.exports = {
|
|
|
149
149
|
See complete tutorial: [Intlayer Compiler with Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_compiler.md)
|
|
150
150
|
|
|
151
151
|
</Tab>
|
|
152
|
+
</Tabs>
|
|
152
153
|
|
|
153
154
|
### Пользовательская конфигурация
|
|
154
155
|
|
|
155
156
|
Чтобы настроить поведение компилятора, вы можете обновить файл `intlayer.config.ts` в корне вашего проекта.
|
|
156
157
|
|
|
157
|
-
|
|
158
|
+
````ts fileName="intlayer.config.ts"
|
|
158
159
|
import { type IntlayerConfig, Locales } from "intlayer";
|
|
159
160
|
|
|
160
161
|
const config: IntlayerConfig = {
|
|
161
162
|
compiler: {
|
|
162
163
|
/**
|
|
164
|
+
* Указывает, должен ли компилятор быть включен.
|
|
163
165
|
* Установите значение 'build-only', чтобы пропустить компилятор во время разработки и ускорить запуск.
|
|
164
166
|
*/
|
|
165
167
|
enabled: true,
|
|
166
168
|
|
|
167
169
|
/**
|
|
168
|
-
*
|
|
170
|
+
* Определяет путь к выходным файлам. Заменяет `outputDir`.
|
|
171
|
+
*
|
|
172
|
+
* - Пути, начинающиеся с `./`, разрешаются относительно каталога компонента.
|
|
173
|
+
* - Пути, начинающиеся с `/`, разрешаются относительно корня проекта (`baseDir`).
|
|
174
|
+
*
|
|
175
|
+
* - Включение переменной `{{locale}}` в путь позволит создавать словари, разделенные по языкам.
|
|
176
|
+
*
|
|
177
|
+
* Примеры:
|
|
178
|
+
* ```ts
|
|
179
|
+
* {
|
|
180
|
+
* // Создавать многоязычные файлы .content.ts рядом с компонентом
|
|
181
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
182
|
+
*
|
|
183
|
+
* // output: './{{fileName}}{{extension}}', // Эквивалентное использование строки шаблона
|
|
184
|
+
* }
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* ```ts
|
|
188
|
+
* {
|
|
189
|
+
* // Создавать централизованные JSON-файлы по языкам в корне проекта
|
|
190
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
191
|
+
*
|
|
192
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Эквивалентное использование строки шаблона
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* Список переменных:
|
|
197
|
+
* - `fileName`: Имя файла.
|
|
198
|
+
* - `key`: Ключ контента.
|
|
199
|
+
* - `locale`: Язык контента.
|
|
200
|
+
* - `extension`: Расширение файла.
|
|
201
|
+
* - `componentFileName`: Имя файла компонента.
|
|
202
|
+
* - `componentExtension`: Расширение файла компонента.
|
|
203
|
+
* - `format`: Формат словаря.
|
|
204
|
+
* - `componentFormat`: Формат словаря компонента.
|
|
205
|
+
* - `componentDirPath`: Путь к каталогу компонента.
|
|
169
206
|
*/
|
|
170
|
-
|
|
171
|
-
"**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
|
|
172
|
-
"!**/node_modules/**",
|
|
173
|
-
],
|
|
207
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
174
208
|
|
|
175
209
|
/**
|
|
176
|
-
*
|
|
177
|
-
|
|
178
|
-
excludePattern: ["**/node_modules/**"],
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Выходной каталог для оптимизированных словарей.
|
|
210
|
+
* Указывает, должны ли компоненты сохраняться после трансформации.
|
|
211
|
+
* Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
|
|
182
212
|
*/
|
|
183
|
-
|
|
213
|
+
saveComponents: false,
|
|
184
214
|
|
|
185
215
|
/**
|
|
186
|
-
*
|
|
216
|
+
* Вставить только контент в сгенерированный файл. Полезно для JSON-вывода i18next или ICU MessageFormat для каждого языка.
|
|
217
|
+
*
|
|
218
|
+
* - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`
|
|
187
219
|
*/
|
|
188
220
|
noMetadata: false,
|
|
189
221
|
|
|
190
222
|
/**
|
|
191
223
|
* Префикс ключа словаря
|
|
192
224
|
*/
|
|
193
|
-
dictionaryKeyPrefix: "", //
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Указывает, должны ли компоненты сохраняться после трансформации.
|
|
197
|
-
* Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
|
|
198
|
-
*/
|
|
199
|
-
saveComponents: false,
|
|
225
|
+
dictionaryKeyPrefix: "", // Добавьте необязательный префикс для извлеченных ключей словаря
|
|
200
226
|
},
|
|
201
227
|
};
|
|
202
|
-
|
|
203
|
-
export default config;
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### Заполнить недостающие переводы
|
|
207
|
-
|
|
208
|
-
Intlayer предоставляет инструмент CLI, который поможет вам заполнить недостающие переводы. Вы можете использовать команду `intlayer` для тестирования и заполнения недостающих переводов в вашем коде.
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
npx intlayer test # Проверить наличие недостающих переводов
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
npx intlayer fill # Заполнить недостающие переводы
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
> Для получения более подробной информации обратитесь к [документации CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/ci.md)
|
|
228
|
+
````
|
|
219
229
|
|
|
220
230
|
### Справочник по конфигурации компилятора
|
|
221
231
|
|
|
@@ -225,36 +235,37 @@ npx intlayer fill # Заполнить недостающие перев
|
|
|
225
235
|
- _Тип_: `boolean | 'build-only'`
|
|
226
236
|
- _По умолчанию_: `true`
|
|
227
237
|
- _Описание_: Указывает, должен ли компилятор быть включен.
|
|
238
|
+
|
|
228
239
|
- **dictionaryKeyPrefix**:
|
|
229
240
|
- _Тип_: `string`
|
|
230
|
-
- _По умолчанию_: `'
|
|
241
|
+
- _По умолчанию_: `''`
|
|
231
242
|
- _Описание_: Префикс для извлеченных ключей словаря.
|
|
243
|
+
|
|
232
244
|
- **transformPattern**:
|
|
233
245
|
- _Тип_: `string | string[]`
|
|
234
246
|
- _По умолчанию_: `['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']`
|
|
235
|
-
- _Описание_: Шаблоны для обхода кода для оптимизации.
|
|
247
|
+
- _Описание_: (Устарело: вместо этого используйте `build.traversePattern`) Шаблоны для обхода кода для оптимизации.
|
|
248
|
+
|
|
236
249
|
- **excludePattern**:
|
|
237
250
|
- _Тип_: `string | string[]`
|
|
238
251
|
- _По умолчанию_: `['**/node_modules/**']`
|
|
239
|
-
- _Описание_: Шаблоны для исключения из оптимизации.
|
|
240
|
-
- **outputDir** (Deprecated):
|
|
241
|
-
- _Тип_: `string`
|
|
242
|
-
- _По умолчанию_: `'compiler'`
|
|
243
|
-
- _Описание_: Каталог, в котором будут храниться извлеченные словари.
|
|
252
|
+
- _Описание_: (Устарело: вместо этого используйте `build.traversePattern`) Шаблоны для исключения из оптимизации.
|
|
244
253
|
|
|
245
254
|
- **output**:
|
|
246
255
|
- _Тип_: `FilePathPattern`
|
|
247
256
|
- _По умолчанию_: `({ key }) => 'compiler/${key}.content.json'`
|
|
248
|
-
- _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические переменные, такие как `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{componentFormat}}`. Может быть задано как строка в формате `'my/{{var}}/path'` или как функция.
|
|
249
|
-
- _Примечание_: `./**/*`
|
|
257
|
+
- _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические переменные, такие как `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}`, и `{{componentFormat}}`. Может быть задано как строка в формате `'my/{{var}}/path'` или как функция.
|
|
258
|
+
- _Примечание_: Пути `./**/*` разрешаются относительно компонента. Пути `/**/*` разрешаются относительно `baseDir` Intlayer.
|
|
259
|
+
- _Примечание_: Если язык определен в пути, словари будут генерироваться для каждого языка.
|
|
250
260
|
- _Пример_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
|
|
251
261
|
|
|
252
262
|
- **noMetadata**:
|
|
253
263
|
- _Тип_: `boolean`
|
|
254
264
|
- _По умолчанию_: `false`
|
|
255
|
-
- _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого).
|
|
265
|
+
- _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого). Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
|
|
256
266
|
- _Примечание_: Полезно при использовании с плагином `loadJSON`.
|
|
257
|
-
- _Пример_:
|
|
267
|
+
- _Пример_:
|
|
268
|
+
Если `true`:
|
|
258
269
|
```json
|
|
259
270
|
{
|
|
260
271
|
"key": "value"
|
|
@@ -274,3 +285,25 @@ npx intlayer fill # Заполнить недостающие перев
|
|
|
274
285
|
- _Тип_: `boolean`
|
|
275
286
|
- _По умолчанию_: `false`
|
|
276
287
|
- _Описание_: Указывает, должны ли компоненты сохраняться после трансформации.
|
|
288
|
+
|
|
289
|
+
### Заполнить недостающие переводы
|
|
290
|
+
|
|
291
|
+
Intlayer предоставляет инструмент CLI, который поможет вам заполнить недостающие переводы. Вы можете использовать команду `intlayer` для тестирования и заполнения недостающих переводов в вашем коде.
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
npx intlayer test # Проверить наличие недостающих переводов
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
npx intlayer fill # Заполнить недостающие переводы
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Извлечение
|
|
302
|
+
|
|
303
|
+
Intlayer предоставляет инструмент CLI для извлечения контента из вашего кода. Вы можете использовать команду `intlayer extract`, чтобы извлечь контент из вашего кода.
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
npx intlayer extract
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
> Для получения более подробной информации обратитесь к [документации CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/index.md)
|
package/docs/ru/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Конфигурация
|
|
5
5
|
description: Узнайте, как настроить Intlayer для вашего приложения. Поймите различные параметры и опции, доступные для настройки Intlayer под ваши нужды.
|
|
6
6
|
keywords:
|
|
@@ -15,7 +15,7 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: Переместить 'baseDir' из конфигурации 'content' в конфигурацию 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
21
|
date: 2026-03-10
|
|
@@ -92,7 +92,7 @@ Intlayer поддерживает форматы файлов конфигура
|
|
|
92
92
|
|
|
93
93
|
## Пример файла конфигурации
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
96
96
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
97
97
|
import { nextjsRewrite } from "intlayer/routing";
|
|
98
98
|
import { z } from "zod";
|
|
@@ -190,7 +190,7 @@ const config: IntlayerConfig = {
|
|
|
190
190
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
191
191
|
* Default: ['cookie', 'header']
|
|
192
192
|
*/
|
|
193
|
-
storage: "cookie",
|
|
193
|
+
storage: ["cookie", "header"],
|
|
194
194
|
|
|
195
195
|
/**
|
|
196
196
|
* Base path for the application URLs.
|
|
@@ -321,18 +321,16 @@ const config: IntlayerConfig = {
|
|
|
321
321
|
/**
|
|
322
322
|
* Global context to guide the AI in generating translations.
|
|
323
323
|
*/
|
|
324
|
-
applicationContext: "This is a travel booking application.",
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* Base URL for the AI API.
|
|
328
|
-
*/
|
|
329
324
|
baseURL: "http://localhost:3000",
|
|
330
325
|
|
|
331
326
|
/**
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
*
|
|
327
|
+
* Сериализация данных
|
|
328
|
+
*
|
|
329
|
+
* Опции:
|
|
330
|
+
* - "json": Стандартный, надежный; использует больше токенов.
|
|
331
|
+
* - "toon": Меньше токенов, менее последователен, чем JSON.
|
|
332
|
+
*
|
|
333
|
+
* По умолчанию: "json"
|
|
336
334
|
*/
|
|
337
335
|
dataSerialization: "json",
|
|
338
336
|
},
|
|
@@ -434,42 +432,70 @@ const config: IntlayerConfig = {
|
|
|
434
432
|
compiler: {
|
|
435
433
|
/**
|
|
436
434
|
* Указывает, должен ли компилятор быть включен.
|
|
435
|
+
*
|
|
436
|
+
* - false : Отключить компилятор.
|
|
437
|
+
* - true : Включить компилятор.
|
|
438
|
+
* - "build-only" : Пропустить компилятор во время разработки для ускорения запуска.
|
|
439
|
+
*
|
|
440
|
+
* По умолчанию : false
|
|
437
441
|
*/
|
|
438
442
|
enabled: true,
|
|
439
443
|
|
|
440
444
|
/**
|
|
441
|
-
*
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
*
|
|
445
|
+
* Определяет путь к выходным файлам. Заменяет `outputDir`.
|
|
446
|
+
*
|
|
447
|
+
* - Пути `./` разрешаются относительно каталога компонента.
|
|
448
|
+
* - Пути `/` разрешаются относительно корня проекта (`baseDir`).
|
|
449
|
+
*
|
|
450
|
+
* - Включение переменной `{{locale}}` в путь приведет к генерации отдельных словарей для каждой локали.
|
|
451
|
+
*
|
|
452
|
+
* Пример:
|
|
453
|
+
* ```ts
|
|
454
|
+
* {
|
|
455
|
+
* // Создавать многоязычные файлы .content.ts рядом с компонентом
|
|
456
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
457
|
+
*
|
|
458
|
+
* // output: './{{fileName}}{{extension}}', // Эквивалент с использованием строки шаблона
|
|
459
|
+
* }
|
|
460
|
+
* ```
|
|
461
|
+
*
|
|
462
|
+
* ```ts
|
|
463
|
+
* {
|
|
464
|
+
* // Создавать централизованные JSON по локалям в корне проекта
|
|
465
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
466
|
+
*
|
|
467
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Эквивалент с использованием строки шаблона
|
|
468
|
+
* }
|
|
469
|
+
* ```
|
|
470
|
+
*
|
|
471
|
+
* Список переменных:
|
|
472
|
+
* - `fileName`: Имя файла.
|
|
473
|
+
* - `key`: Ключ контента.
|
|
474
|
+
* - `locale`: Локаль контента.
|
|
475
|
+
* - `extension`: Расширение файла.
|
|
476
|
+
* - `componentFileName`: Имя файла компонента.
|
|
477
|
+
* - `componentExtension`: Расширение файла компонента.
|
|
478
|
+
* - `format`: Формат словаря.
|
|
479
|
+
* - `componentFormat`: Формат словаря компонента.
|
|
480
|
+
* - `componentDirPath`: Путь к каталогу компонента.
|
|
450
481
|
*/
|
|
451
|
-
|
|
482
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
452
483
|
|
|
453
484
|
/**
|
|
454
|
-
*
|
|
485
|
+
* Указывает, должны ли компоненты сохраняться после трансформации.
|
|
486
|
+
* Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
|
|
455
487
|
*/
|
|
456
|
-
|
|
488
|
+
saveComponents: false,
|
|
457
489
|
|
|
458
490
|
/**
|
|
459
|
-
* Вставьте только содержимое в сгенерированный
|
|
491
|
+
* Вставьте только содержимое в сгенерированный файл. Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
|
|
460
492
|
*/
|
|
461
493
|
noMetadata: false,
|
|
462
494
|
|
|
463
495
|
/**
|
|
464
496
|
* Префикс ключа словаря
|
|
465
497
|
*/
|
|
466
|
-
dictionaryKeyPrefix: "", //
|
|
467
|
-
|
|
468
|
-
/**
|
|
469
|
-
* Указывает, должны ли компоненты сохраняться после трансформации.
|
|
470
|
-
* Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
|
|
471
|
-
*/
|
|
472
|
-
saveComponents: false,
|
|
498
|
+
dictionaryKeyPrefix: "", // Добавьте необязательный префикс для извлеченных ключей словаря
|
|
473
499
|
},
|
|
474
500
|
|
|
475
501
|
/**
|
|
@@ -488,7 +514,7 @@ const config: IntlayerConfig = {
|
|
|
488
514
|
};
|
|
489
515
|
|
|
490
516
|
export default config;
|
|
491
|
-
|
|
517
|
+
````
|
|
492
518
|
|
|
493
519
|
## Справочник по конфигурации
|
|
494
520
|
|
|
@@ -1048,7 +1074,7 @@ Intlayer поддерживает несколько провайдеров ИИ
|
|
|
1048
1074
|
|
|
1049
1075
|
- **dictionaryKeyPrefix**:
|
|
1050
1076
|
- _Тип_: `string`
|
|
1051
|
-
- _По умолчанию_: `'
|
|
1077
|
+
- _По умолчанию_: `''`
|
|
1052
1078
|
- _Описание_: Префикс для извлеченных ключей словаря.
|
|
1053
1079
|
- _Пример_: `'my-key-'`
|
|
1054
1080
|
- _Примечание_: При извлечении словарей ключ генерируется на основе имени файла. Этот префикс добавляется к сгенерированному ключу для предотвращения конфликтов.
|
|
@@ -1072,24 +1098,28 @@ Intlayer поддерживает несколько провайдеров ИИ
|
|
|
1072
1098
|
- _Описание_: Шаблоны, определяющие, какие файлы должны быть исключены во время оптимизации.
|
|
1073
1099
|
- _Пример_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1074
1100
|
|
|
1075
|
-
- **outputDir**:
|
|
1076
|
-
- _Тип_: `string`
|
|
1077
|
-
- _По умолчанию_: `'compiler'`
|
|
1078
|
-
- _Описание_: Каталог, в котором будут храниться извлеченные словари, относительно базового пути вашего проекта.
|
|
1079
|
-
|
|
1080
1101
|
- **output**:
|
|
1081
1102
|
- _Тип_: `FilePathPattern`
|
|
1082
|
-
- _По умолчанию_: `
|
|
1083
|
-
- _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические
|
|
1084
|
-
- _Примечание_:
|
|
1085
|
-
- _
|
|
1103
|
+
- _По умолчанию_: `undefined`
|
|
1104
|
+
- _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические переменные через шаблоны строк или функцию. Поддерживаемые переменные: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` и `{{componentDirPath}}`.
|
|
1105
|
+
- _Примечание_: Пути `./` разрешаются относительно каталога компонента. Пути `/` разрешаются относительно корня проекта (`baseDir`).
|
|
1106
|
+
- _Примечание_: Включение переменной `{{locale}}` в путь приведет к генерации отдельных словарей для каждой локали.
|
|
1107
|
+
- _Пример_:
|
|
1108
|
+
- **Мультиязычные файлы рядом с компонентом**:
|
|
1109
|
+
- Строка: `'./{{fileName}}{{extension}}'`
|
|
1110
|
+
- Функция: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1111
|
+
|
|
1112
|
+
- **Централизованный JSON по локалям**:
|
|
1113
|
+
- Строка: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1114
|
+
- Функция: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1086
1115
|
|
|
1087
1116
|
- **noMetadata**:
|
|
1088
1117
|
- _Тип_: `boolean`
|
|
1089
1118
|
- _По умолчанию_: `false`
|
|
1090
|
-
- _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого).
|
|
1119
|
+
- _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого). Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
|
|
1091
1120
|
- _Примечание_: Полезно при использовании с плагином `loadJSON`.
|
|
1092
|
-
- _Пример_:
|
|
1121
|
+
- _Пример_:
|
|
1122
|
+
Если `true`:
|
|
1093
1123
|
```json
|
|
1094
1124
|
{
|
|
1095
1125
|
"key": "value"
|