@intlayer/docs 8.4.6 → 8.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/docs/ar/configuration.md +300 -264
- package/docs/cs/configuration.md +958 -0
- package/docs/de/configuration.md +285 -249
- package/docs/en/configuration.md +115 -137
- package/docs/en-GB/configuration.md +272 -237
- package/docs/es/configuration.md +161 -125
- package/docs/fr/configuration.md +137 -101
- package/docs/it/configuration.md +294 -259
- package/docs/ja/configuration.md +269 -233
- package/docs/nl/configuration.md +958 -0
- package/docs/pt/configuration.md +311 -275
- package/docs/ru/configuration.md +287 -272
- package/docs/tr/configuration.md +265 -229
- package/package.json +6 -6
- package/docs/bn/configuration.md +0 -922
- package/docs/hi/configuration.md +0 -922
- package/docs/id/configuration.md +0 -922
- package/docs/ko/configuration.md +0 -922
- package/docs/pl/configuration.md +0 -922
- package/docs/uk/configuration.md +0 -922
- package/docs/ur/configuration.md +0 -922
- package/docs/vi/configuration.md +0 -922
- package/docs/zh/configuration.md +0 -922
package/docs/pt/configuration.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
4
|
-
title: Configuração
|
|
5
|
-
description: Saiba como configurar o Intlayer para
|
|
3
|
+
updatedAt: 2026-03-20
|
|
4
|
+
title: Configuração (Configuration)
|
|
5
|
+
description: Saiba como configurar o Intlayer para a sua aplicação. Entenda as várias configurações e opções disponíveis para personalizar o Intlayer conforme as suas necessidades.
|
|
6
6
|
keywords:
|
|
7
7
|
- Configuração
|
|
8
8
|
- Definições
|
|
@@ -16,98 +16,98 @@ slugs:
|
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.4.0
|
|
18
18
|
date: 2026-03-20
|
|
19
|
-
changes:
|
|
19
|
+
changes: Adicionada notação de objeto por localidade para 'compiler.output' e 'dictionary.fill'
|
|
20
20
|
- version: 8.3.0
|
|
21
21
|
date: 2026-03-11
|
|
22
|
-
changes:
|
|
22
|
+
changes: Movido 'baseDir' da configuração 'content' para a configuração 'system'
|
|
23
23
|
- version: 8.2.0
|
|
24
24
|
date: 2026-03-09
|
|
25
|
-
changes:
|
|
25
|
+
changes: Atualizadas as opções do compilador, adicionado suporte para 'output' e 'noMetadata'
|
|
26
26
|
- version: 8.1.7
|
|
27
27
|
date: 2026-02-25
|
|
28
|
-
changes:
|
|
28
|
+
changes: Atualizadas as opções do compilador
|
|
29
29
|
- version: 8.1.5
|
|
30
30
|
date: 2026-02-23
|
|
31
|
-
changes:
|
|
31
|
+
changes: Adicionada opção do compilador 'build-only' e prefixo do dicionário
|
|
32
32
|
- version: 8.0.6
|
|
33
33
|
date: 2026-02-12
|
|
34
|
-
changes:
|
|
34
|
+
changes: Adicionado suporte para provedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
35
35
|
- version: 8.0.5
|
|
36
36
|
date: 2026-02-06
|
|
37
|
-
changes:
|
|
37
|
+
changes: Adicionado `dataSerialization` à configuração de IA
|
|
38
38
|
- version: 8.0.0
|
|
39
39
|
date: 2026-01-24
|
|
40
|
-
changes:
|
|
40
|
+
changes: Renomeado o modo de importação `live` para `fetch` para descrever melhor o mecanismo subjacente.
|
|
41
41
|
- version: 8.0.0
|
|
42
42
|
date: 2026-01-22
|
|
43
|
-
changes:
|
|
43
|
+
changes: Movida a configuração de build `importMode` para a configuração `dictionary`.
|
|
44
44
|
- version: 8.0.0
|
|
45
45
|
date: 2026-01-22
|
|
46
|
-
changes:
|
|
46
|
+
changes: Adicionada a opção `rewrite` à configuração de roteamento
|
|
47
47
|
- version: 8.0.0
|
|
48
48
|
date: 2026-01-18
|
|
49
|
-
changes:
|
|
49
|
+
changes: Separada a configuração do sistema da configuração de conteúdo. Movidos os caminhos internos para a propriedade `system`. Adicionado `codeDir` para separar os arquivos de conteúdo da transformação de código.
|
|
50
50
|
- version: 8.0.0
|
|
51
51
|
date: 2026-01-18
|
|
52
|
-
changes:
|
|
52
|
+
changes: Adicionadas as opções de dicionário `location` e `schema`
|
|
53
53
|
- version: 7.5.1
|
|
54
54
|
date: 2026-01-10
|
|
55
|
-
changes:
|
|
55
|
+
changes: Adicionado suporte para os formatos de arquivo JSON5 e JSONC
|
|
56
56
|
- version: 7.5.0
|
|
57
57
|
date: 2025-12-17
|
|
58
|
-
changes:
|
|
58
|
+
changes: Adicionada a opção `buildMode`
|
|
59
59
|
- version: 7.0.0
|
|
60
60
|
date: 2025-10-25
|
|
61
|
-
changes:
|
|
61
|
+
changes: Adicionada a configuração `dictionary`
|
|
62
62
|
- version: 7.0.0
|
|
63
63
|
date: 2025-10-21
|
|
64
|
-
changes:
|
|
64
|
+
changes: Substituído `middleware` pela configuração `routing`
|
|
65
65
|
- version: 7.0.0
|
|
66
66
|
date: 2025-10-12
|
|
67
|
-
changes:
|
|
67
|
+
changes: Adicionada a opção `formatCommand`
|
|
68
68
|
- version: 6.2.0
|
|
69
69
|
date: 2025-10-12
|
|
70
|
-
changes:
|
|
70
|
+
changes: Atualizada a opção `excludedPath`
|
|
71
71
|
- version: 6.0.2
|
|
72
72
|
date: 2025-09-23
|
|
73
|
-
changes:
|
|
73
|
+
changes: Adicionada a opção `outputFormat`
|
|
74
74
|
- version: 6.0.0
|
|
75
75
|
date: 2025-09-21
|
|
76
|
-
changes:
|
|
76
|
+
changes: Removido o campo `dictionaryOutput` e o campo `i18nextResourcesDir`
|
|
77
77
|
- version: 6.0.0
|
|
78
78
|
date: 2025-09-16
|
|
79
|
-
changes:
|
|
79
|
+
changes: Adicionado o modo de importação `live`
|
|
80
80
|
- version: 6.0.0
|
|
81
81
|
date: 2025-09-04
|
|
82
|
-
changes:
|
|
82
|
+
changes: Substituído o campo `hotReload` por `liveSync` e adicionados os campos `liveSyncPort` e `liveSyncURL`
|
|
83
83
|
- version: 5.6.1
|
|
84
84
|
date: 2025-07-25
|
|
85
|
-
changes:
|
|
85
|
+
changes: Substituído `activateDynamicImport` pela opção `importMode`
|
|
86
86
|
- version: 5.6.0
|
|
87
87
|
date: 2025-07-13
|
|
88
|
-
changes:
|
|
88
|
+
changes: Alterado o `contentDir` padrão de `['src']` para `['.']`
|
|
89
89
|
- version: 5.5.11
|
|
90
90
|
date: 2025-06-29
|
|
91
|
-
changes:
|
|
91
|
+
changes: Adicionados os comandos `docs`
|
|
92
92
|
---
|
|
93
93
|
|
|
94
94
|
# Documentação de Configuração do Intlayer
|
|
95
95
|
|
|
96
96
|
## Visão Geral
|
|
97
97
|
|
|
98
|
-
Os arquivos de configuração do Intlayer permitem
|
|
98
|
+
Os arquivos de configuração do Intlayer permitem que você personalize vários aspetos do plugin, como internacionalização, middleware e gestão de conteúdo. Este documento fornece uma descrição detalhada de cada propriedade na configuração.
|
|
99
99
|
|
|
100
100
|
---
|
|
101
101
|
|
|
102
|
-
##
|
|
102
|
+
## Índice
|
|
103
103
|
|
|
104
104
|
<TOC/>
|
|
105
105
|
|
|
106
106
|
---
|
|
107
107
|
|
|
108
|
-
## Suporte
|
|
108
|
+
## Suporte de Ficheiros de Configuração
|
|
109
109
|
|
|
110
|
-
O Intlayer aceita os formatos de
|
|
110
|
+
O Intlayer aceita os formatos de ficheiro de configuração JSON, JS, MJS e TS:
|
|
111
111
|
|
|
112
112
|
- `intlayer.config.ts`
|
|
113
113
|
- `intlayer.config.js`
|
|
@@ -120,7 +120,7 @@ O Intlayer aceita os formatos de arquivo de configuração JSON, JS, MJS e TS:
|
|
|
120
120
|
|
|
121
121
|
---
|
|
122
122
|
|
|
123
|
-
## Exemplo de
|
|
123
|
+
## Exemplo de Ficheiro de Configuração
|
|
124
124
|
|
|
125
125
|
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
126
126
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -128,49 +128,49 @@ import { nextjsRewrite } from "intlayer/routing";
|
|
|
128
128
|
import { z } from "zod";
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
|
-
* Exemplo de
|
|
131
|
+
* Exemplo de ficheiro de configuração do Intlayer que mostra todas as opções disponíveis.
|
|
132
132
|
*/
|
|
133
133
|
const config: IntlayerConfig = {
|
|
134
134
|
/**
|
|
135
|
-
* Configuração
|
|
135
|
+
* Configuração para as definições de internacionalização.
|
|
136
136
|
*/
|
|
137
137
|
internationalization: {
|
|
138
138
|
/**
|
|
139
|
-
* Lista de
|
|
139
|
+
* Lista de idiomas suportados na aplicação.
|
|
140
140
|
* Padrão: [Locales.ENGLISH]
|
|
141
141
|
*/
|
|
142
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
|
-
* Lista de
|
|
146
|
-
* Se vazio,
|
|
145
|
+
* Lista de idiomas obrigatórios que devem ser definidos em cada dicionário.
|
|
146
|
+
* Se vazio, todos os idiomas são obrigatórios no modo `strict`.
|
|
147
147
|
* Padrão: []
|
|
148
148
|
*/
|
|
149
149
|
requiredLocales: [Locales.ENGLISH],
|
|
150
150
|
|
|
151
151
|
/**
|
|
152
|
-
* Nível de
|
|
153
|
-
* - "strict": Erro se
|
|
154
|
-
* - "inclusive": Aviso se
|
|
155
|
-
* - "loose": Aceita qualquer
|
|
152
|
+
* Nível de severidade para o conteúdo internacionalizado.
|
|
153
|
+
* - "strict": Erro se faltar um idioma declarado ou se não estiver declarado.
|
|
154
|
+
* - "inclusive": Aviso se faltar um idioma declarado.
|
|
155
|
+
* - "loose": Aceita qualquer idioma existente.
|
|
156
156
|
* Padrão: "inclusive"
|
|
157
157
|
*/
|
|
158
158
|
strictMode: "inclusive",
|
|
159
159
|
|
|
160
160
|
/**
|
|
161
|
-
*
|
|
161
|
+
* Idioma padrão usado como fallback se o idioma solicitado não for encontrado.
|
|
162
162
|
* Padrão: Locales.ENGLISH
|
|
163
163
|
*/
|
|
164
164
|
defaultLocale: Locales.ENGLISH,
|
|
165
165
|
},
|
|
166
166
|
|
|
167
167
|
/**
|
|
168
|
-
* Configurações que controlam as operações
|
|
168
|
+
* Configurações que controlam as operações do dicionário e o comportamento de fallback.
|
|
169
169
|
*/
|
|
170
170
|
dictionary: {
|
|
171
171
|
/**
|
|
172
172
|
* Controla como os dicionários são importados.
|
|
173
|
-
* - "static": Importado estaticamente no momento da
|
|
173
|
+
* - "static": Importado estaticamente no momento da build.
|
|
174
174
|
* - "dynamic": Importado dinamicamente usando Suspense.
|
|
175
175
|
* - "fetch": Recuperado dinamicamente através da API Live Sync.
|
|
176
176
|
* Padrão: "static"
|
|
@@ -178,24 +178,24 @@ const config: IntlayerConfig = {
|
|
|
178
178
|
importMode: "static",
|
|
179
179
|
|
|
180
180
|
/**
|
|
181
|
-
* Estratégia para
|
|
182
|
-
* Pode ser um
|
|
181
|
+
* Estratégia para o preenchimento automático de traduções em falta usando IA.
|
|
182
|
+
* Pode ser um booleano ou um padrão de caminho para armazenar o conteúdo preenchido.
|
|
183
183
|
* Padrão: true
|
|
184
184
|
*/
|
|
185
185
|
fill: true,
|
|
186
186
|
|
|
187
187
|
/**
|
|
188
|
-
* Localização física dos
|
|
189
|
-
* - "local": Armazenado no sistema de
|
|
190
|
-
* - "remote": Armazenado no CMS
|
|
191
|
-
* - "hybrid": Armazenado
|
|
188
|
+
* Localização física dos ficheiros do dicionário.
|
|
189
|
+
* - "local": Armazenado no sistema de ficheiros local.
|
|
190
|
+
* - "remote": Armazenado no Intlayer CMS.
|
|
191
|
+
* - "hybrid": Armazenado no sistema de ficheiros local e no Intlayer CMS.
|
|
192
192
|
* - "plugin" (ou qualquer string personalizada): Fornecido por um plugin ou fonte personalizada.
|
|
193
193
|
* Padrão: "local"
|
|
194
194
|
*/
|
|
195
195
|
location: "local",
|
|
196
196
|
|
|
197
197
|
/**
|
|
198
|
-
* Se
|
|
198
|
+
* Se deve transformar automaticamente os conteúdos (ex: Markdown para HTML).
|
|
199
199
|
* Padrão: false
|
|
200
200
|
*/
|
|
201
201
|
contentAutoTransformation: false,
|
|
@@ -206,30 +206,30 @@ const config: IntlayerConfig = {
|
|
|
206
206
|
*/
|
|
207
207
|
routing: {
|
|
208
208
|
/**
|
|
209
|
-
* Estratégia de roteamento de
|
|
210
|
-
* - "prefix-no-default":
|
|
211
|
-
* - "prefix-all":
|
|
212
|
-
* - "no-prefix":
|
|
209
|
+
* Estratégia de roteamento de idiomas.
|
|
210
|
+
* - "prefix-no-default": Prefixo para todos exceto o idioma padrão (ex: /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Prefixo para todos os idiomas (ex: /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Sem idioma no URL.
|
|
213
213
|
* - "search-params": Usa ?locale=...
|
|
214
214
|
* Padrão: "prefix-no-default"
|
|
215
215
|
*/
|
|
216
216
|
mode: "prefix-no-default",
|
|
217
217
|
|
|
218
218
|
/**
|
|
219
|
-
* Onde armazenar
|
|
220
|
-
* Opções: 'cookie', 'localStorage', 'sessionStorage', 'header' ou um array
|
|
219
|
+
* Onde armazenar o idioma selecionado pelo utilizador.
|
|
220
|
+
* Opções: 'cookie', 'localStorage', 'sessionStorage', 'header', ou um array destes.
|
|
221
221
|
* Padrão: ['cookie', 'header']
|
|
222
222
|
*/
|
|
223
223
|
storage: ["cookie", "header"],
|
|
224
224
|
|
|
225
225
|
/**
|
|
226
|
-
*
|
|
226
|
+
* Caminho base para os URLs da aplicação.
|
|
227
227
|
* Padrão: ""
|
|
228
228
|
*/
|
|
229
229
|
basePath: "",
|
|
230
230
|
|
|
231
231
|
/**
|
|
232
|
-
* Regras de reescrita de URL personalizadas para caminhos específicos
|
|
232
|
+
* Regras de reescrita de URL personalizadas para caminhos específicos de idioma.
|
|
233
233
|
*/
|
|
234
234
|
rewrite: nextjsRewrite({
|
|
235
235
|
"/[locale]/about": {
|
|
@@ -240,58 +240,58 @@ const config: IntlayerConfig = {
|
|
|
240
240
|
},
|
|
241
241
|
|
|
242
242
|
/**
|
|
243
|
-
* Configurações
|
|
243
|
+
* Configurações para encontrar e processar ficheiros de conteúdo.
|
|
244
244
|
*/
|
|
245
245
|
content: {
|
|
246
246
|
/**
|
|
247
|
-
* Extensões de
|
|
247
|
+
* Extensões de ficheiro a analisar para dicionários.
|
|
248
248
|
* Padrão: ['.content.ts', '.content.js', '.content.json', etc.]
|
|
249
249
|
*/
|
|
250
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
251
251
|
|
|
252
252
|
/**
|
|
253
|
-
* Diretórios onde os
|
|
253
|
+
* Diretórios onde os ficheiros .content residem.
|
|
254
254
|
* Padrão: ["."]
|
|
255
255
|
*/
|
|
256
256
|
contentDir: ["src"],
|
|
257
257
|
|
|
258
258
|
/**
|
|
259
|
-
*
|
|
260
|
-
*
|
|
259
|
+
* Diretório onde o código fonte reside.
|
|
260
|
+
* Usado para otimização de build e transformação de código.
|
|
261
261
|
* Padrão: ["."]
|
|
262
262
|
*/
|
|
263
263
|
codeDir: ["src"],
|
|
264
264
|
|
|
265
265
|
/**
|
|
266
|
-
* Padrões
|
|
266
|
+
* Padrões a excluir da análise.
|
|
267
267
|
* Padrão: ['node_modules', '.intlayer', etc.]
|
|
268
268
|
*/
|
|
269
269
|
excludedPath: ["node_modules"],
|
|
270
270
|
|
|
271
271
|
/**
|
|
272
|
-
* Se deve
|
|
273
|
-
* Padrão: true
|
|
272
|
+
* Se deve monitorizar alterações e regenerar dicionários durante o desenvolvimento.
|
|
273
|
+
* Padrão: true em desenvolvimento
|
|
274
274
|
*/
|
|
275
275
|
watch: true,
|
|
276
276
|
|
|
277
277
|
/**
|
|
278
|
-
* Comando
|
|
278
|
+
* Comando para formatar ficheiros .content recém-criados / atualizados.
|
|
279
279
|
*/
|
|
280
280
|
formatCommand: 'npx prettier --write "{{file}}"',
|
|
281
281
|
},
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
|
-
* Configuração do
|
|
284
|
+
* Configuração do Visual Editor.
|
|
285
285
|
*/
|
|
286
286
|
editor: {
|
|
287
287
|
/**
|
|
288
|
-
* Se o editor
|
|
288
|
+
* Se o visual editor está ativado.
|
|
289
289
|
* Padrão: false
|
|
290
290
|
*/
|
|
291
291
|
enabled: true,
|
|
292
292
|
|
|
293
293
|
/**
|
|
294
|
-
*
|
|
294
|
+
* URL da sua aplicação para validação de origem.
|
|
295
295
|
* Padrão: ""
|
|
296
296
|
*/
|
|
297
297
|
applicationURL: "http://localhost:3000",
|
|
@@ -303,43 +303,43 @@ const config: IntlayerConfig = {
|
|
|
303
303
|
port: 8000,
|
|
304
304
|
|
|
305
305
|
/**
|
|
306
|
-
*
|
|
306
|
+
* URL pública para o editor.
|
|
307
307
|
* Padrão: "http://localhost:8000"
|
|
308
308
|
*/
|
|
309
309
|
editorURL: "http://localhost:8000",
|
|
310
310
|
|
|
311
311
|
/**
|
|
312
|
-
* URL do CMS
|
|
312
|
+
* URL do Intlayer CMS.
|
|
313
313
|
* Padrão: "https://app.intlayer.org"
|
|
314
314
|
*/
|
|
315
315
|
cmsURL: "https://app.intlayer.org",
|
|
316
316
|
|
|
317
317
|
/**
|
|
318
|
-
* URL da API do
|
|
318
|
+
* URL da API do backend.
|
|
319
319
|
* Padrão: "https://back.intlayer.org"
|
|
320
320
|
*/
|
|
321
321
|
backendURL: "https://back.intlayer.org",
|
|
322
322
|
|
|
323
323
|
/**
|
|
324
|
-
* Se deve
|
|
324
|
+
* Se deve ativar a sincronização de conteúdo em tempo real.
|
|
325
325
|
* Padrão: false
|
|
326
326
|
*/
|
|
327
327
|
liveSync: true,
|
|
328
328
|
},
|
|
329
329
|
|
|
330
330
|
/**
|
|
331
|
-
*
|
|
331
|
+
* Definições de tradução e geração assistida por IA.
|
|
332
332
|
*/
|
|
333
333
|
ai: {
|
|
334
334
|
/**
|
|
335
|
-
* Provedor de IA a
|
|
335
|
+
* Provedor de IA a utilizar.
|
|
336
336
|
* Opções: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
337
|
* Padrão: 'openai'
|
|
338
338
|
*/
|
|
339
339
|
provider: "openai",
|
|
340
340
|
|
|
341
341
|
/**
|
|
342
|
-
* Modelo do provedor selecionado
|
|
342
|
+
* Modelo a utilizar do provedor selecionado.
|
|
343
343
|
*/
|
|
344
344
|
model: "gpt-4o",
|
|
345
345
|
|
|
@@ -349,21 +349,21 @@ const config: IntlayerConfig = {
|
|
|
349
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
350
350
|
|
|
351
351
|
/**
|
|
352
|
-
* Contexto global para guiar a IA
|
|
352
|
+
* Contexto global para guiar a IA na geração de traduções.
|
|
353
353
|
*/
|
|
354
|
-
applicationContext: "
|
|
354
|
+
applicationContext: "Esta é uma aplicação de reserva de viagens.",
|
|
355
355
|
|
|
356
356
|
/**
|
|
357
|
-
* URL
|
|
357
|
+
* URL base para a API de IA.
|
|
358
358
|
*/
|
|
359
359
|
baseURL: "http://localhost:3000",
|
|
360
360
|
|
|
361
361
|
/**
|
|
362
|
-
* Serialização de
|
|
362
|
+
* Serialização de dados
|
|
363
363
|
*
|
|
364
364
|
* Opções:
|
|
365
|
-
* - "json": Padrão,
|
|
366
|
-
* - "toon":
|
|
365
|
+
* - "json": Padrão, fiável; consome mais tokens.
|
|
366
|
+
* - "toon": Menos tokens, menos consistente que JSON.
|
|
367
367
|
*
|
|
368
368
|
* Padrão: "json"
|
|
369
369
|
*/
|
|
@@ -371,13 +371,13 @@ const config: IntlayerConfig = {
|
|
|
371
371
|
},
|
|
372
372
|
|
|
373
373
|
/**
|
|
374
|
-
* Configurações de
|
|
374
|
+
* Configurações de build e otimização.
|
|
375
375
|
*/
|
|
376
376
|
build: {
|
|
377
377
|
/**
|
|
378
|
-
* Modo de execução da
|
|
379
|
-
* - "auto":
|
|
380
|
-
* - "manual": Requer um comando de
|
|
378
|
+
* Modo de execução da build.
|
|
379
|
+
* - "auto": Build automática durante a build da app.
|
|
380
|
+
* - "manual": Requer um comando de build explícito.
|
|
381
381
|
* Padrão: "auto"
|
|
382
382
|
*/
|
|
383
383
|
mode: "auto",
|
|
@@ -389,40 +389,40 @@ const config: IntlayerConfig = {
|
|
|
389
389
|
optimize: true,
|
|
390
390
|
|
|
391
391
|
/**
|
|
392
|
-
* Formato de saída para os
|
|
392
|
+
* Formato de saída para os ficheiros de dicionário gerados.
|
|
393
393
|
* Padrão: ['cjs', 'esm']
|
|
394
394
|
*/
|
|
395
395
|
outputFormat: ["cjs", "esm"],
|
|
396
396
|
|
|
397
397
|
/**
|
|
398
|
-
* Indica se a
|
|
398
|
+
* Indica se a build deve verificar os tipos TypeScript.
|
|
399
399
|
* Padrão: false
|
|
400
400
|
*/
|
|
401
401
|
checkTypes: false,
|
|
402
402
|
},
|
|
403
403
|
|
|
404
404
|
/**
|
|
405
|
-
* Configuração do
|
|
405
|
+
* Configuração do Logger.
|
|
406
406
|
*/
|
|
407
407
|
log: {
|
|
408
408
|
/**
|
|
409
|
-
* Nível de
|
|
410
|
-
* - "default":
|
|
411
|
-
* - "verbose":
|
|
412
|
-
* - "disabled":
|
|
409
|
+
* Nível de registo.
|
|
410
|
+
* - "default": Registo padrão.
|
|
411
|
+
* - "verbose": Registo de depuração detalhado.
|
|
412
|
+
* - "disabled": Sem registo.
|
|
413
413
|
* Padrão: "default"
|
|
414
414
|
*/
|
|
415
415
|
mode: "default",
|
|
416
416
|
|
|
417
417
|
/**
|
|
418
|
-
* Prefixo para todas as mensagens de
|
|
418
|
+
* Prefixo para todas as mensagens de registo.
|
|
419
419
|
* Padrão: "[intlayer]"
|
|
420
420
|
*/
|
|
421
421
|
prefix: "[intlayer]",
|
|
422
422
|
},
|
|
423
423
|
|
|
424
424
|
/**
|
|
425
|
-
*
|
|
425
|
+
* Configuração do Sistema (Casos de uso avançados)
|
|
426
426
|
*/
|
|
427
427
|
system: {
|
|
428
428
|
/**
|
|
@@ -431,63 +431,63 @@ const config: IntlayerConfig = {
|
|
|
431
431
|
dictionariesDir: ".intlayer/dictionary",
|
|
432
432
|
|
|
433
433
|
/**
|
|
434
|
-
* Diretório para
|
|
434
|
+
* Diretório para a "module augmentation".
|
|
435
435
|
*/
|
|
436
436
|
moduleAugmentationDir: ".intlayer/types",
|
|
437
437
|
|
|
438
438
|
/**
|
|
439
|
-
* Diretório para armazenar dicionários não
|
|
439
|
+
* Diretório para armazenar dicionários não fundidos.
|
|
440
440
|
*/
|
|
441
441
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
442
442
|
|
|
443
443
|
/**
|
|
444
|
-
* Diretório para armazenar tipos de
|
|
444
|
+
* Diretório para armazenar tipos de dicionário.
|
|
445
445
|
*/
|
|
446
446
|
typesDir: ".intlayer/types",
|
|
447
447
|
|
|
448
448
|
/**
|
|
449
|
-
* Diretório onde os
|
|
449
|
+
* Diretório onde os ficheiros principais da aplicação estão armazenados.
|
|
450
450
|
*/
|
|
451
451
|
mainDir: ".intlayer/main",
|
|
452
452
|
|
|
453
453
|
/**
|
|
454
|
-
* Diretório onde os
|
|
454
|
+
* Diretório onde os ficheiros de configuração estão armazenados.
|
|
455
455
|
*/
|
|
456
456
|
configDir: ".intlayer/config",
|
|
457
457
|
|
|
458
458
|
/**
|
|
459
|
-
* Diretório onde os
|
|
459
|
+
* Diretório onde os ficheiros de cache estão armazenados.
|
|
460
460
|
*/
|
|
461
461
|
cacheDir: ".intlayer/cache",
|
|
462
462
|
},
|
|
463
463
|
|
|
464
464
|
/**
|
|
465
|
-
* Configuração do Compilador (
|
|
465
|
+
* Configuração do Compilador (Casos de uso avançados)
|
|
466
466
|
*/
|
|
467
467
|
compiler: {
|
|
468
468
|
/**
|
|
469
|
-
* Indica se o compilador deve estar
|
|
469
|
+
* Indica se o compilador deve estar ativado.
|
|
470
470
|
*
|
|
471
|
-
* - false:
|
|
472
|
-
* - true:
|
|
473
|
-
* - "build-only":
|
|
471
|
+
* - false: Desativar compilador.
|
|
472
|
+
* - true: Ativar compilador.
|
|
473
|
+
* - "build-only": Ignorar o compilador durante o desenvolvimento para acelerar o arranque.
|
|
474
474
|
*
|
|
475
475
|
* Padrão: false
|
|
476
476
|
*/
|
|
477
477
|
enabled: true,
|
|
478
478
|
|
|
479
479
|
/**
|
|
480
|
-
* Define o caminho para
|
|
480
|
+
* Define o caminho para os ficheiros de saída. Substitui `outputDir`.
|
|
481
481
|
*
|
|
482
|
-
* -
|
|
483
|
-
* -
|
|
482
|
+
* - Caminhos `./` são resolvidos relativamente ao diretório da componente.
|
|
483
|
+
* - Caminhos `/` são resolvidos relativamente à raiz do projeto (`baseDir`).
|
|
484
484
|
*
|
|
485
|
-
* -
|
|
485
|
+
* - Incluir a variável `{{locale}}` no caminho irá ativar a geração de dicionários separados por idioma.
|
|
486
486
|
*
|
|
487
487
|
* Exemplo:
|
|
488
488
|
* ```ts
|
|
489
489
|
* {
|
|
490
|
-
* // Criar
|
|
490
|
+
* // Criar ficheiros .content.ts multi-idioma perto da componente
|
|
491
491
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
492
492
|
*
|
|
493
493
|
* // output: './{{fileName}}{{extension}}', // Equivalente usando template string
|
|
@@ -504,37 +504,37 @@ const config: IntlayerConfig = {
|
|
|
504
504
|
* ```
|
|
505
505
|
*
|
|
506
506
|
* Lista de variáveis:
|
|
507
|
-
* - `fileName`:
|
|
508
|
-
* - `key`:
|
|
509
|
-
* - `locale`:
|
|
510
|
-
* - `extension`:
|
|
511
|
-
* - `componentFileName`:
|
|
512
|
-
* - `componentExtension`:
|
|
513
|
-
* - `format`:
|
|
514
|
-
* - `componentFormat`:
|
|
515
|
-
* - `componentDirPath`:
|
|
507
|
+
* - `fileName`: O nome do ficheiro.
|
|
508
|
+
* - `key`: A chave do conteúdo.
|
|
509
|
+
* - `locale`: O idioma do conteúdo.
|
|
510
|
+
* - `extension`: A extensão do ficheiro.
|
|
511
|
+
* - `componentFileName`: O nome do ficheiro da componente.
|
|
512
|
+
* - `componentExtension`: A extensão do ficheiro da componente.
|
|
513
|
+
* - `format`: O formato do dicionário.
|
|
514
|
+
* - `componentFormat`: O formato do dicionário da componente.
|
|
515
|
+
* - `componentDirPath`: O caminho do diretório da componente.
|
|
516
516
|
*/
|
|
517
517
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
518
518
|
|
|
519
519
|
/**
|
|
520
|
-
*
|
|
521
|
-
*
|
|
520
|
+
* Se deve guardar as componentes após serem transformadas.
|
|
521
|
+
* Desta forma, o compilador pode ser executado apenas uma vez para transformar a app e depois ser removido.
|
|
522
522
|
*/
|
|
523
523
|
saveComponents: false,
|
|
524
524
|
|
|
525
525
|
/**
|
|
526
|
-
*
|
|
526
|
+
* Inserir apenas o conteúdo no ficheiro gerado. Útil para saídas i18next ou ICU MessageFormat JSON por idioma.
|
|
527
527
|
*/
|
|
528
528
|
noMetadata: false,
|
|
529
529
|
|
|
530
530
|
/**
|
|
531
531
|
* Prefixo da chave do dicionário
|
|
532
532
|
*/
|
|
533
|
-
dictionaryKeyPrefix: "", //
|
|
533
|
+
dictionaryKeyPrefix: "", // Adicionar prefixo opcional para as chaves de dicionário extraídas
|
|
534
534
|
},
|
|
535
535
|
|
|
536
536
|
/**
|
|
537
|
-
* Esquemas personalizados
|
|
537
|
+
* Esquemas personalizados para validar o conteúdo dos dicionários.
|
|
538
538
|
*/
|
|
539
539
|
schemas: {
|
|
540
540
|
"my-schema": z.object({
|
|
@@ -543,7 +543,7 @@ const config: IntlayerConfig = {
|
|
|
543
543
|
},
|
|
544
544
|
|
|
545
545
|
/**
|
|
546
|
-
* Configuração de plugins
|
|
546
|
+
* Configuração de plugins.
|
|
547
547
|
*/
|
|
548
548
|
plugins: [],
|
|
549
549
|
};
|
|
@@ -553,54 +553,56 @@ export default config;
|
|
|
553
553
|
|
|
554
554
|
---
|
|
555
555
|
|
|
556
|
-
## Referência de Configuração
|
|
556
|
+
## Referência de Configuração
|
|
557
557
|
|
|
558
|
-
As
|
|
558
|
+
As secções seguintes descrevem as várias definições de configuração disponíveis para o Intlayer.
|
|
559
559
|
|
|
560
560
|
---
|
|
561
561
|
|
|
562
|
-
### Configuração de Internacionalização
|
|
562
|
+
### Configuração de Internacionalização
|
|
563
563
|
|
|
564
|
-
Define as
|
|
564
|
+
Define as definições relacionadas com a internacionalização, incluindo os idiomas disponíveis e o idioma padrão para a aplicação.
|
|
565
565
|
|
|
566
|
-
| Campo | Tipo |
|
|
567
|
-
| ----------------- | ---------- |
|
|
568
|
-
| `locales` |
|
|
569
|
-
| `requiredLocales`
|
|
570
|
-
| `strictMode` |
|
|
571
|
-
| `defaultLocale` |
|
|
566
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
567
|
+
| ----------------- | -------------------------------------------------------------------------------------------------- | ---------- | ------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | A lista de idiomas suportados na aplicação. | `string[]` | `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | A lista de idiomas obrigatórios na aplicação. | `string[]` | `[]` | `[]` | • Se vazio, todos os idiomas são obrigatórios no modo `strict`.<br/>• Certifique-se de que os idiomas obrigatórios também estão definidos no campo `locales`. |
|
|
570
|
+
| `strictMode` | Garante implementações robustas de conteúdos internacionalizados usando TypeScript. | `string` | `'inclusive'` | | • Se `"strict"`: a função `t` exige que cada idioma declarado esteja definido — lança um erro se faltar algum ou se não estiver declarado.<br/>• Se `"inclusive"`: avisa sobre idiomas em falta mas aceita idiomas existentes não declarados.<br/>• Se `"loose"`: aceita qualquer idioma existente. |
|
|
571
|
+
| `defaultLocale` | O idioma padrão usado como fallback se o idioma solicitado não for encontrado. | `string` | `Locales.ENGLISH` | `'en'` | Usado para determinar o idioma quando nenhum é especificado no URL, cookie ou cabeçalho. |
|
|
572
572
|
|
|
573
573
|
---
|
|
574
574
|
|
|
575
|
-
### Configuração do Editor
|
|
575
|
+
### Configuração do Editor
|
|
576
|
+
|
|
577
|
+
Define as definições para o editor visual integrado, incluindo a porta do servidor e o estado de ativação.
|
|
578
|
+
|
|
579
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
580
|
+
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | O URL da aplicação. | `string` | `undefined` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Usado para restringir a origem do editor por razões de segurança.<br/>• Se definido para `'*'`, o editor é acessível a partir de qualquer origem. |
|
|
582
|
+
| `port` | A porta usada pelo servidor do editor visual. | `number` | `8000` | | |
|
|
583
|
+
| `editorURL` | O URL do servidor do editor. | `string` | `'http://localhost:8000'` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Usado para restringir as origens que podem interagir com a aplicação.<br/>• Se definido para `'*'`, acessível de qualquer origem.<br/>• Deve ser definido se a porta for alterada ou se o editor for alojado num domínio diferente. |
|
|
584
|
+
| `cmsURL` | O URL do Intlayer CMS. | `string` | `'https://app.intlayer.org'` | `'https://app.intlayer.org'` | |
|
|
585
|
+
| `backendURL` | O URL do servidor backend. | `string` | `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | Se a aplicação interage com o editor visual. | `boolean` | `false` | `process.env.NODE_ENV !== 'production'` | • Se `false`, o editor não pode interagir com a aplicação.<br/>• Desativar para ambientes específicos aumenta a segurança. |
|
|
587
|
+
| `clientId` | Permite que pacotes intlayer se autentiquem com o backend usando oAuth2. Para obter um token de acesso, vá a [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Para ser mantido secreto; armazenar em variáveis de ambiente. |
|
|
588
|
+
| `clientSecret` | Permite que pacotes intlayer se autentiquem com o backend usando oAuth2. Para obter um token de acesso, vá a [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Para ser mantido secreto; armazenar em variáveis de ambiente. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | Estratégia para priorizar dicionários quando tanto locais como remotos estão presentes. | `string` | `'local_first'` | `'distant_first'` | • `'distant_first'`: dá prioridade aos remotos sobre os locais.<br/>• `'local_first'`: dá prioridade aos locais sobre os remotos. |
|
|
590
|
+
| `liveSync` | Se o servidor da app deve recarregar conteúdos dinamicamente quando uma alteração é detetada no CMS <br/> Visual Editor <br/> Backend. | `boolean` | `true` | `true` | • Quando um dicionário é adicionado/atualizado, a app atualiza o conteúdo da página.<br/>• O Live Sync externaliza o conteúdo num outro servidor, o que pode afetar ligeiramente o desempenho.<br/>• Recomendado hospedar ambos na mesma máquina. |
|
|
591
|
+
| `liveSyncPort` | A porta do servidor de live sync. | `number` | `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | O URL do servidor de live sync. | `string` | `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Aponta para o localhost por padrão; pode ser alterado para um servidor de live sync remoto. |
|
|
576
593
|
|
|
577
|
-
|
|
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. |
|
|
594
|
+
---
|
|
593
595
|
|
|
594
|
-
### Configuração de Roteamento
|
|
596
|
+
### Configuração de Roteamento
|
|
595
597
|
|
|
596
|
-
|
|
598
|
+
Definições que controlam o comportamento do roteamento, incluindo estrutura de URL, armazenamento de idiomas e gestão de middleware.
|
|
597
599
|
|
|
598
|
-
| Campo | Tipo
|
|
599
|
-
| ---------- |
|
|
600
|
-
| `mode` | `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
601
|
-
| `storage` | `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array` |
|
|
602
|
-
| `basePath` |
|
|
603
|
-
| `rewrite` |
|
|
600
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
601
|
+
| ---------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
602
|
+
| `mode` | Modo de roteamento de URL para a gestão de idiomas. | `'prefix-no-default'` | <br/> `'prefix-all'` | <br/> `'no-prefix'` | <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) ou `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: idioma gerido por outros meios. `'search-params'`: `/dashboard?locale=fr` | Não afeta a gestão de cookies ou armazenamento de idiomas. |
|
|
603
|
+
| `storage` | Configuração para o armazenamento do idioma no cliente. | `false` | <br/> `'cookie'` | <br/> `'localStorage'` | <br/> `'sessionStorage'` | <br/> `'header'` | <br/> `CookiesAttributes` | <br/> `StorageAttributes` | <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Veja a tabela de Opções de Armazenamento abaixo. |
|
|
604
|
+
| `basePath` | O caminho base para os URLs da aplicação. | `string` | `''` | `'/my-app'` | Se a app está em `https://example.com/my-app`, basePath é `'/my-app'` e os URLs tornam-se `https://example.com/my-app/en`. |
|
|
605
|
+
| `rewrite` | Regras de reescrita de URL personalizadas que anulam o modo de roteamento padrão para caminhos específicos. Suporta parâmetros dinâmicos `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Veja o exemplo abaixo | • Regras de reescrita têm precedência sobre `mode`.<br/>• Funciona com Next.js e Vite.<br/>• `getLocalizedUrl()` aplica as regras correspondentes automaticamente.<br/>• Veja [Reescritas de URL Personalizadas](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
|
|
604
606
|
|
|
605
607
|
**Exemplo de `rewrite`**:
|
|
606
608
|
|
|
@@ -624,41 +626,41 @@ routing: {
|
|
|
624
626
|
}
|
|
625
627
|
```
|
|
626
628
|
|
|
627
|
-
#### Opções de Armazenamento
|
|
629
|
+
#### Opções de Armazenamento
|
|
628
630
|
|
|
629
|
-
| Valor |
|
|
630
|
-
| ------------------ |
|
|
631
|
-
| `'cookie'` |
|
|
632
|
-
| `'localStorage'` |
|
|
633
|
-
| `'sessionStorage'` |
|
|
634
|
-
| `'header'` |
|
|
631
|
+
| Valor | Nota | Descrição |
|
|
632
|
+
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
633
|
+
| `'cookie'` | • Para conformidade com o RGPD, assegure-se do consentimento adequado do utilizador.<br/>• Personalizável via `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). | Armazena o idioma em cookies — acessível tanto no cliente como no servidor. |
|
|
634
|
+
| `'localStorage'` | • Sem expiração a menos que seja explicitamente limpo.<br/>• O proxy do Intlayer não consegue aceder a isto.<br/>• Personalizzabile via `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | Armazena o idioma no browser sem expiração — apenas lado do cliente. |
|
|
635
|
+
| `'sessionStorage'` | • Limpo quando o separador/janela é fechado.<br/>• O proxy do Intlayer não consegue aceder a isto.<br/>• Personalizzabile via `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). | Armazena o idioma pela duração da sessão da página — apenas lado do cliente. |
|
|
636
|
+
| `'header'` | • Útil para chamadas de API.<br/>• Lado do cliente não consegue aceder.<br/>• Personalizzabile via `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). | Armazena ou transmite o idioma via cabeçalhos HTTP — apenas lado do servidor. |
|
|
635
637
|
|
|
636
|
-
#### Atributos de
|
|
638
|
+
#### Atributos de Cookies
|
|
637
639
|
|
|
638
|
-
Ao usar
|
|
640
|
+
Ao usar armazenamento por cookies, pode configurar atributos adicionais:
|
|
639
641
|
|
|
640
|
-
| Campo |
|
|
641
|
-
| ---------- |
|
|
642
|
-
| `name` |
|
|
643
|
-
| `domain` |
|
|
644
|
-
| `path` |
|
|
645
|
-
| `secure` |
|
|
646
|
-
| `httpOnly` |
|
|
647
|
-
| `sameSite` | `'strict' | 'lax' | 'none'` |
|
|
648
|
-
| `expires` |
|
|
642
|
+
| Campo | Descrição | Tipo |
|
|
643
|
+
| ---------- | ------------------------------------------ | ----------------------------------------------------- |
|
|
644
|
+
| `name` | Nome do cookie. Padrão: `'INTLAYER_LOCALE'` | `string` |
|
|
645
|
+
| `domain` | Domínio do cookie. Padrão: `undefined` | `string` |
|
|
646
|
+
| `path` | Caminho do cookie. Padrão: `undefined` | `string` |
|
|
647
|
+
| `secure` | Requer HTTPS. Padrão: `undefined` | `boolean` |
|
|
648
|
+
| `httpOnly` | Flag HTTP-only. Padrão: `undefined` | `boolean` |
|
|
649
|
+
| `sameSite` | Política SameSite. | `'strict'` | <br/> `'lax'` | <br/> `'none'` |
|
|
650
|
+
| `expires` | Data de expiração ou dias. Padrão: `undefined` | `Date` | <br/> `number` |
|
|
649
651
|
|
|
650
|
-
#### Atributos de Armazenamento
|
|
652
|
+
#### Atributos de Armazenamento Local
|
|
651
653
|
|
|
652
654
|
Ao usar localStorage ou sessionStorage:
|
|
653
655
|
|
|
654
|
-
| Campo |
|
|
655
|
-
| ------ |
|
|
656
|
-
| `type` | `'localStorage' | 'sessionStorage'` |
|
|
657
|
-
| `name` |
|
|
656
|
+
| Campo | Descrição | Tipo |
|
|
657
|
+
| ------ | --------------------------------------------- | ------------------------------------------------ |
|
|
658
|
+
| `type` | Tipo de armazenamento. | `'localStorage'` | <br/> `'sessionStorage'` |
|
|
659
|
+
| `name` | Nome da chave de armazenamento. Padrão: `'INTLAYER_LOCALE'` | `string` |
|
|
658
660
|
|
|
659
661
|
#### Exemplos de Configuração
|
|
660
662
|
|
|
661
|
-
Aqui estão alguns exemplos
|
|
663
|
+
Aqui estão alguns exemplos de configuração comuns para a nova estrutura de roteamento v7:
|
|
662
664
|
|
|
663
665
|
**Configuração Básica (Padrão)**:
|
|
664
666
|
|
|
@@ -680,7 +682,7 @@ const config: IntlayerConfig = {
|
|
|
680
682
|
export default config;
|
|
681
683
|
```
|
|
682
684
|
|
|
683
|
-
**Configuração em
|
|
685
|
+
**Configuração em Conformidade com o RGPD**:
|
|
684
686
|
|
|
685
687
|
```typescript
|
|
686
688
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -712,7 +714,7 @@ const config: IntlayerConfig = {
|
|
|
712
714
|
export default config;
|
|
713
715
|
```
|
|
714
716
|
|
|
715
|
-
**Modo de Parâmetros de Pesquisa
|
|
717
|
+
**Modo de Parâmetros de Pesquisa**:
|
|
716
718
|
|
|
717
719
|
```typescript
|
|
718
720
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -732,7 +734,7 @@ const config: IntlayerConfig = {
|
|
|
732
734
|
export default config;
|
|
733
735
|
```
|
|
734
736
|
|
|
735
|
-
**Modo
|
|
737
|
+
**Modo Sem Prefixo com Armazenamento Personalizado**:
|
|
736
738
|
|
|
737
739
|
```typescript
|
|
738
740
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -755,7 +757,7 @@ const config: IntlayerConfig = {
|
|
|
755
757
|
export default config;
|
|
756
758
|
```
|
|
757
759
|
|
|
758
|
-
**Reescrita de URL
|
|
760
|
+
**Reescrita de URL Personalizada com Caminhos Dinâmicos**:
|
|
759
761
|
|
|
760
762
|
```typescript
|
|
761
763
|
// intlayer.config.ts
|
|
@@ -767,7 +769,7 @@ const config: IntlayerConfig = {
|
|
|
767
769
|
defaultLocale: "en",
|
|
768
770
|
},
|
|
769
771
|
routing: {
|
|
770
|
-
mode: "prefix-no-default", //
|
|
772
|
+
mode: "prefix-no-default", // Fallback para caminhos não reescritos
|
|
771
773
|
storage: "cookie",
|
|
772
774
|
rewrite: nextjsRewrite({
|
|
773
775
|
"/about": {
|
|
@@ -791,132 +793,166 @@ export default config;
|
|
|
791
793
|
|
|
792
794
|
---
|
|
793
795
|
|
|
794
|
-
### Configuração de Conteúdo
|
|
796
|
+
### Configuração de Conteúdo
|
|
795
797
|
|
|
796
|
-
|
|
798
|
+
Definições relacionadas à forma como o conteúdo é gerido dentro da aplicação, incluindo nomes de diretórios, extensões de ficheiro e configurações derivadas.
|
|
797
799
|
|
|
798
|
-
| Campo | Tipo |
|
|
799
|
-
| ---------------- | ---------- |
|
|
800
|
-
| `watch` |
|
|
801
|
-
| `fileExtensions` |
|
|
802
|
-
| `contentDir` |
|
|
803
|
-
| `codeDir` |
|
|
804
|
-
| `excludedPath` |
|
|
805
|
-
| `formatCommand` |
|
|
800
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
801
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
802
|
+
| `watch` | Indica se o Intlayer deve monitorizar alterações nos ficheiros de declaração de conteúdo para regenerar dicionários. | `boolean` | `true` | | |
|
|
803
|
+
| `fileExtensions` | Extensões de ficheiro para analisar ao compilar dicionários. | `string[]` | `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']` | `['.data.ts', '.data.js', '.data.json']` | Personalizar pode ajudar a evitar conflitos. |
|
|
804
|
+
| `contentDir` | O caminho do diretório onde os ficheiros de definição de conteúdo (`.content.*`) estão armazenados. | `string[]` | `['.']` | `['src', '../../ui-library', require.resolve("@my-package/content")]` | Usado para monitorizar ficheiros de conteúdo e regenerar dicionários. |
|
|
805
|
+
| `codeDir` | O caminho do diretório onde o código está armazenado, relativo ao diretório base. | `string[]` | `['.']` | `['src', '../../ui-library']` | • Usado para monitorizar ficheiros de código para transformação (pruning, otimização).<br/>• Separar de `contentDir` pode melhorar o desempenho. |
|
|
806
|
+
| `excludedPath` | Diretórios excluídos da análise de conteúdo. | `string[]` | `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']` | | Ainda não utilizado; planeado para implementação futura. |
|
|
807
|
+
| `formatCommand` | Comando para formatar ficheiros de conteúdo quando o Intlayer os escreve localmente. | `string` | `undefined` | `'npx prettier --write "{{file}}" --log-level silent'` (Prettier), `'npx biome format "{{file}}" --write --log-level none'` (Biome), `'npx eslint --fix "{{file}}" --quiet'` (ESLint) | • `{{file}}` é substituído pelo caminho do ficheiro.<br/>• Se não definido, o Intlayer deteta automaticamente (testa prettier, biome, eslint). |
|
|
806
808
|
|
|
807
809
|
---
|
|
808
810
|
|
|
809
|
-
### Configuração
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
|
821
|
-
|
|
|
822
|
-
| `
|
|
823
|
-
| `
|
|
824
|
-
| `
|
|
825
|
-
| `
|
|
811
|
+
### Configuração do Dicionário
|
|
812
|
+
|
|
813
|
+
Parâmetros que controlam as operações do dicionário, incluindo o comportamento de preenchimento automático (auto-fill) e geração de conteúdo.
|
|
814
|
+
|
|
815
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
816
|
+
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
817
|
+
| `fill` | Controla como os ficheiros de saída do preenchimento automático (tradução por IA) são gerados. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: caminho padrão (mesmo ficheiro que a origem).<br/>• `false`: desativar.<br/>• Padrão string/função gera ficheiros por idioma.<br/>• Objeto por idioma: cada idioma corresponde ao seu próprio padrão; `false` ignora esse idioma.<br/>• Incluir `{{locale}}` ativa a geração por idioma.<br/>• `fill` ao nível do dicionário tem sempre precedência sobre esta definição global. |
|
|
818
|
+
| `description` | Ajuda o editor e o CMS a compreender o propósito do dicionário. Também usado como contexto para a geração de traduções assistida por IA. | `string` | `undefined` | `'Secção do perfil do utilizador'` | |
|
|
819
|
+
| `locale` | Transforma o dicionário num formato por idioma. Cada campo declarado torna-se um nó de tradução. Se ausente, o dicionário é tratado como multi-idioma. | `LocalesValues` | `undefined` | `'en'` | Use isto quando o dicionário for específico de um único idioma em vez de conter traduções para vários. |
|
|
820
|
+
| `contentAutoTransformation` | Transforma automaticamente as strings de conteúdo em nós tipados (markdown, HTML ou inserção). | `boolean` | <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')`.<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')`.<br/>• Inserção : `Olá {{name}}` → `insert('Olá {{name}}')`. |
|
|
821
|
+
| `location` | Indica onde os ficheiros do dicionário estão armazenados e como são sincronizados com o CMS. | `'local'` | <br/> `'remote'` | <br/> `'hybrid'` | <br/> `'plugin'` | <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: gerido apenas localmente.<br/>• `'remote'`: gerido apenas remotamente (CMS).<br/>• `'hybrid'`: gerido local e remotamente.<br/>• `'plugin'` ou string personalizada: gerido por um plugin ou fonte personalizada. |
|
|
822
|
+
| `importMode` | Controla como os dicionários são importados. | `'static'` | <br/> `'dynamic'` | <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: importado estaticamente.<br/>• `'dynamic'`: importado dinamicamente usando Suspense.<br/>• `'fetch'`: recuperado via Live Sync API; fallback para `'dynamic'` se falhar.<br/>• Requer plugins `@intlayer/babel` e `@intlayer/swc`.<br/>• Chaves devem ser declaradas estaticamente.<br/>• Ignorado se `optimize` estiver desativado.<br/>• Não afeta `getIntlayer`, `getDictionary`, etc. |
|
|
823
|
+
| `priority` | Prioridade do dicionário. Valores mais altos vencem valores mais baixos na resolução de conflitos entre dicionários. | `number` | `undefined` | `1` | |
|
|
824
|
+
| `live` | Depreciado — use `importMode: 'fetch'` em vez disso. Indicava se o conteúdo do dicionário devia ser recuperado dinamicamente via API Live Sync. | `boolean` | `undefined` | | Renomeado para `importMode: 'fetch'` na v8.0.0. |
|
|
825
|
+
| `schema` | Gerado automaticamente pelo Intlayer para validação de esquema JSON. | `'https://intlayer.org/schema.json'` | auto-gerado | | Não editar manualmente. |
|
|
826
|
+
| `title` | Ajuda a identificar o dicionário no editor e CMS. | `string` | `undefined` | `'Perfil do Utilizador'` | |
|
|
827
|
+
| `tags` | Categoriza dicionários e fornece contexto ou instruções para o editor e IA. | `string[]` | `undefined` | `['utilizador', 'perfil']` | |
|
|
828
|
+
| `version` | Versão do dicionário remoto; ajuda a rastrear a versão atualmente em uso. | `string` | `undefined` | `'1.0.0'` | • Gestível no CMS.<br/>• Não editar localmente. |
|
|
826
829
|
|
|
827
830
|
**Exemplo de `fill`**:
|
|
828
831
|
|
|
829
832
|
```ts
|
|
830
833
|
dictionary: {
|
|
831
834
|
fill: {
|
|
832
|
-
en:
|
|
835
|
+
en: "/locales/en/{{key}}.content.json",
|
|
833
836
|
fr: ({ key }) => `/locales/fr/${key}.content.json`,
|
|
834
837
|
es: false,
|
|
835
|
-
}
|
|
836
|
-
}
|
|
838
|
+
},
|
|
839
|
+
};
|
|
837
840
|
```
|
|
838
841
|
|
|
839
842
|
---
|
|
840
843
|
|
|
841
|
-
### Configuração
|
|
844
|
+
### Configuração do Logger
|
|
842
845
|
|
|
843
|
-
|
|
846
|
+
Definições para personalizar a saída de logs do Intlayer.
|
|
844
847
|
|
|
845
|
-
| Campo
|
|
846
|
-
|
|
|
847
|
-
| `
|
|
848
|
-
| `
|
|
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. |
|
|
848
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
849
|
+
| -------- | ----------------------------------------- | -------------------------------------------------------------- | ---------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
850
|
+
| `mode` | Indica o modo do logger. | `'default'` | <br/> `'verbose'` | <br/> `'disabled'` | `'default'` | `'verbose'` | • `'verbose'`: regista mais informações para depuração.<br/>• `'disabled'`: desativa o logger completamente. |
|
|
851
|
+
| `prefix` | O prefixo para as mensagens de registo. | `string` | `'[intlayer] '` | `'[meu prefixo] '` | |
|
|
853
852
|
|
|
854
853
|
---
|
|
855
854
|
|
|
856
|
-
### Configuração de
|
|
855
|
+
### Configuração de IA
|
|
856
|
+
|
|
857
|
+
Configurações que controlam as funcionalidades de IA do Intlayer, incluindo provedor, modelo e chave de API.
|
|
858
|
+
|
|
859
|
+
Esta configuração é opcional se estiver registado no [Dashboard do Intlayer](https://app.intlayer.org/project) com uma chave de acesso. O Intlayer gerirá automaticamente a solução de IA mais eficiente e económica para as suas necessidades. O uso das opções padrão garante uma melhor manutenibilidade a longo prazo, uma vez que o Intlayer é continuamente atualizado para utilizar os modelos mais relevantes.
|
|
860
|
+
|
|
861
|
+
Se preferir utilizar a sua própria chave de API ou um modelo específico, pode definir a sua configuração de IA personalizada.
|
|
862
|
+
Esta configuração de IA será utilizada globalmente no seu ambiente Intlayer. Os comandos da CLI utilizarão estas definições por defeito para comandos como `fill`, assim como o SDK, o Visual Editor e o CMS. Pode substituir estes valores predefinidos para casos de uso específicos através de parâmetros de comando.
|
|
863
|
+
|
|
864
|
+
O Intlayer suporta múltiplos provedores de IA para máxima flexibilidade. Os provedores atualmente suportados são:
|
|
865
|
+
|
|
866
|
+
- **OpenAI** (Padrão)
|
|
867
|
+
- **Anthropic Claude**
|
|
868
|
+
- **Mistral AI**
|
|
869
|
+
- **DeepSeek**
|
|
870
|
+
- **Google Gemini**
|
|
871
|
+
- **Google AI Studio**
|
|
872
|
+
- **Google Vertex**
|
|
873
|
+
- **Meta Llama**
|
|
874
|
+
- **Ollama**
|
|
875
|
+
- **OpenRouter**
|
|
876
|
+
- **Alibaba Cloud**
|
|
877
|
+
- **Fireworks**
|
|
878
|
+
- **Hugging Face**
|
|
879
|
+
- **Groq**
|
|
880
|
+
- **Amazon Bedrock**
|
|
881
|
+
- **Together.ai**
|
|
882
|
+
|
|
883
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
884
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
885
|
+
| `provider` | O provedor a utilizar para as funcionalidades de IA do Intlayer. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | `undefined` | `'anthropic'` | Diferentes provedores requerem diferentes chaves de API e têm preços diferentes. |
|
|
886
|
+
| `model` | O modelo a utilizar para as funcionalidades de IA. | `string` | Nenhum | `'gpt-4o-2024-11-20'` | O modelo específico varia de acordo com o provedor. |
|
|
887
|
+
| `temperature` | Controla a aleatoriedade das respostas da IA. | `number` | Nenhum | `0.1` | Temperatura mais alta = mais criativo e menos previsível. |
|
|
888
|
+
| `apiKey` | A sua chave de API para o provedor selecionado. | `string` | Nenhum | `process.env.OPENAI_API_KEY` | Para ser mantido secreto; armazenar em variáveis de ambiente. |
|
|
889
|
+
| `applicationContext` | Contexto adicional sobre a sua aplicação para ajudar a IA a gerar traduções mais precisas (domínio, público-alvo, tom, terminologia). | `string` | Nenhum | `'O meu contexto de aplicação'` | Pode ser usado para adicionar regras (ex: `"Não deves transformar os URLs"`). |
|
|
890
|
+
| `baseURL` | O URL base para a API de IA. | `string` | Nenhum | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Pode apontar para um endpoint de API de IA local ou personalizado. |
|
|
891
|
+
| `dataSerialization` | Formato de serialização de dados para as funcionalidades de IA. | `'json'` | <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: padrão, fiável; consome mais tokens.<br/>• `'toon'`: menos tokens, menos consistente.<br/>• Parâmetros adicionais são passados para o modelo como contexto (esforço de raciocínio, etc.). |
|
|
857
892
|
|
|
858
|
-
|
|
893
|
+
---
|
|
859
894
|
|
|
860
|
-
|
|
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` | | |
|
|
895
|
+
### Configuração de Build
|
|
866
896
|
|
|
867
|
-
|
|
897
|
+
Parâmetros que controlam como o Intlayer otimiza e compila a internacionalização da sua aplicação.
|
|
898
|
+
|
|
899
|
+
As opções de build aplicam-se aos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
868
900
|
|
|
869
|
-
|
|
901
|
+
> No modo de desenvolvimento, o Intlayer utiliza importações estáticas para os dicionários para simplificar a experiência de desenvolvimento.
|
|
870
902
|
|
|
871
|
-
|
|
903
|
+
> Durante a otimização, o Intlayer substituirá as chamadas aos dicionários para otimizar o chunking, de forma a que o bundle final importe apenas os dicionários efetivamente utilizados.
|
|
872
904
|
|
|
873
|
-
| Campo
|
|
874
|
-
|
|
|
875
|
-
| `
|
|
876
|
-
| `
|
|
877
|
-
| `
|
|
878
|
-
| `
|
|
879
|
-
| `
|
|
880
|
-
| `configDir` | `string` | Diretório de arquivos de configuração compilados. | `'.intlayer/config'` |
|
|
881
|
-
| `cacheDir` | `string` | Diretório de arquivos de cache. | `'.intlayer/cache'` |
|
|
905
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
906
|
+
| ----------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
907
|
+
| `mode` | Controla o modo de build. | `'auto'` | <br/> `'manual'` | `'auto'` | `'manual'` | • `'auto'`: build acionada automaticamente durante a build da app.<br/>• `'manual'`: executada apenas quando o comando de build é explicitamente chamado.<br/>• Pode ser usado para desativar builds de dicionários (ex: para evitar a execução em ambientes Node.js). |
|
|
908
|
+
| `optimize` | Controla se a build deve ser otimizada. | `boolean` | `undefined` | `process.env.NODE_ENV === 'production'` | • Se não definido, a otimização é acionada na build da framework (Vite/Next.js).<br/>• `true` força a otimização mesmo no modo dev.<br/>• `false` desativa-a.<br/>• Se ativo, substitui chamadas a dicionários para otimizar o chunking.<br/>• Requer plugins `@intlayer/babel` e `@intlayer/swc`. |
|
|
909
|
+
| `checkTypes` | Indica se a build deve verificar os tipos TypeScript e registar erros. | `boolean` | `false` | | Pode tornar o processo de build mais lento. |
|
|
910
|
+
| `outputFormat` | Controla o formato de saída dos dicionários. | `('esm' | 'cjs')[]` | `['esm', 'cjs']` | `['cjs']` | |
|
|
911
|
+
| `traversePattern` | Padrões que definem quais ficheiros percorrer durante a otimização. | `string[]` | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • Limite a otimização a ficheiros relevantes para melhorar o desempenho da build.<br/>• Ignorado se `optimize` estiver desativado.<br/>• Utiliza padrões glob. |
|
|
882
912
|
|
|
883
913
|
---
|
|
884
914
|
|
|
885
|
-
### Configuração do
|
|
915
|
+
### Configuração do Sistema
|
|
886
916
|
|
|
887
|
-
|
|
917
|
+
Estas definições são para casos de uso avançados e configuração interna do Intlayer.
|
|
888
918
|
|
|
889
|
-
| Campo
|
|
890
|
-
|
|
|
891
|
-
| `
|
|
892
|
-
| `
|
|
893
|
-
| `
|
|
894
|
-
| `
|
|
895
|
-
| `
|
|
919
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
920
|
+
| ------------------------- | ------------------------------------------------------ | -------- | --------------------------------- | ------- | ---- |
|
|
921
|
+
| `dictionariesDir` | Diretório para dicionários compilados. | `string` | `'.intlayer/dictionary'` | | |
|
|
922
|
+
| `moduleAugmentationDir` | Diretório para a augmentation de módulos TypeScript. | `string` | `'.intlayer/types'` | | |
|
|
923
|
+
| `unmergedDictionariesDir` | Diretório para dicionários não fundidos. | `string` | `'.intlayer/unmerged_dictionary'` | | |
|
|
924
|
+
| `typesDir` | Diretório para tipos gerados. | `string` | `'.intlayer/types'` | | |
|
|
925
|
+
| `mainDir` | Diretório do ficheiro principal do Intlayer. | `string` | `'.intlayer/main'` | | |
|
|
926
|
+
| `configDir` | Diretório dos ficheiros de configuração compilados. | `string` | `'.intlayer/config'` | | |
|
|
927
|
+
| `cacheDir` | Diretório dos ficheiros de cache. | `string` | `'.intlayer/cache'` | | |
|
|
896
928
|
|
|
897
929
|
---
|
|
898
930
|
|
|
899
|
-
### Configuração do
|
|
931
|
+
### Configuração do Compilador
|
|
900
932
|
|
|
901
|
-
Configurações
|
|
933
|
+
Configurações que controlam o compilador do Intlayer, que extrai dicionários diretamente das suas componentes.
|
|
902
934
|
|
|
903
|
-
| Campo
|
|
904
|
-
|
|
|
905
|
-
| `
|
|
906
|
-
| `
|
|
935
|
+
| Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
|
|
936
|
+
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
937
|
+
| `enabled` | Indica se o compilador deve estar ativado para a extração de dicionários. | `boolean` | <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` ignora o compilador durante o desenvolvimento para acelerar as builds; executado apenas nos comandos de build. |
|
|
938
|
+
| `dictionaryKeyPrefix` | Prefixo para as chaves de dicionário extraídas. | `string` | `''` | `'meu-prefixo-'` | Adicionado à chave gerada (baseada no nome do ficheiro) para evitar conflitos. |
|
|
939
|
+
| `saveComponents` | Se deve guardar as componentes após serem transformadas. | `boolean` | `false` | | • Se `true`, substitui os ficheiros originais pelas versões transformadas.<br/>• O compilador pode ser removido após uma execução. |
|
|
940
|
+
| `output` | Define o caminho para os ficheiros de saída. Substitui `outputDir`. Suporta variáveis de template: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • Caminhos `./` são resolvidos em relação ao diretório da componente.<br/>• Caminhos `/` em relação à raiz.<br/>• `{{locale}}` ativa a geração por idioma.<br/>• Suporta notação de objeto por idioma. |
|
|
941
|
+
| `noMetadata` | Se `true`, o compilador omite os metadados do dicionário (chave, wrapper de conteúdo) da saída. | `boolean` | `false` | `false` → `{"key":"minha-chave","content":{"key":"valor"}}` <br/> `true` → `{"key":"valor"}` | • Útil para saídas i18next ou ICU MessageFormat JSON.<br/>• Funciona bem com o plugin `loadJSON`. |
|
|
942
|
+
| `dictionaryKeyPrefix` | Prefixo da chave do dicionário | `string` | `''` | | Adicionar prefixo opcional para as chaves de dicionário extraídas |
|
|
907
943
|
|
|
908
944
|
---
|
|
909
945
|
|
|
910
|
-
### Esquemas Personalizados
|
|
946
|
+
### Esquemas Personalizados
|
|
911
947
|
|
|
912
|
-
| Campo | Tipo |
|
|
913
|
-
| --------- |
|
|
914
|
-
| `schemas` |
|
|
948
|
+
| Campo | Descrizione | Tipo |
|
|
949
|
+
| --------- | --------------------------------------------------------------------------- | --------------------------- |
|
|
950
|
+
| `schemas` | Permite definir esquemas Zod para validar a estrutura dos seus dicionários. | `Record<string, ZodSchema>` |
|
|
915
951
|
|
|
916
952
|
---
|
|
917
953
|
|
|
918
954
|
### Plugins
|
|
919
955
|
|
|
920
|
-
| Campo | Tipo |
|
|
921
|
-
| --------- |
|
|
922
|
-
| `plugins` |
|
|
956
|
+
| Campo | Descrição | Tipo |
|
|
957
|
+
| --------- | ------------------------------------ | ------------------ |
|
|
958
|
+
| `plugins` | Lista de plugins do Intlayer a ativar. | `IntlayerPlugin[]` |
|