@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/uk/configuration.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
4
|
-
title: Конфігурація
|
|
5
|
-
description: Дізнайтеся, як налаштувати Intlayer для вашого
|
|
3
|
+
updatedAt: 2026-03-20
|
|
4
|
+
title: Конфігурація (Configuration)
|
|
5
|
+
description: Дізнайтеся, як налаштувати Intlayer для вашого додатка. Зрозумійте різні параметри та опції, доступні для налаштування Intlayer відповідно до ваших потреб.
|
|
6
6
|
keywords:
|
|
7
7
|
- Конфігурація
|
|
8
8
|
- Налаштування
|
|
@@ -14,30 +14,42 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 8.4.0
|
|
18
|
+
date: 2026-03-20
|
|
19
|
+
changes: Додано об'єктну нотацію для кожної мови для 'compiler.output' та 'dictionary.fill'
|
|
17
20
|
- version: 8.3.0
|
|
18
21
|
date: 2026-03-11
|
|
19
|
-
changes:
|
|
22
|
+
changes: Переміщено 'baseDir' з конфігурації 'content' до конфігурації 'system'
|
|
20
23
|
- version: 8.2.0
|
|
21
24
|
date: 2026-03-09
|
|
22
|
-
changes:
|
|
25
|
+
changes: Оновлено параметри компілятора (compiler), додано підтримку 'output' та 'noMetadata'
|
|
23
26
|
- version: 8.1.7
|
|
24
27
|
date: 2026-02-25
|
|
25
|
-
changes:
|
|
28
|
+
changes: Оновлено параметри компілятора
|
|
29
|
+
- version: 8.1.5
|
|
30
|
+
date: 2026-02-23
|
|
31
|
+
changes: Додано параметр компілятора 'build-only' та префікс словника
|
|
26
32
|
- version: 8.0.6
|
|
27
33
|
date: 2026-02-12
|
|
28
34
|
changes: Додано підтримку провайдерів Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face та Together.ai
|
|
29
35
|
- version: 8.0.5
|
|
30
36
|
date: 2026-02-06
|
|
31
37
|
changes: Додано `dataSerialization` до конфігурації AI
|
|
38
|
+
- version: 8.0.0
|
|
39
|
+
date: 2026-01-24
|
|
40
|
+
changes: Перейменовано режим імпорту `live` на `fetch` для кращого опису механізму роботи.
|
|
41
|
+
- version: 8.0.0
|
|
42
|
+
date: 2026-01-22
|
|
43
|
+
changes: Переміщено конфігурацію збірки `importMode` до конфігурації словника `dictionary`.
|
|
32
44
|
- version: 8.0.0
|
|
33
45
|
date: 2026-01-22
|
|
34
|
-
changes:
|
|
46
|
+
changes: Додано опцію `rewrite` до конфігурації маршрутизації
|
|
35
47
|
- version: 8.0.0
|
|
36
48
|
date: 2026-01-18
|
|
37
|
-
changes:
|
|
49
|
+
changes: Відокремлено системну конфігурацію від конфігурації контенту. Переміщено внутрішні шляхи до властивості `system`. Додано `codeDir` для відокремлення файлів контенту та трансформації коду.
|
|
38
50
|
- version: 8.0.0
|
|
39
51
|
date: 2026-01-18
|
|
40
|
-
changes: Додано
|
|
52
|
+
changes: Додано параметри словника `location` та `schema`
|
|
41
53
|
- version: 7.5.1
|
|
42
54
|
date: 2026-01-10
|
|
43
55
|
changes: Додано підтримку форматів файлів JSON5 та JSONC
|
|
@@ -49,41 +61,41 @@ history:
|
|
|
49
61
|
changes: Додано конфігурацію `dictionary`
|
|
50
62
|
- version: 7.0.0
|
|
51
63
|
date: 2025-10-21
|
|
52
|
-
changes: Замінено `middleware`
|
|
64
|
+
changes: Замінено `middleware` конфігурацією маршрутизації `routing`
|
|
53
65
|
- version: 7.0.0
|
|
54
66
|
date: 2025-10-12
|
|
55
67
|
changes: Додано опцію `formatCommand`
|
|
56
68
|
- version: 6.2.0
|
|
57
69
|
date: 2025-10-12
|
|
58
|
-
changes: Оновлено
|
|
70
|
+
changes: Оновлено параметр `excludedPath`
|
|
59
71
|
- version: 6.0.2
|
|
60
72
|
date: 2025-09-23
|
|
61
|
-
changes: Додано
|
|
73
|
+
changes: Додано параметр `outputFormat`
|
|
62
74
|
- version: 6.0.0
|
|
63
75
|
date: 2025-09-21
|
|
64
|
-
changes:
|
|
76
|
+
changes: Видалено поля `dictionaryOutput` та `i18nextResourcesDir`
|
|
65
77
|
- version: 6.0.0
|
|
66
78
|
date: 2025-09-16
|
|
67
79
|
changes: Додано режим імпорту `live`
|
|
68
80
|
- version: 6.0.0
|
|
69
81
|
date: 2025-09-04
|
|
70
|
-
changes: Замінено поле `hotReload` на `liveSync
|
|
82
|
+
changes: Замінено поле `hotReload` на `liveSync`, додано поля `liveSyncPort` та `liveSyncURL`
|
|
71
83
|
- version: 5.6.1
|
|
72
84
|
date: 2025-07-25
|
|
73
85
|
changes: Замінено `activateDynamicImport` опцією `importMode`
|
|
74
86
|
- version: 5.6.0
|
|
75
87
|
date: 2025-07-13
|
|
76
|
-
changes: Змінено значення за замовчуванням для contentDir з `['src']` на `['.']`
|
|
88
|
+
changes: Змінено значення за замовчуванням для `contentDir` з `['src']` на `['.']`
|
|
77
89
|
- version: 5.5.11
|
|
78
90
|
date: 2025-06-29
|
|
79
91
|
changes: Додано команди `docs`
|
|
80
92
|
---
|
|
81
93
|
|
|
82
|
-
# Документація конфігурації Intlayer
|
|
94
|
+
# Документація з конфігурації Intlayer
|
|
83
95
|
|
|
84
96
|
## Огляд
|
|
85
97
|
|
|
86
|
-
|
|
98
|
+
Конфігураційні файли Intlayer дозволяють налаштовувати різні аспекти плагіна, такі як інтернаціоналізація (internationalization), проміжне програмне забезпечення (middleware) та обробка контенту. Ця документація надає детальний опис кожної властивості в конфігурації.
|
|
87
99
|
|
|
88
100
|
---
|
|
89
101
|
|
|
@@ -93,9 +105,9 @@ history:
|
|
|
93
105
|
|
|
94
106
|
---
|
|
95
107
|
|
|
96
|
-
## Підтримувані формати файлів
|
|
108
|
+
## Підтримувані формати конфігураційних файлів
|
|
97
109
|
|
|
98
|
-
Intlayer
|
|
110
|
+
Intlayer приймає формати конфігураційних файлів JSON, JS, MJS та TS:
|
|
99
111
|
|
|
100
112
|
- `intlayer.config.ts`
|
|
101
113
|
- `intlayer.config.js`
|
|
@@ -108,7 +120,7 @@ Intlayer підтримує формати файлів конфігурації
|
|
|
108
120
|
|
|
109
121
|
---
|
|
110
122
|
|
|
111
|
-
## Приклад файлу
|
|
123
|
+
## Приклад конфігураційного файлу
|
|
112
124
|
|
|
113
125
|
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
114
126
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -116,108 +128,108 @@ import { nextjsRewrite } from "intlayer/routing";
|
|
|
116
128
|
import { z } from "zod";
|
|
117
129
|
|
|
118
130
|
/**
|
|
119
|
-
*
|
|
131
|
+
* Приклад конфігураційного файлу Intlayer, що відображає всі доступні опції.
|
|
120
132
|
*/
|
|
121
133
|
const config: IntlayerConfig = {
|
|
122
134
|
/**
|
|
123
|
-
*
|
|
135
|
+
* Налаштування інтернаціоналізації.
|
|
124
136
|
*/
|
|
125
137
|
internationalization: {
|
|
126
138
|
/**
|
|
127
|
-
*
|
|
128
|
-
*
|
|
139
|
+
* Список мов (locales), що підтримуються в додатку.
|
|
140
|
+
* За замовчуванням: [Locales.ENGLISH]
|
|
129
141
|
*/
|
|
130
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
131
143
|
|
|
132
144
|
/**
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
145
|
+
* Список обов'язкових мов, які повинні бути визначені в кожному словнику.
|
|
146
|
+
* Якщо порожньо, усі мови є обов'язковими в режимі `strict`.
|
|
147
|
+
* За замовчуванням: []
|
|
136
148
|
*/
|
|
137
149
|
requiredLocales: [Locales.ENGLISH],
|
|
138
150
|
|
|
139
151
|
/**
|
|
140
|
-
*
|
|
141
|
-
* - "strict":
|
|
142
|
-
* - "inclusive":
|
|
143
|
-
* - "loose":
|
|
144
|
-
*
|
|
152
|
+
* Рівень суворості для інтернаціоналізованого контенту.
|
|
153
|
+
* - "strict": Помилка, якщо будь-яка оголошена мова відсутня або не оголошена.
|
|
154
|
+
* - "inclusive": Попередження, якщо оголошена мова відсутня.
|
|
155
|
+
* - "loose": Приймає будь-яку існуючу мову.
|
|
156
|
+
* За замовчуванням: "inclusive"
|
|
145
157
|
*/
|
|
146
158
|
strictMode: "inclusive",
|
|
147
159
|
|
|
148
160
|
/**
|
|
149
|
-
*
|
|
150
|
-
*
|
|
161
|
+
* Мова за замовчуванням, яка використовується як резервна, якщо запитувана мова не знайдена.
|
|
162
|
+
* За замовчуванням: Locales.ENGLISH
|
|
151
163
|
*/
|
|
152
164
|
defaultLocale: Locales.ENGLISH,
|
|
153
165
|
},
|
|
154
166
|
|
|
155
167
|
/**
|
|
156
|
-
*
|
|
168
|
+
* Параметри, що контролюють операції зі словниками та поведінку резервного копіювання.
|
|
157
169
|
*/
|
|
158
170
|
dictionary: {
|
|
159
171
|
/**
|
|
160
|
-
*
|
|
161
|
-
* - "static":
|
|
162
|
-
* - "dynamic":
|
|
163
|
-
* - "fetch":
|
|
164
|
-
*
|
|
172
|
+
* Контролює спосіб імпорту словників.
|
|
173
|
+
* - "static": Статично імпортується під час збірки.
|
|
174
|
+
* - "dynamic": Динамічно імпортується за допомогою Suspense.
|
|
175
|
+
* - "fetch": Динамічно отримується через Live Sync API.
|
|
176
|
+
* За замовчуванням: "static"
|
|
165
177
|
*/
|
|
166
178
|
importMode: "static",
|
|
167
179
|
|
|
168
180
|
/**
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
181
|
+
* Стратегія автоматичного заповнення відсутніх перекладів за допомогою AI.
|
|
182
|
+
* Може бути логічним значенням або шаблоном шляху для збереження заповненого контенту.
|
|
183
|
+
* За замовчуванням: true
|
|
172
184
|
*/
|
|
173
185
|
fill: true,
|
|
174
186
|
|
|
175
187
|
/**
|
|
176
|
-
*
|
|
177
|
-
* - "local":
|
|
178
|
-
* - "remote":
|
|
179
|
-
* - "hybrid":
|
|
180
|
-
* - "plugin" (
|
|
181
|
-
*
|
|
188
|
+
* Фізичне розташування файлів словника.
|
|
189
|
+
* - "local": Зберігається в локальній файловій системі.
|
|
190
|
+
* - "remote": Зберігається в Intlayer CMS.
|
|
191
|
+
* - "hybrid": Зберігається як локально, так і в Intlayer CMS.
|
|
192
|
+
* - "plugin" (або будь-який користувацький рядок): Надається плагіном або користувацьким джерелом.
|
|
193
|
+
* За замовчуванням: "local"
|
|
182
194
|
*/
|
|
183
195
|
location: "local",
|
|
184
196
|
|
|
185
197
|
/**
|
|
186
|
-
*
|
|
187
|
-
*
|
|
198
|
+
* Чи повинен контент автоматично трансформуватися (наприклад, з Markdown в HTML).
|
|
199
|
+
* За замовчуванням: false
|
|
188
200
|
*/
|
|
189
201
|
contentAutoTransformation: false,
|
|
190
202
|
},
|
|
191
203
|
|
|
192
204
|
/**
|
|
193
|
-
*
|
|
205
|
+
* Конфігурація маршрутизації та проміжного ПЗ.
|
|
194
206
|
*/
|
|
195
207
|
routing: {
|
|
196
208
|
/**
|
|
197
|
-
*
|
|
198
|
-
* - "prefix-no-default":
|
|
199
|
-
* - "prefix-all":
|
|
200
|
-
* - "no-prefix":
|
|
201
|
-
* - "search-params":
|
|
202
|
-
*
|
|
209
|
+
* Стратегія маршрутизації мов.
|
|
210
|
+
* - "prefix-no-default": Додає префікс усім мовам, крім мови за замовчуванням (наприклад, /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Додає префікс усім мовам (наприклад, /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Мова відсутня в URL.
|
|
213
|
+
* - "search-params": Використовує ?locale=...
|
|
214
|
+
* За замовчуванням: "prefix-no-default"
|
|
203
215
|
*/
|
|
204
216
|
mode: "prefix-no-default",
|
|
205
217
|
|
|
206
218
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
219
|
+
* Де зберігати вибрану користувачем мову.
|
|
220
|
+
* Опції: 'cookie', 'localStorage', 'sessionStorage', 'header' або їх масив.
|
|
221
|
+
* За замовчуванням: ['cookie', 'header']
|
|
210
222
|
*/
|
|
211
223
|
storage: ["cookie", "header"],
|
|
212
224
|
|
|
213
225
|
/**
|
|
214
|
-
*
|
|
215
|
-
*
|
|
226
|
+
* Базовий шлях для URL додатка.
|
|
227
|
+
* За замовчуванням: ""
|
|
216
228
|
*/
|
|
217
229
|
basePath: "",
|
|
218
230
|
|
|
219
231
|
/**
|
|
220
|
-
*
|
|
232
|
+
* Користувацькі правила перенаправлення (rewrite) URL для конкретних шляхів за мовами.
|
|
221
233
|
*/
|
|
222
234
|
rewrite: nextjsRewrite({
|
|
223
235
|
"/[locale]/about": {
|
|
@@ -228,130 +240,130 @@ const config: IntlayerConfig = {
|
|
|
228
240
|
},
|
|
229
241
|
|
|
230
242
|
/**
|
|
231
|
-
*
|
|
243
|
+
* Параметри, пов'язані з пошуком та обробкою файлів контенту.
|
|
232
244
|
*/
|
|
233
245
|
content: {
|
|
234
246
|
/**
|
|
235
|
-
*
|
|
236
|
-
*
|
|
247
|
+
* Розширення файлів для сканування словників.
|
|
248
|
+
* За замовчуванням: ['.content.ts', '.content.js', '.content.json' тощо]
|
|
237
249
|
*/
|
|
238
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
239
251
|
|
|
240
252
|
/**
|
|
241
|
-
*
|
|
242
|
-
*
|
|
253
|
+
* Директорії, де розташовані файли .content.
|
|
254
|
+
* За замовчуванням: ["."]
|
|
243
255
|
*/
|
|
244
256
|
contentDir: ["src"],
|
|
245
257
|
|
|
246
258
|
/**
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
259
|
+
* Де розташований вихідний код.
|
|
260
|
+
* Використовується для оптимізації збірки та трансформації коду.
|
|
261
|
+
* За замовчуванням: ["."]
|
|
250
262
|
*/
|
|
251
263
|
codeDir: ["src"],
|
|
252
264
|
|
|
253
265
|
/**
|
|
254
|
-
*
|
|
255
|
-
*
|
|
266
|
+
* Шаблони, виключені зі сканування.
|
|
267
|
+
* За замовчуванням: ['node_modules', '.intlayer' тощо]
|
|
256
268
|
*/
|
|
257
269
|
excludedPath: ["node_modules"],
|
|
258
270
|
|
|
259
271
|
/**
|
|
260
|
-
*
|
|
261
|
-
*
|
|
272
|
+
* Чи відстежувати зміни та перебудовувати словники під час розробки.
|
|
273
|
+
* За замовчуванням: true в режимі розробки
|
|
262
274
|
*/
|
|
263
275
|
watch: true,
|
|
264
276
|
|
|
265
277
|
/**
|
|
266
|
-
*
|
|
278
|
+
* Команда, що використовується для форматування новостворених / оновлених файлів .content.
|
|
267
279
|
*/
|
|
268
280
|
formatCommand: 'npx prettier --write "{{file}}"',
|
|
269
281
|
},
|
|
270
282
|
|
|
271
283
|
/**
|
|
272
|
-
* Visual Editor
|
|
284
|
+
* Конфігурація візуального редактора (Visual Editor).
|
|
273
285
|
*/
|
|
274
286
|
editor: {
|
|
275
287
|
/**
|
|
276
|
-
*
|
|
277
|
-
*
|
|
288
|
+
* Чи ввімкнено візуальний редактор.
|
|
289
|
+
* За замовчуванням: false
|
|
278
290
|
*/
|
|
279
291
|
enabled: true,
|
|
280
292
|
|
|
281
293
|
/**
|
|
282
|
-
* URL
|
|
283
|
-
*
|
|
294
|
+
* URL вашого додатка для перевірки джерела (origin validation).
|
|
295
|
+
* За замовчуванням: ""
|
|
284
296
|
*/
|
|
285
297
|
applicationURL: "http://localhost:3000",
|
|
286
298
|
|
|
287
299
|
/**
|
|
288
|
-
*
|
|
289
|
-
*
|
|
300
|
+
* Порт для локального сервера редактора.
|
|
301
|
+
* За замовчуванням: 8000
|
|
290
302
|
*/
|
|
291
303
|
port: 8000,
|
|
292
304
|
|
|
293
305
|
/**
|
|
294
|
-
*
|
|
295
|
-
*
|
|
306
|
+
* Публічний URL для редактора.
|
|
307
|
+
* За замовчуванням: "http://localhost:8000"
|
|
296
308
|
*/
|
|
297
309
|
editorURL: "http://localhost:8000",
|
|
298
310
|
|
|
299
311
|
/**
|
|
300
|
-
* Intlayer CMS
|
|
301
|
-
*
|
|
312
|
+
* URL Intlayer CMS.
|
|
313
|
+
* За замовчуванням: "https://app.intlayer.org"
|
|
302
314
|
*/
|
|
303
315
|
cmsURL: "https://app.intlayer.org",
|
|
304
316
|
|
|
305
317
|
/**
|
|
306
|
-
* Backend API
|
|
307
|
-
*
|
|
318
|
+
* URL Backend API.
|
|
319
|
+
* За замовчуванням: "https://back.intlayer.org"
|
|
308
320
|
*/
|
|
309
321
|
backendURL: "https://back.intlayer.org",
|
|
310
322
|
|
|
311
323
|
/**
|
|
312
|
-
*
|
|
313
|
-
*
|
|
324
|
+
* Чи ввімкнути синхронізацію контенту в реальному часі.
|
|
325
|
+
* За замовчуванням: false
|
|
314
326
|
*/
|
|
315
327
|
liveSync: true,
|
|
316
328
|
},
|
|
317
329
|
|
|
318
330
|
/**
|
|
319
|
-
* AI
|
|
331
|
+
* Параметри AI-перекладу та створення контенту.
|
|
320
332
|
*/
|
|
321
333
|
ai: {
|
|
322
334
|
/**
|
|
323
|
-
* AI
|
|
324
|
-
*
|
|
325
|
-
*
|
|
335
|
+
* Провайдер AI для використання.
|
|
336
|
+
* Опції: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
|
+
* За замовчуванням: 'openai'
|
|
326
338
|
*/
|
|
327
339
|
provider: "openai",
|
|
328
340
|
|
|
329
341
|
/**
|
|
330
|
-
*
|
|
342
|
+
* Модель вибраного провайдера для використання.
|
|
331
343
|
*/
|
|
332
344
|
model: "gpt-4o",
|
|
333
345
|
|
|
334
346
|
/**
|
|
335
|
-
*
|
|
347
|
+
* API ключ провайдера.
|
|
336
348
|
*/
|
|
337
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
338
350
|
|
|
339
351
|
/**
|
|
340
|
-
*
|
|
352
|
+
* Глобальний контекст для спрямування AI при створенні перекладів.
|
|
341
353
|
*/
|
|
342
|
-
applicationContext: "
|
|
354
|
+
applicationContext: "Це додаток для бронювання подорожей.",
|
|
343
355
|
|
|
344
356
|
/**
|
|
345
|
-
*
|
|
357
|
+
* URL базового шляху для AI API.
|
|
346
358
|
*/
|
|
347
359
|
baseURL: "http://localhost:3000",
|
|
348
360
|
|
|
349
361
|
/**
|
|
350
|
-
* Серіалізація даних
|
|
362
|
+
* Серіалізація даних (Data Serialization)
|
|
351
363
|
*
|
|
352
364
|
* Опції:
|
|
353
|
-
* - "json":
|
|
354
|
-
* - "toon":
|
|
365
|
+
* - "json": За замовчуванням, надійно; споживає більше токенів.
|
|
366
|
+
* - "toon": Споживає менше токенів, може бути не таким стабільним, як JSON.
|
|
355
367
|
*
|
|
356
368
|
* За замовчуванням: "json"
|
|
357
369
|
*/
|
|
@@ -359,170 +371,170 @@ const config: IntlayerConfig = {
|
|
|
359
371
|
},
|
|
360
372
|
|
|
361
373
|
/**
|
|
362
|
-
*
|
|
374
|
+
* Налаштування збірки та оптимізації.
|
|
363
375
|
*/
|
|
364
376
|
build: {
|
|
365
377
|
/**
|
|
366
|
-
*
|
|
367
|
-
* - "auto":
|
|
368
|
-
* - "manual":
|
|
369
|
-
*
|
|
378
|
+
* Режим виконання збірки.
|
|
379
|
+
* - "auto": Буде зібрано автоматично під час збірки додатка.
|
|
380
|
+
* - "manual": Потребує явної команди на збірку.
|
|
381
|
+
* За замовчуванням: "auto"
|
|
370
382
|
*/
|
|
371
383
|
mode: "auto",
|
|
372
384
|
|
|
373
385
|
/**
|
|
374
|
-
*
|
|
375
|
-
*
|
|
386
|
+
* Чи оптимізувати фінальний бандл шляхом видалення невикористовуваних словників.
|
|
387
|
+
* За замовчуванням: true у продуктовому середовищі
|
|
376
388
|
*/
|
|
377
389
|
optimize: true,
|
|
378
390
|
|
|
379
391
|
/**
|
|
380
|
-
*
|
|
381
|
-
*
|
|
392
|
+
* Формат виводу для згенерованих файлів словника.
|
|
393
|
+
* За замовчуванням: ['cjs', 'esm']
|
|
382
394
|
*/
|
|
383
|
-
outputFormat: ["esm"],
|
|
395
|
+
outputFormat: ["cjs", "esm"],
|
|
384
396
|
|
|
385
397
|
/**
|
|
386
|
-
*
|
|
387
|
-
*
|
|
398
|
+
* Визначає, чи повинна збірка перевіряти типи TypeScript.
|
|
399
|
+
* За замовчуванням: false
|
|
388
400
|
*/
|
|
389
401
|
checkTypes: false,
|
|
390
402
|
},
|
|
391
403
|
|
|
392
404
|
/**
|
|
393
|
-
* Logger
|
|
405
|
+
* Конфігурація логера (Logger).
|
|
394
406
|
*/
|
|
395
407
|
log: {
|
|
396
408
|
/**
|
|
397
|
-
*
|
|
398
|
-
* - "default":
|
|
399
|
-
* - "verbose":
|
|
400
|
-
* - "disabled":
|
|
401
|
-
*
|
|
409
|
+
* Рівень логування.
|
|
410
|
+
* - "default": Стандартне логування.
|
|
411
|
+
* - "verbose": Поглиблене дебаг-логування.
|
|
412
|
+
* - "disabled": Вимкнути логування.
|
|
413
|
+
* За замовчуванням: "default"
|
|
402
414
|
*/
|
|
403
415
|
mode: "default",
|
|
404
416
|
|
|
405
417
|
/**
|
|
406
|
-
*
|
|
407
|
-
*
|
|
418
|
+
* Префікс для всіх повідомлень логування.
|
|
419
|
+
* За замовчуванням: "[intlayer]"
|
|
408
420
|
*/
|
|
409
421
|
prefix: "[intlayer]",
|
|
410
422
|
},
|
|
411
423
|
|
|
412
424
|
/**
|
|
413
|
-
*
|
|
425
|
+
* Системна конфігурація (Для розширеного використання)
|
|
414
426
|
*/
|
|
415
427
|
system: {
|
|
416
428
|
/**
|
|
417
|
-
*
|
|
429
|
+
* Директорія для зберігання локалізованих словників.
|
|
418
430
|
*/
|
|
419
431
|
dictionariesDir: ".intlayer/dictionary",
|
|
420
432
|
|
|
421
433
|
/**
|
|
422
|
-
*
|
|
434
|
+
* Директорія для розширення модулів TypeScript (module augmentation).
|
|
423
435
|
*/
|
|
424
436
|
moduleAugmentationDir: ".intlayer/types",
|
|
425
437
|
|
|
426
438
|
/**
|
|
427
|
-
*
|
|
439
|
+
* Директорія для зберігання незлитих (unmerged) словників.
|
|
428
440
|
*/
|
|
429
441
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
430
442
|
|
|
431
443
|
/**
|
|
432
|
-
*
|
|
444
|
+
* Директорія для зберігання типів словників.
|
|
433
445
|
*/
|
|
434
446
|
typesDir: ".intlayer/types",
|
|
435
447
|
|
|
436
448
|
/**
|
|
437
|
-
*
|
|
449
|
+
* Директорія, де зберігаються основні файли додатка.
|
|
438
450
|
*/
|
|
439
451
|
mainDir: ".intlayer/main",
|
|
440
452
|
|
|
441
453
|
/**
|
|
442
|
-
*
|
|
454
|
+
* Директорія, де зберігаються конфігураційні файли.
|
|
443
455
|
*/
|
|
444
456
|
configDir: ".intlayer/config",
|
|
445
457
|
|
|
446
458
|
/**
|
|
447
|
-
*
|
|
459
|
+
* Директорія, де зберігаються кеш-файли.
|
|
448
460
|
*/
|
|
449
461
|
cacheDir: ".intlayer/cache",
|
|
450
462
|
},
|
|
451
463
|
|
|
452
464
|
/**
|
|
453
|
-
*
|
|
465
|
+
* Конфігурація компілятора (Для розширеного використання)
|
|
454
466
|
*/
|
|
455
467
|
compiler: {
|
|
456
468
|
/**
|
|
457
|
-
*
|
|
469
|
+
* Визначає, чи має бути ввімкнено компілятор.
|
|
458
470
|
*
|
|
459
|
-
* - false
|
|
460
|
-
* - true
|
|
461
|
-
* - "build-only"
|
|
471
|
+
* - false: Вимикає компілятор.
|
|
472
|
+
* - true: Вмикає компілятор.
|
|
473
|
+
* - "build-only": Пропускає компілятор під час розробки та пришвидшує час запуску.
|
|
462
474
|
*
|
|
463
|
-
*
|
|
475
|
+
* За замовчуванням: false
|
|
464
476
|
*/
|
|
465
477
|
enabled: true,
|
|
466
478
|
|
|
467
479
|
/**
|
|
468
|
-
* Визначає шлях
|
|
480
|
+
* Визначає шлях для вихідних файлів. Замінює `outputDir`.
|
|
469
481
|
*
|
|
470
|
-
* -
|
|
471
|
-
* -
|
|
482
|
+
* - Шляхи з `./` розв'язуються відносно директорії компонента.
|
|
483
|
+
* - Шляхи з `/` розв'язуються відносно кореня проєкту (`baseDir`).
|
|
472
484
|
*
|
|
473
|
-
* -
|
|
485
|
+
* - Додавання змінної `{{locale}}` у шлях активує створення окремих словників для кожної мови.
|
|
474
486
|
*
|
|
475
|
-
*
|
|
487
|
+
* Приклад:
|
|
476
488
|
* ```ts
|
|
477
489
|
* {
|
|
478
|
-
* //
|
|
490
|
+
* // Створювати багатомовні файли .content.ts поряд з компонентом
|
|
479
491
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
480
492
|
*
|
|
481
|
-
* // output: './{{fileName}}{{extension}}', //
|
|
493
|
+
* // output: './{{fileName}}{{extension}}', // Рівноцінно з використанням шаблонного рядка
|
|
482
494
|
* }
|
|
483
495
|
* ```
|
|
484
496
|
*
|
|
485
497
|
* ```ts
|
|
486
498
|
* {
|
|
487
|
-
* //
|
|
499
|
+
* // Створювати централізовані JSON для кожної мови в корені проєкту
|
|
488
500
|
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
489
501
|
*
|
|
490
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', //
|
|
502
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Рівноцінно з використанням шаблонного рядка
|
|
491
503
|
* }
|
|
492
504
|
* ```
|
|
493
505
|
*
|
|
494
506
|
* Список змінних:
|
|
495
|
-
* - `fileName`:
|
|
507
|
+
* - `fileName`: Ім'я файлу.
|
|
496
508
|
* - `key`: Ключ контенту.
|
|
497
|
-
* - `locale`:
|
|
509
|
+
* - `locale`: Мова контенту.
|
|
498
510
|
* - `extension`: Розширення файлу.
|
|
499
|
-
* - `componentFileName`:
|
|
511
|
+
* - `componentFileName`: Ім'я файлу компонента.
|
|
500
512
|
* - `componentExtension`: Розширення файлу компонента.
|
|
501
513
|
* - `format`: Формат словника.
|
|
502
514
|
* - `componentFormat`: Формат словника компонента.
|
|
503
|
-
* - `componentDirPath`: Шлях до
|
|
515
|
+
* - `componentDirPath`: Шлях до директорії компонента.
|
|
504
516
|
*/
|
|
505
517
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
506
518
|
|
|
507
519
|
/**
|
|
508
|
-
*
|
|
509
|
-
* Таким
|
|
520
|
+
* Визначає, чи мають компоненти зберігатися після трансформації.
|
|
521
|
+
* Таким чином, компілятор можна запустити лише один раз для трансформації вашого додатка, а потім видалити.
|
|
510
522
|
*/
|
|
511
523
|
saveComponents: false,
|
|
512
524
|
|
|
513
525
|
/**
|
|
514
|
-
*
|
|
526
|
+
* Вставляє лише контент у згенерований файл. Корисно для JSON-виводу за мовами для i18next або ICU MessageFormat.
|
|
515
527
|
*/
|
|
516
528
|
noMetadata: false,
|
|
517
529
|
|
|
518
530
|
/**
|
|
519
531
|
* Префікс ключа словника
|
|
520
532
|
*/
|
|
521
|
-
dictionaryKeyPrefix: "", // Додайте необов'язковий префікс
|
|
533
|
+
dictionaryKeyPrefix: "", // Додайте необов'язковий префікс до витягнутих ключів словника
|
|
522
534
|
},
|
|
523
535
|
|
|
524
536
|
/**
|
|
525
|
-
*
|
|
537
|
+
* Користувацькі схеми (Schemas) для валідації контенту словників.
|
|
526
538
|
*/
|
|
527
539
|
schemas: {
|
|
528
540
|
"my-schema": z.object({
|
|
@@ -531,7 +543,7 @@ const config: IntlayerConfig = {
|
|
|
531
543
|
},
|
|
532
544
|
|
|
533
545
|
/**
|
|
534
|
-
* Plugins
|
|
546
|
+
* Конфігурація плагінів (Plugins).
|
|
535
547
|
*/
|
|
536
548
|
plugins: [],
|
|
537
549
|
};
|
|
@@ -539,250 +551,116 @@ const config: IntlayerConfig = {
|
|
|
539
551
|
export default config;
|
|
540
552
|
````
|
|
541
553
|
|
|
542
|
-
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## Довідник конфігурації (Configuration Reference)
|
|
543
557
|
|
|
544
|
-
|
|
558
|
+
Наступні розділи описують різні параметри конфігурації, доступні в Intlayer.
|
|
545
559
|
|
|
546
560
|
---
|
|
547
561
|
|
|
548
|
-
###
|
|
549
|
-
|
|
550
|
-
Визначає
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
- _Приклад_: `['en', 'fr', 'es']`
|
|
559
|
-
|
|
560
|
-
- **requiredLocales**:
|
|
561
|
-
- _Тип_: `string[]`
|
|
562
|
-
- _За замовчуванням_: `[]`
|
|
563
|
-
- _Опис_: Перелік обов'язкових локалей у застосунку.
|
|
564
|
-
- _Приклад_: `[]`
|
|
565
|
-
- _Примітка_: Якщо порожній, усі локалі є обов'язковими в режимі `strict`.
|
|
566
|
-
- _Примітка_: Переконайтеся, що обов'язкові локалі також визначені в полі `locales`.
|
|
567
|
-
- **strictMode**:
|
|
568
|
-
- _Тип_: `string`
|
|
569
|
-
- _Типово_: `inclusive`
|
|
570
|
-
- _Опис_: Забезпечує суворі реалізації інтернаціоналізованого контенту з використанням TypeScript.
|
|
571
|
-
- _Примітка_: Якщо встановлено "strict", функція перекладу `t` вимагатиме, щоб кожна оголошена локаль була визначена. Якщо якась локаль відсутня або не зазначена в конфігурації, буде викинута помилка.
|
|
572
|
-
- _Примітка_: Якщо встановлено "inclusive", функція перекладу `t` вимагатиме, щоб кожна оголошена locale була визначена. Якщо одна locale відсутня, буде виведено попередження. Проте функція прийме locale, яка не оголошена у вашій конфігурації, але існує.
|
|
573
|
-
- _Примітка_: Якщо встановлено "loose", функція перекладу `t` прийматиме будь-яку наявну locale.
|
|
574
|
-
|
|
575
|
-
- **defaultLocale**:
|
|
576
|
-
- _Тип_: `string`
|
|
577
|
-
- _Типово_: `'en'`
|
|
578
|
-
- _Опис_: Локаль за замовчуванням, яка використовується як fallback, якщо запитувана локаль не знайдена.
|
|
579
|
-
- _Приклад_: `'en'`
|
|
580
|
-
- _Примітка_: Використовується для визначення локалі, коли вона не вказана в URL, cookie або заголовку.
|
|
562
|
+
### Конфігурація інтернаціоналізації (Internationalization Configuration)
|
|
563
|
+
|
|
564
|
+
Визначає налаштування, пов'язані з інтернаціоналізацією, включаючи доступні мови та мову за замовчуванням для додатка.
|
|
565
|
+
|
|
566
|
+
| Поле | Тип | Опис | Приклад | Примітка |
|
|
567
|
+
| ----------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | `string[]` | Список мов, що підтримуються в додатку. За замовчуванням: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | `string[]` | Список обов'язкових мов у додатку. За замовчуванням: `[]` | `[]` | Якщо порожньо, усі мови є обов'язковими в режимі `strict`. Переконайтеся, що обов'язкові мови також визначені у полі `locales`. |
|
|
570
|
+
| `strictMode` | `string` | Забезпечує надійну реалізацію інтернаціоналізованого контенту завдяки використанню TypeScript. За замовчуванням: `inclusive` | | Якщо `"strict"`: функція `t` вимагає визначення кожної оголошеної мови — видає помилку, якщо будь-яка відсутня або не оголошена. Якщо `"inclusive"`: попереджає про відсутні мови, але приймає існуючі неоголошені мови. Якщо `"loose"`: приймає будь-яку існуючу мову. |
|
|
571
|
+
| `defaultLocale` | `string` | Мова за замовчуванням, що використовується як резервна, якщо запитувана мова не знайдена. За замовчуванням: `Locales.ENGLISH` | `'en'` | Використовується для визначення мови, коли жодна не вказана в URL, кукі або заголовку. |
|
|
581
572
|
|
|
582
573
|
---
|
|
583
574
|
|
|
584
|
-
### Editor Configuration
|
|
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
|
-
- _Примітка_: Порт live sync сервера.
|
|
668
|
-
|
|
669
|
-
- **liveSyncURL**:
|
|
670
|
-
- _Тип_: `string`
|
|
671
|
-
- _За замовчуванням_: `'http://localhost:{liveSyncPort}'`
|
|
672
|
-
- _Опис_: URL live sync сервера.
|
|
673
|
-
- _Приклад_: `'https://example.com'`
|
|
674
|
-
- _Примітка_: За замовчуванням вказує на localhost, але може бути змінений на будь-який URL у випадку віддаленого live sync сервера.
|
|
675
|
-
|
|
676
|
-
### Конфігурація маршрутизації
|
|
677
|
-
|
|
678
|
-
Налаштування, що контролюють поведінку маршрутизації, включно зі структурою URL, зберіганням locale та обробкою middleware.
|
|
679
|
-
|
|
680
|
-
#### Властивості
|
|
681
|
-
|
|
682
|
-
- **mode**:
|
|
683
|
-
- _Тип_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
684
|
-
- _Типово_: `'prefix-no-default'`
|
|
685
|
-
- _Опис_: Режим маршрутизації URL для обробки locale.
|
|
686
|
-
- _Examples_:
|
|
687
|
-
- `'prefix-no-default'`: `/dashboard` (en) або `/fr/dashboard` (fr)
|
|
688
|
-
- `'prefix-all'`: `/en/dashboard` (en) або `/fr/dashboard` (fr)
|
|
689
|
-
- `'no-prefix'`: `/dashboard` (locale обробляється іншими способами`)
|
|
690
|
-
- `'search-params'`: `/dashboard?locale=fr`
|
|
691
|
-
- _Примітка_: Це налаштування не впливає на керування cookie або зберіганням локалі.
|
|
692
|
-
|
|
693
|
-
- **storage**:
|
|
694
|
-
- _Тип_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
|
|
695
|
-
- _Типово_: `'localStorage'`
|
|
696
|
-
- _Опис_: Налаштування для зберігання локалі на клієнті.
|
|
697
|
-
|
|
698
|
-
- **cookie**:
|
|
699
|
-
- _Опис_: Зберігає дані в cookie, невеликі фрагменти даних, що зберігаються в браузері клієнта, доступні як на стороні клієнта, так і на стороні сервера.
|
|
700
|
-
- _Примітка_: Для зберігання, що відповідає вимогам GDPR, перед використанням забезпечте належну згоду користувача.
|
|
701
|
-
- _Примітка_: Параметри cookie можна налаштувати, якщо вказати їх як CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
|
|
702
|
-
|
|
703
|
-
- **localStorage**:
|
|
704
|
-
- _Опис_: Зберігає дані в браузері без дат закінчення терміну дії, що дозволяє зберігати дані між сесіями, доступне лише на боці клієнта.
|
|
705
|
-
- _Примітка_: Ідеально підходить для зберігання довгострокових даних, проте слід враховувати питання приватності та безпеки через відсутність строку дії, якщо їх не видалити явно.
|
|
706
|
-
- _Примітка_: Сховище локалі доступне лише на боці клієнта, проксі intlayer не зможе до нього отримати доступ.
|
|
707
|
-
- _Примітка_: Параметри сховища локалі можна налаштувати, якщо вказати їх як StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
|
|
708
|
-
|
|
709
|
-
- **sessionStorage**:
|
|
710
|
-
- _Опис_: Зберігає дані протягом сеансу сторінки, тобто вони очищуються після закриття вкладки або вікна, доступне лише на боці клієнта.
|
|
711
|
-
- _Примітка_: Підходить для тимчасового збереження даних для кожної сесії.
|
|
712
|
-
- _Примітка_: Сховище локалі доступне лише на стороні клієнта, проксі intlayer не зможе до нього звертатися.
|
|
713
|
-
- _Примітка_: Параметри збереження локалі можна налаштувати, якщо задати їх як StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
|
|
714
|
-
|
|
715
|
-
- **header**:
|
|
716
|
-
- _Опис_: Використовує HTTP-заголовки для збереження або передачі даних локалі, підходить для визначення мови на стороні сервера.
|
|
717
|
-
- _Примітка_: Корисно в API-запитах для підтримки узгоджених налаштувань мови між запитами.
|
|
718
|
-
- _Примітка_: Заголовок доступний лише на стороні сервера, клієнт не зможе отримати до нього доступ.
|
|
719
|
-
- _Примітка_: Назву заголовка можна змінити, якщо вказати її в StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
|
|
720
|
-
|
|
721
|
-
- **basePath**:
|
|
722
|
-
- _Тип_: `string`
|
|
723
|
-
- _За замовчуванням_: `''`
|
|
724
|
-
- _Опис_: Базовий шлях для URL-адрес застосунку.
|
|
725
|
-
- _Приклад_: `'/my-app'`
|
|
726
|
-
- _Примітка_:
|
|
727
|
-
- Якщо застосунок розміщений за адресою `https://example.com/my-app`
|
|
728
|
-
- Базовий шлях, `'/my-app'`
|
|
729
|
-
- URL буде `https://example.com/my-app/en`
|
|
730
|
-
- Якщо базовий шлях не встановлено, URL буде `https://example.com/en`
|
|
731
|
-
|
|
732
|
-
- **rewrite**:
|
|
733
|
-
- _Тип_: `Record<string, StrictModeLocaleMap<string>>`
|
|
734
|
-
- _За замовчуванням_: `undefined`
|
|
735
|
-
- _Опис_: Користувацькі правила перезапису URL, які перевизначають режим маршрутизації за замовчуванням для певних шляхів. Дозволяє визначати специфічні для локалі шляхи, які відрізняються від стандартної поведінки маршрутизації. Підтримує динамічні параметри маршруту з використанням синтаксису `[param]`.
|
|
736
|
-
- _Приклад_:
|
|
737
|
-
```typescript
|
|
738
|
-
routing: {
|
|
739
|
-
mode: "prefix-no-default", // Стратегія відкату
|
|
740
|
-
rewrite: nextjsRewrite({
|
|
741
|
-
"/[locale]/about": {
|
|
742
|
-
en: "/[locale]/about",
|
|
743
|
-
fr: "/[locale]/a-propos",
|
|
744
|
-
},
|
|
745
|
-
"/[locale]/product/[slug]": {
|
|
746
|
-
en: "/[locale]/product/[slug]",
|
|
747
|
-
fr: "/[locale]/produit/[slug]",
|
|
748
|
-
},
|
|
749
|
-
"/[locale]/blog/[category]/[id]": {
|
|
750
|
-
en: "/[locale]/blog/[category]/[id]",
|
|
751
|
-
fr: "/[locale]/journal/[category]/[id]",
|
|
752
|
-
},
|
|
753
|
-
}),
|
|
754
|
-
}
|
|
755
|
-
```
|
|
756
|
-
- _Примітка_: Правила перезапису мають пріоритет над поведінкою `mode` за замовчуванням. Якщо шлях відповідає правилу перезапису, буде використано локалізований шлях з конфігурації перезапису замість стандартного префікса локалі.
|
|
757
|
-
- _Примітка_: Динамічні параметри маршруту підтримуються з використанням нотації в квадратних дужках (наприклад, `[slug]`, `[id]`). Значення параметрів автоматично витягуються з URL та інтерполюються в перезаписаний шлях.
|
|
758
|
-
- _Примітка_: Працює з додатками Next.js та Vite. Middleware/proxy автоматично перезапише вхідні запити, щоб відповідати внутрішній структурі маршруту.
|
|
759
|
-
- _Примітка_: При генерації URL за допомогою `getLocalizedUrl()` правила перезапису автоматично застосовуються, якщо вони відповідають наданому шляху.
|
|
760
|
-
- _Посилання_: Для отримання додаткової інформації див. [Користувацьке перезаписування URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/custom_url_rewrites.md).
|
|
761
|
-
|
|
762
|
-
#### Атрибути cookie
|
|
763
|
-
|
|
764
|
-
При використанні зберігання в cookie ви можете налаштувати додаткові атрибути cookie:
|
|
765
|
-
|
|
766
|
-
- **name**: Ім'я cookie (за замовчуванням: `'INTLAYER_LOCALE'`)
|
|
767
|
-
- **domain**: Домен cookie (за замовчуванням: undefined)
|
|
768
|
-
- **path**: Шлях cookie (за замовчуванням: undefined)
|
|
769
|
-
- **secure**: Вимагати HTTPS (за замовчуванням: undefined)
|
|
770
|
-
- **httpOnly**: Прапорець лише для HTTP (httpOnly) (за замовчуванням: undefined)
|
|
771
|
-
- **sameSite**: Політика SameSite (`'strict' | 'lax' | 'none'`)
|
|
772
|
-
- **expires**: Дата закінчення строку дії або кількість днів (значення за замовчуванням: undefined)
|
|
773
|
-
|
|
774
|
-
#### Атрибути збереження локалі
|
|
775
|
-
|
|
776
|
-
Коли використовується localStorage або sessionStorage:
|
|
777
|
-
|
|
778
|
-
- **type**: Тип сховища (`'localStorage' | 'sessionStorage'`)
|
|
779
|
-
- **name**: Ім'я ключа в сховищі (за замовчуванням: `'INTLAYER_LOCALE'`)
|
|
575
|
+
### Конфігурація редактора (Editor Configuration)
|
|
576
|
+
|
|
577
|
+
Визначає налаштування, пов'язані з інтегрованим редактором, включаючи порт сервера та статус активності.
|
|
578
|
+
|
|
579
|
+
| Поле | Тип | Опис | Приклад | Примітка |
|
|
580
|
+
| ---------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | `string` | URL вашого додатка. За замовчуванням: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Використовується для обмеження джерел (origins) редактора з міркувань безпеки. Якщо встановлено `'*'`, редактор доступний з будь-якого джерела. |
|
|
582
|
+
| `port` | `number` | Порт, що використовується сервером візуального редактора. За замовчуванням: `8000` | | |
|
|
583
|
+
| `editorURL` | `string` | URL сервера редактора. За замовчуванням: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Використовується для обмеження джерел, які можуть взаємодіяти з додатком. Якщо встановлено `'*'`, доступний з будь-якого джерела. Повинен бути встановлений, якщо ви змінюєте порт або якщо редактор розміщено на іншому домені. |
|
|
584
|
+
| `cmsURL` | `string` | URL Intlayer CMS. За замовчуванням: `'https://intlayer.org'` | `'https://intlayer.org'` | |
|
|
585
|
+
| `backendURL` | `string` | URL сервера бекенду. За замовчуванням: `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | `boolean` | Визначає, чи буде додаток взаємодіяти з візуальним редактором. За замовчуванням: `true` | `process.env.NODE_ENV !== 'production'` | Якщо `false`, редактор не може взаємодіяти з додатком. Вимкнення для певних середовищ підвищує безпеку. |
|
|
587
|
+
| `clientId` | `string | undefined` | Дозволяє пакетам intlayer проходити автентифікацію на бекенді за допомогою oAuth2. Для отримання токена доступу перейдіть на [intlayer.org/project](https://app.intlayer.org/project). За замовчуванням: `undefined` | | Тримайте в секреті; зберігайте в змінних оточення. |
|
|
588
|
+
| `clientSecret` | `string | undefined` | Дозволяє пакетам intlayer проходити автентифікацію на бекенді за допомогою oAuth2. Для отримання токена доступу перейдіть на [intlayer.org/project](https://app.intlayer.org/project). За замовчуванням: `undefined` | | Тримайте в секреті; зберігайте в змінних оточення. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | `string` | Стратегія пріоритетності словників за наявності як локальних, так і віддалених словників. За замовчуванням: `'local_first'` | `'distant_first'` | `'distant_first'`: Надає пріоритет віддаленим словникам над локальними. `'local_first'`: Надає пріоритет локальним словникам над віддаленими. |
|
|
590
|
+
| `liveSync` | `boolean` | Визначає, чи повинен сервер додатка виконувати гаряче перезавантаження контенту при виявленні зміни в CMS / візуальному редакторі / бекенді. За замовчуванням: `true` | `true` | Коли словник додається/оновлюється, додаток оновлює контент сторінки. Live sync передає контент на аутсорс іншому серверу, що може трохи вплинути на продуктивність. Рекомендується розміщувати обидва на одній машині. |
|
|
591
|
+
| `liveSyncPort` | `number` | Порт сервера Live Sync. За замовчуванням: `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | `string` | URL сервера Live Sync. За замовчуванням: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Вказує на localhost за замовчуванням; може бути змінено на віддалений сервер живої синхронізації. |
|
|
593
|
+
|
|
594
|
+
### Конфігурація маршрутизації (Routing Configuration)
|
|
595
|
+
|
|
596
|
+
Налаштування, що контролюють поведінку маршрутизації, включаючи структуру URL, зберігання мови та обробку проміжного ПЗ.
|
|
597
|
+
|
|
598
|
+
| Поле | Тип | Опис | Приклад | Примітка |
|
|
599
|
+
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
600
|
+
| `mode` | `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'` | Режим маршрутизації URL для обробки мов. За замовчуванням: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) або `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: мова обробляється іншими засобами. `'search-params'`: використовує `/dashboard?locale=fr` | Не впливає на керування кукі або зберігання мови (locale storage). |
|
|
601
|
+
| `storage` | `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array` | Конфігурація для зберігання мови на клієнті. За замовчуванням: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Див. таблицю Параметри зберігання нижче. |
|
|
602
|
+
| `basePath` | `string` | Базовий шлях для URL додатка. За замовчуванням: `''` | `'/my-app'` | Якщо додаток знаходиться на `https://example.com/my-app`, basePath — це `'/my-app'`, а URL стають на кшталт `https://example.com/my-app/en`. |
|
|
603
|
+
| `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | Користувацькі правила перенаправлення (rewrite) URL, що замінюють стандартний режим маршрутизації для певних шляхів. Підтримує динамічні параметри `[param]`. За замовчуванням: `undefined` | Див. приклад нижче | Правила перенаправлення мають пріоритет над `mode`. Працює з Next.js та Vite. `getLocalizedUrl()` автоматично застосовує відповідні правила. Див. [Користувацькі перенаправлення URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/custom_url_rewrites.md). |
|
|
604
|
+
|
|
605
|
+
**Приклад `rewrite`**:
|
|
606
|
+
|
|
607
|
+
```typescript
|
|
608
|
+
routing: {
|
|
609
|
+
mode: "prefix-no-default", // Резервна стратегія
|
|
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
|
+
#### Параметри зберігання (Storage Options)
|
|
628
|
+
|
|
629
|
+
| Значення | Опис | Примітка |
|
|
630
|
+
| ------------------ | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
631
|
+
| `'cookie'` | Зберігає мову в кукі — доступно як з клієнтської, так і з серверної сторони. | Для відповідності GDPR переконайтеся, що отримано належну згоду користувача. Налаштовується через `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
|
|
632
|
+
| `'localStorage'` | Зберігає мову в браузері без терміну дії — лише клієнтська сторона. | Не закінчується, поки не буде явно очищено. Проксі Intlayer не може отримати доступ до цього. Налаштовується через `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
|
|
633
|
+
| `'sessionStorage'` | Зберігає мову на час сесії сторінки — лише клієнтська сторона. | Очищується при закритті вкладки/вікна. Проксі Intlayer не може отримати доступ до цього. Налаштовується через `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
|
|
634
|
+
| `'header'` | Зберігає або передає мову через HTTP-заголовки — лише серверна сторона. | Корисно для API-викликів. Клієнтська сторона не може отримати доступ. Налаштовується через `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
|
|
635
|
+
|
|
636
|
+
#### Атрибути кукі (Cookie Attributes)
|
|
637
|
+
|
|
638
|
+
При використанні зберігання через кукі ви можете налаштувати додаткові атрибути кукі:
|
|
639
|
+
|
|
640
|
+
| Поле | Тип | Опис |
|
|
641
|
+
| ---------- | ------------------------------------- | ----------------------------------------------------------------------------- |
|
|
642
|
+
| `name` | `string` | Назва кукі. За замовчуванням: `'INTLAYER_LOCALE'` |
|
|
643
|
+
| `domain` | `string` | Домен кукі. За замовчуванням: `undefined` |
|
|
644
|
+
| `path` | `string` | Шлях кукі. За замовчуванням: `undefined` |
|
|
645
|
+
| `secure` | `boolean` | Вимагає HTTPS. За замовчуванням: `undefined` |
|
|
646
|
+
| `httpOnly` | `boolean` | Флаг HTTP-only. За замовчуванням: `undefined` |
|
|
647
|
+
| `sameSite` | `'strict' | 'lax' | 'none'` | Політика SameSite. |
|
|
648
|
+
| `expires` | `Date | number` | Дата закінчення терміну дії або кількість днів. За замовчуванням: `undefined` |
|
|
649
|
+
|
|
650
|
+
#### Атрибути зберігання мови (Locale Storage Attributes)
|
|
651
|
+
|
|
652
|
+
При використанні localStorage або sessionStorage:
|
|
653
|
+
|
|
654
|
+
| Поле | Тип | Опис |
|
|
655
|
+
| ------ | ---------------------------------------- | ------------------------------------------------------------- |
|
|
656
|
+
| `type` | `'localStorage' | 'sessionStorage'` | Тип зберігання. |
|
|
657
|
+
| `name` | `string` | Назва ключа зберігання. За замовчуванням: `'INTLAYER_LOCALE'` |
|
|
780
658
|
|
|
781
659
|
#### Приклади конфігурації
|
|
782
660
|
|
|
783
|
-
|
|
661
|
+
Ось кілька поширених прикладів конфігурації для нової структури маршрутизації v7:
|
|
784
662
|
|
|
785
|
-
**Базова конфігурація (
|
|
663
|
+
**Базова конфігурація (За замовчуванням)**:
|
|
786
664
|
|
|
787
665
|
```typescript
|
|
788
666
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -795,14 +673,14 @@ const config: IntlayerConfig = {
|
|
|
795
673
|
routing: {
|
|
796
674
|
mode: "prefix-no-default",
|
|
797
675
|
storage: "localStorage",
|
|
798
|
-
|
|
676
|
+
basePath: "",
|
|
799
677
|
},
|
|
800
678
|
};
|
|
801
679
|
|
|
802
680
|
export default config;
|
|
803
681
|
```
|
|
804
682
|
|
|
805
|
-
|
|
683
|
+
**Конфігурація для відповідності GDPR**:
|
|
806
684
|
|
|
807
685
|
```typescript
|
|
808
686
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -827,13 +705,14 @@ const config: IntlayerConfig = {
|
|
|
827
705
|
httpOnly: false,
|
|
828
706
|
},
|
|
829
707
|
],
|
|
708
|
+
basePath: "",
|
|
830
709
|
},
|
|
831
710
|
};
|
|
832
711
|
|
|
833
712
|
export default config;
|
|
834
713
|
```
|
|
835
714
|
|
|
836
|
-
**Режим параметрів
|
|
715
|
+
**Режим параметрів пошуку (Search Parameters Mode)**:
|
|
837
716
|
|
|
838
717
|
```typescript
|
|
839
718
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -845,13 +724,15 @@ const config: IntlayerConfig = {
|
|
|
845
724
|
},
|
|
846
725
|
routing: {
|
|
847
726
|
mode: "search-params",
|
|
727
|
+
storage: "localStorage",
|
|
728
|
+
basePath: "",
|
|
848
729
|
},
|
|
849
730
|
};
|
|
850
731
|
|
|
851
732
|
export default config;
|
|
852
733
|
```
|
|
853
734
|
|
|
854
|
-
**Режим без префікса з
|
|
735
|
+
**Режим без префікса (No Prefix Mode) з користувацьким сховищем**:
|
|
855
736
|
|
|
856
737
|
```typescript
|
|
857
738
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -865,7 +746,43 @@ const config: IntlayerConfig = {
|
|
|
865
746
|
mode: "no-prefix",
|
|
866
747
|
storage: {
|
|
867
748
|
type: "sessionStorage",
|
|
749
|
+
name: "app-locale",
|
|
868
750
|
},
|
|
751
|
+
basePath: "/my-app",
|
|
752
|
+
},
|
|
753
|
+
};
|
|
754
|
+
|
|
755
|
+
export default config;
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
**Користувацьке перенаправлення URL з динамічними шляхами**:
|
|
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", // Резервна стратегія для шляхів без перенаправлення
|
|
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
|
+
}),
|
|
869
786
|
},
|
|
870
787
|
};
|
|
871
788
|
|
|
@@ -874,368 +791,132 @@ export default config;
|
|
|
874
791
|
|
|
875
792
|
---
|
|
876
793
|
|
|
877
|
-
### Конфігурація контенту
|
|
794
|
+
### Конфігурація контенту (Content Configuration)
|
|
878
795
|
|
|
879
|
-
Налаштування, пов'язані з обробкою контенту
|
|
796
|
+
Налаштування, пов'язані з обробкою контенту всередині додатка (імена директорій, розширення файлів та похідні конфігурації).
|
|
880
797
|
|
|
881
|
-
|
|
798
|
+
| Поле | Тип | Опис | Приклад | Примітка |
|
|
799
|
+
| ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
800
|
+
| `watch` | `boolean` | Визначає, чи повинен Intlayer відстежувати зміни у файлах оголошення контенту для перебудови словників. За замовчуванням: `process.env.NODE_ENV === 'development'` | | |
|
|
801
|
+
| `fileExtensions` | `string[]` | Розширення файлів, що використовуються для сканування файлів оголошення контенту. За замовчуванням: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
|
|
802
|
+
| `contentDir` | `string[]` | Шляхи до директорій, де розташовані файли оголошення контенту. За замовчуванням: `['.']` | `['src/content']` | |
|
|
803
|
+
| `codeDir` | `string[]` | Шляхи до директорій, де розташовані файли вихідного коду вашого додатка. За замовчуванням: `['.']` | `['src']` | Використовується для оптимізації збірки та гарантії того, що трансформація коду та гаряче перезавантаження застосовуються лише до необхідних файлів. |
|
|
804
|
+
| `excludedPath` | `string[]` | Шляхи, виключені зі сканування контенту. За замовчуванням: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
|
|
805
|
+
| `formatCommand` | `string` | Команда, яка буде виконана для форматування новостворених або оновлених файлів контенту. За замовчуванням: `undefined` | `'npx prettier --write "{{file}}"'` | Використовується під час вилучення контенту або через візуальний редактор. |
|
|
882
806
|
|
|
883
|
-
|
|
884
|
-
- _Тип_: `boolean`
|
|
885
|
-
- _За замовчуванням_: `process.env.NODE_ENV === 'development'`
|
|
886
|
-
- _Опис_: Вказує, чи Intlayer має відслідковувати зміни в файлах декларації контенту в додатку, щоб перебудувати відповідні словники.
|
|
807
|
+
---
|
|
887
808
|
|
|
888
|
-
|
|
889
|
-
- _Тип_: `string[]`
|
|
890
|
-
- _За замовчуванням_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
891
|
-
- _Опис_: Розширення файлів, які слід шукати під час побудови словників.
|
|
892
|
-
- _Приклад_: `['.data.ts', '.data.js', '.data.json']`
|
|
893
|
-
- _Примітка_: Налаштування розширень файлів може допомогти уникнути конфліктів.
|
|
809
|
+
### Конфігурація словника (Dictionary Configuration)
|
|
894
810
|
|
|
895
|
-
|
|
896
|
-
- _Тип_: `string[]`
|
|
897
|
-
- _За замовчуванням_: `['.']`
|
|
898
|
-
- _Приклад_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
|
|
899
|
-
- _Опис_: Шлях до каталогу, де зберігаються файли визначення контенту (`.content.*`).
|
|
900
|
-
- _Примітка_: Використовується для відстеження файлів контенту для перебудови словників.
|
|
811
|
+
Налаштування, що контролюють операції зі словниками, включаючи поведінку автоматичного заповнення та створення контенту.
|
|
901
812
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
813
|
+
Ця конфігурація словника має дві основні мети:
|
|
814
|
+
|
|
815
|
+
1. **Значення за замовчуванням**: Визначення значень за замовчуванням при створенні файлів оголошення контенту.
|
|
816
|
+
2. **Поведінка резервного копіювання**: Дозволяє глобально налаштувати поведінку операцій зі словниками, надаючи резервні значення, коли конкретні поля не визначені.
|
|
817
|
+
|
|
818
|
+
Для отримання додаткової інформації про те, як застосовуються файли оголошення контенту та значення конфігурації, див. [документацію файлів контенту](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md).
|
|
819
|
+
|
|
820
|
+
| Поле | Тип | Опис | Приклад | Примітка |
|
|
821
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
822
|
+
| `fill` | `boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>>` | Контролює, як генеруються вихідні файли автоматичного заповнення (AI-переклад). За замовчуванням: `true` | Див. приклад нижче | `true`: шлях за замовчуванням (той самий файл, що й джерело). `false`: вимкнено. Шаблони рядків/функцій генерують файли за мовами. Об'єкт за мовами: кожна мова відповідає своєму шаблону; `false` пропускає цю мову. Включення змінної `{{locale}}` активує генерацію за мовами. `fill` на рівні словника завжди має пріоритет над цією глобальною конфігурацією. |
|
|
823
|
+
| `importMode` | `'static' | 'dynamic' | 'fetch'` | Контролює спосіб імпорту словників. За замовчуванням: `'static'` | `'dynamic'` | `'static'`: Статично імпортується. `'dynamic'`: Динамічно імпортується через 'Suspense'. `'fetch'`: Динамічно отримується через 'Live Sync API'. Не впливає на `getIntlayer`, `getDictionary`, `useDictionary` тощо. |
|
|
824
|
+
| `location` | `'local' | 'remote' | 'hybrid' | string` | Де зберігаються словники. За замовчуванням: `'local'` | `'remote'` | `'local'`: файлова система. `'remote'`: Intlayer CMS. `'hybrid'`: обидва. |
|
|
825
|
+
| `contentAutoTransformation` | `boolean` | Чи повинні файли контенту автоматично трансформуватися (наприклад, з Markdown в HTML). За замовчуванням: `false` | `true` | Корисно для обробки полів Markdown через @intlayer/markdown. |
|
|
826
|
+
|
|
827
|
+
**Приклад `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
|
+
```
|
|
908
838
|
|
|
909
839
|
---
|
|
910
840
|
|
|
911
|
-
### Конфігурація
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
- **dictionariesDir**:
|
|
925
|
-
- _Тип_: `string`
|
|
926
|
-
- _За замовчуванням_: `'.intlayer/dictionary'`
|
|
927
|
-
- _Опис_: Каталог для збереження словників локалізації.
|
|
928
|
-
- _Приклад_: `'translations'`
|
|
929
|
-
|
|
930
|
-
- **moduleAugmentationDir**:
|
|
931
|
-
- _Тип_: `string`
|
|
932
|
-
- _За замовчуванням_: `'.intlayer/types'`
|
|
933
|
-
- _Опис_: Каталог для module augmentation, що дозволяє покращені підказки IDE та перевірку типів.
|
|
934
|
-
- _Приклад_: `'intlayer-types'`
|
|
935
|
-
- _Примітка_: Переконайтеся, що цей каталог включений у `tsconfig.json`.
|
|
936
|
-
|
|
937
|
-
- **unmergedDictionariesDir**:
|
|
938
|
-
- _Тип_: `string`
|
|
939
|
-
- _За замовчуванням_: `'.intlayer/unmerged_dictionary'`
|
|
940
|
-
- _Опис_: Каталог для збереження незлитих словників.
|
|
941
|
-
- _Приклад_: `'translations'`
|
|
942
|
-
|
|
943
|
-
- **typesDir**:
|
|
944
|
-
- _Тип_: `string`
|
|
945
|
-
- _За замовчуванням_: `'types'`
|
|
946
|
-
- _Опис_: Каталог для збереження типів словників.
|
|
947
|
-
- _Приклад_: `'intlayer-types'`
|
|
948
|
-
|
|
949
|
-
- **mainDir**:
|
|
950
|
-
- _Тип_: `string`
|
|
951
|
-
- _За замовчуванням_: `'main'`
|
|
952
|
-
- _Опис_: Каталог, де зберігаються основні файли застосунку.
|
|
953
|
-
- _Приклад_: `'intlayer-main'`
|
|
954
|
-
|
|
955
|
-
- **excludedPath**:
|
|
956
|
-
- _Тип_: `string[]`
|
|
957
|
-
- _За замовчуванням_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
|
|
958
|
-
- _Опис_: Каталоги, виключені з пошуку вмісту.
|
|
959
|
-
- _Примітка_: Ця налаштування ще не використовується, але планується для майбутньої реалізації.
|
|
960
|
-
|
|
961
|
-
- **formatCommand**:
|
|
962
|
-
- _Тип_: `string`
|
|
963
|
-
- _Типово_: `undefined`
|
|
964
|
-
- _Опис_: Команда для форматування вмісту. Коли Intlayer записуватиме ваші .content файли локально, ця команда буде використана для форматування вмісту.
|
|
965
|
-
- _Приклад_: `'npx prettier --write "{{file}}" --log-level silent'` За допомогою Prettier
|
|
966
|
-
- _Приклад_: `'npx biome format "{{file}}" --write --log-level none'` За допомогою Biome
|
|
967
|
-
- _Приклад_: `'npx eslint --fix "{{file}}" --quiet'` За допомогою ESLint
|
|
968
|
-
- _Примітка_: Intlayer замінить {{file}} на шлях до файлу, який потрібно форматувати.
|
|
969
|
-
- _Примітка_: Якщо не вказано, Intlayer спробує визначити команду форматування автоматично. Він буде намагатися знайти такі команди: prettier, biome, eslint.
|
|
970
|
-
|
|
971
|
-
### Конфігурація словника
|
|
972
|
-
|
|
973
|
-
Налаштування, які керують операціями словника, включаючи поведінку автоматичного заповнення та генерацію контенту.
|
|
974
|
-
|
|
975
|
-
Ця конфігурація словника має дві основні цілі:
|
|
976
|
-
|
|
977
|
-
1. **Значення за замовчуванням**: Визначати значення за замовчуванням під час створення файлів декларації контенту
|
|
978
|
-
2. **Поведінка при відсутності значень**: Забезпечувати запасні значення, коли певні поля не визначені, що дозволяє задавати поведінку операцій словника глобально
|
|
979
|
-
|
|
980
|
-
Щоб дізнатися більше про файли декларації контенту та про те, як застосовуються значення конфігурації, див. [Документацію щодо контент-файлів](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/dictionary/content_file.md).
|
|
981
|
-
|
|
982
|
-
#### Властивості
|
|
983
|
-
|
|
984
|
-
- **fill**
|
|
985
|
-
- **description**
|
|
986
|
-
- **locale**
|
|
987
|
-
- **location**
|
|
988
|
-
- **importMode**:
|
|
989
|
-
- _Примітка_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
990
|
-
- _Тип_: `'static' | 'dynamic' | 'fetch'`
|
|
991
|
-
- _Типово_: `'static'`
|
|
992
|
-
- _Опис_: Controls how dictionaries are imported.
|
|
993
|
-
- _Приклад_: `'dynamic'`
|
|
994
|
-
- **priority**
|
|
995
|
-
- **live**
|
|
996
|
-
- **schema**
|
|
997
|
-
- **title**
|
|
998
|
-
- **tags**
|
|
999
|
-
- **version**
|
|
841
|
+
### Конфігурація AI (AI Configuration)
|
|
842
|
+
|
|
843
|
+
Визначає налаштування для функцій Intlayer на базі AI, таких як переклад при збірці.
|
|
844
|
+
|
|
845
|
+
| Поле | Тип | Опис | Приклад | Примітка |
|
|
846
|
+
| -------------------- | ---------------------- | ------------------------------------------------------------------------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
847
|
+
| `provider` | `string` | Провайдер AI для використання. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
|
|
848
|
+
| `model` | `string` | Модель AI для використання. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
|
|
849
|
+
| `apiKey` | `string` | API ключ для вибраного провайдера. | `process.env.OPENAI_API_KEY` | |
|
|
850
|
+
| `applicationContext` | `string` | Додатковий контекст про ваш додаток для покращення точності перекладу AI. | `'Навчальна платформа для дітей.'` | |
|
|
851
|
+
| `baseURL` | `string` | Необов'язковий URL базового шляху для API-викликів. | | Корисно, якщо ви використовуєте проксі або локальне розгортання AI. |
|
|
852
|
+
| `dataSerialization` | `'json' | 'toon'` | Визначає, як надсилати дані до AI. За замовчуванням: `'json'` | `'json'` | `'json'`: більш надійно та точно. `'toon'`: споживає менше токенів, але може бути менш стабільним. |
|
|
1000
853
|
|
|
1001
854
|
---
|
|
1002
855
|
|
|
1003
|
-
### Конфігурація
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
- _Опції_: `default`, `verbose`, `disabled`
|
|
1014
|
-
- _Приклад_: `default`
|
|
1015
|
-
- _Примітка_: Режим роботи логера. Режим `verbose` записуватиме більше інформації й підходить для налагодження. Режим `disabled` вимкне логер.
|
|
1016
|
-
|
|
1017
|
-
- **prefix**:
|
|
1018
|
-
- _Тип_: `string`
|
|
1019
|
-
- _Типово_: `'[intlayer] '`
|
|
1020
|
-
- _Опис_: Префікс logger'а.
|
|
1021
|
-
- _Приклад_: `'[my custom prefix] '`
|
|
1022
|
-
- _Примітка_: Префікс logger'а.
|
|
1023
|
-
|
|
1024
|
-
### Конфігурація AI
|
|
1025
|
-
|
|
1026
|
-
Налаштування, які контролюють AI-функції Intlayer, включно з провайдером, моделлю та API-ключем.
|
|
1027
|
-
|
|
1028
|
-
Ця конфігурація є необов'язковою, якщо ви зареєстровані на [Intlayer Dashboard](https://app.intlayer.org/project) і використовуєте ключ доступу. Intlayer автоматично підбере найефективніше та економічно вигідне AI-рішення для ваших потреб. Використання опцій за замовчуванням забезпечує кращу довгострокову підтримуваність, оскільки Intlayer постійно оновлюється, щоб використовувати найбільш релевантні моделі.
|
|
1029
|
-
|
|
1030
|
-
Якщо ви віддаєте перевагу використовувати власний API-ключ або конкретну модель, ви можете визначити власну конфігурацію AI.
|
|
1031
|
-
Ця конфігурація ШІ буде використовуватися глобально в усьому вашому середовищі Intlayer. Команди CLI використовуватимуть ці налаштування як значення за замовчуванням для команд (наприклад, `fill`), а також SDK, Visual Editor і CMS. Ви можете перевизначати ці значення за замовчуванням для конкретних випадків використання за допомогою параметрів команд.
|
|
1032
|
-
|
|
1033
|
-
Intlayer підтримує кількох постачальників ШІ для більшої гнучкості та вибору. Наразі підтримуються такі постачальники:
|
|
1034
|
-
|
|
1035
|
-
- **OpenAI** (за замовчуванням)
|
|
1036
|
-
- **Anthropic Claude**
|
|
1037
|
-
- **Mistral AI**
|
|
1038
|
-
- **DeepSeek**
|
|
1039
|
-
- **Google Gemini**
|
|
1040
|
-
- **Meta Llama**
|
|
1041
|
-
- **Ollama**
|
|
1042
|
-
- **OpenRouter**
|
|
1043
|
-
- **Alibaba Cloud**
|
|
1044
|
-
- **Fireworks**
|
|
1045
|
-
- **Hugging Face**
|
|
1046
|
-
- **Groq**
|
|
1047
|
-
- **Amazon Bedrock**
|
|
1048
|
-
- **Google AI Studio**
|
|
1049
|
-
- **Google Vertex**
|
|
1050
|
-
- **Together.ai**
|
|
1051
|
-
- **ollama**
|
|
1052
|
-
|
|
1053
|
-
#### Властивості
|
|
1054
|
-
|
|
1055
|
-
- **provider**:
|
|
1056
|
-
- _Тип_: `string`
|
|
1057
|
-
- _Типово_: `'openai'`
|
|
1058
|
-
- _Опис_: Постачальник, який використовуватиметься для функцій ШІ Intlayer.
|
|
1059
|
-
- _Options_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
1060
|
-
- _Приклад_: `'anthropic'`
|
|
1061
|
-
- _Примітка_: Різні провайдери можуть вимагати різні API-ключі та мати різні моделі ціноутворення.
|
|
1062
|
-
|
|
1063
|
-
- **model**:
|
|
1064
|
-
- _Тип_: `string`
|
|
1065
|
-
- _Типово_: None
|
|
1066
|
-
- _Опис_: Модель, яку слід використовувати для функцій ШІ в Intlayer.
|
|
1067
|
-
- _Приклад_: `'gpt-4o-2024-11-20'`
|
|
1068
|
-
- _Примітка_: Конкретна модель для використання залежить від провайдера.
|
|
1069
|
-
|
|
1070
|
-
- **temperature**:
|
|
1071
|
-
- _Тип_: `number`
|
|
1072
|
-
- _Типово_: None
|
|
1073
|
-
- _Опис_: Параметр temperature контролює випадковість відповідей ШІ.
|
|
1074
|
-
- _Приклад_: `0.1`
|
|
1075
|
-
- _Примітка_: Вища температура зробить ШІ більш креативним та менш передбачуваним.
|
|
1076
|
-
|
|
1077
|
-
- **apiKey**:
|
|
1078
|
-
- _Тип_: `string`
|
|
1079
|
-
- _Типово_: None
|
|
1080
|
-
- _Опис_: Ваш API-ключ для вибраного провайдера.
|
|
1081
|
-
- _Приклад_: `process.env.OPENAI_API_KEY`
|
|
1082
|
-
- _Примітка_: Важливо: API-ключі слід зберігати в таємниці та не поширювати публічно. Будь ласка, зберігайте їх у безпечному місці, наприклад у змінних середовища.
|
|
1083
|
-
|
|
1084
|
-
- **applicationContext**:
|
|
1085
|
-
- _Тип_: `string`
|
|
1086
|
-
- _Типово_: None
|
|
1087
|
-
- _Опис_: Надає додатковий контекст про ваш застосунок для AI-моделі, допомагаючи їй генерувати точніші та контекстуально доречні переклади. Це може включати інформацію про домен вашого додатку, цільову аудиторію, тон або специфічну термінологію.
|
|
1088
|
-
- _Примітка_: Ви можете використовувати його, щоб додати більше правил для AI-моделі (e.g. "You should not transform urls").
|
|
1089
|
-
- _Приклад_: `'My application context'`
|
|
1090
|
-
|
|
1091
|
-
- **baseURL**:
|
|
1092
|
-
- _Тип_: `string`
|
|
1093
|
-
- _Типово_: None
|
|
1094
|
-
- _Опис_: Базовий URL для AI API.
|
|
1095
|
-
- _Приклад_: `'https://api.openai.com/v1'`
|
|
1096
|
-
- _Приклад_: `'http://localhost:5000'`
|
|
1097
|
-
- _Примітка_: Може використовуватися для вказівки локального або кастомного AI API endpoint.
|
|
1098
|
-
|
|
1099
|
-
- **dataSerialization**:
|
|
1100
|
-
- _Тип_: `'json' | 'toon'`
|
|
1101
|
-
- _За замовчуванням_: `'json'`
|
|
1102
|
-
- _Опис_: Формат серіалізації даних для використання у функціях ШІ Intlayer.
|
|
1103
|
-
- _Приклад_: `'toon'`
|
|
1104
|
-
- _Примітка_: `json`: Стандартний, надійний; використовує більше токенів. `toon`: Менше токенів, менш стабільний, ніж JSON.
|
|
1105
|
-
|
|
1106
|
-
> Якщо ви надаєте додаткові параметри, Intlayer передасть їх AI-моделі як контекст. Це можна використовувати для налаштування інтенсивності міркувань, детальності тексту тощо
|
|
1107
|
-
|
|
1108
|
-
### Конфігурація збірки
|
|
1109
|
-
|
|
1110
|
-
Налаштування, що контролюють, як Intlayer оптимізує та збирає інтернаціоналізацію вашого застосунку.
|
|
1111
|
-
|
|
1112
|
-
Параметри збірки застосовуються до плагінів `@intlayer/babel` та `@intlayer/swc`.
|
|
1113
|
-
|
|
1114
|
-
> У режимі розробки Intlayer використовує статичні імпорти словників, щоб спростити процес розробки.
|
|
1115
|
-
|
|
1116
|
-
> У режимі оптимізації Intlayer замінює виклики словників для оптимізації розбиття на чанки (chunking), тож фінальний бандл імпортує лише ті словники, які фактично використовуються.
|
|
1117
|
-
|
|
1118
|
-
#### Властивості
|
|
1119
|
-
|
|
1120
|
-
- **mode**:
|
|
1121
|
-
- _Тип_: `'auto' | 'manual'`
|
|
1122
|
-
- _За замовчуванням_: `'auto'`
|
|
1123
|
-
- _Опис_: Керує режимом збірки.
|
|
1124
|
-
- _Приклад_: `'manual'`
|
|
1125
|
-
- _Примітка_: Якщо 'auto', збірка буде увімкнена автоматично під час побудови застосунку.
|
|
1126
|
-
- _Примітка_: Якщо 'manual', збірка буде встановлена лише під час виконання команди збірки.
|
|
1127
|
-
- _Примітка_: Може використовуватися для вимкнення збірки словників, наприклад, коли слід уникати виконання в середовищі Node.js.
|
|
1128
|
-
|
|
1129
|
-
- **optimize**:
|
|
1130
|
-
- _Тип_: `boolean`
|
|
1131
|
-
- _За замовчуванням_: `undefined`
|
|
1132
|
-
- _Опис_: Керує тим, чи слід оптимізувати збірку.
|
|
1133
|
-
- _Приклад_: `process.env.NODE_ENV === 'production'`
|
|
1134
|
-
- _Примітка_: За замовчуванням оптимізація збірки не зафіксована. Якщо не встановлено, Intlayer запустить оптимізацію під час збірки вашого застосунку (vite / nextjs / тощо). Встановлення `true` примусово увімкне оптимізацію збірки, включно з режимом розробки. Встановлення `false` вимкне оптимізацію збірки.
|
|
1135
|
-
- _Примітка_: Коли ввімкнено, Intlayer замінює всі виклики словників для оптимізації розбиття на чанки. Таким чином фінальний бандл імпортуватиме лише ті словники, які використовуються. Всі імпорти залишаться статичними, щоб уникнути асинхронної обробки під час завантаження словників.
|
|
1136
|
-
- _Примітка_: Intlayer замінить усі виклики `useIntlayer` на варіант, визначений опцією `importMode`, а `getIntlayer`, на `getDictionary`.
|
|
1137
|
-
- _Примітка_: Ця опція покладається на плагіни `@intlayer/babel` та `@intlayer/swc`.
|
|
1138
|
-
- _Примітка_: Переконайтесь, що всі ключі оголошені статично у викликах `useIntlayer`. Наприклад `useIntlayer('navbar')`.
|
|
1139
|
-
|
|
1140
|
-
- **checkTypes**:
|
|
1141
|
-
- _Тип_: `boolean`
|
|
1142
|
-
- _Типово_: `false`
|
|
1143
|
-
- _Опис_: Вказує, чи повинна збірка перевіряти типи TypeScript та реєструвати помилки.
|
|
1144
|
-
- _Примітка_: Це може уповільнити процес збірки.
|
|
1145
|
-
|
|
1146
|
-
- **outputFormat**:
|
|
1147
|
-
- _Тип_: `'esm' | 'cjs'`
|
|
1148
|
-
- _Типово_: `'esm'`
|
|
1149
|
-
- _Опис_: Керує форматом виводу словників.
|
|
1150
|
-
- _Приклад_: `'cjs'`
|
|
1151
|
-
- _Примітка_: Формат виводу словників.
|
|
1152
|
-
|
|
1153
|
-
- **traversePattern**:
|
|
1154
|
-
- _Тип_: `string[]`
|
|
1155
|
-
- _Типово_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1156
|
-
- _Опис_: Шаблони, що визначають, які файли слід обходити під час оптимізації.
|
|
1157
|
-
- _Приклад_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1158
|
-
- _Примітка_: Використовуйте це, щоб обмежити оптимізацію релевантними файлами коду та покращити продуктивність збірки.
|
|
1159
|
-
- _Примітка_: Ця опція буде ігнорована, якщо `optimize` вимкнено.
|
|
1160
|
-
- _Примітка_: Використовуйте glob-шаблон.
|
|
856
|
+
### Конфігурація збірки (Build Configuration)
|
|
857
|
+
|
|
858
|
+
Налаштування процесу збірки та оптимізації Intlayer.
|
|
859
|
+
|
|
860
|
+
| Поле | Тип | Опис | Приклад | Примітка |
|
|
861
|
+
| -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------- | -------- |
|
|
862
|
+
| `mode` | `'auto' | 'manual'` | Визначає, чи повинен Intlayer запускатися автоматично під час етапів pre-build додатка. За замовчуванням: `'auto'` | | |
|
|
863
|
+
| `optimize` | `boolean` | Визначає, чи повинні скомпільовані словники бути оптимізовані для рантайму. За замовчуванням: `true` у продуктовому середовищі | | |
|
|
864
|
+
| `outputFormat` | `('cjs' | 'esm')[]` | Формат виводу для згенерованих файлів словника. За замовчуванням: `['cjs', 'esm']` | | |
|
|
865
|
+
| `checkTypes` | `boolean` | Визначає, чи має Intlayer перевіряти типи в згенерованих файлах. За замовчуванням: `false` | | |
|
|
1161
866
|
|
|
1162
867
|
---
|
|
1163
868
|
|
|
1164
|
-
###
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
- **noMetadata**:
|
|
1219
|
-
- _Тип_: `boolean`
|
|
1220
|
-
- _Типово_: `false`
|
|
1221
|
-
- _Опис_: Вказує, чи мають метадані зберігатися у файлі. Якщо true, компілятор не зберігатиме метадані словників (ключ, оболонка вмісту). Корисно для виводу JSON для i18next або ICU MessageFormat для кожної локалі.
|
|
1222
|
-
- _Примітка_: Корисно при використанні з плагіном `loadJSON`.
|
|
1223
|
-
- _Приклад_:
|
|
1224
|
-
Якщо `true` :
|
|
1225
|
-
|
|
1226
|
-
```json
|
|
1227
|
-
{
|
|
1228
|
-
"key": "value"
|
|
1229
|
-
}
|
|
1230
|
-
```
|
|
1231
|
-
|
|
1232
|
-
Якщо `false`:
|
|
1233
|
-
|
|
1234
|
-
```json
|
|
1235
|
-
{
|
|
1236
|
-
"key": "value",
|
|
1237
|
-
"content": {
|
|
1238
|
-
"key": "value"
|
|
1239
|
-
}
|
|
1240
|
-
}
|
|
1241
|
-
```
|
|
869
|
+
### Системна конфігурація (System Configuration)
|
|
870
|
+
|
|
871
|
+
Ці налаштування призначені для розширених випадків використання та внутрішньої конфігурації Intlayer.
|
|
872
|
+
|
|
873
|
+
| Поле | Тип | Опис | За замовчуванням |
|
|
874
|
+
| ------------------------- | -------- | ------------------------------------------------- | --------------------------------- |
|
|
875
|
+
| `dictionariesDir` | `string` | Директорія скомпільованих словників. | `'.intlayer/dictionary'` |
|
|
876
|
+
| `moduleAugmentationDir` | `string` | Директорія для розширення модулів TypeScript. | `'.intlayer/types'` |
|
|
877
|
+
| `unmergedDictionariesDir` | `string` | Директорія незлитих словників. | `'.intlayer/unmerged_dictionary'` |
|
|
878
|
+
| `typesDir` | `string` | Директорія згенерованих типів. | `'.intlayer/types'` |
|
|
879
|
+
| `mainDir` | `string` | Директорія основного файлу Intlayer. | `'.intlayer/main'` |
|
|
880
|
+
| `configDir` | `string` | Директорія скомпільованих конфігураційних файлів. | `'.intlayer/config'` |
|
|
881
|
+
| `cacheDir` | `string` | Директорія кеш-файлів. | `'.intlayer/cache'` |
|
|
882
|
+
|
|
883
|
+
---
|
|
884
|
+
|
|
885
|
+
### Конфігурація компілятора (Compiler Configuration)
|
|
886
|
+
|
|
887
|
+
Налаштування компілятора Intlayer (`intlayer compiler`).
|
|
888
|
+
|
|
889
|
+
| Поле | Тип | Опис | За замовчуванням |
|
|
890
|
+
| --------------------- | ------------------------ | ------------------------------------------------------------------------------------- | ---------------- |
|
|
891
|
+
| `enabled` | `boolean` | Визначає, чи активний компілятор. | `false` |
|
|
892
|
+
| `output` | `string | Function` | Шлях виводу для витягнутих словників. | |
|
|
893
|
+
| `saveComponents` | `boolean` | Визначає, чи слід перезаписувати оригінальні вихідні файли трансформованими версіями. | `false` |
|
|
894
|
+
| `noMetadata` | `boolean` | Якщо `true`, компілятор не включатиме метадані у згенеровані файли. | `false` |
|
|
895
|
+
| `dictionaryKeyPrefix` | `string` | Необов'язковий префікс ключа словника. | `''` |
|
|
896
|
+
|
|
897
|
+
---
|
|
898
|
+
|
|
899
|
+
### Конфігурація логера (Logger Configuration)
|
|
900
|
+
|
|
901
|
+
Налаштування для кастомізації виводу логів Intlayer.
|
|
902
|
+
|
|
903
|
+
| Поле | Тип | Опис | За замовчуванням |
|
|
904
|
+
| -------- | ---------------------------------------------- | ------------------------------ | ---------------- |
|
|
905
|
+
| `mode` | `'default' | 'verbose' | 'disabled'` | Режим логування. | `'default'` |
|
|
906
|
+
| `prefix` | `string` | Префікс повідомлень логування. | `'[intlayer]'` |
|
|
907
|
+
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
### Користувацькі схеми (Custom Schemas)
|
|
911
|
+
|
|
912
|
+
| Поле | Тип | Опис |
|
|
913
|
+
| --------- | --------------------------- | --------------------------------------------------------------------- |
|
|
914
|
+
| `schemas` | `Record<string, ZodSchema>` | Дозволяє визначати Zod-схеми для валідації структури ваших словників. |
|
|
915
|
+
|
|
916
|
+
---
|
|
917
|
+
|
|
918
|
+
### Плагіни (Plugins)
|
|
919
|
+
|
|
920
|
+
| Поле | Тип | Опис |
|
|
921
|
+
| --------- | ------------------ | --------------------------------------- |
|
|
922
|
+
| `plugins` | `IntlayerPlugin[]` | Список плагінів Intlayer для активації. |
|