@intlayer/docs 8.4.6 → 8.4.7
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/en/configuration.md +115 -137
- package/docs/es/configuration.md +14 -6
- package/docs/fr/configuration.md +14 -6
- package/package.json +6 -6
- package/docs/ar/configuration.md +0 -922
- package/docs/bn/configuration.md +0 -922
- package/docs/de/configuration.md +0 -922
- package/docs/en-GB/configuration.md +0 -922
- package/docs/hi/configuration.md +0 -922
- package/docs/id/configuration.md +0 -922
- package/docs/it/configuration.md +0 -923
- package/docs/ja/configuration.md +0 -922
- package/docs/ko/configuration.md +0 -922
- package/docs/pl/configuration.md +0 -922
- package/docs/pt/configuration.md +0 -922
- package/docs/ru/configuration.md +0 -943
- package/docs/tr/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
DELETED
|
@@ -1,922 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-12
|
|
4
|
-
title: Configuração
|
|
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
|
-
keywords:
|
|
7
|
-
- Configuração
|
|
8
|
-
- Definições
|
|
9
|
-
- Personalização
|
|
10
|
-
- Intlayer
|
|
11
|
-
- Opções
|
|
12
|
-
slugs:
|
|
13
|
-
- doc
|
|
14
|
-
- concept
|
|
15
|
-
- configuration
|
|
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'
|
|
20
|
-
- version: 8.3.0
|
|
21
|
-
date: 2026-03-11
|
|
22
|
-
changes: Mover 'baseDir' da configuração 'content' para 'system'
|
|
23
|
-
- version: 8.2.0
|
|
24
|
-
date: 2026-03-09
|
|
25
|
-
changes: Atualizar opções do compilador, adicionar suporte para 'output' e 'noMetadata'
|
|
26
|
-
- version: 8.1.7
|
|
27
|
-
date: 2026-02-25
|
|
28
|
-
changes: Atualizar opções do compilador
|
|
29
|
-
- version: 8.1.5
|
|
30
|
-
date: 2026-02-23
|
|
31
|
-
changes: Adicionar opção de compilador 'build-only' e prefixo de dicionário
|
|
32
|
-
- version: 8.0.6
|
|
33
|
-
date: 2026-02-12
|
|
34
|
-
changes: Adicionar suporte para provedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
35
|
-
- version: 8.0.5
|
|
36
|
-
date: 2026-02-06
|
|
37
|
-
changes: Adicionar `dataSerialization` à configuração de IA
|
|
38
|
-
- version: 8.0.0
|
|
39
|
-
date: 2026-01-24
|
|
40
|
-
changes: Renomear o modo de importação `live` para `fetch` para descrever melhor o mecanismo subjacente.
|
|
41
|
-
- version: 8.0.0
|
|
42
|
-
date: 2026-01-22
|
|
43
|
-
changes: Mover o modo de importação `importMode` da configuração de build para a configuração de dicionário.
|
|
44
|
-
- version: 8.0.0
|
|
45
|
-
date: 2026-01-22
|
|
46
|
-
changes: Adicionar a opção `rewrite` à configuração de roteamento.
|
|
47
|
-
- version: 8.0.0
|
|
48
|
-
date: 2026-01-18
|
|
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.
|
|
50
|
-
- version: 8.0.0
|
|
51
|
-
date: 2026-01-18
|
|
52
|
-
changes: Adicionar as opções de dicionário `location` e `schema`.
|
|
53
|
-
- version: 7.5.1
|
|
54
|
-
date: 2026-01-10
|
|
55
|
-
changes: Adicionar suporte para formatos de arquivo JSON5 e JSONC.
|
|
56
|
-
- version: 7.5.0
|
|
57
|
-
date: 2025-12-17
|
|
58
|
-
changes: Adicionar a opção `buildMode`.
|
|
59
|
-
- version: 7.0.0
|
|
60
|
-
date: 2025-10-25
|
|
61
|
-
changes: Adicionar a configuração `dictionary`.
|
|
62
|
-
- version: 7.0.0
|
|
63
|
-
date: 2025-10-21
|
|
64
|
-
changes: Substituir `middleware` pela configuração de `routing`.
|
|
65
|
-
- version: 7.0.0
|
|
66
|
-
date: 2025-10-12
|
|
67
|
-
changes: Adicionar a opção `formatCommand`.
|
|
68
|
-
- version: 6.2.0
|
|
69
|
-
date: 2025-10-12
|
|
70
|
-
changes: Atualizar a opção `excludedPath`.
|
|
71
|
-
- version: 6.0.2
|
|
72
|
-
date: 2025-09-23
|
|
73
|
-
changes: Adicionar a opção `outputFormat`.
|
|
74
|
-
- version: 6.0.0
|
|
75
|
-
date: 2025-09-21
|
|
76
|
-
changes: Remover o campo `dictionaryOutput` e o campo `i18nextResourcesDir`.
|
|
77
|
-
- version: 6.0.0
|
|
78
|
-
date: 2025-09-16
|
|
79
|
-
changes: Adicionar o modo de importação `live`.
|
|
80
|
-
- version: 6.0.0
|
|
81
|
-
date: 2025-09-04
|
|
82
|
-
changes: Substituir o campo `hotReload` por `liveSync` e adicionar os campos `liveSyncPort` e `liveSyncURL`.
|
|
83
|
-
- version: 5.6.1
|
|
84
|
-
date: 2025-07-25
|
|
85
|
-
changes: Substituir `activateDynamicImport` pela opção `importMode`.
|
|
86
|
-
- version: 5.6.0
|
|
87
|
-
date: 2025-07-13
|
|
88
|
-
changes: Alterar o contentDir padrão de `['src']` para `['.']`.
|
|
89
|
-
- version: 5.5.11
|
|
90
|
-
date: 2025-06-29
|
|
91
|
-
changes: Adicionar comandos `docs`.
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
# Documentação de Configuração do Intlayer
|
|
95
|
-
|
|
96
|
-
## Visão Geral
|
|
97
|
-
|
|
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.
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Sumário
|
|
103
|
-
|
|
104
|
-
<TOC/>
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Suporte a Arquivos de Configuração
|
|
109
|
-
|
|
110
|
-
O Intlayer aceita os formatos de arquivo de configuração JSON, JS, MJS e TS:
|
|
111
|
-
|
|
112
|
-
- `intlayer.config.ts`
|
|
113
|
-
- `intlayer.config.js`
|
|
114
|
-
- `intlayer.config.json`
|
|
115
|
-
- `intlayer.config.json5`
|
|
116
|
-
- `intlayer.config.jsonc`
|
|
117
|
-
- `intlayer.config.cjs`
|
|
118
|
-
- `intlayer.config.mjs`
|
|
119
|
-
- `.intlayerrc`
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## Exemplo de arquivo de configuração
|
|
124
|
-
|
|
125
|
-
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
126
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
127
|
-
import { nextjsRewrite } from "intlayer/routing";
|
|
128
|
-
import { z } from "zod";
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Exemplo de arquivo de configuração do Intlayer exibindo todas as opções disponíveis.
|
|
132
|
-
*/
|
|
133
|
-
const config: IntlayerConfig = {
|
|
134
|
-
/**
|
|
135
|
-
* Configuração das definições de internacionalização.
|
|
136
|
-
*/
|
|
137
|
-
internationalization: {
|
|
138
|
-
/**
|
|
139
|
-
* Lista de localidades (locales) suportadas no aplicativo.
|
|
140
|
-
* Padrão: [Locales.ENGLISH]
|
|
141
|
-
*/
|
|
142
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
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: []
|
|
148
|
-
*/
|
|
149
|
-
requiredLocales: [Locales.ENGLISH],
|
|
150
|
-
|
|
151
|
-
/**
|
|
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"
|
|
157
|
-
*/
|
|
158
|
-
strictMode: "inclusive",
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* A localidade padrão utilizada como recurso caso a localidade solicitada não seja encontrada.
|
|
162
|
-
* Padrão: Locales.ENGLISH
|
|
163
|
-
*/
|
|
164
|
-
defaultLocale: Locales.ENGLISH,
|
|
165
|
-
},
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Configurações que controlam as operações de dicionário e o comportamento de fallback.
|
|
169
|
-
*/
|
|
170
|
-
dictionary: {
|
|
171
|
-
/**
|
|
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"
|
|
177
|
-
*/
|
|
178
|
-
importMode: "static",
|
|
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
|
|
184
|
-
*/
|
|
185
|
-
fill: true,
|
|
186
|
-
|
|
187
|
-
/**
|
|
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"
|
|
194
|
-
*/
|
|
195
|
-
location: "local",
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Se o conteúdo deve ser transformado automaticamente (ex: Markdown para HTML).
|
|
199
|
-
* Padrão: false
|
|
200
|
-
*/
|
|
201
|
-
contentAutoTransformation: false,
|
|
202
|
-
},
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Configuração de roteamento e middleware.
|
|
206
|
-
*/
|
|
207
|
-
routing: {
|
|
208
|
-
/**
|
|
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"
|
|
215
|
-
*/
|
|
216
|
-
mode: "prefix-no-default",
|
|
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']
|
|
222
|
-
*/
|
|
223
|
-
storage: ["cookie", "header"],
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* O caminho base para as URLs do aplicativo.
|
|
227
|
-
* Padrão: ""
|
|
228
|
-
*/
|
|
229
|
-
basePath: "",
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Regras de reescrita de URL personalizadas para caminhos específicos por localidade.
|
|
233
|
-
*/
|
|
234
|
-
rewrite: nextjsRewrite({
|
|
235
|
-
"/[locale]/about": {
|
|
236
|
-
en: "/[locale]/about",
|
|
237
|
-
fr: "/[locale]/a-propos",
|
|
238
|
-
},
|
|
239
|
-
}),
|
|
240
|
-
},
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Configurações relacionadas à busca e processamento de arquivos de conteúdo.
|
|
244
|
-
*/
|
|
245
|
-
content: {
|
|
246
|
-
/**
|
|
247
|
-
* Extensões de arquivo para escanear dicionários.
|
|
248
|
-
* Padrão: ['.content.ts', '.content.js', '.content.json', etc.]
|
|
249
|
-
*/
|
|
250
|
-
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Diretórios onde os arquivos .content estão localizados.
|
|
254
|
-
* Padrão: ["."]
|
|
255
|
-
*/
|
|
256
|
-
contentDir: ["src"],
|
|
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: ["."]
|
|
262
|
-
*/
|
|
263
|
-
codeDir: ["src"],
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Padrões excluídos do escaneamento.
|
|
267
|
-
* Padrão: ['node_modules', '.intlayer', etc.]
|
|
268
|
-
*/
|
|
269
|
-
excludedPath: ["node_modules"],
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Se deve monitorar alterações e reconstruir dicionários durante o desenvolvimento.
|
|
273
|
-
* Padrão: true no ambiente de desenvolvimento
|
|
274
|
-
*/
|
|
275
|
-
watch: true,
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Comando utilizado para formatar arquivos .content recém-criados / atualizados.
|
|
279
|
-
*/
|
|
280
|
-
formatCommand: 'npx prettier --write "{{file}}"',
|
|
281
|
-
},
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Configuração do Editor Visual (Visual Editor).
|
|
285
|
-
*/
|
|
286
|
-
editor: {
|
|
287
|
-
/**
|
|
288
|
-
* Se o editor visual está habilitado.
|
|
289
|
-
* Padrão: false
|
|
290
|
-
*/
|
|
291
|
-
enabled: true,
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* A URL do seu aplicativo para validação de origem (origin validation).
|
|
295
|
-
* Padrão: ""
|
|
296
|
-
*/
|
|
297
|
-
applicationURL: "http://localhost:3000",
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Porta para o servidor local do editor.
|
|
301
|
-
* Padrão: 8000
|
|
302
|
-
*/
|
|
303
|
-
port: 8000,
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* A URL pública do editor.
|
|
307
|
-
* Padrão: "http://localhost:8000"
|
|
308
|
-
*/
|
|
309
|
-
editorURL: "http://localhost:8000",
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* URL do CMS do Intlayer.
|
|
313
|
-
* Padrão: "https://app.intlayer.org"
|
|
314
|
-
*/
|
|
315
|
-
cmsURL: "https://app.intlayer.org",
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* URL da API do Backend.
|
|
319
|
-
* Padrão: "https://back.intlayer.org"
|
|
320
|
-
*/
|
|
321
|
-
backendURL: "https://back.intlayer.org",
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* Se deve habilitar a sincronização de conteúdo em tempo real.
|
|
325
|
-
* Padrão: false
|
|
326
|
-
*/
|
|
327
|
-
liveSync: true,
|
|
328
|
-
},
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Configurações de tradução e construção baseadas em IA.
|
|
332
|
-
*/
|
|
333
|
-
ai: {
|
|
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'
|
|
338
|
-
*/
|
|
339
|
-
provider: "openai",
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* Modelo do provedor selecionado para utilizar.
|
|
343
|
-
*/
|
|
344
|
-
model: "gpt-4o",
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Chave da API do provedor.
|
|
348
|
-
*/
|
|
349
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* Contexto global para guiar a IA ao construir traduções.
|
|
353
|
-
*/
|
|
354
|
-
applicationContext: "Este é um aplicativo de reserva de viagens.",
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* URL do caminho base para a API de IA.
|
|
358
|
-
*/
|
|
359
|
-
baseURL: "http://localhost:3000",
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* Serialização de Dados (Data Serialization)
|
|
363
|
-
*
|
|
364
|
-
* Opções:
|
|
365
|
-
* - "json": Padrão, robusto; consome mais tokens.
|
|
366
|
-
* - "toon": Consome menos tokens, pode não ser tão consistente quanto o JSON.
|
|
367
|
-
*
|
|
368
|
-
* Padrão: "json"
|
|
369
|
-
*/
|
|
370
|
-
dataSerialization: "json",
|
|
371
|
-
},
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* Configurações de compilação e otimização.
|
|
375
|
-
*/
|
|
376
|
-
build: {
|
|
377
|
-
/**
|
|
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"
|
|
382
|
-
*/
|
|
383
|
-
mode: "auto",
|
|
384
|
-
|
|
385
|
-
/**
|
|
386
|
-
* Se deve otimizar o bundle final removendo dicionários não utilizados.
|
|
387
|
-
* Padrão: true em produção
|
|
388
|
-
*/
|
|
389
|
-
optimize: true,
|
|
390
|
-
|
|
391
|
-
/**
|
|
392
|
-
* Formato de saída para os arquivos de dicionário gerados.
|
|
393
|
-
* Padrão: ['cjs', 'esm']
|
|
394
|
-
*/
|
|
395
|
-
outputFormat: ["cjs", "esm"],
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* Indica se a compilação deve verificar os tipos TypeScript.
|
|
399
|
-
* Padrão: false
|
|
400
|
-
*/
|
|
401
|
-
checkTypes: false,
|
|
402
|
-
},
|
|
403
|
-
|
|
404
|
-
/**
|
|
405
|
-
* Configuração do registrador (Logger).
|
|
406
|
-
*/
|
|
407
|
-
log: {
|
|
408
|
-
/**
|
|
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"
|
|
414
|
-
*/
|
|
415
|
-
mode: "default",
|
|
416
|
-
|
|
417
|
-
/**
|
|
418
|
-
* Prefixo para todas as mensagens de registro.
|
|
419
|
-
* Padrão: "[intlayer]"
|
|
420
|
-
*/
|
|
421
|
-
prefix: "[intlayer]",
|
|
422
|
-
},
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
* Configurações do sistema (Para uso avançado)
|
|
426
|
-
*/
|
|
427
|
-
system: {
|
|
428
|
-
/**
|
|
429
|
-
* Diretório para armazenar dicionários localizados.
|
|
430
|
-
*/
|
|
431
|
-
dictionariesDir: ".intlayer/dictionary",
|
|
432
|
-
|
|
433
|
-
/**
|
|
434
|
-
* Diretório para o aumento de módulo TypeScript (module augmentation).
|
|
435
|
-
*/
|
|
436
|
-
moduleAugmentationDir: ".intlayer/types",
|
|
437
|
-
|
|
438
|
-
/**
|
|
439
|
-
* Diretório para armazenar dicionários não mesclados (unmerged).
|
|
440
|
-
*/
|
|
441
|
-
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
442
|
-
|
|
443
|
-
/**
|
|
444
|
-
* Diretório para armazenar tipos de dicionários.
|
|
445
|
-
*/
|
|
446
|
-
typesDir: ".intlayer/types",
|
|
447
|
-
|
|
448
|
-
/**
|
|
449
|
-
* Diretório onde os arquivos principais do aplicativo são armazenados.
|
|
450
|
-
*/
|
|
451
|
-
mainDir: ".intlayer/main",
|
|
452
|
-
|
|
453
|
-
/**
|
|
454
|
-
* Diretório onde os arquivos de configuração são armazenados.
|
|
455
|
-
*/
|
|
456
|
-
configDir: ".intlayer/config",
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
* Diretório onde os arquivos de cache são armazenados.
|
|
460
|
-
*/
|
|
461
|
-
cacheDir: ".intlayer/cache",
|
|
462
|
-
},
|
|
463
|
-
|
|
464
|
-
/**
|
|
465
|
-
* Configuração do Compilador (Para uso avançado)
|
|
466
|
-
*/
|
|
467
|
-
compiler: {
|
|
468
|
-
/**
|
|
469
|
-
* Indica se o compilador deve estar habilitado.
|
|
470
|
-
*
|
|
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.
|
|
474
|
-
*
|
|
475
|
-
* Padrão: false
|
|
476
|
-
*/
|
|
477
|
-
enabled: true,
|
|
478
|
-
|
|
479
|
-
/**
|
|
480
|
-
* Define o caminho para arquivos de saída. Substitui o `outputDir`.
|
|
481
|
-
*
|
|
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`).
|
|
484
|
-
*
|
|
485
|
-
* - A inclusão da variável `{{locale}}` no caminho ativará a criação de dicionários separados por idioma.
|
|
486
|
-
*
|
|
487
|
-
* Exemplo:
|
|
488
|
-
* ```ts
|
|
489
|
-
* {
|
|
490
|
-
* // Criar arquivos .content.ts multilíngues ao lado do componente
|
|
491
|
-
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
492
|
-
*
|
|
493
|
-
* // output: './{{fileName}}{{extension}}', // Equivalente usando template string
|
|
494
|
-
* }
|
|
495
|
-
* ```
|
|
496
|
-
*
|
|
497
|
-
* ```ts
|
|
498
|
-
* {
|
|
499
|
-
* // Criar JSONs centralizados por idioma na raiz do projeto
|
|
500
|
-
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
501
|
-
*
|
|
502
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando template string
|
|
503
|
-
* }
|
|
504
|
-
* ```
|
|
505
|
-
*
|
|
506
|
-
* Lista de variáveis:
|
|
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.
|
|
516
|
-
*/
|
|
517
|
-
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
518
|
-
|
|
519
|
-
/**
|
|
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.
|
|
522
|
-
*/
|
|
523
|
-
saveComponents: false,
|
|
524
|
-
|
|
525
|
-
/**
|
|
526
|
-
* Insere apenas o conteúdo no arquivo gerado. Útil para saída JSON por idioma para i18next ou ICU MessageFormat.
|
|
527
|
-
*/
|
|
528
|
-
noMetadata: false,
|
|
529
|
-
|
|
530
|
-
/**
|
|
531
|
-
* Prefixo da chave do dicionário
|
|
532
|
-
*/
|
|
533
|
-
dictionaryKeyPrefix: "", // Adicione um prefixo opcional às chaves de dicionário extraídas
|
|
534
|
-
},
|
|
535
|
-
|
|
536
|
-
/**
|
|
537
|
-
* Esquemas personalizados (Schemas) para validar o conteúdo dos dicionários.
|
|
538
|
-
*/
|
|
539
|
-
schemas: {
|
|
540
|
-
"my-schema": z.object({
|
|
541
|
-
title: z.string(),
|
|
542
|
-
}),
|
|
543
|
-
},
|
|
544
|
-
|
|
545
|
-
/**
|
|
546
|
-
* Configuração de plugins (Plugins).
|
|
547
|
-
*/
|
|
548
|
-
plugins: [],
|
|
549
|
-
};
|
|
550
|
-
|
|
551
|
-
export default config;
|
|
552
|
-
````
|
|
553
|
-
|
|
554
|
-
---
|
|
555
|
-
|
|
556
|
-
## Referência de Configuração (Configuration Reference)
|
|
557
|
-
|
|
558
|
-
As seções a seguir descrevem as várias opções de configuração disponíveis no Intlayer.
|
|
559
|
-
|
|
560
|
-
---
|
|
561
|
-
|
|
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. |
|
|
572
|
-
|
|
573
|
-
---
|
|
574
|
-
|
|
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)
|
|
651
|
-
|
|
652
|
-
Ao usar localStorage ou sessionStorage:
|
|
653
|
-
|
|
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'` |
|
|
658
|
-
|
|
659
|
-
#### Exemplos de Configuração
|
|
660
|
-
|
|
661
|
-
Aqui estão alguns exemplos comuns de configuração para a nova estrutura de roteamento v7:
|
|
662
|
-
|
|
663
|
-
**Configuração Básica (Padrão)**:
|
|
664
|
-
|
|
665
|
-
```typescript
|
|
666
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
667
|
-
// intlayer.config.ts
|
|
668
|
-
const config: IntlayerConfig = {
|
|
669
|
-
internationalization: {
|
|
670
|
-
locales: ["en", "fr", "es"],
|
|
671
|
-
defaultLocale: "en",
|
|
672
|
-
},
|
|
673
|
-
routing: {
|
|
674
|
-
mode: "prefix-no-default",
|
|
675
|
-
storage: "localStorage",
|
|
676
|
-
basePath: "",
|
|
677
|
-
},
|
|
678
|
-
};
|
|
679
|
-
|
|
680
|
-
export default config;
|
|
681
|
-
```
|
|
682
|
-
|
|
683
|
-
**Configuração em conformidade com a GDPR**:
|
|
684
|
-
|
|
685
|
-
```typescript
|
|
686
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
687
|
-
// intlayer.config.ts
|
|
688
|
-
const config: IntlayerConfig = {
|
|
689
|
-
internationalization: {
|
|
690
|
-
locales: ["en", "fr", "es"],
|
|
691
|
-
defaultLocale: "en",
|
|
692
|
-
},
|
|
693
|
-
routing: {
|
|
694
|
-
mode: "prefix-no-default",
|
|
695
|
-
storage: [
|
|
696
|
-
{
|
|
697
|
-
type: "localStorage",
|
|
698
|
-
name: "user-locale",
|
|
699
|
-
},
|
|
700
|
-
{
|
|
701
|
-
type: "cookie",
|
|
702
|
-
name: "user-locale",
|
|
703
|
-
secure: true,
|
|
704
|
-
sameSite: "strict",
|
|
705
|
-
httpOnly: false,
|
|
706
|
-
},
|
|
707
|
-
],
|
|
708
|
-
basePath: "",
|
|
709
|
-
},
|
|
710
|
-
};
|
|
711
|
-
|
|
712
|
-
export default config;
|
|
713
|
-
```
|
|
714
|
-
|
|
715
|
-
**Modo de Parâmetros de Pesquisa (Search Parameters Mode)**:
|
|
716
|
-
|
|
717
|
-
```typescript
|
|
718
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
719
|
-
// intlayer.config.ts
|
|
720
|
-
const config: IntlayerConfig = {
|
|
721
|
-
internationalization: {
|
|
722
|
-
locales: ["en", "fr", "es"],
|
|
723
|
-
defaultLocale: "en",
|
|
724
|
-
},
|
|
725
|
-
routing: {
|
|
726
|
-
mode: "search-params",
|
|
727
|
-
storage: "localStorage",
|
|
728
|
-
basePath: "",
|
|
729
|
-
},
|
|
730
|
-
};
|
|
731
|
-
|
|
732
|
-
export default config;
|
|
733
|
-
```
|
|
734
|
-
|
|
735
|
-
**Modo sem prefixo (No Prefix Mode) com armazenamento personalizado**:
|
|
736
|
-
|
|
737
|
-
```typescript
|
|
738
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
739
|
-
// intlayer.config.ts
|
|
740
|
-
const config: IntlayerConfig = {
|
|
741
|
-
internationalization: {
|
|
742
|
-
locales: ["en", "fr", "es"],
|
|
743
|
-
defaultLocale: "en",
|
|
744
|
-
},
|
|
745
|
-
routing: {
|
|
746
|
-
mode: "no-prefix",
|
|
747
|
-
storage: {
|
|
748
|
-
type: "sessionStorage",
|
|
749
|
-
name: "app-locale",
|
|
750
|
-
},
|
|
751
|
-
basePath: "/my-app",
|
|
752
|
-
},
|
|
753
|
-
};
|
|
754
|
-
|
|
755
|
-
export default config;
|
|
756
|
-
```
|
|
757
|
-
|
|
758
|
-
**Reescrita de URL personalizada com caminhos dinâmicos**:
|
|
759
|
-
|
|
760
|
-
```typescript
|
|
761
|
-
// intlayer.config.ts
|
|
762
|
-
import { nextjsRewrite } from "intlayer/routing";
|
|
763
|
-
|
|
764
|
-
const config: IntlayerConfig = {
|
|
765
|
-
internationalization: {
|
|
766
|
-
locales: ["en", "fr"],
|
|
767
|
-
defaultLocale: "en",
|
|
768
|
-
},
|
|
769
|
-
routing: {
|
|
770
|
-
mode: "prefix-no-default", // Estratégia de fallback para caminhos não reescritos
|
|
771
|
-
storage: "cookie",
|
|
772
|
-
rewrite: nextjsRewrite({
|
|
773
|
-
"/about": {
|
|
774
|
-
en: "/about",
|
|
775
|
-
fr: "/a-propos",
|
|
776
|
-
},
|
|
777
|
-
"/product/[slug]": {
|
|
778
|
-
en: "/product/[slug]",
|
|
779
|
-
fr: "/produit/[slug]",
|
|
780
|
-
},
|
|
781
|
-
"/blog/[category]/[id]": {
|
|
782
|
-
en: "/blog/[category]/[id]",
|
|
783
|
-
fr: "/journal/[category]/[id]",
|
|
784
|
-
},
|
|
785
|
-
}),
|
|
786
|
-
},
|
|
787
|
-
};
|
|
788
|
-
|
|
789
|
-
export default config;
|
|
790
|
-
```
|
|
791
|
-
|
|
792
|
-
---
|
|
793
|
-
|
|
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. |
|
|
806
|
-
|
|
807
|
-
---
|
|
808
|
-
|
|
809
|
-
### Configuração de Dicionário (Dictionary Configuration)
|
|
810
|
-
|
|
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.
|
|
812
|
-
|
|
813
|
-
Esta configuração de dicionário tem dois propósitos principais:
|
|
814
|
-
|
|
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.
|
|
817
|
-
|
|
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).
|
|
819
|
-
|
|
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. |
|
|
826
|
-
|
|
827
|
-
**Exemplo de `fill`**:
|
|
828
|
-
|
|
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
|
-
```
|
|
838
|
-
|
|
839
|
-
---
|
|
840
|
-
|
|
841
|
-
### Configuração de IA (AI Configuration)
|
|
842
|
-
|
|
843
|
-
Define configurações para os recursos baseados em IA do Intlayer, como a tradução build.
|
|
844
|
-
|
|
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. |
|
|
853
|
-
|
|
854
|
-
---
|
|
855
|
-
|
|
856
|
-
### Configuração de Compilação (Build Configuration)
|
|
857
|
-
|
|
858
|
-
Configurações do processo de build e otimização do Intlayer.
|
|
859
|
-
|
|
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` | | |
|
|
866
|
-
|
|
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.
|
|
872
|
-
|
|
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'` |
|
|
882
|
-
|
|
883
|
-
---
|
|
884
|
-
|
|
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. | `''` |
|
|
896
|
-
|
|
897
|
-
---
|
|
898
|
-
|
|
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. |
|