@intlayer/docs 8.4.4 → 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.
Files changed (107) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +29 -0
  2. package/dist/cjs/blog.cjs +21 -1
  3. package/dist/cjs/blog.cjs.map +1 -1
  4. package/dist/cjs/common.cjs +81 -1
  5. package/dist/cjs/common.cjs.map +1 -0
  6. package/dist/cjs/doc.cjs +21 -1
  7. package/dist/cjs/doc.cjs.map +1 -1
  8. package/dist/cjs/frequentQuestions.cjs +21 -1
  9. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  10. package/dist/cjs/generated/blog.entry.cjs +572 -1
  11. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  12. package/dist/cjs/generated/docs.entry.cjs +3032 -1
  13. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  14. package/dist/cjs/generated/frequentQuestions.entry.cjs +352 -1
  15. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  16. package/dist/cjs/generated/legal.entry.cjs +72 -1
  17. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  18. package/dist/cjs/index.cjs +34 -1
  19. package/dist/cjs/legal.cjs +21 -1
  20. package/dist/cjs/legal.cjs.map +1 -1
  21. package/dist/esm/blog.mjs +14 -1
  22. package/dist/esm/blog.mjs.map +1 -1
  23. package/dist/esm/common.mjs +67 -1
  24. package/dist/esm/common.mjs.map +1 -1
  25. package/dist/esm/doc.mjs +14 -1
  26. package/dist/esm/doc.mjs.map +1 -1
  27. package/dist/esm/frequentQuestions.mjs +14 -1
  28. package/dist/esm/frequentQuestions.mjs.map +1 -1
  29. package/dist/esm/generated/blog.entry.mjs +570 -1
  30. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  31. package/dist/esm/generated/docs.entry.mjs +3030 -1
  32. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  33. package/dist/esm/generated/frequentQuestions.entry.mjs +350 -1
  34. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  35. package/dist/esm/generated/legal.entry.mjs +70 -1
  36. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  37. package/dist/esm/index.mjs +6 -1
  38. package/dist/esm/legal.mjs +14 -1
  39. package/dist/esm/legal.mjs.map +1 -1
  40. package/dist/types/blog.d.ts +2 -2
  41. package/dist/types/common.d.ts +37 -2
  42. package/dist/types/common.d.ts.map +1 -0
  43. package/dist/types/doc.d.ts +2 -2
  44. package/dist/types/frequentQuestions.d.ts +2 -2
  45. package/dist/types/generated/blog.entry.d.ts +35 -2
  46. package/dist/types/generated/blog.entry.d.ts.map +1 -0
  47. package/dist/types/generated/docs.entry.d.ts +158 -2
  48. package/dist/types/generated/docs.entry.d.ts.map +1 -0
  49. package/dist/types/generated/frequentQuestions.entry.d.ts +24 -2
  50. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -0
  51. package/dist/types/generated/legal.entry.d.ts +10 -2
  52. package/dist/types/generated/legal.entry.d.ts.map +1 -0
  53. package/dist/types/legal.d.ts +2 -2
  54. package/docs/ar/configuration.md +520 -722
  55. package/docs/ar/intlayer_with_storybook.md +521 -0
  56. package/docs/bn/configuration.md +922 -0
  57. package/docs/bn/intlayer_with_hono.md +428 -0
  58. package/docs/de/configuration.md +369 -743
  59. package/docs/de/intlayer_with_storybook.md +521 -0
  60. package/docs/en/configuration.md +181 -507
  61. package/docs/en/intlayer_with_storybook.md +521 -0
  62. package/docs/en-GB/configuration.md +456 -657
  63. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  64. package/docs/es/configuration.md +379 -754
  65. package/docs/es/intlayer_with_storybook.md +521 -0
  66. package/docs/fr/configuration.md +376 -757
  67. package/docs/fr/intlayer_with_storybook.md +521 -0
  68. package/docs/hi/configuration.md +532 -728
  69. package/docs/hi/intlayer_with_storybook.md +521 -0
  70. package/docs/id/configuration.md +371 -684
  71. package/docs/id/intlayer_with_storybook.md +521 -0
  72. package/docs/it/configuration.md +397 -775
  73. package/docs/it/intlayer_with_storybook.md +521 -0
  74. package/docs/ja/configuration.md +525 -724
  75. package/docs/ja/intlayer_with_storybook.md +521 -0
  76. package/docs/ko/configuration.md +525 -724
  77. package/docs/ko/intlayer_with_storybook.md +521 -0
  78. package/docs/pl/configuration.md +430 -734
  79. package/docs/pl/intlayer_with_storybook.md +521 -0
  80. package/docs/pt/configuration.md +375 -746
  81. package/docs/pt/intlayer_with_storybook.md +521 -0
  82. package/docs/ru/configuration.md +532 -701
  83. package/docs/ru/intlayer_with_storybook.md +521 -0
  84. package/docs/tr/configuration.md +527 -719
  85. package/docs/tr/intlayer_with_storybook.md +521 -0
  86. package/docs/uk/configuration.md +425 -744
  87. package/docs/uk/intlayer_with_storybook.md +521 -0
  88. package/docs/ur/configuration.md +922 -0
  89. package/docs/ur/intlayer_with_hono.md +428 -0
  90. package/docs/vi/configuration.md +412 -753
  91. package/docs/vi/intlayer_with_storybook.md +521 -0
  92. package/docs/zh/configuration.md +521 -714
  93. package/docs/zh/intlayer_with_storybook.md +521 -0
  94. package/package.json +6 -6
  95. package/src/generated/docs.entry.ts +20 -0
  96. package/dist/cjs/common-a-l0ULP6.cjs +0 -2
  97. package/dist/cjs/common-a-l0ULP6.cjs.map +0 -1
  98. package/dist/types/blog.entry-D5IgxPXY.d.ts +0 -35
  99. package/dist/types/blog.entry-D5IgxPXY.d.ts.map +0 -1
  100. package/dist/types/common-B45TZvLQ.d.ts +0 -37
  101. package/dist/types/common-B45TZvLQ.d.ts.map +0 -1
  102. package/dist/types/docs.entry-CergjAYt.d.ts +0 -157
  103. package/dist/types/docs.entry-CergjAYt.d.ts.map +0 -1
  104. package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts +0 -24
  105. package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts.map +0 -1
  106. package/dist/types/legal.entry-B5Lg5eeH.d.ts +0 -10
  107. package/dist/types/legal.entry-B5Lg5eeH.d.ts.map +0 -1
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
4
- title: Konfiguracja
5
- description: Dowiedz się, jak skonfigurować Intlayer dla swojej aplikacji. Zrozum różne ustawienia i opcje dostępne do dostosowania Intlayer do Twoich potrzeb.
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
- - Personalizacja
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: Przenieś 'baseDir' z konfiguracji 'content' do konfiguracji 'system'
22
+ changes: Przeniesiono 'baseDir' z konfiguracji 'content' do konfiguracji 'system'
20
23
  - version: 8.2.0
