@intlayer/docs 8.4.5 → 8.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/dist/cjs/generated/docs.entry.cjs +20 -0
  12. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  13. package/dist/esm/generated/docs.entry.mjs +20 -0
  14. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  15. package/dist/types/generated/docs.entry.d.ts +1 -0
  16. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  17. package/docs/ar/intlayer_with_storybook.md +521 -0
  18. package/docs/bn/intlayer_with_hono.md +428 -0
  19. package/docs/de/intlayer_with_storybook.md +521 -0
  20. package/docs/en/configuration.md +160 -508
  21. package/docs/en/intlayer_with_storybook.md +521 -0
  22. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  23. package/docs/es/configuration.md +387 -754
  24. package/docs/es/intlayer_with_storybook.md +521 -0
  25. package/docs/fr/configuration.md +384 -757
  26. package/docs/fr/intlayer_with_storybook.md +521 -0
  27. package/docs/hi/intlayer_with_storybook.md +521 -0
  28. package/docs/id/intlayer_with_storybook.md +521 -0
  29. package/docs/it/intlayer_with_storybook.md +521 -0
  30. package/docs/ja/intlayer_with_storybook.md +521 -0
  31. package/docs/ko/intlayer_with_storybook.md +521 -0
  32. package/docs/pl/intlayer_with_storybook.md +521 -0
  33. package/docs/pt/intlayer_with_storybook.md +521 -0
  34. package/docs/ru/intlayer_with_storybook.md +521 -0
  35. package/docs/tr/intlayer_with_storybook.md +521 -0
  36. package/docs/uk/intlayer_with_storybook.md +521 -0
  37. package/docs/ur/intlayer_with_hono.md +428 -0
  38. package/docs/vi/intlayer_with_storybook.md +521 -0
  39. package/docs/zh/intlayer_with_storybook.md +521 -0
  40. package/package.json +6 -6
  41. package/src/generated/docs.entry.ts +20 -0
  42. package/docs/ar/configuration.md +0 -1124
  43. package/docs/de/configuration.md +0 -1296
  44. package/docs/en-GB/configuration.md +0 -1123
  45. package/docs/hi/configuration.md +0 -1118
  46. package/docs/id/configuration.md +0 -1235
  47. package/docs/it/configuration.md +0 -1301
  48. package/docs/ja/configuration.md +0 -1121
  49. package/docs/ko/configuration.md +0 -1121
  50. package/docs/pl/configuration.md +0 -1226
  51. package/docs/pt/configuration.md +0 -1293
  52. package/docs/ru/configuration.md +0 -1112
  53. package/docs/tr/configuration.md +0 -1114
  54. package/docs/uk/configuration.md +0 -1241
  55. package/docs/vi/configuration.md +0 -1263
  56. package/docs/zh/configuration.md +0 -1115
