@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,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
4
- title: Конфігурація
5
- description: Дізнайтеся, як налаштувати Intlayer для вашого застосунку. Зрозумійте різні параметри та опції, доступні для налаштування 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: Перемістити 'baseDir' з конфігурації 'content' до конфігурації 'system'
22
+ changes: Переміщено 'baseDir' з конфігурації 'content' до конфігурації 'system'
20
23
  - version: 8.2.0
21
24
  date: 2026-03-09
22
- changes: Оновлення опцій компілятора, додавання підтримки 'output' та 'noMetadata'
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: Перемістити конфігурацію збірки importMode до конфігурації словника.
46
+ changes: Додано опцію `rewrite` до конфігурації маршрутизації
35
47
  - version: 8.0.0
36
48
  date: 2026-01-18
37
- changes: Розділити конфігурацію системи від конфігурації контенту. Перемістити внутрішні шляхи до властивості `system`. Додати `codeDir` для розділення файлів контенту та перетворення коду.
49
+ changes: Відокремлено системну конфігурацію від конфігурації контенту. Переміщено внутрішні шляхи до властивості `system`. Додано `codeDir` для відокремлення файлів контенту та трансформації коду.
38
50
  - version: 8.0.0
39
51
  date: 2026-01-18
40
- changes: Додано опції словника `location` та `schema`
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` на конфігурацію `routing`
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: Оновлено опцію `excludedPath`
70
+ changes: Оновлено параметр `excludedPath`
59
71
  - version: 6.0.2
60
72
  date: 2025-09-23
61
- changes: Додано опцію `outputFormat`
73
+ changes: Додано параметр `outputFormat`
62
74
  - version: 6.0.0
63
75
  date: 2025-09-21
64
- changes: Вилучено поле `dictionaryOutput` та поле `i18nextResourcesDir`
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` та додано поля `liveSyncPort` і `liveSyncURL`
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
- Файли конфігурації Intlayer дозволяють налаштовувати різні аспекти плагіна, такі як інтернаціоналізація, middleware та обробка контенту. У цьому документі наведено детальний опис кожної властивості конфігурації.
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 підтримує формати файлів конфігурації JSON, JS, MJS та TS:
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
- * Example Intlayer configuration file showing all available options.
131
+ * Приклад конфігураційного файлу Intlayer, що відображає всі доступні опції.
120
132
  */