21
24
  date: 2026-03-09
22
- changes: Zaktualizuj opcje kompilatora, dodaj obsługę 'output' i 'noMetadata'
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: Aktualizacja opcji kompilatora
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: Dodaj obsługę dostawców Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face i Together.ai
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: Przenieś konfigurację budowania importMode do konfiguracji słownika.
46
+ changes: Dodano opcję `rewrite` do konfiguracji routingu
35
47
  - version: 8.0.0
36
48
  date: 2026-01-18
37
- changes: Oddziel konfigurację systemu od konfiguracji treści. Przenieś wewnętrzne ścieżki do właściwości `system`. Dodaj `codeDir`, aby oddzielić pliki treści od transformacji kodu.
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 konfigurację `middleware` konfiguracją `routing`
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 pole `dictionaryOutput` oraz pole `i18nextResourcesDir`
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` polem `liveSync` oraz dodano pola `liveSyncPort` i `liveSyncURL`
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 komendy `docs`
91
+ changes: Dodano polecenia `docs`
77
92
  ---
78
93
 
79
- # Dokumentacja konfiguracji Intlayer
94
+ # Dokumentacja Konfiguracji Intlayer
80
95
 
81
96
  ## Przegląd
82
97
 
83
- Pliki konfiguracyjne Intlayer umożliwiają dostosowanie różnych aspektów wtyczki, takich jak internacjonalizacja, middleware oraz obsługa treści. Ten dokument zawiera szczegółowy opis każdej właściwości w konfiguracji.
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 treści
102
+ ## Spis Treści
88
103
 
89
104
  <TOC/>
90
105
 
91
106
  ---
92
107
 
93
- ## Obsługiwane formaty plików konfiguracyjnych
108
+ ## Obsługiwane Formaty Plików Konfiguracyjnych
94
109
 
95
- Intlayer obsługuje formaty plików konfiguracyjnych JSON, JS, MJS oraz TS:
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 plik konfiguracyjny
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
- * Example Intlayer configuration file showing all available options.
131
+ * Przykładowy plik konfiguracyjny Intlayer wyświetlający wszystkie dostępne opcje.
117
132
  */
118
133
  const config: IntlayerConfig = {
119
134
  /**
120
- * Configuration for internationalization settings.
135
+ * Konfiguracja ustawień internacjonalizacji.
121
136
  */
122
137
  internationalization: {
123
138
  /**
124
- * List of supported locales in the application.
125
- * Default: [Locales.ENGLISH]
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
- * List of required locales that must be defined in every dictionary.
131
- * If empty, all locales are required in `strict` mode.
132
- * Default: []
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 obowiązkowe w trybie `strict`.
147
+ * Domyślnie: []
133
148
  */
134
149
  requiredLocales: [Locales.ENGLISH],
135
150
 
136
151
  /**
137
- * Strictness level for internationalized content.
138
- * - "strict": Errors if any declared locale is missing or undeclared.
139
- * - "inclusive": Warnings if a declared locale is missing.
140
- * - "loose": Accepts any existing locale.
141
- * Default: "inclusive"
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
- * Default locale used as a fallback if the requested locale is not found.
147
- * Default: Locales.ENGLISH
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
- * Settings that control dictionary operations and fallback behavior.
168
+ * Ustawienia kontrolujące operacje na słownikach i zachowanie rezerwowe (fallback).
154
169
  */
155
170
  dictionary: {
156
171
  /**
157
- * Controls how dictionaries are imported.
158
- * - "static": Statically imported at build time.
159
- * - "dynamic": Dynamically imported using Suspense.
160
- * - "fetch": Fetched dynamically via the live sync API.
161
- * Default: "static"
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
- * Strategy for auto-filling missing translations using AI.
167
- * Can be a boolean or a path pattern to store filled content.
168
- * Default: true
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
- * Physical location of the dictionary files.
174
- * - "local": Stored in the local filesystem.
175
- * - "remote": Stored in the Intlayer CMS.
176
- * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
177
- * - "plugin" (or any custom string): Provided by a plugin or a custom source.
178
- * Default: "local"
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
- * Whether to automatically transform content (e.g., Markdown to HTML).
184
- * Default: false
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
- * Routing and middleware configuration.
205
+ * Konfiguracja routingu i middleware.
191
206
  */
192
207
  routing: {
193
208
  /**
194
- * Locale routing strategy.
195
- * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
196
- * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
197
- * - "no-prefix": No locale in the URL.
198
- * - "search-params": Use ?locale=...
199
- * Default: "prefix-no-default"
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
- * Where to store the user's selected locale.
205
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
206
- * Default: ['cookie', 'header']
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
- * Base path for the application URLs.
212
- * Default: ""
226
+ * Ścieżka bazowa dla adresów URL aplikacji.
227
+ * Domyślnie: ""
213
228
  */
214
229
  basePath: "",
215
230
 
216
231
  /**
217
- * Custom URL rewriting rules for locale-specific paths.
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
- * Settings for finding and processing content files.
243
+ * Ustawienia dotyczące wyszukiwania i przetwarzania plików treści.
229
244
  */
230
245
  content: {
231
246
  /**
232
- * File extensions to scan for dictionaries.
233
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
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
- * Directories where .content files are located.
239
- * Default: ["."]
253
+ * Katalogi, w których znajdują się pliki .content.
254
+ * Domyślnie: ["."]
240
255
  */
241
256
  contentDir: ["src"],
242
257
 
243
258
  /**
244
- * Directories where source code is located.
245
- * Used for build optimization and code transformation.
246
- * Default: ["."]
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
- * Patterns to exclude from scanning.
252
- * Default: ['node_modules', '.intlayer', etc.]
266
+ * Wzorce wykluczone ze skanowania.
267
+ * Domyślnie: ['node_modules', '.intlayer', itp.]
253
268
  */
254
269
  excludedPath: ["node_modules"],
255
270
 
256
271
  /**
257
- * Whether to watch for changes and rebuild dictionaries in development.
258
- * Default: true in development
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
- * Command to format newly created / updated .content files.
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 configuration.
284
+ * Konfiguracja Edytora Wizualnego (Visual Editor).
270
285
  */
271
286
  editor: {
272
287
  /**
273
- * Whether the visual editor is enabled.
274
- * Default: false
288
+ * Czy edytor wizualny jest włączony.
289
+ * Domyślnie: false
275
290
  */
276
291
  enabled: true,
277
292
 
278
293
  /**
279
- * URL of your application for origin validation.
280
- * Default: ""
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 for the local editor server.
286
- * Default: 8000
300
+ * Port dla lokalnego serwera edytora.
301
+ * Domyślnie: 8000
287
302
  */
288
303
  port: 8000,
289
304
 
290
305
  /**
291
- * Public URL for the editor.
292
- * Default: "http://localhost:8000"
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 URL.
298
- * Default: "https://app.intlayer.org"
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 URL.
304
- * Default: "https://back.intlayer.org"
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
- * Whether to enable real-time content synchronization.
310
- * Default: false
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
- * AI-powered translation and generation settings.
331
+ * Ustawienia tłumaczenia i budowania opartego na AI.
317
332
  */
318
333
  ai: {
319
334
  /**
320
- * AI provider to use.
321
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
322
- * Default: 'openai'
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 to use from the selected provider.
342
+ * Model wybranego dostawcy do użycia.
328
343
  */
329
344
  model: "gpt-4o",
330
345
 
331
346
  /**
332
- * Provider API key.
347
+ * Klucz API dostawcy.
333
348
  */
334
349
  apiKey: process.env.OPENAI_API_KEY,
335
350
 
336
351
  /**
337
- * Global context to guide the AI in generating translations.
352
+ * Kontekst globalny dla AI podczas budowania tłumaczeń.
338
353
  */
339
- applicationContext: "This is a travel booking application.",
354
+ applicationContext: "To jest aplikacja do rezerwacji podróży.",
340
355
 
341
356
  /**
342
- * Base URL for the AI API.
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": Standardowa, niezawodna; zużywa więcej tokenów.
351
- * - "toon": Mniej tokenów, mniej spójna niż JSON.
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
- * Build and optimization settings.
374
+ * Ustawienia budowania i optymalizacji.
360
375
  */
361
376
  build: {
362
377
  /**
363
- * Build execution mode.
364
- * - "auto": Automatic build during app build.
365
- * - "manual": Requires explicit build command.
366
- * Default: "auto"
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
- * Whether to optimize the final bundle by pruning unused dictionaries.
372
- * Default: true in production
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
- * Output format for generated dictionary files.
378
- * Default: ['esm', 'cjs']
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
- * Indicates if the build should check TypeScript types.
384
- * Default: false
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 configuration.
405
+ * Konfiguracja rejestratora (Logger).
391
406
  */
392
407
  log: {
393
408
  /**
394
- * Logging level.
395
- * - "default": Standard logging.
396
- * - "verbose": Detailed debug logging.
397
- * - "disabled": No logging.
398
- * Default: "default"
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
- * Prefix for all log messages.
404
- * Default: "[intlayer]"
418
+ * Prefiks wszystkich komunikatów dziennika.
419
+ * Domyślnie: "[intlayer]"
405
420
  */
406
421
  prefix: "[intlayer]",
407
422
  },
408
423
 
409
424
  /**
410
- * System configuration (Advanced use cases)
425
+ * Konfiguracja systemu (do użytku zaawansowanego)
411
426
  */
412
427
  system: {
413
428
  /**
414
- * Directory for storing localization dictionaries.
429
+ * Katalog do przechowywania zlokalizowanych słowników.
415
430
  */
416
431
  dictionariesDir: ".intlayer/dictionary",
417
432
 
418
433
  /**
419
- * Directory for module augmentation.
434
+ * Katalog dla TypeScript module augmentation.
420
435
  */
421
436
  moduleAugmentationDir: ".intlayer/types",
422
437
 
423
438
  /**
424
- * Directory for storing unmerged dictionaries.
439
+ * Katalog do przechowywania niepołączonych (unmerged) słowników.
425
440
  */
426
441
  unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
427
442
 
428
443
  /**
429
- * Directory for storing dictionary types.
444
+ * Katalog do przechowywania typów słowników.
430
445
  */
431
446
  typesDir: ".intlayer/types",
432
447
 
433
448
  /**
434
- * Directory where main application files are stored.
449
+ * Katalog, w którym przechowywane główne pliki aplikacji.
435
450
  */
436
451
  mainDir: ".intlayer/main",
437
452
 
438
453
  /**
439
- * Directory where the configuration files are stored.
454
+ * Katalog, w którym przechowywane pliki konfiguracyjne.
440
455
  */
441
456
  configDir: ".intlayer/config",
442
457
 
443
458
  /**
444
- * Directory where the cache files are stored.
459
+ * Katalog, w którym przechowywane pliki pamięci podręcznej (cache).
445
460
  */
446
461
  cacheDir: ".intlayer/cache",
447
462
  },
448
463
 
449
464
  /**
450
- * Compiler configuration (Advanced use cases)
465
+ * Konfiguracja Kompilatora (dla użytku zaawansowanego)
451
466
  */
452
467
  compiler: {
453
468
  /**
454
- * Wskazuje, czy kompilator powinien być włączony.
469
+ * Określa, czy kompilator powinien być włączony.
455
470
  *
456
- * - false : Wyłącza kompilator.
457
- * - true : Włącza kompilator.
458
- * - "build-only" : Pomija kompilator podczas programowania, aby przyspieszyć czas uruchamiania.
471
+ * - false: Wyłącza kompilator.
472
+ * - true: Włącza kompilator.
473
+ * - "build-only": Pomija kompilator podczas programowania i przyspiesza czas uruchamiania.
459
474
  *
460
- * Wartość domyślna : false
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 zaczynające się od `./` są rozwiązywane względem katalogu komponentu.
468
- * - Ścieżki zaczynające się od `/` są rozwiązywane względem katalogu głównego projektu (`baseDir`).
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 umożliwi generowanie słowników oddzielonych według języka.
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
- * // Utwórz wielojęzyczne pliki .content.ts obok komponentu
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 użycie szablonu ciągu znaków
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
- * // Utwórz scentralizowane pliki JSON według języka w katalogu głównym projektu
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 użycie szablonu ciągu znaków
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 zawartości.
494
- * - `locale`: Język zawartości.
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 do katalogu komponentu.
515
+ * - `componentDirPath`: Ścieżka katalogu komponentu.
501
516
  */
502
517
  output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
503
518
 
504
519
  /**
505
- * Wskazuje, czy komponenty powinny być zapisywane po transformacji.
506
- * W ten sposób kompilator można uruchomić tylko raz, aby przetransformować aplikację, a następnie go usunąć.
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
- * Wstaw tylko zawartość do wygenerowanego pliku. Przydatne dla wyjść JSON i18next lub ICU MessageFormat na lokalizację.
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 dla wyodrębnionych kluczy słownika
533
+ dictionaryKeyPrefix: "", // Dodaj opcjonalny prefiks do wyodrębnionych kluczy słownika
519
534
  },
520
535
 
521
536
  /**
522
- * Custom schemas to validate the dictionaries content.
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 configuration.
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
- ## Odniesienie do konfiguracji
554
+ ---
555
+
556
+ ## Odniesienie do Konfiguracji (Configuration Reference)
540
557
 
541
- Poniższe sekcje opisują różne ustawienia konfiguracyjne dostępne dla Intlayer.
558
+ Poniższe sekcje opisują różne opcje konfiguracyjne dostępne w Intlayer.
542
559
 
543
560
  ---
544
561
 
545
- ### Konfiguracja internacjonalizacji
546
-
547
- Definiuje ustawienia związane z internacjonalizacją, w tym dostępne lokalizacje oraz domyślną lokalizację dla aplikacji.
548
-
549
- #### Właściwości
550
-
551
- - **locales**:
552
- - _Typ_: `string[]`
553
- - _Domyślnie_: `['en']`
554
- - _Opis_: Lista obsługiwanych lokalizacji w aplikacji.
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 edytora
582
-
583
- Definiuje ustawienia związane z zintegrowanym edytorem, w tym port serwera i status aktywności.
584
-
585
- #### Właściwości
586
-
587
- - **applicationURL**:
588
- - _Typ_: `string`
589
- - _Domyślnie_: `http://localhost:3000`
590
- - _Opis_: URL aplikacji. Używany do ograniczenia pochodzenia edytora ze względów bezpieczeństwa.
591
- - _Przykład_:
592
- - `'http://localhost:3000'`
593
- - `'https://example.com'`
594
- - `process.env.INTLAYER_EDITOR_URL`
595
- - _Uwaga_: URL aplikacji. Używany do ograniczenia pochodzenia edytora ze względów bezpieczeństwa. Jeśli ustawiony na `'*'`, edytor jest dostępny z dowolnego pochodzenia.
596
-
597
- - **port**:
598
- - _Typ_: `number`
599
- - _Domyślnie_: `8000`
600
- - _Opis_: Port używany przez serwer wizualnego edytora.
601
-
602
- - **editorURL**:
603
- - _Typ_: `string`
604
- - _Domyślnie_: `'http://localhost:8000'`
605
- - _Opis_: URL serwera edytora. Używany do ograniczenia pochodzenia edytora ze względów bezpieczeństwa.
606
- - `'http://localhost:3000'`
607
- - `'https://example.com'`
608
- - `process.env.INTLAYER_EDITOR_URL`
609
- - _Uwaga_: URL serwera edytora, do którego aplikacja się łączy. Używany do ograniczenia pochodzenia, które może wchodzić w interakcję z aplikacją ze względów bezpieczeństwa. Jeśli ustawiony na `'*'`, edytor jest dostępny z dowolnego pochodzenia. Powinien być ustawiony, jeśli zmieniono port lub jeśli edytor jest hostowany na innej domenie.
610
-
611
- - **cmsURL**:
612
- - _Typ_: `string`
613
- - _Domyślnie_: `'https://intlayer.org'`
614
- - _Opis_: URL systemu CMS Intlayer.
615
- - _Przykład_: `'https://intlayer.org'`
616
- - _Uwaga_: URL systemu CMS Intlayer.
617
-
618
- - **backendURL**:
619
- - _Typ_: `string`
620
- - _Domyślnie_: `https://back.intlayer.org`
621
- - _Opis_: URL serwera backendowego.
622
- - _Przykład_: `http://localhost:4000`
623
-
624
- - **enabled**:
625
- - _Typ_: `boolean`
626
- - _Domyślnie_: `true`
627
- - _Opis_: Wskazuje, czy aplikacja wchodzi w interakcję z edytorem wizualnym.
628
- - _Przykład_: `process.env.NODE_ENV !== 'production'`
629
- - _Uwaga_: Jeśli wartość jest prawdziwa, edytor będzie mógł wchodzić w interakcję z aplikacją. Jeśli fałszywa, edytor nie będzie mógł wchodzić w interakcję z aplikacją. W każdym przypadku edytor może być włączony tylko przez edytor wizualny. Wyłączanie edytora dla określonych środowisk jest sposobem na zwiększenie bezpieczeństwa.
630
-
631
- - **clientId**:
632
- - _Typ_: `string` | `undefined`
633
- - _Domyślnie_: `undefined`
634
- - _Opis_: clientId i clientSecret pozwalają pakietom intlayer na uwierzytelnianie się z backendem za pomocą uwierzytelniania oAuth2. Token dostępu jest używany do uwierzytelniania użytkownika związanego z projektem. Aby uzyskać token dostępu, przejdź do https://app.intlayer.org/project i załóż konto.
635
- - _Przykład_: `true`
636
- - _Uwaga_: Ważne: clientId i clientSecret powinny być przechowywane w tajemnicy i nie udostępniane publicznie. Upewnij się, że są przechowywane w bezpiecznym miejscu, na przykład w zmiennych środowiskowych.
637
-
638
- - **clientSecret**:
639
- - _Typ_: `string` | `undefined`
640
- - _Domyślnie_: `undefined`
641
- - _Opis_: clientId i clientSecret pozwalają pakietom intlayer na uwierzytelnianie się z backendem za pomocą uwierzytelniania oAuth2. Token dostępu jest używany do uwierzytelniania użytkownika związanego z projektem. Aby uzyskać token dostępu, przejdź do https://app.intlayer.org/project i załóż konto.
642
- - _Przykład_: `true`
643
- - _Uwaga_: Ważne: clientId i clientSecret powinny być przechowywane w tajemnicy i nie udostępniane publicznie. Upewnij się, że są przechowywane w bezpiecznym miejscu, na przykład w zmiennych środowiskowych.
644
-
645
- - **dictionaryPriorityStrategy**:
646
- - _Typ_: `string`
647
- - _Domyślnie_: `'local_first'`
648
- - _Opis_: Strategia priorytetyzacji słowników w przypadku obecności zarówno lokalnych, jak i zdalnych słowników. Jeśli ustawiona na `'distant_first'`, aplikacja będzie priorytetowo traktować słowniki zdalne nad lokalnymi. Jeśli ustawiona na `'local_first'`, aplikacja będzie priorytetowo traktować słowniki lokalne nad zdalnymi.
649
- - _Przykład_: `'distant_first'`
650
-
651
- - **liveSync**:
652
- - _Typ_: `boolean`
653
- - _Domyślnie_: `false`
654
- - _Opis_: Wskazuje, czy serwer aplikacji powinien automatycznie przeładowywać zawartość aplikacji po wykryciu zmiany w CMS / Visual Editor / Backend.
655
- - _Przykład_: `true`
656
- - _Uwaga_: Na przykład, gdy zostanie dodany lub zaktualizowany nowy słownik, aplikacja zaktualizuje zawartość wyświetlaną na stronie.
657
- - _Uwaga_: Live sync wymaga zewnętrznego udostępnienia zawartości aplikacji na innym serwerze. Oznacza to, że może to nieznacznie wpłynąć na wydajność aplikacji. Aby to ograniczyć, zalecamy hostowanie aplikacji i serwera live sync na tej samej maszynie. Ponadto, połączenie live sync i `optimize` może generować znaczną liczbę zapytań do serwera live sync. W zależności od infrastruktury, zalecamy przetestowanie obu opcji oraz ich kombinacji.
658
-
659
- - **liveSyncPort**:
660
- - _Typ_: `number`
661
- - _Domyślnie_: `4000`
662
- - _Opis_: Port serwera live sync.
663
- - _Przykład_: `4000`
664
- - _Uwaga_: Port serwera live sync.
665
-
666
- - **liveSyncURL**:
667
- - _Typ_: `string`
668
- - _Domyślnie_: `'http://localhost:{liveSyncPort}'`
669
- - _Opis_: URL serwera live sync.
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 &#124; 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 &#124; 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' &#124; 'prefix-all' &#124; 'no-prefix' &#124; '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 &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; 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' &#124; 'lax' &#124; 'none'` | Polityka SameSite. |
648
+ | `expires` | `Date &#124; 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' &#124; '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
- headerName: "x-intlayer-locale",
676
+ basePath: "",
796
677
  },
797
678
  };
798
679
 
799
680
  export default config;
800
681
  ```
