@intlayer/docs 8.2.4 → 8.3.0-canary.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/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +1 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +1 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +1 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/doc.d.ts +1 -1
- package/dist/types/frequentQuestions.d.ts +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
- package/dist/types/generated/legal.entry.d.ts +1 -1
- package/dist/types/legal.d.ts +1 -1
- package/docs/ar/compiler.md +73 -8
- package/docs/ar/configuration.md +74 -27
- package/docs/ar/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/ar/intlayer_with_tanstack.md +22 -1
- package/docs/ar/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/de/compiler.md +74 -9
- package/docs/de/configuration.md +61 -22
- package/docs/de/intlayer_with_nextjs_compiler.md +12 -4
- package/docs/de/intlayer_with_tanstack.md +22 -1
- package/docs/de/intlayer_with_vite+react_compiler.md +12 -4
- package/docs/en/compiler.md +79 -1
- package/docs/en/configuration.md +50 -9
- package/docs/en/intlayer_with_nextjs_compiler.md +9 -1
- package/docs/en/intlayer_with_tanstack.md +23 -2
- package/docs/en/intlayer_with_vite+react_compiler.md +9 -1
- package/docs/en-GB/compiler.md +72 -6
- package/docs/en-GB/configuration.md +50 -10
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +22 -3
- package/docs/en-GB/intlayer_with_tanstack.md +22 -1
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +22 -3
- package/docs/es/compiler.md +71 -6
- package/docs/es/configuration.md +65 -26
- package/docs/es/intlayer_with_nextjs_compiler.md +9 -1
- package/docs/es/intlayer_with_tanstack.md +22 -1
- package/docs/es/intlayer_with_vite+react_compiler.md +9 -1
- package/docs/fr/compiler.md +69 -4
- package/docs/fr/configuration.md +62 -23
- package/docs/fr/intlayer_with_nextjs_compiler.md +9 -1
- package/docs/fr/intlayer_with_tanstack.md +22 -1
- package/docs/fr/intlayer_with_vite+react_compiler.md +9 -1
- package/docs/hi/compiler.md +74 -9
- package/docs/hi/configuration.md +70 -23
- package/docs/hi/intlayer_with_nextjs_compiler.md +15 -7
- package/docs/hi/intlayer_with_tanstack.md +22 -1
- package/docs/hi/intlayer_with_vite+react_compiler.md +15 -7
- package/docs/id/compiler.md +73 -8
- package/docs/id/configuration.md +67 -20
- package/docs/id/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/id/intlayer_with_tanstack.md +22 -1
- package/docs/id/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/it/compiler.md +73 -8
- package/docs/it/configuration.md +66 -27
- package/docs/it/intlayer_with_nextjs_compiler.md +12 -4
- package/docs/it/intlayer_with_tanstack.md +22 -1
- package/docs/it/intlayer_with_vite+react_compiler.md +12 -4
- package/docs/ja/compiler.md +75 -10
- package/docs/ja/configuration.md +70 -23
- package/docs/ja/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/ja/intlayer_with_tanstack.md +22 -1
- package/docs/ja/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/ko/compiler.md +75 -10
- package/docs/ko/configuration.md +70 -23
- package/docs/ko/intlayer_with_nextjs_compiler.md +22 -3
- package/docs/ko/intlayer_with_tanstack.md +22 -1
- package/docs/ko/intlayer_with_vite+react_compiler.md +22 -3
- package/docs/pl/compiler.md +73 -8
- package/docs/pl/configuration.md +71 -29
- package/docs/pl/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/pl/intlayer_with_tanstack.md +22 -1
- package/docs/pl/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/pt/compiler.md +74 -9
- package/docs/pt/configuration.md +62 -23
- package/docs/pt/intlayer_with_nextjs_compiler.md +12 -4
- package/docs/pt/intlayer_with_tanstack.md +22 -1
- package/docs/pt/intlayer_with_vite+react_compiler.md +12 -4
- package/docs/ru/compiler.md +74 -9
- package/docs/ru/configuration.md +61 -22
- package/docs/ru/intlayer_with_nextjs_compiler.md +11 -3
- package/docs/ru/intlayer_with_tanstack.md +22 -1
- package/docs/ru/intlayer_with_vite+react_compiler.md +11 -3
- package/docs/tr/compiler.md +73 -8
- package/docs/tr/configuration.md +77 -42
- package/docs/tr/intlayer_with_nextjs_compiler.md +11 -3
- package/docs/tr/intlayer_with_tanstack.md +22 -1
- package/docs/tr/intlayer_with_vite+react_compiler.md +11 -3
- package/docs/uk/compiler.md +74 -9
- package/docs/uk/configuration.md +207 -165
- package/docs/uk/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/uk/intlayer_with_tanstack.md +22 -1
- package/docs/uk/intlayer_with_vite+react_compiler.md +13 -5
- package/docs/vi/compiler.md +75 -10
- package/docs/vi/configuration.md +97 -21
- package/docs/vi/intlayer_with_nextjs_compiler.md +14 -6
- package/docs/vi/intlayer_with_tanstack.md +22 -1
- package/docs/vi/intlayer_with_vite+react_compiler.md +14 -6
- package/docs/zh/compiler.md +75 -10
- package/docs/zh/configuration.md +77 -42
- package/docs/zh/intlayer_with_nextjs_compiler.md +13 -5
- package/docs/zh/intlayer_with_tanstack.md +22 -1
- package/docs/zh/intlayer_with_vite+react_compiler.md +13 -5
- package/package.json +17 -17
- package/src/blog.ts +1 -1
- package/src/common.ts +2 -1
- package/src/doc.ts +1 -1
- package/src/frequentQuestions.ts +1 -1
- package/src/generated/blog.entry.ts +1 -1
- package/src/generated/docs.entry.ts +1 -1
- package/src/generated/frequentQuestions.entry.ts +1 -1
- package/src/generated/legal.entry.ts +1 -1
- package/src/legal.ts +1 -1
|
@@ -437,12 +437,33 @@ export const Route = createFileRoute("/{-$locale}/")({
|
|
|
437
437
|
component: RouteComponent,
|
|
438
438
|
head: ({ params }) => {
|
|
439
439
|
const { locale } = params;
|
|
440
|
+
const path = "/"; // The path for this route
|
|
441
|
+
|
|
440
442
|
const metaContent = getIntlayer("app", locale);
|
|
441
443
|
|
|
442
444
|
return {
|
|
445
|
+
links: [
|
|
446
|
+
// Canonical link: Points to the current localized page
|
|
447
|
+
{ rel: "canonical", href: getLocalizedUrl(path, locale) },
|
|
448
|
+
|
|
449
|
+
// Hreflang: Tell Google about all localized versions
|
|
450
|
+
...localeMap(({ locale: mapLocale }) => ({
|
|
451
|
+
rel: "alternate",
|
|
452
|
+
hrefLang: mapLocale,
|
|
453
|
+
href: getLocalizedUrl(path, mapLocale),
|
|
454
|
+
})),
|
|
455
|
+
|
|
456
|
+
// x-default: For users in unmatched languages
|
|
457
|
+
// Define the default fallback locale (usually your primary language)
|
|
458
|
+
{
|
|
459
|
+
rel: "alternate",
|
|
460
|
+
hrefLang: "x-default",
|
|
461
|
+
href: getLocalizedUrl(path, defaultLocale),
|
|
462
|
+
},
|
|
463
|
+
],
|
|
443
464
|
meta: [
|
|
444
465
|
{ title: metaContent.title },
|
|
445
|
-
{ content: metaContent.meta.description
|
|
466
|
+
{ name: "description", content: metaContent.meta.description },
|
|
446
467
|
],
|
|
447
468
|
};
|
|
448
469
|
},
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
20
20
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
21
21
|
history:
|
|
22
|
+
- version: 8.2.0
|
|
23
|
+
date: 2026-03-09
|
|
24
|
+
changes: Update compiler options, add FilePathPattern support
|
|
22
25
|
- version: 8.1.6
|
|
23
26
|
date: 2026-02-23
|
|
24
27
|
changes: Pierwsze wydanie
|
|
@@ -125,23 +128,28 @@ const config: IntlayerConfig = {
|
|
|
125
128
|
},
|
|
126
129
|
compiler: {
|
|
127
130
|
/**
|
|
128
|
-
*
|
|
131
|
+
* Wskazuje, czy kompilator powinien być włączony.
|
|
129
132
|
*/
|
|
130
133
|
enabled: true,
|
|
131
134
|
|
|
132
135
|
/**
|
|
133
136
|
* Katalog wyjściowy dla zoptymalizowanych słowników.
|
|
134
137
|
*/
|
|
135
|
-
|
|
138
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Wstaw tylko zawartość do wygenerowanego pliku, bez klucza.
|
|
142
|
+
*/
|
|
143
|
+
noMetadata: false,
|
|
136
144
|
|
|
137
145
|
/**
|
|
138
146
|
* Prefiks klucza słownika
|
|
139
147
|
*/
|
|
140
|
-
dictionaryKeyPrefix: "", //
|
|
148
|
+
dictionaryKeyPrefix: "", // Remove base prefix
|
|
141
149
|
|
|
142
150
|
/**
|
|
143
|
-
*
|
|
144
|
-
* W ten sposób kompilator można uruchomić tylko raz, aby
|
|
151
|
+
* Wskazuje, czy komponenty powinny być zapisywane po transformacji.
|
|
152
|
+
* W ten sposób kompilator można uruchomić tylko raz, aby przetransformować aplikację, a następnie go usunąć.
|
|
145
153
|
*/
|
|
146
154
|
saveComponents: false,
|
|
147
155
|
},
|
package/docs/pt/compiler.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-03-10
|
|
4
4
|
title: Intlayer Compiler | Extração Automática de Conteúdo para i18n
|
|
5
5
|
description: Automatize seu processo de internacionalização com o Intlayer Compiler. Extraia conteúdo diretamente dos seus componentes para uma i18n mais rápida e eficiente em Vite, Next.js e mais.
|
|
6
6
|
keywords:
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
- doc
|
|
21
21
|
- compiler
|
|
22
22
|
history:
|
|
23
|
+
- version: 8.2.0
|
|
24
|
+
date: 2026-03-10
|
|
25
|
+
changes: Update compiler options, add FilePathPattern support
|
|
23
26
|
- version: 8.1.7
|
|
24
27
|
date: 2026-02-25
|
|
25
28
|
changes: Atualizar opções do compilador
|
|
@@ -157,13 +160,12 @@ import { type IntlayerConfig, Locales } from "intlayer";
|
|
|
157
160
|
const config: IntlayerConfig = {
|
|
158
161
|
compiler: {
|
|
159
162
|
/**
|
|
160
|
-
*
|
|
161
|
-
* Defina como 'build-only' para pular o compilador durante o desenvolvimento e acelerar os tempos de inicialização.
|
|
163
|
+
* Defina como 'build-only' para ignorar o compilador durante o desenvolvimento e acelerar os tempos de inicialização.
|
|
162
164
|
*/
|
|
163
165
|
enabled: true,
|
|
164
166
|
|
|
165
167
|
/**
|
|
166
|
-
*
|
|
168
|
+
* Pattern to traverse the code to optimize.
|
|
167
169
|
*/
|
|
168
170
|
transformPattern: [
|
|
169
171
|
"**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
|
|
@@ -171,23 +173,28 @@ const config: IntlayerConfig = {
|
|
|
171
173
|
],
|
|
172
174
|
|
|
173
175
|
/**
|
|
174
|
-
*
|
|
176
|
+
* Pattern to exclude from the optimization.
|
|
175
177
|
*/
|
|
176
178
|
excludePattern: ["**/node_modules/**"],
|
|
177
179
|
|
|
178
180
|
/**
|
|
179
|
-
* Diretório de saída para os dicionários
|
|
181
|
+
* Diretório de saída para os dicionários optimizados.
|
|
180
182
|
*/
|
|
181
|
-
|
|
183
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Inserir apenas o conteúdo no arquivo gerado, sem chave.
|
|
187
|
+
*/
|
|
188
|
+
noMetadata: false,
|
|
182
189
|
|
|
183
190
|
/**
|
|
184
191
|
* Prefixo da chave do dicionário
|
|
185
192
|
*/
|
|
186
|
-
dictionaryKeyPrefix: "", //
|
|
193
|
+
dictionaryKeyPrefix: "", // Remove base prefix
|
|
187
194
|
|
|
188
195
|
/**
|
|
189
196
|
* Indica se os componentes devem ser salvos após serem transformados.
|
|
190
|
-
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois
|
|
197
|
+
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois removido.
|
|
191
198
|
*/
|
|
192
199
|
saveComponents: false,
|
|
193
200
|
},
|
|
@@ -209,3 +216,61 @@ npx intlayer fill # Preencher traduções ausentes
|
|
|
209
216
|
```
|
|
210
217
|
|
|
211
218
|
> Para mais detalhes, consulte a [documentação da CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/cli/ci.md)
|
|
219
|
+
|
|
220
|
+
### Referência de configuração do compilador
|
|
221
|
+
|
|
222
|
+
As seguintes propriedades podem ser configuradas no bloco `compiler` do seu arquivo `intlayer.config.ts`:
|
|
223
|
+
|
|
224
|
+
- **enabled**:
|
|
225
|
+
- _Tipo_: `boolean | 'build-only'`
|
|
226
|
+
- _Padrão_: `true`
|
|
227
|
+
- _Descrição_: Indica se o compilador deve ser habilitado.
|
|
228
|
+
- **dictionaryKeyPrefix**:
|
|
229
|
+
- _Tipo_: `string`
|
|
230
|
+
- _Padrão_: `'comp-'`
|
|
231
|
+
- _Descrição_: Prefixo para as chaves de dicionário extraídas.
|
|
232
|
+
- **transformPattern**:
|
|
233
|
+
- _Tipo_: `string | string[]`
|
|
234
|
+
- _Padrão_: `['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']`
|
|
235
|
+
- _Descrição_: Padrões para percorrer o código a ser otimizado.
|
|
236
|
+
- **excludePattern**:
|
|
237
|
+
- _Tipo_: `string | string[]`
|
|
238
|
+
- _Padrão_: `['**/node_modules/**']`
|
|
239
|
+
- _Descrição_: Padrões para excluir da otimização.
|
|
240
|
+
- **outputDir** (Deprecated):
|
|
241
|
+
- _Tipo_: `string`
|
|
242
|
+
- _Padrão_: `'compiler'`
|
|
243
|
+
- _Descrição_: O diretório onde os dicionários extraídos serão armazenados.
|
|
244
|
+
|
|
245
|
+
- **output**:
|
|
246
|
+
- _Tipo_: `FilePathPattern`
|
|
247
|
+
- _Padrão_: `({ key }) => 'compiler/${key}.content.json'`
|
|
248
|
+
- _Descrição_: Define o caminho dos arquivos de saída. Substitui `outputDir`. Manipula variáveis dinâmicas como `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{componentFormat}}`. Pode ser definido como uma string usando o formato `'my/{{var}}/path'` ou como uma função.
|
|
249
|
+
- _Nota_: `./**/*` Os caminhos são resolvidos relativamente ao componente. `/**/*` os caminhos são resolvidos relativamente ao `baseDir` do Intlayer.
|
|
250
|
+
- _Exemplo_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
|
|
251
|
+
|
|
252
|
+
- **noMetadata**:
|
|
253
|
+
- _Tipo_: `boolean`
|
|
254
|
+
- _Padrão_: `false`
|
|
255
|
+
- _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).
|
|
256
|
+
- _Nota_: Útil se usado com o plugin `loadJSON`.
|
|
257
|
+
- _Exemplo_: Se `true`:
|
|
258
|
+
```json
|
|
259
|
+
{
|
|
260
|
+
"key": "value"
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
Se `false`:
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"key": "value",
|
|
267
|
+
"content": {
|
|
268
|
+
"key": "value"
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
- **saveComponents**:
|
|
274
|
+
- _Tipo_: `boolean`
|
|
275
|
+
- _Padrão_: `false`
|
|
276
|
+
- _Descrição_: Indica se os componentes devem ser salvos após serem transformados.
|
package/docs/pt/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-03-11
|
|
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:
|
|
@@ -14,18 +14,24 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.3.0
|
|
18
|
+
data: 2026-03-11
|
|
19
|
+
changes: Mover 'baseDir' da configuração de 'content' para a configuração de 'system'
|
|
20
|
+
- version: 8.2.0
|
|
21
|
+
date: 2026-03-10
|
|
22
|
+
changes: Atualizar opções do compilador, adicionar suporte para 'output' e 'noMetadata'
|
|
17
23
|
- version: 8.1.7
|
|
18
24
|
date: 2026-02-25
|
|
19
25
|
changes: Atualizar opções do compilador
|
|
20
26
|
- version: 8.0.6
|
|
21
27
|
date: 2026-02-12
|
|
22
|
-
changes:
|
|
28
|
+
changes: Adicionar suporte para os provedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
|
|
23
29
|
- version: 8.0.4
|
|
24
30
|
date: 2026-02-06
|
|
25
31
|
changes: Adicionar `dataSerialization` à configuração de IA
|
|
26
32
|
- version: 8.0.0
|
|
27
33
|
date: 2026-01-22
|
|
28
|
-
changes:
|
|
34
|
+
changes: Mover a configuração de build importMode para a configuração do dicionário.
|
|
29
35
|
- version: 8.0.0
|
|
30
36
|
date: 2026-01-18
|
|
31
37
|
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.
|
|
@@ -419,7 +425,7 @@ const config: IntlayerConfig = {
|
|
|
419
425
|
*/
|
|
420
426
|
compiler: {
|
|
421
427
|
/**
|
|
422
|
-
*
|
|
428
|
+
* Indica se o compilador deve ser habilitado.
|
|
423
429
|
*/
|
|
424
430
|
enabled: true,
|
|
425
431
|
|
|
@@ -437,18 +443,23 @@ const config: IntlayerConfig = {
|
|
|
437
443
|
excludePattern: ["**/node_modules/**"],
|
|
438
444
|
|
|
439
445
|
/**
|
|
440
|
-
*
|
|
446
|
+
* Diretório de saída para os dicionários optimizados.
|
|
441
447
|
*/
|
|
442
|
-
|
|
448
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
443
449
|
|
|
444
450
|
/**
|
|
445
|
-
*
|
|
451
|
+
* Inserir apenas o conteúdo no arquivo gerado, sem chave.
|
|
452
|
+
*/
|
|
453
|
+
noMetadata: false,
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Prefixo da chave do dicionário
|
|
446
457
|
*/
|
|
447
458
|
dictionaryKeyPrefix: "", // Remove base prefix
|
|
448
459
|
|
|
449
460
|
/**
|
|
450
|
-
*
|
|
451
|
-
*
|
|
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.
|
|
452
463
|
*/
|
|
453
464
|
saveComponents: false,
|
|
454
465
|
},
|
|
@@ -704,7 +715,7 @@ Configurações relacionadas ao manuseio de conteúdo dentro da aplicação, inc
|
|
|
704
715
|
#### Propriedades
|
|
705
716
|
|
|
706
717
|
- **autoFill**:
|
|
707
|
-
- _Tipo_: `boolean | string | { [key in Locales]?: string }`
|
|
718
|
+
- _Tipo_: `boolean | string | FilePathPattern | { [key in Locales]?: string }`
|
|
708
719
|
- _Padrão_: `undefined`
|
|
709
720
|
- _Descrição_: Indica como o conteúdo deve ser preenchido automaticamente usando IA. Pode ser declarado globalmente no arquivo `intlayer.config.ts`.
|
|
710
721
|
- _Exemplo_: true
|
|
@@ -722,18 +733,11 @@ Configurações relacionadas ao manuseio de conteúdo dentro da aplicação, inc
|
|
|
722
733
|
|
|
723
734
|
- **fileExtensions**:
|
|
724
735
|
- _Tipo_: `string[]`
|
|
725
|
-
-
|
|
736
|
+
- _Padrão_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
726
737
|
- _Descrição_: Extensões de arquivo a serem procuradas ao construir dicionários.
|
|
727
738
|
- _Exemplo_: `['.data.ts', '.data.js', '.data.json']`
|
|
728
739
|
- _Nota_: Personalizar extensões de arquivo pode ajudar a evitar conflitos.
|
|
729
740
|
|
|
730
|
-
- **baseDir**:
|
|
731
|
-
- _Tipo_: `string`
|
|
732
|
-
- _Padrão_: `process.cwd()`
|
|
733
|
-
- _Descrição_: O diretório base para o projeto.
|
|
734
|
-
- _Exemplo_: `'/path/to/project'`
|
|
735
|
-
- _Nota_: Isso é usado para resolver todos os diretórios relacionados ao Intlayer.
|
|
736
|
-
|
|
737
741
|
- **contentDir**:
|
|
738
742
|
- _Tipo_: `string[]`
|
|
739
743
|
- _Padrão_: `['.']`
|
|
@@ -772,6 +776,13 @@ Configurações relacionadas aos caminhos internos e resultados de saída do Int
|
|
|
772
776
|
|
|
773
777
|
#### Propriedades
|
|
774
778
|
|
|
779
|
+
- **baseDir**:
|
|
780
|
+
- _Tipo_: `string`
|
|
781
|
+
- _Padrão_: `process.cwd()`
|
|
782
|
+
- _Descrição_: O diretório base para o projeto.
|
|
783
|
+
- _Exemplo_: `'/path/to/project'`
|
|
784
|
+
- _Nota_: Isso é usado para resolver todos os diretórios relacionados ao Intlayer.
|
|
785
|
+
|
|
775
786
|
- **dictionariesDir**:
|
|
776
787
|
- _Tipo_: `string`
|
|
777
788
|
- _Padrão_: `'.intlayer/dictionary'`
|
|
@@ -962,10 +973,10 @@ As opções de build se aplicam aos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
|
962
973
|
- _Nota_: Pode ser usado para desabilitar a build de dicionários, por exemplo quando a execução em um ambiente Node.js deve ser evitada.
|
|
963
974
|
|
|
964
975
|
- **checkTypes**:
|
|
965
|
-
-
|
|
966
|
-
-
|
|
967
|
-
-
|
|
968
|
-
-
|
|
976
|
+
- _Tipo_: `boolean`
|
|
977
|
+
- _Padrão_: `false`
|
|
978
|
+
- _Descrição_: Indica se a compilação deve verificar os tipos do TypeScript e registrar erros.
|
|
979
|
+
- _Nota_: Isso pode atrasar a compilação.
|
|
969
980
|
|
|
970
981
|
- **optimize**:
|
|
971
982
|
- _Tipo_: `boolean`
|
|
@@ -978,7 +989,7 @@ As opções de build se aplicam aos plugins `@intlayer/babel` e `@intlayer/swc`.
|
|
|
978
989
|
- _Nota_: Certifique-se de que todas as chaves sejam declaradas estaticamente nas chamadas de `useIntlayer`. Exemplo: `useIntlayer('navbar')`.
|
|
979
990
|
|
|
980
991
|
- **importMode**:
|
|
981
|
-
-
|
|
992
|
+
- _Nota_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
982
993
|
- _Tipo_: `'static' | 'dynamic' | 'fetch'`
|
|
983
994
|
- _Padrão_: `'static'`
|
|
984
995
|
- _Descrição_: Controla como os dicionários são importados.
|
|
@@ -1057,3 +1068,31 @@ Configurações que controlan o compilador Intlayer, que extrai dicionários dir
|
|
|
1057
1068
|
- _Tipo_: `string`
|
|
1058
1069
|
- _Padrão_: `'compiler'`
|
|
1059
1070
|
- _Descrição_: O diretório onde os dicionários extraídos serão armazenados, relativo ao caminho base do seu projeto.
|
|
1071
|
+
|
|
1072
|
+
- **output**:
|
|
1073
|
+
- _Tipo_: `FilePathPattern`
|
|
1074
|
+
- _Padrão_: `({ key }) => 'compiler/${key}.content.json'`
|
|
1075
|
+
- _Descrição_: Define o caminho dos arquivos de saída. Substitui `outputDir`. Manipula variáveis dinâmicas como `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{componentFormat}}`. Pode ser definido como uma string usando o formato `'my/{{var}}/path'` ou como uma função.
|
|
1076
|
+
- _Nota_: `./**/*` Os caminhos são resolvidos relativamente ao componente. `/**/*` os caminhos são resolvidos relativamente ao `baseDir` do Intlayer.
|
|
1077
|
+
- _Exemplo_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
|
|
1078
|
+
|
|
1079
|
+
- **noMetadata**:
|
|
1080
|
+
- _Tipo_: `boolean`
|
|
1081
|
+
- _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).
|
|
1083
|
+
- _Nota_: Útil se usado com o plugin `loadJSON`.
|
|
1084
|
+
- _Exemplo_: Se `true`:
|
|
1085
|
+
```json
|
|
1086
|
+
{
|
|
1087
|
+
"key": "value"
|
|
1088
|
+
}
|
|
1089
|
+
```
|
|
1090
|
+
Se `false`:
|
|
1091
|
+
```json
|
|
1092
|
+
{
|
|
1093
|
+
"key": "value",
|
|
1094
|
+
"content": {
|
|
1095
|
+
"key": "value"
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
```
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
applicationTemplate: https://github.com/aymericzip/intlayer-next-no-lolale-path-template
|
|
21
21
|
youtubeVideo: https://www.youtube.com/watch?v=e_PPG7PTqGU
|
|
22
22
|
history:
|
|
23
|
+
- version: 8.2.0
|
|
24
|
+
date: 2026-03-09
|
|
25
|
+
changes: Update compiler options, add FilePathPattern support
|
|
23
26
|
- version: 8.1.6
|
|
24
27
|
date: 2026-02-23
|
|
25
28
|
changes: Lançamento inicial
|
|
@@ -133,18 +136,23 @@ const config: IntlayerConfig = {
|
|
|
133
136
|
enabled: true,
|
|
134
137
|
|
|
135
138
|
/**
|
|
136
|
-
* Diretório de saída para os dicionários
|
|
139
|
+
* Diretório de saída para os dicionários optimizados.
|
|
137
140
|
*/
|
|
138
|
-
|
|
141
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Inserir apenas o conteúdo no arquivo gerado, sem chave.
|
|
145
|
+
*/
|
|
146
|
+
noMetadata: false,
|
|
139
147
|
|
|
140
148
|
/**
|
|
141
149
|
* Prefixo da chave do dicionário
|
|
142
150
|
*/
|
|
143
|
-
dictionaryKeyPrefix: "", //
|
|
151
|
+
dictionaryKeyPrefix: "", // Remove base prefix
|
|
144
152
|
|
|
145
153
|
/**
|
|
146
154
|
* Indica se os componentes devem ser salvos após serem transformados.
|
|
147
|
-
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar o
|
|
155
|
+
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois removido.
|
|
148
156
|
*/
|
|
149
157
|
saveComponents: false,
|
|
150
158
|
},
|
|
@@ -438,12 +438,33 @@ export const Route = createFileRoute("/{-$locale}/")({
|
|
|
438
438
|
component: RouteComponent,
|
|
439
439
|
head: ({ params }) => {
|
|
440
440
|
const { locale } = params;
|
|
441
|
+
const path = "/"; // The path for this route
|
|
442
|
+
|
|
441
443
|
const metaContent = getIntlayer("app", locale);
|
|
442
444
|
|
|
443
445
|
return {
|
|
446
|
+
links: [
|
|
447
|
+
// Canonical link: Points to the current localized page
|
|
448
|
+
{ rel: "canonical", href: getLocalizedUrl(path, locale) },
|
|
449
|
+
|
|
450
|
+
// Hreflang: Tell Google about all localized versions
|
|
451
|
+
...localeMap(({ locale: mapLocale }) => ({
|
|
452
|
+
rel: "alternate",
|
|
453
|
+
hrefLang: mapLocale,
|
|
454
|
+
href: getLocalizedUrl(path, mapLocale),
|
|
455
|
+
})),
|
|
456
|
+
|
|
457
|
+
// x-default: For users in unmatched languages
|
|
458
|
+
// Define the default fallback locale (usually your primary language)
|
|
459
|
+
{
|
|
460
|
+
rel: "alternate",
|
|
461
|
+
hrefLang: "x-default",
|
|
462
|
+
href: getLocalizedUrl(path, defaultLocale),
|
|
463
|
+
},
|
|
464
|
+
],
|
|
444
465
|
meta: [
|
|
445
466
|
{ title: metaContent.title },
|
|
446
|
-
{ content: metaContent.meta.description
|
|
467
|
+
{ name: "description", content: metaContent.meta.description },
|
|
447
468
|
],
|
|
448
469
|
};
|
|
449
470
|
},
|
|
@@ -19,6 +19,9 @@ slugs:
|
|
|
19
19
|
applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
|
|
20
20
|
youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
|
|
21
21
|
history:
|
|
22
|
+
- version: 8.2.0
|
|
23
|
+
date: 2026-03-09
|
|
24
|
+
changes: Update compiler options, add FilePathPattern support
|
|
22
25
|
- version: 8.1.6
|
|
23
26
|
date: 2026-02-23
|
|
24
27
|
changes: Lançamento inicial
|
|
@@ -135,18 +138,23 @@ const config: IntlayerConfig = {
|
|
|
135
138
|
enabled: true,
|
|
136
139
|
|
|
137
140
|
/**
|
|
138
|
-
* Diretório de saída para os dicionários
|
|
141
|
+
* Diretório de saída para os dicionários optimizados.
|
|
139
142
|
*/
|
|
140
|
-
|
|
143
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Inserir apenas o conteúdo no arquivo gerado, sem chave.
|
|
147
|
+
*/
|
|
148
|
+
noMetadata: false,
|
|
141
149
|
|
|
142
150
|
/**
|
|
143
151
|
* Prefixo da chave do dicionário
|
|
144
152
|
*/
|
|
145
|
-
dictionaryKeyPrefix: "", //
|
|
153
|
+
dictionaryKeyPrefix: "", // Remove base prefix
|
|
146
154
|
|
|
147
155
|
/**
|
|
148
156
|
* Indica se os componentes devem ser salvos após serem transformados.
|
|
149
|
-
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar o
|
|
157
|
+
* Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois removido.
|
|
150
158
|
*/
|
|
151
159
|
saveComponents: false,
|
|
152
160
|
},
|
package/docs/ru/compiler.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-09-09
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-03-10
|
|
4
4
|
title: Intlayer Compiler | Автоматизированное извлечение контента для i18n
|
|
5
5
|
description: Автоматизируйте процесс интернационализации с помощью Intlayer Compiler. Извлекайте контент напрямую из ваших компонентов для более быстрого и эффективного i18n в Vite, Next.js и других.
|
|
6
6
|
keywords:
|
|
@@ -20,6 +20,9 @@ slugs:
|
|
|
20
20
|
- doc
|
|
21
21
|
- compiler
|
|
22
22
|
history:
|
|
23
|
+
- version: 8.2.0
|
|
24
|
+
date: 2026-03-10
|
|
25
|
+
changes: Update compiler options, add FilePathPattern support
|
|
23
26
|
- version: 8.1.7
|
|
24
27
|
date: 2026-02-25
|
|
25
28
|
changes: Обновление опций компилятора
|
|
@@ -157,13 +160,12 @@ import { type IntlayerConfig, Locales } from "intlayer";
|
|
|
157
160
|
const config: IntlayerConfig = {
|
|
158
161
|
compiler: {
|
|
159
162
|
/**
|
|
160
|
-
*
|
|
161
|
-
* Установите значение 'build-only', чтобы пропустить компилятор во время разработки и ускорить время запуска.
|
|
163
|
+
* Установите значение 'build-only', чтобы пропустить компилятор во время разработки и ускорить запуск.
|
|
162
164
|
*/
|
|
163
165
|
enabled: true,
|
|
164
166
|
|
|
165
167
|
/**
|
|
166
|
-
*
|
|
168
|
+
* Pattern to traverse the code to optimize.
|
|
167
169
|
*/
|
|
168
170
|
transformPattern: [
|
|
169
171
|
"**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
|
|
@@ -171,23 +173,28 @@ const config: IntlayerConfig = {
|
|
|
171
173
|
],
|
|
172
174
|
|
|
173
175
|
/**
|
|
174
|
-
*
|
|
176
|
+
* Pattern to exclude from the optimization.
|
|
175
177
|
*/
|
|
176
178
|
excludePattern: ["**/node_modules/**"],
|
|
177
179
|
|
|
178
180
|
/**
|
|
179
181
|
* Выходной каталог для оптимизированных словарей.
|
|
180
182
|
*/
|
|
181
|
-
|
|
183
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Вставьте только содержимое в сгенерированный файл, без ключа.
|
|
187
|
+
*/
|
|
188
|
+
noMetadata: false,
|
|
182
189
|
|
|
183
190
|
/**
|
|
184
191
|
* Префикс ключа словаря
|
|
185
192
|
*/
|
|
186
|
-
dictionaryKeyPrefix: "", //
|
|
193
|
+
dictionaryKeyPrefix: "", // Remove base prefix
|
|
187
194
|
|
|
188
195
|
/**
|
|
189
|
-
* Указывает, должны ли компоненты сохраняться после
|
|
190
|
-
* Таким образом, компилятор можно запустить только один раз для
|
|
196
|
+
* Указывает, должны ли компоненты сохраняться после трансформации.
|
|
197
|
+
* Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
|
|
191
198
|
*/
|
|
192
199
|
saveComponents: false,
|
|
193
200
|
},
|
|
@@ -209,3 +216,61 @@ npx intlayer fill # Заполнить недостающие перев
|
|
|
209
216
|
```
|
|
210
217
|
|
|
211
218
|
> Для получения более подробной информации обратитесь к [документации CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/ci.md)
|
|
219
|
+
|
|
220
|
+
### Справочник по конфигурации компилятора
|
|
221
|
+
|
|
222
|
+
Следующие свойства могут быть настроены в блоке `compiler` вашего файла `intlayer.config.ts`:
|
|
223
|
+
|
|
224
|
+
- **enabled**:
|
|
225
|
+
- _Тип_: `boolean | 'build-only'`
|
|
226
|
+
- _По умолчанию_: `true`
|
|
227
|
+
- _Описание_: Указывает, должен ли компилятор быть включен.
|
|
228
|
+
- **dictionaryKeyPrefix**:
|
|
229
|
+
- _Тип_: `string`
|
|
230
|
+
- _По умолчанию_: `'comp-'`
|
|
231
|
+
- _Описание_: Префикс для извлеченных ключей словаря.
|
|
232
|
+
- **transformPattern**:
|
|
233
|
+
- _Тип_: `string | string[]`
|
|
234
|
+
- _По умолчанию_: `['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']`
|
|
235
|
+
- _Описание_: Шаблоны для обхода кода для оптимизации.
|
|
236
|
+
- **excludePattern**:
|
|
237
|
+
- _Тип_: `string | string[]`
|
|
238
|
+
- _По умолчанию_: `['**/node_modules/**']`
|
|
239
|
+
- _Описание_: Шаблоны для исключения из оптимизации.
|
|
240
|
+
- **outputDir** (Deprecated):
|
|
241
|
+
- _Тип_: `string`
|
|
242
|
+
- _По умолчанию_: `'compiler'`
|
|
243
|
+
- _Описание_: Каталог, в котором будут храниться извлеченные словари.
|
|
244
|
+
|
|
245
|
+
- **output**:
|
|
246
|
+
- _Тип_: `FilePathPattern`
|
|
247
|
+
- _По умолчанию_: `({ key }) => 'compiler/${key}.content.json'`
|
|
248
|
+
- _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические переменные, такие как `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{componentFormat}}`. Может быть задано как строка в формате `'my/{{var}}/path'` или как функция.
|
|
249
|
+
- _Примечание_: `./**/*` Пути разрешаются относительно компонента. `/**/*` пути разрешаются относительно `baseDir` Intlayer.
|
|
250
|
+
- _Пример_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
|
|
251
|
+
|
|
252
|
+
- **noMetadata**:
|
|
253
|
+
- _Тип_: `boolean`
|
|
254
|
+
- _По умолчанию_: `false`
|
|
255
|
+
- _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого).
|
|
256
|
+
- _Примечание_: Полезно при использовании с плагином `loadJSON`.
|
|
257
|
+
- _Пример_: Если `true`:
|
|
258
|
+
```json
|
|
259
|
+
{
|
|
260
|
+
"key": "value"
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
Если `false`:
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"key": "value",
|
|
267
|
+
"content": {
|
|
268
|
+
"key": "value"
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
- **saveComponents**:
|
|
274
|
+
- _Тип_: `boolean`
|
|
275
|
+
- _По умолчанию_: `false`
|
|
276
|
+
- _Описание_: Указывает, должны ли компоненты сохраняться после трансформации.
|