@intlayer/docs 8.1.6 → 8.1.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 (81) hide show
  1. package/README.md +18 -9
  2. package/dist/cjs/generated/docs.entry.cjs +1 -1
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +1 -1
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +2 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/compiler.md +26 -0
  9. package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
  10. package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
  11. package/docs/ar/readme.md +138 -110
  12. package/docs/de/compiler.md +26 -0
  13. package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
  14. package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
  15. package/docs/de/readme.md +152 -124
  16. package/docs/en/compiler.md +27 -0
  17. package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
  18. package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
  19. package/docs/en/readme.md +129 -105
  20. package/docs/en-GB/compiler.md +26 -0
  21. package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
  22. package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
  23. package/docs/en-GB/readme.md +134 -108
  24. package/docs/es/compiler.md +26 -0
  25. package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
  26. package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
  27. package/docs/es/readme.md +149 -121
  28. package/docs/fr/compiler.md +26 -0
  29. package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
  30. package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
  31. package/docs/fr/readme.md +150 -122
  32. package/docs/hi/compiler.md +26 -0
  33. package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
  34. package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
  35. package/docs/hi/readme.md +153 -125
  36. package/docs/id/compiler.md +26 -0
  37. package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
  38. package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
  39. package/docs/id/readme.md +133 -105
  40. package/docs/it/compiler.md +26 -0
  41. package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
  42. package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
  43. package/docs/it/readme.md +155 -127
  44. package/docs/ja/compiler.md +26 -0
  45. package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
  46. package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
  47. package/docs/ja/readme.md +152 -126
  48. package/docs/ko/compiler.md +26 -0
  49. package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
  50. package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
  51. package/docs/ko/readme.md +154 -126
  52. package/docs/pl/compiler.md +26 -0
  53. package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
  54. package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
  55. package/docs/pl/readme.md +134 -106
  56. package/docs/pt/compiler.md +27 -1
  57. package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
  58. package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
  59. package/docs/pt/readme.md +154 -126
  60. package/docs/ru/compiler.md +26 -0
  61. package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
  62. package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
  63. package/docs/ru/readme.md +137 -109
  64. package/docs/tr/compiler.md +26 -0
  65. package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
  66. package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
  67. package/docs/tr/readme.md +139 -111
  68. package/docs/uk/compiler.md +26 -0
  69. package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
  70. package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
  71. package/docs/uk/readme.md +133 -109
  72. package/docs/vi/compiler.md +27 -1
  73. package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
  74. package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
  75. package/docs/vi/readme.md +138 -110
  76. package/docs/zh/compiler.md +26 -0
  77. package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
  78. package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
  79. package/docs/zh/readme.md +148 -120
  80. package/package.json +7 -8
  81. package/src/generated/docs.entry.ts +40 -0
