@intlayer/docs 8.3.0-canary.4 → 8.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
package/docs/pt/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Configuração
|
|
5
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
6
|
keywords:
|
|
@@ -15,23 +15,32 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: Mover 'baseDir' da configuração de 'content' para a configuração de 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
|
-
date: 2026-03-
|
|
21
|
+
date: 2026-03-09
|
|
22
22
|
changes: Atualizar opções do compilador, adicionar suporte para 'output' e 'noMetadata'
|
|
23
23
|
- version: 8.1.7
|
|
24
24
|
date: 2026-02-25
|
|
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
|
|
26
29
|
- version: 8.0.6
|
|
27
30
|
date: 2026-02-12
|
|
28
31
|
changes: Adicionar suporte para os provedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
29
|
-
- version: 8.0.
|
|
32
|
+
- version: 8.0.5
|
|
30
33
|
date: 2026-02-06
|
|
31
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.
|
|
32
41
|
- version: 8.0.0
|
|
33
42
|
date: 2026-01-22
|
|
34
|
-
changes:
|
|
43
|
+
changes: Adicionada a opção `rewrite` à configuração de roteamento
|
|
35
44
|
- version: 8.0.0
|
|
36
45
|
date: 2026-01-18
|
|
37
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.
|
|
@@ -44,6 +53,24 @@ history:
|
|
|
44
53
|
- version: 7.5.0
|
|
45
54
|
date: 2025-12-17
|
|
46
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`
|
|
47
74
|
- version: 6.0.0
|
|
48
75
|
date: 2025-09-16
|
|
49
76
|
changes: Adicionado modo de importação `live`
|
|
@@ -92,7 +119,7 @@ O Intlayer aceita formatos de arquivos de configuração JSON, JS, MJS e TS:
|
|
|
92
119
|
|
|
93
120
|
## Exemplo de arquivo de configuração
|
|
94
121
|
|
|
95
|
-
|
|
122
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
96
123
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
97
124
|
import { nextjsRewrite } from "intlayer/routing";
|
|
98
125
|
import { z } from "zod";
|
|
@@ -190,7 +217,7 @@ const config: IntlayerConfig = {
|
|
|
190
217
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
191
218
|
* Default: ['cookie', 'header']
|
|
192
219
|
*/
|
|
193
|
-
storage: "cookie",
|
|
220
|
+
storage: ["cookie", "header"],
|
|
194
221
|
|
|
195
222
|
/**
|
|
196
223
|
* Base path for the application URLs.
|
|
@@ -321,12 +348,23 @@ const config: IntlayerConfig = {
|
|
|
321
348
|
/**
|
|
322
349
|
* Global context to guide the AI in generating translations.
|
|
323
350
|
*/
|
|
324
|
-
applicationContext: "
|
|
351
|
+
applicationContext: "Esta é uma aplicação de reserva de viagens.",
|
|
325
352
|
|
|
326
353
|
/**
|
|
327
354
|
* Base URL for the AI API.
|
|
328
355
|
*/
|
|
329
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",
|
|
330
368
|
},
|
|
331
369
|
|
|
332
370
|
/**
|
|
@@ -349,9 +387,9 @@ const config: IntlayerConfig = {
|
|
|
349
387
|
|
|
350
388
|
/**
|
|
351
389
|
* Output format for generated dictionary files.
|
|
352
|
-
* Default: ['
|
|
390
|
+
* Default: ['cjs', 'esm']
|
|
353
391
|
*/
|
|
354
|
-
outputFormat: ["esm"],
|
|
392
|
+
outputFormat: ["cjs", "esm"],
|
|
355
393
|
|
|
356
394
|
/**
|
|
357
395
|
* Indicates if the build should check TypeScript types.
|
|
@@ -426,42 +464,70 @@ const config: IntlayerConfig = {
|
|
|
426
464
|
compiler: {
|
|
427
465
|
/**
|
|
428
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
|
|
429
473
|
*/
|
|
430
474
|
enabled: true,
|
|
431
475
|
|
|
432
476
|
/**
|
|
433
|
-
*
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
*
|
|
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.
|
|
442
513
|
*/
|
|
443
|
-
|
|
514
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
444
515
|
|
|
445
516
|
/**
|
|
446
|
-
*
|
|
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.
|
|
447
519
|
*/
|
|
448
|
-
|
|
520
|
+
saveComponents: false,
|
|
449
521
|
|
|
450
522
|
/**
|
|
451
|
-
* Inserir apenas o conteúdo no arquivo gerado
|
|
523
|
+
* Inserir apenas o conteúdo no arquivo gerado. Útil para saídas JSON i18next ou ICU MessageFormat por localidade.
|
|
452
524
|
*/
|
|
453
525
|
noMetadata: false,
|
|
454
526
|
|
|
455
527
|
/**
|
|
456
528
|
* Prefixo da chave do dicionário
|
|
457
529
|
*/
|
|
458
|
-
dictionaryKeyPrefix: "", //
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* Indica se os componentes devem ser salvos após serem transformados.
|
|
462
|
-
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois removido.
|
|
463
|
-
*/
|
|
464
|
-
saveComponents: false,
|
|
530
|
+
dictionaryKeyPrefix: "", // Adicionar um prefixo opcional para as chaves do dicionário extraídas
|
|
465
531
|
},
|
|
466
532
|
|
|
467
533
|
/**
|
|
@@ -480,7 +546,7 @@ const config: IntlayerConfig = {
|
|
|
480
546
|
};
|
|
481
547
|
|
|
482
548
|
export default config;
|
|
483
|
-
|
|
549
|
+
````
|
|
484
550
|
|
|
485
551
|
## Referência de Configuração
|
|
486
552
|
|
|
@@ -609,41 +675,50 @@ Define configurações relacionadas ao editor integrado, incluindo porta do serv
|
|
|
609
675
|
- _Exemplo_: `4000`
|
|
610
676
|
- _Nota_: A porta do servidor de sincronização ao vivo.
|
|
611
677
|
|
|
612
|
-
|
|
613
|
-
- _Tipo_: `string`
|
|
614
|
-
- _Padrão_: `'http://localhost:{liveSyncPort}'`
|
|
615
|
-
- _Descrição_: A URL do servidor de sincronização ao vivo.
|
|
616
|
-
- _Exemplo_: `'https://example.com'`
|
|
617
|
-
- _Nota_: Aponta para localhost por padrão, mas pode ser alterado para qualquer URL no caso de um servidor de sincronização ao vivo remoto.
|
|
618
|
-
|
|
619
|
-
### Configuração do Middleware
|
|
678
|
+
### Configuração de Roteamento
|
|
620
679
|
|
|
621
|
-
Configurações que controlam o comportamento do
|
|
680
|
+
Configurações que controlam o comportamento do roteamento, incluindo estrutura de URL, armazenamento de localidade e como o middleware opera.
|
|
622
681
|
|
|
623
682
|
#### Propriedades
|
|
624
683
|
|
|
625
|
-
- **
|
|
626
|
-
- _Tipo_: `
|
|
627
|
-
- _Padrão_: `'
|
|
628
|
-
- _Descrição_:
|
|
629
|
-
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
-
|
|
633
|
-
|
|
634
|
-
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
-
|
|
638
|
-
|
|
639
|
-
-
|
|
640
|
-
|
|
641
|
-
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
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' }`).
|
|
647
722
|
|
|
648
723
|
- **basePath**:
|
|
649
724
|
- _Tipo_: `string`
|
|
@@ -651,10 +726,23 @@ Configurações que controlam o comportamento do middleware, incluindo como a ap
|
|
|
651
726
|
- _Descrição_: O caminho base para as URLs da aplicação.
|
|
652
727
|
- _Exemplo_: `'/my-app'`
|
|
653
728
|
- _Nota_:
|
|
654
|
-
- Se a aplicação estiver hospedada em `https://example.com/my-app
|
|
655
|
-
-
|
|
656
|
-
- A URL será `https://example.com/my-app/
|
|
657
|
-
- Se o caminho base não estiver definido, a URL será `https://example.com/
|
|
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'`.
|
|
658
746
|
|
|
659
747
|
- **rewrite**:
|
|
660
748
|
- _Tipo_: `Record<string, StrictModeLocaleMap<string>>`
|
|
@@ -665,17 +753,20 @@ Configurações que controlam o comportamento do middleware, incluindo como a ap
|
|
|
665
753
|
routing: {
|
|
666
754
|
mode: "prefix-no-default", // Estratégia de fallback
|
|
667
755
|
rewrite: nextjsRewrite({
|
|
668
|
-
"/
|
|
669
|
-
|
|
670
|
-
|
|
756
|
+
"/about": {
|
|
757
|
+
pt: "/sobre-nos",
|
|
758
|
+
en: "/about",
|
|
759
|
+
fr: "/a-propos",
|
|
671
760
|
},
|
|
672
|
-
"/
|
|
673
|
-
|
|
674
|
-
|
|
761
|
+
"/product/[slug]": {
|
|
762
|
+
pt: "/produto/[slug]",
|
|
763
|
+
en: "/product/[slug]",
|
|
764
|
+
fr: "/produit/[slug]",
|
|
675
765
|
},
|
|
676
|
-
"/
|
|
677
|
-
|
|
678
|
-
|
|
766
|
+
"/blog/[category]/[id]": {
|
|
767
|
+
pt: "/blog/[category]/[id]",
|
|
768
|
+
en: "/blog/[category]/[id]",
|
|
769
|
+
fr: "/journal/[category]/[id]",
|
|
679
770
|
},
|
|
680
771
|
}),
|
|
681
772
|
}
|
|
@@ -686,25 +777,157 @@ Configurações que controlam o comportamento do middleware, incluindo como a ap
|
|
|
686
777
|
- _Nota_: Ao gerar URLs com `getLocalizedUrl()`, as regras de reescrita são aplicadas automaticamente se corresponderem ao caminho fornecido.
|
|
687
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).
|
|
688
779
|
|
|
689
|
-
|
|
690
|
-
- _Tipo_: `string`
|
|
691
|
-
- _Padrão_: `'always'`
|
|
692
|
-
- _Descrição_: Regra para definir o cookie de localidade no servidor.
|
|
693
|
-
- _Opções_: `'always'`, `'never'`
|
|
694
|
-
- _Exemplo_: `'never'`
|
|
695
|
-
- _Nota_: Controla se o cookie de localidade é definido a cada requisição ou nunca.
|
|
780
|
+
#### Atributos de Cookie
|
|
696
781
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
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
|
+
```
|
|
708
931
|
|
|
709
932
|
---
|
|
710
933
|
|
|
@@ -831,8 +1054,8 @@ Configurações que controlam as operações do dicionário, incluindo o comport
|
|
|
831
1054
|
|
|
832
1055
|
Esta configuração de dicionário serve a dois propósitos principais:
|
|
833
1056
|
|
|
834
|
-
1.
|
|
835
|
-
2.
|
|
1057
|
+
1. **Valores padrão**: Define valores padrão ao criar arquivos de declaração de conteúdo
|
|
1058
|
+
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
|
|
836
1059
|
|
|
837
1060
|
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).
|
|
838
1061
|
|
|
@@ -903,53 +1126,57 @@ O Intlayer suporta múltiplos provedores de IA para maior flexibilidade e escolh
|
|
|
903
1126
|
|
|
904
1127
|
#### Propriedades
|
|
905
1128
|
|
|
906
|
-
- **provider
|
|
907
|
-
- _Tipo_: `string`
|
|
908
|
-
- _Padrão_: `'openai'`
|
|
909
|
-
- _Descrição_: O provedor a ser usado para os recursos de IA do Intlayer.
|
|
910
|
-
- _Opções_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
911
|
-
- _Exemplo_: `'anthropic'`
|
|
1129
|
+
- **provider** :
|
|
1130
|
+
- _Tipo_ : `string`
|
|
1131
|
+
- _Padrão_ : `'openai'`
|
|
1132
|
+
- _Descrição_ : O provedor a ser usado para os recursos de IA do Intlayer.
|
|
1133
|
+
- _Opções_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1134
|
+
- _Exemplo_ : `'anthropic'`
|
|
912
1135
|
- _Nota_: Diferentes provedores podem exigir diferentes chaves de API e possuir modelos de preços distintos.
|
|
913
1136
|
|
|
914
|
-
- **model
|
|
915
|
-
- _Tipo_: `string`
|
|
916
|
-
- _Padrão_: Nenhum
|
|
917
|
-
- _Descrição_: O modelo a ser usado para os recursos de IA do Intlayer.
|
|
918
|
-
- _Exemplo_: `'gpt-4o-2024-11-20'`
|
|
919
|
-
- _Nota_: O modelo específico a ser usado varia conforme o provedor.
|
|
920
|
-
|
|
921
|
-
- **temperature
|
|
922
|
-
- _Tipo_: `number`
|
|
923
|
-
- _Padrão_: Nenhum
|
|
924
|
-
- _Descrição_: A temperatura controla a aleatoriedade das respostas da IA.
|
|
925
|
-
- _Exemplo_: `0.1`
|
|
926
|
-
- _Nota_: Uma temperatura mais alta tornará a IA mais criativa e menos previsível.
|
|
927
|
-
|
|
928
|
-
- **apiKey
|
|
929
|
-
- _Tipo_: `string`
|
|
930
|
-
- _Padrão_: Nenhum
|
|
931
|
-
- _Descrição_: Sua chave de API para o provedor selecionado.
|
|
932
|
-
- _Exemplo_: `process.env.OPENAI_API_KEY`
|
|
933
|
-
- _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.
|
|
934
|
-
|
|
935
|
-
- **applicationContext
|
|
936
|
-
- _Tipo_: `string`
|
|
937
|
-
- _Padrão_: Nenhum
|
|
938
|
-
- _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.
|
|
939
|
-
|
|
940
|
-
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
-
|
|
944
|
-
-
|
|
945
|
-
-
|
|
1137
|
+
- **model** :
|
|
1138
|
+
- _Tipo_ : `string`
|
|
1139
|
+
- _Padrão_ : Nenhum
|
|
1140
|
+
- _Descrição_ : O modelo a ser usado para os recursos de IA do Intlayer.
|
|
1141
|
+
- _Exemplo_ : `'gpt-4o-2024-11-20'`
|
|
1142
|
+
- _Nota_ : O modelo específico a ser usado varia conforme o provedor.
|
|
1143
|
+
|
|
1144
|
+
- **temperature** :
|
|
1145
|
+
- _Tipo_ : `number`
|
|
1146
|
+
- _Padrão_ : Nenhum
|
|
1147
|
+
- _Descrição_ : A temperatura controla a aleatoriedade das respostas da IA.
|
|
1148
|
+
- _Exemplo_ : `0.1`
|
|
1149
|
+
- _Nota_ : Uma temperatura mais alta tornará a IA mais criativa e menos previsível.
|
|
1150
|
+
|
|
1151
|
+
- **apiKey** :
|
|
1152
|
+
- _Tipo_ : `string`
|
|
1153
|
+
- _Padrão_ : Nenhum
|
|
1154
|
+
- _Descrição_ : Sua chave de API para o provedor selecionado.
|
|
1155
|
+
- _Exemplo_ : `process.env.OPENAI_API_KEY`
|
|
1156
|
+
- _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.
|
|
1157
|
+
|
|
1158
|
+
- **applicationContext** :
|
|
1159
|
+
- _Tipo_ : `string`
|
|
1160
|
+
- _Padrão_ : Nenhum
|
|
1161
|
+
- _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.
|
|
1162
|
+
- _Nota_: Você pode usar isso para adicionar outras regras ao modelo de IA (por exemplo, "não transforme URLs").
|
|
1163
|
+
- _Exemplo_ : `'O contexto da minha aplicação'`
|
|
1164
|
+
|
|
1165
|
+
- **baseURL** :
|
|
1166
|
+
- _Tipo_ : `string`
|
|
1167
|
+
- _Padrão_ : Nenhum
|
|
1168
|
+
- _Descrição_ : A URL base para a API de IA.
|
|
1169
|
+
- _Exemplo_ : `'https://api.openai.com/v1'`
|
|
1170
|
+
- _Exemplo_ : `'http://localhost:5000'`
|
|
1171
|
+
- _Nota_ : Pode ser usado para apontar para um endpoint de API de IA local ou personalizado.
|
|
946
1172
|
|
|
947
1173
|
- **dataSerialization**:
|
|
948
1174
|
- _Tipo_: `'json' | 'toon'`
|
|
949
1175
|
- _Padrão_: `'json'`
|
|
950
|
-
- _Descrição_: O formato de
|
|
1176
|
+
- _Descrição_: O formato de serialização de dados a ser usado nas funcionalidades de IA do Intlayer.
|
|
951
1177
|
- _Exemplo_: `'toon'`
|
|
952
1178
|
- _Nota_: `json`: Padrão, confiável; usa mais tokens. `toon`: Menos tokens, menos consistente que o JSON.
|
|
1179
|
+
> 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.
|
|
953
1180
|
|
|
954
1181
|
### Configuração de Build
|
|
955
1182
|
|
|
@@ -963,55 +1190,34 @@ As opções de build se aplicam aos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
|
963
1190
|
|
|
964
1191
|
#### Propriedades
|
|
965
1192
|
|
|
966
|
-
- **mode
|
|
967
|
-
- _Tipo_: `'auto' | 'manual'`
|
|
968
|
-
- _Padrão_: `'auto'`
|
|
969
|
-
- _Descrição_: Controla o modo da build.
|
|
970
|
-
- _Exemplo_: `'manual'`
|
|
971
|
-
- _Nota_: Se 'auto', a build será habilitada automaticamente
|
|
972
|
-
- _Nota_: Se 'manual', a build será
|
|
973
|
-
- _Nota_: Pode ser usado para desabilitar a build de dicionários, por exemplo quando a execução em um ambiente Node.js
|
|
974
|
-
|
|
975
|
-
- **
|
|
976
|
-
- _Tipo_: `boolean`
|
|
977
|
-
- _Padrão_: `
|
|
978
|
-
- _Descrição_:
|
|
979
|
-
-
|
|
980
|
-
|
|
981
|
-
-
|
|
982
|
-
-
|
|
983
|
-
-
|
|
984
|
-
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
-
|
|
988
|
-
-
|
|
989
|
-
-
|
|
990
|
-
|
|
991
|
-
-
|
|
992
|
-
- _Nota_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
993
|
-
- _Tipo_: `'static' | 'dynamic' | 'fetch'`
|
|
994
|
-
- _Padrão_: `'static'`
|
|
995
|
-
- _Descrição_: Controla como os dicionários são importados.
|
|
996
|
-
- _Exemplo_: `'dynamic'`
|
|
997
|
-
- _Nota_: Modos disponíveis:
|
|
1193
|
+
- **mode** :
|
|
1194
|
+
- _Tipo_ : `'auto' | 'manual'`
|
|
1195
|
+
- _Padrão_ : `'auto'`
|
|
1196
|
+
- _Descrição_ : Controla o modo da build.
|
|
1197
|
+
- _Exemplo_ : `'manual'`
|
|
1198
|
+
- _Nota_ : Se 'auto', a build será habilitada automaticamente durante o build da app.
|
|
1199
|
+
- _Nota_ : Se 'manual', a build só será acionada quando o comando de build for executado.
|
|
1200
|
+
- _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.
|
|
1201
|
+
|
|
1202
|
+
- **optimize** :
|
|
1203
|
+
- _Tipo_ : `boolean`
|
|
1204
|
+
- _Padrão_ : `undefined`
|
|
1205
|
+
- _Descrição_ : Controla se a build deve ser otimizada.
|
|
1206
|
+
- _Exemplo_ : `process.env.NODE_ENV === 'production'`
|
|
1207
|
+
- _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.
|
|
1208
|
+
- _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.
|
|
1209
|
+
- _Nota_ : O Intlayer substituirá todas as chamadas de `useIntlayer` pelo modo definido pela opção `importMode` e `getIntlayer` por `getDictionary`.
|
|
1210
|
+
- _Nota_ : Esta opção depende dos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
1211
|
+
- _Nota_ : Certifique-se de que todas as chaves sejam declaradas estaticamente nas chamadas de `useIntlayer`. Exemplo: `useIntlayer('navbar')`.
|
|
1212
|
+
|
|
1213
|
+
- **importMode** :
|
|
1214
|
+
- _Tipo_ : `'static' | 'dynamic' | 'fetch'`
|
|
1215
|
+
- _Padrão_ : `'static'`
|
|
1216
|
+
- _Descrição_ : Controla como os dicionários são importados.
|
|
1217
|
+
- _Exemplo_ : `'dynamic'`
|
|
1218
|
+
- _Nota_ : Modos disponíveis:
|
|
998
1219
|
- "static": Os dicionários são importados estaticamente. Substitui `useIntlayer` por `useDictionary`.
|
|
999
1220
|
- "dynamic": Os dicionários são importados dinamicamente usando Suspense. Substitui `useIntlayer` por `useDictionaryDynamic`.
|
|
1000
|
-
- "fetch": Os dicionários são buscados dinamicamente usando a API de sincronização ao vivo. Substitui `useIntlayer` por `useDictionaryFetch`.
|
|
1001
|
-
- _Nota_: Importações dinâmicas dependem do Suspense e podem impactar levemente o desempenho da renderização.
|
|
1002
|
-
- _Nota_: Se desativado, todos os idiomas serão carregados de uma vez, mesmo que não sejam usados.
|
|
1003
|
-
- _Nota_: Esta opção depende dos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
1004
|
-
- _Nota_: Garanta que todas as chaves sejam declaradas estaticamente nas chamadas `useIntlayer`. Exemplo: `useIntlayer('navbar')`.
|
|
1005
|
-
- _Nota_: Esta opção será ignorada se `optimize` estiver desativado.
|
|
1006
|
-
- _Nota_: Se definido como "live", apenas os dicionários que incluem conteúdo remoto e estão marcados como "live" serão transformados no modo live. Os outros serão importados dinamicamente no modo "dynamic" para otimizar o número de consultas fetch e o desempenho de carregamento.
|
|
1007
|
-
- _Nota_: O modo live usará a API de sincronização ao vivo para buscar os dicionários. Se a chamada da API falhar, os dicionários serão importados dinamicamente no modo "dynamic".
|
|
1008
|
-
- _Nota_: Esta opção não impactará as funções `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` e `useDictionaryDynamic`.
|
|
1009
|
-
|
|
1010
|
-
- **outputFormat**:
|
|
1011
|
-
- _Tipo_: `'esm' | 'cjs'`
|
|
1012
|
-
- _Padrão_: `'esm'`
|
|
1013
|
-
- _Descrição_: Controla o formato de saída dos dicionários.
|
|
1014
|
-
- _Exemplo_: `'cjs'`
|
|
1015
1221
|
- _Nota_: O formato de saída dos dicionários.
|
|
1016
1222
|
|
|
1017
1223
|
- **traversePattern**:
|
|
@@ -1040,7 +1246,7 @@ Configurações que controlan o compilador Intlayer, que extrai dicionários dir
|
|
|
1040
1246
|
|
|
1041
1247
|
- **dictionaryKeyPrefix**:
|
|
1042
1248
|
- _Tipo_: `string`
|
|
1043
|
-
- _Padrão_: `'
|
|
1249
|
+
- _Padrão_: `''`
|
|
1044
1250
|
- _Descrição_: Prefixo para as chaves de dicionário extraídas.
|
|
1045
1251
|
- _Exemplo_: `'my-key-'`
|
|
1046
1252
|
- _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.
|
|
@@ -1064,30 +1270,34 @@ Configurações que controlan o compilador Intlayer, que extrai dicionários dir
|
|
|
1064
1270
|
- _Descrição_: Padrões que definem quais arquivos devem ser excluídos durante a otimização.
|
|
1065
1271
|
- _Exemplo_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1066
1272
|
|
|
1067
|
-
- **outputDir**:
|
|
1068
|
-
- _Tipo_: `string`
|
|
1069
|
-
- _Padrão_: `'compiler'`
|
|
1070
|
-
- _Descrição_: O diretório onde os dicionários extraídos serão armazenados, relativo ao caminho base do seu projeto.
|
|
1071
|
-
|
|
1072
1273
|
- **output**:
|
|
1073
1274
|
- _Tipo_: `FilePathPattern`
|
|
1074
|
-
- _Padrão_: `
|
|
1075
|
-
- _Descrição_: Define o caminho dos arquivos de saída. Substitui `outputDir`. Manipula variáveis dinâmicas
|
|
1076
|
-
- _Nota_:
|
|
1077
|
-
-
|
|
1275
|
+
- _Padrão_: `undefined`
|
|
1276
|
+
- _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}}`.
|
|
1277
|
+
- _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`).
|
|
1278
|
+
- _Nota_: A inserção da variável `{{locale}}` no caminho ativará a geração de dicionários separados por idioma.
|
|
1279
|
+
- _Exemplo_:
|
|
1280
|
+
- **Arquivo multilíngue próximo ao componente** :
|
|
1281
|
+
- String: `'./{{fileName}}{{extension}}'`
|
|
1282
|
+
- Função: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1283
|
+
|
|
1284
|
+
- **Arquivos JSON centralizados por idioma** :
|
|
1285
|
+
- String: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1286
|
+
- Função: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1078
1287
|
|
|
1079
1288
|
- **noMetadata**:
|
|
1080
1289
|
- _Tipo_: `boolean`
|
|
1081
1290
|
- _Padrão_: `false`
|
|
1082
|
-
- _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).
|
|
1291
|
+
- _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.
|
|
1083
1292
|
- _Nota_: Útil se usado com o plugin `loadJSON`.
|
|
1084
|
-
- _Exemplo_:
|
|
1293
|
+
- _Exemplo_:
|
|
1294
|
+
Se `true` :
|
|
1085
1295
|
```json
|
|
1086
1296
|
{
|
|
1087
1297
|
"key": "value"
|
|
1088
1298
|
}
|
|
1089
1299
|
```
|
|
1090
|
-
Se `false
|
|
1300
|
+
Se `false` :
|
|
1091
1301
|
```json
|
|
1092
1302
|
{
|
|
1093
1303
|
"key": "value",
|