@intlayer/docs 8.4.4 → 8.4.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/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/cjs/blog.cjs +21 -1
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +81 -1
- package/dist/cjs/common.cjs.map +1 -0
- package/dist/cjs/doc.cjs +21 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +21 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +572 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +3032 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +352 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +72 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +34 -1
- package/dist/cjs/legal.cjs +21 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs +14 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +67 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs +14 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs +14 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +570 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +3030 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +350 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +70 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/index.mjs +6 -1
- package/dist/esm/legal.mjs +14 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts +2 -2
- package/dist/types/common.d.ts +37 -2
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/doc.d.ts +2 -2
- package/dist/types/frequentQuestions.d.ts +2 -2
- package/dist/types/generated/blog.entry.d.ts +35 -2
- package/dist/types/generated/blog.entry.d.ts.map +1 -0
- package/dist/types/generated/docs.entry.d.ts +158 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -0
- package/dist/types/generated/frequentQuestions.entry.d.ts +24 -2
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -0
- package/dist/types/generated/legal.entry.d.ts +10 -2
- package/dist/types/generated/legal.entry.d.ts.map +1 -0
- package/dist/types/legal.d.ts +2 -2
- package/docs/ar/configuration.md +520 -722
- package/docs/ar/intlayer_with_storybook.md +521 -0
- package/docs/bn/configuration.md +922 -0
- package/docs/bn/intlayer_with_hono.md +428 -0
- package/docs/de/configuration.md +369 -743
- package/docs/de/intlayer_with_storybook.md +521 -0
- package/docs/en/configuration.md +181 -507
- package/docs/en/intlayer_with_storybook.md +521 -0
- package/docs/en-GB/configuration.md +456 -657
- package/docs/en-GB/intlayer_with_storybook.md +521 -0
- package/docs/es/configuration.md +379 -754
- package/docs/es/intlayer_with_storybook.md +521 -0
- package/docs/fr/configuration.md +376 -757
- package/docs/fr/intlayer_with_storybook.md +521 -0
- package/docs/hi/configuration.md +532 -728
- package/docs/hi/intlayer_with_storybook.md +521 -0
- package/docs/id/configuration.md +371 -684
- package/docs/id/intlayer_with_storybook.md +521 -0
- package/docs/it/configuration.md +397 -775
- package/docs/it/intlayer_with_storybook.md +521 -0
- package/docs/ja/configuration.md +525 -724
- package/docs/ja/intlayer_with_storybook.md +521 -0
- package/docs/ko/configuration.md +525 -724
- package/docs/ko/intlayer_with_storybook.md +521 -0
- package/docs/pl/configuration.md +430 -734
- package/docs/pl/intlayer_with_storybook.md +521 -0
- package/docs/pt/configuration.md +375 -746
- package/docs/pt/intlayer_with_storybook.md +521 -0
- package/docs/ru/configuration.md +532 -701
- package/docs/ru/intlayer_with_storybook.md +521 -0
- package/docs/tr/configuration.md +527 -719
- package/docs/tr/intlayer_with_storybook.md +521 -0
- package/docs/uk/configuration.md +425 -744
- package/docs/uk/intlayer_with_storybook.md +521 -0
- package/docs/ur/configuration.md +922 -0
- package/docs/ur/intlayer_with_hono.md +428 -0
- package/docs/vi/configuration.md +412 -753
- package/docs/vi/intlayer_with_storybook.md +521 -0
- package/docs/zh/configuration.md +521 -714
- package/docs/zh/intlayer_with_storybook.md +521 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
- package/dist/cjs/common-a-l0ULP6.cjs +0 -2
- package/dist/cjs/common-a-l0ULP6.cjs.map +0 -1
- package/dist/types/blog.entry-D5IgxPXY.d.ts +0 -35
- package/dist/types/blog.entry-D5IgxPXY.d.ts.map +0 -1
- package/dist/types/common-B45TZvLQ.d.ts +0 -37
- package/dist/types/common-B45TZvLQ.d.ts.map +0 -1
- package/dist/types/docs.entry-CergjAYt.d.ts +0 -157
- package/dist/types/docs.entry-CergjAYt.d.ts.map +0 -1
- package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts +0 -24
- package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts.map +0 -1
- package/dist/types/legal.entry-B5Lg5eeH.d.ts +0 -10
- package/dist/types/legal.entry-B5Lg5eeH.d.ts.map +0 -1
package/docs/pt/configuration.md
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
3
|
updatedAt: 2026-03-12
|
|
4
4
|
title: Configuração
|
|
5
|
-
description:
|
|
5
|
+
description: Saiba como configurar o Intlayer para seu aplicativo. Entenda as várias configurações e opções disponíveis para personalizar o Intlayer de acordo com suas necessidades.
|
|
6
6
|
keywords:
|
|
7
7
|
- Configuração
|
|
8
|
-
-
|
|
8
|
+
- Definições
|
|
9
9
|
- Personalização
|
|
10
10
|
- Intlayer
|
|
11
11
|
- Opções
|
|
@@ -14,9 +14,12 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.4.0
|
|
18
|
+
date: 2026-03-20
|
|
19
|
+
changes: Adicionar notação de objeto por localidade para 'compiler.output' e 'dictionary.fill'
|
|
17
20
|
- version: 8.3.0
|
|
18
21
|
date: 2026-03-11
|
|
19
|
-
changes: Mover 'baseDir' da configuração
|
|
22
|
+
changes: Mover 'baseDir' da configuração 'content' para 'system'
|
|
20
23
|
- version: 8.2.0
|
|
21
24
|
date: 2026-03-09
|
|
22
25
|
changes: Atualizar opções do compilador, adicionar suporte para 'output' e 'noMetadata'
|
|
@@ -25,10 +28,10 @@ history:
|
|
|
25
28
|
changes: Atualizar opções do compilador
|
|
26
29
|
- version: 8.1.5
|
|
27
30
|
date: 2026-02-23
|
|
28
|
-
changes:
|
|
31
|
+
changes: Adicionar opção de compilador 'build-only' e prefixo de dicionário
|
|
29
32
|
- version: 8.0.6
|
|
30
33
|
date: 2026-02-12
|
|
31
|
-
changes: Adicionar suporte para
|
|
34
|
+
changes: Adicionar suporte para provedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
32
35
|
- version: 8.0.5
|
|
33
36
|
date: 2026-02-06
|
|
34
37
|
changes: Adicionar `dataSerialization` à configuração de IA
|
|
@@ -37,66 +40,66 @@ history:
|
|
|
37
40
|
changes: Renomear o modo de importação `live` para `fetch` para descrever melhor o mecanismo subjacente.
|
|
38
41
|
- version: 8.0.0
|
|
39
42
|
date: 2026-01-22
|
|
40
|
-
changes: Mover
|
|
43
|
+
changes: Mover o modo de importação `importMode` da configuração de build para a configuração de dicionário.
|
|
41
44
|
- version: 8.0.0
|
|
42
45
|
date: 2026-01-22
|
|
43
|
-
changes:
|
|
46
|
+
changes: Adicionar a opção `rewrite` à configuração de roteamento.
|
|
44
47
|
- version: 8.0.0
|
|
45
48
|
date: 2026-01-18
|
|
46
|
-
changes: Separar a configuração do sistema da configuração
|
|
49
|
+
changes: Separar a configuração do sistema da configuração de conteúdo. Mover caminhos internos para a propriedade `system`. Adicionar `codeDir` para separar arquivos de conteúdo da transformação de código.
|
|
47
50
|
- version: 8.0.0
|
|
48
51
|
date: 2026-01-18
|
|
49
|
-
changes: Adicionar opções de dicionário `location` e `schema
|
|
52
|
+
changes: Adicionar as opções de dicionário `location` e `schema`.
|
|
50
53
|
- version: 7.5.1
|
|
51
54
|
date: 2026-01-10
|
|
52
|
-
changes: Adicionar suporte para formatos de arquivo JSON5 e JSONC
|
|
55
|
+
changes: Adicionar suporte para formatos de arquivo JSON5 e JSONC.
|
|
53
56
|
- version: 7.5.0
|
|
54
57
|
date: 2025-12-17
|
|
55
|
-
changes: Adicionar opção `buildMode
|
|
58
|
+
changes: Adicionar a opção `buildMode`.
|
|
56
59
|
- version: 7.0.0
|
|
57
60
|
date: 2025-10-25
|
|
58
|
-
changes:
|
|
61
|
+
changes: Adicionar a configuração `dictionary`.
|
|
59
62
|
- version: 7.0.0
|
|
60
63
|
date: 2025-10-21
|
|
61
|
-
changes:
|
|
64
|
+
changes: Substituir `middleware` pela configuração de `routing`.
|
|
62
65
|
- version: 7.0.0
|
|
63
66
|
date: 2025-10-12
|
|
64
|
-
changes:
|
|
67
|
+
changes: Adicionar a opção `formatCommand`.
|
|
65
68
|
- version: 6.2.0
|
|
66
69
|
date: 2025-10-12
|
|
67
|
-
changes:
|
|
70
|
+
changes: Atualizar a opção `excludedPath`.
|
|
68
71
|
- version: 6.0.2
|
|
69
72
|
date: 2025-09-23
|
|
70
|
-
changes:
|
|
73
|
+
changes: Adicionar a opção `outputFormat`.
|
|
71
74
|
- version: 6.0.0
|
|
72
75
|
date: 2025-09-21
|
|
73
|
-
changes:
|
|
76
|
+
changes: Remover o campo `dictionaryOutput` e o campo `i18nextResourcesDir`.
|
|
74
77
|
- version: 6.0.0
|
|
75
78
|
date: 2025-09-16
|
|
76
|
-
changes:
|
|
79
|
+
changes: Adicionar o modo de importação `live`.
|
|
77
80
|
- version: 6.0.0
|
|
78
81
|
date: 2025-09-04
|
|
79
|
-
changes:
|
|
82
|
+
changes: Substituir o campo `hotReload` por `liveSync` e adicionar os campos `liveSyncPort` e `liveSyncURL`.
|
|
80
83
|
- version: 5.6.1
|
|
81
84
|
date: 2025-07-25
|
|
82
|
-
changes:
|
|
85
|
+
changes: Substituir `activateDynamicImport` pela opção `importMode`.
|
|
83
86
|
- version: 5.6.0
|
|
84
87
|
date: 2025-07-13
|
|
85
|
-
changes:
|
|
88
|
+
changes: Alterar o contentDir padrão de `['src']` para `['.']`.
|
|
86
89
|
- version: 5.5.11
|
|
87
90
|
date: 2025-06-29
|
|
88
|
-
changes:
|
|
91
|
+
changes: Adicionar comandos `docs`.
|
|
89
92
|
---
|
|
90
93
|
|
|
91
94
|
# Documentação de Configuração do Intlayer
|
|
92
95
|
|
|
93
96
|
## Visão Geral
|
|
94
97
|
|
|
95
|
-
Os arquivos de configuração do Intlayer permitem a personalização de vários aspectos do plugin, como internacionalização, middleware e
|
|
98
|
+
Os arquivos de configuração do Intlayer permitem a personalização de vários aspectos do plugin, como internacionalização, middleware e tratamento de conteúdo. Este documento fornece uma descrição detalhada de cada propriedade na configuração.
|
|
96
99
|
|
|
97
100
|
---
|
|
98
101
|
|
|
99
|
-
##
|
|
102
|
+
## Sumário
|
|
100
103
|
|
|
101
104
|
<TOC/>
|
|
102
105
|
|
|
@@ -104,7 +107,7 @@ Os arquivos de configuração do Intlayer permitem a personalização de vários
|
|
|
104
107
|
|
|
105
108
|
## Suporte a Arquivos de Configuração
|
|
106
109
|
|
|
107
|
-
O Intlayer aceita formatos de
|
|
110
|
+
O Intlayer aceita os formatos de arquivo de configuração JSON, JS, MJS e TS:
|
|
108
111
|
|
|
109
112
|
- `intlayer.config.ts`
|
|
110
113
|
- `intlayer.config.js`
|
|
@@ -125,108 +128,108 @@ import { nextjsRewrite } from "intlayer/routing";
|
|
|
125
128
|
import { z } from "zod";
|
|
126
129
|
|
|
127
130
|
/**
|
|
128
|
-
*
|
|
131
|
+
* Exemplo de arquivo de configuração do Intlayer exibindo todas as opções disponíveis.
|
|
129
132
|
*/
|
|
130
133
|
const config: IntlayerConfig = {
|
|
131
134
|
/**
|
|
132
|
-
*
|
|
135
|
+
* Configuração das definições de internacionalização.
|
|
133
136
|
*/
|
|
134
137
|
internationalization: {
|
|
135
138
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
139
|
+
* Lista de localidades (locales) suportadas no aplicativo.
|
|
140
|
+
* Padrão: [Locales.ENGLISH]
|
|
138
141
|
*/
|
|
139
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
140
143
|
|
|
141
144
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
+
* Lista de localidades obrigatórias que devem ser definidas em cada dicionário.
|
|
146
|
+
* Se vazio, todas as localidades são obrigatórias no modo `strict`.
|
|
147
|
+
* Padrão: []
|
|
145
148
|
*/
|
|
146
149
|
requiredLocales: [Locales.ENGLISH],
|
|
147
150
|
|
|
148
151
|
/**
|
|
149
|
-
*
|
|
150
|
-
* - "strict":
|
|
151
|
-
* - "inclusive":
|
|
152
|
-
* - "loose":
|
|
153
|
-
*
|
|
152
|
+
* Nível de rigor para conteúdo internacionalizado.
|
|
153
|
+
* - "strict": Erro se alguma localidade declarada estiver ausente ou se não estiver declarada.
|
|
154
|
+
* - "inclusive": Aviso se uma localidade declarada estiver ausente.
|
|
155
|
+
* - "loose": Aceita qualquer localidade existente.
|
|
156
|
+
* Padrão: "inclusive"
|
|
154
157
|
*/
|
|
155
158
|
strictMode: "inclusive",
|
|
156
159
|
|
|
157
160
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
161
|
+
* A localidade padrão utilizada como recurso caso a localidade solicitada não seja encontrada.
|
|
162
|
+
* Padrão: Locales.ENGLISH
|
|
160
163
|
*/
|
|
161
164
|
defaultLocale: Locales.ENGLISH,
|
|
162
165
|
},
|
|
163
166
|
|
|
164
167
|
/**
|
|
165
|
-
*
|
|
168
|
+
* Configurações que controlam as operações de dicionário e o comportamento de fallback.
|
|
166
169
|
*/
|
|
167
170
|
dictionary: {
|
|
168
171
|
/**
|
|
169
|
-
*
|
|
170
|
-
* - "static":
|
|
171
|
-
* - "dynamic":
|
|
172
|
-
* - "fetch":
|
|
173
|
-
*
|
|
172
|
+
* Controla como os dicionários são importados.
|
|
173
|
+
* - "static": Importado estaticamente no momento da compilação.
|
|
174
|
+
* - "dynamic": Importado dinamicamente usando Suspense.
|
|
175
|
+
* - "fetch": Recuperado dinamicamente através da API Live Sync.
|
|
176
|
+
* Padrão: "static"
|
|
174
177
|
*/
|
|
175
178
|
importMode: "static",
|
|
176
179
|
|
|
177
180
|
/**
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
+
* Estratégia para preencher automaticamente as traduções ausentes usando IA.
|
|
182
|
+
* Pode ser um valor booleano ou um padrão de caminho para salvar o conteúdo preenchido.
|
|
183
|
+
* Padrão: true
|
|
181
184
|
*/
|
|
182
185
|
fill: true,
|
|
183
186
|
|
|
184
187
|
/**
|
|
185
|
-
*
|
|
186
|
-
* - "local":
|
|
187
|
-
* - "remote":
|
|
188
|
-
* - "hybrid":
|
|
189
|
-
* - "plugin" (
|
|
190
|
-
*
|
|
188
|
+
* Localização física dos arquivos de dicionário.
|
|
189
|
+
* - "local": Armazenado no sistema de arquivos local.
|
|
190
|
+
* - "remote": Armazenado no CMS do Intlayer.
|
|
191
|
+
* - "hybrid": Armazenado localmente e no CMS do Intlayer.
|
|
192
|
+
* - "plugin" (ou qualquer string personalizada): Fornecido por um plugin ou fonte personalizada.
|
|
193
|
+
* Padrão: "local"
|
|
191
194
|
*/
|
|
192
195
|
location: "local",
|
|
193
196
|
|
|
194
197
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
198
|
+
* Se o conteúdo deve ser transformado automaticamente (ex: Markdown para HTML).
|
|
199
|
+
* Padrão: false
|
|
197
200
|
*/
|
|
198
201
|
contentAutoTransformation: false,
|
|
199
202
|
},
|
|
200
203
|
|
|
201
204
|
/**
|
|
202
|
-
*
|
|
205
|
+
* Configuração de roteamento e middleware.
|
|
203
206
|
*/
|
|
204
207
|
routing: {
|
|
205
208
|
/**
|
|
206
|
-
*
|
|
207
|
-
* - "prefix-no-default":
|
|
208
|
-
* - "prefix-all":
|
|
209
|
-
* - "no-prefix":
|
|
210
|
-
* - "search-params":
|
|
211
|
-
*
|
|
209
|
+
* Estratégia de roteamento de localidade.
|
|
210
|
+
* - "prefix-no-default": Prefixa todos, exceto a localidade padrão (ex: /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Prefixa todas as localidades (ex: /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Nenhuma localidade na URL.
|
|
213
|
+
* - "search-params": Usa ?locale=...
|
|
214
|
+
* Padrão: "prefix-no-default"
|
|
212
215
|
*/
|
|
213
216
|
mode: "prefix-no-default",
|
|
214
217
|
|
|
215
218
|
/**
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
+
* Onde armazenar a localidade selecionada pelo usuário.
|
|
220
|
+
* Opções: 'cookie', 'localStorage', 'sessionStorage', 'header' ou um array deles.
|
|
221
|
+
* Padrão: ['cookie', 'header']
|
|
219
222
|
*/
|
|
220
223
|
storage: ["cookie", "header"],
|
|
221
224
|
|
|
222
225
|
/**
|
|
223
|
-
*
|
|
224
|
-
*
|
|
226
|
+
* O caminho base para as URLs do aplicativo.
|
|
227
|
+
* Padrão: ""
|
|
225
228
|
*/
|
|
226
229
|
basePath: "",
|
|
227
230
|
|
|
228
231
|
/**
|
|
229
|
-
*
|
|
232
|
+
* Regras de reescrita de URL personalizadas para caminhos específicos por localidade.
|
|
230
233
|
*/
|
|
231
234
|
rewrite: nextjsRewrite({
|
|
232
235
|
"/[locale]/about": {
|
|
@@ -237,130 +240,130 @@ const config: IntlayerConfig = {
|
|
|
237
240
|
},
|
|
238
241
|
|
|
239
242
|
/**
|
|
240
|
-
*
|
|
243
|
+
* Configurações relacionadas à busca e processamento de arquivos de conteúdo.
|
|
241
244
|
*/
|
|
242
245
|
content: {
|
|
243
246
|
/**
|
|
244
|
-
*
|
|
245
|
-
*
|
|
247
|
+
* Extensões de arquivo para escanear dicionários.
|
|
248
|
+
* Padrão: ['.content.ts', '.content.js', '.content.json', etc.]
|
|
246
249
|
*/
|
|
247
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
248
251
|
|
|
249
252
|
/**
|
|
250
|
-
*
|
|
251
|
-
*
|
|
253
|
+
* Diretórios onde os arquivos .content estão localizados.
|
|
254
|
+
* Padrão: ["."]
|
|
252
255
|
*/
|
|
253
256
|
contentDir: ["src"],
|
|
254
257
|
|
|
255
258
|
/**
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
+
* Onde o código-fonte está localizado.
|
|
260
|
+
* Utilizado para otimização de compilação e transformação de código.
|
|
261
|
+
* Padrão: ["."]
|
|
259
262
|
*/
|
|
260
263
|
codeDir: ["src"],
|
|
261
264
|
|
|
262
265
|
/**
|
|
263
|
-
*
|
|
264
|
-
*
|
|
266
|
+
* Padrões excluídos do escaneamento.
|
|
267
|
+
* Padrão: ['node_modules', '.intlayer', etc.]
|
|
265
268
|
*/
|
|
266
269
|
excludedPath: ["node_modules"],
|
|
267
270
|
|
|
268
271
|
/**
|
|
269
|
-
*
|
|
270
|
-
*
|
|
272
|
+
* Se deve monitorar alterações e reconstruir dicionários durante o desenvolvimento.
|
|
273
|
+
* Padrão: true no ambiente de desenvolvimento
|
|
271
274
|
*/
|
|
272
275
|
watch: true,
|
|
273
276
|
|
|
274
277
|
/**
|
|
275
|
-
*
|
|
278
|
+
* Comando utilizado para formatar arquivos .content recém-criados / atualizados.
|
|
276
279
|
*/
|
|
277
280
|
formatCommand: 'npx prettier --write "{{file}}"',
|
|
278
281
|
},
|
|
279
282
|
|
|
280
283
|
/**
|
|
281
|
-
* Visual Editor
|
|
284
|
+
* Configuração do Editor Visual (Visual Editor).
|
|
282
285
|
*/
|
|
283
286
|
editor: {
|
|
284
287
|
/**
|
|
285
|
-
*
|
|
286
|
-
*
|
|
288
|
+
* Se o editor visual está habilitado.
|
|
289
|
+
* Padrão: false
|
|
287
290
|
*/
|
|
288
291
|
enabled: true,
|
|
289
292
|
|
|
290
293
|
/**
|
|
291
|
-
* URL
|
|
292
|
-
*
|
|
294
|
+
* A URL do seu aplicativo para validação de origem (origin validation).
|
|
295
|
+
* Padrão: ""
|
|
293
296
|
*/
|
|
294
297
|
applicationURL: "http://localhost:3000",
|
|
295
298
|
|
|
296
299
|
/**
|
|
297
|
-
*
|
|
298
|
-
*
|
|
300
|
+
* Porta para o servidor local do editor.
|
|
301
|
+
* Padrão: 8000
|
|
299
302
|
*/
|
|
300
303
|
port: 8000,
|
|
301
304
|
|
|
302
305
|
/**
|
|
303
|
-
*
|
|
304
|
-
*
|
|
306
|
+
* A URL pública do editor.
|
|
307
|
+
* Padrão: "http://localhost:8000"
|
|
305
308
|
*/
|
|
306
309
|
editorURL: "http://localhost:8000",
|
|
307
310
|
|
|
308
311
|
/**
|
|
309
|
-
*
|
|
310
|
-
*
|
|
312
|
+
* URL do CMS do Intlayer.
|
|
313
|
+
* Padrão: "https://app.intlayer.org"
|
|
311
314
|
*/
|
|
312
315
|
cmsURL: "https://app.intlayer.org",
|
|
313
316
|
|
|
314
317
|
/**
|
|
315
|
-
*
|
|
316
|
-
*
|
|
318
|
+
* URL da API do Backend.
|
|
319
|
+
* Padrão: "https://back.intlayer.org"
|
|
317
320
|
*/
|
|
318
321
|
backendURL: "https://back.intlayer.org",
|
|
319
322
|
|
|
320
323
|
/**
|
|
321
|
-
*
|
|
322
|
-
*
|
|
324
|
+
* Se deve habilitar a sincronização de conteúdo em tempo real.
|
|
325
|
+
* Padrão: false
|
|
323
326
|
*/
|
|
324
327
|
liveSync: true,
|
|
325
328
|
},
|
|
326
329
|
|
|
327
330
|
/**
|
|
328
|
-
*
|
|
331
|
+
* Configurações de tradução e construção baseadas em IA.
|
|
329
332
|
*/
|
|
330
333
|
ai: {
|
|
331
334
|
/**
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
+
* Provedor de IA a ser utilizado.
|
|
336
|
+
* Opções: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
|
+
* Padrão: 'openai'
|
|
335
338
|
*/
|
|
336
339
|
provider: "openai",
|
|
337
340
|
|
|
338
341
|
/**
|
|
339
|
-
*
|
|
342
|
+
* Modelo do provedor selecionado para utilizar.
|
|
340
343
|
*/
|
|
341
344
|
model: "gpt-4o",
|
|
342
345
|
|
|
343
346
|
/**
|
|
344
|
-
*
|
|
347
|
+
* Chave da API do provedor.
|
|
345
348
|
*/
|
|
346
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
347
350
|
|
|
348
351
|
/**
|
|
349
|
-
*
|
|
352
|
+
* Contexto global para guiar a IA ao construir traduções.
|
|
350
353
|
*/
|
|
351
|
-
applicationContext: "
|
|
354
|
+
applicationContext: "Este é um aplicativo de reserva de viagens.",
|
|
352
355
|
|
|
353
356
|
/**
|
|
354
|
-
*
|
|
357
|
+
* URL do caminho base para a API de IA.
|
|
355
358
|
*/
|
|
356
359
|
baseURL: "http://localhost:3000",
|
|
357
360
|
|
|
358
361
|
/**
|
|
359
|
-
* Serialização de
|
|
362
|
+
* Serialização de Dados (Data Serialization)
|
|
360
363
|
*
|
|
361
364
|
* Opções:
|
|
362
|
-
* - "json": Padrão,
|
|
363
|
-
* - "toon":
|
|
365
|
+
* - "json": Padrão, robusto; consome mais tokens.
|
|
366
|
+
* - "toon": Consome menos tokens, pode não ser tão consistente quanto o JSON.
|
|
364
367
|
*
|
|
365
368
|
* Padrão: "json"
|
|
366
369
|
*/
|
|
@@ -368,170 +371,170 @@ const config: IntlayerConfig = {
|
|
|
368
371
|
},
|
|
369
372
|
|
|
370
373
|
/**
|
|
371
|
-
*
|
|
374
|
+
* Configurações de compilação e otimização.
|
|
372
375
|
*/
|
|
373
376
|
build: {
|
|
374
377
|
/**
|
|
375
|
-
*
|
|
376
|
-
* - "auto":
|
|
377
|
-
* - "manual":
|
|
378
|
-
*
|
|
378
|
+
* Modo de execução da compilação.
|
|
379
|
+
* - "auto": Serão compilados automaticamente durante a compilação do aplicativo.
|
|
380
|
+
* - "manual": Requer um comando de compilação explícito.
|
|
381
|
+
* Padrão: "auto"
|
|
379
382
|
*/
|
|
380
383
|
mode: "auto",
|
|
381
384
|
|
|
382
385
|
/**
|
|
383
|
-
*
|
|
384
|
-
*
|
|
386
|
+
* Se deve otimizar o bundle final removendo dicionários não utilizados.
|
|
387
|
+
* Padrão: true em produção
|
|
385
388
|
*/
|
|
386
389
|
optimize: true,
|
|
387
390
|
|
|
388
391
|
/**
|
|
389
|
-
*
|
|
390
|
-
*
|
|
392
|
+
* Formato de saída para os arquivos de dicionário gerados.
|
|
393
|
+
* Padrão: ['cjs', 'esm']
|
|
391
394
|
*/
|
|
392
395
|
outputFormat: ["cjs", "esm"],
|
|
393
396
|
|
|
394
397
|
/**
|
|
395
|
-
*
|
|
396
|
-
*
|
|
398
|
+
* Indica se a compilação deve verificar os tipos TypeScript.
|
|
399
|
+
* Padrão: false
|
|
397
400
|
*/
|
|
398
401
|
checkTypes: false,
|
|
399
402
|
},
|
|
400
403
|
|
|
401
404
|
/**
|
|
402
|
-
* Logger
|
|
405
|
+
* Configuração do registrador (Logger).
|
|
403
406
|
*/
|
|
404
407
|
log: {
|
|
405
408
|
/**
|
|
406
|
-
*
|
|
407
|
-
* - "default":
|
|
408
|
-
* - "verbose":
|
|
409
|
-
* - "disabled":
|
|
410
|
-
*
|
|
409
|
+
* Nível de registro.
|
|
410
|
+
* - "default": Registro padrão.
|
|
411
|
+
* - "verbose": Registro de depuração detalhado.
|
|
412
|
+
* - "disabled": Desativa o registro.
|
|
413
|
+
* Padrão: "default"
|
|
411
414
|
*/
|
|
412
415
|
mode: "default",
|
|
413
416
|
|
|
414
417
|
/**
|
|
415
|
-
*
|
|
416
|
-
*
|
|
418
|
+
* Prefixo para todas as mensagens de registro.
|
|
419
|
+
* Padrão: "[intlayer]"
|
|
417
420
|
*/
|
|
418
421
|
prefix: "[intlayer]",
|
|
419
422
|
},
|
|
420
423
|
|
|
421
424
|
/**
|
|
422
|
-
*
|
|
425
|
+
* Configurações do sistema (Para uso avançado)
|
|
423
426
|
*/
|
|
424
427
|
system: {
|
|
425
428
|
/**
|
|
426
|
-
*
|
|
429
|
+
* Diretório para armazenar dicionários localizados.
|
|
427
430
|
*/
|
|
428
431
|
dictionariesDir: ".intlayer/dictionary",
|
|
429
432
|
|
|
430
433
|
/**
|
|
431
|
-
*
|
|
434
|
+
* Diretório para o aumento de módulo TypeScript (module augmentation).
|
|
432
435
|
*/
|
|
433
436
|
moduleAugmentationDir: ".intlayer/types",
|
|
434
437
|
|
|
435
438
|
/**
|
|
436
|
-
*
|
|
439
|
+
* Diretório para armazenar dicionários não mesclados (unmerged).
|
|
437
440
|
*/
|
|
438
441
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
439
442
|
|
|
440
443
|
/**
|
|
441
|
-
*
|
|
444
|
+
* Diretório para armazenar tipos de dicionários.
|
|
442
445
|
*/
|
|
443
446
|
typesDir: ".intlayer/types",
|
|
444
447
|
|
|
445
448
|
/**
|
|
446
|
-
*
|
|
449
|
+
* Diretório onde os arquivos principais do aplicativo são armazenados.
|
|
447
450
|
*/
|
|
448
451
|
mainDir: ".intlayer/main",
|
|
449
452
|
|
|
450
453
|
/**
|
|
451
|
-
*
|
|
454
|
+
* Diretório onde os arquivos de configuração são armazenados.
|
|
452
455
|
*/
|
|
453
456
|
configDir: ".intlayer/config",
|
|
454
457
|
|
|
455
458
|
/**
|
|
456
|
-
*
|
|
459
|
+
* Diretório onde os arquivos de cache são armazenados.
|
|
457
460
|
*/
|
|
458
461
|
cacheDir: ".intlayer/cache",
|
|
459
462
|
},
|
|
460
463
|
|
|
461
464
|
/**
|
|
462
|
-
*
|
|
465
|
+
* Configuração do Compilador (Para uso avançado)
|
|
463
466
|
*/
|
|
464
467
|
compiler: {
|
|
465
468
|
/**
|
|
466
|
-
* Indica se o compilador deve
|
|
469
|
+
* Indica se o compilador deve estar habilitado.
|
|
467
470
|
*
|
|
468
|
-
* - false
|
|
469
|
-
* - true
|
|
470
|
-
* - "build-only"
|
|
471
|
+
* - false: Desabilita o compilador.
|
|
472
|
+
* - true: Habilita o compilador.
|
|
473
|
+
* - "build-only": Ignora o compilador durante o desenvolvimento e acelera o tempo de inicialização.
|
|
471
474
|
*
|
|
472
|
-
*
|
|
475
|
+
* Padrão: false
|
|
473
476
|
*/
|
|
474
477
|
enabled: true,
|
|
475
478
|
|
|
476
479
|
/**
|
|
477
|
-
* Define o caminho
|
|
480
|
+
* Define o caminho para arquivos de saída. Substitui o `outputDir`.
|
|
478
481
|
*
|
|
479
|
-
* - Os caminhos `./` são resolvidos em relação ao diretório do componente.
|
|
480
|
-
* - Os caminhos `/` são resolvidos em relação à raiz do projeto (`baseDir`).
|
|
482
|
+
* - Os caminhos com `./` são resolvidos em relação ao diretório do componente.
|
|
483
|
+
* - Os caminhos com `/` são resolvidos em relação à raiz do projeto (`baseDir`).
|
|
481
484
|
*
|
|
482
|
-
* - A
|
|
485
|
+
* - A inclusão da variável `{{locale}}` no caminho ativará a criação de dicionários separados por idioma.
|
|
483
486
|
*
|
|
484
487
|
* Exemplo:
|
|
485
488
|
* ```ts
|
|
486
489
|
* {
|
|
487
|
-
* //
|
|
490
|
+
* // Criar arquivos .content.ts multilíngues ao lado do componente
|
|
488
491
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
489
492
|
*
|
|
490
|
-
* // output: './{{fileName}}{{extension}}', // Equivalente usando
|
|
493
|
+
* // output: './{{fileName}}{{extension}}', // Equivalente usando template string
|
|
491
494
|
* }
|
|
492
495
|
* ```
|
|
493
496
|
*
|
|
494
497
|
* ```ts
|
|
495
498
|
* {
|
|
496
|
-
* //
|
|
499
|
+
* // Criar JSONs centralizados por idioma na raiz do projeto
|
|
497
500
|
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
498
501
|
*
|
|
499
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando
|
|
502
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando template string
|
|
500
503
|
* }
|
|
501
504
|
* ```
|
|
502
505
|
*
|
|
503
506
|
* Lista de variáveis:
|
|
504
|
-
* - `fileName`:
|
|
505
|
-
* - `key`:
|
|
506
|
-
* - `locale`:
|
|
507
|
-
* - `extension`:
|
|
508
|
-
* - `componentFileName`:
|
|
509
|
-
* - `componentExtension`:
|
|
510
|
-
* - `format`:
|
|
511
|
-
* - `componentFormat`:
|
|
512
|
-
* - `componentDirPath`:
|
|
507
|
+
* - `fileName`: Nome do arquivo.
|
|
508
|
+
* - `key`: Chave de conteúdo.
|
|
509
|
+
* - `locale`: Localidade de conteúdo.
|
|
510
|
+
* - `extension`: Extensão do arquivo.
|
|
511
|
+
* - `componentFileName`: Nome do arquivo do componente.
|
|
512
|
+
* - `componentExtension`: Extensão do arquivo do componente.
|
|
513
|
+
* - `format`: Formato do dicionário.
|
|
514
|
+
* - `componentFormat`: Formato do dicionário do componente.
|
|
515
|
+
* - `componentDirPath`: Caminho do diretório do componente.
|
|
513
516
|
*/
|
|
514
517
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
515
518
|
|
|
516
519
|
/**
|
|
517
|
-
* Indica se os componentes devem ser salvos após
|
|
518
|
-
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar
|
|
520
|
+
* Indica se os componentes devem ser salvos após a transformação.
|
|
521
|
+
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar seu aplicativo e ser removido.
|
|
519
522
|
*/
|
|
520
523
|
saveComponents: false,
|
|
521
524
|
|
|
522
525
|
/**
|
|
523
|
-
*
|
|
526
|
+
* Insere apenas o conteúdo no arquivo gerado. Útil para saída JSON por idioma para i18next ou ICU MessageFormat.
|
|
524
527
|
*/
|
|
525
528
|
noMetadata: false,
|
|
526
529
|
|
|
527
530
|
/**
|
|
528
531
|
* Prefixo da chave do dicionário
|
|
529
532
|
*/
|
|
530
|
-
dictionaryKeyPrefix: "", //
|
|
533
|
+
dictionaryKeyPrefix: "", // Adicione um prefixo opcional às chaves de dicionário extraídas
|
|
531
534
|
},
|
|
532
535
|
|
|
533
536
|
/**
|
|
534
|
-
*
|
|
537
|
+
* Esquemas personalizados (Schemas) para validar o conteúdo dos dicionários.
|
|
535
538
|
*/
|
|
536
539
|
schemas: {
|
|
537
540
|
"my-schema": z.object({
|
|
@@ -540,7 +543,7 @@ const config: IntlayerConfig = {
|
|
|
540
543
|
},
|
|
541
544
|
|
|
542
545
|
/**
|
|
543
|
-
* Plugins
|
|
546
|
+
* Configuração de plugins (Plugins).
|
|
544
547
|
*/
|
|
545
548
|
plugins: [],
|
|
546
549
|
};
|
|
@@ -548,257 +551,114 @@ const config: IntlayerConfig = {
|
|
|
548
551
|
export default config;
|
|
549
552
|
````
|
|
550
553
|
|
|
551
|
-
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## Referência de Configuração (Configuration Reference)
|
|
552
557
|
|
|
553
|
-
As seções a seguir descrevem as várias
|
|
558
|
+
As seções a seguir descrevem as várias opções de configuração disponíveis no Intlayer.
|
|
554
559
|
|
|
555
560
|
---
|
|
556
561
|
|
|
557
|
-
### Configuração de Internacionalização
|
|
558
|
-
|
|
559
|
-
Define as configurações relacionadas à internacionalização, incluindo
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
- _Exemplo_: `['en', 'fr', 'es']`
|
|
568
|
-
|
|
569
|
-
- **requiredLocales**:
|
|
570
|
-
- _Tipo_: `string[]`
|
|
571
|
-
- _Padrão_: `[]`
|
|
572
|
-
- _Descrição_: A lista de locais obrigatórios na aplicação.
|
|
573
|
-
- _Exemplo_: `[]`
|
|
574
|
-
- _Nota_: Se estiver vazio, todos os locais são obrigatórios no modo `strict`.
|
|
575
|
-
- _Nota_: Certifique-se de que os locais obrigatórios também estejam definidos no campo `locales`.
|
|
576
|
-
- **strictMode**:
|
|
577
|
-
- _Tipo_: `string`
|
|
578
|
-
- _Padrão_: `inclusive`
|
|
579
|
-
- _Descrição_: Garante implementações rigorosas de conteúdo internacionalizado usando typescript.
|
|
580
|
-
- _Nota_: Se definido como "strict", a função de tradução `t` exigirá que cada local declarado esteja definido. Se algum local estiver faltando, ou se um local não estiver declarado na sua configuração, isso gerará um erro.
|
|
581
|
-
- _Nota_: Se definido como "inclusive", a função de tradução `t` exigirá que cada local declarado esteja definido. Se algum local estiver faltando, isso gerará um aviso. Mas aceitará se um local não estiver declarado na sua configuração, mas existir.
|
|
582
|
-
- _Nota_: Se definido como "loose", a função de tradução `t` aceitará qualquer localidade existente.
|
|
583
|
-
|
|
584
|
-
- **defaultLocale**:
|
|
585
|
-
- _Tipo_: `string`
|
|
586
|
-
- _Padrão_: `'en'`
|
|
587
|
-
- _Descrição_: A localidade padrão usada como fallback caso a localidade solicitada não seja encontrada.
|
|
588
|
-
- _Exemplo_: `'en'`
|
|
589
|
-
- _Nota_: Isso é usado para determinar a localidade quando nenhuma é especificada na URL, cookie ou cabeçalho.
|
|
562
|
+
### Configuração de Internacionalização (Internationalization Configuration)
|
|
563
|
+
|
|
564
|
+
Define as configurações relacionadas à internacionalização, incluindo as localidades disponíveis e a localidade padrão para o aplicativo.
|
|
565
|
+
|
|
566
|
+
| Campo | Tipo | Descrição | Exemplo | Nota |
|
|
567
|
+
| ----------------- | ---------- | ------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | `string[]` | Lista de localidades suportadas no aplicativo. Padrão: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | `string[]` | Lista de localidades obrigatórias no aplicativo. Padrão: `[]` | `[]` | Se vazio, todas as localidades são obrigatórias no modo `strict`. Certifique-se de que as localidades obrigatórias também estejam definidas no campo `locales`. |
|
|
570
|
+
| `strictMode` | `string` | Garante uma implementação robusta de conteúdo internacionalizado por meio do uso de TypeScript. Padrão: `inclusive` | | Se `"strict"`: a função `t` requer que cada localidade declarada seja definida — lança um erro se alguma estiver ausente ou não declarada. Se `"inclusive"`: avisa sobre localidades ausentes, mas aceita as localidades não declaradas existentes. Se `"loose"`: aceita qualquer localidade existente. |
|
|
571
|
+
| `defaultLocale` | `string` | Localidade padrão usada como fallback se a localidade solicitada não for encontrada. Padrão: `Locales.ENGLISH` | `'en'` | Utilizado para determinar a localidade quando nenhuma é especificada na URL, cookie ou cabeçalho. |
|
|
590
572
|
|
|
591
573
|
---
|
|
592
574
|
|
|
593
|
-
### Configuração do Editor
|
|
594
|
-
|
|
595
|
-
Define configurações relacionadas ao editor integrado, incluindo porta do servidor e
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
- _Nota_: A sincronização ao vivo precisa externalizar o conteúdo da aplicação para outro servidor. Isso significa que pode impactar ligeiramente o desempenho da aplicação. Para limitar isso, recomendamos hospedar a aplicação e o servidor de sincronização ao vivo na mesma máquina. Além disso, a combinação de sincronização ao vivo e `optimize` pode gerar um número considerável de requisições ao servidor de sincronização ao vivo. Dependendo da sua infraestrutura, recomendamos testar ambas as opções e sua combinação.
|
|
670
|
-
|
|
671
|
-
- **liveSyncPort**:
|
|
672
|
-
- _Tipo_: `number`
|
|
673
|
-
- _Padrão_: `4000`
|
|
674
|
-
- _Descrição_: A porta do servidor de sincronização ao vivo.
|
|
675
|
-
- _Exemplo_: `4000`
|
|
676
|
-
- _Nota_: A porta do servidor de sincronização ao vivo.
|
|
677
|
-
|
|
678
|
-
### Configuração de Roteamento
|
|
679
|
-
|
|
680
|
-
Configurações que controlam o comportamento do roteamento, incluindo estrutura de URL, armazenamento de localidade e como o middleware opera.
|
|
681
|
-
|
|
682
|
-
#### Propriedades
|
|
683
|
-
|
|
684
|
-
- **mode**:
|
|
685
|
-
- _Tipo_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
686
|
-
- _Padrão_: `'prefix-no-default'`
|
|
687
|
-
- _Descrição_: Modo de roteamento de URL para lidar com a localidade.
|
|
688
|
-
- _Exemplos_:
|
|
689
|
-
- `'prefix-no-default'`: `/dashboard` (pt) ou `/fr/dashboard` (fr)
|
|
690
|
-
- `'prefix-all'`: `/pt/dashboard` (pt) ou `/fr/dashboard` (fr)
|
|
691
|
-
- `'no-prefix'`: `/dashboard` (localidade tratada por outros meios)
|
|
692
|
-
- `'search-params'`: `/dashboard?locale=fr`
|
|
693
|
-
- _Nota_: Esta configuração não afeta a manipulação de cookies ou o armazenamento da localidade.
|
|
694
|
-
|
|
695
|
-
- **storage**:
|
|
696
|
-
- _Tipo_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
|
|
697
|
-
- _Padrão_: `['cookie', 'header']`
|
|
698
|
-
- _Descrição_: Configuração para armazenar a localidade no cliente.
|
|
699
|
-
|
|
700
|
-
- **cookie**:
|
|
701
|
-
- _Descrição_: Armazena os dados em cookies, pequenos pedaços de dados armazenados no navegador do cliente, acessíveis tanto do lado do cliente quanto do servidor.
|
|
702
|
-
- _Nota_: Para armazenamento em conformidade com o GDPR, certifique-se do consentimento do usuário antes de usar.
|
|
703
|
-
- _Nota_: Os parâmetros do cookie são personalizáveis se configurados como CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
|
|
704
|
-
|
|
705
|
-
- **localStorage**:
|
|
706
|
-
- _Descrição_: Armazena dados no navegador sem datas de expiração, permitindo a persistência dos dados entre sessões; acessível apenas do lado do cliente.
|
|
707
|
-
- _Nota_: Ideal para armazenamento de dados a longo prazo, mas esteja ciente das implicações de privacidade e segurança.
|
|
708
|
-
- _Nota_: O local storage é acessível apenas do lado do cliente; o proxy do intlayer não poderá acessá-lo.
|
|
709
|
-
- _Nota_: Os parâmetros do local storage são personalizáveis se configurados como StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
|
|
710
|
-
|
|
711
|
-
- **sessionStorage**:
|
|
712
|
-
- _Descrição_: Armazena dados pela duração da sessão da página, o que significa que são limpos quando a aba ou janela é fechada; acessível apenas do lado do cliente.
|
|
713
|
-
- _Nota_: Adequado para armazenamento temporário de dados por sessão.
|
|
714
|
-
- _Nota_: O local storage é acessível apenas do lado do cliente; o proxy do intlayer não poderá acessá-lo.
|
|
715
|
-
- _Nota_: Os parâmetros do local storage são personalizáveis se configurados como StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
|
|
716
|
-
|
|
717
|
-
- **header**:
|
|
718
|
-
- _Descrição_: Utiliza cabeçalhos HTTP para armazenar ou transmitir dados de localidade, útil para determinar o idioma no lado do servidor.
|
|
719
|
-
- _Nota_: Útil em chamadas de API para manter configurações de idioma consistentes entre solicitações.
|
|
720
|
-
- _Nota_: O cabeçalho é acessível apenas do lado do servidor; o lado do cliente não poderá acessá-lo.
|
|
721
|
-
- _Nota_: O nome do cabeçalho é personalizável se configurado como StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
|
|
722
|
-
|
|
723
|
-
- **basePath**:
|
|
724
|
-
- _Tipo_: `string`
|
|
725
|
-
- _Padrão_: `''`
|
|
726
|
-
- _Descrição_: O caminho base para as URLs da aplicação.
|
|
727
|
-
- _Exemplo_: `'/my-app'`
|
|
728
|
-
- _Nota_:
|
|
729
|
-
- Se a aplicação estiver hospedada em `https://example.com/my-app`,
|
|
730
|
-
- o caminho base é `'/my-app'`.
|
|
731
|
-
- A URL será `https://example.com/my-app/pt`.
|
|
732
|
-
- Se o caminho base não estiver definido, a URL será `https://example.com/pt`.
|
|
733
|
-
|
|
734
|
-
- **noPrefix**:
|
|
735
|
-
- _Tipo_: `boolean`
|
|
736
|
-
- _Padrão_: `false`
|
|
737
|
-
- _Descrição_: Indica se deve omitir o prefixo da localidade nas URLs.
|
|
738
|
-
- _Exemplo_: `true`
|
|
739
|
-
- _Nota_:
|
|
740
|
-
- Se `true`: Sem prefixo na URL
|
|
741
|
-
- Se `false`: Com prefixo na URL
|
|
742
|
-
- Exemplo com `basePath = '/my-app'`:
|
|
743
|
-
- Se `noPrefix = false`: a URL será `https://example.com/my-app/pt`
|
|
744
|
-
- Se `noPrefix = true`: a URL será `https://example.com/my-app`
|
|
745
|
-
- Esta opção só é válida se `mode` for `'prefix-no-default'` ou `'prefix-all'`.
|
|
746
|
-
|
|
747
|
-
- **rewrite**:
|
|
748
|
-
- _Tipo_: `Record<string, StrictModeLocaleMap<string>>`
|
|
749
|
-
- _Padrão_: `undefined`
|
|
750
|
-
- _Descrição_: Regras personalizadas de reescrita de URL que substituem o modo de roteamento padrão para caminhos específicos. Permite definir caminhos específicos por idioma que diferem do comportamento de roteamento padrão. Suporta parâmetros de rota dinâmicos usando a sintaxe `[param]`.
|
|
751
|
-
- _Exemplo_:
|
|
752
|
-
```typescript
|
|
753
|
-
routing: {
|
|
754
|
-
mode: "prefix-no-default", // Estratégia de fallback
|
|
755
|
-
rewrite: nextjsRewrite({
|
|
756
|
-
"/about": {
|
|
757
|
-
pt: "/sobre-nos",
|
|
758
|
-
en: "/about",
|
|
759
|
-
fr: "/a-propos",
|
|
760
|
-
},
|
|
761
|
-
"/product/[slug]": {
|
|
762
|
-
pt: "/produto/[slug]",
|
|
763
|
-
en: "/product/[slug]",
|
|
764
|
-
fr: "/produit/[slug]",
|
|
765
|
-
},
|
|
766
|
-
"/blog/[category]/[id]": {
|
|
767
|
-
pt: "/blog/[category]/[id]",
|
|
768
|
-
en: "/blog/[category]/[id]",
|
|
769
|
-
fr: "/journal/[category]/[id]",
|
|
770
|
-
},
|
|
771
|
-
}),
|
|
772
|
-
}
|
|
773
|
-
```
|
|
774
|
-
- _Nota_: As regras de reescrita têm prioridade sobre o comportamento do `mode` padrão. Se um caminho corresponder a uma regra de reescrita, o caminho localizado da configuração de reescrita será usado em vez do prefixo de idioma padrão.
|
|
775
|
-
- _Nota_: Parâmetros de rota dinâmicos são suportados usando a notação de colchetes (por exemplo, `[slug]`, `[id]`). Os valores dos parâmetros são extraídos automaticamente da URL e interpolados no caminho reescrito.
|
|
776
|
-
- _Nota_: Funciona com aplicações Next.js e Vite. O middleware/proxy reescreverá automaticamente as solicitações recebidas para corresponder à estrutura de rota interna.
|
|
777
|
-
- _Nota_: Ao gerar URLs com `getLocalizedUrl()`, as regras de reescrita são aplicadas automaticamente se corresponderem ao caminho fornecido.
|
|
778
|
-
- _Referência_: Para mais informações, consulte [Reescrita de URL personalizada](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/custom_url_rewrites.md).
|
|
779
|
-
|
|
780
|
-
#### Atributos de Cookie
|
|
781
|
-
|
|
782
|
-
Ao usar o armazenamento de cookie, você pode configurar atributos de cookie adicionais:
|
|
783
|
-
|
|
784
|
-
- **name**: Nome do cookie (padrão: `'INTLAYER_LOCALE'`)
|
|
785
|
-
- **domain**: Domínio do cookie (padrão: undefined)
|
|
786
|
-
- **path**: Caminho do cookie (padrão: undefined)
|
|
787
|
-
- **secure**: Requer HTTPS (padrão: undefined)
|
|
788
|
-
- **httpOnly**: Flag HTTP-only (padrão: undefined)
|
|
789
|
-
- **sameSite**: Política SameSite (`'strict' | 'lax' | 'none'`)
|
|
790
|
-
- **expires**: Data de expiração ou dias (padrão: undefined)
|
|
791
|
-
|
|
792
|
-
#### Atributos de Armazenamento Local
|
|
575
|
+
### Configuração do Editor (Editor Configuration)
|
|
576
|
+
|
|
577
|
+
Define as configurações relacionadas ao editor integrado, incluindo porta do servidor e estado de atividade.
|
|
578
|
+
|
|
579
|
+
| Campo | Tipo | Descrição | Exemplo | Nota |
|
|
580
|
+
| ---------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | `string` | A URL do seu aplicativo. Padrão: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Utilizado para restringir as origens (origins) do editor por motivos de segurança. Se definido como `'*'`, o editor pode ser acessado de qualquer origem. |
|
|
582
|
+
| `port` | `number` | Porta utilizada pelo servidor do Editor Visual. Padrão: `8000` | | |
|
|
583
|
+
| `editorURL` | `string` | URL do servidor do editor. Padrão: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Utilizado para restringir as origens que podem interagir com o aplicativo. Se definido como `'*'`, acessível de qualquer origem. Deve ser definido se você alterar a porta ou se o editor estiver hospedado em outro domínio. |
|
|
584
|
+
| `cmsURL` | `string` | URL do CMS do Intlayer. Padrão: `'https://intlayer.org'` | `'https://intlayer.org'` | |
|
|
585
|
+
| `backendURL` | `string` | URL do servidor backend. Padrão: `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | `boolean` | Indica se o aplicativo irá interagir com o editor visual. Padrão: `true` | `process.env.NODE_ENV !== 'production'` | Se `false`, o editor não pode interagir com o aplicativo. Desativá-lo para ambientes específicos aumenta a segurança. |
|
|
587
|
+
| `clientId` | `string | undefined` | Permite que os pacotes intlayer se autentiquem com o backend usando oAuth2. Para receber um token de acesso, vá para [intlayer.org/project](https://app.intlayer.org/project). Padrão: `undefined` | | Mantenha em segredo; armazene em variáveis de ambiente. |
|
|
588
|
+
| `clientSecret` | `string | undefined` | Permite que os pacotes intlayer se autentiquem com o backend usando oAuth2. Para receber um token de acesso, vá para [intlayer.org/project](https://app.intlayer.org/project). Padrão: `undefined` | | Mantenha em segredo; armazene em variáveis de ambiente. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | `string` | Estratégia para priorizar dicionários quando existem dicionários locais e remotos. Padrão: `'local_first'` | `'distant_first'` | `'distant_first'`: Prioriza remotos sobre locais. `'local_first'`: Prioriza locais sobre remotos. |
|
|
590
|
+
| `liveSync` | `boolean` | Indica se o servidor do aplicativo deve recarregar os conteúdos a quente quando uma alteração for detectada no CMS / Editor Visual / Backend. Padrão: `true` | `true` | Quando um dicionário é adicionado/atualizado, o aplicativo atualiza o conteúdo da página. O live sync externaliza o conteúdo para outro servidor, o que pode afetar levemente o desempenho. Recomenda-se hospedar ambos na mesma máquina. |
|
|
591
|
+
| `liveSyncPort` | `number` | Porta do servidor Live Sync. Padrão: `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | `string` | URL do servidor Live Sync. Padrão: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Aponta para localhost por padrão; pode ser alterado para um servidor de sincronização ao vivo remoto. |
|
|
593
|
+
|
|
594
|
+
### Configuração de Roteamento (Routing Configuration)
|
|
595
|
+
|
|
596
|
+
Configurações que controlam o comportamento do roteamento, incluindo estrutura de URL, armazenamento de localidade e tratamento de middleware.
|
|
597
|
+
|
|
598
|
+
| Campo | Tipo | Descrição | Exemplo | Nota |
|
|
599
|
+
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
600
|
+
| `mode` | `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'` | Modo de roteamento de URL para tratamento de localidades. Padrão: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) ou `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: localidade tratada por outros meios. `'search-params'`: usa `/dashboard?locale=fr` | Não afeta o gerenciamento de cookies ou o armazenamento de localidade. |
|
|
601
|
+
| `storage` | `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array` | Configuração para armazenar a localidade no cliente. Padrão: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Consulte a tabela de Opções de Armazenamento abaixo. |
|
|
602
|
+
| `basePath` | `string` | O caminho base para as URLs do aplicativo. Padrão: `''` | `'/my-app'` | Se o aplicativo estiver em `https://example.com/my-app`, basePath é `'/my-app'` e as URLs tornam-se `https://example.com/my-app/en`. |
|
|
603
|
+
| `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | Regras de reescrita de URL personalizadas que substituem o modo de roteamento padrão para caminhos específicos. Suporta parâmetros dinâmicos `[param]`. Padrão: `undefined` | Ver exemplo abaixo | As regras de reescrita têm prioridade sobre o `mode`. Funciona com Next.js e Vite. `getLocalizedUrl()` aplica automaticamente as regras correspondentes. Veja [Reescritas de URL Personalizadas](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/custom_url_rewrites.md). |
|
|
604
|
+
|
|
605
|
+
**Exemplo de `rewrite`**:
|
|
606
|
+
|
|
607
|
+
```typescript
|
|
608
|
+
routing: {
|
|
609
|
+
mode: "prefix-no-default", // Estratégia de fallback
|
|
610
|
+
rewrite: nextjsRewrite({
|
|
611
|
+
"/about": {
|
|
612
|
+
en: "/about",
|
|
613
|
+
fr: "/a-propos",
|
|
614
|
+
},
|
|
615
|
+
"/product/[slug]": {
|
|
616
|
+
en: "/product/[slug]",
|
|
617
|
+
fr: "/produit/[slug]",
|
|
618
|
+
},
|
|
619
|
+
"/blog/[category]/[id]": {
|
|
620
|
+
en: "/blog/[category]/[id]",
|
|
621
|
+
fr: "/journal/[category]/[id]",
|
|
622
|
+
},
|
|
623
|
+
}),
|
|
624
|
+
}
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
#### Opções de Armazenamento (Storage Options)
|
|
628
|
+
|
|
629
|
+
| Valor | Descrição | Nota |
|
|
630
|
+
| ------------------ | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
631
|
+
| `'cookie'` | Salva a localidade nos cookies — acessível tanto pelo lado do cliente quanto pelo servidor. | Para conformidade com a GDPR, certifique-se de que o consentimento adequado do usuário foi obtido. Personalizável via `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
|
|
632
|
+
| `'localStorage'` | Salva a localidade no navegador sem data de validade — apenas lado do cliente. | Não expira a menos que seja explicitamente limpo. O proxy do Intlayer não pode acessá-lo. Personalizável via `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
|
|
633
|
+
| `'sessionStorage'` | Salva a localidade pela duração da sessão da página — apenas lado do cliente. | Limpo quando a aba/janela é fechada. O proxy do Intlayer não pode acessá-lo. Personalizável via `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
|
|
634
|
+
| `'header'` | Salva ou transmite a localidade via cabeçalhos HTTP — apenas lado do servidor. | Útil para chamadas de API. O lado do cliente não pode acessar. Personalizável via `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
|
|
635
|
+
|
|
636
|
+
#### Atributos de Cookie (Cookie Attributes)
|
|
637
|
+
|
|
638
|
+
Ao usar o armazenamento via cookie, você pode configurar atributos de cookie adicionais:
|
|
639
|
+
|
|
640
|
+
| Campo | Tipo | Descrição |
|
|
641
|
+
| ---------- | ------------------------------------- | ------------------------------------------------------- |
|
|
642
|
+
| `name` | `string` | Nome do cookie. Padrão: `'INTLAYER_LOCALE'` |
|
|
643
|
+
| `domain` | `string` | Domínio do cookie. Padrão: `undefined` |
|
|
644
|
+
| `path` | `string` | Caminho do cookie. Padrão: `undefined` |
|
|
645
|
+
| `secure` | `boolean` | Requer HTTPS. Padrão: `undefined` |
|
|
646
|
+
| `httpOnly` | `boolean` | Flag HTTP-only. Padrão: `undefined` |
|
|
647
|
+
| `sameSite` | `'strict' | 'lax' | 'none'` | Política de SameSite. |
|
|
648
|
+
| `expires` | `Date | number` | Data de validade ou número de dias. Padrão: `undefined` |
|
|
649
|
+
|
|
650
|
+
#### Atributos de Armazenamento de Localidade (Locale Storage Attributes)
|
|
793
651
|
|
|
794
652
|
Ao usar localStorage ou sessionStorage:
|
|
795
653
|
|
|
796
|
-
|
|
797
|
-
|
|
654
|
+
| Campo | Tipo | Descrição |
|
|
655
|
+
| ------ | ---------------------------------------- | ----------------------------------------------------------- |
|
|
656
|
+
| `type` | `'localStorage' | 'sessionStorage'` | Tipo de armazenamento. |
|
|
657
|
+
| `name` | `string` | Nome da chave de armazenamento. Padrão: `'INTLAYER_LOCALE'` |
|
|
798
658
|
|
|
799
659
|
#### Exemplos de Configuração
|
|
800
660
|
|
|
801
|
-
Aqui estão alguns exemplos comuns de configuração para a nova estrutura de roteamento
|
|
661
|
+
Aqui estão alguns exemplos comuns de configuração para a nova estrutura de roteamento v7:
|
|
802
662
|
|
|
803
663
|
**Configuração Básica (Padrão)**:
|
|
804
664
|
|
|
@@ -807,7 +667,7 @@ import { Locales, type IntlayerConfig } from "intlayer";
|
|
|
807
667
|
// intlayer.config.ts
|
|
808
668
|
const config: IntlayerConfig = {
|
|
809
669
|
internationalization: {
|
|
810
|
-
locales: ["en", "fr", "
|
|
670
|
+
locales: ["en", "fr", "es"],
|
|
811
671
|
defaultLocale: "en",
|
|
812
672
|
},
|
|
813
673
|
routing: {
|
|
@@ -820,14 +680,14 @@ const config: IntlayerConfig = {
|
|
|
820
680
|
export default config;
|
|
821
681
|
```
|
|
822
682
|
|
|
823
|
-
**Configuração em
|
|
683
|
+
**Configuração em conformidade com a GDPR**:
|
|
824
684
|
|
|
825
685
|
```typescript
|
|
826
686
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
827
687
|
// intlayer.config.ts
|
|
828
688
|
const config: IntlayerConfig = {
|
|
829
689
|
internationalization: {
|
|
830
|
-
locales: ["en", "fr", "
|
|
690
|
+
locales: ["en", "fr", "es"],
|
|
831
691
|
defaultLocale: "en",
|
|
832
692
|
},
|
|
833
693
|
routing: {
|
|
@@ -852,14 +712,14 @@ const config: IntlayerConfig = {
|
|
|
852
712
|
export default config;
|
|
853
713
|
```
|
|
854
714
|
|
|
855
|
-
**Modo de Parâmetros de
|
|
715
|
+
**Modo de Parâmetros de Pesquisa (Search Parameters Mode)**:
|
|
856
716
|
|
|
857
717
|
```typescript
|
|
858
718
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
859
719
|
// intlayer.config.ts
|
|
860
720
|
const config: IntlayerConfig = {
|
|
861
721
|
internationalization: {
|
|
862
|
-
locales: ["en", "fr", "
|
|
722
|
+
locales: ["en", "fr", "es"],
|
|
863
723
|
defaultLocale: "en",
|
|
864
724
|
},
|
|
865
725
|
routing: {
|
|
@@ -872,14 +732,14 @@ const config: IntlayerConfig = {
|
|
|
872
732
|
export default config;
|
|
873
733
|
```
|
|
874
734
|
|
|
875
|
-
**Modo
|
|
735
|
+
**Modo sem prefixo (No Prefix Mode) com armazenamento personalizado**:
|
|
876
736
|
|
|
877
737
|
```typescript
|
|
878
738
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
879
739
|
// intlayer.config.ts
|
|
880
740
|
const config: IntlayerConfig = {
|
|
881
741
|
internationalization: {
|
|
882
|
-
locales: ["en", "fr", "
|
|
742
|
+
locales: ["en", "fr", "es"],
|
|
883
743
|
defaultLocale: "en",
|
|
884
744
|
},
|
|
885
745
|
routing: {
|
|
@@ -895,7 +755,7 @@ const config: IntlayerConfig = {
|
|
|
895
755
|
export default config;
|
|
896
756
|
```
|
|
897
757
|
|
|
898
|
-
**Reescrita de URL
|
|
758
|
+
**Reescrita de URL personalizada com caminhos dinâmicos**:
|
|
899
759
|
|
|
900
760
|
```typescript
|
|
901
761
|
// intlayer.config.ts
|
|
@@ -907,7 +767,7 @@ const config: IntlayerConfig = {
|
|
|
907
767
|
defaultLocale: "en",
|
|
908
768
|
},
|
|
909
769
|
routing: {
|
|
910
|
-
mode: "prefix-no-default", // Estratégia de fallback para
|
|
770
|
+
mode: "prefix-no-default", // Estratégia de fallback para caminhos não reescritos
|
|
911
771
|
storage: "cookie",
|
|
912
772
|
rewrite: nextjsRewrite({
|
|
913
773
|
"/about": {
|
|
@@ -931,363 +791,132 @@ export default config;
|
|
|
931
791
|
|
|
932
792
|
---
|
|
933
793
|
|
|
934
|
-
### Configuração de Conteúdo
|
|
935
|
-
|
|
936
|
-
Configurações relacionadas ao
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
-
|
|
946
|
-
- _Exemplo_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
|
|
947
|
-
- _Nota_: A configuração de preenchimento automático pode ser:
|
|
948
|
-
- booleano: Ativa o preenchimento automático para todos os locais
|
|
949
|
-
- string: Caminho para um único arquivo ou template com variáveis
|
|
950
|
-
- objeto: Caminhos de arquivos por localidade
|
|
951
|
-
|
|
952
|
-
- **watch**:
|
|
953
|
-
- _Tipo_: `boolean`
|
|
954
|
-
- _Padrão_: `process.env.NODE_ENV === 'development'`
|
|
955
|
-
- _Descrição_: Indica se o Intlayer deve monitorar alterações nos arquivos de declaração de conteúdo na aplicação para reconstruir os dicionários relacionados.
|
|
956
|
-
|
|
957
|
-
- **fileExtensions**:
|
|
958
|
-
- _Tipo_: `string[]`
|
|
959
|
-
- _Padrão_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
960
|
-
- _Descrição_: Extensões de arquivo a serem procuradas ao construir dicionários.
|
|
961
|
-
- _Exemplo_: `['.data.ts', '.data.js', '.data.json']`
|
|
962
|
-
- _Nota_: Personalizar extensões de arquivo pode ajudar a evitar conflitos.
|
|
963
|
-
|
|
964
|
-
- **contentDir**:
|
|
965
|
-
- _Tipo_: `string[]`
|
|
966
|
-
- _Padrão_: `['.']`
|
|
967
|
-
- _Exemplo_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
|
|
968
|
-
- _Descrição_: O caminho do diretório onde os arquivos de definição de conteúdo (`.content.*`) são armazenados.
|
|
969
|
-
- _Nota_: Isso é usado para monitorar arquivos de conteúdo para reconstruir os dicionários.
|
|
970
|
-
|
|
971
|
-
- **codeDir**:
|
|
972
|
-
- _Tipo_: `string[]`
|
|
973
|
-
- _Padrão_: `['.']`
|
|
974
|
-
- _Exemplo_: `['src', '../../ui-library']`
|
|
975
|
-
- _Descrição_: O caminho do diretório onde o código é armazenado, relativo ao diretório base.
|
|
976
|
-
- _Nota_: Isso é usado para monitorar arquivos de código para transformar (podar, otimizar). Manter isso separado de `contentDir` pode melhorar o desempenho da compilação ao evitar varreduras desnecessárias de arquivos de conteúdo.
|
|
977
|
-
|
|
978
|
-
- **excludedPath**:
|
|
979
|
-
- _Tipo_: `string[]`
|
|
980
|
-
- _Padrão_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
|
|
981
|
-
- _Descrição_: Diretórios excluídos da busca de conteúdo.
|
|
982
|
-
- _Nota_: Esta configuração ainda não é utilizada, mas está planejada para implementação futura.
|
|
983
|
-
|
|
984
|
-
- **formatCommand**:
|
|
985
|
-
- _Tipo_: `string`
|
|
986
|
-
- _Padrão_: `undefined`
|
|
987
|
-
- _Descrição_: O comando para formatar o conteúdo. Quando o Intlayer escreve seus arquivos .content localmente, este comando será usado para formatar o conteúdo.
|
|
988
|
-
- _Exemplo_: `'npx prettier --write "{{file}}" --log-level silent'` Usando Prettier
|
|
989
|
-
- _Exemplo_: `'npx biome format "{{file}}" --write --log-level none'` Usando Biome
|
|
990
|
-
- _Exemplo_: `'npx eslint --fix "{{file}}" --quiet'` Usando ESLint
|
|
991
|
-
- _Nota_: O Intlayer substituirá {{file}} pelo caminho do arquivo a ser formatado.
|
|
992
|
-
- _Nota_: Se não for definido, o Intlayer tentará detectar automaticamente o comando de formatação. Tentando resolver os seguintes comandos: prettier, biome, eslint.
|
|
794
|
+
### Configuração de Conteúdo (Content Configuration)
|
|
795
|
+
|
|
796
|
+
Configurações relacionadas ao processamento de conteúdo dentro do aplicativo (nomes de diretório, extensões de arquivo e configurações derivadas).
|
|
797
|
+
|
|
798
|
+
| Campo | Tipo | Descrição | Exemplo | Nota |
|
|
799
|
+
| ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
800
|
+
| `watch` | `boolean` | Indica se o Intlayer deve monitorar as alterações nos arquivos de declaração de conteúdo para reconstruir dicionários. Padrão: `process.env.NODE_ENV === 'development'` | | |
|
|
801
|
+
| `fileExtensions` | `string[]` | Extensões de arquivo utilizadas para escanear arquivos de declaração de conteúdo. Padrão: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
|
|
802
|
+
| `contentDir` | `string[]` | Caminhos para diretórios onde os arquivos de declaração de conteúdo estão localizados. Padrão: `['.']` | `['src/content']` | |
|
|
803
|
+
| `codeDir` | `string[]` | Caminhos para diretórios onde os arquivos de código-fonte de seu aplicativo estão localizados. Padrão: `['.']` | `['src']` | Utilizado para otimizar a compilação e garantir que a transformação de código e o hot reload sejam aplicados somente aos arquivos necessários. |
|
|
804
|
+
| `excludedPath` | `string[]` | Caminhos excluídos do escaneamento de conteúdo. Padrão: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
|
|
805
|
+
| `formatCommand` | `string` | Comando que será executado para formatar arquivos de conteúdo recém-criados ou atualizados. Padrão: `undefined` | `'npx prettier --write "{{file}}"'` | Utilizado durante a extração de conteúdo ou através do editor visual. |
|
|
993
806
|
|
|
994
807
|
---
|
|
995
808
|
|
|
996
|
-
### Configuração
|
|
809
|
+
### Configuração de Dicionário (Dictionary Configuration)
|
|
997
810
|
|
|
998
|
-
Configurações
|
|
811
|
+
Configurações que controlam as operações de dicionários, incluindo o comportamento de preenchimento automático e a geração de conteúdo.
|
|
999
812
|
|
|
1000
|
-
|
|
813
|
+
Esta configuração de dicionário tem dois propósitos principais:
|
|
1001
814
|
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
- _Padrão_: `process.cwd()`
|
|
1005
|
-
- _Descrição_: O diretório base para o projeto.
|
|
1006
|
-
- _Exemplo_: `'/path/to/project'`
|
|
1007
|
-
- _Nota_: Isso é usado para resolver todos os diretórios relacionados ao Intlayer.
|
|
815
|
+
1. **Valores padrão**: Definir valores padrão ao criar arquivos de declaração de conteúdo.
|
|
816
|
+
2. **Comportamento de fallback**: Fornecer valores de fallback quando campos específicos não são definidos, permitindo definir o comportamento das operações de dicionário globalmente.
|
|
1008
817
|
|
|
1009
|
-
|
|
1010
|
-
- _Tipo_: `string`
|
|
1011
|
-
- _Padrão_: `'.intlayer/dictionary'`
|
|
1012
|
-
- _Descrição_: O caminho do diretório para armazenar dicionários de localização.
|
|
818
|
+
Para mais informações sobre arquivos de declaração de conteúdo e como os valores de configuração são aplicados, consulte a [documentação de arquivos de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/content_file.md).
|
|
1013
819
|
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
820
|
+
| Campo | Tipo | Descrição | Exemplo | Nota |
|
|
821
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
822
|
+
| `fill` | `boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>>` | Controla como os arquivos de saída do preenchimento automático (tradução por IA) são gerados. Padrão: `true` | Veja exemplo abaixo | `true`: Caminho padrão (mesmo arquivo que a fonte). `false`: Desativado. Templates de string/função geram arquivos por localidade. Objeto por localidade: cada localidade é mapeada para seu próprio padrão; `false` ignora essa localidade. A inclusão de `{{locale}}` ativa a geração por localidade. O `fill` no nível do dicionário sempre tem precedência sobre esta configuração global. |
|
|
823
|
+
| `importMode` | `'static' | 'dynamic' | 'fetch'` | Controla como os dicionários são importados. Padrão: `'static'` | `'dynamic'` | `'static'`: Importado estaticamente. `'dynamic'`: Importado dinamicamente via Suspense. `'fetch'`: Recuperado dinamicamente via Live Sync API. Não afeta `getIntlayer`, `getDictionary`, `useDictionary`, etc. |
|
|
824
|
+
| `location` | `'local' | 'remote' | 'hybrid' | string` | Onde os dicionários são armazenados. Padrão: `'local'` | `'remote'` | `'local'`: sistema de arquivos. `'remote'`: Intlayer CMS. `'hybrid'`: ambos. |
|
|
825
|
+
| `contentAutoTransformation` | `boolean` | Se arquivos de conteúdo devem ser transformados automaticamente (ex: de Markdown para HTML). Padrão: `false` | `true` | Útil para processar campos Markdown via @intlayer/markdown. |
|
|
1020
826
|
|
|
1021
|
-
|
|
1022
|
-
- _Tipo_: `string`
|
|
1023
|
-
- _Padrão_: `'.intlayer/unmerged_dictionary'`
|
|
1024
|
-
- _Descrição_: O diretório para armazenar dicionários não mesclados.
|
|
827
|
+
**Exemplo de `fill`**:
|
|
1025
828
|
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
829
|
+
```ts
|
|
830
|
+
dictionary: {
|
|
831
|
+
fill: {
|
|
832
|
+
en: '/locales/en/{{key}}.content.json',
|
|
833
|
+
fr: ({ key }) => `/locales/fr/${key}.content.json`,
|
|
834
|
+
es: false,
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
```
|
|
1030
838
|
|
|
1031
|
-
|
|
1032
|
-
- _Tipo_: `string`
|
|
1033
|
-
- _Padrão_: `'.intlayer/main'`
|
|
1034
|
-
- _Descrição_: O diretório onde os arquivos principais da aplicação são armazenados.
|
|
839
|
+
---
|
|
1035
840
|
|
|
1036
|
-
|
|
1037
|
-
- _Tipo_: `string`
|
|
1038
|
-
- _Padrão_: `'.intlayer/config'`
|
|
1039
|
-
- _Descrição_: O diretório onde os arquivos de configuração são armazenados.
|
|
841
|
+
### Configuração de IA (AI Configuration)
|
|
1040
842
|
|
|
1041
|
-
|
|
1042
|
-
- _Tipo_: `string`
|
|
1043
|
-
- _Padrão_: `'.intlayer/cache'`
|
|
1044
|
-
- _Descrição_: O diretório onde os arquivos de cache são armazenados.
|
|
843
|
+
Define configurações para os recursos baseados em IA do Intlayer, como a tradução build.
|
|
1045
844
|
|
|
1046
|
-
|
|
845
|
+
| Campo | Tipo | Descrição | Exemplo | Nota |
|
|
846
|
+
| -------------------- | ---------------------- | ------------------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
847
|
+
| `provider` | `string` | Provedor de IA a ser utilizado. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
|
|
848
|
+
| `model` | `string` | Modelo de IA a ser utilizado. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
|
|
849
|
+
| `apiKey` | `string` | Chave da API para o provedor selecionado. | `process.env.OPENAI_API_KEY` | |
|
|
850
|
+
| `applicationContext` | `string` | Contexto extra sobre seu aplicativo para melhorar a precisão da tradução da IA. | `'Plataforma de estudo para crianças.'` | |
|
|
851
|
+
| `baseURL` | `string` | URL base opcional para chamadas de API. | | Útil se você estiver usando um proxy ou uma implantação local de IA. |
|
|
852
|
+
| `dataSerialization` | `'json' | 'toon'` | Define como enviar os dados para a IA. Padrão: `'json'` | `'json'` | `'json'`: mais robusto e preciso. `'toon'`: consome menos tokens, mas pode ser menos estável. |
|
|
1047
853
|
|
|
1048
|
-
|
|
854
|
+
---
|
|
1049
855
|
|
|
1050
|
-
|
|
856
|
+
### Configuração de Compilação (Build Configuration)
|
|
1051
857
|
|
|
1052
|
-
|
|
1053
|
-
2. **Comportamento de fallback**: Fornece valores de fallback quando campos específicos não estão definidos, permitindo que você defina o comportamento das operações do dicionário globalmente
|
|
858
|
+
Configurações do processo de build e otimização do Intlayer.
|
|
1054
859
|
|
|
1055
|
-
|
|
860
|
+
| Campo | Tipo | Descrição | Exemplo | Nota |
|
|
861
|
+
| -------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------- | ---- |
|
|
862
|
+
| `mode` | `'auto' | 'manual'` | Indica se o Intlayer deve ser executado automaticamente durante as etapas de pré-compilação do aplicativo. Padrão: `'auto'` | | |
|
|
863
|
+
| `optimize` | `boolean` | Indica se dicionários compilados devem ser otimizados para o tempo de execução. Padrão: `true` em produção | | |
|
|
864
|
+
| `outputFormat` | `('cjs' | 'esm')[]` | Formato de saída para os arquivos de dicionário gerados. Padrão: `['cjs', 'esm']` | | |
|
|
865
|
+
| `checkTypes` | `boolean` | Indica se o Intlayer deve verificar os tipos nos arquivos gerados. Padrão: `false` | | |
|
|
1056
866
|
|
|
1057
|
-
|
|
867
|
+
---
|
|
868
|
+
|
|
869
|
+
### Configurações de Sistema (System Configuration)
|
|
870
|
+
|
|
871
|
+
Essas configurações destinam-se a casos de uso avançados e para a configuração interna do Intlayer.
|
|
1058
872
|
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
- **version**
|
|
873
|
+
| Campo | Tipo | Descrição | Padrão |
|
|
874
|
+
| ------------------------- | -------- | ------------------------------------------------- | --------------------------------- |
|
|
875
|
+
| `dictionariesDir` | `string` | Diretório de dicionários compilados. | `'.intlayer/dictionary'` |
|
|
876
|
+
| `moduleAugmentationDir` | `string` | Diretório para o aumento de módulo TypeScript. | `'.intlayer/types'` |
|
|
877
|
+
| `unmergedDictionariesDir` | `string` | Diretório de dicionários não mesclados. | `'.intlayer/unmerged_dictionary'` |
|
|
878
|
+
| `typesDir` | `string` | Diretório de tipos gerados. | `'.intlayer/types'` |
|
|
879
|
+
| `mainDir` | `string` | Diretório do arquivo Intlayer principal. | `'.intlayer/main'` |
|
|
880
|
+
| `configDir` | `string` | Diretório de arquivos de configuração compilados. | `'.intlayer/config'` |
|
|
881
|
+
| `cacheDir` | `string` | Diretório de arquivos de cache. | `'.intlayer/cache'` |
|
|
1069
882
|
|
|
1070
883
|
---
|
|
1071
884
|
|
|
1072
|
-
### Configuração do
|
|
1073
|
-
|
|
1074
|
-
Configurações
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
- _Exemplo_: `default`
|
|
1084
|
-
- _Nota_: O modo do logger. O modo verbose registrará mais informações, mas pode ser usado para fins de depuração. O modo disabled desabilitará o logger.
|
|
1085
|
-
|
|
1086
|
-
- **prefix**:
|
|
1087
|
-
- _Tipo_: `string`
|
|
1088
|
-
- _Padrão_: `'[intlayer] '`
|
|
1089
|
-
- _Descrição_: O prefixo do logger.
|
|
1090
|
-
- _Exemplo_: `'[meu prefixo personalizado] '`
|
|
1091
|
-
- _Nota_: O prefixo do logger.
|
|
1092
|
-
|
|
1093
|
-
### Configuração de IA
|
|
1094
|
-
|
|
1095
|
-
Configurações que controlam os recursos de IA do Intlayer, incluindo o provedor, modelo e chave de API.
|
|
1096
|
-
|
|
1097
|
-
Esta configuração é opcional se você estiver registrado no [Painel do Intlayer](https://app.intlayer.org/project) usando uma chave de acesso. O Intlayer gerenciará automaticamente a solução de IA mais eficiente e econômica para suas necessidades. Usar as opções padrão garante melhor manutenção a longo prazo, pois o Intlayer atualiza continuamente para usar os modelos mais relevantes.
|
|
1098
|
-
|
|
1099
|
-
Se preferir usar sua própria chave de API ou modelo específico, você pode definir sua configuração personalizada de IA.
|
|
1100
|
-
Esta configuração de IA será usada globalmente em todo o seu ambiente Intlayer. Os comandos CLI usarão essas configurações como padrão para os comandos (por exemplo, `fill`), assim como o SDK, Editor Visual e CMS. Você pode substituir esses valores padrão para casos de uso específicos usando parâmetros de comando.
|
|
1101
|
-
|
|
1102
|
-
O Intlayer suporta múltiplos provedores de IA para maior flexibilidade e escolha. Os provedores atualmente suportados são:
|
|
1103
|
-
|
|
1104
|
-
- **OpenAI** (padrão)
|
|
1105
|
-
- **Anthropic Claude**
|
|
1106
|
-
- **Mistral AI**
|
|
1107
|
-
- **DeepSeek**
|
|
1108
|
-
- **Google Gemini**
|
|
1109
|
-
- **Meta Llama**
|
|
1110
|
-
- **Ollama**
|
|
1111
|
-
- **OpenRouter**
|
|
1112
|
-
- **Alibaba Cloud**
|
|
1113
|
-
- **Fireworks**
|
|
1114
|
-
- **Hugging Face**
|
|
1115
|
-
- **Groq**
|
|
1116
|
-
- **Amazon Bedrock**
|
|
1117
|
-
- **Google AI Studio**
|
|
1118
|
-
- **Google Vertex**
|
|
1119
|
-
- **Together.ai**
|
|
1120
|
-
- **ollama**
|
|
1121
|
-
|
|
1122
|
-
#### Propriedades
|
|
1123
|
-
|
|
1124
|
-
- **provider** :
|
|
1125
|
-
- _Tipo_ : `string`
|
|
1126
|
-
- _Padrão_ : `'openai'`
|
|
1127
|
-
- _Descrição_ : O provedor a ser usado para os recursos de IA do Intlayer.
|
|
1128
|
-
- _Opções_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1129
|
-
- _Exemplo_ : `'anthropic'`
|
|
1130
|
-
- _Nota_: Diferentes provedores podem exigir diferentes chaves de API e possuir modelos de preços distintos.
|
|
1131
|
-
|
|
1132
|
-
- **model** :
|
|
1133
|
-
- _Tipo_ : `string`
|
|
1134
|
-
- _Padrão_ : Nenhum
|
|
1135
|
-
- _Descrição_ : O modelo a ser usado para os recursos de IA do Intlayer.
|
|
1136
|
-
- _Exemplo_ : `'gpt-4o-2024-11-20'`
|
|
1137
|
-
- _Nota_ : O modelo específico a ser usado varia conforme o provedor.
|
|
1138
|
-
|
|
1139
|
-
- **temperature** :
|
|
1140
|
-
- _Tipo_ : `number`
|
|
1141
|
-
- _Padrão_ : Nenhum
|
|
1142
|
-
- _Descrição_ : A temperatura controla a aleatoriedade das respostas da IA.
|
|
1143
|
-
- _Exemplo_ : `0.1`
|
|
1144
|
-
- _Nota_ : Uma temperatura mais alta tornará a IA mais criativa e menos previsível.
|
|
1145
|
-
|
|
1146
|
-
- **apiKey** :
|
|
1147
|
-
- _Tipo_ : `string`
|
|
1148
|
-
- _Padrão_ : Nenhum
|
|
1149
|
-
- _Descrição_ : Sua chave de API para o provedor selecionado.
|
|
1150
|
-
- _Exemplo_ : `process.env.OPENAI_API_KEY`
|
|
1151
|
-
- _Nota_ : Importante: As chaves de API devem ser mantidas em segredo e não compartilhadas publicamente. Por favor, certifique-se de mantê-las em um local seguro, como variáveis de ambiente.
|
|
1152
|
-
|
|
1153
|
-
- **applicationContext** :
|
|
1154
|
-
- _Tipo_ : `string`
|
|
1155
|
-
- _Padrão_ : Nenhum
|
|
1156
|
-
- _Descrição_ : Fornece contexto adicional sobre sua aplicação para o modelo de IA, ajudando-o a gerar traduções mais precisas e contextualmente apropriadas. Isso pode incluir informações sobre o domínio do seu app, público-alvo, tom ou terminologia específica.
|
|
1157
|
-
- _Nota_: Você pode usar isso para adicionar outras regras ao modelo de IA (por exemplo, "não transforme URLs").
|
|
1158
|
-
- _Exemplo_ : `'O contexto da minha aplicação'`
|
|
1159
|
-
|
|
1160
|
-
- **baseURL** :
|
|
1161
|
-
- _Tipo_ : `string`
|
|
1162
|
-
- _Padrão_ : Nenhum
|
|
1163
|
-
- _Descrição_ : A URL base para a API de IA.
|
|
1164
|
-
- _Exemplo_ : `'https://api.openai.com/v1'`
|
|
1165
|
-
- _Exemplo_ : `'http://localhost:5000'`
|
|
1166
|
-
- _Nota_ : Pode ser usado para apontar para um endpoint de API de IA local ou personalizado.
|
|
1167
|
-
|
|
1168
|
-
- **dataSerialization**:
|
|
1169
|
-
- _Tipo_: `'json' | 'toon'`
|
|
1170
|
-
- _Padrão_: `'json'`
|
|
1171
|
-
- _Descrição_: O formato de serialização de dados a ser usado nas funcionalidades de IA do Intlayer.
|
|
1172
|
-
- _Exemplo_: `'toon'`
|
|
1173
|
-
- _Nota_: `json`: Padrão, confiável; usa mais tokens. `toon`: Menos tokens, menos consistente que o JSON.
|
|
1174
|
-
> Se você fornecer parâmetros adicionais, o Intlayer os passará para o modelo de IA como contexto. Isso pode ser usado para ajustar o esforço de raciocínio, a verbosidade do texto, etc.
|
|
1175
|
-
|
|
1176
|
-
### Configuração de Build
|
|
1177
|
-
|
|
1178
|
-
Configurações que controlam como o Intlayer otimiza e constrói a internacionalização da sua aplicação.
|
|
1179
|
-
|
|
1180
|
-
As opções de build se aplicam aos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
1181
|
-
|
|
1182
|
-
> No modo de desenvolvimento, o Intlayer usa importações estáticas para dicionários para simplificar a experiência de desenvolvimento.
|
|
1183
|
-
|
|
1184
|
-
> Quando otimizado, o Intlayer substituirá as chamadas de dicionários para otimizar a divisão em chunks, de modo que o pacote final importe apenas os dicionários que são realmente usados.
|
|
1185
|
-
|
|
1186
|
-
#### Propriedades
|
|
1187
|
-
|
|
1188
|
-
- **mode** :
|
|
1189
|
-
- _Tipo_ : `'auto' | 'manual'`
|
|
1190
|
-
- _Padrão_ : `'auto'`
|
|
1191
|
-
- _Descrição_ : Controla o modo da build.
|
|
1192
|
-
- _Exemplo_ : `'manual'`
|
|
1193
|
-
- _Nota_ : Se 'auto', a build será habilitada automaticamente durante o build da app.
|
|
1194
|
-
- _Nota_ : Se 'manual', a build só será acionada quando o comando de build for executado.
|
|
1195
|
-
- _Nota_ : Pode ser usado para desabilitar a build de dicionários, por exemplo, quando se deseja evitar a execução em um ambiente Node.js.
|
|
1196
|
-
|
|
1197
|
-
- **optimize** :
|
|
1198
|
-
- _Tipo_ : `boolean`
|
|
1199
|
-
- _Padrão_ : `undefined`
|
|
1200
|
-
- _Descrição_ : Controla se a build deve ser otimizada.
|
|
1201
|
-
- _Exemplo_ : `process.env.NODE_ENV === 'production'`
|
|
1202
|
-
- _Nota_ : Por padrão, a otimização da build é indefinida. Se não definida, o Intlayer habilitará a otimização da build durante o build da sua aplicação (vite / nextjs / etc). Definir como `true` forçará a otimização da build, mesmo no modo de desenvolvimento. Definir como `false` desativará a otimização da build.
|
|
1203
|
-
- _Nota_ : Quando ativado, o Intlayer substituirá todas as chamadas de dicionários para otimizar a divisão em chunks. Dessa forma, o pacote final importará apenas os dicionários que são usados. Todas as importações permanecerão como importações estáticas para evitar processamento assíncrono ao carregar os dicionários.
|
|
1204
|
-
- _Nota_ : O Intlayer substituirá todas as chamadas de `useIntlayer` pelo modo definido pela opção `importMode` e `getIntlayer` por `getDictionary`.
|
|
1205
|
-
- _Nota_ : Esta opção depende dos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
1206
|
-
- _Nota_ : Certifique-se de que todas as chaves sejam declaradas estaticamente nas chamadas de `useIntlayer`. Exemplo: `useIntlayer('navbar')`.
|
|
1207
|
-
|
|
1208
|
-
- **traversePattern**:
|
|
1209
|
-
- _Tipo_: `string[]`
|
|
1210
|
-
- _Padrão_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1211
|
-
- _Descrição_: Padrões que definem quais arquivos devem ser percorridos durante a otimização.
|
|
1212
|
-
- _Exemplo_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1213
|
-
- _Nota_: Use isso para limitar a otimização aos arquivos de código relevantes e melhorar o desempenho da compilação.
|
|
1214
|
-
- _Nota_: Esta opção será ignorada se `optimize` estiver desativado.
|
|
1215
|
-
- _Nota_: Use padrão glob.
|
|
885
|
+
### Configuração do Compilador (Compiler Configuration)
|
|
886
|
+
|
|
887
|
+
Configurações para o compilador do Intlayer (`intlayer compiler`).
|
|
888
|
+
|
|
889
|
+
| Campo | Tipo | Descrição | Padrão |
|
|
890
|
+
| --------------------- | ------------------------ | --------------------------------------------------------------------------------------------- | ------- |
|
|
891
|
+
| `enabled` | `boolean` | Indica se o compilador está ativo. | `false` |
|
|
892
|
+
| `output` | `string | Function` | Caminho de saída para dicionários extraídos. | |
|
|
893
|
+
| `saveComponents` | `boolean` | Indica se os arquivos de origem originais devem ser substituídos pelas versões transformadas. | `false` |
|
|
894
|
+
| `noMetadata` | `boolean` | Se `true`, o compilador não incluirá metadados nos arquivos gerados. | `false` |
|
|
895
|
+
| `dictionaryKeyPrefix` | `string` | Prefixo opcional da chave do dicionário. | `''` |
|
|
1216
896
|
|
|
1217
897
|
---
|
|
1218
898
|
|
|
1219
|
-
### Configuração do
|
|
1220
|
-
|
|
1221
|
-
Configurações
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
- _Nota_: Se verdadeiro, o compilador substituirá os arquivos originais pelos arquivos transformados. Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois pode ser removido.
|
|
1244
|
-
|
|
1245
|
-
- **transformPattern**:
|
|
1246
|
-
- _Tipo_: `string | string[]`
|
|
1247
|
-
- _Padrão_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
|
|
1248
|
-
- _Descrição_: Padrões que definem quais arquivos devem ser percorridos durante a otimização.
|
|
1249
|
-
- _Exemplo_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1250
|
-
- _Nota_: Use isso para limitar a otimização aos arquivos de código relevantes e melhorar o desempenho da construção.
|
|
1251
|
-
|
|
1252
|
-
- **excludePattern**:
|
|
1253
|
-
- _Tipo_: `string | string[]`
|
|
1254
|
-
- _Padrão_: `['**/node_modules/**']`
|
|
1255
|
-
- _Descrição_: Padrões que definem quais arquivos devem ser excluídos durante a otimização.
|
|
1256
|
-
- _Exemplo_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1257
|
-
|
|
1258
|
-
- **output**:
|
|
1259
|
-
- _Tipo_: `FilePathPattern`
|
|
1260
|
-
- _Padrão_: `undefined`
|
|
1261
|
-
- _Descrição_: Define o caminho dos arquivos de saída. Substitui `outputDir`. Manipula variáveis dinâmicas por meio de strings de modelo ou uma função. Variáveis suportadas: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` e `{{componentDirPath}}`.
|
|
1262
|
-
- _Nota_: Os caminhos `./` são resolvidos em relação ao diretório do componente. Os caminhos `/` são resolvidos em relação à raiz do projeto (`baseDir`).
|
|
1263
|
-
- _Nota_: A inserção da variável `{{locale}}` no caminho ativará a geração de dicionários separados por idioma.
|
|
1264
|
-
- _Exemplo_:
|
|
1265
|
-
- **Arquivo multilíngue próximo ao componente** :
|
|
1266
|
-
- String: `'./{{fileName}}{{extension}}'`
|
|
1267
|
-
- Função: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1268
|
-
|
|
1269
|
-
- **Arquivos JSON centralizados por idioma** :
|
|
1270
|
-
- String: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1271
|
-
- Função: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1272
|
-
|
|
1273
|
-
- **noMetadata**:
|
|
1274
|
-
- _Tipo_: `boolean`
|
|
1275
|
-
- _Padrão_: `false`
|
|
1276
|
-
- _Descrição_: Indica se os metadados devem ser salvos no arquivo. Se verdadeiro, o compilador não salvará os metadados dos dicionários (chave, wrapper de conteúdo). Útil para saídas JSON i18next ou ICU MessageFormat por localidade.
|
|
1277
|
-
- _Nota_: Útil se usado com o plugin `loadJSON`.
|
|
1278
|
-
- _Exemplo_:
|
|
1279
|
-
Se `true` :
|
|
1280
|
-
```json
|
|
1281
|
-
{
|
|
1282
|
-
"key": "value"
|
|
1283
|
-
}
|
|
1284
|
-
```
|
|
1285
|
-
Se `false` :
|
|
1286
|
-
```json
|
|
1287
|
-
{
|
|
1288
|
-
"key": "value",
|
|
1289
|
-
"content": {
|
|
1290
|
-
"key": "value"
|
|
1291
|
-
}
|
|
1292
|
-
}
|
|
1293
|
-
```
|
|
899
|
+
### Configuração do Registrador (Logger Configuration)
|
|
900
|
+
|
|
901
|
+
Configurações para personalizar a saída de logs do Intlayer.
|
|
902
|
+
|
|
903
|
+
| Campo | Tipo | Descrição | Padrão |
|
|
904
|
+
| -------- | ---------------------------------------------- | ----------------------------------- | -------------- |
|
|
905
|
+
| `mode` | `'default' | 'verbose' | 'disabled'` | Modo de registro. | `'default'` |
|
|
906
|
+
| `prefix` | `string` | Prefixo para mensagens de registro. | `'[intlayer]'` |
|
|
907
|
+
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
### Esquemas Personalizados (Custom Schemas)
|
|
911
|
+
|
|
912
|
+
| Campo | Tipo | Descrição |
|
|
913
|
+
| --------- | --------------------------- | ---------------------------------------------------------------------------------- |
|
|
914
|
+
| `schemas` | `Record<string, ZodSchema>` | Permite que você defina esquemas Zod para validar a estrutura de seus dicionários. |
|
|
915
|
+
|
|
916
|
+
---
|
|
917
|
+
|
|
918
|
+
### Plugins
|
|
919
|
+
|
|
920
|
+
| Campo | Tipo | Descrição |
|
|
921
|
+
| --------- | ------------------ | ---------------------------------------------- |
|
|
922
|
+
| `plugins` | `IntlayerPlugin[]` | Lista de plugins do Intlayer a serem ativados. |
|