@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.
Files changed (33) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/docs/ar/configuration.md +300 -264
  12. package/docs/cs/configuration.md +958 -0
  13. package/docs/de/configuration.md +285 -249
  14. package/docs/en/configuration.md +115 -137
  15. package/docs/en-GB/configuration.md +272 -237
  16. package/docs/es/configuration.md +161 -125
  17. package/docs/fr/configuration.md +137 -101
  18. package/docs/it/configuration.md +294 -259
  19. package/docs/ja/configuration.md +269 -233
  20. package/docs/nl/configuration.md +958 -0
  21. package/docs/pt/configuration.md +311 -275
  22. package/docs/ru/configuration.md +287 -272
  23. package/docs/tr/configuration.md +265 -229
  24. package/package.json +6 -6
  25. package/docs/bn/configuration.md +0 -922
  26. package/docs/hi/configuration.md +0 -922
  27. package/docs/id/configuration.md +0 -922
  28. package/docs/ko/configuration.md +0 -922
  29. package/docs/pl/configuration.md +0 -922
  30. package/docs/uk/configuration.md +0 -922
  31. package/docs/ur/configuration.md +0 -922
  32. package/docs/vi/configuration.md +0 -922
  33. package/docs/zh/configuration.md +0 -922
@@ -1,8 +1,8 @@
1
1
  ---
2
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.
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: Adicionar notação de objeto por localidade para 'compiler.output' e 'dictionary.fill'
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: Mover 'baseDir' da configuração 'content' para 'system'
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: Atualizar opções do compilador, adicionar suporte para 'output' e 'noMetadata'
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: Atualizar opções do compilador
28
+ changes: Atualizadas as opções do compilador
29
29
  - version: 8.1.5
30
30
  date: 2026-02-23
31
- changes: Adicionar opção de compilador 'build-only' e prefixo de dicionário
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: Adicionar suporte para provedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
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: Adicionar `dataSerialization` à configuração de IA
37
+ changes: Adicionado `dataSerialization` à configuração de IA
38
38
  - version: 8.0.0
39
39
  date: 2026-01-24
40
- changes: Renomear o modo de importação `live` para `fetch` para descrever melhor o mecanismo subjacente.
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: Mover o modo de importação `importMode` da configuração de build para a configuração de dicionário.
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: Adicionar a opção `rewrite` à configuração de roteamento.
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: 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.
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: Adicionar as opções de dicionário `location` e `schema`.
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: Adicionar suporte para formatos de arquivo JSON5 e JSONC.
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: Adicionar a opção `buildMode`.
58
+ changes: Adicionada a opção `buildMode`
59
59
  - version: 7.0.0
60
60
  date: 2025-10-25
61
- changes: Adicionar a configuração `dictionary`.
61
+ changes: Adicionada a configuração `dictionary`
62
62
  - version: 7.0.0
63
63
  date: 2025-10-21
64
- changes: Substituir `middleware` pela configuração de `routing`.
64
+ changes: Substituído `middleware` pela configuração `routing`
65
65
  - version: 7.0.0
66
66
  date: 2025-10-12
67
- changes: Adicionar a opção `formatCommand`.
67
+ changes: Adicionada a opção `formatCommand`
68
68
  - version: 6.2.0
69
69
  date: 2025-10-12
70
- changes: Atualizar a opção `excludedPath`.
70
+ changes: Atualizada a opção `excludedPath`
71
71
  - version: 6.0.2
72
72
  date: 2025-09-23
73
- changes: Adicionar a opção `outputFormat`.
73
+ changes: Adicionada a opção `outputFormat`
74
74
  - version: 6.0.0
75
75
  date: 2025-09-21
76
- changes: Remover o campo `dictionaryOutput` e o campo `i18nextResourcesDir`.
76
+ changes: Removido o campo `dictionaryOutput` e o campo `i18nextResourcesDir`
77
77
  - version: 6.0.0
78
78
  date: 2025-09-16
79
- changes: Adicionar o modo de importação `live`.
79
+ changes: Adicionado o modo de importação `live`
80
80
  - version: 6.0.0
81
81
  date: 2025-09-04