121
133
  const config: IntlayerConfig = {
122
134
  /**
123
- * Configuration for internationalization settings.
135
+ * Налаштування інтернаціоналізації.
124
136
  */
125
137
  internationalization: {
126
138
  /**
127
- * List of supported locales in the application.
128
- * Default: [Locales.ENGLISH]
139
+ * Список мов (locales), що підтримуються в додатку.
140
+ * За замовчуванням: [Locales.ENGLISH]
129
141
  */
130
142
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
131
143
 
132
144
  /**
133
- * List of required locales that must be defined in every dictionary.
134
- * If empty, all locales are required in `strict` mode.
135
- * Default: []
145
+ * Список обов'язкових мов, які повинні бути визначені в кожному словнику.
146
+ * Якщо порожньо, усі мови є обов'язковими в режимі `strict`.
147
+ * За замовчуванням: []
136
148
  */
137
149
  requiredLocales: [Locales.ENGLISH],
138
150
 
139
151
  /**
140
- * Strictness level for internationalized content.
141
- * - "strict": Errors if any declared locale is missing or undeclared.
142
- * - "inclusive": Warnings if a declared locale is missing.
143
- * - "loose": Accepts any existing locale.
144
- * Default: "inclusive"
152
+ * Рівень суворості для інтернаціоналізованого контенту.
153
+ * - "strict": Помилка, якщо будь-яка оголошена мова відсутня або не оголошена.
154
+ * - "inclusive": Попередження, якщо оголошена мова відсутня.
155
+ * - "loose": Приймає будь-яку існуючу мову.
156
+ * За замовчуванням: "inclusive"
145
157
  */
146
158
  strictMode: "inclusive",
147
159
 
148
160
  /**
149
- * Default locale used as a fallback if the requested locale is not found.
150
- * Default: Locales.ENGLISH
161
+ * Мова за замовчуванням, яка використовується як резервна, якщо запитувана мова не знайдена.
162
+ * За замовчуванням: Locales.ENGLISH
151
163
  */
152
164
  defaultLocale: Locales.ENGLISH,
153
165
  },
154
166
 
155
167
  /**
156
- * Settings that control dictionary operations and fallback behavior.
168
+ * Параметри, що контролюють операції зі словниками та поведінку резервного копіювання.
157
169
  */
158
170
  dictionary: {
159
171
  /**
160
- * Controls how dictionaries are imported.
161
- * - "static": Statically imported at build time.
162
- * - "dynamic": Dynamically imported using Suspense.
163
- * - "fetch": Fetched dynamically via the live sync API.
164
- * Default: "static"
172
+ * Контролює спосіб імпорту словників.
173
+ * - "static": Статично імпортується під час збірки.
174
+ * - "dynamic": Динамічно імпортується за допомогою Suspense.
175
+ * - "fetch": Динамічно отримується через Live Sync API.
176
+ * За замовчуванням: "static"
165
177
  */
166
178
  importMode: "static",
167
179
 
168
180
  /**
169
- * Strategy for auto-filling missing translations using AI.
170
- * Can be a boolean or a path pattern to store filled content.
171
- * Default: true
181
+ * Стратегія автоматичного заповнення відсутніх перекладів за допомогою AI.
182
+ * Може бути логічним значенням або шаблоном шляху для збереження заповненого контенту.
183
+ * За замовчуванням: true
172
184
  */
173
185
  fill: true,
174
186
 
175
187
  /**
176
- * Physical location of the dictionary files.
177
- * - "local": Stored in the local filesystem.
178
- * - "remote": Stored in the Intlayer CMS.
179
- * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
180
- * - "plugin" (or any custom string): Provided by a plugin or a custom source.
181
- * Default: "local"
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
- * Whether to automatically transform content (e.g., Markdown to HTML).
187
- * Default: false
198
+ * Чи повинен контент автоматично трансформуватися (наприклад, з Markdown в HTML).
199
+ * За замовчуванням: false
188
200
  */
189
201
  contentAutoTransformation: false,
190
202
  },
191
203
 
192
204
  /**
193
- * Routing and middleware configuration.
205
+ * Конфігурація маршрутизації та проміжного ПЗ.
194
206
  */
195
207
  routing: {
196
208
  /**
197
- * Locale routing strategy.
198
- * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
199
- * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
200
- * - "no-prefix": No locale in the URL.
201
- * - "search-params": Use ?locale=...
202
- * Default: "prefix-no-default"
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
- * Where to store the user's selected locale.
208
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
209
- * Default: ['cookie', 'header']
219
+ * Де зберігати вибрану користувачем мову.
220
+ * Опції: 'cookie', 'localStorage', 'sessionStorage', 'header' або їх масив.
221
+ * За замовчуванням: ['cookie', 'header']
210
222
  */
211
223
  storage: ["cookie", "header"],
212
224
 
213
225
  /**
214
- * Base path for the application URLs.
215
- * Default: ""
226
+ * Базовий шлях для URL додатка.
227
+ * За замовчуванням: ""
216
228
  */
217
229
  basePath: "",
218
230
 
219
231
  /**
220
- * Custom URL rewriting rules for locale-specific paths.
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
- * Settings for finding and processing content files.
243
+ * Параметри, пов'язані з пошуком та обробкою файлів контенту.
232
244
  */
233
245
  content: {
234
246
  /**
235
- * File extensions to scan for dictionaries.
236
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
247
+ * Розширення файлів для сканування словників.
248
+ * За замовчуванням: ['.content.ts', '.content.js', '.content.json' тощо]
237
249
  */
238
250
  fileExtensions: [".content.ts", ".content.js", ".content.json"],
239
251
 
240
252
  /**
241
- * Directories where .content files are located.
242
- * Default: ["."]
253
+ * Директорії, де розташовані файли .content.
254
+ * За замовчуванням: ["."]
243
255
  */
244
256
  contentDir: ["src"],
245
257
 
246
258
  /**
247
- * Directories where source code is located.
248
- * Used for build optimization and code transformation.
249
- * Default: ["."]
259
+ * Де розташований вихідний код.
260
+ * Використовується для оптимізації збірки та трансформації коду.
261
+ * За замовчуванням: ["."]
250
262
  */
251
263
  codeDir: ["src"],
252
264
 
253
265
  /**
254
- * Patterns to exclude from scanning.
255
- * Default: ['node_modules', '.intlayer', etc.]
266
+ * Шаблони, виключені зі сканування.
267
+ * За замовчуванням: ['node_modules', '.intlayer' тощо]
256
268
  */
257
269
  excludedPath: ["node_modules"],
258
270
 
259
271
  /**
260
- * Whether to watch for changes and rebuild dictionaries in development.
261
- * Default: true in development
272
+ * Чи відстежувати зміни та перебудовувати словники під час розробки.
273
+ * За замовчуванням: true в режимі розробки
262
274
  */
263
275
  watch: true,
264
276
 
265
277
  /**
266
- * Command to format newly created / updated .content files.
278
+ * Команда, що використовується для форматування новостворених / оновлених файлів .content.
267
279
  */
268
280
  formatCommand: 'npx prettier --write "{{file}}"',
269
281
  },
270
282
 
271
283
  /**
272
- * Visual Editor configuration.
284
+ * Конфігурація візуального редактора (Visual Editor).
273
285
  */
274
286
  editor: {
275
287
  /**
276
- * Whether the visual editor is enabled.
277
- * Default: false
288
+ * Чи ввімкнено візуальний редактор.
289
+ * За замовчуванням: false
278
290
  */
279
291
  enabled: true,
280
292
 
281
293
  /**
282
- * URL of your application for origin validation.
283
- * Default: ""
294
+ * URL вашого додатка для перевірки джерела (origin validation).
295
+ * За замовчуванням: ""
284
296
  */
285
297
  applicationURL: "http://localhost:3000",
286
298
 
287
299
  /**
288
- * Port for the local editor server.
289
- * Default: 8000
300
+ * Порт для локального сервера редактора.
301
+ * За замовчуванням: 8000
290
302
  */
291
303
  port: 8000,
292
304
 
293
305
  /**
294
- * Public URL for the editor.
295
- * Default: "http://localhost:8000"
306
+ * Публічний URL для редактора.
307
+ * За замовчуванням: "http://localhost:8000"
296
308
  */
297
309
  editorURL: "http://localhost:8000",
298
310
 
299
311
  /**
300
- * Intlayer CMS URL.
301
- * Default: "https://app.intlayer.org"
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 URL.
307
- * Default: "https://back.intlayer.org"
318
+ * URL Backend API.
319
+ * За замовчуванням: "https://back.intlayer.org"
308
320
  */
309
321
  backendURL: "https://back.intlayer.org",
310
322
 
311
323
  /**
312
- * Whether to enable real-time content synchronization.
313
- * Default: false
324
+ * Чи ввімкнути синхронізацію контенту в реальному часі.
325
+ * За замовчуванням: false
314
326
  */
315
327
  liveSync: true,
316
328
  },
317
329
 
318
330
  /**
319
- * AI-powered translation and generation settings.
331
+ * Параметри AI-перекладу та створення контенту.
320
332
  */
321
333
  ai: {
322
334
  /**
323
- * AI provider to use.
324
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
325
- * Default: 'openai'
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
- * Model to use from the selected provider.
342
+ * Модель вибраного провайдера для використання.
331
343
  */
332
344
  model: "gpt-4o",
333
345
 
334
346
  /**
335
- * Provider API key.
347
+ * API ключ провайдера.
336
348
  */
337
349
  apiKey: process.env.OPENAI_API_KEY,
338
350
 
339
351
  /**
340
- * Global context to guide the AI in generating translations.
352
+ * Глобальний контекст для спрямування AI при створенні перекладів.
341
353
  */
342
- applicationContext: "This is a travel booking application.",
354
+ applicationContext: "Це додаток для бронювання подорожей.",
343
355
 
344
356
  /**
345
- * Base URL for the AI API.
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": Менше токенів, менш послідовний, ніж JSON.
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
- * Build and optimization settings.
374
+ * Налаштування збірки та оптимізації.
363
375
  */
364
376
  build: {
365
377
  /**
366
- * Build execution mode.
367
- * - "auto": Automatic build during app build.
368
- * - "manual": Requires explicit build command.
369
- * Default: "auto"
378
+ * Режим виконання збірки.
379
+ * - "auto": Буде зібрано автоматично під час збірки додатка.
380
+ * - "manual": Потребує явної команди на збірку.
381
+ * За замовчуванням: "auto"
370
382
  */
371
383
  mode: "auto",
372
384
 
373
385
  /**
374
- * Whether to optimize the final bundle by pruning unused dictionaries.
375
- * Default: true in production
386
+ * Чи оптимізувати фінальний бандл шляхом видалення невикористовуваних словників.
387
+ * За замовчуванням: true у продуктовому середовищі
376
388
  */
377
389
  optimize: true,
378
390
 
379
391
  /**
380
- * Output format for generated dictionary files.
381
- * Default: ['esm', 'cjs']
392
+ * Формат виводу для згенерованих файлів словника.
393
+ * За замовчуванням: ['cjs', 'esm']
382
394
  */
383
- outputFormat: ["esm"],
395
+ outputFormat: ["cjs", "esm"],
384
396
 
385
397
  /**
386
- * Indicates if the build should check TypeScript types.
387
- * Default: false
398
+ * Визначає, чи повинна збірка перевіряти типи TypeScript.
399
+ * За замовчуванням: false
388
400
  */
389
401
  checkTypes: false,
390
402
  },
391
403
 
392
404
  /**
393
- * Logger configuration.
405
+ * Конфігурація логера (Logger).
394
406
  */
395
407
  log: {
396
408
  /**
397
- * Logging level.
398
- * - "default": Standard logging.
399
- * - "verbose": Detailed debug logging.
400
- * - "disabled": No logging.
401
- * Default: "default"
409
+ * Рівень логування.
410
+ * - "default": Стандартне логування.
411
+ * - "verbose": Поглиблене дебаг-логування.
412
+ * - "disabled": Вимкнути логування.
413
+ * За замовчуванням: "default"
402
414
  */
403
415
  mode: "default",
404
416
 
405
417
  /**
406
- * Prefix for all log messages.
407
- * Default: "[intlayer]"
418
+ * Префікс для всіх повідомлень логування.
419
+ * За замовчуванням: "[intlayer]"
408
420
  */
409
421
  prefix: "[intlayer]",
410
422
  },
411
423
 
412
424
  /**
413
- * System configuration (Advanced use cases)
425
+ * Системна конфігурація (Для розширеного використання)
414
426
  */
415
427
  system: {
416
428
  /**
417
- * Directory for storing localization dictionaries.
429
+ * Директорія для зберігання локалізованих словників.
418
430
  */
419
431
  dictionariesDir: ".intlayer/dictionary",
420
432
 
421
433
  /**
422
- * Directory for module augmentation.
434
+ * Директорія для розширення модулів TypeScript (module augmentation).
423
435
  */
424
436
  moduleAugmentationDir: ".intlayer/types",
425
437
 
426
438
  /**
427
- * Directory for storing unmerged dictionaries.
439
+ * Директорія для зберігання незлитих (unmerged) словників.
428
440
  */
429
441
  unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
430
442
 
431
443
  /**
432
- * Directory for storing dictionary types.
444
+ * Директорія для зберігання типів словників.
433
445
  */
434
446
  typesDir: ".intlayer/types",
435
447
 
436
448
  /**
437
- * Directory where main application files are stored.
449
+ * Директорія, де зберігаються основні файли додатка.
438
450
  */
439
451
  mainDir: ".intlayer/main",
440
452
 
441
453
  /**
442
- * Directory where the configuration files are stored.
454
+ * Директорія, де зберігаються конфігураційні файли.
443
455
  */
444
456
  configDir: ".intlayer/config",
445
457
 
446
458
  /**
447
- * Directory where the cache files are stored.
459
+ * Директорія, де зберігаються кеш-файли.
448
460
  */
449
461
  cacheDir: ".intlayer/cache",
450
462
  },
451
463
 
452
464
  /**
453
- * Compiler configuration (Advanced use cases)
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
- * Значення за замовчуванням : false
475
+ * За замовчуванням: false
464
476
  */
465
477
  enabled: true,
466
478
 
467
479
  /**
468
- * Визначає шлях до вихідних файлів. Замінює `outputDir`.
480
+ * Визначає шлях для вихідних файлів. Замінює `outputDir`.
469
481
  *
470
- * - Шляхи, що починаються з `./`, розв'язуються відносно каталогу компонента.
471
- * - Шляхи, що починаються з `/`, розв'язуються відносно кореня проєкту (`baseDir`).
482
+ * - Шляхи з `./` розв'язуються відносно директорії компонента.
483
+ * - Шляхи з `/` розв'язуються відносно кореня проєкту (`baseDir`).
472
484
  *
473
- * - Включення змінної `{{locale}}` у шлях дозволить генерувати словники, розділені за локалями.
485
+ * - Додавання змінної `{{locale}}` у шлях активує створення окремих словників для кожної мови.
474
486
  *
475
- * Приклади:
487
+ * Приклад:
476
488
  * ```ts
477
489
  * {
478
- * // Створює багатомовні файли .content.ts поруч із компонентом
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
- * // Створює централізовані JSON-файли за локалями в корені проєкту
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
- * Вставляти лише вміст у згенерований файл. Корисно для JSON-виводів i18next або ICU MessageFormat для кожної локалі.
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
- * Custom schemas to validate the dictionaries content.
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 configuration.
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
- Нижченаведені розділи описують різні параметри конфігурації, доступні в Intlayer.
558
+ Наступні розділи описують різні параметри конфігурації, доступні в Intlayer.
545
559
 
546
560
  ---
547
561
 
548
- ### Налаштування інтернаціоналізації
549
-
550
- Визначає параметри, пов'язані з інтернаціоналізацією, включно з доступними локалями та локаллю за замовчуванням для застосунку.
551
-
552
- #### Властивості
553
-
554
- - **locales**:
555
- - _Тип_: `string[]`
556
- - _За замовчуванням_: `['en']`
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
- #### Properties
589
-
590
- - **applicationURL**:
591
- - _Тип_: `string`
592
- - _За замовчуванням_: `http://localhost:3000`
593
- - _Опис_: URL додатка. Використовується для обмеження origin редактора з міркувань безпеки.
594
- - _Приклад_:
595
- - `'http://localhost:3000'`
596
- - `'https://example.com'`
597
- - `process.env.INTLAYER_EDITOR_URL`
598
- - _Примітка_: URL додатка. Використовується для обмеження origin редактора з міркувань безпеки. Якщо встановлено в `'*'`, редактор доступний з будь-якого origin.
599
-
600
- - **port**:
601
- - _Тип_: `number`
602
- - _За замовчуванням_: `8000`
603
- - _Опис_: Порт, який використовується сервером візуального редактора.
604
-
605
- - **editorURL**:
606
- - _Тип_: `string`
607
- - _За замовчуванням_: `'http://localhost:8000'`
608
- - _Опис_: URL сервера редактора. Використовується для обмеження origin редактора з міркувань безпеки.
609
- - `'http://localhost:3000'`
610
- - `'https://example.com'`
611
- - `process.env.INTLAYER_EDITOR_URL`
612
- - _Примітка_: URL сервера редактора, до якого звертається додаток. Використовується для обмеження origins, які можуть взаємодіяти з додатком з міркувань безпеки. Якщо встановлено `'*'`, редактор доступний з будь-якого origin. Має бути вказаний, якщо змінено порт або якщо редактор розміщено на іншому домені.
613
-
614
- - **cmsURL**:
615
- - _Тип_: `string`
616
- - _Типово_: `'https://intlayer.org'`
617
- - _Опис_: URL Intlayer CMS.
618
- - _Приклад_: `'https://intlayer.org'`
619
- - _Примітка_: URL Intlayer CMS.
620
-
621
- - **backendURL**:
622
- - _Тип_: `string`
623
- - _Типово_: `https://back.intlayer.org`
624
- - _Опис_: URL backend-сервера.
625
- - _Приклад_: `http://localhost:4000`
626
-
627
- - **enabled**:
628
- - _Тип_: `boolean`
629
- - _За замовчуванням_: `true`
630
- - _Опис_: Вказує, чи додаток взаємодіє з візуальним редактором.
631
- - _Приклад_: `process.env.NODE_ENV !== 'production'`
632
- - _Примітка_: Якщо `true`, редактор зможе взаємодіяти з додатком. Якщо `false`, редактор не зможе взаємодіяти з додатком. У будь-якому випадку редактор може бути ввімкнений лише візуальним редактором. Вимкнення редактора для окремих середовищ, спосіб підвищити безпеку.
633
-
634
- - **clientId**:
635
- - _Тип_: `string` | `undefined`
636
- - _За замовчуванням_: `undefined`
637
- - _Опис_: clientId і clientSecret дозволяють пакетам intlayer автентифікуватися з бекендом за допомогою автентифікації oAuth2. Access token використовується для автентифікації користувача, пов’язаного з проєктом. Щоб отримати access token, перейдіть на https://app.intlayer.org/project та створіть обліковий запис.
638
- - _Приклад_: `true`
639
- - _Примітка_: Важливо: clientId та clientSecret мають зберігатися в секреті і не розголошуватися публічно. Переконайтеся, що вони зберігаються у безпечному місці, наприклад у змінних оточення.
640
-
641
- - **clientSecret**:
642
- - _Тип_: `string` | `undefined`
643
- - _Типово_: `undefined`
644
- - _Опис_: clientId та clientSecret дозволяють пакетам intlayer автентифікуватися з бекендом за допомогою oAuth2. Токен доступу використовується для автентифікації користувача, пов’язаного з проєктом. Щоб отримати токен доступу, перейдіть на https://app.intlayer.org/project і створіть обліковий запис.
645
- - _Приклад_: `true`
646
- - _Примітка_: Важливо: clientId та clientSecret слід зберігати в таємниці й не розголошувати публічно. Переконайтеся, що зберігаєте їх у безпечному місці, наприклад у environment variables.
647
-
648
- - **dictionaryPriorityStrategy**:
649
- - _Тип_: `string`
650
- - _Типово_: `'local_first'`
651
- - _Опис_: Стратегія пріоритету словників у разі наявності як локальних, так і віддалених словників. Якщо встановлено `'distant_first'`, застосунок віддаватиме пріоритет віддаленим словникам над локальними. Якщо встановлено `'local_first'`, застосунок віддаватиме пріоритет локальним словникам над віддаленими.
652
- - _Приклад_: `'distant_first'`
653
-
654
- - **liveSync**:
655
- - _Тип_: `boolean`
656
- - _Типово_: `false`
657
- - _Опис_: Вказує, чи має сервер застосунку виконувати hot reload контенту застосунку при виявленні змін у CMS / Visual Editor / Backend.
658
- - _Приклад_: `true`
659
- - _Примітка_: Наприклад, коли додається або оновлюється новий словник, застосунок оновить контент, що відображається на сторінці.
660
- - _Примітка_: Live sync потребує винесення вмісту застосунку на інший сервер. Це означає, що це може трохи вплинути на продуктивність застосунку. Щоб обмежити цей вплив, рекомендуємо розміщувати застосунок і live sync сервер на одній машині. Також комбінація live sync та `optimize` може спричинити значну кількість запитів до live sync сервера. Залежно від вашої інфраструктури, рекомендуємо протестувати обидві опції та їх комбінацію.
661
-
662
- - **liveSyncPort**:
663
- - _Тип_: `number`
664
- - _За замовчуванням_: `4000`
665
- - _Опис_: Порт live sync сервера.
666
- - _Приклад_: `4000`
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 &#124; undefined` | Дозволяє пакетам intlayer проходити автентифікацію на бекенді за допомогою oAuth2. Для отримання токена доступу перейдіть на [intlayer.org/project](https://app.intlayer.org/project). За замовчуванням: `undefined` | | Тримайте в секреті; зберігайте в змінних оточення. |
588
+ | `clientSecret` | `string &#124; 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' &#124; 'prefix-all' &#124; 'no-prefix' &#124; '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 &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; 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' &#124; 'lax' &#124; 'none'` | Політика SameSite. |
648
+ | `expires` | `Date &#124; number` | Дата закінчення терміну дії або кількість днів. За замовчуванням: `undefined` |
649
+
650
+ #### Атрибути зберігання мови (Locale Storage Attributes)
651
+
652
+ При використанні localStorage або sessionStorage:
653
+
654
+ | Поле | Тип | Опис |
655
+ | ------ | ---------------------------------------- | ------------------------------------------------------------- |
656
+ | `type` | `'localStorage' &#124; 'sessionStorage'` | Тип зберігання. |
657
+ | `name` | `string` | Назва ключа зберігання. За замовчуванням: `'INTLAYER_LOCALE'` |
780
658
 
781
659
  #### Приклади конфігурації
782
660
 
783
- Нижче наведені поширені приклади конфігурації для нової структури маршрутизації v7:
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
- headerName: "x-intlayer-locale",
676
+ basePath: "",
799
677
  },
800
678
  };
801
679
 
802
680
  export default config;
803
681
  ```
804
682
 
805
- **Конфігурація, сумісна з GDPR**:
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
- - **watch**:
884
- - _Тип_: `boolean`
885
- - _За замовчуванням_: `process.env.NODE_ENV === 'development'`
886
- - _Опис_: Вказує, чи Intlayer має відслідковувати зміни в файлах декларації контенту в додатку, щоб перебудувати відповідні словники.
807
+ ---
887
808
 
888
- - **fileExtensions**:
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
- - **contentDir**:
896
- - _Тип_: `string[]`
897
- - _За замовчуванням_: `['.']`
898
- - _Приклад_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
899
- - _Опис_: Шлях до каталогу, де зберігаються файли визначення контенту (`.content.*`).
900
- - _Примітка_: Використовується для відстеження файлів контенту для перебудови словників.
811
+ Налаштування, що контролюють операції зі словниками, включаючи поведінку автоматичного заповнення та створення контенту.
901
812
 
902
- - **codeDir**:
903
- - _Тип_: `string[]`
904
- - _За замовчуванням_: `['.']`
905
- - _Приклад_: `['src', '../../ui-library']`
906
- - _Опис_: Шлях до каталогу, де зберігається код, відносно базового каталогу.
907
- - _Примітка_: Використовується для відстеження файлів коду для перетворення (обрізання, оптимізація). Тримання цього окремо від `contentDir` може покращити продуктивність збірки, уникаючи непотрібного сканування файлів контенту.
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 &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; FilePathPattern>>` | Контролює, як генеруються вихідні файли автоматичного заповнення (AI-переклад). За замовчуванням: `true` | Див. приклад нижче | `true`: шлях за замовчуванням (той самий файл, що й джерело). `false`: вимкнено. Шаблони рядків/функцій генерують файли за мовами. Об'єкт за мовами: кожна мова відповідає своєму шаблону; `false` пропускає цю мову. Включення змінної `{{locale}}` активує генерацію за мовами. `fill` на рівні словника завжди має пріоритет над цією глобальною конфігурацією. |
823
+ | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | Контролює спосіб імпорту словників. За замовчуванням: `'static'` | `'dynamic'` | `'static'`: Статично імпортується. `'dynamic'`: Динамічно імпортується через 'Suspense'. `'fetch'`: Динамічно отримується через 'Live Sync API'. Не впливає на `getIntlayer`, `getDictionary`, `useDictionary` тощо. |
824
+ | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; 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
- Налаштування, пов'язані з внутрішніми шляхами та вихідними результатами Intlayer. Ці налаштування зазвичай є внутрішніми і не повинні змінюватися користувачем.
914
-
915
- #### Властивості
916
-
917
- - **baseDir**:
918
- - _Тип_: `string`
919
- - _За замовчуванням_: `process.cwd()`
920
- - _Опис_: Базова директорія проекту.
921
- - _Приклад_: `'/path/to/project'`
922
- - _Примітка_: Використовується для визначення всіх директорій, пов'язаних з Intlayer.
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' &#124; 'toon'` | Визначає, як надсилати дані до AI. За замовчуванням: `'json'` | `'json'` | `'json'`: більш надійно та точно. `'toon'`: споживає менше токенів, але може бути менш стабільним. |
1000
853
 
1001
854
  ---
1002
855
 
1003
- ### Конфігурація логера
1004
-
1005
- Налаштування, що керують логером, включно з префіксом, який слід використовувати.
1006
-
1007
- #### Властивості
1008
-
1009
- - **mode**:
1010
- - _Тип_: `string`
1011
- - _За замовчуванням_: `default`
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' &#124; 'manual'` | Визначає, чи повинен Intlayer запускатися автоматично під час етапів pre-build додатка. За замовчуванням: `'auto'` | | |
863
+ | `optimize` | `boolean` | Визначає, чи повинні скомпільовані словники бути оптимізовані для рантайму. За замовчуванням: `true` у продуктовому середовищі | | |
864
+ | `outputFormat` | `('cjs' &#124; 'esm')[]` | Формат виводу для згенерованих файлів словника. За замовчуванням: `['cjs', 'esm']` | | |
865
+ | `checkTypes` | `boolean` | Визначає, чи має Intlayer перевіряти типи в згенерованих файлах. За замовчуванням: `false` | | |
1161
866
 
1162
867
  ---
1163
868
 
1164
- ### Конфігурація компілятора
1165
-
1166
- Налаштування, що керують компілятором Intlayer, який витягує словники безпосередньо з ваших компонентів.
1167
-
1168
- #### Властивості
1169
-
1170
- - **enabled**:
1171
- - _Тип_: `boolean | 'build-only'`
1172
- - _За замовчуванням_: `true`
1173
- - _Опис_: Вказує, чи повинен бути ввімкнений компілятор для витягування словників.
1174
- - _Приклад_: `'build-only'`
1175
- - _Примітка_: Встановлення значення `'build-only'` призведе до пропуску компілятора під час режиму розробки для прискорення часу запуску. Він буде запускатися лише для команд збірки.
1176
-
1177
- - **dictionaryKeyPrefix**:
1178
- - _Тип_: `string`
1179
- - _За замовчуванням_: `''`
1180
- - _Опис_: Префікс для витягнутих ключів словника.
1181
- - _Приклад_: `'my-key-'`
1182
- - _Примітка_: Під час витягування словників ключ генерується на основі назви файлу. Цей префікс додається до згенерованого ключа, щоб запобігти конфліктам.
1183
-
1184
- - **saveComponents**:
1185
- - _Тип_: `boolean`
1186
- - _За замовчуванням_: `false`
1187
- - _Опис_: Вказує, чи повинні зберігатися компоненти після їх трансформації.
1188
- - _Примітка_: Якщо встановлено значення true, компілятор замінить оригінальні файли трансформованими. Таким чином, компілятор можна запустити лише один раз для трансформації застосунку, а потім видалити його.
1189
-
1190
- - **transformPattern**:
1191
- - _Тип_: `string | string[]`
1192
- - _За замовчуванням_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
1193
- - _Опис_: Шаблони, що визначають, які файли слід обходити під час оптимізації.
1194
- - _Приклад_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
1195
- - _Примітка_: Використовуйте це, щоб обмежити оптимізацію релевантними файлами коду та покращити продуктивність збірки.
1196
-
1197
- - **excludePattern**:
1198
- - _Тип_: `string | string[]`
1199
- - _За замовчуванням_: `['**/node_modules/**']`
1200
- - _Опис_: Шаблони, що визначають, які файли слід виключити під час оптимізації.
1201
- - _Приклад_: `['**/node_modules/**', '!**/node_modules/react/**']`
1202
-
1203
- - **output**:
1204
- - _Тип_: `FilePathPattern`
1205
- - _Типово_: `undefined`
1206
- - _Опис_: Визначає шлях до вихідних файлів. Замінює `outputDir`. Підтримує динамічні змінні через рядкові шаблони або функцію. Підтримувані змінні: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}`, та `{{componentDirPath}}`.
1207
- - _Примітка_: Шляхи, що починаються з `./`, розв'язуються відносно каталогу компонента. Шляхи, що починаються з `/`, розв'язуються відносно кореня проєкту (`baseDir`).
1208
- - _Примітка_: Включення змінної `{{locale}}` у шлях дозволить генерувати словники, розділені за локалями.
1209
- - _Приклад_:
1210
- - **Багатомовний файл поруч із компонентом**:
1211
- - Рядок: `'./{{fileName}}{{extension}}'`
1212
- - Функція: `({ fileName, extension }) => \`./${fileName}${extension}\``
1213
-
1214
- - **Централізовані JSON-файли для кожної локалі**:
1215
- - Рядок: `'/locales/{{locale}}/{{key}}.content.json'`
1216
- - Функція: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
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 &#124; 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' &#124; 'verbose' &#124; '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 для активації. |