@intlayer/docs 8.4.4 → 8.4.6

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