82
- changes: Substituir o campo `hotReload` por `liveSync` e adicionar os campos `liveSyncPort` e `liveSyncURL`.
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: Substituir `activateDynamicImport` pela opção `importMode`.
85
+ changes: Substituído `activateDynamicImport` pela opção `importMode`
86
86
  - version: 5.6.0
87
87
  date: 2025-07-13
88
- changes: Alterar o contentDir padrão de `['src']` para `['.']`.
88
+ changes: Alterado o `contentDir` padrão de `['src']` para `['.']`
89
89
  - version: 5.5.11
90
90
  date: 2025-06-29
91
- changes: Adicionar comandos `docs`.
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 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.
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
- ## Sumário
102
+ ## Índice
103
103
 
104
104
  <TOC/>
105
105
 
106
106
  ---
107
107
 
108
- ## Suporte a Arquivos de Configuração
108
+ ## Suporte de Ficheiros de Configuração
109
109
 
110
- O Intlayer aceita os formatos de arquivo de configuração JSON, JS, MJS e TS:
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 arquivo de configuração
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 arquivo de configuração do Intlayer exibindo todas as opções disponíveis.
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 das definições de internacionalização.
135
+ * Configuração para as definições de internacionalização.
136
136
  */
137
137
  internationalization: {
138
138
  /**
139
- * Lista de localidades (locales) suportadas no aplicativo.
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 localidades obrigatórias que devem ser definidas em cada dicionário.
146
- * Se vazio, todas as localidades são obrigatórias no modo `strict`.
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 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.
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
- * A localidade padrão utilizada como recurso caso a localidade solicitada não seja encontrada.
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 de dicionário e o comportamento de fallback.
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 compilação.
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 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.
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 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.
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 o conteúdo deve ser transformado automaticamente (ex: Markdown para HTML).
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 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.
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 a localidade selecionada pelo usuário.
220
- * Opções: 'cookie', 'localStorage', 'sessionStorage', 'header' ou um array deles.
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
- * O caminho base para as URLs do aplicativo.
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 por localidade.
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 relacionadas à busca e processamento de arquivos de conteúdo.
243
+ * Configurações para encontrar e processar ficheiros de conteúdo.
244
244
  */
245
245
  content: {
246
246
  /**
247
- * Extensões de arquivo para escanear dicionários.
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 arquivos .content estão localizados.
253
+ * Diretórios onde os ficheiros .content residem.
254
254
  * Padrão: ["."]
255
255
  */
256
256
  contentDir: ["src"],
257
257
 
258
258
  /**
259
- * Onde o código-fonte está localizado.
260
- * Utilizado para otimização de compilação e transformação de código.
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 excluídos do escaneamento.
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 monitorar alterações e reconstruir dicionários durante o desenvolvimento.
273
- * Padrão: true no ambiente de desenvolvimento
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 utilizado para formatar arquivos .content recém-criados / atualizados.
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 Editor Visual (Visual Editor).
284
+ * Configuração do Visual Editor.
285
285
  */
286
286
  editor: {
287
287
  /**
288
- * Se o editor visual está habilitado.
288
+ * Se o visual editor está ativado.
289
289
  * Padrão: false
290
290
  */
291
291
  enabled: true,
292
292
 
293
293
  /**
294
- * A URL do seu aplicativo para validação de origem (origin validation).
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
- * A URL pública do editor.
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 do Intlayer.
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 Backend.
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 habilitar a sincronização de conteúdo em tempo real.
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
- * Configurações de tradução e construção baseadas em IA.
331
+ * Definições de tradução e geração assistida por IA.
332
332
  */
333
333
  ai: {
334
334
  /**
335
- * Provedor de IA a ser utilizado.
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 para utilizar.
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 ao construir traduções.
352
+ * Contexto global para guiar a IA na geração de traduções.
353
353
  */
354
- applicationContext: "Este é um aplicativo de reserva de viagens.",
354
+ applicationContext: "Esta é uma aplicação de reserva de viagens.",
355
355
 
356
356
  /**
357
- * URL do caminho base para a API de IA.
357
+ * URL base para a API de IA.
358
358
  */
359
359
  baseURL: "http://localhost:3000",
360
360
 
361
361
  /**
362
- * Serialização de Dados (Data Serialization)
362
+ * Serialização de dados
363
363
  *
364
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.
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 compilação e otimização.
374
+ * Configurações de build e otimização.
375
375
  */
376
376
  build: {
377
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.
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 arquivos de dicionário gerados.
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 compilação deve verificar os tipos TypeScript.
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 registrador (Logger).
405
+ * Configuração do Logger.
406
406
  */
407
407
  log: {
408
408
  /**
409
- * Nível de registro.
410
- * - "default": Registro padrão.
411
- * - "verbose": Registro de depuração detalhado.
412
- * - "disabled": Desativa o registro.
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 registro.
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
- * Configurações do sistema (Para uso avançado)
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 o aumento de módulo TypeScript (module augmentation).
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 mesclados (unmerged).
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 dicionários.
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 arquivos principais do aplicativo são armazenados.
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 arquivos de configuração são armazenados.
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 arquivos de cache são armazenados.
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 (Para uso avançado)
465
+ * Configuração do Compilador (Casos de uso avançados)
466
466
  */
467
467
  compiler: {
468
468
  /**
469
- * Indica se o compilador deve estar habilitado.
469
+ * Indica se o compilador deve estar ativado.
470
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.
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 arquivos de saída. Substitui o `outputDir`.
480
+ * Define o caminho para os ficheiros de saída. Substitui `outputDir`.
481
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`).
482
+ * - Caminhos `./` são resolvidos relativamente ao diretório da componente.
483
+ * - Caminhos `/` são resolvidos relativamente à raiz do projeto (`baseDir`).
484
484
  *
485
- * - A inclusão da variável `{{locale}}` no caminho ativará a criação de dicionários separados por idioma.
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 arquivos .content.ts multilíngues ao lado do componente
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`: 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.
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
- * 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.
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
- * Insere apenas o conteúdo no arquivo gerado. Útil para saída JSON por idioma para i18next ou ICU MessageFormat.
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: "", // Adicione um prefixo opcional às chaves de dicionário extraídas
533
+ dictionaryKeyPrefix: "", // Adicionar prefixo opcional para as chaves de dicionário extraídas
534
534
  },
535
535
 
536
536
  /**
537
- * Esquemas personalizados (Schemas) para validar o conteúdo dos dicionários.
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 (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 (Configuration Reference)
556
+ ## Referência de Configuração
557
557
 
558
- As seções a seguir descrevem as várias opções de configuração disponíveis no Intlayer.
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 (Internationalization Configuration)
562
+ ### Configuração de Internacionalização
563
563
 
564
- Define as configurações relacionadas à internacionalização, incluindo as localidades disponíveis e a localidade padrão para o aplicativo.
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 | 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. |
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 (Editor Configuration)
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` &#124; <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` &#124; <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
- 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 &#124; 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 &#124; 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 (Routing Configuration)
596
+ ### Configuração de Roteamento
595
597
 
596
- Configurações que controlam o comportamento do roteamento, incluindo estrutura de URL, armazenamento de localidade e tratamento de middleware.
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 | Descrição | Exemplo | Nota |
599
- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
600
- | `mode` | `'prefix-no-default' &#124; 'prefix-all' &#124; 'no-prefix' &#124; '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 &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; 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). |
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'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <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` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <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 (Storage Options)
629
+ #### Opções de Armazenamento
628
630
 
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' }`). |
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 Cookie (Cookie Attributes)
638
+ #### Atributos de Cookies
637
639
 
638
- Ao usar o armazenamento via cookie, você pode configurar atributos de cookie adicionais:
640
+ Ao usar armazenamento por cookies, pode configurar atributos adicionais:
639
641
 
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' &#124; 'lax' &#124; 'none'` | Política de SameSite. |
648
- | `expires` | `Date &#124; number` | Data de validade ou número de dias. Padrão: `undefined` |
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'` &#124; <br/> `'lax'` &#124; <br/> `'none'` |
650
+ | `expires` | Data de expiração ou dias. Padrão: `undefined` | `Date` &#124; <br/> `number` |
649
651
 
650
- #### Atributos de Armazenamento de Localidade (Locale Storage Attributes)
652
+ #### Atributos de Armazenamento Local
651
653
 
652
654
  Ao usar localStorage ou sessionStorage:
653
655
 
654
- | Campo | Tipo | Descrição |
655
- | ------ | ---------------------------------------- | ----------------------------------------------------------- |
656
- | `type` | `'localStorage' &#124; 'sessionStorage'` | Tipo de armazenamento. |
657
- | `name` | `string` | Nome da chave de armazenamento. Padrão: `'INTLAYER_LOCALE'` |
656
+ | Campo | Descrição | Tipo |
657
+ | ------ | --------------------------------------------- | ------------------------------------------------ |
658
+ | `type` | Tipo de armazenamento. | `'localStorage'` &#124; <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 comuns de configuração para a nova estrutura de roteamento v7:
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 conformidade com a GDPR**:
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 (Search Parameters Mode)**:
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 sem prefixo (No Prefix Mode) com armazenamento personalizado**:
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 personalizada com caminhos dinâmicos**:
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", // Estratégia de fallback para caminhos não reescritos
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 (Content Configuration)
796
+ ### Configuração de Conteúdo
795
797
 
796
- Configurações relacionadas ao processamento de conteúdo dentro do aplicativo (nomes de diretório, extensões de arquivo e configurações derivadas).
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 | 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. |
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 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 &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; 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' &#124; 'dynamic' &#124; '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' &#124; 'remote' &#124; 'hybrid' &#124; 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. |
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` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; 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` &#124; <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'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <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'` &#124; <br/> `'dynamic'` &#124; <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: '/locales/en/{{key}}.content.json',
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 de IA (AI Configuration)
844
+ ### Configuração do Logger
842
845
 
843
- Define configurações para os recursos baseados em IA do Intlayer, como a tradução build.
846
+ Definições para personalizar a saída de logs do Intlayer.
844
847
 
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' &#124; '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'` &#124; <br/> `'verbose'` &#124; <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 Compilação (Build Configuration)
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'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <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'` &#124; <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
- Configurações do processo de build e otimização do Intlayer.
893
+ ---
859
894
 
860
- | Campo | Tipo | Descrição | Exemplo | Nota |
861
- | -------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------- | ---- |
862
- | `mode` | `'auto' &#124; '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' &#124; '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
- ### Configurações de Sistema (System Configuration)
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
- Essas configurações destinam-se a casos de uso avançados e para a configuração interna do Intlayer.
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 | 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'` |
905
+ | Campo | Descrição | Tipo | Padrão | Exemplo | Nota |
906
+ | ----------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
907
+ | `mode` | Controla o modo de build. | `'auto'` &#124; <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' &#124; '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 Compilador (Compiler Configuration)
915
+ ### Configuração do Sistema
886
916
 
887
- Configurações para o compilador do Intlayer (`intlayer compiler`).
917
+ Estas definições são para casos de uso avançados e configuração interna do Intlayer.
888
918
 
889
- | Campo | Tipo | Descrição | Padrão |
890
- | --------------------- | ------------------------ | --------------------------------------------------------------------------------------------- | ------- |
891
- | `enabled` | `boolean` | Indica se o compilador está ativo. | `false` |
892
- | `output` | `string &#124; 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. | `''` |
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 Registrador (Logger Configuration)
931
+ ### Configuração do Compilador
900
932
 
901
- Configurações para personalizar a saída de logs do Intlayer.
933
+ Configurações que controlam o compilador do Intlayer, que extrai dicionários diretamente das suas componentes.
902
934
 
903
- | Campo | Tipo | Descrição | Padrão |
904
- | -------- | ---------------------------------------------- | ----------------------------------- | -------------- |
905
- | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | Modo de registro. | `'default'` |
906
- | `prefix` | `string` | Prefixo para mensagens de registro. | `'[intlayer]'` |
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` &#124; <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` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; 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 (Custom Schemas)
946
+ ### Esquemas Personalizados
911
947
 
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. |
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 | Descrição |
921
- | --------- | ------------------ | ---------------------------------------------- |
922
- | `plugins` | `IntlayerPlugin[]` | Lista de plugins do Intlayer a serem ativados. |
956
+ | Campo | Descrição | Tipo |
957
+ | --------- | ------------------------------------ | ------------------ |
958
+ | `plugins` | Lista de plugins do Intlayer a ativar. | `IntlayerPlugin[]` |