@intlayer/docs 8.4.7 → 8.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/ar/configuration.md +958 -0
- package/docs/cs/configuration.md +958 -0
- package/docs/de/configuration.md +958 -0
- package/docs/en-GB/configuration.md +957 -0
- package/docs/es/configuration.md +161 -133
- package/docs/fr/configuration.md +137 -109
- package/docs/it/configuration.md +958 -0
- package/docs/ja/configuration.md +958 -0
- package/docs/nl/configuration.md +958 -0
- package/docs/pt/configuration.md +958 -0
- package/docs/ru/configuration.md +958 -0
- package/docs/tr/configuration.md +958 -0
- package/package.json +6 -6
|
@@ -0,0 +1,958 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2024-08-13
|
|
3
|
+
updatedAt: 2026-03-20
|
|
4
|
+
title: Konfigurace (Configuration)
|
|
5
|
+
description: Naučte se, jak nakonfigurovat Intlayer pro vaši aplikaci. Porozumějte různým nastavením a možnostem dostupným pro přizpůsobení Intlayer vašim potřebám.
|
|
6
|
+
keywords:
|
|
7
|
+
- Konfigurace
|
|
8
|
+
- Nastavení
|
|
9
|
+
- Přizpůsobení
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Možnosti
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- concept
|
|
15
|
+
- configuration
|
|
16
|
+
history:
|
|
17
|
+
- version: 8.4.0
|
|
18
|
+
date: 2026-03-20
|
|
19
|
+
changes: Přidána objektová notace pro jednotlivé lokality pro 'compiler.output' a 'dictionary.fill'
|
|
20
|
+
- version: 8.3.0
|
|
21
|
+
date: 2026-03-11
|
|
22
|
+
changes: 'baseDir' přesunut z konfigurace 'content' do konfigurace 'system'
|
|
23
|
+
- version: 8.2.0
|
|
24
|
+
date: 2026-03-09
|
|
25
|
+
changes: Aktualizovány volby kompilátoru, přidána podpora pro 'output' a 'noMetadata'
|
|
26
|
+
- version: 8.1.7
|
|
27
|
+
date: 2026-02-25
|
|
28
|
+
changes: Aktualizovány volby kompilátoru
|
|
29
|
+
- version: 8.1.5
|
|
30
|
+
date: 2026-02-23
|
|
31
|
+
changes: Přidána volba kompilátoru 'build-only' a prefix slovníku
|
|
32
|
+
- version: 8.0.6
|
|
33
|
+
date: 2026-02-12
|
|
34
|
+
changes: Přidána podpora pro poskytovatele Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face a Together.ai
|
|
35
|
+
- version: 8.0.5
|
|
36
|
+
date: 2026-02-06
|
|
37
|
+
changes: Přidán `dataSerialization` do konfigurace AI
|
|
38
|
+
- version: 8.0.0
|
|
39
|
+
date: 2026-01-24
|
|
40
|
+
changes: Režim importu `live` přejmenován na `fetch` pro lepší popis základního mechanismu.
|
|
41
|
+
- version: 8.0.0
|
|
42
|
+
date: 2026-01-22
|
|
43
|
+
changes: Konfigurace sestavení `importMode` přesunuta do konfigurace `dictionary`.
|
|
44
|
+
- version: 8.0.0
|
|
45
|
+
date: 2026-01-22
|
|
46
|
+
changes: Přidána volba `rewrite` do konfigurace routování
|
|
47
|
+
- version: 8.0.0
|
|
48
|
+
date: 2026-01-18
|
|
49
|
+
changes: Konfigurace systému oddělena od konfigurace obsahu. Interní cesty přesunuty do vlastnosti `system`. Přidán `codeDir` pro oddělení souborů obsahu od transformace kódu.
|
|
50
|
+
- version: 8.0.0
|
|
51
|
+
date: 2026-01-18
|
|
52
|
+
changes: Přidány volby slovníku `location` a `schema`
|
|
53
|
+
- version: 7.5.1
|
|
54
|
+
date: 2026-01-10
|
|
55
|
+
changes: Přidána podpora pro formáty souborů JSON5 a JSONC
|
|
56
|
+
- version: 7.5.0
|
|
57
|
+
date: 2025-12-17
|
|
58
|
+
changes: Přidána volba `buildMode`
|
|
59
|
+
- version: 7.0.0
|
|
60
|
+
date: 2025-10-25
|
|
61
|
+
changes: Přidána konfigurace `dictionary`
|
|
62
|
+
- version: 7.0.0
|
|
63
|
+
date: 2025-10-21
|
|
64
|
+
changes: `middleware` nahrazen konfigurací `routing`
|
|
65
|
+
- version: 7.0.0
|
|
66
|
+
date: 2025-10-12
|
|
67
|
+
changes: Přidána volba `formatCommand`
|
|
68
|
+
- version: 6.2.0
|
|
69
|
+
date: 2025-10-12
|
|
70
|
+
changes: Aktualizována volba `excludedPath`
|
|
71
|
+
- version: 6.0.2
|
|
72
|
+
date: 2025-09-23
|
|
73
|
+
changes: Přidána volba `outputFormat`
|
|
74
|
+
- version: 6.0.0
|
|
75
|
+
date: 2025-09-21
|
|
76
|
+
changes: Odstraněna pole `dictionaryOutput` a `i18nextResourcesDir`
|
|
77
|
+
- version: 6.0.0
|
|
78
|
+
date: 2025-09-16
|
|
79
|
+
changes: Přidán režim importu `live`
|
|
80
|
+
- version: 6.0.0
|
|
81
|
+
date: 2025-09-04
|
|
82
|
+
changes: Pole `hotReload` nahrazeno `liveSync` a přidána pole `liveSyncPort`, `liveSyncURL`
|
|
83
|
+
- version: 5.6.1
|
|
84
|
+
date: 2025-07-25
|
|
85
|
+
changes: `activateDynamicImport` nahrazen volbou `importMode`
|
|
86
|
+
- version: 5.6.0
|
|
87
|
+
date: 2025-07-13
|
|
88
|
+
changes: Výchozí `contentDir` změněn z `['src']` na `['.']`
|
|
89
|
+
- version: 5.5.11
|
|
90
|
+
date: 2025-06-29
|
|
91
|
+
changes: Přidány příkazy `docs`
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
# Dokumentace ke konfiguraci Intlayer
|
|
95
|
+
|
|
96
|
+
## Přehled
|
|
97
|
+
|
|
98
|
+
Konfigurační soubory Intlayer umožňují přizpůsobit různé aspekty pluginu, jako je internacionalizace, middleware a správa obsahu. Tento dokument poskytuje podrobný popis každé vlastnosti v konfiguraci.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Obsah
|
|
103
|
+
|
|
104
|
+
<TOC/>
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Podpora konfiguračních souborů
|
|
109
|
+
|
|
110
|
+
Intlayer přijímá formáty konfiguračních souborů JSON, JS, MJS a TS:
|
|
111
|
+
|
|
112
|
+
- `intlayer.config.ts`
|
|
113
|
+
- `intlayer.config.js`
|
|
114
|
+
- `intlayer.config.json`
|
|
115
|
+
- `intlayer.config.json5`
|
|
116
|
+
- `intlayer.config.jsonc`
|
|
117
|
+
- `intlayer.config.cjs`
|
|
118
|
+
- `intlayer.config.mjs`
|
|
119
|
+
- `.intlayerrc`
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Příklad konfiguračního souboru
|
|
124
|
+
|
|
125
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
126
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
127
|
+
import { nextjsRewrite } from "intlayer/routing";
|
|
128
|
+
import { z } from "zod";
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Příklad konfiguračního souboru Intlayer se všemi dostupnými možnostmi.
|
|
132
|
+
*/
|
|
133
|
+
const config: IntlayerConfig = {
|
|
134
|
+
/**
|
|
135
|
+
* Konfigurace internacionalizace.
|
|
136
|
+
*/
|
|
137
|
+
internationalization: {
|
|
138
|
+
/**
|
|
139
|
+
* Seznam podporovaných lokalit v aplikaci.
|
|
140
|
+
* Výchozí: [Locales.ENGLISH]
|
|
141
|
+
*/
|
|
142
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Seznam povinných lokalit, které musí být definovány v každém slovníku.
|
|
146
|
+
* Pokud je prázdný, jsou v režimu `strict` povinné všechny lokality.
|
|
147
|
+
* Výchozí: []
|
|
148
|
+
*/
|
|
149
|
+
requiredLocales: [Locales.ENGLISH],
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Úroveň přísnosti pro internacionalizovaný obsah.
|
|
153
|
+
* - "strict": Vyvolá chybu, pokud deklarovaná lokalita chybí nebo není deklarována.
|
|
154
|
+
* - "inclusive": Vyvolá varování, pokud deklarovaná lokalita chybí.
|
|
155
|
+
* - "loose": Přijímá jakoukoli existující lokalitu.
|
|
156
|
+
* Výchozí: "inclusive"
|
|
157
|
+
*/
|
|
158
|
+
strictMode: "inclusive",
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Výchozí lokalita použitá jako záložní, pokud požadovaná lokalita není nalezena.
|
|
162
|
+
* Výchozí: Locales.ENGLISH
|
|
163
|
+
*/
|
|
164
|
+
defaultLocale: Locales.ENGLISH,
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Nastavení ovládající operace se slovníky a chování při chybějícím obsahu.
|
|
169
|
+
*/
|
|
170
|
+
dictionary: {
|
|
171
|
+
/**
|
|
172
|
+
* Ovládá způsob importu slovníků.
|
|
173
|
+
* - "static": Statický import během sestavení.
|
|
174
|
+
* - "dynamic": Dynamický import pomocí Suspense.
|
|
175
|
+
* - "fetch": Dynamické načítání přes API Live Sync.
|
|
176
|
+
* Výchozí: "static"
|
|
177
|
+
*/
|
|
178
|
+
importMode: "static",
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Strategie pro automatické doplnění chybějících překladů pomocí AI.
|
|
182
|
+
* Může být boolean nebo vzor cesty pro uložení doplněného obsahu.
|
|
183
|
+
* Výchozí: true
|
|
184
|
+
*/
|
|
185
|
+
fill: true,
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Fyzické umístění souborů slovníku.
|
|
189
|
+
* - "local": Uloženo v lokálním souborovém systému.
|
|
190
|
+
* - "remote": Uloženo v Intlayer CMS.
|
|
191
|
+
* - "hybrid": Uloženo lokálně i v Intlayer CMS.
|
|
192
|
+
* - "plugin" (nebo libovolný vlastní řetězec): Poskytováno pluginem nebo vlastním zdrojem.
|
|
193
|
+
* Výchozí: "local"
|
|
194
|
+
*/
|
|
195
|
+
location: "local",
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Zda automaticky transformovat obsah (např. Markdown na HTML).
|
|
199
|
+
* Výchozí: false
|
|
200
|
+
*/
|
|
201
|
+
contentAutoTransformation: false,
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Konfigurace routování a middleware.
|
|
206
|
+
*/
|
|
207
|
+
routing: {
|
|
208
|
+
/**
|
|
209
|
+
* Strategie routování podle lokality.
|
|
210
|
+
* - "prefix-no-default": Prefix pro všechny lokality kromě výchozí (např. /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Prefix pro všechny lokality (např. /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Žádná lokalita v URL.
|
|
213
|
+
* - "search-params": Použití ?locale=...
|
|
214
|
+
* Výchozí: "prefix-no-default"
|
|
215
|
+
*/
|
|
216
|
+
mode: "prefix-no-default",
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Kde ukládat uživatelem zvolenou lokalitu.
|
|
220
|
+
* Možnosti: 'cookie', 'localStorage', 'sessionStorage', 'header' nebo jejich pole.
|
|
221
|
+
* Výchozí: ['cookie', 'header']
|
|
222
|
+
*/
|
|
223
|
+
storage: ["cookie", "header"],
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Základní cesta pro URL aplikace.
|
|
227
|
+
* Výchozí: ""
|
|
228
|
+
*/
|
|
229
|
+
basePath: "",
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Vlastní pravidla přepisu URL pro cesty v konkrétních lokalitách.
|
|
233
|
+
*/
|
|
234
|
+
rewrite: nextjsRewrite({
|
|
235
|
+
"/[locale]/about": {
|
|
236
|
+
en: "/[locale]/about",
|
|
237
|
+
fr: "/[locale]/a-propos",
|
|
238
|
+
},
|
|
239
|
+
}),
|
|
240
|
+
},
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Nastavení pro hledání a zpracování souborů obsahu.
|
|
244
|
+
*/
|
|
245
|
+
content: {
|
|
246
|
+
/**
|
|
247
|
+
* Přípony souborů pro skenování slovníků.
|
|
248
|
+
* Výchozí: ['.content.ts', '.content.js', '.content.json', atd.]
|
|
249
|
+
*/
|
|
250
|
+
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Adresáře, kde se nacházejí soubory .content.
|
|
254
|
+
* Výchozí: ["."]
|
|
255
|
+
*/
|
|
256
|
+
contentDir: ["src"],
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Zdrojový adresář kódu.
|
|
260
|
+
* Používá se pro optimalizaci sestavení a transformaci kódu.
|
|
261
|
+
* Výchozí: ["."]
|
|
262
|
+
*/
|
|
263
|
+
codeDir: ["src"],
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Vzory pro vyloučení ze skenování.
|
|
267
|
+
* Výchozí: ['node_modules', '.intlayer', atd.]
|
|
268
|
+
*/
|
|
269
|
+
excludedPath: ["node_modules"],
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Zda sledovat změny a regenerovat slovníky během vývoje.
|
|
273
|
+
* Výchozí: true ve vývojovém režimu
|
|
274
|
+
*/
|
|
275
|
+
watch: true,
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Příkaz pro formátování nově vytvořených / aktualizovaných souborů .content.
|
|
279
|
+
*/
|
|
280
|
+
formatCommand: 'npx prettier --write "{{file}}"',
|
|
281
|
+
},
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Konfigurace vizuálního editoru.
|
|
285
|
+
*/
|
|
286
|
+
editor: {
|
|
287
|
+
/**
|
|
288
|
+
* Zda je vizuální editor povolen.
|
|
289
|
+
* Výchozí: false
|
|
290
|
+
*/
|
|
291
|
+
enabled: true,
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* URL vaší aplikace pro validaci původu (origin).
|
|
295
|
+
* Výchozí: ""
|
|
296
|
+
*/
|
|
297
|
+
applicationURL: "http://localhost:3000",
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Port pro lokální editor server.
|
|
301
|
+
* Výchozí: 8000
|
|
302
|
+
*/
|
|
303
|
+
port: 8000,
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Veřejná URL pro editor.
|
|
307
|
+
* Výchozí: "http://localhost:8000"
|
|
308
|
+
*/
|
|
309
|
+
editorURL: "http://localhost:8000",
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* URL Intlayer CMS.
|
|
313
|
+
* Výchozí: "https://app.intlayer.org"
|
|
314
|
+
*/
|
|
315
|
+
cmsURL: "https://app.intlayer.org",
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* URL backend API serveru.
|
|
319
|
+
* Výchozí: "https://back.intlayer.org"
|
|
320
|
+
*/
|
|
321
|
+
backendURL: "https://back.intlayer.org",
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Zda povolit synchronizaci obsahu v reálném čase.
|
|
325
|
+
* Výchozí: false
|
|
326
|
+
*/
|
|
327
|
+
liveSync: true,
|
|
328
|
+
},
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Nastavení překladů a generování pomocí AI.
|
|
332
|
+
*/
|
|
333
|
+
ai: {
|
|
334
|
+
/**
|
|
335
|
+
* Použitý poskytovatel AI.
|
|
336
|
+
* Možnosti: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
|
+
* Výchozí: 'openai'
|
|
338
|
+
*/
|
|
339
|
+
provider: "openai",
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Použitý model zvoleného poskytovatele.
|
|
343
|
+
*/
|
|
344
|
+
model: "gpt-4o",
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* API klíč poskytovatele.
|
|
348
|
+
*/
|
|
349
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Globální kontext pro vedení AI při generování překladů.
|
|
353
|
+
*/
|
|
354
|
+
applicationContext: "Toto je aplikace pro rezervaci cest.",
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Základní URL pro AI API.
|
|
358
|
+
*/
|
|
359
|
+
baseURL: "http://localhost:3000",
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Serializace dat
|
|
363
|
+
*
|
|
364
|
+
* Možnosti:
|
|
365
|
+
* - "json": Výchozí, spolehlivé; spotřebovává více tokenů.
|
|
366
|
+
* - "toon": Méně tokenů, méně stabilní než JSON.
|
|
367
|
+
*
|
|
368
|
+
* Výchozí: "json"
|
|
369
|
+
*/
|
|
370
|
+
dataSerialization: "json",
|
|
371
|
+
},
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Nastavení sestavení a optimalizace.
|
|
375
|
+
*/
|
|
376
|
+
build: {
|
|
377
|
+
/**
|
|
378
|
+
* Režim spuštění sestavení.
|
|
379
|
+
* - "auto": Automatické sestavení během sestavení aplikace.
|
|
380
|
+
* - "manual": Vyžaduje explicitní příkaz sestavení.
|
|
381
|
+
* Výchozí: "auto"
|
|
382
|
+
*/
|
|
383
|
+
mode: "auto",
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* Zda optimalizovat výsledný balíček odstraněním nepoužívaných slovníků.
|
|
387
|
+
* Výchozí: true v produkci
|
|
388
|
+
*/
|
|
389
|
+
optimize: true,
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* Výstupní formát pro generované soubory slovníku.
|
|
393
|
+
* Výchozí: ['cjs', 'esm']
|
|
394
|
+
*/
|
|
395
|
+
outputFormat: ["cjs", "esm"],
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Zda má sestavení kontrolovat typy TypeScript.
|
|
399
|
+
* Výchozí: false
|
|
400
|
+
*/
|
|
401
|
+
checkTypes: false,
|
|
402
|
+
},
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Konfigurace logování.
|
|
406
|
+
*/
|
|
407
|
+
log: {
|
|
408
|
+
/**
|
|
409
|
+
* Úroveň logování.
|
|
410
|
+
* - "default": Standardní logování.
|
|
411
|
+
* - "verbose": Podrobné ladicí logování.
|
|
412
|
+
* - "disabled": Bez logování.
|
|
413
|
+
* Výchozí: "default"
|
|
414
|
+
*/
|
|
415
|
+
mode: "default",
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Prefix pro všechny zprávy v logu.
|
|
419
|
+
* Výchozí: "[intlayer]"
|
|
420
|
+
*/
|
|
421
|
+
prefix: "[intlayer]",
|
|
422
|
+
},
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Konfigurace systému (pokročilé případy užití)
|
|
426
|
+
*/
|
|
427
|
+
system: {
|
|
428
|
+
/**
|
|
429
|
+
* Adresář pro uložení lokalizovaných slovníků.
|
|
430
|
+
*/
|
|
431
|
+
dictionariesDir: ".intlayer/dictionary",
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Adresář pro rozšíření modulů (module augmentation).
|
|
435
|
+
*/
|
|
436
|
+
moduleAugmentationDir: ".intlayer/types",
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Adresář pro uložení nesloučených slovníků.
|
|
440
|
+
*/
|
|
441
|
+
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Adresář pro uložení typů slovníků.
|
|
445
|
+
*/
|
|
446
|
+
typesDir: ".intlayer/types",
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Adresář, kde jsou uloženy hlavní soubory aplikace.
|
|
450
|
+
*/
|
|
451
|
+
mainDir: ".intlayer/main",
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Adresář, kde jsou uloženy zkompilované soubory konfigurace.
|
|
455
|
+
*/
|
|
456
|
+
configDir: ".intlayer/config",
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Adresář pro soubory mezipaměti (cache).
|
|
460
|
+
*/
|
|
461
|
+
cacheDir: ".intlayer/cache",
|
|
462
|
+
},
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Konfigurace kompilátoru (pokročilé případy užití)
|
|
466
|
+
*/
|
|
467
|
+
compiler: {
|
|
468
|
+
/**
|
|
469
|
+
* Zda povolit kompilátor.
|
|
470
|
+
*
|
|
471
|
+
* - false: Zakázat kompilátor.
|
|
472
|
+
* - true: Povolit kompilátor.
|
|
473
|
+
* - "build-only": Přeskočit kompilátor při vývoji pro rychlejší spuštění.
|
|
474
|
+
*
|
|
475
|
+
* Výchozí: false
|
|
476
|
+
*/
|
|
477
|
+
enabled: true,
|
|
478
|
+
|
|
479
|
+
/**
|
|
480
|
+
* Definuje cestu pro výstupní soubory. Nahrazuje `outputDir`.
|
|
481
|
+
*
|
|
482
|
+
* - Cesty `./` se rozliší relativně k adresáři komponenty.
|
|
483
|
+
* - Cesty `/` se rozliší relativně ke kořenu projektu (`baseDir`).
|
|
484
|
+
*
|
|
485
|
+
* - Přítomnost proměnné `{{locale}}` v cestě aktivuje generování samostatných slovníků pro každou lokalitu.
|
|
486
|
+
*
|
|
487
|
+
* Příklad:
|
|
488
|
+
* ```ts
|
|
489
|
+
* {
|
|
490
|
+
* // Vytvářet vícejazyčné soubory .content.ts vedle komponenty
|
|
491
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
492
|
+
*
|
|
493
|
+
* // output: './{{fileName}}{{extension}}', // Ekvivalentní přes šablonový řetězec
|
|
494
|
+
* }
|
|
495
|
+
* ```
|
|
496
|
+
*
|
|
497
|
+
* ```ts
|
|
498
|
+
* {
|
|
499
|
+
* // Vytvářet centralizované JSON podle lokalit v kořenu projektu
|
|
500
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
501
|
+
*
|
|
502
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Ekvivalentní přes šablonový řetězec
|
|
503
|
+
* }
|
|
504
|
+
* ```
|
|
505
|
+
*
|
|
506
|
+
* Seznam proměnných:
|
|
507
|
+
* - `fileName`: Název souboru.
|
|
508
|
+
* - `key`: Klíč obsahu.
|
|
509
|
+
* - `locale`: Lokalita obsahu.
|
|
510
|
+
* - `extension`: Přípona souboru.
|
|
511
|
+
* - `componentFileName`: Název souboru komponenty.
|
|
512
|
+
* - `componentExtension`: Přípona souboru komponenty.
|
|
513
|
+
* - `format`: Formát slovníku.
|
|
514
|
+
* - `componentFormat`: Formát slovníku komponenty.
|
|
515
|
+
* - `componentDirPath`: Cesta k adresáři komponenty.
|
|
516
|
+
*/
|
|
517
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Zda ukládat komponenty po jejich transformaci.
|
|
521
|
+
* Tímto způsobem lze kompilátor spustit jednou pro transformaci aplikace a poté jej odstranit.
|
|
522
|
+
*/
|
|
523
|
+
saveComponents: false,
|
|
524
|
+
|
|
525
|
+
/**
|
|
526
|
+
* Do vygenerovaného souboru vložit pouze obsah. Užitečné pro výstupy ve formátu i18next nebo ICU MessageFormat JSON podle lokalit.
|
|
527
|
+
*/
|
|
528
|
+
noMetadata: false,
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Prefix klíče slovníku
|
|
532
|
+
*/
|
|
533
|
+
dictionaryKeyPrefix: "", // Přidat volitelný prefix pro extrahované klíče slovníků
|
|
534
|
+
},
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* Vlastní schémata pro validaci obsahu slovníků.
|
|
538
|
+
*/
|
|
539
|
+
schemas: {
|
|
540
|
+
"my-schema": z.object({
|
|
541
|
+
title: z.string(),
|
|
542
|
+
}),
|
|
543
|
+
},
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Konfigurace pluginů.
|
|
547
|
+
*/
|
|
548
|
+
plugins: [],
|
|
549
|
+
};
|
|
550
|
+
|
|
551
|
+
export default config;
|
|
552
|
+
````
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## Referenční příručka ke konfiguraci
|
|
557
|
+
|
|
558
|
+
Níže jsou popsány různé parametry konfigurace dostupné v Intlayer.
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
### Konfigurace internacionalizace (Internationalization)
|
|
563
|
+
|
|
564
|
+
Definuje nastavení související s internacionalizací, včetně dostupných lokalit a výchozí lokality.
|
|
565
|
+
|
|
566
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
567
|
+
| ----------------- | -------------------------------------------------------------------------------------------------- | ---------- | ------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | Seznam lokalit podporovaných v aplikaci. | `string[]` | `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | Seznam povinných lokalit v aplikaci. | `string[]` | `[]` | `[]` | • Pokud je prázdný, jsou v režimu `strict` povinné všechny lokality.<br/>• Ujistěte se, že povinné lokality jsou definovány také v poli `locales`. |
|
|
570
|
+
| `strictMode` | Zajišťuje robustní implementaci internacionalizovaného obsahu pomocí TypeScriptu. | `string` | `'inclusive'` | | • Pokud `"strict"`: funkce `t` vyžaduje definici každé deklarované lokality — vyvolá chybu, pokud některá chybí nebo není deklarována.<br/>• Pokud `"inclusive"`: varuje před chybějícími lokalitami, ale umožňuje použití existujících nedeklarovaných.<br/>• Pokud `"loose"`: přijímá jakoukoli existující lokalitu. |
|
|
571
|
+
| `defaultLocale` | Výchozí lokalita použitá jako záložní, pokud požadovaná lokalita není nalezena. | `string` | `Locales.ENGLISH` | `'en'` | Používá se k určení lokality, když není uvedena v URL, cookie nebo hlavičce. |
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
### Konfigurace editoru (Editor)
|
|
576
|
+
|
|
577
|
+
Definuje nastavení pro vestavěný vizuální editor, včetně portu serveru a stavu povolení.
|
|
578
|
+
|
|
579
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
580
|
+
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | URL aplikace. | `string` | `undefined` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Používá se k omezení původu (origin) editoru z bezpečnostních důvodů.<br/>• Pokud je nastaveno na `'*'`, je editor přístupný z jakéhokoli původu. |
|
|
582
|
+
| `port` | Port používaný serverem vizuálního editoru. | `number` | `8000` | | |
|
|
583
|
+
| `editorURL` | URL serveru editoru. | `string` | `'http://localhost:8000'` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Používá se k omezení původů, které mohou komunikovat s aplikací.<br/>• Pokud je nastaveno na `'*'`, je přístupný z jakéhokoli původu.<br/>• Musí být nastaveno, pokud byl změněn port nebo je editor hostován na jiné doméně. |
|
|
584
|
+
| `cmsURL` | URL Intlayer CMS. | `string` | `'https://app.intlayer.org'` | `'https://app.intlayer.org'` | |
|
|
585
|
+
| `backendURL` | URL backend serveru. | `string` | `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | Zda má aplikace komunikovat s vizuálním editorem. | `boolean` | `false` | `process.env.NODE_ENV !== 'production'` | • Pokud `false`, editor nemůže s aplikací komunikovat.<br/>• Zakázání pro určitá prostředí zvyšuje bezpečnost. |
|
|
587
|
+
| `clientId` | Umožňuje balíčkům intlayer autentizovat se na backendu přes oAuth2. Pro získání přístupového tokenu přejděte na [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Musí být uchováváno v tajnosti; použijte proměnné prostředí. |
|
|
588
|
+
| `clientSecret` | Umožňuje balíčkům intlayer autentizovat se na backendu přes oAuth2. Pro získání přístupového tokenu přejděte na [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Musí být uchováváno v tajnosti; použijte proměnné prostředí. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | Strategie priority slovníků, pokud existují lokální i vzdálené slovníky. | `string` | `'local_first'` | `'distant_first'` | • `'distant_first'`: prioritizuje vzdálené slovníky před lokálními.<br/>• `'local_first'`: prioritizuje lokální slovníky před vzdálenými. |
|
|
590
|
+
| `liveSync` | Zda má server aplikace okamžitě znovu načíst obsah při detekci změn v CMS <br/> Vizuálním editoru <br/> Backend serveru. | `boolean` | `true` | `true` | • Při přidání/aktualizaci slovníku aplikace aktualizuje obsah stránky.<br/>• Live Sync přesouvá obsah na jiný server, což může mírně ovlivnit výkon.<br/>• Doporučuje se hostovat obojí na stejném stroji. |
|
|
591
|
+
| `liveSyncPort` | Port serveru live sync. | `number` | `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | URL serveru live sync. | `string` | `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Ve výchozím nastavení ukazuje na localhost; lze změnit na vzdálený server live sync. |
|
|
593
|
+
|
|
594
|
+
---
|
|
595
|
+
|
|
596
|
+
### Konfigurace routování (Routing)
|
|
597
|
+
|
|
598
|
+
Nastavení ovládající chování routování, včetně struktury URL, ukládání lokalit a správy middleware.
|
|
599
|
+
|
|
600
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
601
|
+
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
602
|
+
| `mode` | Režim routování URL pro správu lokalit. | `'prefix-no-default'` | <br/> `'prefix-all'` | <br/> `'no-prefix'` | <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) nebo `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: lokalita spravována jinými způsoby. `'search-params'`: `/dashboard?locale=fr` | Neovlivňuje správu cookies nebo úložiště lokalit. |
|
|
603
|
+
| `storage` | Konfigurace ukládání lokality na klientovi. | `false` | <br/> `'cookie'` | <br/> `'localStorage'` | <br/> `'sessionStorage'` | <br/> `'header'` | <br/> `CookiesAttributes` | <br/> `StorageAttributes` | <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Viz tabulka parametrů úložiště níže. |
|
|
604
|
+
| `basePath` | Základní cesta pro URL aplikace. | `string` | `''` | `'/my-app'` | Pokud aplikace běží na adrese `https://example.com/my-app`, basePath je `'/my-app'` a URL se stanou `https://example.com/my-app/en`. |
|
|
605
|
+
| `rewrite` | Vlastní pravidla přepisu URL, která přebíjejí výchozí režim routování pro konkrétní cesty. Podporuje dynamické parametry `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Viz příklad níže | • Pravidla přepisu mají prioritu před `mode`.<br/>• Funguje s Next.js a Vite.<br/>• `getLocalizedUrl()` automaticky aplikuje odpovídající pravidla.<br/>• Viz [Vlastní přepisy URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
|
|
606
|
+
|
|
607
|
+
**Příklad `rewrite`**:
|
|
608
|
+
|
|
609
|
+
```typescript
|
|
610
|
+
routing: {
|
|
611
|
+
mode: "prefix-no-default", // Záložní strategie
|
|
612
|
+
rewrite: nextjsRewrite({
|
|
613
|
+
"/about": {
|
|
614
|
+
en: "/about",
|
|
615
|
+
fr: "/a-propos",
|
|
616
|
+
},
|
|
617
|
+
"/product/[slug]": {
|
|
618
|
+
en: "/product/[slug]",
|
|
619
|
+
fr: "/produit/[slug]",
|
|
620
|
+
},
|
|
621
|
+
"/blog/[category]/[id]": {
|
|
622
|
+
en: "/blog/[category]/[id]",
|
|
623
|
+
fr: "/journal/[category]/[id]",
|
|
624
|
+
},
|
|
625
|
+
}),
|
|
626
|
+
}
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
#### Parametry úložiště (Storage)
|
|
630
|
+
|
|
631
|
+
| Hodnota | Poznámka | Popis |
|
|
632
|
+
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
|
633
|
+
| `'cookie'` | • Pro soulad s GDPR zajistěte řádný souhlas uživatele.<br/>• Nastavitelné přes `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). | Ukládá lokalitu v cookies — dostupné na klientovi i serveru. |
|
|
634
|
+
| `'localStorage'` | • Nevyprší, dokud není explicitně smazáno.<br/>• Proxy Intlayer k tomu nemá přístup.<br/>• Nastavitelné přes `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | Ukládá lokalitu v prohlížeči bez omezení doby — pouze na straně klienta. |
|
|
635
|
+
| `'sessionStorage'` | • Smaže se po zavření karty/okna.<br/>• Proxy Intlayer k tomu nemá přístup.<br/>• Nastavitelné přes `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). | Ukládá lokalitu po dobu relace stránky — pouze na straně klienta. |
|
|
636
|
+
| `'header'` | • Užitečné pro volání API.<br/>• Strana klienta k tomu nemá přístup.<br/>• Nastavitelné přes `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). | Ukládá nebo předává lokalitu přes HTTP hlavičky — pouze na straně serveru. |
|
|
637
|
+
|
|
638
|
+
#### Atributy cookie (Cookies Attributes)
|
|
639
|
+
|
|
640
|
+
Při použití ukládání v cookies lze nastavit další atributy:
|
|
641
|
+
|
|
642
|
+
| Pole | Popis | Typ |
|
|
643
|
+
| ---------- | ------------------------------------------- | ---------------------------------------------------- |
|
|
644
|
+
| `name` | Název cookie. Výchozí: `'INTLAYER_LOCALE'` | `string` |
|
|
645
|
+
| `domain` | Doména cookie. Výchozí: `undefined` | `string` |
|
|
646
|
+
| `path` | Cesta cookie. Výchozí: `undefined` | `string` |
|
|
647
|
+
| `secure` | Vyžadovat HTTPS. Výchozí: `undefined` | `boolean` |
|
|
648
|
+
| `httpOnly` | Vlajka HTTP-only. Výchozí: `undefined` | `boolean` |
|
|
649
|
+
| `sameSite` | Politika SameSite. | `'strict'` | <br/> `'lax'` | <br/> `'none'` |
|
|
650
|
+
| `expires` | Datum vypršení nebo počet dní. Výchozí: `undefined` | `Date` | <br/> `number` |
|
|
651
|
+
|
|
652
|
+
#### Atributy úložiště (Storage Attributes)
|
|
653
|
+
|
|
654
|
+
Při použití localStorage nebo sessionStorage:
|
|
655
|
+
|
|
656
|
+
| Pole | Popis | Typ |
|
|
657
|
+
| ------ | ----------------------------------------------- | ------------------------------------------------ |
|
|
658
|
+
| `type` | Typ úložiště. | `'localStorage'` | <br/> `'sessionStorage'` |
|
|
659
|
+
| `name` | Název klíče v úložišti. Výchozí: `'INTLAYER_LOCALE'` | `string` |
|
|
660
|
+
|
|
661
|
+
#### Příklady konfigurace
|
|
662
|
+
|
|
663
|
+
Zde je několik běžných příkladů konfigurace pro novou strukturu routování v7:
|
|
664
|
+
|
|
665
|
+
**Základní konfigurace (výchozí)**:
|
|
666
|
+
|
|
667
|
+
```typescript
|
|
668
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
669
|
+
// intlayer.config.ts
|
|
670
|
+
const config: IntlayerConfig = {
|
|
671
|
+
internationalization: {
|
|
672
|
+
locales: ["en", "fr", "es"],
|
|
673
|
+
defaultLocale: "en",
|
|
674
|
+
},
|
|
675
|
+
routing: {
|
|
676
|
+
mode: "prefix-no-default",
|
|
677
|
+
storage: "localStorage",
|
|
678
|
+
basePath: "",
|
|
679
|
+
},
|
|
680
|
+
};
|
|
681
|
+
|
|
682
|
+
export default config;
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
**Konfigurace se souladem s GDPR**:
|
|
686
|
+
|
|
687
|
+
```typescript
|
|
688
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
689
|
+
// intlayer.config.ts
|
|
690
|
+
const config: IntlayerConfig = {
|
|
691
|
+
internationalization: {
|
|
692
|
+
locales: ["en", "fr", "es"],
|
|
693
|
+
defaultLocale: "en",
|
|
694
|
+
},
|
|
695
|
+
routing: {
|
|
696
|
+
mode: "prefix-no-default",
|
|
697
|
+
storage: [
|
|
698
|
+
{
|
|
699
|
+
type: "localStorage",
|
|
700
|
+
name: "user-locale",
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
type: "cookie",
|
|
704
|
+
name: "user-locale",
|
|
705
|
+
secure: true,
|
|
706
|
+
sameSite: "strict",
|
|
707
|
+
httpOnly: false,
|
|
708
|
+
},
|
|
709
|
+
],
|
|
710
|
+
basePath: "",
|
|
711
|
+
},
|
|
712
|
+
};
|
|
713
|
+
|
|
714
|
+
export default config;
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
**Režim parametrů hledání (Search Params)**:
|
|
718
|
+
|
|
719
|
+
```typescript
|
|
720
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
721
|
+
// intlayer.config.ts
|
|
722
|
+
const config: IntlayerConfig = {
|
|
723
|
+
internationalization: {
|
|
724
|
+
locales: ["en", "fr", "es"],
|
|
725
|
+
defaultLocale: "en",
|
|
726
|
+
},
|
|
727
|
+
routing: {
|
|
728
|
+
mode: "search-params",
|
|
729
|
+
storage: "localStorage",
|
|
730
|
+
basePath: "",
|
|
731
|
+
},
|
|
732
|
+
};
|
|
733
|
+
|
|
734
|
+
export default config;
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
**Režim bez prefixu s vlastním úložištěm**:
|
|
738
|
+
|
|
739
|
+
```typescript
|
|
740
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
741
|
+
// intlayer.config.ts
|
|
742
|
+
const config: IntlayerConfig = {
|
|
743
|
+
internationalization: {
|
|
744
|
+
locales: ["en", "fr", "es"],
|
|
745
|
+
defaultLocale: "en",
|
|
746
|
+
},
|
|
747
|
+
routing: {
|
|
748
|
+
mode: "no-prefix",
|
|
749
|
+
storage: {
|
|
750
|
+
type: "sessionStorage",
|
|
751
|
+
name: "app-locale",
|
|
752
|
+
},
|
|
753
|
+
basePath: "/my-app",
|
|
754
|
+
},
|
|
755
|
+
};
|
|
756
|
+
|
|
757
|
+
export default config;
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
**Vlastní přepis URL s dynamickými cestami**:
|
|
761
|
+
|
|
762
|
+
```typescript
|
|
763
|
+
// intlayer.config.ts
|
|
764
|
+
import { nextjsRewrite } from "intlayer/routing";
|
|
765
|
+
|
|
766
|
+
const config: IntlayerConfig = {
|
|
767
|
+
internationalization: {
|
|
768
|
+
locales: ["en", "fr"],
|
|
769
|
+
defaultLocale: "en",
|
|
770
|
+
},
|
|
771
|
+
routing: {
|
|
772
|
+
mode: "prefix-no-default", // Záloha pro nepřepsané cesty
|
|
773
|
+
storage: "cookie",
|
|
774
|
+
rewrite: nextjsRewrite({
|
|
775
|
+
"/about": {
|
|
776
|
+
en: "/about",
|
|
777
|
+
fr: "/a-propos",
|
|
778
|
+
},
|
|
779
|
+
"/product/[slug]": {
|
|
780
|
+
en: "/product/[slug]",
|
|
781
|
+
fr: "/produit/[slug]",
|
|
782
|
+
},
|
|
783
|
+
"/blog/[category]/[id]": {
|
|
784
|
+
en: "/blog/[category]/[id]",
|
|
785
|
+
fr: "/journal/[category]/[id]",
|
|
786
|
+
},
|
|
787
|
+
}),
|
|
788
|
+
},
|
|
789
|
+
};
|
|
790
|
+
|
|
791
|
+
export default config;
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
---
|
|
795
|
+
|
|
796
|
+
### Konfigurace obsahu (Content)
|
|
797
|
+
|
|
798
|
+
Nastavení související s tím, jak se obsah spravuje v aplikaci, včetně názvů adresářů, přípon souborů a odvozených konfigurací.
|
|
799
|
+
|
|
800
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
801
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
802
|
+
| `watch` | Udává, zda má Intlayer sledovat změny v souborech deklarace obsahu pro regeneraci slovníků. | `boolean` | `true` | | |
|
|
803
|
+
| `fileExtensions` | Přípony souborů pro skenování při kompilaci slovníků. | `string[]` | `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']` | `['.data.ts', '.data.js', '.data.json']` | Přizpůsobení pomůže vyhnout se konfliktům. |
|
|
804
|
+
| `contentDir` | Cesta k adresáři, kde jsou uloženy soubory definice obsahu (`.content.*`). | `string[]` | `['.']` | `['src', '../../ui-library', require.resolve("@my-package/content")]` | Používá se pro sledování souborů obsahu a regeneraci slovníků. |
|
|
805
|
+
| `codeDir` | Cesta k adresáři, kde je uložen kód, relativně k základnímu adresáři. | `string[]` | `['.']` | `['src', '../../ui-library']` | • Používá se pro sledování souborů kódu pro transformaci (odstranění zbytečného, optimalizace).<br/>• Oddělení od `contentDir` může zvýšit výkon. |
|
|
806
|
+
| `excludedPath` | Adresáře vyloučené ze skenování obsahu. | `string[]` | `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']` | | Zatím se nepoužívá; plánováno pro budoucnost. |
|
|
807
|
+
| `formatCommand` | Příkaz pro formátování souborů obsahu při jejich lokálním zápisu Intlayerem. | `string` | `undefined` | `'npx prettier --write "{{file}}" --log-level silent'` (Prettier), `'npx biome format "{{file}}" --write --log-level none'` (Biome), `'npx eslint --fix "{{file}}" --quiet'` (ESLint) | • `{{file}}` bude nahrazeno cestou k souboru.<br/>• Pokud není definováno, Intlayer určí automaticky (testuje prettier, biome, eslint). |
|
|
808
|
+
|
|
809
|
+
---
|
|
810
|
+
|
|
811
|
+
### Konfigurace slovníků (Dictionary)
|
|
812
|
+
|
|
813
|
+
Parametry ovládající operace se slovníky, včetně chování automatického doplnění a generování obsahu.
|
|
814
|
+
|
|
815
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
816
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
817
|
+
| `fill` | Ovládá, jak se generují výstupní soubory automatického doplnění (překlad AI). | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: výchozí cesta (stejný soubor jako zdroj).<br/>• `false`: zakázat.<br/>• Šablona řetězec/funkce generuje soubory podle lokalit.<br/>• Objekt podle lokalit: každá lokalita odpovídá své šabloně; `false` ignoruje tuto lokalitu.<br/>• Zahrnutí `{{locale}}` aktivuje generování podle lokalit.<br/>• `fill` na úrovni slovníku má vždy prioritu před tímto globálním nastavením. |
|
|
818
|
+
| `description` | Pomáhá editoru a CMS pochopit účel slovníku. Také se používá jako kontext pro generování překladů pomocí AI. | `string` | `undefined` | `'User profile section'` | |
|
|
819
|
+
| `locale` | Transformuje slovník do formátu pro konkrétní lokalitu. Každé deklarované pole se stává uzlem překladu. Pokud chybí, slovník je považován za vícejazyčný. | `LocalesValues` | `undefined` | `'en'` | Použijte toto, pokud je slovník určen pro jednu konkrétní lokalitu, nikoli pro více překladů. |
|
|
820
|
+
| `contentAutoTransformation` | Automaticky transformuje řetězce obsahu do typovaných uzlů (markdown, HTML nebo vložení). | `boolean` | <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')`.<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')`.<br/>• Vložení : `Hello {{name}}` → `insert('Hello {{name}}')`. |
|
|
821
|
+
| `location` | Udává, kde jsou uloženy soubory slovníků a jak jsou synchronizovány s CMS. | `'local'` | <br/> `'remote'` | <br/> `'hybrid'` | <br/> `'plugin'` | <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: správa pouze lokálně.<br/>• `'remote'`: správa pouze vzdáleně (CMS).<br/>• `'hybrid'`: správa lokálně i vzdáleně.<br/>• `'plugin'` nebo vlastní řetězec: správa pluginem nebo vlastním zdrojem. |
|
|
822
|
+
| `importMode` | Ovládá způsob importu slovníků. | `'static'` | <br/> `'dynamic'` | <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: statický import.<br/>• `'dynamic'`: dynamický import přes Suspense.<br/>• `'fetch'`: načtení přes Live Sync API; odklad na `'dynamic'` při neúspěchu.<br/>• Vyžaduje pluginy `@intlayer/babel` a `@intlayer/swc`.<br/>• Klíče musí být deklarovány staticky.<br/>• Ignorováno, pokud je `optimize` vypnuto.<br/>• Neovlivňuje `getIntlayer`, `getDictionary` atd. |
|
|
823
|
+
| `priority` | Priorita slovníku. Vyšší hodnoty vítězí nad nižšími při řešení konfliktů mezi slovníky. | `number` | `undefined` | `1` | |
|
|
824
|
+
| `live` | Zastaralé — použijte `importMode: 'fetch'`. Udávalo, zda se má obsah slovníku načítat dynamicky přes Live Sync API. | `boolean` | `undefined` | | Přejmenováno na `importMode: 'fetch'` ve v8.0.0. |
|
|
825
|
+
| `schema` | Generováno automaticky Intlayerem pro validaci JSON schématu. | `'https://intlayer.org/schema.json'` | auto-generace | | Neupravujte ručně. |
|
|
826
|
+
| `title` | Pomáhá identifikovat slovník v editoru a CMS. | `string` | `undefined` | `'User Profile'` | |
|
|
827
|
+
| `tags` | Kategorizuje slovníky a poskytuje kontext nebo instrukce pro editor a AI. | `string[]` | `undefined` | `['user', 'profile']` | |
|
|
828
|
+
| `version` | Verze vzdáleného slovníku; pomáhá sledovat aktuálně používanou verzi. | `string` | `undefined` | `'1.0.0'` | • Spravováno v CMS.<br/>• Neupravujte lokálně. |
|
|
829
|
+
|
|
830
|
+
**Příklad `fill`**:
|
|
831
|
+
|
|
832
|
+
```ts
|
|
833
|
+
dictionary: {
|
|
834
|
+
fill: {
|
|
835
|
+
en: "/locales/en/{{key}}.content.json",
|
|
836
|
+
fr: ({ key }) => `/locales/fr/${key}.content.json`,
|
|
837
|
+
es: false,
|
|
838
|
+
},
|
|
839
|
+
};
|
|
840
|
+
```
|
|
841
|
+
|
|
842
|
+
---
|
|
843
|
+
|
|
844
|
+
### Konfigurace logování (Log)
|
|
845
|
+
|
|
846
|
+
Parametry pro přizpůsobení výstupu logování Intlayer.
|
|
847
|
+
|
|
848
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
849
|
+
| -------- | --------------------------------- | -------------------------------------------------------------- | ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
850
|
+
| `mode` | Udává režim logování. | `'default'` | <br/> `'verbose'` | <br/> `'disabled'` | `'default'` | `'verbose'` | • `'verbose'`: loguje více informací pro ladění.<br/>• `'disabled'`: úplně vypne logování. |
|
|
851
|
+
| `prefix` | Prefix pro všechny zprávy v logu. | `string` | `'[intlayer] '` | `'[my prefix] '` | |
|
|
852
|
+
|
|
853
|
+
---
|
|
854
|
+
|
|
855
|
+
### Konfigurace AI (AI)
|
|
856
|
+
|
|
857
|
+
Nastavení ovládající AI funkce Intlayer, včetně poskytovatele, modelu a API klíče.
|
|
858
|
+
|
|
859
|
+
Tato konfigurace je volitelná, pokud jste registrováni v [Intlayer Dashboard](https://app.intlayer.org/project) s přístupovým klíčem. Intlayer bude automaticky spravovat nejefektivnější a nejúspornější řešení AI pro vaše potřeby. Použití výchozích možností zaručuje nejlepší dlouhodobou podporu, protože Intlayer se neustále aktualizuje pro použití nejaktuálnějších modelů.
|
|
860
|
+
|
|
861
|
+
Pokud dáváte přednost použití vlastního API klíče nebo konkrétního modelu, můžete definovat svou konfiguraci AI.
|
|
862
|
+
Tato konfigurace AI bude použita globálně ve vašem prostředí Intlayer. Příkazy CLI budou používat tato nastavení jako výchozí pro příkazy jako `fill`, stejně jako SDK, vizuální editor a CMS. Tyto výchozí hodnoty můžete přebít pro konkrétní případy užití přes parametry příkazů.
|
|
863
|
+
|
|
864
|
+
Intlayer podporuje několik AI poskytovatelů pro maximální flexibilitu. V současnosti jsou podporováni tito poskytovatelé:
|
|
865
|
+
|
|
866
|
+
- **OpenAI** (Výchozí)
|
|
867
|
+
- **Anthropic Claude**
|
|
868
|
+
- **Mistral AI**
|
|
869
|
+
- **DeepSeek**
|
|
870
|
+
- **Google Gemini**
|
|
871
|
+
- **Google AI Studio**
|
|
872
|
+
- **Google Vertex**
|
|
873
|
+
- **Meta Llama**
|
|
874
|
+
- **Ollama**
|
|
875
|
+
- **OpenRouter**
|
|
876
|
+
- **Alibaba Cloud**
|
|
877
|
+
- **Fireworks**
|
|
878
|
+
- **Hugging Face**
|
|
879
|
+
- **Groq**
|
|
880
|
+
- **Amazon Bedrock**
|
|
881
|
+
- **Together.ai**
|
|
882
|
+
|
|
883
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
884
|
+
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
885
|
+
| `provider` | Poskytovatel použitý pro AI funkce Intlayer. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | `undefined`| `'anthropic'` | Různí poskytovatelé vyžadují různé API klíče a mají různé ceny. |
|
|
886
|
+
| `model` | Model použitý pro AI funkce. | `string` | Žádný | `'gpt-4o-2024-11-20'` | Konkrétní model závisí na poskytovateli. |
|
|
887
|
+
| `temperature` | Ovládá náhodnost odpovědí AI. | `number` | Žádný | `0.1` | Vyšší teplota = kreativnější a méně předvídatelné. |
|
|
888
|
+
| `apiKey` | Váš API klíč pro zvoleného poskytovatele. | `string` | Žádný | `process.env.OPENAI_API_KEY` | Musí být uchováváno v tajnosti; použijte proměnné prostředí. |
|
|
889
|
+
| `applicationContext` | Dodatečný kontext o vaší aplikaci, který pomůže AI generovat přesnější překlady (doména, cílová skupina, tón, terminologie). | `string` | Žádný | `'Můj vlastní kontext aplikace'` | Lze použít k přidání pravidel (např.: `"Neměli byste transformovat URL"`). |
|
|
890
|
+
| `baseURL` | Základní URL pro AI API. | `string` | Žádný | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Může ukazovat na lokální nebo vlastní endpoint AI API. |
|
|
891
|
+
| `dataSerialization` | Formát serializace dat pro AI funkce. | `'json'` | <br/> `'toon'` | `undefined`| `'toon'` | • `'json'`: výchozí, spolehlivé; spotřebovává více tokenů.<br/>• `'toon'`: méně tokenů, méně stabilní.<br/>• Další parametry se předávají modelu jako kontext (úsilí uvažování atd.). |
|
|
892
|
+
|
|
893
|
+
---
|
|
894
|
+
|
|
895
|
+
### Konfigurace sestavení (Build)
|
|
896
|
+
|
|
897
|
+
Parametry ovládající, jak Intlayer optimalizuje a kompiluje internacionalizaci vaší aplikace.
|
|
898
|
+
|
|
899
|
+
Volby sestavení se aplikují na pluginy `@intlayer/babel` a `@intlayer/swc`.
|
|
900
|
+
|
|
901
|
+
> Ve vývojovém režimu používá Intlayer statický import slovníků pro zjednodušení vývojového procesu.
|
|
902
|
+
|
|
903
|
+
> Během optimalizace Intlayer nahradí volání slovníků pro optimalizaci dělení kódu (chunking), aby výsledný balíček importoval pouze ty slovníky, které se skutečně používají.
|
|
904
|
+
|
|
905
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
906
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
907
|
+
| `mode` | Ovládá režim sestavení. | `'auto'` | <br/> `'manual'` | `'auto'` | `'manual'` | • `'auto'`: sestavení se spustí automaticky během sestavení aplikace.<br/>• `'manual'`: provede se pouze při explicitním volání příkazu sestavení.<br/>• Lze použít k vypnutí sestavení slovníků (např. pro zamezení běhu v prostředích Node.js). |
|
|
908
|
+
| `optimize` | Ovládá, zda se má provádět optimalizace sestavení. | `boolean` | `undefined` | `process.env.NODE_ENV === 'production'` | • Pokud není definováno, optimalizace se spustí při sestavení frameworku (Vite/Next.js).<br/>• `true` vynutí optimalizaci i v dev režimu.<br/>• `false` ji vypne.<br/>• Pokud je zapnuto, nahradí volání slovníků pro optimalizaci chunkingu.<br/>• Vyžaduje pluginy `@intlayer/babel` a `@intlayer/swc`. |
|
|
909
|
+
| `checkTypes` | Udává, zda má sestavení kontrolovat typy TypeScript a logovat chyby. | `boolean` | `false` | | Může zpomalit proces sestavení. |
|
|
910
|
+
| `outputFormat` | Ovládá výstupní formát slovníků. | `('esm' | 'cjs')[]` | `['esm', 'cjs']` | `['cjs']` | |
|
|
911
|
+
| `traversePattern` | Vzory definující, které soubory skenovat během optimalizace. | `string[]` | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • Omezte optimalizaci na relevantní soubory pro zvýšení výkonu sestavení.<br/>• Ignorovalo by se, kdyby byl `optimize` vypnutý.<br/>• Používá vzory glob. |
|
|
912
|
+
|
|
913
|
+
---
|
|
914
|
+
|
|
915
|
+
### Systémová konfigurace (System)
|
|
916
|
+
|
|
917
|
+
Tato nastavení jsou určena pro pokročilé případy užití a vnitřní konfiguraci Intlayer.
|
|
918
|
+
|
|
919
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
920
|
+
| ------------------------- | ---------------------------------------------------- | -------- | --------------------------------- | ------ | ---------- |
|
|
921
|
+
| `dictionariesDir` | Adresář pro zkompilované slovníky. | `string` | `'.intlayer/dictionary'` | | |
|
|
922
|
+
| `moduleAugmentationDir` | Adresář pro rozšíření modulů TypeScript. | `string` | `'.intlayer/types'` | | |
|
|
923
|
+
| `unmergedDictionariesDir` | Adresář pro uložení nesloučených slovníků. | `string` | `'.intlayer/unmerged_dictionary'` | | |
|
|
924
|
+
| `typesDir` | Adresář pro vygenerované typy. | `string` | `'.intlayer/types'` | | |
|
|
925
|
+
| `mainDir` | Adresář hlavního souboru Intlayer. | `string` | `'.intlayer/main'` | | |
|
|
926
|
+
| `configDir` | Adresář zkompilovaných souborů konfigurace. | `string` | `'.intlayer/config'` | | |
|
|
927
|
+
| `cacheDir` | Adresář souborů mezipaměti (cache). | `string` | `'.intlayer/cache'` | | |
|
|
928
|
+
|
|
929
|
+
---
|
|
930
|
+
|
|
931
|
+
### Konfigurace kompilátoru (Compiler)
|
|
932
|
+
|
|
933
|
+
Nastavení ovládající kompilátor Intlayer, který extrahuje slovníky přímo z vašich komponent.
|
|
934
|
+
|
|
935
|
+
| Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
|
|
936
|
+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
937
|
+
| `enabled` | Udává, zda má být kompilátor povolen pro extrakci slovníků. | `boolean` | <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` přeskočí kompilátor při vývoji pro rychlejší sestavení; provede se pouze při příkazech sestavení. |
|
|
938
|
+
| `dictionaryKeyPrefix` | Prefix pro extrahované klíče slovníků. | `string` | `''` | `'my-prefix-'` | Přidává se k vygenerovanému klíči (na základě názvu souboru) pro zamezení konfliktům. |
|
|
939
|
+
| `saveComponents` | Zda mají být komponenty uloženy po jejich transformaci. | `boolean` | `false` | | • Pokud `true`, přepíše původní soubory jejich transformovanými verzemi.<br/>• Kompilátor lze po jednom spuštění odstranit. |
|
|
940
|
+
| `output` | Definuje cestu pro výstupní soubory. Nahrazuje `outputDir`. Podporuje proměnné šablony: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • Cesty `./` se rozliší relativně k adresáři komponenty.<br/>• Cesty `/` relativně ke kořenu.<br/>• `{{locale}}` zahrnuje generování podle lokalit.<br/>• Podporuje objektovou notaci pro každou lokalitu. |
|
|
941
|
+
| `noMetadata` | Pokud `true`, kompilátor vynechá metadata slovníku (klíč, obal obsahu) z výstupu. | `boolean` | `false` | `false` → `{"key":"my-key","content":{"key":"value"}}` <br/> `true` → `{"key":"value"}` | • Užitečné pro výstupy ve formátu i18next nebo ICU MessageFormat JSON.<br/>• Dobře funguje s pluginem `loadJSON`. |
|
|
942
|
+
| `dictionaryKeyPrefix` | Prefix klíče slovníku | `string` | `''` | | Přidat volitelný prefix pro extrahované klíče slovníků |
|
|
943
|
+
|
|
944
|
+
---
|
|
945
|
+
|
|
946
|
+
### Vlastní schémata (Custom Schemas)
|
|
947
|
+
|
|
948
|
+
| Pole | Popis | Typ |
|
|
949
|
+
| --------- | ------------------------------------------------------------------------------- | --------------------------- |
|
|
950
|
+
| `schemas` | Umožňuje definovat schémata Zod pro validaci struktury vašich slovníků. | `Record<string, ZodSchema>` |
|
|
951
|
+
|
|
952
|
+
---
|
|
953
|
+
|
|
954
|
+
### Pluginy (Plugins)
|
|
955
|
+
|
|
956
|
+
| Pole | Popis | Typ |
|
|
957
|
+
| --------- | ----------------------------------------- | ------------------ |
|
|
958
|
+
| `plugins` | Seznam pluginů Intlayer pro zahrnutí. | `IntlayerPlugin[]` |
|