801
682
 
802
- **Konfiguracja zgodna z RODO**:
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 parametrów wyszukiwania**:
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 bez prefiksu z niestandardową pamięcią**:
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 treści
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 związane z obsługą treści w aplikacji, w tym nazwy katalogów, rozszerzenia plików oraz pochodne konfiguracje.
811
+ Ustawienia kontrolujące operacje na słownikach, w tym zachowanie automatycznego uzupełniania i tworzenie treści.
877
812
 
878
- #### Właściwości
813
+ Ta konfiguracja słownika ma dwa główne cele:
879
814
 
880
- - **watch**:
881
- - _Typ_: `boolean`
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
- - **fileExtensions**:
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
- - **contentDir**:
893
- - _Typ_: `string[]`
894
- - _Domyślnie_: `['.']`
895
- - _Przykład_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
896
- - _Opis_: Ścieżka katalogu, w którym przechowywane są pliki definicji treści (`.content.*`).
897
- - _Uwaga_: Jest używany do monitorowania plików treści w celu przebudowy słowników.
820
+ | Pole | Typ | Opis | Przykład | Uwaga |
821
+ | --------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
822
+ | `fill` | `boolean &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; 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' &#124; 'dynamic' &#124; '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' &#124; 'remote' &#124; 'hybrid' &#124; 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
- - **codeDir**:
900
- - _Typ_: `string[]`
901
- - _Domyślnie_: `['.']`
902
- - _Przykład_: `['src', '../../ui-library']`
903
- - _Opis_: Ścieżka katalogu, w którym przechowywany jest kod, względem katalogu bazowego.
904
- - _Uwaga_: Jest używany do monitorowania plików kodu w celu transformacji (przycinanie, optymalizacja). Utrzymanie tego oddzielnie od `contentDir` może poprawić wydajność kompilacji, unikając niepotrzebnego skanowania plików treści.
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 systemu
909
-
910
- Ustawienia związane z wewnętrznymi ścieżkami oraz wynikami wyjściowymi Intlayer. Te ustawienia zazwyczaj wewnętrzne i nie powinny być modyfikowane przez użytkownika.
911
-
912
- #### Właściwości
913
-
914
- - **baseDir**:
915
- - _Typ_: `string`
916
- - _Domyślnie_: `process.cwd()`
917
- - _Opis_: Katalog bazowy projektu.
918
- - _Przykład_: `'/path/to/project'`
919
- - _Uwaga_: Jest używany do rozwiązywania wszystkich katalogów związanych z Intlayer.
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' &#124; '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 Loggera
995
-
996
- Ustawienia kontrolujące logger, w tym prefiks do użycia.
997
-
998
- #### Właściwości
999
-
1000
- - **mode**:
1001
- - _Typ_: `string`
1002
- - _Domyślnie_: `default`
1003
- - _Opis_: Określa tryb loggera.
1004
- - _Opcje_: `default`, `verbose`, `disabled`
1005
- - _Przykład_: `default`
1006
- - _Uwaga_: Tryb loggera. Tryb verbose będzie logował więcej informacji, ale może być używany do celów debugowania. Tryb disabled wyłączy logger.
1007
-
1008
- - **prefix**:
1009
- - _Typ_: `string`
1010
- - _Domyślnie_: `'[intlayer] '`
1011
- - _Opis_: Prefiks loggera.
1012
- - _Przykład_: `'[my custom prefix] '`
1013
- - _Uwaga_: Prefiks loggera.
1014
-
1015
- ### Konfiguracja AI
1016
-
1017
- Ustawienia kontrolujące funkcje AI w Intlayer, w tym dostawcę, model i klucz API.
1018
-
1019
- Ta konfiguracja jest opcjonalna, jeśli jesteś zarejestrowany na [Intlayer Dashboard](https://app.intlayer.org/project) i korzystasz z klucza dostępu. Intlayer automatycznie zarządza najbardziej efektywnym i opłacalnym rozwiązaniem AI dla Twoich potrzeb. Korzystanie z domyślnych opcji zapewnia lepszą długoterminową utrzymalność, ponieważ Intlayer stale aktualizuje się, aby korzystać z najbardziej odpowiednich modeli.
1020
-
1021
- Jeśli wolisz używać własnego klucza API lub konkretnego modelu, możesz zdefiniować własną konfigurację AI.
1022
- Ta konfiguracja AI będzie używana globalnie w całym środowisku Intlayer. Polecenia CLI będą korzystać z tych ustawień jako domyślnych dla poleceń (np. `fill`), a także SDK, Visual Editor i CMS. Możesz nadpisać te domyślne wartości dla konkretnych przypadków użycia, korzystając z parametrów poleceń.
1023
-
1024
- Intlayer obsługuje wielu dostawców AI, aby zapewnić większą elastyczność i wybór. Obecnie obsługiwani dostawcy to:
1025
-
1026
- - **OpenAI** (domyślny)
1027
- - **Anthropic Claude**
1028
- - **Mistral AI**
1029
- - **DeepSeek**
1030
- - **Google Gemini**
1031
- - **Meta Llama**
1032
- - **Ollama**
1033
- - **OpenRouter**
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' &#124; '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' &#124; '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 &#124; 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 Kompilatora
1150
-
1151
- Ustawienia kontrolujące kompilator Intlayer, który wyodrębnia słowniki bezpośrednio z Twoich komponentów.
1152
-
1153
- #### Właściwości
1154
-
1155
- - **enabled**:
1156
- - _Typ_: `boolean | 'build-only'`
1157
- - _Domyślnie_: `true`
1158
- - _Opis_: Wskazuje, czy kompilator powinien być włączony w celu wyodrębniania słowników.
1159
- - _Przykład_: `'build-only'`
1160
- - _Uwaga_: Ustawienie go na `'build-only'` spowoduje pominięcie kompilatora w trybie deweloperskim, co przyspieszy czas uruchamiania. Będzie on uruchamiany tylko przy poleceniach budowania.
1161
-
1162
- - **dictionaryKeyPrefix**:
1163
- - _Typ_: `string`
1164
- - _Domyślnie_: `''`
1165
- - _Opis_: Prefiks dla wyodrębnionych kluczy słownika.
1166
- - _Przykład_: `'my-key-'`
1167
- - _Uwaga_: Podczas wyodrębniania słowników klucz jest generowany na podstawie nazwy pliku. Ten prefiks jest dodawany do wygenerowanego klucza, aby zapobiec konfliktom.
1168
-
1169
- - **saveComponents**:
1170
- - _Typ_: `boolean`
1171
- - _Domyślnie_: `false`
1172
- - _Opis_: Wskazuje, czy komponenty powinny zostać zapisane po ich przekształceniu.
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' &#124; 'verbose' &#124; '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. |