@intlayer/docs 8.1.5 → 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.
- package/README.md +18 -9
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/compiler.md +26 -0
- package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ar/readme.md +138 -110
- package/docs/de/compiler.md +26 -0
- package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/de/readme.md +152 -124
- package/docs/en/compiler.md +27 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
- package/docs/en/readme.md +129 -105
- package/docs/en-GB/compiler.md +26 -0
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/en-GB/readme.md +134 -108
- package/docs/es/compiler.md +26 -0
- package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/es/readme.md +149 -121
- package/docs/fr/compiler.md +26 -0
- package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/fr/readme.md +150 -122
- package/docs/hi/compiler.md +26 -0
- package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
- package/docs/hi/readme.md +153 -125
- package/docs/id/compiler.md +26 -0
- package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/id/readme.md +133 -105
- package/docs/it/compiler.md +26 -0
- package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/it/readme.md +155 -127
- package/docs/ja/compiler.md +26 -0
- package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ja/readme.md +152 -126
- package/docs/ko/compiler.md +26 -0
- package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ko/readme.md +154 -126
- package/docs/pl/compiler.md +26 -0
- package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/pl/readme.md +134 -106
- package/docs/pt/compiler.md +27 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/pt/readme.md +154 -126
- package/docs/ru/compiler.md +26 -0
- package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ru/readme.md +137 -109
- package/docs/tr/compiler.md +26 -0
- package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
- package/docs/tr/readme.md +139 -111
- package/docs/uk/compiler.md +26 -0
- package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/uk/readme.md +133 -109
- package/docs/vi/compiler.md +27 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/vi/readme.md +138 -110
- package/docs/zh/compiler.md +26 -0
- package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
- package/docs/zh/readme.md +148 -120
- package/package.json +7 -8
- 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).
|