@intlayer/docs 7.0.0-canary.2 → 7.0.0-canary.3
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/dist/cjs/common.cjs.map +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/types/common.d.ts +5 -0
- package/dist/types/common.d.ts.map +1 -1
- package/docs/ar/intlayer_with_nextjs_16.md +1652 -0
- package/docs/ar/releases/v7.md +486 -0
- package/docs/de/intlayer_with_nextjs_16.md +1662 -0
- package/docs/de/releases/v7.md +503 -0
- package/docs/en/intlayer_with_nextjs_15.md +5 -2
- package/docs/en/intlayer_with_nextjs_16.md +4 -4
- package/docs/en-GB/intlayer_with_nextjs_16.md +1642 -0
- package/docs/en-GB/releases/v7.md +486 -0
- package/docs/es/intlayer_with_nextjs_16.md +1670 -0
- package/docs/es/releases/v7.md +503 -0
- package/docs/fr/intlayer_with_nextjs_16.md +1692 -0
- package/docs/fr/releases/v7.md +504 -0
- package/docs/hi/intlayer_with_nextjs_16.md +1618 -0
- package/docs/hi/releases/v7.md +486 -0
- package/docs/id/intlayer_with_nextjs_16.md +1604 -0
- package/docs/id/releases/v7.md +503 -0
- package/docs/it/intlayer_with_nextjs_16.md +1600 -0
- package/docs/it/releases/v7.md +505 -0
- package/docs/ja/intlayer_CMS.md +0 -9
- package/docs/ja/intlayer_with_nextjs_16.md +1788 -0
- package/docs/ja/releases/v7.md +504 -0
- package/docs/ko/intlayer_with_nextjs_16.md +1641 -0
- package/docs/ko/releases/v7.md +504 -0
- package/docs/pl/intlayer_with_nextjs_16.md +1645 -0
- package/docs/pl/releases/v7.md +486 -0
- package/docs/pt/intlayer_with_nextjs_16.md +1646 -0
- package/docs/pt/introduction.md +0 -15
- package/docs/pt/releases/v7.md +486 -0
- package/docs/ru/intlayer_with_nextjs_16.md +1610 -0
- package/docs/ru/releases/v7.md +486 -0
- package/docs/tr/intlayer_with_nextjs_16.md +1599 -0
- package/docs/tr/releases/v7.md +486 -0
- package/docs/vi/intlayer_with_nextjs_16.md +1597 -0
- package/docs/vi/releases/v7.md +486 -0
- package/docs/zh/intlayer_CMS.md +0 -23
- package/docs/zh/intlayer_with_nextjs_16.md +1628 -0
- package/docs/zh/releases/v7.md +487 -0
- package/package.json +14 -14
- package/src/common.ts +5 -0
package/docs/pt/introduction.md
CHANGED
|
@@ -144,19 +144,6 @@ const MyComponent = () => {
|
|
|
144
144
|
|
|
145
145
|
## Principais Funcionalidades
|
|
146
146
|
|
|
147
|
-
Intlayer oferece uma variedade de funcionalidades adaptadas para atender às necessidades do desenvolvimento web moderno. Abaixo estão as principais funcionalidades, com links para documentação detalhada de cada uma:
|
|
148
|
-
|
|
149
|
-
- **Suporte à Internacionalização**: Amplie o alcance global da sua aplicação com suporte integrado para internacionalização.
|
|
150
|
-
- **Editor Visual**: Melhore seu fluxo de desenvolvimento com plugins de editor projetados para Intlayer. Confira o [Guia do Editor Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md).
|
|
151
|
-
const { myTranslatedContent } = useIntlayer("component-key");
|
|
152
|
-
|
|
153
|
-
return <span>{myTranslatedContent}</span>;
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## Principais Funcionalidades
|
|
159
|
-
|
|
160
147
|
O Intlayer oferece uma variedade de funcionalidades adaptadas para atender às necessidades do desenvolvimento web moderno. Abaixo estão as principais funcionalidades, com links para documentação detalhada de cada uma:
|
|
161
148
|
|
|
162
149
|
- **Suporte à Internacionalização**: Amplie o alcance global da sua aplicação com suporte integrado para internacionalização.
|
|
@@ -217,5 +204,3 @@ Cada guia de integração inclui as melhores práticas para usar os recursos do
|
|
|
217
204
|
Valorizamos o poder do código aberto e do desenvolvimento orientado pela comunidade. Se desejar propor melhorias, adicionar um novo guia ou corrigir quaisquer problemas em nossa documentação, sinta-se à vontade para enviar um Pull Request ou abrir uma issue em nosso [repositório GitHub](https://github.com/aymericzip/intlayer/blob/main/docs/docs).
|
|
218
205
|
|
|
219
206
|
**Pronto para traduzir sua aplicação de forma mais rápida e eficiente?** Mergulhe em nossa documentação para começar a usar o Intlayer hoje mesmo. Experimente uma abordagem robusta e simplificada para internacionalização que mantém seu conteúdo organizado e sua equipe mais produtiva.
|
|
220
|
-
|
|
221
|
-
---
|
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-22
|
|
3
|
+
updatedAt: 2025-09-23
|
|
4
|
+
title: Nova Intlayer v7 - O que há de novo?
|
|
5
|
+
description: Descubra as novidades da Intlayer v7. Grandes melhorias em desempenho, experiência do desenvolvedor e novos recursos para aprimorar seu fluxo de trabalho de internacionalização.
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- Localização
|
|
9
|
+
- Desenvolvimento
|
|
10
|
+
- Desempenho
|
|
11
|
+
- Experiência do Desenvolvedor
|
|
12
|
+
- Recursos
|
|
13
|
+
- React
|
|
14
|
+
- Next.js
|
|
15
|
+
- JavaScript
|
|
16
|
+
- TypeScript
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- releases
|
|
20
|
+
- v7
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Nova Intlayer v7 - O que há de novo?
|
|
24
|
+
|
|
25
|
+
Bem-vindo à Intlayer v7! Esta grande versão traz melhorias significativas em desempenho, segurança de tipos e experiência do desenvolvedor. Abaixo estão os destaques, com notas de migração e exemplos práticos.
|
|
26
|
+
|
|
27
|
+
## Destaques
|
|
28
|
+
|
|
29
|
+
- Estratégia de cache para builds mais rápidos
|
|
30
|
+
- Geração aprimorada de tipos TypeScript com tipos específicos por localidade
|
|
31
|
+
- Otimização do pacote: Localidades como strings em vez de enum
|
|
32
|
+
- Novos modos de roteamento: `prefix-no-default`, `prefix-all`, `no-prefix`, `search-params`
|
|
33
|
+
- Armazenamento de localidade compatível com GDPR usando localStorage como padrão
|
|
34
|
+
- Configuração flexível de armazenamento: cookies, localStorage, sessionStorage ou múltiplos
|
|
35
|
+
- Pacote do Visual Editor 30% menor
|
|
36
|
+
- Opções aprimoradas de configuração de middleware
|
|
37
|
+
- Comportamento atualizado do comando fill para melhor gerenciamento de conteúdo
|
|
38
|
+
- Estabilidade aprimorada com atualizações completas dos arquivos de declaração de conteúdo
|
|
39
|
+
- Gerenciamento inteligente de tentativas para maior precisão na tradução
|
|
40
|
+
- Paralelização para processamento de tradução mais rápido
|
|
41
|
+
- Divisão inteligente para lidar com arquivos grandes dentro dos limites de contexto da IA
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Desempenho: Cache para builds mais rápidos
|
|
46
|
+
|
|
47
|
+
Em vez de reconstruir as declarações de conteúdo com esbuild a cada build, a versão 7 implementa uma estratégia de cache que acelera o processo de build.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx intlayer build
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
O novo sistema de cache:
|
|
54
|
+
|
|
55
|
+
- Armazena declarações de conteúdo compiladas para evitar processamento redundante
|
|
56
|
+
- Detecta alterações e reconstrói apenas os arquivos modificados
|
|
57
|
+
- Reduz significativamente o tempo de build em projetos grandes
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## TypeScript: Geração de tipos específicos por localidade
|
|
62
|
+
|
|
63
|
+
Os tipos TypeScript agora são gerados por localidade, proporcionando tipagem mais forte e eliminando tipos união entre todas as localidades.
|
|
64
|
+
|
|
65
|
+
**Comportamento na v6:**
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
const content = getIntlayer("my-title-content", "en");
|
|
69
|
+
// typeof content = { title: "My title" } | { title: "Mon titre" } | { title: "Mi título" }
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Comportamento na v7:**
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
const content = getIntlayer("my-title-content", "en");
|
|
76
|
+
// typeof content = { title: "Meu título" }
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Benefícios:
|
|
80
|
+
|
|
81
|
+
- Autocompletar mais preciso no seu IDE
|
|
82
|
+
- Melhor segurança de tipos sem poluição entre localidades
|
|
83
|
+
- Desempenho aprimorado ao reduzir a complexidade dos tipos
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Otimização do bundle: Locales como strings
|
|
88
|
+
|
|
89
|
+
O tipo `Locales` não é mais um enum, o que significa que agora é totalmente tree-shakeable e não vai inflar seu bundle com milhares de registros de localidades não usados.
|
|
90
|
+
|
|
91
|
+
**v6:**
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
import { Locales } from "intlayer";
|
|
95
|
+
// Enum incluindo todas as localidades -> não é tree-shakeable
|
|
96
|
+
|
|
97
|
+
const locale: Locales = Locales.ENGLISH;
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**v7:**
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import { Locales, Locale } from "intlayer";
|
|
104
|
+
// Tipo string -> totalmente tree-shakeable
|
|
105
|
+
|
|
106
|
+
const locale: Locale = Locales.ENGLISH;
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
> Como `Locales` não é mais um enum, você terá que mudar o tipo de `Locales` para `Locale` para obter a localidade como um tipo.
|
|
110
|
+
|
|
111
|
+
Veja os [detalhes da implementação](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts) para mais informações.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Novos modos de roteamento para maior flexibilidade
|
|
116
|
+
|
|
117
|
+
A versão 7 introduz uma configuração unificada `routing.mode` que substitui as opções anteriores `prefixDefault` e `noPrefix`, oferecendo um controle mais granular sobre a estrutura da URL.
|
|
118
|
+
|
|
119
|
+
### Modos de roteamento disponíveis
|
|
120
|
+
|
|
121
|
+
- **`prefix-no-default`** (padrão): A localidade padrão não tem prefixo, as outras localidades têm
|
|
122
|
+
- `/dashboard` (en) ou `/fr/dashboard` (fr)
|
|
123
|
+
- **`prefix-all`**: Todas as localidades têm prefixo
|
|
124
|
+
- `/en/dashboard` (en) ou `/fr/dashboard` (fr)
|
|
125
|
+
- **`no-prefix`**: Sem prefixos de localidade nas URLs (localidade gerenciada via armazenamento/cabeçalhos)
|
|
126
|
+
- `/dashboard` para todas as localidades
|
|
127
|
+
- **`search-params`**: Localidade passada como parâmetro de consulta
|
|
128
|
+
- `/dashboard?locale=en` ou `/dashboard?locale=fr`
|
|
129
|
+
|
|
130
|
+
### Configuração básica
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
// intlayer.config.ts
|
|
134
|
+
export default {
|
|
135
|
+
internationalization: {
|
|
136
|
+
locales: ["en", "fr", "es"],
|
|
137
|
+
defaultLocale: "en",
|
|
138
|
+
},
|
|
139
|
+
routing: {
|
|
140
|
+
mode: "prefix-no-default", // padrão
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Conformidade com GDPR: armazenamento localStorage / cookies
|
|
148
|
+
|
|
149
|
+
A versão 7 prioriza a privacidade do usuário utilizando `localStorage` como mecanismo de armazenamento padrão em vez de cookies. Essa mudança ajuda na conformidade com o GDPR ao evitar a necessidade de consentimento para cookies relacionados às preferências de localidade.
|
|
150
|
+
|
|
151
|
+
### Opções de configuração de armazenamento
|
|
152
|
+
|
|
153
|
+
O novo campo `routing.storage` também está disponível além das opções anteriores `middleware.cookieName` e `middleware.serverSetCookie`, oferecendo configurações flexíveis de armazenamento:
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
// Desabilitar armazenamento
|
|
157
|
+
storage: false
|
|
158
|
+
|
|
159
|
+
// Tipos simples de armazenamento
|
|
160
|
+
storage: 'cookie'
|
|
161
|
+
storage: 'localStorage'
|
|
162
|
+
storage: 'sessionStorage'
|
|
163
|
+
|
|
164
|
+
// Cookie com atributos personalizados
|
|
165
|
+
storage: {
|
|
166
|
+
type: 'cookie',
|
|
167
|
+
name: 'custom-locale',
|
|
168
|
+
domain: '.example.com',
|
|
169
|
+
secure: true,
|
|
170
|
+
sameSite: 'strict'
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// localStorage com chave personalizada
|
|
174
|
+
storage: {
|
|
175
|
+
type: 'localStorage',
|
|
176
|
+
name: 'custom-locale'
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Múltiplos tipos de armazenamento para redundância
|
|
180
|
+
storage: ['cookie', 'localStorage']
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Exemplo de configuração compatível com GDPR
|
|
184
|
+
|
|
185
|
+
Para aplicações em produção que precisam equilibrar funcionalidade com conformidade GDPR:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
// intlayer.config.ts
|
|
189
|
+
export default {
|
|
190
|
+
internationalization: {
|
|
191
|
+
locales: ["en", "fr", "es"],
|
|
192
|
+
defaultLocale: "en",
|
|
193
|
+
},
|
|
194
|
+
routing: {
|
|
195
|
+
mode: "prefix-no-default",
|
|
196
|
+
storage: [
|
|
197
|
+
{
|
|
198
|
+
type: "localStorage", // Armazenamento principal (não requer consentimento)
|
|
199
|
+
name: "user-locale",
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
type: "cookie", // Armazenamento opcional em cookie (requer consentimento)
|
|
203
|
+
name: "user-locale",
|
|
204
|
+
secure: true,
|
|
205
|
+
sameSite: "strict",
|
|
206
|
+
httpOnly: false,
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Ativar / desativar o armazenamento em cookie
|
|
214
|
+
|
|
215
|
+
Exemplo usando React / Next.js:
|
|
216
|
+
|
|
217
|
+
Pode ser definido globalmente:
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
<IntlayerProvider isCookieEnabled={false}>
|
|
221
|
+
<App />
|
|
222
|
+
</IntlayerProvider>
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Pode ser sobrescrito localmente para cada hook:
|
|
226
|
+
|
|
227
|
+
```ts
|
|
228
|
+
const { setLocale } = useLocale({ isCookieEnabled: false });
|
|
229
|
+
|
|
230
|
+
setLocale("en");
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**Nota:** Os cookies estão ativados por padrão.
|
|
234
|
+
**Nota:** Verifique os [requisitos de cookies do GDPR](https://gdpr.eu/cookies/) para o seu caso específico.
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Editor Visual: pacote 30% menor
|
|
239
|
+
|
|
240
|
+
O pacote do Editor Visual foi otimizado para ser 30% menor que a versão anterior, graças a:
|
|
241
|
+
|
|
242
|
+
- Melhorias no desempenho do editor de código
|
|
243
|
+
- Remoção de dependências desnecessárias dos pacotes principais do Intlayer
|
|
244
|
+
- Melhor tree-shaking e empacotamento de módulos
|
|
245
|
+
|
|
246
|
+
Isso resulta em tempos de download mais rápidos e melhor desempenho em tempo de execução para sua aplicação.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Comando fill: comportamento atualizado para melhor gerenciamento de conteúdo
|
|
251
|
+
|
|
252
|
+
A versão 7 introduz um comportamento aprimorado para o comando `fill`, proporcionando um gerenciamento de conteúdo mais previsível e flexível:
|
|
253
|
+
|
|
254
|
+
### Novo comportamento do fill
|
|
255
|
+
|
|
256
|
+
- **`fill: true`** - Reescreve o arquivo atual com o conteúdo preenchido para todos os idiomas
|
|
257
|
+
- **`fill: "path/to/file"`** - Preenche o arquivo especificado sem modificar o arquivo atual
|
|
258
|
+
- **`fill: false`** - Desativa completamente o auto-fill
|
|
259
|
+
|
|
260
|
+
### Suporte aprimorado para estruturas de conteúdo complexas
|
|
261
|
+
|
|
262
|
+
O comando fill agora suporta estruturas complexas de declaração de conteúdo, incluindo:
|
|
263
|
+
|
|
264
|
+
- **Objetos compostos**: Declarações de conteúdo que referenciam outros objetos
|
|
265
|
+
- **Conteúdo desestruturado**: Conteúdo que usa padrões de desestruturação
|
|
266
|
+
- **Referências aninhadas**: Objetos que se chamam mutuamente em hierarquias complexas
|
|
267
|
+
- **Estruturas de conteúdo dinâmicas**: Conteúdo com propriedades condicionais ou computadas
|
|
268
|
+
|
|
269
|
+
### Benefícios
|
|
270
|
+
|
|
271
|
+
- **Intenção mais clara**: O comportamento agora é mais explícito sobre o que é modificado
|
|
272
|
+
- **Melhor separação**: Os arquivos de conteúdo podem ser mantidos separados das traduções preenchidas
|
|
273
|
+
- **Fluxo de trabalho aprimorado**: Os desenvolvedores têm mais controle sobre onde as traduções são armazenadas
|
|
274
|
+
- **Suporte a estruturas complexas**: Lida com arquiteturas de conteúdo sofisticadas com múltiplos objetos interconectados
|
|
275
|
+
|
|
276
|
+
### Exemplo de uso
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
// Reescreve o arquivo atual com todos os idiomas
|
|
280
|
+
const content = {
|
|
281
|
+
key: "example",
|
|
282
|
+
fill: true, // Reescreve este arquivo
|
|
283
|
+
content: {
|
|
284
|
+
title: "Hello World",
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
// Preenche arquivo separado sem modificar o arquivo atual
|
|
289
|
+
const content = {
|
|
290
|
+
key: "example",
|
|
291
|
+
fill: "./translations.json", // Cria/atualiza translations.json
|
|
292
|
+
content: {
|
|
293
|
+
title: "Hello World",
|
|
294
|
+
},
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// Desabilita o preenchimento automático
|
|
298
|
+
const content = {
|
|
299
|
+
key: "example",
|
|
300
|
+
fill: false, // Sem preenchimento automático
|
|
301
|
+
content: {
|
|
302
|
+
title: "Hello World",
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
// Estrutura complexa de conteúdo com objetos compostos
|
|
307
|
+
const sharedContent = {
|
|
308
|
+
buttons: {
|
|
309
|
+
save: "Salvar",
|
|
310
|
+
cancel: "Cancelar",
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
const content = {
|
|
315
|
+
key: "complex-example",
|
|
316
|
+
fill: true,
|
|
317
|
+
content: {
|
|
318
|
+
// Referências a outros objetos
|
|
319
|
+
sharedContent,
|
|
320
|
+
|
|
321
|
+
// Conteúdo desestruturado
|
|
322
|
+
...sharedContent,
|
|
323
|
+
|
|
324
|
+
// Referências aninhadas
|
|
325
|
+
sections: [
|
|
326
|
+
{
|
|
327
|
+
...sharedContent.buttons,
|
|
328
|
+
header: "Seção 1",
|
|
329
|
+
},
|
|
330
|
+
],
|
|
331
|
+
},
|
|
332
|
+
};
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Estabilidade aprimorada e gerenciamento de tradução
|
|
338
|
+
|
|
339
|
+
A versão 7 introduz várias melhorias para tornar a tradução de conteúdo mais confiável e eficiente:
|
|
340
|
+
|
|
341
|
+
### Atualizações completas dos arquivos de declaração de conteúdo
|
|
342
|
+
|
|
343
|
+
O sistema agora atualiza arquivos `.content.{ts,js,cjs,mjs}` em vez de atualizações parciais, garantindo:
|
|
344
|
+
|
|
345
|
+
- **Integridade dos dados**: Reescritas completas dos arquivos evitam atualizações parciais que poderiam corromper o conteúdo
|
|
346
|
+
- **Consistência**: Todos os locais são atualizados de forma atômica, mantendo a sincronização
|
|
347
|
+
- **Confiabilidade**: Reduz o risco de arquivos de conteúdo incompletos ou malformados
|
|
348
|
+
|
|
349
|
+
### Gerenciamento inteligente de tentativas
|
|
350
|
+
|
|
351
|
+
Novos mecanismos de retentativa evitam o envio de conteúdo em formatos incorretos e impedem que todo o processo de preenchimento seja interrompido se uma requisição falhar.
|
|
352
|
+
|
|
353
|
+
### Paralelização para processamento mais rápido
|
|
354
|
+
|
|
355
|
+
As operações de tradução agora são executadas em uma fila para rodar em paralelo. Isso acelera significativamente o processo.
|
|
356
|
+
|
|
357
|
+
### Divisão inteligente para arquivos grandes
|
|
358
|
+
|
|
359
|
+
Estratégias avançadas de divisão lidam com arquivos de conteúdo grandes sem exceder as janelas de contexto da IA:
|
|
360
|
+
|
|
361
|
+
### Exemplo de fluxo de trabalho
|
|
362
|
+
|
|
363
|
+
```typescript
|
|
364
|
+
// Arquivo de conteúdo grande é automaticamente dividido
|
|
365
|
+
const content = {
|
|
366
|
+
key: "large-documentation",
|
|
367
|
+
fill: true,
|
|
368
|
+
content: {
|
|
369
|
+
// Conteúdo grande automaticamente dividido para processamento pela IA
|
|
370
|
+
introduction: "..." // mais de 5000 caracteres
|
|
371
|
+
sections: [
|
|
372
|
+
// Múltiplas seções grandes
|
|
373
|
+
]
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
O sistema automaticamente:
|
|
379
|
+
|
|
380
|
+
1. Analisa o tamanho e a estrutura do conteúdo
|
|
381
|
+
2. Divide o conteúdo apropriadamente
|
|
382
|
+
3. Processa os pedaços em paralelo
|
|
383
|
+
4. Valida e tenta novamente se necessário
|
|
384
|
+
5. Reconstrói o arquivo completo
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Notas de migração da versão 6
|
|
389
|
+
|
|
390
|
+
### Configurações removidas
|
|
391
|
+
|
|
392
|
+
- **`middleware.cookieName`**: Substituído por `routing.storage`
|
|
393
|
+
- **`middleware.serverSetCookie`**: Substituído por `routing.storage`
|
|
394
|
+
- **`middleware.prefixDefault`**: Substituído por `routing.mode`
|
|
395
|
+
- **`middleware.noPrefix`**: Substituído por `routing.mode`
|
|
396
|
+
|
|
397
|
+
### Mapeamento de migração
|
|
398
|
+
|
|
399
|
+
#### Mapeamento de configuração
|
|
400
|
+
|
|
401
|
+
| Configuração v6 | Configuração v7 |
|
|
402
|
+
| -------------------------- | -------------------------------------------------------------- |
|
|
403
|
+
| `autoFill: xxx` | `fill: xxx` |
|
|
404
|
+
| `prefixDefault: false` | `mode: 'prefix-no-default'` |
|
|
405
|
+
| `prefixDefault: true` | `mode: 'prefix-all'` |
|
|
406
|
+
| `noPrefix: true` | `mode: 'no-prefix'` |
|
|
407
|
+
| `cookieName: 'my-locale'` | `storage: { type: 'cookie', name: 'my-locale' }` |
|
|
408
|
+
| `serverSetCookie: 'never'` | `storage: false` ou remover o cookie do array de armazenamento |
|
|
409
|
+
|
|
410
|
+
#### Exemplo de migração
|
|
411
|
+
|
|
412
|
+
**Antes (v6):**
|
|
413
|
+
|
|
414
|
+
```typescript
|
|
415
|
+
export default {
|
|
416
|
+
middleware: {
|
|
417
|
+
headerName: "x-intlayer-locale",
|
|
418
|
+
cookieName: "intlayer-locale",
|
|
419
|
+
prefixDefault: false,
|
|
420
|
+
basePath: "",
|
|
421
|
+
serverSetCookie: "always",
|
|
422
|
+
noPrefix: false,
|
|
423
|
+
},
|
|
424
|
+
};
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
**Depois (v7):**
|
|
428
|
+
|
|
429
|
+
```typescript
|
|
430
|
+
export default {
|
|
431
|
+
routing: {
|
|
432
|
+
mode: "prefix-no-default",
|
|
433
|
+
storage: "localStorage", // ou 'cookie' se precisar de armazenamento via cookie
|
|
434
|
+
headerName: "x-intlayer-locale",
|
|
435
|
+
basePath: "",
|
|
436
|
+
detectLocaleOnPrefetchNoPrefix: false,
|
|
437
|
+
},
|
|
438
|
+
};
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
#### Mapeamento do conteúdo do dicionário
|
|
442
|
+
|
|
443
|
+
| Conteúdo do dicionário v6 | Conteúdo do dicionário v7 |
|
|
444
|
+
| ------------------------- | ------------------------- |
|
|
445
|
+
| `autoFill: xxx` | `fill: xxx` |
|
|
446
|
+
|
|
447
|
+
#### Exemplo de migração
|
|
448
|
+
|
|
449
|
+
**Antes (v6):**
|
|
450
|
+
|
|
451
|
+
```typescript
|
|
452
|
+
const content = {
|
|
453
|
+
key: "example",
|
|
454
|
+
autoFill: true, // Reescreve este arquivo
|
|
455
|
+
content: {
|
|
456
|
+
title: "Olá Mundo",
|
|
457
|
+
},
|
|
458
|
+
};
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
**Depois (v7):**
|
|
462
|
+
|
|
463
|
+
```typescript
|
|
464
|
+
const content = {
|
|
465
|
+
key: "example",
|
|
466
|
+
fill: true, // Reescreve este arquivo
|
|
467
|
+
content: {
|
|
468
|
+
title: "Olá Mundo",
|
|
469
|
+
},
|
|
470
|
+
};
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Notas de migração do v5 para o v6
|
|
476
|
+
|
|
477
|
+
Consulte as [notas de migração do v5 para o v6](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/releases/v6.md) para mais informações.
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## Links úteis
|
|
482
|
+
|
|
483
|
+
- [Referência de Configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md)
|
|
484
|
+
- [Documentação do Middleware](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/next-intlayer/index.md)
|
|
485
|
+
- [Tipos TypeScript](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts)
|
|
486
|
+
- [Diretrizes de Cookies GDPR](https://gdpr.eu/cookies/)
|