@@ -0,0 +1,374 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-12-30
4
+ title: Vite e React i18n - Transforme uma aplicação existente em uma aplicação multilíngue (guia i18n 2026)
5
+ description: Descubra como tornar sua aplicação Vite e React existente multilíngue usando o Compilador Intlayer. Siga a documentação para internacionalização (i18n) e traduza-a com IA.
6
+ keywords:
7
+ - Internacionalização
8
+ - Documentação
9
+ - Intlayer
10
+ - Vite
11
+ - React
12
+ - Compilador
13
+ - IA
14
+ slugs:
15
+ - doc
16
+ - ambiente
17
+ - vite-e-react
18
+ - compilador
19
+ - IA
20
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
21
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
22
+ history:
23
+ - version: 8.1.6
24
+ date: 2026-02-23
25
+ changes: Lançamento inicial
26
+ ---
27
+
28
+ # Como tornar multilíngue (i18n) uma aplicação Vite e React existente depois de pronta (guia i18n 2026)
29
+
30
+ <Tabs defaultTab="video">
31
+ <Tab label="Vídeo" value="video">
32
+
33
+ <iframe title="A melhor solução i18n para Vite e React? Descubra o Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
34
+
35
+ </Tab>
36
+ <Tab label="Código" value="code">
37
+
38
+ <iframe
39
+ src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
40
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
41
+ title="Demo CodeSandbox - Como internacionalizar sua aplicação usando o Intlayer"
42
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
43
+ loading="lazy"
44
+ />
45
+
46
+ </Tab>
47
+ </Tabs>
48
+
49
+ Veja o [Modelo de Aplicação](https://github.com/aymericzip/intlayer-vite-react-template) no GitHub.
50
+
51
+ ## Índice
52
+
53
+ <TOC/>
54
+
55
+ ## Por que é difícil internacionalizar uma aplicação existente?
56
+
57
+ Se você já tentou adicionar vários idiomas a um app que foi construído para apenas um, você conhece a dor. Não é apenas "difícil" — é tedioso. Você tem que vasculhar cada arquivo, caçar cada string de texto e movê-las para arquivos de dicionário separados.
58
+
59
+ Depois vem a parte arriscada: substituir todo esse texto por hooks de código sem quebrar o layout ou a lógica. É o tipo di trabalho que interrompe o desenvolvimento de novas funcionalidades por semanas e parece uma refatoração interminável.
60
+
61
+ ## O que é o Compilador Intlayer?
62
+
63
+ O **Compilador Intlayer** foi criado para pular esse trabalho braçal manual. Em vez de você extrair strings manualmente, o compilador faz isso por você. Ele escaneia seu código, encontra o texto e usa IA para gerar os dicionários nos bastidores.
64
+ Depois, ele modifica seu código durante o build para injetar os hooks de i18n necessários. Basicamente, você continua escrevendo seu app como se fosse de um único idioma, e o compilador cuida da transformação multilíngue automaticamente.
65
+
66
+ > Doc Compilador: [https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/compiler.md](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/compiler.md)
67
+
68
+ ### Limitações
69
+
70
+ Como o compilador realiza análise e transformação de código (inserindo hooks e gerando dicionários) em **tempo de compilação**, ele pode **reduzir a velocidade do processo di build** da sua aplicação.
71
+
72
+ Para mitigar esse impacto durante o desenvolvimento, você pode configurar o compilador para rodar no modo [`'build-only'`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md) ou desativá-lo quando não for necessário.
73
+
74
+ ---
75
+
76
+ ## Guia Passo a Passo para Configurar o Intlayer em uma Aplicação Vite e React
77
+
78
+ ### Passo 1: Instalar Dependências
79
+
80
+ Instale os pacotes necessários usando npm:
81
+
82
+ ```bash packageManager="npm"
83
+ npm install intlayer react-intlayer
84
+ npm install vite-intlayer --save-dev
85
+ npx intlayer init
86
+ ```
87
+
88
+ ```bash packageManager="pnpm"
89
+ pnpm add intlayer react-intlayer
90
+ pnpm add vite-intlayer --save-dev
91
+ pnpm intlayer init
92
+ ```
93
+
94
+ ```bash packageManager="yarn"
95
+ yarn add intlayer react-intlayer
96
+ yarn add vite-intlayer --save-dev
97
+ yarn intlayer init
98
+ ```
99
+
100
+ ```bash packageManager="bun"
101
+ bun add intlayer react-intlayer
102
+ bun add vite-intlayer --dev
103
+ bunx intlayer init
104
+ ```
105
+
106
+ - **intlayer**
107
+ O pacote principal que fornece ferramentas de internacionalização para gerenciamento de configuração, tradução, [declaração de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilação e [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
108
+
109
+ - **react-intlayer**
110
+ O pacote que integra o Intlayer com a aplicação React. Ele fornece provedores de contexto e hooks para internacionalização no React.
111
+
112
+ - **vite-intlayer**
113
+ Inclui o plugin Vite para integrar o Intlayer com o [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), bem como middleware para detectar o idioma preferido do usuário, gerenciar cookies e lidar com redirecionamento de URL.
114
+
115
+ ### Passo 2: Configurar Seu Projeto
116
+
117
+ Crie um arquivo de configuração para configurar os idiomas da sua aplicação:
118
+
119
+ ```typescript fileName="intlayer.config.ts"
120
+ import { Locales, type IntlayerConfig } from "intlayer";
121
+
122
+ const config: IntlayerConfig = {
123
+ internationalization: {
124
+ locales: [
125
+ Locales.ENGLISH,
126
+ Locales.FRENCH,
127
+ Locales.SPANISH,
128
+ Locales.PORTUGUESE,
129
+ ],
130
+ defaultLocale: Locales.ENGLISH,
131
+ },
132
+ compiler: {
133
+ enabled: true, // Pode ser definido como 'build-only' para limitar o impacto no modo dev
134
+ outputDir: "i18n",
135
+ dictionaryKeyPrefix: "", // Sem prefixo comp-
136
+ },
137
+ ai: {
138
+ provider: "openai",
139
+ model: "gpt-5-mini",
140
+ apiKey: process.env.OPEN_AI_API_KEY,
141
+ applicationContext: "Este é um app de mapas", // Nota: você pode personalizar esta descrição do app
142
+ },
143
+ };
144
+
145
+ export default config;
146
+ ```
147
+
148
+ > **Nota**: Certifique-se de ter sua `OPEN_AI_API_KEY` definida em suas variáveis de ambiente.
149
+
150
+ > Através deste arquivo de configuração, você pode configurar URLs localizadas, redirecionamento de middleware, nomes de cookies, a localização e extensão das suas declarações de conteúdo, desativar logs do Intlayer no console e muito mais. Para uma lista completa de parâmetros disponíveis, consulte a [documentação de configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md).
151
+
152
+ ### Passo 3: Integrar o Intlayer na sua Configuração do Vite
153
+
154
+ Adicione o plugin intlayer na sua configuração.
155
+
156
+ ```typescript fileName="vite.config.ts"
157
+ import { defineConfig } from "vite";
158
+ import react from "@vitejs/plugin-react-swc";
159
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
160
+
161
+ // https://vitejs.dev/config/
162
+ export default defineConfig({
163
+ plugins: [react(), intlayer(), intlayerCompiler()],
164
+ });
165
+ ```
166
+
167
+ > O plugin Vite `intlayer()` é usado para integrar o Intlayer com o Vite. Ele garante a construção dos arquivos de declaração de conteúdo e os monitora no modo de desenvolvimento. Ele define variáveis de ambiente do Intlayer dentro da aplicação Vite. Além disso, fornece aliases para otimizar o desempenho.
168
+
169
+ > O plugin Vite `intlayerCompiler()` é usado para extrair conteúdo do componente e escrever os arquivos `.content`.
170
+
171
+ ### Passo 4: Compilar seu código
172
+
173
+ Basta escrever seus componentes com strings hardcoded no seu idioma padrão. O compilador cuida do resto.
174
+
175
+ Exemplo de como sua página pode ficar:
176
+
177
+ <Tabs>
178
+ <Tab value="Código">
179
+
180
+ ```tsx fileName="src/App.tsx"
181
+ import { useState, type FC } from "react";
182
+ import reactLogo from "./assets/react.svg";
183
+ import viteLogo from "/vite.svg";
184
+ import "./App.css";
185
+ import { IntlayerProvider } from "react-intlayer";
186
+
187
+ const AppContent: FC = () => {
188
+ const [count, setCount] = useState(0);
189
+
190
+ return (
191
+ <>
192
+ <div>
193
+ <a href="https://vitejs.dev" target="_blank">
194
+ <img src={viteLogo} className="logo" alt="Logo Vite" />
195
+ </a>
196
+ <a href="https://react.dev" target="_blank">
197
+ <img src={reactLogo} className="logo react" alt="Logo React" />
198
+ </a>
199
+ </div>
200
+ <h1>Vite + React</h1>
201
+ <div className="card">
202
+ <button onClick={() => setCount((count) => count + 1)}>
203
+ a contagem é {count}
204
+ </button>
205
+ <p>
206
+ Edite <code>src/App.tsx</code> e salve para testar HMR
207
+ </p>
208
+ </div>
209
+ <p className="read-the-docs">
210
+ Clique nos logos do Vite e React para saber mais
211
+ </p>
212
+ </>
213
+ );
214
+ };
215
+
216
+ const App: FC = () => (
217
+ <IntlayerProvider>
218
+ <AppContent />
219
+ </IntlayerProvider>
220
+ );
221
+
222
+ export default App;
223
+ ```
224
+
225
+ </Tab>
226
+ <Tab value="Saída">
227
+
228
+ ```ts fileName="i18n/app-content.content.json"
229
+ {
230
+ key: "app-content",
231
+ content: {
232
+ nodeType: "translation",
233
+ translation: {
234
+ en: {
235
+ viteLogo: "Vite logo",
236
+ reactLogo: "React logo",
237
+ title: "Vite + React",
238
+ countButton: "count is",
239
+ editMessage: "Edit",
240
+ hmrMessage: "and save to test HMR",
241
+ readTheDocs: "Click on the Vite and React logos to learn more",
242
+ },
243
+ pt: {
244
+ viteLogo: "Logo Vite",
245
+ reactLogo: "Logo React",
246
+ title: "Vite + React",
247
+ countButton: "a contagem é",
248
+ editMessage: "Editar",
249
+ hmrMessage: "e salve para testar HMR",
250
+ readTheDocs: "Clique nos logos do Vite e React para saber mais",
251
+ },
252
+ }
253
+ }
254
+ }
255
+ ```
256
+
257
+ ```tsx fileName="src/App.tsx"
258
+ import { useState, type FC } from "react";
259
+ import reactLogo from "./assets/react.svg";
260
+ import viteLogo from "/vite.svg";
261
+ import "./App.css";
262
+ import { IntlayerProvider, useIntlayer } from "react-intlayer";
263
+
264
+ const AppContent: FC = () => {
265
+ const [count, setCount] = useState(0);
266
+ const content = useIntlayer("app-content");
267
+
268
+ return (
269
+ <>
270
+ <div>
271
+ <a href="https://vitejs.dev" target="_blank">
272
+ <img src={viteLogo} className="logo" alt={content.viteLogo.value} />
273
+ </a>
274
+ <a href="https://react.dev" target="_blank">
275
+ <img
276
+ src={reactLogo}
277
+ className="logo react"
278
+ alt={content.reactLogo.value}
279
+ />
280
+ </a>
281
+ </div>
282
+ <h1>{content.title}</h1>
283
+ <div className="card">
284
+ <button onClick={() => setCount((count) => count + 1)}>
285
+ {content.countButton} {count}
286
+ </button>
287
+ <p>
288
+ {content.editMessage} <code>src/App.tsx</code> {content.hmrMessage}
289
+ </p>
290
+ </div>
291
+ <p className="read-the-docs">{content.readTheDocs}</p>
292
+ </>
293
+ );
294
+ };
295
+
296
+ const App: FC = () => (
297
+ <IntlayerProvider>
298
+ <AppContent />
299
+ </IntlayerProvider>
300
+ );
301
+
302
+ export default App;
303
+ ```
304
+
305
+ </Tab>
306
+ </Tabs>
307
+
308
+ - **`IntlayerProvider`** é usado para fornecer o idioma aos componentes aninhados.
309
+
310
+ ### (Opcional) Passo 6: Alterar o idioma do seu conteúdo
311
+
312
+ Para alterar o idioma do seu conteúdo, você pode usar a função `setLocale` fornecida pelo hook `useLocale`. Esta função permite que você defina o idioma da aplicação e atualize o conteúdo adequadamente.
313
+
314
+ ```tsx fileName="src/components/LocaleSwitcher.tsx"
315
+ import type { FC } from "react";
316
+ import { Locales } from "intlayer";
317
+ import { useLocale } from "react-intlayer";
318
+
319
+ const LocaleSwitcher: FC = () => {
320
+ const { setLocale } = useLocale();
321
+
322
+ return (
323
+ <button onClick={() => setLocale(Locales.English)}>
324
+ Alterar idioma para Inglês
325
+ </button>
326
+ );
327
+ };
328
+ ```
329
+
330
+ > Para aprender mais sobre o hook `useLocale`, consulte a [documentação](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md).
331
+
332
+ ### (Opcional) Etapa 7: Preencher traduções ausentes
333
+
334
+ Intlayer fornece uma ferramenta CLI para ajudá-lo a preencher as traduções ausentes. Você pode usar o comando `intlayer` para testar e preencher as traduções ausentes do seu código.
335
+
336
+ ```bash
337
+ npx intlayer test # Testa se há traduções ausentes
338
+ ```
339
+
340
+ ```bash
341
+ npx intlayer fill # Preencher traduções ausentes
342
+ ```
343
+
344
+ > Para mais detalhes, consulte a [documentação da CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/cli/ci.md)
345
+
346
+ ### Configuração do Git
347
+
348
+ É recomendado ignorar os arquivos gerados pelo Intlayer. Isso permite que você evite commitá-los no seu repositório Git.
349
+
350
+ Para fazer isso, você pode adicionar as seguintes instruções ao seu arquivo `.gitignore`:
351
+
352
+ ```plaintext fileName=".gitignore"
353
+ # Ignorar arquivos gerados pelo Intlayer
354
+ .intlayer
355
+ ```
356
+
357
+ ### Extensão do VS Code
358
+
359
+ Para melhorar sua experiência de desenvolvimento com o Intlayer, você pode instalar a **Extensão Oficial do Intlayer para VS Code**.
360
+
361
+ [Instalar a partir do VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
362
+
363
+ Esta extensão fornece:
364
+
365
+ - **Autocompletar** para chaves de tradução.
366
+ - **Detecção de erros em tempo real** para traduções ausentes.
367
+ - **Pré-visualizações inline** do conteúdo traduzido.
368
+ - **Ações rápidas** para criar e atualizar traduções facilmente.
369
+
370
+ Para mais detalhes sobre como usar a extensão, consulte a [documentação da Extensão do Intlayer para VS Code](https://intlayer.org/doc/vs-code-extension).
371
+
372
+ ### Indo Além
373
+
374
+ Para ir além, você pode implementar o [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) ou externalizar seu conteúdo usando o [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).