@@ -1,1293 +0,0 @@
1
- ---
2
- createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
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.
6
- keywords:
7
- - Configuração
8
- - Ajustes
9
- - Personalização
10
- - Intlayer
11
- - Opções
12
- slugs:
13
- - doc
14
- - concept
15
- - configuration
16
- history:
17
- - version: 8.3.0
18
- date: 2026-03-11
19
- changes: Mover 'baseDir' da configuração de 'content' para a configuração de 'system'
20
- - version: 8.2.0
21
- date: 2026-03-09
22
- changes: Atualizar opções do compilador, adicionar suporte para 'output' e 'noMetadata'
23
- - version: 8.1.7
24
- date: 2026-02-25
25
- changes: Atualizar opções do compilador
26
- - version: 8.1.5
27
- date: 2026-02-23
28
- changes: Adicionado a opção do compilador 'build-only' e o prefixo do dicionário
29
- - version: 8.0.6
30
- 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
32
- - version: 8.0.5
33
- date: 2026-02-06
34
- changes: Adicionar `dataSerialization` à configuração de IA
35
- - version: 8.0.0
36
- date: 2026-01-24
37
- changes: Renomear o modo de importação `live` para `fetch` para descrever melhor o mecanismo subjacente.
38
- - version: 8.0.0
39
- date: 2026-01-22
40
- changes: Mover a configuração de build para `importMode` na configuração do dicionário.
41
- - version: 8.0.0
42
- date: 2026-01-22
43
- changes: Adicionada a opção `rewrite` à configuração de roteamento
44
- - version: 8.0.0
45
- 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.
47
- - version: 8.0.0
48
- date: 2026-01-18
49
- changes: Adicionar opções de dicionário `location` e `schema`
50
- - version: 7.5.1
51
- date: 2026-01-10
52
- changes: Adicionar suporte para formatos de arquivo JSON5 e JSONC
53
- - version: 7.5.0
54
- date: 2025-12-17
55
- changes: Adicionar opção `buildMode`
56
- - version: 7.0.0
57
- date: 2025-10-25
58
- changes: Adicionada a configuração `dictionary`
59
- - version: 7.0.0
60
- date: 2025-10-21
61
- changes: Substituído o `middleware` pela configuração `routing`
62
- - version: 7.0.0
63
- date: 2025-10-12
64
- changes: Adicionada a opção `formatCommand`
65
- - version: 6.2.0
66
- date: 2025-10-12
67
- changes: Atualizada a opção `excludedPath`
68
- - version: 6.0.2
69
- date: 2025-09-23
70
- changes: Adicionada a opção `outputFormat`
71
- - version: 6.0.0
72
- date: 2025-09-21
73
- changes: Removido o campo `dictionaryOutput` e o campo `i18nextResourcesDir`
74
- - version: 6.0.0
75
- date: 2025-09-16
76
- changes: Adicionado modo de importação `live`
77
- - version: 6.0.0
78
- date: 2025-09-04
79
- changes: Substituído o campo `hotReload` por `liveSync` e adicionados os campos `liveSyncPort` e `liveSyncURL`
80
- - version: 5.6.1
81
- date: 2025-07-25
82
- changes: Substituído `activateDynamicImport` pela opção `importMode`
83
- - version: 5.6.0
84
- date: 2025-07-13
85
- changes: Alterado o valor padrão de contentDir de `['src']` para `['.']`
86
- - version: 5.5.11
87
- date: 2025-06-29
88
- changes: Adicionados comandos `docs`
89
- ---
90
-
91
- # Documentação de Configuração do Intlayer
92
-
93
- ## Visão Geral
94
-
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.
96
-
97
- ---
98
-
99
- ## Índice
100
-
101
- <TOC/>
102
-
103
- ---
104
-
105
- ## Suporte a Arquivos de Configuração
106
-
107
- O Intlayer aceita formatos de arquivos de configuração JSON, JS, MJS e TS:
108
-
109
- - `intlayer.config.ts`
110
- - `intlayer.config.js`
111
- - `intlayer.config.json`
112
- - `intlayer.config.json5`
113
- - `intlayer.config.jsonc`
114
- - `intlayer.config.cjs`
115
- - `intlayer.config.mjs`
116
- - `.intlayerrc`
117
-
118
- ---
119
-
120
- ## Exemplo de arquivo de configuração
121
-
122
- ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
123
- import { Locales, type IntlayerConfig } from "intlayer";
124
- import { nextjsRewrite } from "intlayer/routing";
125
- import { z } from "zod";
126
-
127
- /**
128
- * Example Intlayer configuration file showing all available options.
129
- */
130
- const config: IntlayerConfig = {
131
- /**
132
- * Configuration for internationalization settings.
133
- */
134
- internationalization: {
135
- /**
136
- * List of supported locales in the application.
137
- * Default: [Locales.ENGLISH]
138
- */
139
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
140
-
141
- /**
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
- */
146
- requiredLocales: [Locales.ENGLISH],
147
-
148
- /**
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"
154
- */
155
- strictMode: "inclusive",
156
-
157
- /**
158
- * Default locale used as a fallback if the requested locale is not found.
159
- * Default: Locales.ENGLISH
160
- */
161
- defaultLocale: Locales.ENGLISH,
162
- },
163
-
164
- /**
165
- * Settings that control dictionary operations and fallback behavior.
166
- */
167
- dictionary: {
168
- /**
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"
174
- */
175
- importMode: "static",
176
-
177
- /**
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
- */
182
- fill: true,
183
-
184
- /**
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"
191
- */
192
- location: "local",
193
-
194
- /**
195
- * Whether to automatically transform content (e.g., Markdown to HTML).
196
- * Default: false
197
- */
198
- contentAutoTransformation: false,
199
- },
200
-
201
- /**
202
- * Routing and middleware configuration.
203
- */
204
- routing: {
205
- /**
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"
212
- */
213
- mode: "prefix-no-default",
214
-
215
- /**
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
- */
220
- storage: ["cookie", "header"],
221
-
222
- /**
223
- * Base path for the application URLs.
224
- * Default: ""
225
- */
226
- basePath: "",
227
-
228
- /**
229
- * Custom URL rewriting rules for locale-specific paths.
230
- */
231
- rewrite: nextjsRewrite({
232
- "/[locale]/about": {
233
- en: "/[locale]/about",
234
- fr: "/[locale]/a-propos",
235
- },
236
- }),
237
- },
238
-
239
- /**
240
- * Settings for finding and processing content files.
241
- */
242
- content: {
243
- /**
244
- * File extensions to scan for dictionaries.
245
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
246
- */
247
- fileExtensions: [".content.ts", ".content.js", ".content.json"],
248
-
249
- /**
250
- * Directories where .content files are located.
251
- * Default: ["."]
252
- */
253
- contentDir: ["src"],
254
-
255
- /**
256
- * Directories where source code is located.
257
- * Used for build optimization and code transformation.
258
- * Default: ["."]
259
- */
260
- codeDir: ["src"],
261
-
262
- /**
263
- * Patterns to exclude from scanning.
264
- * Default: ['node_modules', '.intlayer', etc.]
265
- */
266
- excludedPath: ["node_modules"],
267
-
268
- /**
269
- * Whether to watch for changes and rebuild dictionaries in development.
270
- * Default: true in development
271
- */
272
- watch: true,
273
-
274
- /**
275
- * Command to format newly created / updated .content files.
276
- */
277
- formatCommand: 'npx prettier --write "{{file}}"',
278
- },
279
-
280
- /**
281
- * Visual Editor configuration.
282
- */
283
- editor: {
284
- /**
285
- * Whether the visual editor is enabled.
286
- * Default: false
287
- */
288
- enabled: true,
289
-
290
- /**
291
- * URL of your application for origin validation.
292
- * Default: ""
293
- */
294
- applicationURL: "http://localhost:3000",
295
-
296
- /**
297
- * Port for the local editor server.
298
- * Default: 8000
299
- */
300
- port: 8000,
301
-
302
- /**
303
- * Public URL for the editor.
304
- * Default: "http://localhost:8000"
305
- */
306
- editorURL: "http://localhost:8000",
307
-
308
- /**
309
- * Intlayer CMS URL.
310
- * Default: "https://app.intlayer.org"
311
- */
312
- cmsURL: "https://app.intlayer.org",
313
-
314
- /**
315
- * Backend API URL.
316
- * Default: "https://back.intlayer.org"
317
- */
318
- backendURL: "https://back.intlayer.org",
319
-
320
- /**
321
- * Whether to enable real-time content synchronization.
322
- * Default: false
323
- */
324
- liveSync: true,
325
- },
326
-
327
- /**
328
- * AI-powered translation and generation settings.
329
- */
330
- ai: {
331
- /**
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
- */
336
- provider: "openai",
337
-
338
- /**
339
- * Model to use from the selected provider.
340
- */
341
- model: "gpt-4o",
342
-
343
- /**
344
- * Provider API key.
345
- */
346
- apiKey: process.env.OPENAI_API_KEY,
347
-
348
- /**
349
- * Global context to guide the AI in generating translations.
350
- */
351
- applicationContext: "Esta é uma aplicação de reserva de viagens.",
352
-
353
- /**
354
- * Base URL for the AI API.
355
- */
356
- baseURL: "http://localhost:3000",
357
-
358
- /**
359
- * Serialização de dados
360
- *
361
- * Opções:
362
- * - "json": Padrão, confiável; consome mais tokens.
363
- * - "toon": Menos tokens, menos consistente que o JSON.
364
- *
365
- * Padrão: "json"
366
- */
367
- dataSerialization: "json",
368
- },
369
-
370
- /**
371
- * Build and optimization settings.
372
- */
373
- build: {
374
- /**
375
- * Build execution mode.
376
- * - "auto": Automatic build during app build.
377
- * - "manual": Requires explicit build command.
378
- * Default: "auto"
379
- */
380
- mode: "auto",
381
-
382
- /**
383
- * Whether to optimize the final bundle by pruning unused dictionaries.
384
- * Default: true in production
385
- */
386
- optimize: true,
387
-
388
- /**
389
- * Output format for generated dictionary files.
390
- * Default: ['cjs', 'esm']
391
- */
392
- outputFormat: ["cjs", "esm"],
393
-
394
- /**
395
- * Indicates if the build should check TypeScript types.
396
- * Default: false
397
- */
398
- checkTypes: false,
399
- },
400
-
401
- /**
402
- * Logger configuration.
403
- */
404
- log: {
405
- /**
406
- * Logging level.
407
- * - "default": Standard logging.
408
- * - "verbose": Detailed debug logging.
409
- * - "disabled": No logging.
410
- * Default: "default"
411
- */
412
- mode: "default",
413
-
414
- /**
415
- * Prefix for all log messages.
416
- * Default: "[intlayer]"
417
- */
418
- prefix: "[intlayer]",
419
- },
420
-
421
- /**
422
- * System configuration (Advanced use cases)
423
- */
424
- system: {
425
- /**
426
- * Directory for storing localization dictionaries.
427
- */
428
- dictionariesDir: ".intlayer/dictionary",
429
-
430
- /**
431
- * Directory for module augmentation.
432
- */
433
- moduleAugmentationDir: ".intlayer/types",
434
-
435
- /**
436
- * Directory for storing unmerged dictionaries.
437
- */
438
- unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
439
-
440
- /**
441
- * Directory for storing dictionary types.
442
- */
443
- typesDir: ".intlayer/types",
444
-
445
- /**
446
- * Directory where main application files are stored.
447
- */
448
- mainDir: ".intlayer/main",
449
-
450
- /**
451
- * Directory where the configuration files are stored.
452
- */
453
- configDir: ".intlayer/config",
454
-
455
- /**
456
- * Directory where the cache files are stored.
457
- */
458
- cacheDir: ".intlayer/cache",
459
- },
460
-
461
- /**
462
- * Compiler configuration (Advanced use cases)
463
- */
464
- compiler: {
465
- /**
466
- * Indica se o compilador deve ser habilitado.
467
- *
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
- *
472
- * Valor padrão : false
473
- */
474
- enabled: true,
475
-
476
- /**
477
- * Define o caminho dos arquivos de saída. Substitui `outputDir`.
478
- *
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`).
481
- *
482
- * - A inserção da variável `{{locale}}` no caminho ativará a geração de dicionários separados por idioma.
483
- *
484
- * Exemplo:
485
- * ```ts
486
- * {
487
- * // Cria arquivos .content.ts multilíngues próximos ao componente
488
- * output: ({ fileName, extension }) => `./${fileName}${extension}`,
489
- *
490
- * // output: './{{fileName}}{{extension}}', // Equivalente usando uma string template
491
- * }
492
- * ```
493
- *
494
- * ```ts
495
- * {
496
- * // Cria arquivos JSON centralizados por idioma na raiz do projeto
497
- * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
498
- *
499
- * // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando uma string template
500
- * }
501
- * ```
502
- *
503
- * 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.
513
- */
514
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
515
-
516
- /**
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.
519
- */
520
- saveComponents: false,
521
-
522
- /**
523
- * Inserir apenas o conteúdo no arquivo gerado. Útil para saídas JSON i18next ou ICU MessageFormat por localidade.
524
- */
525
- noMetadata: false,
526
-
527
- /**
528
- * Prefixo da chave do dicionário
529
- */
530
- dictionaryKeyPrefix: "", // Adicionar um prefixo opcional para as chaves do dicionário extraídas
531
- },
532
-
533
- /**
534
- * Custom schemas to validate the dictionaries content.
535
- */
536
- schemas: {
537
- "my-schema": z.object({
538
- title: z.string(),
539
- }),
540
- },
541
-
542
- /**
543
- * Plugins configuration.
544
- */
545
- plugins: [],
546
- };
547
-
548
- export default config;
549
- ````
550
-
551
- ## Referência de Configuração
552
-
553
- As seções a seguir descrevem as várias configurações disponíveis para o Intlayer.
554
-
555
- ---
556
-
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.
590
-
591
- ---
592
-
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
793
-
794
- Ao usar localStorage ou sessionStorage:
795
-
796
- - **type**: Tipo de armazenamento (`'localStorage' | 'sessionStorage'`)
797
- - **name**: Nome da chave de armazenamento (padrão: `'INTLAYER_LOCALE'`)
798
-
799
- #### Exemplos de Configuração
800
-
801
- Aqui estão alguns exemplos comuns de configuração para a nova estrutura de roteamento v8:
802
-
803
- **Configuração Básica (Padrão)**:
804
-
805
- ```typescript
806
- import { Locales, type IntlayerConfig } from "intlayer";
807
- // intlayer.config.ts
808
- const config: IntlayerConfig = {
809
- internationalization: {
810
- locales: ["en", "fr", "pt"],
811
- defaultLocale: "en",
812
- },
813
- routing: {
814
- mode: "prefix-no-default",
815
- storage: "localStorage",
816
- basePath: "",
817
- },
818
- };
819
-
820
- export default config;
821
- ```
822
-
823
- **Configuração em Conformidade com o GDPR**:
824
-
825
- ```typescript
826
- import { Locales, type IntlayerConfig } from "intlayer";
827
- // intlayer.config.ts
828
- const config: IntlayerConfig = {
829
- internationalization: {
830
- locales: ["en", "fr", "pt"],
831
- defaultLocale: "en",
832
- },
833
- routing: {
834
- mode: "prefix-no-default",
835
- storage: [
836
- {
837
- type: "localStorage",
838
- name: "user-locale",
839
- },
840
- {
841
- type: "cookie",
842
- name: "user-locale",
843
- secure: true,
844
- sameSite: "strict",
845
- httpOnly: false,
846
- },
847
- ],
848
- basePath: "",
849
- },
850
- };
851
-
852
- export default config;
853
- ```
854
-
855
- **Modo de Parâmetros de Busca**:
856
-
857
- ```typescript
858
- import { Locales, type IntlayerConfig } from "intlayer";
859
- // intlayer.config.ts
860
- const config: IntlayerConfig = {
861
- internationalization: {
862
- locales: ["en", "fr", "pt"],
863
- defaultLocale: "en",
864
- },
865
- routing: {
866
- mode: "search-params",
867
- storage: "localStorage",
868
- basePath: "",
869
- },
870
- };
871
-
872
- export default config;
873
- ```
874
-
875
- **Modo Sem Prefixo com Armazenamento Personalizado**:
876
-
877
- ```typescript
878
- import { Locales, type IntlayerConfig } from "intlayer";
879
- // intlayer.config.ts
880
- const config: IntlayerConfig = {
881
- internationalization: {
882
- locales: ["en", "fr", "pt"],
883
- defaultLocale: "en",
884
- },
885
- routing: {
886
- mode: "no-prefix",
887
- storage: {
888
- type: "sessionStorage",
889
- name: "app-locale",
890
- },
891
- basePath: "/my-app",
892
- },
893
- };
894
-
895
- export default config;
896
- ```
897
-
898
- **Reescrita de URL Personalizada com Rotas Dinâmicas**:
899
-
900
- ```typescript
901
- // intlayer.config.ts
902
- import { nextjsRewrite } from "intlayer/routing";
903
-
904
- const config: IntlayerConfig = {
905
- internationalization: {
906
- locales: ["en", "fr"],
907
- defaultLocale: "en",
908
- },
909
- routing: {
910
- mode: "prefix-no-default", // Estratégia de fallback para rotas não reescritas
911
- storage: "cookie",
912
- rewrite: nextjsRewrite({
913
- "/about": {
914
- en: "/about",
915
- fr: "/a-propos",
916
- },
917
- "/product/[slug]": {
918
- en: "/product/[slug]",
919
- fr: "/produit/[slug]",
920
- },
921
- "/blog/[category]/[id]": {
922
- en: "/blog/[category]/[id]",
923
- fr: "/journal/[category]/[id]",
924
- },
925
- }),
926
- },
927
- };
928
-
929
- export default config;
930
- ```
931
-
932
- ---
933
-
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.
993
-
994
- ---
995
-
996
- ### Configuração do Sistema
997
-
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.
999
-
1000
- #### Propriedades
1001
-
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.
1008
-
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.
1013
-
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`.
1020
-
1021
- - **unmergedDictionariesDir**:
1022
- - _Tipo_: `string`
1023
- - _Padrão_: `'.intlayer/unmerged_dictionary'`
1024
- - _Descrição_: O diretório para armazenar dicionários não mesclados.
1025
-
1026
- - **typesDir**:
1027
- - _Tipo_: `string`
1028
- - _Padrão_: `'.intlayer/types'`
1029
- - _Descrição_: O diretório para armazenar tipos de dicionário.
1030
-
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.
1035
-
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.
1040
-
1041
- - **cacheDir**:
1042
- - _Tipo_: `string`
1043
- - _Padrão_: `'.intlayer/cache'`
1044
- - _Descrição_: O diretório onde os arquivos de cache são armazenados.
1045
-
1046
- ### Configuração do dicionário
1047
-
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.
1049
-
1050
- Esta configuração de dicionário serve a dois propósitos principais:
1051
-
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
1054
-
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).
1056
-
1057
- #### Propriedades
1058
-
1059
- - **fill**
1060
- - **description**
1061
- - **locale**
1062
- - **location**
1063
- - **priority**
1064
- - **live**
1065
- - **schema**
1066
- - **title**
1067
- - **tags**
1068
- - **version**
1069
-
1070
- ---
1071
-
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.
1216
-
1217
- ---
1218
-
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
- ```