@intlayer/docs 8.4.5 → 8.4.6
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/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/configuration.md +520 -722
- package/docs/ar/intlayer_with_storybook.md +521 -0
- package/docs/bn/configuration.md +922 -0
- package/docs/bn/intlayer_with_hono.md +428 -0
- package/docs/de/configuration.md +369 -743
- package/docs/de/intlayer_with_storybook.md +521 -0
- package/docs/en/configuration.md +181 -507
- package/docs/en/intlayer_with_storybook.md +521 -0
- package/docs/en-GB/configuration.md +456 -657
- package/docs/en-GB/intlayer_with_storybook.md +521 -0
- package/docs/es/configuration.md +379 -754
- package/docs/es/intlayer_with_storybook.md +521 -0
- package/docs/fr/configuration.md +376 -757
- package/docs/fr/intlayer_with_storybook.md +521 -0
- package/docs/hi/configuration.md +532 -728
- package/docs/hi/intlayer_with_storybook.md +521 -0
- package/docs/id/configuration.md +371 -684
- package/docs/id/intlayer_with_storybook.md +521 -0
- package/docs/it/configuration.md +397 -775
- package/docs/it/intlayer_with_storybook.md +521 -0
- package/docs/ja/configuration.md +525 -724
- package/docs/ja/intlayer_with_storybook.md +521 -0
- package/docs/ko/configuration.md +525 -724
- package/docs/ko/intlayer_with_storybook.md +521 -0
- package/docs/pl/configuration.md +430 -734
- package/docs/pl/intlayer_with_storybook.md +521 -0
- package/docs/pt/configuration.md +375 -746
- package/docs/pt/intlayer_with_storybook.md +521 -0
- package/docs/ru/configuration.md +532 -701
- package/docs/ru/intlayer_with_storybook.md +521 -0
- package/docs/tr/configuration.md +527 -719
- package/docs/tr/intlayer_with_storybook.md +521 -0
- package/docs/uk/configuration.md +425 -744
- package/docs/uk/intlayer_with_storybook.md +521 -0
- package/docs/ur/configuration.md +922 -0
- package/docs/ur/intlayer_with_hono.md +428 -0
- package/docs/vi/configuration.md +412 -753
- package/docs/vi/intlayer_with_storybook.md +521 -0
- package/docs/zh/configuration.md +521 -714
- package/docs/zh/intlayer_with_storybook.md +521 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
package/docs/pl/configuration.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
4
|
-
title: Konfiguracja
|
|
5
|
-
description: Dowiedz się, jak skonfigurować Intlayer dla swojej aplikacji. Zrozum różne ustawienia i opcje dostępne do dostosowania
|
|
3
|
+
updatedAt: 2026-03-20
|
|
4
|
+
title: Konfiguracja (Configuration)
|
|
5
|
+
description: Dowiedz się, jak skonfigurować Intlayer dla swojej aplikacji. Zrozum różne ustawienia i opcje dostępne do dostosowania Intlayera do swoich potrzeb.
|
|
6
6
|
keywords:
|
|
7
7
|
- Konfiguracja
|
|
8
8
|
- Ustawienia
|
|
9
|
-
-
|
|
9
|
+
- Dostosowanie
|
|
10
10
|
- Intlayer
|
|
11
11
|
- Opcje
|
|
12
12
|
slugs:
|
|
@@ -14,30 +14,45 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.4.0
|
|
18
|
+
date: 2026-03-20
|
|
19
|
+
changes: Dodano notację obiektową dla poszczególnych wersji językowych dla 'compiler.output' i 'dictionary.fill'
|
|
17
20
|
- version: 8.3.0
|
|
18
21
|
date: 2026-03-11
|
|
19
|
-
changes:
|
|
22
|
+
changes: Przeniesiono 'baseDir' z konfiguracji 'content' do konfiguracji 'system'
|
|
20
23
|
- version: 8.2.0
|
|
21
24
|
date: 2026-03-09
|
|
22
|
-
changes:
|
|
25
|
+
changes: Zaktualizowano opcje kompilatora (compiler), dodano wsparcie dla 'output' i 'noMetadata'
|
|
23
26
|
- version: 8.1.7
|
|
24
27
|
date: 2026-02-25
|
|
25
|
-
changes:
|
|
28
|
+
changes: Zaktualizowano opcje kompilatora
|
|
29
|
+
- version: 8.1.5
|
|
30
|
+
date: 2026-02-23
|
|
31
|
+
changes: Dodano opcję kompilatora 'build-only' i prefiks słownika
|
|
26
32
|
- version: 8.0.6
|
|
27
33
|
date: 2026-02-12
|
|
28
|
-
changes:
|
|
34
|
+
changes: Dodano wsparcie dla dostawców Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face i Together.ai
|
|
29
35
|
- version: 8.0.5
|
|
30
36
|
date: 2026-02-06
|
|
31
37
|
changes: Dodano `dataSerialization` do konfiguracji AI
|
|
38
|
+
- version: 8.0.0
|
|
39
|
+
date: 2026-01-24
|
|
40
|
+
changes: Zmieniono nazwę trybu importu `live` na `fetch`, aby lepiej opisać mechanizm bazowy.
|
|
41
|
+
- version: 8.0.0
|
|
42
|
+
date: 2026-01-22
|
|
43
|
+
changes: Przeniesiono konfigurację budowania `importMode` do konfiguracji słownika `dictionary`.
|
|
32
44
|
- version: 8.0.0
|
|
33
45
|
date: 2026-01-22
|
|
34
|
-
changes:
|
|
46
|
+
changes: Dodano opcję `rewrite` do konfiguracji routingu
|
|
35
47
|
- version: 8.0.0
|
|
36
48
|
date: 2026-01-18
|
|
37
|
-
changes:
|
|
49
|
+
changes: Oddzielono konfigurację systemu od konfiguracji treści. Przeniesiono ścieżki wewnętrzne do właściwości `system`. Dodano `codeDir`, aby oddzielić pliki treści i transformację kodu.
|
|
38
50
|
- version: 8.0.0
|
|
39
51
|
date: 2026-01-18
|
|
40
52
|
changes: Dodano opcje słownika `location` i `schema`
|
|
53
|
+
- version: 7.5.1
|
|
54
|
+
date: 2026-01-10
|
|
55
|
+
changes: Dodano wsparcie dla formatów plików JSON5 i JSONC
|
|
41
56
|
- version: 7.5.0
|
|
42
57
|
date: 2025-12-17
|
|
43
58
|
changes: Dodano opcję `buildMode`
|
|
@@ -46,7 +61,7 @@ history:
|
|
|
46
61
|
changes: Dodano konfigurację `dictionary`
|
|
47
62
|
- version: 7.0.0
|
|
48
63
|
date: 2025-10-21
|
|
49
|
-
changes: Zastąpiono
|
|
64
|
+
changes: Zastąpiono `middleware` konfiguracją routingu `routing`
|
|
50
65
|
- version: 7.0.0
|
|
51
66
|
date: 2025-10-12
|
|
52
67
|
changes: Dodano opcję `formatCommand`
|
|
@@ -58,13 +73,13 @@ history:
|
|
|
58
73
|
changes: Dodano opcję `outputFormat`
|
|
59
74
|
- version: 6.0.0
|
|
60
75
|
date: 2025-09-21
|
|
61
|
-
changes: Usunięto
|
|
76
|
+
changes: Usunięto pola `dictionaryOutput` i `i18nextResourcesDir`
|
|
62
77
|
- version: 6.0.0
|
|
63
78
|
date: 2025-09-16
|
|
64
79
|
changes: Dodano tryb importu `live`
|
|
65
80
|
- version: 6.0.0
|
|
66
81
|
date: 2025-09-04
|
|
67
|
-
changes: Zastąpiono pole `hotReload`
|
|
82
|
+
changes: Zastąpiono pole `hotReload` przez `liveSync` oraz dodano pola `liveSyncPort` i `liveSyncURL`
|
|
68
83
|
- version: 5.6.1
|
|
69
84
|
date: 2025-07-25
|
|
70
85
|
changes: Zastąpiono `activateDynamicImport` opcją `importMode`
|
|
@@ -73,26 +88,26 @@ history:
|
|
|
73
88
|
changes: Zmieniono domyślny contentDir z `['src']` na `['.']`
|
|
74
89
|
- version: 5.5.11
|
|
75
90
|
date: 2025-06-29
|
|
76
|
-
changes: Dodano
|
|
91
|
+
changes: Dodano polecenia `docs`
|
|
77
92
|
---
|
|
78
93
|
|
|
79
|
-
# Dokumentacja
|
|
94
|
+
# Dokumentacja Konfiguracji Intlayer
|
|
80
95
|
|
|
81
96
|
## Przegląd
|
|
82
97
|
|
|
83
|
-
Pliki konfiguracyjne Intlayer
|
|
98
|
+
Pliki konfiguracyjne Intlayer pozwalają na dostosowanie różnych aspektów wtyczki, takich jak internacjonalizacja (internationalization), middleware oraz obsługa treści. Niniejsza dokumentacja zawiera szczegółowy opis każdej właściwości w konfiguracji.
|
|
84
99
|
|
|
85
100
|
---
|
|
86
101
|
|
|
87
|
-
## Spis
|
|
102
|
+
## Spis Treści
|
|
88
103
|
|
|
89
104
|
<TOC/>
|
|
90
105
|
|
|
91
106
|
---
|
|
92
107
|
|
|
93
|
-
## Obsługiwane
|
|
108
|
+
## Obsługiwane Formaty Plików Konfiguracyjnych
|
|
94
109
|
|
|
95
|
-
Intlayer
|
|
110
|
+
Intlayer akceptuje formaty plików konfiguracyjnych JSON, JS, MJS oraz TS:
|
|
96
111
|
|
|
97
112
|
- `intlayer.config.ts`
|
|
98
113
|
- `intlayer.config.js`
|
|
@@ -105,7 +120,7 @@ Intlayer obsługuje formaty plików konfiguracyjnych JSON, JS, MJS oraz TS:
|
|
|
105
120
|
|
|
106
121
|
---
|
|
107
122
|
|
|
108
|
-
## Przykładowy
|
|
123
|
+
## Przykładowy Plik Konfiguracyjny
|
|
109
124
|
|
|
110
125
|
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
111
126
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -113,108 +128,108 @@ import { nextjsRewrite } from "intlayer/routing";
|
|
|
113
128
|
import { z } from "zod";
|
|
114
129
|
|
|
115
130
|
/**
|
|
116
|
-
*
|
|
131
|
+
* Przykładowy plik konfiguracyjny Intlayer wyświetlający wszystkie dostępne opcje.
|
|
117
132
|
*/
|
|
118
133
|
const config: IntlayerConfig = {
|
|
119
134
|
/**
|
|
120
|
-
*
|
|
135
|
+
* Konfiguracja ustawień internacjonalizacji.
|
|
121
136
|
*/
|
|
122
137
|
internationalization: {
|
|
123
138
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
139
|
+
* Lista obsługiwanych wersji językowych (locales) w aplikacji.
|
|
140
|
+
* Domyślnie: [Locales.ENGLISH]
|
|
126
141
|
*/
|
|
127
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
128
143
|
|
|
129
144
|
/**
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
145
|
+
* Lista obowiązkowych wersji językowych, które muszą być zdefiniowane w każdym słowniku.
|
|
146
|
+
* Jeśli puste, wszystkie wersje językowe są obowiązkowe w trybie `strict`.
|
|
147
|
+
* Domyślnie: []
|
|
133
148
|
*/
|
|
134
149
|
requiredLocales: [Locales.ENGLISH],
|
|
135
150
|
|
|
136
151
|
/**
|
|
137
|
-
*
|
|
138
|
-
* - "strict":
|
|
139
|
-
* - "inclusive":
|
|
140
|
-
* - "loose":
|
|
141
|
-
*
|
|
152
|
+
* Poziom rygoru dla treści internacjonalizowanych.
|
|
153
|
+
* - "strict": Błąd, jeśli brakuje jakiejkolwiek zadeklarowanej wersji językowej lub jeśli nie jest zadeklarowana.
|
|
154
|
+
* - "inclusive": Ostrzeżenie, jeśli brakuje zadeklarowanej wersji językowej.
|
|
155
|
+
* - "loose": Akceptuje dowolną istniejącą wersję językową.
|
|
156
|
+
* Domyślnie: "inclusive"
|
|
142
157
|
*/
|
|
143
158
|
strictMode: "inclusive",
|
|
144
159
|
|
|
145
160
|
/**
|
|
146
|
-
*
|
|
147
|
-
*
|
|
161
|
+
* Domyślna wersja językowa używana jako rezerwowa (fallback) w przypadku nieznalezienia żądanej.
|
|
162
|
+
* Domyślnie: Locales.ENGLISH
|
|
148
163
|
*/
|
|
149
164
|
defaultLocale: Locales.ENGLISH,
|
|
150
165
|
},
|
|
151
166
|
|
|
152
167
|
/**
|
|
153
|
-
*
|
|
168
|
+
* Ustawienia kontrolujące operacje na słownikach i zachowanie rezerwowe (fallback).
|
|
154
169
|
*/
|
|
155
170
|
dictionary: {
|
|
156
171
|
/**
|
|
157
|
-
*
|
|
158
|
-
* - "static":
|
|
159
|
-
* - "dynamic":
|
|
160
|
-
* - "fetch":
|
|
161
|
-
*
|
|
172
|
+
* Kontroluje sposób importowania słowników.
|
|
173
|
+
* - "static": Importowane statycznie w czasie budowania (build time).
|
|
174
|
+
* - "dynamic": Importowane dynamicznie przy użyciu Suspense.
|
|
175
|
+
* - "fetch": Pobierane dynamicznie za pośrednictwem Live Sync API.
|
|
176
|
+
* Domyślnie: "static"
|
|
162
177
|
*/
|
|
163
178
|
importMode: "static",
|
|
164
179
|
|
|
165
180
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
181
|
+
* Strategia automatycznego uzupełniania brakujących tłumaczeń przy użyciu AI.
|
|
182
|
+
* Może być wartością logiczną (boolean) lub wzorcem ścieżki do zapisywania uzupełnionej treści.
|
|
183
|
+
* Domyślnie: true
|
|
169
184
|
*/
|
|
170
185
|
fill: true,
|
|
171
186
|
|
|
172
187
|
/**
|
|
173
|
-
*
|
|
174
|
-
* - "local":
|
|
175
|
-
* - "remote":
|
|
176
|
-
* - "hybrid":
|
|
177
|
-
* - "plugin" (
|
|
178
|
-
*
|
|
188
|
+
* Fizyczna lokalizacja plików słownika.
|
|
189
|
+
* - "local": Przechowywane w lokalnym systemie plików.
|
|
190
|
+
* - "remote": Przechowywane w Intlayer CMS.
|
|
191
|
+
* - "hybrid": Przechowywane lokalnie i w Intlayer CMS.
|
|
192
|
+
* - "plugin" (lub dowolny niestandardowy ciąg znaków): Dostarczane przez wtyczkę lub niestandardowe źródło.
|
|
193
|
+
* Domyślnie: "local"
|
|
179
194
|
*/
|
|
180
195
|
location: "local",
|
|
181
196
|
|
|
182
197
|
/**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
198
|
+
* Czy treść powinna być automatycznie przekształcana (np. Markdown na HTML).
|
|
199
|
+
* Domyślnie: false
|
|
185
200
|
*/
|
|
186
201
|
contentAutoTransformation: false,
|
|
187
202
|
},
|
|
188
203
|
|
|
189
204
|
/**
|
|
190
|
-
*
|
|
205
|
+
* Konfiguracja routingu i middleware.
|
|
191
206
|
*/
|
|
192
207
|
routing: {
|
|
193
208
|
/**
|
|
194
|
-
*
|
|
195
|
-
* - "prefix-no-default":
|
|
196
|
-
* - "prefix-all":
|
|
197
|
-
* - "no-prefix":
|
|
198
|
-
* - "search-params":
|
|
199
|
-
*
|
|
209
|
+
* Strategia routingu wersji językowych.
|
|
210
|
+
* - "prefix-no-default": Dodaje prefiks do wszystkich oprócz domyślnej (np. /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Dodaje prefiks do wszystkich wersji językowych (np. /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Brak wersji językowej w URL.
|
|
213
|
+
* - "search-params": Używa ?locale=...
|
|
214
|
+
* Domyślnie: "prefix-no-default"
|
|
200
215
|
*/
|
|
201
216
|
mode: "prefix-no-default",
|
|
202
217
|
|
|
203
218
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
219
|
+
* Miejsce przechowywania wersji językowej wybranej przez użytkownika.
|
|
220
|
+
* Opcje: 'cookie', 'localStorage', 'sessionStorage', 'header' lub ich tablica.
|
|
221
|
+
* Domyślnie: ['cookie', 'header']
|
|
207
222
|
*/
|
|
208
223
|
storage: ["cookie", "header"],
|
|
209
224
|
|
|
210
225
|
/**
|
|
211
|
-
*
|
|
212
|
-
*
|
|
226
|
+
* Ścieżka bazowa dla adresów URL aplikacji.
|
|
227
|
+
* Domyślnie: ""
|
|
213
228
|
*/
|
|
214
229
|
basePath: "",
|
|
215
230
|
|
|
216
231
|
/**
|
|
217
|
-
*
|
|
232
|
+
* Niestandardowe reguły przepisywania (rewrite) URL dla poszczególnych ścieżek wersji językowych.
|
|
218
233
|
*/
|
|
219
234
|
rewrite: nextjsRewrite({
|
|
220
235
|
"/[locale]/about": {
|
|
@@ -225,130 +240,130 @@ const config: IntlayerConfig = {
|
|
|
225
240
|
},
|
|
226
241
|
|
|
227
242
|
/**
|
|
228
|
-
*
|
|
243
|
+
* Ustawienia dotyczące wyszukiwania i przetwarzania plików treści.
|
|
229
244
|
*/
|
|
230
245
|
content: {
|
|
231
246
|
/**
|
|
232
|
-
*
|
|
233
|
-
*
|
|
247
|
+
* Rozszerzenia plików do skanowania słowników.
|
|
248
|
+
* Domyślnie: ['.content.ts', '.content.js', '.content.json', itp.]
|
|
234
249
|
*/
|
|
235
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
236
251
|
|
|
237
252
|
/**
|
|
238
|
-
*
|
|
239
|
-
*
|
|
253
|
+
* Katalogi, w których znajdują się pliki .content.
|
|
254
|
+
* Domyślnie: ["."]
|
|
240
255
|
*/
|
|
241
256
|
contentDir: ["src"],
|
|
242
257
|
|
|
243
258
|
/**
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
259
|
+
* Miejsce, w którym znajduje się kod źródłowy.
|
|
260
|
+
* Używane do optymalizacji budowania i transformacji kodu.
|
|
261
|
+
* Domyślnie: ["."]
|
|
247
262
|
*/
|
|
248
263
|
codeDir: ["src"],
|
|
249
264
|
|
|
250
265
|
/**
|
|
251
|
-
*
|
|
252
|
-
*
|
|
266
|
+
* Wzorce wykluczone ze skanowania.
|
|
267
|
+
* Domyślnie: ['node_modules', '.intlayer', itp.]
|
|
253
268
|
*/
|
|
254
269
|
excludedPath: ["node_modules"],
|
|
255
270
|
|
|
256
271
|
/**
|
|
257
|
-
*
|
|
258
|
-
*
|
|
272
|
+
* Czy monitorować zmiany i przebudowywać słowniki podczas programowania.
|
|
273
|
+
* Domyślnie: true w trybie programistycznym (development)
|
|
259
274
|
*/
|
|
260
275
|
watch: true,
|
|
261
276
|
|
|
262
277
|
/**
|
|
263
|
-
*
|
|
278
|
+
* Polecenie używane do formatowania nowo utworzonych / zaktualizowanych plików .content.
|
|
264
279
|
*/
|
|
265
280
|
formatCommand: 'npx prettier --write "{{file}}"',
|
|
266
281
|
},
|
|
267
282
|
|
|
268
283
|
/**
|
|
269
|
-
* Visual Editor
|
|
284
|
+
* Konfiguracja Edytora Wizualnego (Visual Editor).
|
|
270
285
|
*/
|
|
271
286
|
editor: {
|
|
272
287
|
/**
|
|
273
|
-
*
|
|
274
|
-
*
|
|
288
|
+
* Czy edytor wizualny jest włączony.
|
|
289
|
+
* Domyślnie: false
|
|
275
290
|
*/
|
|
276
291
|
enabled: true,
|
|
277
292
|
|
|
278
293
|
/**
|
|
279
|
-
* URL
|
|
280
|
-
*
|
|
294
|
+
* Adres URL Twojej aplikacji do walidacji pochodzenia (origin validation).
|
|
295
|
+
* Domyślnie: ""
|
|
281
296
|
*/
|
|
282
297
|
applicationURL: "http://localhost:3000",
|
|
283
298
|
|
|
284
299
|
/**
|
|
285
|
-
* Port
|
|
286
|
-
*
|
|
300
|
+
* Port dla lokalnego serwera edytora.
|
|
301
|
+
* Domyślnie: 8000
|
|
287
302
|
*/
|
|
288
303
|
port: 8000,
|
|
289
304
|
|
|
290
305
|
/**
|
|
291
|
-
*
|
|
292
|
-
*
|
|
306
|
+
* Publiczny adres URL edytora.
|
|
307
|
+
* Domyślnie: "http://localhost:8000"
|
|
293
308
|
*/
|
|
294
309
|
editorURL: "http://localhost:8000",
|
|
295
310
|
|
|
296
311
|
/**
|
|
297
|
-
* Intlayer CMS
|
|
298
|
-
*
|
|
312
|
+
* Adres URL Intlayer CMS.
|
|
313
|
+
* Domyślnie: "https://app.intlayer.org"
|
|
299
314
|
*/
|
|
300
315
|
cmsURL: "https://app.intlayer.org",
|
|
301
316
|
|
|
302
317
|
/**
|
|
303
|
-
* Backend API
|
|
304
|
-
*
|
|
318
|
+
* Adres URL Backend API.
|
|
319
|
+
* Domyślnie: "https://back.intlayer.org"
|
|
305
320
|
*/
|
|
306
321
|
backendURL: "https://back.intlayer.org",
|
|
307
322
|
|
|
308
323
|
/**
|
|
309
|
-
*
|
|
310
|
-
*
|
|
324
|
+
* Czy włączyć synchronizację treści w czasie rzeczywistym.
|
|
325
|
+
* Domyślnie: false
|
|
311
326
|
*/
|
|
312
327
|
liveSync: true,
|
|
313
328
|
},
|
|
314
329
|
|
|
315
330
|
/**
|
|
316
|
-
*
|
|
331
|
+
* Ustawienia tłumaczenia i budowania opartego na AI.
|
|
317
332
|
*/
|
|
318
333
|
ai: {
|
|
319
334
|
/**
|
|
320
|
-
* AI
|
|
321
|
-
*
|
|
322
|
-
*
|
|
335
|
+
* Dostawca AI do użycia.
|
|
336
|
+
* Opcje: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
|
+
* Domyślnie: 'openai'
|
|
323
338
|
*/
|
|
324
339
|
provider: "openai",
|
|
325
340
|
|
|
326
341
|
/**
|
|
327
|
-
* Model
|
|
342
|
+
* Model wybranego dostawcy do użycia.
|
|
328
343
|
*/
|
|
329
344
|
model: "gpt-4o",
|
|
330
345
|
|
|
331
346
|
/**
|
|
332
|
-
*
|
|
347
|
+
* Klucz API dostawcy.
|
|
333
348
|
*/
|
|
334
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
335
350
|
|
|
336
351
|
/**
|
|
337
|
-
*
|
|
352
|
+
* Kontekst globalny dla AI podczas budowania tłumaczeń.
|
|
338
353
|
*/
|
|
339
|
-
applicationContext: "
|
|
354
|
+
applicationContext: "To jest aplikacja do rezerwacji podróży.",
|
|
340
355
|
|
|
341
356
|
/**
|
|
342
|
-
*
|
|
357
|
+
* Bazowy adres URL ścieżki (base path URL) dla AI API.
|
|
343
358
|
*/
|
|
344
359
|
baseURL: "http://localhost:3000",
|
|
345
360
|
|
|
346
361
|
/**
|
|
347
|
-
* Serializacja danych
|
|
362
|
+
* Serializacja danych (Data Serialization)
|
|
348
363
|
*
|
|
349
364
|
* Opcje:
|
|
350
|
-
* - "json":
|
|
351
|
-
* - "toon":
|
|
365
|
+
* - "json": Domyślna, solidna; zużywa więcej tokenów.
|
|
366
|
+
* - "toon": Zużywa mniej tokenów, może nie być tak spójna jak JSON.
|
|
352
367
|
*
|
|
353
368
|
* Domyślnie: "json"
|
|
354
369
|
*/
|
|
@@ -356,170 +371,170 @@ const config: IntlayerConfig = {
|
|
|
356
371
|
},
|
|
357
372
|
|
|
358
373
|
/**
|
|
359
|
-
*
|
|
374
|
+
* Ustawienia budowania i optymalizacji.
|
|
360
375
|
*/
|
|
361
376
|
build: {
|
|
362
377
|
/**
|
|
363
|
-
*
|
|
364
|
-
* - "auto":
|
|
365
|
-
* - "manual":
|
|
366
|
-
*
|
|
378
|
+
* Tryb wykonywania budowania.
|
|
379
|
+
* - "auto": Będzie budowane automatycznie podczas budowania aplikacji.
|
|
380
|
+
* - "manual": Wymaga wyraźnego polecenia budowania.
|
|
381
|
+
* Domyślnie: "auto"
|
|
367
382
|
*/
|
|
368
383
|
mode: "auto",
|
|
369
384
|
|
|
370
385
|
/**
|
|
371
|
-
*
|
|
372
|
-
*
|
|
386
|
+
* Czy optymalizować ostateczny pakiet (bundle) poprzez usuwanie nieużywanych słowników.
|
|
387
|
+
* Domyślnie: true w środowisku produkcyjnym (production)
|
|
373
388
|
*/
|
|
374
389
|
optimize: true,
|
|
375
390
|
|
|
376
391
|
/**
|
|
377
|
-
*
|
|
378
|
-
*
|
|
392
|
+
* Format wyjściowy dla wygenerowanych plików słownika.
|
|
393
|
+
* Domyślnie: ['cjs', 'esm']
|
|
379
394
|
*/
|
|
380
|
-
outputFormat: ["esm"],
|
|
395
|
+
outputFormat: ["cjs", "esm"],
|
|
381
396
|
|
|
382
397
|
/**
|
|
383
|
-
*
|
|
384
|
-
*
|
|
398
|
+
* Określa, czy podczas budowania należy sprawdzać typy TypeScript.
|
|
399
|
+
* Domyślnie: false
|
|
385
400
|
*/
|
|
386
401
|
checkTypes: false,
|
|
387
402
|
},
|
|
388
403
|
|
|
389
404
|
/**
|
|
390
|
-
* Logger
|
|
405
|
+
* Konfiguracja rejestratora (Logger).
|
|
391
406
|
*/
|
|
392
407
|
log: {
|
|
393
408
|
/**
|
|
394
|
-
*
|
|
395
|
-
* - "default":
|
|
396
|
-
* - "verbose":
|
|
397
|
-
* - "disabled":
|
|
398
|
-
*
|
|
409
|
+
* Poziom rejestrowania.
|
|
410
|
+
* - "default": Standardowe rejestrowanie.
|
|
411
|
+
* - "verbose": Szczegółowe rejestrowanie debugowania.
|
|
412
|
+
* - "disabled": Wyłącza rejestrowanie.
|
|
413
|
+
* Domyślnie: "default"
|
|
399
414
|
*/
|
|
400
415
|
mode: "default",
|
|
401
416
|
|
|
402
417
|
/**
|
|
403
|
-
*
|
|
404
|
-
*
|
|
418
|
+
* Prefiks wszystkich komunikatów dziennika.
|
|
419
|
+
* Domyślnie: "[intlayer]"
|
|
405
420
|
*/
|
|
406
421
|
prefix: "[intlayer]",
|
|
407
422
|
},
|
|
408
423
|
|
|
409
424
|
/**
|
|
410
|
-
*
|
|
425
|
+
* Konfiguracja systemu (do użytku zaawansowanego)
|
|
411
426
|
*/
|
|
412
427
|
system: {
|
|
413
428
|
/**
|
|
414
|
-
*
|
|
429
|
+
* Katalog do przechowywania zlokalizowanych słowników.
|
|
415
430
|
*/
|
|
416
431
|
dictionariesDir: ".intlayer/dictionary",
|
|
417
432
|
|
|
418
433
|
/**
|
|
419
|
-
*
|
|
434
|
+
* Katalog dla TypeScript module augmentation.
|
|
420
435
|
*/
|
|
421
436
|
moduleAugmentationDir: ".intlayer/types",
|
|
422
437
|
|
|
423
438
|
/**
|
|
424
|
-
*
|
|
439
|
+
* Katalog do przechowywania niepołączonych (unmerged) słowników.
|
|
425
440
|
*/
|
|
426
441
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
427
442
|
|
|
428
443
|
/**
|
|
429
|
-
*
|
|
444
|
+
* Katalog do przechowywania typów słowników.
|
|
430
445
|
*/
|
|
431
446
|
typesDir: ".intlayer/types",
|
|
432
447
|
|
|
433
448
|
/**
|
|
434
|
-
*
|
|
449
|
+
* Katalog, w którym przechowywane są główne pliki aplikacji.
|
|
435
450
|
*/
|
|
436
451
|
mainDir: ".intlayer/main",
|
|
437
452
|
|
|
438
453
|
/**
|
|
439
|
-
*
|
|
454
|
+
* Katalog, w którym przechowywane są pliki konfiguracyjne.
|
|
440
455
|
*/
|
|
441
456
|
configDir: ".intlayer/config",
|
|
442
457
|
|
|
443
458
|
/**
|
|
444
|
-
*
|
|
459
|
+
* Katalog, w którym przechowywane są pliki pamięci podręcznej (cache).
|
|
445
460
|
*/
|
|
446
461
|
cacheDir: ".intlayer/cache",
|
|
447
462
|
},
|
|
448
463
|
|
|
449
464
|
/**
|
|
450
|
-
*
|
|
465
|
+
* Konfiguracja Kompilatora (dla użytku zaawansowanego)
|
|
451
466
|
*/
|
|
452
467
|
compiler: {
|
|
453
468
|
/**
|
|
454
|
-
*
|
|
469
|
+
* Określa, czy kompilator powinien być włączony.
|
|
455
470
|
*
|
|
456
|
-
* - false
|
|
457
|
-
* - true
|
|
458
|
-
* - "build-only"
|
|
471
|
+
* - false: Wyłącza kompilator.
|
|
472
|
+
* - true: Włącza kompilator.
|
|
473
|
+
* - "build-only": Pomija kompilator podczas programowania i przyspiesza czas uruchamiania.
|
|
459
474
|
*
|
|
460
|
-
*
|
|
475
|
+
* Domyślnie: false
|
|
461
476
|
*/
|
|
462
477
|
enabled: true,
|
|
463
478
|
|
|
464
479
|
/**
|
|
465
|
-
* Definiuje ścieżkę plików wyjściowych. Zastępuje `outputDir`.
|
|
480
|
+
* Definiuje ścieżkę dla plików wyjściowych. Zastępuje `outputDir`.
|
|
466
481
|
*
|
|
467
|
-
* - Ścieżki
|
|
468
|
-
* - Ścieżki
|
|
482
|
+
* - Ścieżki z `./` są rozwiązywane względem katalogu komponentów.
|
|
483
|
+
* - Ścieżki z `/` są rozwiązywane względem katalogu głównego projektu (`baseDir`).
|
|
469
484
|
*
|
|
470
|
-
* - Uwzględnienie zmiennej `{{locale}}` w ścieżce
|
|
485
|
+
* - Uwzględnienie zmiennej `{{locale}}` w ścieżce spowoduje tworzenie oddzielnych słowników dla każdego języka.
|
|
471
486
|
*
|
|
472
487
|
* Przykład:
|
|
473
488
|
* ```ts
|
|
474
489
|
* {
|
|
475
|
-
* //
|
|
490
|
+
* // Twórz wielojęzyczne pliki .content.ts obok komponentu
|
|
476
491
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
477
492
|
*
|
|
478
|
-
* // output: './{{fileName}}{{extension}}', // Równoważne
|
|
493
|
+
* // output: './{{fileName}}{{extension}}', // Równoważne przy użyciu ciągu szablonowego
|
|
479
494
|
* }
|
|
480
495
|
* ```
|
|
481
496
|
*
|
|
482
497
|
* ```ts
|
|
483
498
|
* {
|
|
484
|
-
* //
|
|
499
|
+
* // Twórz scentralizowane JSONy dla każdego języka w katalogu głównym projektu
|
|
485
500
|
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
486
501
|
*
|
|
487
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // Równoważne
|
|
502
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Równoważne przy użyciu ciągu szablonowego
|
|
488
503
|
* }
|
|
489
504
|
* ```
|
|
490
505
|
*
|
|
491
506
|
* Lista zmiennych:
|
|
492
507
|
* - `fileName`: Nazwa pliku.
|
|
493
|
-
* - `key`: Klucz
|
|
494
|
-
* - `locale`:
|
|
508
|
+
* - `key`: Klucz treści (key).
|
|
509
|
+
* - `locale`: Wersja językowa treści.
|
|
495
510
|
* - `extension`: Rozszerzenie pliku.
|
|
496
511
|
* - `componentFileName`: Nazwa pliku komponentu.
|
|
497
512
|
* - `componentExtension`: Rozszerzenie pliku komponentu.
|
|
498
513
|
* - `format`: Format słownika.
|
|
499
514
|
* - `componentFormat`: Format słownika komponentu.
|
|
500
|
-
* - `componentDirPath`: Ścieżka
|
|
515
|
+
* - `componentDirPath`: Ścieżka katalogu komponentu.
|
|
501
516
|
*/
|
|
502
517
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
503
518
|
|
|
504
519
|
/**
|
|
505
|
-
*
|
|
506
|
-
* W ten sposób kompilator
|
|
520
|
+
* Określa, czy komponenty powinny być zapisywane po transformacji.
|
|
521
|
+
* W ten sposób kompilator może zostać uruchomiony tylko raz, aby przekształcić aplikację, a następnie usunięty.
|
|
507
522
|
*/
|
|
508
523
|
saveComponents: false,
|
|
509
524
|
|
|
510
525
|
/**
|
|
511
|
-
*
|
|
526
|
+
* Wstawia tylko treść do wygenerowanego pliku. Przydatne dla wyjścia JSON dla każdego języka dla i18next lub ICU MessageFormat.
|
|
512
527
|
*/
|
|
513
528
|
noMetadata: false,
|
|
514
529
|
|
|
515
530
|
/**
|
|
516
531
|
* Prefiks klucza słownika
|
|
517
532
|
*/
|
|
518
|
-
dictionaryKeyPrefix: "", // Dodaj opcjonalny prefiks
|
|
533
|
+
dictionaryKeyPrefix: "", // Dodaj opcjonalny prefiks do wyodrębnionych kluczy słownika
|
|
519
534
|
},
|
|
520
535
|
|
|
521
536
|
/**
|
|
522
|
-
*
|
|
537
|
+
* Niestandardowe schematy (Schemas) do walidacji zawartości słownika.
|
|
523
538
|
*/
|
|
524
539
|
schemas: {
|
|
525
540
|
"my-schema": z.object({
|
|
@@ -528,7 +543,7 @@ const config: IntlayerConfig = {
|
|
|
528
543
|
},
|
|
529
544
|
|
|
530
545
|
/**
|
|
531
|
-
* Plugins
|
|
546
|
+
* Konfiguracja wtyczek (Plugins).
|
|
532
547
|
*/
|
|
533
548
|
plugins: [],
|
|
534
549
|
};
|
|
@@ -536,250 +551,116 @@ const config: IntlayerConfig = {
|
|
|
536
551
|
export default config;
|
|
537
552
|
````
|
|
538
553
|
|
|
539
|
-
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## Odniesienie do Konfiguracji (Configuration Reference)
|
|
540
557
|
|
|
541
|
-
Poniższe sekcje opisują różne
|
|
558
|
+
Poniższe sekcje opisują różne opcje konfiguracyjne dostępne w Intlayer.
|
|
542
559
|
|
|
543
560
|
---
|
|
544
561
|
|
|
545
|
-
### Konfiguracja
|
|
546
|
-
|
|
547
|
-
Definiuje ustawienia związane z internacjonalizacją, w tym dostępne
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
- _Przykład_: `['en', 'fr', 'es']`
|
|
556
|
-
|
|
557
|
-
- **requiredLocales**:
|
|
558
|
-
- _Typ_: `string[]`
|
|
559
|
-
- _Domyślnie_: `[]`
|
|
560
|
-
- _Opis_: Lista wymaganych lokalizacji w aplikacji.
|
|
561
|
-
- _Przykład_: `[]`
|
|
562
|
-
- _Uwaga_: Jeśli pusta, wszystkie lokalizacje są wymagane w trybie `strict`.
|
|
563
|
-
- _Uwaga_: Upewnij się, że wymagane lokalizacje są również zdefiniowane w polu `locales`.
|
|
564
|
-
- **strictMode**:
|
|
565
|
-
- _Typ_: `string`
|
|
566
|
-
- _Domyślnie_: `inclusive`
|
|
567
|
-
- _Opis_: Zapewnia silną implementację zinternacjonalizowanej zawartości przy użyciu TypeScript.
|
|
568
|
-
- _Uwaga_: Jeśli ustawione na "strict", funkcja tłumaczenia `t` będzie wymagać zdefiniowania każdej zadeklarowanej lokalizacji. Jeśli jakaś lokalizacja będzie brakować lub nie będzie zadeklarowana w konfiguracji, zostanie zgłoszony błąd.
|
|
569
|
-
- _Uwaga_: Jeśli ustawione na "inclusive", funkcja tłumaczenia `t` będzie wymagać zdefiniowania każdej zadeklarowanej lokalizacji. Jeśli jakaś lokalizacja będzie brakować, zostanie wyświetlone ostrzeżenie. Jednak zaakceptuje lokalizację, która nie jest zadeklarowana w konfiguracji, ale istnieje.
|
|
570
|
-
- _Uwaga_: Jeśli ustawione na "loose", funkcja tłumaczenia `t` zaakceptuje dowolną istniejącą lokalizację.
|
|
571
|
-
|
|
572
|
-
- **defaultLocale**:
|
|
573
|
-
- _Typ_: `string`
|
|
574
|
-
- _Domyślnie_: `'en'`
|
|
575
|
-
- _Opis_: Domyślna lokalizacja używana jako zapasowa, jeśli żądana lokalizacja nie zostanie znaleziona.
|
|
576
|
-
- _Przykład_: `'en'`
|
|
577
|
-
- _Uwaga_: Używane do określenia lokalizacji, gdy żadna nie jest podana w URL, ciasteczku lub nagłówku.
|
|
562
|
+
### Konfiguracja Internacjonalizacji (Internationalization Configuration)
|
|
563
|
+
|
|
564
|
+
Definiuje ustawienia związane z internacjonalizacją, w tym dostępne wersje językowe i domyślną wersję językową aplikacji.
|
|
565
|
+
|
|
566
|
+
| Pole | Typ | Opis | Przykład | Uwaga |
|
|
567
|
+
| ----------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | `string[]` | Lista obsługiwanych wersji językowych w aplikacji. Domyślnie: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | `string[]` | Lista obowiązkowych wersji językowych w aplikacji. Domyślnie: `[]` | `[]` | Jeśli puste, wszystkie wersje językowe są obowiązkowe w trybie `strict`. Upewnij się, że obowiązkowe wersje językowe są również zdefiniowane w polu `locales`. |
|
|
570
|
+
| `strictMode` | `string` | Zapewnia solidną implementację internacjonalizowanej treści dzięki użyciu TypeScript. Domyślnie: `inclusive` | | Jeśli `"strict"`: funkcja `t` wymaga zdefiniowania każdej zadeklarowanej wersji językowej — zgłasza błąd, jeśli jakiejkolwiek brakuje lub nie jest zadeklarowana. Jeśli `"inclusive"`: ostrzega o brakujących wersjach językowych, ale akceptuje istniejące niezadeklarowane wersje językowe. Jeśli `"loose"`: akceptuje każdą istniejącą wersję językową. |
|
|
571
|
+
| `defaultLocale` | `string` | Domyślna wersja językowa używana jako rezerwowa (fallback), jeśli nie znaleziono żądanej. Domyślnie: `Locales.ENGLISH` | `'en'` | Używane do określenia wersji językowej, gdy żadna nie jest określona w URL, pliku cookie lub nagłówku (header). |
|
|
578
572
|
|
|
579
573
|
---
|
|
580
574
|
|
|
581
|
-
### Konfiguracja
|
|
582
|
-
|
|
583
|
-
Definiuje ustawienia związane
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
- _Przykład_: `'https://example.com'`
|
|
671
|
-
- _Uwaga_: Domyślnie wskazuje na localhost, ale może zostać zmieniony na dowolny URL w przypadku zdalnego serwera live sync.
|
|
672
|
-
|
|
673
|
-
### Konfiguracja routingu
|
|
674
|
-
|
|
675
|
-
Ustawienia kontrolujące zachowanie routingu, w tym strukturę URL, przechowywanie lokalizacji oraz obsługę middleware.
|
|
676
|
-
|
|
677
|
-
#### Właściwości
|
|
678
|
-
|
|
679
|
-
- **mode**:
|
|
680
|
-
- _Typ_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
681
|
-
- _Domyślnie_: `'prefix-no-default'`
|
|
682
|
-
- _Opis_: Tryb routingu URL dla obsługi lokalizacji.
|
|
683
|
-
- _Przykłady_:
|
|
684
|
-
- `'prefix-no-default'`: `/dashboard` (en) lub `/fr/dashboard` (fr)
|
|
685
|
-
- `'prefix-all'`: `/en/dashboard` (en) lub `/fr/dashboard` (fr)
|
|
686
|
-
- `'no-prefix'`: `/dashboard` (lokalizacja obsługiwana innymi metodami)
|
|
687
|
-
- `'search-params'`: `/dashboard?locale=fr`
|
|
688
|
-
- _Uwaga_: To ustawienie nie wpływa na zarządzanie ciasteczkami ani przechowywaniem lokalizacji.
|
|
689
|
-
|
|
690
|
-
- **storage**:
|
|
691
|
-
- _Typ_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
|
|
692
|
-
- _Domyślnie_: `'localStorage'`
|
|
693
|
-
- _Opis_: Konfiguracja przechowywania lokalizacji po stronie klienta.
|
|
694
|
-
|
|
695
|
-
- **cookie**:
|
|
696
|
-
- _Opis_: Przechowuje dane w ciasteczkach, małych fragmentach danych zapisywanych w przeglądarce klienta, dostępnych zarówno po stronie klienta, jak i serwera.
|
|
697
|
-
- _Uwaga_: Aby przechowywanie było zgodne z RODO, należy zapewnić odpowiednią zgodę użytkownika przed użyciem.
|
|
698
|
-
- _Uwaga_: Parametry ciasteczek są konfigurowalne, jeśli ustawione jako CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
|
|
699
|
-
|
|
700
|
-
- **localStorage**:
|
|
701
|
-
- _Opis_: Przechowuje dane w przeglądarce bez dat wygaśnięcia, co pozwala na utrzymanie danych pomiędzy sesjami, dostępne tylko po stronie klienta.
|
|
702
|
-
- _Uwaga_: Idealne do przechowywania danych długoterminowych, ale należy pamiętać o kwestiach prywatności i bezpieczeństwa ze względu na brak automatycznego wygasania, chyba że dane zostaną wyraźnie usunięte.
|
|
703
|
-
- _Uwaga_: Przechowywanie lokalizacji jest dostępne tylko po stronie klienta, proxy intlayer nie będzie miało do niego dostępu.
|
|
704
|
-
- _Uwaga_: Parametry przechowywania lokalizacji są konfigurowalne, jeśli ustawione jako StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
|
|
705
|
-
|
|
706
|
-
- **sessionStorage**:
|
|
707
|
-
- _Opis_: Przechowuje dane przez czas trwania sesji strony, co oznacza, że dane są usuwane po zamknięciu zakładki lub okna, dostępne tylko po stronie klienta.
|
|
708
|
-
- _Uwaga_: Odpowiednie do tymczasowego przechowywania danych dla każdej sesji.
|
|
709
|
-
- _Uwaga_: Przechowywanie lokalne jest dostępne tylko po stronie klienta, proxy intlayer nie będzie miało do niego dostępu.
|
|
710
|
-
- _Uwaga_: Parametry przechowywania lokalnego są konfigurowalne, jeśli ustawione jako StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
|
|
711
|
-
|
|
712
|
-
- **header**:
|
|
713
|
-
- _Opis_: Wykorzystuje nagłówki HTTP do przechowywania lub przesyłania danych lokalizacyjnych, odpowiednie do określania języka po stronie serwera.
|
|
714
|
-
- _Uwaga_: Przydatne w wywołaniach API do utrzymania spójnych ustawień językowych w żądaniach.
|
|
715
|
-
- _Uwaga_: Nagłówek jest dostępny tylko po stronie serwera, klient nie będzie miał do niego dostępu.
|
|
716
|
-
- _Uwaga_: Nazwa nagłówka jest konfigurowalna, jeśli ustawiona jako StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
|
|
717
|
-
|
|
718
|
-
- **basePath**:
|
|
719
|
-
- _Typ_: `string`
|
|
720
|
-
- _Domyślnie_: `''`
|
|
721
|
-
- _Opis_: Podstawowa ścieżka dla adresów URL aplikacji.
|
|
722
|
-
- _Przykład_: `'/my-app'`
|
|
723
|
-
- _Uwaga_:
|
|
724
|
-
- Jeśli aplikacja jest hostowana pod adresem `https://example.com/my-app`
|
|
725
|
-
- Podstawowa ścieżka to `'/my-app'`
|
|
726
|
-
- Adres URL będzie `https://example.com/my-app/en`
|
|
727
|
-
- Jeśli podstawowa ścieżka nie jest ustawiona, adres URL będzie `https://example.com/en`
|
|
728
|
-
|
|
729
|
-
- **rewrite**:
|
|
730
|
-
- _Typ_: `Record<string, StrictModeLocaleMap<string>>`
|
|
731
|
-
- _Domyślnie_: `undefined`
|
|
732
|
-
- _Opis_: Niestandardowe reguły przepisywania URL, które zastępują domyślny tryb routingu dla określonych ścieżek. Pozwala definiować ścieżki specyficzne dla języka, które różnią się od standardowego zachowania routingu. Obsługuje dynamiczne parametry trasy przy użyciu składni `[param]`.
|
|
733
|
-
- _Przykład_:
|
|
734
|
-
```typescript
|
|
735
|
-
routing: {
|
|
736
|
-
mode: "prefix-no-default", // Strategia zapasowa
|
|
737
|
-
rewrite: nextjsRewrite({
|
|
738
|
-
"/[locale]/about": {
|
|
739
|
-
en: "/[locale]/about",
|
|
740
|
-
fr: "/[locale]/a-propos",
|
|
741
|
-
},
|
|
742
|
-
"/[locale]/product/[slug]": {
|
|
743
|
-
en: "/[locale]/product/[slug]",
|
|
744
|
-
fr: "/[locale]/produit/[slug]",
|
|
745
|
-
},
|
|
746
|
-
"/[locale]/blog/[category]/[id]": {
|
|
747
|
-
en: "/[locale]/blog/[category]/[id]",
|
|
748
|
-
fr: "/[locale]/journal/[category]/[id]",
|
|
749
|
-
},
|
|
750
|
-
}),
|
|
751
|
-
}
|
|
752
|
-
```
|
|
753
|
-
- _Uwaga_: Reguły przepisywania mają pierwszeństwo przed domyślnym zachowaniem `mode`. Jeśli ścieżka pasuje do reguły przepisywania, zostanie użyta zlokalizowana ścieżka z konfiguracji przepisywania zamiast standardowego prefiksu języka.
|
|
754
|
-
- _Uwaga_: Dynamiczne parametry trasy są obsługiwane przy użyciu notacji nawiasów kwadratowych (np. `[slug]`, `[id]`). Wartości parametrów są automatycznie wyodrębniane z URL i interpolowane do przepisanej ścieżki.
|
|
755
|
-
- _Uwaga_: Działa z aplikacjami Next.js i Vite. Middleware/proxy automatycznie przepisze przychodzące żądania, aby dopasować je do wewnętrznej struktury trasy.
|
|
756
|
-
- _Uwaga_: Podczas generowania URL za pomocą `getLocalizedUrl()`, reguły przepisywania są automatycznie stosowane, jeśli pasują do podanej ścieżki.
|
|
757
|
-
- _Odniesienie_: Aby uzyskać więcej informacji, zobacz [Niestandardowe przepisywanie URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/custom_url_rewrites.md).
|
|
758
|
-
|
|
759
|
-
#### Atrybuty ciasteczek
|
|
760
|
-
|
|
761
|
-
Podczas korzystania z przechowywania w ciasteczkach, możesz skonfigurować dodatkowe atrybuty ciasteczek:
|
|
762
|
-
|
|
763
|
-
- **name**: Nazwa ciasteczka (domyślnie: `'INTLAYER_LOCALE'`)
|
|
764
|
-
- **domain**: Domeną ciasteczka (domyślnie: niezdefiniowane)
|
|
765
|
-
- **path**: Ścieżka ciasteczka (domyślnie: niezdefiniowane)
|
|
766
|
-
- **secure**: Wymagaj HTTPS (domyślnie: niezdefiniowane)
|
|
767
|
-
- **httpOnly**: Flaga HTTP-only (domyślnie: niezdefiniowane)
|
|
768
|
-
- **sameSite**: Polityka SameSite (`'strict' | 'lax' | 'none'`)
|
|
769
|
-
- **expires**: Data wygaśnięcia lub liczba dni (domyślnie: niezdefiniowane)
|
|
770
|
-
|
|
771
|
-
#### Atrybuty przechowywania lokalnego
|
|
772
|
-
|
|
773
|
-
Podczas korzystania z localStorage lub sessionStorage:
|
|
774
|
-
|
|
775
|
-
- **type**: Typ przechowywania (`'localStorage' | 'sessionStorage'`)
|
|
776
|
-
- **name**: Nazwa klucza przechowywania (domyślnie: `'INTLAYER_LOCALE'`)
|
|
777
|
-
|
|
778
|
-
#### Przykłady konfiguracji
|
|
779
|
-
|
|
780
|
-
Oto kilka typowych przykładów konfiguracji dla nowej struktury routingu w wersji v7:
|
|
781
|
-
|
|
782
|
-
**Podstawowa konfiguracja (domyślna)**:
|
|
575
|
+
### Konfiguracja Edytora (Editor Configuration)
|
|
576
|
+
|
|
577
|
+
Definiuje ustawienia związane ze zintegrowanym edytorem, w tym port serwera i status aktywności.
|
|
578
|
+
|
|
579
|
+
| Pole | Typ | Opis | Przykład | Uwaga |
|
|
580
|
+
| ---------------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | `string` | Adres URL Twojej aplikacji. Domyślnie: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Używane do ograniczania pochodzenia (origins) edytora ze względów bezpieczeństwa. Jeśli ustawione na `'*'`, edytor jest dostępny z dowolnego pochodzenia. |
|
|
582
|
+
| `port` | `number` | Port używany przez serwer Edytora Wizualnego. Domyślnie: `8000` | | |
|
|
583
|
+
| `editorURL` | `string` | Adres URL serwera edytora. Domyślnie: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Używane do ograniczania pochodzenia, które może wchodzić w interakcję z aplikacją. Jeśli ustawione na `'*'`, dostępne z dowolnego pochodzenia. Musi być ustawione przy zmianie portu lub jeśli edytor jest hostowany w innej domenie. |
|
|
584
|
+
| `cmsURL` | `string` | Adres URL Intlayer CMS. Domyślnie: `'https://intlayer.org'` | `'https://intlayer.org'` | |
|
|
585
|
+
| `backendURL` | `string` | Adres URL serwera backendu. Domyślnie: `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | `boolean` | Określa, czy aplikacja będzie współpracować z edytorem wizualnym. Domyślnie: `true` | `process.env.NODE_ENV !== 'production'` | Jeśli `false`, edytor nie może wchodzić w interakcję z aplikacją. Wyłączenie go dla określonych środowisk zwiększa bezpieczeństwo. |
|
|
587
|
+
| `clientId` | `string | undefined` | Umożliwia pakietom intlayer uwierzytelnianie w backendzie przy użyciu oAuth2. Aby otrzymać token dostępu, wejdź na [intlayer.org/project](https://app.intlayer.org/project). Domyślnie: `undefined` | | Zachowaj go w tajemnicy; przechowuj w zmiennych środowiskowych. |
|
|
588
|
+
| `clientSecret` | `string | undefined` | Umożliwia pakietom intlayer uwierzytelnianie w backendzie przy użyciu oAuth2. Aby otrzymać token dostępu, wejdź na [intlayer.org/project](https://app.intlayer.org/project). Domyślnie: `undefined` | | Zachowaj go w tajemnicy; przechowuj w zmiennych środowiskowych. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | `string` | Strategia ustalania priorytetów słowników, gdy istnieją zarówno słowniki lokalne, jak i zdalne. Domyślnie: `'local_first'` | `'distant_first'` | `'distant_first'`: Priorytetyzuje zdalne nad lokalnymi. `'local_first'`: Priorytetyzuje lokalne nad zdalnymi. |
|
|
590
|
+
| `liveSync` | `boolean` | Określa, czy serwer aplikacji powinien przeładowywać treści na gorąco (hot reload), gdy wykryta zostanie zmiana w CMS / Edytorze Wizualnym / Backendzie. Domyślnie: `true` | `true` | Gdy słownik zostanie dodany/zaktualizowany, aplikacja aktualizuje zawartość strony. Live sync zleca treść innemu serwerowi, co może nieznacznie wpłynąć na wydajność. Zaleca się hostowanie obu na tej samej maszynie. |
|
|
591
|
+
| `liveSyncPort` | `number` | Port serwera Live Sync. Domyślnie: `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | `string` | Adres URL serwera Live Sync. Domyślnie: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Domyślnie wskazuje na localhost; można zmienić na zdalny serwer synchroniczny na żywo (live sync server). |
|
|
593
|
+
|
|
594
|
+
### Konfiguracja Routingu (Routing Configuration)
|
|
595
|
+
|
|
596
|
+
Ustawienia kontrolujące zachowanie routingu, w tym strukturę adresów URL, przechowywanie wersji językowej i obsługę middleware.
|
|
597
|
+
|
|
598
|
+
| Pole | Typ | Opis | Przykład | Uwaga |
|
|
599
|
+
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
600
|
+
| `mode` | `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'` | Tryb routingu URL dla obsługi wersji językowych. Domyślnie: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) lub `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: wersja językowa obsługiwana innymi środkami. `'search-params'`: używa `/dashboard?locale=fr` | Nie wpływa na zarządzanie plikami cookie ani na przechowywanie wersji językowej (locale storage). |
|
|
601
|
+
| `storage` | `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array` | Konfiguracja przechowywania wersji językowej na kliencie. Domyślnie: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Zobacz poniższą tabelę Opcji Przechowywania (Storage Options). |
|
|
602
|
+
| `basePath` | `string` | Ścieżka bazowa dla adresów URL aplikacji. Domyślnie: `''` | `'/my-app'` | Jeśli aplikacja znajduje się pod adresem `https://example.com/my-app`, basePath to `'/my-app'`, a adresy URL stają się takie jak `https://example.com/my-app/en`. |
|
|
603
|
+
| `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | Niestandardowe reguły przepisywania (rewrite) URL, które zastępują domyślny tryb routingu dla określonych ścieżek. Obsługuje parametry dynamiczne `[param]`. Domyślnie: `undefined` | Zobacz przykład poniżej | Reguły przepisywania mają pierwszeństwo przed `mode`. Działa z Next.js i Vite. `getLocalizedUrl()` automatycznie stosuje pasujące reguły. Zobacz [Niestandardowe Przepisywanie URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/custom_url_rewrites.md). |
|
|
604
|
+
|
|
605
|
+
**Przykład `rewrite`**:
|
|
606
|
+
|
|
607
|
+
```typescript
|
|
608
|
+
routing: {
|
|
609
|
+
mode: "prefix-no-default", // Strategia rezerwowa (fallback)
|
|
610
|
+
rewrite: nextjsRewrite({
|
|
611
|
+
"/about": {
|
|
612
|
+
en: "/about",
|
|
613
|
+
fr: "/a-propos",
|
|
614
|
+
},
|
|
615
|
+
"/product/[slug]": {
|
|
616
|
+
en: "/product/[slug]",
|
|
617
|
+
fr: "/produit/[slug]",
|
|
618
|
+
},
|
|
619
|
+
"/blog/[category]/[id]": {
|
|
620
|
+
en: "/blog/[category]/[id]",
|
|
621
|
+
fr: "/journal/[category]/[id]",
|
|
622
|
+
},
|
|
623
|
+
}),
|
|
624
|
+
}
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
#### Opcje Przechowywania (Storage Options)
|
|
628
|
+
|
|
629
|
+
| Wartość | Opis | Uwaga |
|
|
630
|
+
| ------------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
631
|
+
| `'cookie'` | Zapisuje wersję językową w plikach cookie — dostępnych zarówno po stronie klienta, jak i serwera. | Aby zachować zgodność z RODO (GDPR), upewnij się, że uzyskano odpowiednią zgodę użytkownika. Możliwość dostosowania za pomocą `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
|
|
632
|
+
| `'localStorage'` | Zapisuje wersję językową w przeglądarce bez daty wygaśnięcia — tylko po stronie klienta. | Nie wygasa, dopóki nie zostanie wyraźnie wyczyszczone. Proxy Intlayer nie może uzyskać do tego dostępu. Możliwość dostosowania za pomocą `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
|
|
633
|
+
| `'sessionStorage'` | Zapisuje wersję językową na czas trwania sesji strony — tylko po stronie klienta. | Wyczyszczone po zamknięciu karty/okna. Proxy Intlayer nie może uzyskać do tego dostępu. Możliwość dostosowania za pomocą `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
|
|
634
|
+
| `'header'` | Zapisuje lub przesyła wersję językową za pośrednictwem nagłówków HTTP — tylko po stronie serwera. | Przydatne przy wywołaniach API. Strona klienta nie może uzyskać dostępu. Możliwość dostosowania za pomocą `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
|
|
635
|
+
|
|
636
|
+
#### Atrybuty Plików Cookie (Cookie Attributes)
|
|
637
|
+
|
|
638
|
+
Przy korzystaniu z przechowywania w plikach cookie można skonfigurować dodatkowe atrybuty:
|
|
639
|
+
|
|
640
|
+
| Pole | Typ | Opis |
|
|
641
|
+
| ---------- | ------------------------------------- | ------------------------------------------------------- |
|
|
642
|
+
| `name` | `string` | Nazwa pliku cookie. Domyślnie: `'INTLAYER_LOCALE'` |
|
|
643
|
+
| `domain` | `string` | Domena pliku cookie. Domyślnie: `undefined` |
|
|
644
|
+
| `path` | `string` | Ścieżka pliku cookie. Domyślnie: `undefined` |
|
|
645
|
+
| `secure` | `boolean` | Wymaga HTTPS. Domyślnie: `undefined` |
|
|
646
|
+
| `httpOnly` | `boolean` | Flaga HTTP-only. Domyślnie: `undefined` |
|
|
647
|
+
| `sameSite` | `'strict' | 'lax' | 'none'` | Polityka SameSite. |
|
|
648
|
+
| `expires` | `Date | number` | Data wygaśnięcia lub liczba dni. Domyślnie: `undefined` |
|
|
649
|
+
|
|
650
|
+
#### Atrybuty Przechowywania Wersji Językowej (Locale Storage Attributes)
|
|
651
|
+
|
|
652
|
+
Przy korzystaniu z localStorage lub sessionStorage:
|
|
653
|
+
|
|
654
|
+
| Pole | Typ | Opis |
|
|
655
|
+
| ------ | ---------------------------------------- | ----------------------------------------------------------- |
|
|
656
|
+
| `type` | `'localStorage' | 'sessionStorage'` | Typ przechowywania. |
|
|
657
|
+
| `name` | `string` | Nazwa klucza przechowywania. Domyślnie: `'INTLAYER_LOCALE'` |
|
|
658
|
+
|
|
659
|
+
#### Przykłady Konfiguracji
|
|
660
|
+
|
|
661
|
+
Oto kilka typowych przykładów konfiguracji dla nowej struktury routingu v7:
|
|
662
|
+
|
|
663
|
+
**Podstawowa Konfiguracja (Domyślna)**:
|
|
783
664
|
|
|
784
665
|
```typescript
|
|
785
666
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -792,14 +673,14 @@ const config: IntlayerConfig = {
|
|
|
792
673
|
routing: {
|
|
793
674
|
mode: "prefix-no-default",
|
|
794
675
|
storage: "localStorage",
|
|
795
|
-
|
|
676
|
+
basePath: "",
|
|
796
677
|
},
|
|
797
678
|
};
|
|
798
679
|
|
|
799
680
|
export default config;
|
|
800
681
|
```
|
|
801
682
|
|
|
802
|
-
**Konfiguracja
|
|
683
|
+
**Konfiguracja Zgodna z RODO**:
|
|
803
684
|
|
|
804
685
|
```typescript
|
|
805
686
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -824,13 +705,14 @@ const config: IntlayerConfig = {
|
|
|
824
705
|
httpOnly: false,
|
|
825
706
|
},
|
|
826
707
|
],
|
|
708
|
+
basePath: "",
|
|
827
709
|
},
|
|
828
710
|
};
|
|
829
711
|
|
|
830
712
|
export default config;
|
|
831
713
|
```
|
|
832
714
|
|
|
833
|
-
**Tryb
|
|
715
|
+
**Tryb Parametrów Wyszukiwania (Search Parameters Mode)**:
|
|
834
716
|
|
|
835
717
|
```typescript
|
|
836
718
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -842,13 +724,15 @@ const config: IntlayerConfig = {
|
|
|
842
724
|
},
|
|
843
725
|
routing: {
|
|
844
726
|
mode: "search-params",
|
|
727
|
+
storage: "localStorage",
|
|
728
|
+
basePath: "",
|
|
845
729
|
},
|
|
846
730
|
};
|
|
847
731
|
|
|
848
732
|
export default config;
|
|
849
733
|
```
|
|
850
734
|
|
|
851
|
-
**Tryb
|
|
735
|
+
**Tryb Bez Prefiksu (No Prefix Mode) z niestandardowym przechowywaniem**:
|
|
852
736
|
|
|
853
737
|
```typescript
|
|
854
738
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -862,7 +746,43 @@ const config: IntlayerConfig = {
|
|
|
862
746
|
mode: "no-prefix",
|
|
863
747
|
storage: {
|
|
864
748
|
type: "sessionStorage",
|
|
749
|
+
name: "app-locale",
|
|
865
750
|
},
|
|
751
|
+
basePath: "/my-app",
|
|
752
|
+
},
|
|
753
|
+
};
|
|
754
|
+
|
|
755
|
+
export default config;
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
**Niestandardowe Przepisywanie URL z ścieżkami dynamicznymi**:
|
|
759
|
+
|
|
760
|
+
```typescript
|
|
761
|
+
// intlayer.config.ts
|
|
762
|
+
import { nextjsRewrite } from "intlayer/routing";
|
|
763
|
+
|
|
764
|
+
const config: IntlayerConfig = {
|
|
765
|
+
internationalization: {
|
|
766
|
+
locales: ["en", "fr"],
|
|
767
|
+
defaultLocale: "en",
|
|
768
|
+
},
|
|
769
|
+
routing: {
|
|
770
|
+
mode: "prefix-no-default", // Strategia rezerwowa dla nieprzepisanych ścieżek
|
|
771
|
+
storage: "cookie",
|
|
772
|
+
rewrite: nextjsRewrite({
|
|
773
|
+
"/about": {
|
|
774
|
+
en: "/about",
|
|
775
|
+
fr: "/a-propos",
|
|
776
|
+
},
|
|
777
|
+
"/product/[slug]": {
|
|
778
|
+
en: "/product/[slug]",
|
|
779
|
+
fr: "/produit/[slug]",
|
|
780
|
+
},
|
|
781
|
+
"/blog/[category]/[id]": {
|
|
782
|
+
en: "/blog/[category]/[id]",
|
|
783
|
+
fr: "/journal/[category]/[id]",
|
|
784
|
+
},
|
|
785
|
+
}),
|
|
866
786
|
},
|
|
867
787
|
};
|
|
868
788
|
|
|
@@ -871,356 +791,132 @@ export default config;
|
|
|
871
791
|
|
|
872
792
|
---
|
|
873
793
|
|
|
874
|
-
### Konfiguracja
|
|
794
|
+
### Konfiguracja Treści (Content Configuration)
|
|
795
|
+
|
|
796
|
+
Ustawienia związane z przetwarzaniem treści w aplikacji (nazwy katalogów, rozszerzenia plików i konfiguracje pochodne).
|
|
797
|
+
|
|
798
|
+
| Pole | Typ | Opis | Przykład | Uwaga |
|
|
799
|
+
| ---------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
800
|
+
| `watch` | `boolean` | Określa, czy Intlayer powinien monitorować zmiany w plikach deklaracji treści w celu przebudowy słowników. Domyślnie: `process.env.NODE_ENV === 'development'` | | |
|
|
801
|
+
| `fileExtensions` | `string[]` | Rozszerzenia plików używane do skanowania plików deklaracji treści. Domyślnie: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
|
|
802
|
+
| `contentDir` | `string[]` | Ścieżki do katalogów, w których znajdują się pliki deklaracji treści. Domyślnie: `['.']` | `['src/content']` | |
|
|
803
|
+
| `codeDir` | `string[]` | Ścieżki do katalogów, w których znajdują się pliki kodu źródłowego Twojej aplikacji. Domyślnie: `['.']` | `['src']` | Używane do optymalizacji budowania i zapewnienia, że transformacja kodu oraz przeładowanie na gorąco są stosowane tylko do niezbędnych plików. |
|
|
804
|
+
| `excludedPath` | `string[]` | Ścieżki wykluczone ze skanowania treści. Domyślnie: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
|
|
805
|
+
| `formatCommand` | `string` | Polecenie, które zostanie wykonane w celu sformatowania nowo utworzonych lub zaktualizowanych plików treści. Domyślnie: `undefined` | `'npx prettier --write "{{file}}"'` | Używane podczas wyodrębniania treści lub za pośrednictwem edytora wizualnego. |
|
|
806
|
+
|
|
807
|
+
---
|
|
808
|
+
|
|
809
|
+
### Konfiguracja Słownika (Dictionary Configuration)
|
|
875
810
|
|
|
876
|
-
Ustawienia
|
|
811
|
+
Ustawienia kontrolujące operacje na słownikach, w tym zachowanie automatycznego uzupełniania i tworzenie treści.
|
|
877
812
|
|
|
878
|
-
|
|
813
|
+
Ta konfiguracja słownika ma dwa główne cele:
|
|
879
814
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
- _Domyślnie_: `process.env.NODE_ENV === 'development'`
|
|
883
|
-
- _Opis_: Wskazuje, czy Intlayer powinien obserwować zmiany w plikach deklaracji treści w aplikacji, aby przebudować powiązane słowniki.
|
|
815
|
+
1. **Wartości domyślne**: Definiowanie wartości domyślnych podczas tworzenia plików deklaracji treści.
|
|
816
|
+
2. **Zachowanie rezerwowe (fallback)**: Pozwala na globalne ustawienie zachowania operacji na słownikach, zapewniając wartości rezerwowe, gdy określone pola nie są zdefiniowane.
|
|
884
817
|
|
|
885
|
-
|
|
886
|
-
- _Typ_: `string[]`
|
|
887
|
-
- _Domyślnie_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
888
|
-
- _Opis_: Rozszerzenia plików, które mają być wyszukiwane podczas budowania słowników.
|
|
889
|
-
- _Przykład_: `['.data.ts', '.data.js', '.data.json']`
|
|
890
|
-
- _Uwaga_: Dostosowanie rozszerzeń plików może pomóc uniknąć konfliktów.
|
|
818
|
+
Aby uzyskać więcej informacji na temat sposobu stosowania plików deklaracji treści i wartości konfiguracyjnych, zobacz [dokumentację plików treści](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md).
|
|
891
819
|
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
820
|
+
| Pole | Typ | Opis | Przykład | Uwaga |
|
|
821
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
822
|
+
| `fill` | `boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>>` | Kontroluje sposób generowania plików wyjściowych automatycznego uzupełniania (tłumaczenie AI). Domyślnie: `true` | Zobacz przykład poniżej | `true`: domyślna ścieżka (ten sam plik co źródło). `false`: wyłączone. Wzorce ciągów/funkcji generują pliki dla poszczególnych języków. Obiekt dla poszczególnych języków: każdy język mapuje się na własny wzorzec; `false` pomija ten język. Uwzględnienie zmiennej `{{locale}}` aktywuje generowanie dla poszczególnych języków. `fill` na poziomie słownika zawsze ma pierwszeństwo przed tą globalną konfiguracją. |
|
|
823
|
+
| `importMode` | `'static' | 'dynamic' | 'fetch'` | Kontroluje sposób importowania słowników. Domyślnie: `'static'` | `'dynamic'` | `'static'`: Importowane statycznie. `'dynamic'`: Importowane dynamicznie przez 'Suspense'. `'fetch'`: Pobierane dynamicznie przez 'Live Sync API'. Nie ma wpływu na `getIntlayer`, `getDictionary`, `useDictionary` itp. |
|
|
824
|
+
| `location` | `'local' | 'remote' | 'hybrid' | string` | Gdzie przechowywane są słowniki. Domyślnie: `'local'` | `'remote'` | `'local'`: system plików. `'remote'`: Intlayer CMS. `'hybrid'`: oba. |
|
|
825
|
+
| `contentAutoTransformation` | `boolean` | Czy pliki treści mają być automatycznie przekształcane (np. z Markdown na HTML). Domyślnie: `false` | `true` | Przydatne do przetwarzania pól Markdown za pośrednictwem @intlayer/markdown. |
|
|
898
826
|
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
827
|
+
**Przykład `fill`**:
|
|
828
|
+
|
|
829
|
+
```ts
|
|
830
|
+
dictionary: {
|
|
831
|
+
fill: {
|
|
832
|
+
en: '/locales/en/{{key}}.content.json',
|
|
833
|
+
fr: ({ key }) => `/locales/fr/${key}.content.json`,
|
|
834
|
+
es: false,
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
```
|
|
905
838
|
|
|
906
839
|
---
|
|
907
840
|
|
|
908
|
-
### Konfiguracja
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
- **dictionariesDir**:
|
|
922
|
-
- _Typ_: `string`
|
|
923
|
-
- _Domyślnie_: `'.intlayer/dictionary'`
|
|
924
|
-
- _Opis_: Ścieżka katalogu do przechowywania słowników lokalizacyjnych.
|
|
925
|
-
- _Przykład_: `'translations'`
|
|
926
|
-
|
|
927
|
-
- **moduleAugmentationDir**:
|
|
928
|
-
- _Typ_: `string`
|
|
929
|
-
- _Domyślnie_: `'.intlayer/types'`
|
|
930
|
-
- _Opis_: Katalog do rozszerzania modułów, umożliwiający lepsze sugestie w IDE i sprawdzanie typów.
|
|
931
|
-
- _Przykład_: `'intlayer-types'`
|
|
932
|
-
- _Uwaga_: Upewnij się, że jest to uwzględnione w `tsconfig.json`.
|
|
933
|
-
|
|
934
|
-
- **unmergedDictionariesDir**:
|
|
935
|
-
- _Typ_: `string`
|
|
936
|
-
- _Domyślnie_: `'.intlayer/unmerged_dictionary'`
|
|
937
|
-
- _Opis_: Katalog do przechowywania niepołączonych słowników.
|
|
938
|
-
- _Przykład_: `'translations'`
|
|
939
|
-
|
|
940
|
-
- **typesDir**:
|
|
941
|
-
- _Typ_: `string`
|
|
942
|
-
- _Domyślnie_: `'types'`
|
|
943
|
-
- _Opis_: Katalog do przechowywania typów słowników.
|
|
944
|
-
- _Przykład_: `'intlayer-types'`
|
|
945
|
-
|
|
946
|
-
- **mainDir**:
|
|
947
|
-
- _Typ_: `string`
|
|
948
|
-
- _Domyślnie_: `'main'`
|
|
949
|
-
- _Opis_: Katalog, w którym przechowywane są główne pliki aplikacji.
|
|
950
|
-
- _Przykład_: `'intlayer-main'`
|
|
951
|
-
|
|
952
|
-
- **excludedPath**:
|
|
953
|
-
- _Typ_: `string[]`
|
|
954
|
-
- _Domyślnie_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
|
|
955
|
-
- _Opis_: Katalogi wykluczone z wyszukiwania treści.
|
|
956
|
-
- _Uwaga_: To ustawienie nie jest jeszcze używane, ale planowane do implementacji w przyszłości.
|
|
957
|
-
|
|
958
|
-
- **formatCommand**:
|
|
959
|
-
- _Typ_: `string`
|
|
960
|
-
- _Domyślnie_: `undefined`
|
|
961
|
-
- _Opis_: Komenda do formatowania zawartości. Gdy intlayer zapisuje lokalnie twoje pliki .content, ta komenda będzie używana do formatowania zawartości.
|
|
962
|
-
- _Przykład_: `'npx prettier --write "{{file}}" --log-level silent'` Użycie Prettier
|
|
963
|
-
- _Przykład_: `'npx biome format "{{file}}" --write --log-level none'` Użycie Biome
|
|
964
|
-
- _Przykład_: `'npx eslint --fix "{{file}}" --quiet'` Użycie ESLint
|
|
965
|
-
- _Uwaga_: Intlayer zastąpi {{file}} ścieżką do pliku, który ma zostać sformatowany.
|
|
966
|
-
- _Uwaga_: Jeśli nie zostanie ustawione, Intlayer spróbuje automatycznie wykryć polecenie formatowania. Próbując rozpoznać następujące polecenia: prettier, biome, eslint.
|
|
967
|
-
|
|
968
|
-
### Konfiguracja Słownika
|
|
969
|
-
|
|
970
|
-
Ustawienia kontrolujące operacje słownika, w tym zachowanie automatycznego wypełniania oraz generowanie zawartości.
|
|
971
|
-
|
|
972
|
-
Ta konfiguracja słownika służy dwóm głównym celom:
|
|
973
|
-
|
|
974
|
-
1. **Wartości domyślne**: Definiowanie wartości domyślnych podczas tworzenia plików deklaracji zawartości
|
|
975
|
-
2. **Zachowanie zapasowe**: Zapewnienie wartości zapasowych, gdy konkretne pola nie są zdefiniowane, co pozwala na globalne określenie zachowania operacji słownika
|
|
976
|
-
|
|
977
|
-
Aby uzyskać więcej informacji na temat plików deklaracji zawartości oraz sposobu stosowania wartości konfiguracyjnych, zobacz [Dokumentację pliku zawartości](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md).
|
|
978
|
-
|
|
979
|
-
#### Właściwości
|
|
980
|
-
|
|
981
|
-
- **fill**
|
|
982
|
-
- **description**
|
|
983
|
-
- **locale**
|
|
984
|
-
- **location**
|
|
985
|
-
- **priority**
|
|
986
|
-
- **live**
|
|
987
|
-
- **schema**
|
|
988
|
-
- **title**
|
|
989
|
-
- **tags**
|
|
990
|
-
- **version**
|
|
841
|
+
### Konfiguracja AI (AI Configuration)
|
|
842
|
+
|
|
843
|
+
Definiuje ustawienia dla funkcji Intlayer opartych na AI, takich jak tłumaczenie podczas budowania (build translation).
|
|
844
|
+
|
|
845
|
+
| Pole | Typ | Opis | Przykład | Uwaga |
|
|
846
|
+
| -------------------- | ---------------------- | ------------------------------------------------------------------------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
847
|
+
| `provider` | `string` | Dostawca AI do użycia. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
|
|
848
|
+
| `model` | `string` | Model AI do użycia. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
|
|
849
|
+
| `apiKey` | `string` | Klucz API dla wybranego dostawcy. | `process.env.OPENAI_API_KEY` | |
|
|
850
|
+
| `applicationContext` | `string` | Dodatkowy kontekst Twojej aplikacji w celu poprawy dokładności tłumaczenia AI. | `'Platforma edukacyjna dla dzieci.'` | |
|
|
851
|
+
| `baseURL` | `string` | Opcjonalny bazowy adres URL dla wywołań API. | | Przydatne, jeśli używasz proxy lub lokalnego wdrożenia AI. |
|
|
852
|
+
| `dataSerialization` | `'json' | 'toon'` | Definiuje sposób wysyłania danych do AI. Domyślnie: `'json'` | `'json'` | `'json'`: bardziej stabilny i precyzyjny. `'toon'`: zużywa mniej tokenów, ale może być mniej stabilny. |
|
|
991
853
|
|
|
992
854
|
---
|
|
993
855
|
|
|
994
|
-
### Konfiguracja
|
|
995
|
-
|
|
996
|
-
Ustawienia
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
- **Alibaba Cloud**
|
|
1035
|
-
- **Fireworks**
|
|
1036
|
-
- **Hugging Face**
|
|
1037
|
-
- **Groq**
|
|
1038
|
-
- **Amazon Bedrock**
|
|
1039
|
-
- **Google AI Studio**
|
|
1040
|
-
- **Google Vertex**
|
|
1041
|
-
- **Together.ai**
|
|
1042
|
-
- **ollama**
|
|
1043
|
-
|
|
1044
|
-
#### Właściwości
|
|
1045
|
-
|
|
1046
|
-
- **provider**:
|
|
1047
|
-
- _Typ_: `string`
|
|
1048
|
-
- _Domyślnie_: `'openai'`
|
|
1049
|
-
- _Opis_: Dostawca używany do funkcji AI w Intlayer.
|
|
1050
|
-
- _Opcje_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1051
|
-
- _Przykład_: `'anthropic'`
|
|
1052
|
-
- _Uwaga_: Różni dostawcy mogą wymagać różnych kluczy API i mieć różne modele cenowe.
|
|
1053
|
-
|
|
1054
|
-
- **model**:
|
|
1055
|
-
- _Typ_: `string`
|
|
1056
|
-
- _Domyślnie_: Brak
|
|
1057
|
-
- _Opis_: Model używany do funkcji AI w Intlayer.
|
|
1058
|
-
- _Przykład_: `'gpt-4o-2024-11-20'`
|
|
1059
|
-
- _Uwaga_: Konkretne modele różnią się w zależności od dostawcy.
|
|
1060
|
-
|
|
1061
|
-
- **temperature**:
|
|
1062
|
-
- _Typ_: `number`
|
|
1063
|
-
- _Domyślnie_: Brak
|
|
1064
|
-
- _Opis_: Temperatura kontroluje losowość odpowiedzi AI.
|
|
1065
|
-
- _Przykład_: `0.1`
|
|
1066
|
-
- _Uwaga_: Wyższa temperatura sprawia, że AI jest bardziej kreatywne i mniej przewidywalne.
|
|
1067
|
-
|
|
1068
|
-
- **apiKey**:
|
|
1069
|
-
- _Typ_: `string`
|
|
1070
|
-
- _Domyślnie_: Brak
|
|
1071
|
-
- _Opis_: Twój klucz API dla wybranego dostawcy.
|
|
1072
|
-
- _Przykład_: `process.env.OPENAI_API_KEY`
|
|
1073
|
-
- _Uwaga_: Ważne: Klucze API powinny być przechowywane w tajemnicy i nie udostępniane publicznie. Proszę upewnić się, że są przechowywane w bezpiecznym miejscu, takim jak zmienne środowiskowe.
|
|
1074
|
-
|
|
1075
|
-
- **applicationContext**:
|
|
1076
|
-
- _Typ_: `string`
|
|
1077
|
-
- _Domyślnie_: Brak
|
|
1078
|
-
- _Opis_: Dostarcza dodatkowy kontekst dotyczący Twojej aplikacji dla modelu AI, pomagając mu generować dokładniejsze i kontekstowo odpowiednie tłumaczenia. Może to obejmować informacje o domenie aplikacji, docelowej grupie odbiorców, tonie lub specyficznej terminologii.
|
|
1079
|
-
|
|
1080
|
-
- **baseURL**:
|
|
1081
|
-
- _Typ_: `string`
|
|
1082
|
-
- _Domyślnie_: Brak
|
|
1083
|
-
- _Opis_: Podstawowy URL dla API AI.
|
|
1084
|
-
- _Przykład_: `'https://api.openai.com/v1'`
|
|
1085
|
-
- _Uwaga_: Może być używany do wskazania lokalnego lub niestandardowego punktu końcowego API AI.
|
|
1086
|
-
|
|
1087
|
-
- **dataSerialization**:
|
|
1088
|
-
- _Typ_: `'json' | 'toon'`
|
|
1089
|
-
- _Domyślnie_: `'json'`
|
|
1090
|
-
- _Opis_: Format serializacji danych dla funkcji AI w Intlayer.
|
|
1091
|
-
- _Przykład_: `'toon'`
|
|
1092
|
-
- _Uwaga_: `json`: Standardowy, niezawodny; zużywa więcej tokenów. `toon`: Mniej tokenów, mniej spójny niż JSON.
|
|
1093
|
-
|
|
1094
|
-
### Konfiguracja Budowania
|
|
1095
|
-
|
|
1096
|
-
Ustawienia kontrolujące, jak Intlayer optymalizuje i buduje internacjonalizację Twojej aplikacji.
|
|
1097
|
-
|
|
1098
|
-
Opcje budowania dotyczą wtyczek `@intlayer/babel` oraz `@intlayer/swc`.
|
|
1099
|
-
|
|
1100
|
-
> W trybie deweloperskim Intlayer używa statycznych importów słowników, aby uprościć proces tworzenia aplikacji.
|
|
1101
|
-
|
|
1102
|
-
> Po optymalizacji Intlayer zastąpi wywołania słowników, aby zoptymalizować podział na części (chunking), dzięki czemu finalny pakiet zaimportuje tylko te słowniki, które są faktycznie używane.
|
|
1103
|
-
|
|
1104
|
-
#### Właściwości
|
|
1105
|
-
|
|
1106
|
-
- **mode**:
|
|
1107
|
-
- _Typ_: `'auto' | 'manual'`
|
|
1108
|
-
- _Domyślnie_: `'auto'`
|
|
1109
|
-
- _Opis_: Kontroluje tryb budowania.
|
|
1110
|
-
- _Przykład_: `'manual'`
|
|
1111
|
-
- _Uwaga_: Jeśli 'auto', budowanie zostanie włączone automatycznie podczas budowania aplikacji.
|
|
1112
|
-
- _Uwaga_: Jeśli 'manual', budowanie zostanie ustawione tylko po wykonaniu polecenia budowania.
|
|
1113
|
-
- _Uwaga_: Może być używane do wyłączenia budowania słowników, na przykład gdy należy unikać wykonywania w środowisku Node.js.
|
|
1114
|
-
|
|
1115
|
-
- **optimize**:
|
|
1116
|
-
- _Typ_: `boolean`
|
|
1117
|
-
- _Domyślnie_: `process.env.NODE_ENV === 'production'`
|
|
1118
|
-
- _Opis_: Kontroluje, czy budowa powinna być zoptymalizowana.
|
|
1119
|
-
- _Przykład_: `true`
|
|
1120
|
-
- _Uwaga_: Po włączeniu Intlayer zastąpi wszystkie wywołania słowników, aby zoptymalizować podział na części. W ten sposób finalny pakiet zaimportuje tylko używane słowniki. Wszystkie importy pozostaną statyczne, aby uniknąć asynchronicznego przetwarzania podczas ładowania słowników.
|
|
1121
|
-
- _Uwaga_: Intlayer zastąpi wszystkie wywołania `useIntlayer` trybem zdefiniowanym przez opcję `importMode` oraz `getIntlayer` funkcją `getDictionary`.
|
|
1122
|
-
- _Uwaga_: Ta opcja wymaga wtyczek `@intlayer/babel` oraz `@intlayer/swc`.
|
|
1123
|
-
- _Uwaga_: Upewnij się, że wszystkie klucze są deklarowane statycznie w wywołaniach `useIntlayer`, np. `useIntlayer('navbar')`.
|
|
1124
|
-
|
|
1125
|
-
- **checkTypes**:
|
|
1126
|
-
- _Typ_: `boolean`
|
|
1127
|
-
- _Domyślny_: `false`
|
|
1128
|
-
- _Opis_: Wskazuje, czy kompilacja powinna sprawdzać typy TypeScript i rejestrować błędy.
|
|
1129
|
-
- _Uwaga_: Może to spowolnić proces kompilacji.
|
|
1130
|
-
|
|
1131
|
-
- **outputFormat**:
|
|
1132
|
-
- _Typ_: `'esm' | 'cjs'`
|
|
1133
|
-
- _Domyślnie_: `'esm'`
|
|
1134
|
-
- _Opis_: Kontroluje format wyjściowy słowników.
|
|
1135
|
-
- _Przykład_: `'cjs'`
|
|
1136
|
-
- _Uwaga_: Format wyjściowy słowników.
|
|
1137
|
-
|
|
1138
|
-
- **traversePattern**:
|
|
1139
|
-
- _Typ_: `string[]`
|
|
1140
|
-
- _Domyślnie_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1141
|
-
- _Opis_: Wzorce definiujące, które pliki powinny być przeszukiwane podczas optymalizacji.
|
|
1142
|
-
- _Przykład_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1143
|
-
- _Uwaga_: Użyj tego, aby ograniczyć optymalizację do istotnych plików kodu i poprawić wydajność budowania.
|
|
1144
|
-
- _Uwaga_: Ta opcja zostanie zignorowana, jeśli `optimize` jest wyłączone.
|
|
1145
|
-
- _Uwaga_: Używaj wzorców glob.
|
|
856
|
+
### Konfiguracja Budowania (Build Configuration)
|
|
857
|
+
|
|
858
|
+
Ustawienia procesu budowania i optymalizacji Intlayer.
|
|
859
|
+
|
|
860
|
+
| Pole | Typ | Opis | Przykład | Uwaga |
|
|
861
|
+
| -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -------- | ----- |
|
|
862
|
+
| `mode` | `'auto' | 'manual'` | Określa, czy Intlayer ma być uruchamiany automatycznie podczas etapów pre-build aplikacji. Domyślnie: `'auto'` | | |
|
|
863
|
+
| `optimize` | `boolean` | Określa, czy skompilowane słowniki powinny być optymalizowane pod kątem czasu wykonywania. Domyślnie: `true` w produkcji | | |
|
|
864
|
+
| `outputFormat` | `('cjs' | 'esm')[]` | Format wyjściowy generowanych plików słownika. Domyślnie: `['cjs', 'esm']` | | |
|
|
865
|
+
| `checkTypes` | `boolean` | Określa, czy Intlayer powinien sprawdzać typy w wygenerowanych plikach. Domyślnie: `false` | | |
|
|
866
|
+
|
|
867
|
+
---
|
|
868
|
+
|
|
869
|
+
### Konfiguracja Systemu (System Configuration)
|
|
870
|
+
|
|
871
|
+
Te ustawienia są przeznaczone dla zaawansowanych przypadków użycia i wewnętrznej konfiguracji Intlayer.
|
|
872
|
+
|
|
873
|
+
| Pole | Typ | Opis | Domyślnie |
|
|
874
|
+
| ------------------------- | -------- | ----------------------------------------------- | --------------------------------- |
|
|
875
|
+
| `dictionariesDir` | `string` | Katalog skompilowanych słowników. | `'.intlayer/dictionary'` |
|
|
876
|
+
| `moduleAugmentationDir` | `string` | Katalog dla TypeScript module augmentation. | `'.intlayer/types'` |
|
|
877
|
+
| `unmergedDictionariesDir` | `string` | Katalog niepołączonych słowników. | `'.intlayer/unmerged_dictionary'` |
|
|
878
|
+
| `typesDir` | `string` | Katalog wygenerowanych typów. | `'.intlayer/types'` |
|
|
879
|
+
| `mainDir` | `string` | Główny katalog plików Intlayer. | `'.intlayer/main'` |
|
|
880
|
+
| `configDir` | `string` | Katalog skompilowanych plików konfiguracyjnych. | `'.intlayer/config'` |
|
|
881
|
+
| `cacheDir` | `string` | Katalog plików pamięci podręcznej. | `'.intlayer/cache'` |
|
|
882
|
+
|
|
883
|
+
---
|
|
884
|
+
|
|
885
|
+
### Konfiguracja Kompilatora (Compiler Configuration)
|
|
886
|
+
|
|
887
|
+
Ustawienia kompilatora Intlayer (`intlayer compiler`).
|
|
888
|
+
|
|
889
|
+
| Pole | Typ | Opis | Domyślnie |
|
|
890
|
+
| --------------------- | ------------------------ | ------------------------------------------------------------------------------------------ | --------- |
|
|
891
|
+
| `enabled` | `boolean` | Określa, czy kompilator jest aktywny. | `false` |
|
|
892
|
+
| `output` | `string | Function` | Ścieżka wyjściowa dla wyodrębnionych słowników. | |
|
|
893
|
+
| `saveComponents` | `boolean` | Określa, czy oryginalne pliki źródłowe powinny zostać nadpisane wersjami przekształconymi. | `false` |
|
|
894
|
+
| `noMetadata` | `boolean` | Jeśli `true`, kompilator nie będzie dołączać metadanych w wygenerowanych plikach. | `false` |
|
|
895
|
+
| `dictionaryKeyPrefix` | `string` | Opcjonalny prefiks klucza słownika. | `''` |
|
|
1146
896
|
|
|
1147
897
|
---
|
|
1148
898
|
|
|
1149
|
-
### Konfiguracja
|
|
1150
|
-
|
|
1151
|
-
Ustawienia
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
- _Uwaga_: Jeśli ustawiono na true, kompilator zastąpi oryginalne pliki plikami przekształconymi. W ten sposób kompilator można uruchomić tylko raz, aby przekształcić aplikację, a następnie można go usunąć.
|
|
1174
|
-
|
|
1175
|
-
- **transformPattern**:
|
|
1176
|
-
- _Typ_: `string | string[]`
|
|
1177
|
-
- _Domyślnie_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
|
|
1178
|
-
- _Opis_: Wzorce określające, które pliki powinny być przeszukiwane podczas optymalizacji.
|
|
1179
|
-
- _Przykład_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1180
|
-
- _Uwaga_: Użyj tego, aby ograniczyć optymalizację do istotnych plików kodu i poprawić wydajność budowania.
|
|
1181
|
-
|
|
1182
|
-
- **excludePattern**:
|
|
1183
|
-
- _Typ_: `string | string[]`
|
|
1184
|
-
- _Domyślnie_: `['**/node_modules/**']`
|
|
1185
|
-
- _Opis_: Wzorce określające, które pliki powinny być wykluczone podczas optymalizacji.
|
|
1186
|
-
- _Przykład_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1187
|
-
|
|
1188
|
-
- **output**:
|
|
1189
|
-
- _Typ_: `FilePathPattern`
|
|
1190
|
-
- _Domyślny_: `undefined`
|
|
1191
|
-
- _Opis_: Definiuje ścieżkę plików wyjściowych. Zastępuje `outputDir`. Obsługuje zmienne dynamiczne poprzez szablony ciągów znaków lub funkcję. Obsługiwane zmienne: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` oraz `{{componentDirPath}}`.
|
|
1192
|
-
- _Uwaga_: Ścieżki zaczynające się od `./` są rozwiązywane względem katalogu komponentu. Ścieżki zaczynające się od `/` są rozwiązywane względem katalogu głównego projektu (`baseDir`).
|
|
1193
|
-
- _Uwaga_: Uwzględnienie zmiennej `{{locale}}` w ścieżce umożliwi generowanie słowników oddzielonych według języka.
|
|
1194
|
-
- _Przykład_:
|
|
1195
|
-
- **Plik wielojęzyczny obok komponentu**:
|
|
1196
|
-
- Ciąg znaków: `'./{{fileName}}{{extension}}'`
|
|
1197
|
-
- Funkcja: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1198
|
-
|
|
1199
|
-
- **Zcentralizowane pliki JSON według języka**:
|
|
1200
|
-
- Ciąg znaków: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1201
|
-
- Funkcja: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1202
|
-
|
|
1203
|
-
- **noMetadata**:
|
|
1204
|
-
- _Typ_: `boolean`
|
|
1205
|
-
- _Domyślny_: `false`
|
|
1206
|
-
- _Opis_: Wskazuje, czy metadane powinny być zapisywane w pliku. Jeśli true, kompilator nie będzie zapisywał metadanych słowników (klucza, otoczki zawartości). Przydatne dla wyjść JSON i18next lub ICU MessageFormat na lokalizację.
|
|
1207
|
-
- _Uwaga_: Przydatne w przypadku korzystania z wtyczki `loadJSON`.
|
|
1208
|
-
- _Przykład_:
|
|
1209
|
-
Jeśli `true`:
|
|
1210
|
-
|
|
1211
|
-
```json
|
|
1212
|
-
{
|
|
1213
|
-
"key": "value"
|
|
1214
|
-
}
|
|
1215
|
-
```
|
|
1216
|
-
|
|
1217
|
-
Jeśli `false`:
|
|
1218
|
-
|
|
1219
|
-
```json
|
|
1220
|
-
{
|
|
1221
|
-
"key": "value",
|
|
1222
|
-
"content": {
|
|
1223
|
-
"key": "value"
|
|
1224
|
-
}
|
|
1225
|
-
}
|
|
1226
|
-
```
|
|
899
|
+
### Konfiguracja Rejestratora (Logger Configuration)
|
|
900
|
+
|
|
901
|
+
Ustawienia dostosowywania wyjścia logów Intlayer.
|
|
902
|
+
|
|
903
|
+
| Pole | Typ | Opis | Domyślnie |
|
|
904
|
+
| -------- | ---------------------------------------------- | -------------------------- | -------------- |
|
|
905
|
+
| `mode` | `'default' | 'verbose' | 'disabled'` | Tryb rejestrowania. | `'default'` |
|
|
906
|
+
| `prefix` | `string` | Prefiks komunikatów logów. | `'[intlayer]'` |
|
|
907
|
+
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
### Niestandardowe Schematy (Custom Schemas)
|
|
911
|
+
|
|
912
|
+
| Pole | Typ | Opis |
|
|
913
|
+
| --------- | --------------------------- | --------------------------------------------------------------------- |
|
|
914
|
+
| `schemas` | `Record<string, ZodSchema>` | Pozwala definiować schematy Zod w celu walidacji struktury słowników. |
|
|
915
|
+
|
|
916
|
+
---
|
|
917
|
+
|
|
918
|
+
### Wtyczki (Plugins)
|
|
919
|
+
|
|
920
|
+
| Pole | Typ | Opis |
|
|
921
|
+
| --------- | ------------------ | ------------------------------------ |
|
|
922
|
+
| `plugins` | `IntlayerPlugin[]` | Lista wtyczek Intlayer do aktywacji. |
|