@intlayer/docs 8.4.6 → 8.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/docs/ar/configuration.md +300 -264
  12. package/docs/cs/configuration.md +958 -0
  13. package/docs/de/configuration.md +285 -249
  14. package/docs/en/configuration.md +115 -137
  15. package/docs/en-GB/configuration.md +272 -237
  16. package/docs/es/configuration.md +161 -125
  17. package/docs/fr/configuration.md +137 -101
  18. package/docs/it/configuration.md +294 -259
  19. package/docs/ja/configuration.md +269 -233
  20. package/docs/nl/configuration.md +958 -0
  21. package/docs/pt/configuration.md +311 -275
  22. package/docs/ru/configuration.md +287 -272
  23. package/docs/tr/configuration.md +265 -229
  24. package/package.json +6 -6
  25. package/docs/bn/configuration.md +0 -922
  26. package/docs/hi/configuration.md +0 -922
  27. package/docs/id/configuration.md +0 -922
  28. package/docs/ko/configuration.md +0 -922
  29. package/docs/pl/configuration.md +0 -922
  30. package/docs/uk/configuration.md +0 -922
  31. package/docs/ur/configuration.md +0 -922
  32. package/docs/vi/configuration.md +0 -922
  33. package/docs/zh/configuration.md +0 -922
@@ -2,13 +2,13 @@
2
2
  createdAt: 2024-08-13
3
3
  updatedAt: 2026-03-20
4
4
  title: Конфигурация (Configuration)
5
- description: Узнайте, как настроить Intlayer для вашего приложения. Поймите различные настройки и опции, доступные для настройки Intlayer в соответствии с вашими потребностями.
5
+ description: Узнайте, как настроить Intlayer для вашего приложения. Разберитесь в различных параметрах и опциях, доступных для настройки Intlayer в соответствии с вашими потребностями.
6
6
  keywords:
7
7
  - Конфигурация
8
8
  - Настройки
9
- - Кастомизация
9
+ - Персонализация
10
10
  - Intlayer
11
- - Опции
11
+ - Параметры
12
12
  slugs:
13
13
  - doc
14
14
  - concept
@@ -16,76 +16,76 @@ slugs:
16
16
  history:
17
17
  - version: 8.4.0
18
18
  date: 2026-03-20
19
- changes: Добавлена нотация объектов по локалям для 'compiler.output' и 'dictionary.fill'
19
+ changes: Добавлена объектная нотация для каждого языка для 'compiler.output' и 'dictionary.fill'
20
20
  - version: 8.3.0
21
21
  date: 2026-03-11
22
- changes: Перенесен 'baseDir' из конфигурации 'content' в конфигурацию 'system'
22
+ changes: 'baseDir' перенесен из конфигурации 'content' в конфигурацию 'system'
23
23
  - version: 8.2.0
24
24
  date: 2026-03-09
25
- changes: Обновлены параметры компилятора (compiler), добавлена поддержка для 'output' и 'noMetadata'
25
+ changes: Обновлены опции компилятора, добавлена поддержка 'output' и 'noMetadata'
26
26
  - version: 8.1.7
27
27
  date: 2026-02-25
28
- changes: Обновлены параметры компилятора
28
+ changes: Обновлены опции компилятора
29
29
  - version: 8.1.5
30
30
  date: 2026-02-23
31
- changes: Добавлен параметр компилятора 'build-only' и префикс словаря
31
+ changes: Добавлена опция компилятора 'build-only' и префикс словаря
32
32
  - version: 8.0.6
33
33
  date: 2026-02-12
34
34
  changes: Добавлена поддержка провайдеров Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face и Together.ai
35
35
  - version: 8.0.5
36
36
  date: 2026-02-06
37
- changes: Добавлен `dataSerialization` в конфигурацию AI
37
+ changes: Добавлен `dataSerialization` в конфигурацию ИИ
38
38
  - version: 8.0.0
39
39
  date: 2026-01-24
40
- changes: Переименован режим импорта `live` в `fetch` для лучшего описания базового механизма.
40
+ changes: Режим импорта `live` переименован в `fetch` для лучшего описания базового механизма.
41
41
  - version: 8.0.0
42
42
  date: 2026-01-22
43
- changes: Перенесена конфигурация сборки `importMode` в конфигурацию `dictionary`.
43
+ changes: Конфигурация сборки `importMode` перенесена в конфигурацию `dictionary`.
44
44
  - version: 8.0.0
45
45
  date: 2026-01-22
46
- changes: Добавлен параметр `rewrite` в конфигурацию маршрутизации
46
+ changes: Добавлена опция `rewrite` в конфигурацию маршрутизации
47
47
  - version: 8.0.0
48
48
  date: 2026-01-18
49
- changes: Разделена системная конфигурация и конфигурация контента. Внутренние пути перемещены в свойство `system`. Добавлен `codeDir` для разделения файлов контента и преобразования кода.
49
+ changes: Конфигурация системы отделена от конфигурации контента. Внутренние пути перенесены в свойство `system`. Добавлен `codeDir` для отделения файлов контента от преобразования кода.
50
50
  - version: 8.0.0
51
51
  date: 2026-01-18
52
- changes: Добавлены параметры словаря `location` и `schema`
52
+ changes: Добавлены опции словаря `location` и `schema`
53
53
  - version: 7.5.1
54
54
  date: 2026-01-10
55
55
  changes: Добавлена поддержка форматов файлов JSON5 и JSONC
56
56
  - version: 7.5.0
57
57
  date: 2025-12-17
58
- changes: Добавлен параметр `buildMode`
58
+ changes: Добавлена опция `buildMode`
59
59
  - version: 7.0.0
60
60
  date: 2025-10-25
61
61
  changes: Добавлена конфигурация `dictionary`
62
62
  - version: 7.0.0
63
63
  date: 2025-10-21
64
- changes: Заменен `middleware` конфигурацией маршрутизации `routing`
64
+ changes: `middleware` заменен на конфигурацию `routing`
65
65
  - version: 7.0.0
66
66
  date: 2025-10-12
67
- changes: Добавлен параметр `formatCommand`
67
+ changes: Добавлена опция `formatCommand`
68
68
  - version: 6.2.0
69
69
  date: 2025-10-12
70
- changes: Обновлен параметр `excludedPath`
70
+ changes: Обновлена опция `excludedPath`
71
71
  - version: 6.0.2
72
72
  date: 2025-09-23
73
- changes: Добавлен параметр `outputFormat`
73
+ changes: Добавлена опция `outputFormat`
74
74
  - version: 6.0.0
75
75
  date: 2025-09-21
76
- changes: Удалено поле `dictionaryOutput` и поле `i18nextResourcesDir`
76
+ changes: Удалены поля `dictionaryOutput` и `i18nextResourcesDir`
77
77
  - version: 6.0.0
78
78
  date: 2025-09-16
79
79
  changes: Добавлен режим импорта `live`
80
80
  - version: 6.0.0
81
81
  date: 2025-09-04
82
- changes: Поле `hotReload` заменено на `liveSync`, добавлены поля `liveSyncPort` и `liveSyncURL`
82
+ changes: Поле `hotReload` заменено на `liveSync` и добавлены поля `liveSyncPort`, `liveSyncURL`
83
83
  - version: 5.6.1
84
84
  date: 2025-07-25
85
- changes: Поле `activateDynamicImport` заменено параметром `importMode`
85
+ changes: `activateDynamicImport` заменен на опцию `importMode`
86
86
  - version: 5.6.0
87
87
  date: 2025-07-13
88
- changes: Изменен контентный каталог по умолчанию `contentDir` с `['src']` на `['.']`
88
+ changes: Стандартный `contentDir` изменен с `['src']` на `['.']`
89
89
  - version: 5.5.11
90
90
  date: 2025-06-29
91
91
  changes: Добавлены команды `docs`
@@ -95,7 +95,7 @@ history:
95
95
 
96
96
  ## Обзор
97
97
 
98
- Конфигурационные файлы Intlayer позволяют настраивать различные аспекты плагина, такие как интернационализация (internationalization), промежуточное ПО (middleware) и обработка контента. Эта документация содержит подробное описание каждого свойства конфигурации.
98
+ Файлы конфигурации Intlayer позволяют настраивать различные аспекты плагина, такие как интернационализация, middleware и управление контентом. Этот документ содержит подробное описание каждого свойства в конфигурации.
99
99
 
100
100
  ---
101
101
 
@@ -105,9 +105,9 @@ history:
105
105
 
106
106
  ---
107
107
 
108
- ## Поддерживаемые форматы конфигурационных файлов
108
+ ## Поддержка форматов конфигурационных файлов
109
109
 
110
- Intlayer принимает форматы конфигурационных файлов JSON, JS, MJS и TS:
110
+ Intlayer принимает форматы файлов конфигурации JSON, JS, MJS и TS:
111
111
 
112
112
  - `intlayer.config.ts`
113
113
  - `intlayer.config.js`
@@ -128,7 +128,7 @@ import { nextjsRewrite } from "intlayer/routing";
128
128
  import { z } from "zod";
129
129
 
130
130
  /**
131
- * Пример конфигурационного файла Intlayer со всеми доступными параметрами.
131
+ * Пример конфигурационного файла Intlayer со всеми доступными опциями.
132
132
  */
133
133
  const config: IntlayerConfig = {
134
134
  /**
@@ -136,29 +136,29 @@ const config: IntlayerConfig = {
136
136
  */
137
137
  internationalization: {
138
138
  /**
139
- * Список локалей (locales), поддерживаемых в приложении.
139
+ * Список поддерживаемых языков в приложении.
140
140
  * По умолчанию: [Locales.ENGLISH]
141
141
  */
142
142
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
143
143
 
144
144
  /**
145
- * Список обязательных локалей, которые должны быть определены в каждом словаре.
146
- * Если пуст, все локали обязательны в режиме `strict`.
145
+ * Список обязательных языков, которые должны быть определены в каждом словаре.
146
+ * Если пусто, все языки обязательны в режиме `strict`.
147
147
  * По умолчанию: []
148
148
  */
149
149
  requiredLocales: [Locales.ENGLISH],
150
150
 
151
151
  /**
152
152
  * Уровень строгости для интернационализированного контента.
153
- * - "strict": Ошибка, если любая объявленная локаль отсутствует или не объявлена.
154
- * - "inclusive": Предупреждение, если объявленная локаль отсутствует.
155
- * - "loose": Принимает любую существующую локаль.
153
+ * - "strict": Ошибка, если объявленный язык отсутствует или не объявлен.
154
+ * - "inclusive": Предупреждение, если объявленный язык отсутствует.
155
+ * - "loose": Принимает любой существующий язык.
156
156
  * По умолчанию: "inclusive"
157
157
  */
158
158
  strictMode: "inclusive",
159
159
 
160
160
  /**
161
- * Локаль по умолчанию, используемая в качестве резервной, если запрошенная локаль не найдена.
161
+ * Язык по умолчанию, используемый как запасной, если запрошенный язык не найден.
162
162
  * По умолчанию: Locales.ENGLISH
163
163
  */
164
164
  defaultLocale: Locales.ENGLISH,
@@ -170,66 +170,66 @@ const config: IntlayerConfig = {
170
170
  dictionary: {
171
171
  /**
172
172
  * Управляет способом импорта словарей.
173
- * - "static": Статически импортируется во время сборки.
174
- * - "dynamic": Динамически импортируется с использованием Suspense.
175
- * - "fetch": Динамически извлекается через Live Sync API.
173
+ * - "static": Статический импорт во время сборки.
174
+ * - "dynamic": Динамический импорт с использованием Suspense.
175
+ * - "fetch": Динамическое получение через API Live Sync.
176
176
  * По умолчанию: "static"
177
177
  */
178
178
  importMode: "static",
179
179
 
180
180
  /**
181
- * Стратегия автоматического заполнения отсутствующих переводов с помощью AI.
182
- * Может быть логическим значением или шаблоном пути для сохранения заполненного контента.
181
+ * Стратегия автоматического заполнения недостающих переводов с помощью ИИ.
182
+ * Может быть логическим значением или шаблоном пути для хранения заполненного контента.
183
183
  * По умолчанию: true
184
184
  */
185
185
  fill: true,
186
186
 
187
187
  /**
188
188
  * Физическое расположение файлов словарей.
189
- * - "local": Хранится в локальной файловой системе.
190
- * - "remote": Хранится в Intlayer CMS.
191
- * - "hybrid": Хранится как локально, так и в Intlayer CMS.
192
- * - "plugin" (или любая пользовательская строка): Предоставляется плагином или пользовательским источником.
189
+ * - "local": Хранятся в локальной файловой системе.
190
+ * - "remote": Хранятся в Intlayer CMS.
191
+ * - "hybrid": Хранятся и локально, и в Intlayer CMS.
192
+ * - "plugin" (или любая кастомная строка): Предоставляется плагином или кастомным источником.
193
193
  * По умолчанию: "local"
194
194
  */
195
195
  location: "local",
196
196
 
197
197
  /**
198
- * Должен ли контент автоматически преобразовываться (например, Markdown в HTML).
198
+ * Нужно ли автоматически преобразовывать контент (например, Markdown в HTML).
199
199
  * По умолчанию: false
200
200
  */
201
201
  contentAutoTransformation: false,
202
202
  },
203
203
 
204
204
  /**
205
- * Конфигурация маршрутизации и промежуточного ПО.
205
+ * Конфигурация маршрутизации и middleware.
206
206
  */
207
207
  routing: {
208
208
  /**
209
- * Стратегия маршрутизации локалей.
210
- * - "prefix-no-default": Добавляет префикс ко всем локалям, кроме локали по умолчанию (например, /dashboard, /fr/dashboard).
211
- * - "prefix-all": Добавляет префикс ко всем локалям (например, /en/dashboard, /fr/dashboard).
212
- * - "no-prefix": Локаль в URL отсутствует.
213
- * - "search-params": Использует ?locale=...
209
+ * Стратегия маршрутизации по языкам.
210
+ * - "prefix-no-default": Префикс для всех языков, кроме основного (например, /dashboard, /fr/dashboard).
211
+ * - "prefix-all": Префикс для всех языков (например, /en/dashboard, /fr/dashboard).
212
+ * - "no-prefix": Отсутствие языка в URL.
213
+ * - "search-params": Использование ?locale=...
214
214
  * По умолчанию: "prefix-no-default"
215
215
  */
216
216
  mode: "prefix-no-default",
217
217
 
218
218
  /**
219
- * Где хранить выбранную пользователем локаль.
220
- * Параметры: 'cookie', 'localStorage', 'sessionStorage', 'header' или их массив.
219
+ * Где хранить выбранный пользователем язык.
220
+ * Опции: 'cookie', 'localStorage', 'sessionStorage', 'header' или их массив.
221
221
  * По умолчанию: ['cookie', 'header']
222
222
  */
223
223
  storage: ["cookie", "header"],
224
224
 
225
225
  /**
226
- * Базовый путь для URL приложения.
226
+ * Базовый путь для URL-адресов приложения.
227
227
  * По умолчанию: ""
228
228
  */
229
229
  basePath: "",
230
230
 
231
231
  /**
232
- * Пользовательские правила перезаписи (rewrite) URL для конкретных путей в зависимости от локали.
232
+ * Пользовательские правила перезаписи URL для путей на конкретных языках.
233
233
  */
234
234
  rewrite: nextjsRewrite({
235
235
  "/[locale]/about": {
@@ -240,48 +240,48 @@ const config: IntlayerConfig = {
240
240
  },
241
241
 
242
242
  /**
243
- * Настройки, касающиеся поиска и обработки файлов контента.
243
+ * Настройки поиска и обработки файлов контента.
244
244
  */
245
245
  content: {
246
246
  /**
247
247
  * Расширения файлов для сканирования словарей.
248
- * По умолчанию: ['.content.ts', '.content.js', '.content.json' и др.]
248
+ * По умолчанию: ['.content.ts', '.content.js', '.content.json' и т.д.]
249
249
  */
250
250
  fileExtensions: [".content.ts", ".content.js", ".content.json"],
251
251
 
252
252
  /**
253
- * Каталоги, в которых расположены файлы .content.
253
+ * Директории, где находятся файлы .content.
254
254
  * По умолчанию: ["."]
255
255
  */
256
256
  contentDir: ["src"],
257
257
 
258
258
  /**
259
- * Где находится исходный код.
259
+ * Директория с исходным кодом.
260
260
  * Используется для оптимизации сборки и преобразования кода.
261
261
  * По умолчанию: ["."]
262
262
  */
263
263
  codeDir: ["src"],
264
264
 
265
265
  /**
266
- * Паттерны, исключаемые из сканирования.
267
- * По умолчанию: ['node_modules', '.intlayer' и др.]
266
+ * Шаблоны для исключения из сканирования.
267
+ * По умолчанию: ['node_modules', '.intlayer' и т.д.]
268
268
  */
269
269
  excludedPath: ["node_modules"],
270
270
 
271
271
  /**
272
- * Отслеживать ли изменения и пересобирать словари во время разработки.
272
+ * Нужно ли отслеживать изменения и пересобирать словари во время разработки.
273
273
  * По умолчанию: true в режиме разработки
274
274
  */
275
275
  watch: true,
276
276
 
277
277
  /**
278
- * Команда, используемая для форматирования вновь созданных / обновленных файлов .content.
278
+ * Команда для форматирования вновь созданных / обновленных файлов .content.
279
279
  */
280
280
  formatCommand: 'npx prettier --write "{{file}}"',
281
281
  },
282
282
 
283
283
  /**
284
- * Конфигурация визуального редактора (Visual Editor).
284
+ * Конфигурация визуального редактора.
285
285
  */
286
286
  editor: {
287
287
  /**
@@ -291,7 +291,7 @@ const config: IntlayerConfig = {
291
291
  enabled: true,
292
292
 
293
293
  /**
294
- * URL вашего приложения для проверки источника (origin validation).
294
+ * URL вашего приложения для валидации источника (origin).
295
295
  * По умолчанию: ""
296
296
  */
297
297
  applicationURL: "http://localhost:3000",
@@ -315,31 +315,31 @@ const config: IntlayerConfig = {
315
315
  cmsURL: "https://app.intlayer.org",
316
316
 
317
317
  /**
318
- * URL Backend API.
318
+ * URL серверного API.
319
319
  * По умолчанию: "https://back.intlayer.org"
320
320
  */
321
321
  backendURL: "https://back.intlayer.org",
322
322
 
323
323
  /**
324
- * Включить ли синхронизацию контента в реальном времени.
324
+ * Нужно ли включать синхронизацию контента в реальном времени.
325
325
  * По умолчанию: false
326
326
  */
327
327
  liveSync: true,
328
328
  },
329
329
 
330
330
  /**
331
- * Настройки перевода и создания контента на базе AI.
331
+ * Настройки переводов и генерации с помощью ИИ.
332
332
  */
333
333
  ai: {
334
334
  /**
335
- * Провайдер AI для использования.
336
- * Параметры: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
335
+ * Используемый ИИ-провайдер.
336
+ * Опции: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
337
337
  * По умолчанию: 'openai'
338
338
  */
339
339
  provider: "openai",
340
340
 
341
341
  /**
342
- * Модель выбранного провайдера для использования.
342
+ * Используемая модель выбранного провайдера.
343
343
  */
344
344
  model: "gpt-4o",
345
345
 
@@ -349,21 +349,21 @@ const config: IntlayerConfig = {
349
349
  apiKey: process.env.OPENAI_API_KEY,
350
350
 
351
351
  /**
352
- * Глобальный контекст для руководства AI при создании переводов.
352
+ * Глобальный контекст для направления ИИ при генерации переводов.
353
353
  */
354
354
  applicationContext: "Это приложение для бронирования путешествий.",
355
355
 
356
356
  /**
357
- * Базовый URL для AI API.
357
+ * Базовый URL для ИИ API.
358
358
  */
359
359
  baseURL: "http://localhost:3000",
360
360
 
361
361
  /**
362
- * Сериализация данных (Data Serialization)
362
+ * Сериализация данных
363
363
  *
364
- * Параметры:
364
+ * Опции:
365
365
  * - "json": По умолчанию, надежно; потребляет больше токенов.
366
- * - "toon": Потребляет меньше токенов, может быть не таким последовательным, как JSON.
366
+ * - "toon": Меньше токенов, менее стабильно, чем JSON.
367
367
  *
368
368
  * По умолчанию: "json"
369
369
  */
@@ -376,101 +376,101 @@ const config: IntlayerConfig = {
376
376
  build: {
377
377
  /**
378
378
  * Режим выполнения сборки.
379
- * - "auto": Собирается автоматически во время сборки приложения.
379
+ * - "auto": Автоматическая сборка во время сборки приложения.
380
380
  * - "manual": Требуется явная команда сборки.
381
381
  * По умолчанию: "auto"
382
382
  */
383
383
  mode: "auto",
384
384
 
385
385
  /**
386
- * Оптимизировать ли финальный бандл, удаляя неиспользуемые словари.
386
+ * Нужно ли оптимизировать итоговый бандл, удаляя неиспользуемые словари.
387
387
  * По умолчанию: true в продакшене
388
388
  */
389
389
  optimize: true,
390
390
 
391
391
  /**
392
- * Формат вывода сгенерированных файлов словарей.
392
+ * Формат вывода для сгенерированных файлов словарей.
393
393
  * По умолчанию: ['cjs', 'esm']
394
394
  */
395
395
  outputFormat: ["cjs", "esm"],
396
396
 
397
397
  /**
398
- * Указывает, должна ли сборка проверять типы TypeScript.
398
+ * Должна ли сборка проверять типы TypeScript.
399
399
  * По умолчанию: false
400
400
  */
401
401
  checkTypes: false,
402
402
  },
403
403
 
404
404
  /**
405
- * Конфигурация логгера (Logger).
405
+ * Конфигурация логгера.
406
406
  */
407
407
  log: {
408
408
  /**
409
409
  * Уровень логирования.
410
410
  * - "default": Стандартное логирование.
411
- * - "verbose": Углубленное отладочное логирование.
412
- * - "disabled": Отключает логирование.
411
+ * - "verbose": Подробное отладочное логирование.
412
+ * - "disabled": Без логирования.
413
413
  * По умолчанию: "default"
414
414
  */
415
415
  mode: "default",
416
416
 
417
417
  /**
418
- * Префикс для всех лог-сообщений.
418
+ * Префикс для всех сообщений лога.
419
419
  * По умолчанию: "[intlayer]"
420
420
  */
421
421
  prefix: "[intlayer]",
422
422
  },
423
423
 
424
424
  /**
425
- * Системная конфигурация (Для продвинутого использования)
425
+ * Конфигурация системы (продвинутые случаи использования)
426
426
  */
427
427
  system: {
428
428
  /**
429
- * Каталог для хранения локализованных словарей.
429
+ * Директория для хранения локализованных словарей.
430
430
  */
431
431
  dictionariesDir: ".intlayer/dictionary",
432
432
 
433
433
  /**
434
- * Каталог для расширения модулей TypeScript (module augmentation).
434
+ * Директория для расширения модулей (module augmentation).
435
435
  */
436
436
  moduleAugmentationDir: ".intlayer/types",
437
437
 
438
438
  /**
439
- * Каталог для хранения несложенных (unmerged) словарей.
439
+ * Директория для хранения неслитых (unmerged) словарей.
440
440
  */
441
441
  unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
442
442
 
443
443
  /**
444
- * Каталог для хранения типов словарей.
444
+ * Директория для хранения типов словарей.
445
445
  */
446
446
  typesDir: ".intlayer/types",
447
447
 
448
448
  /**
449
- * Каталог, в котором хранятся основные файлы приложения.
449
+ * Директория, где хранятся основные файлы приложения.
450
450
  */
451
451
  mainDir: ".intlayer/main",
452
452
 
453
453
  /**
454
- * Каталог, в котором хранятся файлы конфигурации.
454
+ * Директория, где хранятся скомпилированные файлы конфигурации.
455
455
  */
456
456
  configDir: ".intlayer/config",
457
457
 
458
458
  /**
459
- * Каталог, в котором хранятся файлы кэша.
459
+ * Директория для файлов кэша.
460
460
  */
461
461
  cacheDir: ".intlayer/cache",
462
462
  },
463
463
 
464
464
  /**
465
- * Конфигурация компилятора (Для продвинутого использования)
465
+ * Конфигурация компилятора (продвинутые случаи использования)
466
466
  */
467
467
  compiler: {
468
468
  /**
469
- * Указывает, должен ли быть включен компилятор.
469
+ * Нужно ли включать компилятор.
470
470
  *
471
- * - false: Отключает компилятор.
472
- * - true: Включает компилятор.
473
- * - "build-only": Пропускает компилятор во время разработки и ускоряет время запуска.
471
+ * - false: Отключить компилятор.
472
+ * - true: Включить компилятор.
473
+ * - "build-only": Пропускать компилятор при разработке для ускорения запуска.
474
474
  *
475
475
  * По умолчанию: false
476
476
  */
@@ -479,10 +479,10 @@ const config: IntlayerConfig = {
479
479
  /**
480
480
  * Определяет путь для выходных файлов. Заменяет `outputDir`.
481
481
  *
482
- * - Пути `./` разрешаются относительно каталога компонента.
482
+ * - Пути `./` разрешаются относительно директории компонента.
483
483
  * - Пути `/` разрешаются относительно корня проекта (`baseDir`).
484
484
  *
485
- * - Включение переменной `{{locale}}` в путь приведет к созданию отдельных словарей для каждого языка.
485
+ * - Наличие переменной `{{locale}}` в пути активирует генерацию отдельных словарей для каждого языка.
486
486
  *
487
487
  * Пример:
488
488
  * ```ts
@@ -496,7 +496,7 @@ const config: IntlayerConfig = {
496
496
  *
497
497
  * ```ts
498
498
  * {
499
- * // Создавать централизованные JSON для каждого языка в корне проекта
499
+ * // Создавать централизованные JSON по языкам в корне проекта
500
500
  * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
501
501
  *
502
502
  * // output: '/locales/{{locale}}/{{key}}.content.json', // Эквивалентно через шаблонную строку
@@ -506,35 +506,35 @@ const config: IntlayerConfig = {
506
506
  * Список переменных:
507
507
  * - `fileName`: Имя файла.
508
508
  * - `key`: Ключ контента.
509
- * - `locale`: Локаль контента.
509
+ * - `locale`: Язык контента (locale).
510
510
  * - `extension`: Расширение файла.
511
511
  * - `componentFileName`: Имя файла компонента.
512
512
  * - `componentExtension`: Расширение файла компонента.
513
513
  * - `format`: Формат словаря.
514
514
  * - `componentFormat`: Формат словаря компонента.
515
- * - `componentDirPath`: Путь к каталогу компонента.
515
+ * - `componentDirPath`: Путь к директории компонента.
516
516
  */
517
517
  output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
518
518
 
519
519
  /**
520
- * Указывает, должны ли компоненты сохраняться после преобразования.
521
- * Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
520
+ * Сохранять ли компоненты после их преобразования.
521
+ * Таким образом, компилятор можно запустить один раз для преобразования приложения, а затем удалить.
522
522
  */
523
523
  saveComponents: false,
524
524
 
525
525
  /**
526
- * Вставляет в сгенерированный файл только контент. Полезно для вывода JSON для каждого языка для i18next или ICU MessageFormat.
526
+ * Вставлять в сгенерированный файл только контент. Полезно для вывода в формате i18next или ICU MessageFormat JSON по языкам.
527
527
  */
528
528
  noMetadata: false,
529
529
 
530
530
  /**
531
531
  * Префикс ключа словаря
532
532
  */
533
- dictionaryKeyPrefix: "", // Добавьте необязательный префикс к извлеченным ключам словарей
533
+ dictionaryKeyPrefix: "", // Добавить опциональный префикс для извлеченных ключей словарей
534
534
  },
535
535
 
536
536
  /**
537
- * Пользовательские схемы (Schemas) для валидации контента словарей.
537
+ * Пользовательские схемы для валидации содержимого словарей.
538
538
  */
539
539
  schemas: {
540
540
  "my-schema": z.object({
@@ -543,7 +543,7 @@ const config: IntlayerConfig = {
543
543
  },
544
544
 
545
545
  /**
546
- * Конфигурация плагинов (Plugins).
546
+ * Конфигурация плагинов.
547
547
  */
548
548
  plugins: [],
549
549
  };
@@ -553,60 +553,62 @@ export default config;
553
553
 
554
554
  ---
555
555
 
556
- ## Справочник по конфигурации (Configuration Reference)
556
+ ## Справочник по конфигурации
557
557
 
558
- В следующих разделах описываются различные параметры конфигурации, доступные в Intlayer.
558
+ Ниже описаны различные параметры конфигурации, доступные в Intlayer.
559
559
 
560
560
  ---
561
561
 
562
- ### Конфигурация интернационализации (Internationalization Configuration)
562
+ ### Конфигурация интернационализации (Internationalization)
563
563
 
564
- Определяет настройки, связанные с интернационализацией, включая доступные локали и локаль по умолчанию для приложения.
564
+ Определяет настройки, связанные с интернационализацией, включая доступные языки и язык по умолчанию.
565
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, куки или заголовке. |
566
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
567
+ | ----------------- | -------------------------------------------------------------------------------------------------- | ---------- | ------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
568
+ | `locales` | Список языков, поддерживаемых в приложении. | `string[]` | `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
569
+ | `requiredLocales` | Список обязательных языков в приложении. | `string[]` | `[]` | `[]` | Если пусто, все языки обязательны в режиме `strict`.<br/>• Убедитесь, что обязательные языки также определены в поле `locales`. |
570
+ | `strictMode` | Обеспечивает надежную реализацию интернационализированного контента с помощью TypeScript. | `string` | `'inclusive'` | | Если `"strict"`: функция `t` требует определения каждого объявленного языкавызывает ошибку, если какой-то отсутствует или не объявлен.<br/>• Если `"inclusive"`: предупреждает об отсутствующих языках, но разрешает использование существующих необъявленных.<br/>• Если `"loose"`: принимает любой существующий язык. |
571
+ | `defaultLocale` | Язык по умолчанию, используемый как запасной, если запрошенный язык не найден. | `string` | `Locales.ENGLISH` | `'en'` | Используется для определения языка, когда он не указан в URL, куки или заголовке. |
572
572
 
573
573
  ---
574
574
 
575
- ### Конфигурация редактора (Editor Configuration)
575
+ ### Конфигурация редактора (Editor)
576
+
577
+ Определяет настройки для встроенного визуального редактора, включая порт сервера и статус включения.
578
+
579
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
580
+ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
581
+ | `applicationURL` | URL приложения. | `string` | `undefined` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Используется для ограничения источника (origin) редактора из соображений безопасности.<br/>• Если установлено в `'*'`, редактор доступен из любого источника. |
582
+ | `port` | Порт, используемый сервером визуального редактора. | `number` | `8000` | | |
583
+ | `editorURL` | URL сервера редактора. | `string` | `'http://localhost:8000'` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Используется для ограничения источников, которые могут взаимодействовать с приложением.<br/>• Если установлено в `'*'`, доступно из любого источника.<br/>• Должно быть установлено, если изменен порт или редактор хостится на другом домене. |
584
+ | `cmsURL` | URL Intlayer CMS. | `string` | `'https://app.intlayer.org'` | `'https://app.intlayer.org'` | |
585
+ | `backendURL` | URL бэкенд-сервера. | `string` | `https://back.intlayer.org` | `http://localhost:4000` | |
586
+ | `enabled` | Должно ли приложение взаимодействовать с визуальным редактором. | `boolean` | `false` | `process.env.NODE_ENV !== 'production'` | • Если `false`, редактор не может взаимодействовать с приложением.<br/>• Отключение для определенных окружений повышает безопасность. |
587
+ | `clientId` | Позволяет пакетам intlayer аутентифицироваться на бэкенде через oAuth2. Чтобы получить токен доступа, перейдите на [intlayer.org/project](https://app.intlayer.org/project). | `string` &#124; <br/> `undefined` | `undefined` | | Должно храниться в секрете; используйте переменные окружения. |
588
+ | `clientSecret` | Позволяет пакетам intlayer аутентифицироваться на бэкенде через oAuth2. Чтобы получить токен доступа, перейдите на [intlayer.org/project](https://app.intlayer.org/project). | `string` &#124; <br/> `undefined` | `undefined` | | Должно храниться в секрете; используйте переменные окружения. |
589
+ | `dictionaryPriorityStrategy` | Стратегия приоритета словарей при наличии и локальных, и удаленных словарей. | `string` | `'local_first'` | `'distant_first'` | • `'distant_first'`: приоритет удаленных словарей над локальными.<br/>• `'local_first'`: приоритет локальных словарей над удаленными. |
590
+ | `liveSync` | Должен ли сервер приложения мгновенно перезагружать контент при обнаружении изменений в CMS <br/> Визуальном редакторе <br/> Бэкенде. | `boolean` | `true` | `true` | • При добавлении/обновлении словаря приложение обновляет контент страницы.<br/>• Live Sync выносит контент на другой сервер, что может немного влиять на производительность.<br/>• Рекомендуется хостить оба на одной машине. |
591
+ | `liveSyncPort` | Порт сервера live sync. | `number` | `4000` | `4000` | |
592
+ | `liveSyncURL` | URL сервера live sync. | `string` | `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | По умолчанию указывает на localhost; может быть изменен на удаленный сервер live sync. |
576
593
 
577
- Определяет настройки, связанные с интегрированным редактором, включая порт сервера и статус активности.
578
-
579
- | Поле | Тип | Описание | Пример | Примечание |
580
- | ---------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
581
- | `applicationURL` | `string` | URL вашего приложения. По умолчанию: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Используется для ограничения источников (origin) редактора из соображений безопасности. Если установлено значение `'*'`, редактор доступен из любого источника. |
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; может быть изменен на удаленный сервер Live Sync. |
594
+ ---
593
595
 
594
- ### Конфигурация маршрутизации (Routing Configuration)
596
+ ### Конфигурация маршрутизации (Routing)
595
597
 
596
- Настройки, управляющие поведением маршрутизации, включая структуру URL, хранение локалей и обработку промежуточного ПО.
598
+ Настройки, управляющие поведением маршрутизации, включая структуру URL, хранение языков и управление middleware.
597
599
 
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` | Не влияет на управление куки или хранилищем локалей. |
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>>` | Пользовательские правила перезаписи URL, переопределяющие режим маршрутизации по умолчанию для конкретных путей. Поддерживает динамические параметры `[param]`. По умолчанию: `undefined` | См. пример ниже | Правила перезаписи имеют приоритет над `mode`. Работает с Next.js и Vite. `getLocalizedUrl()` автоматически применяет соответствующие правила. См. [Пользовательские перезаписи URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/custom_url_rewrites.md). |
600
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
601
+ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
602
+ | `mode` | Режим маршрутизации URL для управления языками. | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) или `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: язык управляется другими способами. `'search-params'`: `/dashboard?locale=fr` | Не влияет на управление куками или хранилищем языков. |
603
+ | `storage` | Конфигурация хранения языка на клиенте. | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | См. таблицу параметров хранения ниже. |
604
+ | `basePath` | Базовый путь для URL-адресов приложения. | `string` | `''` | `'/my-app'` | Если приложение находится по адресу `https://example.com/my-app`, basePath `'/my-app'`, а URL становятся `https://example.com/my-app/en`. |
605
+ | `rewrite` | Пользовательские правила перезаписи URL, которые переопределяют режим маршрутизации по умолчанию для определенных путей. Поддерживает динамические параметры `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | См. пример ниже | Правила перезаписи имеют приоритет над `mode`.<br/>• Работает с Next.js и Vite.<br/>• `getLocalizedUrl()` автоматически применяет соответствующие правила.<br/>• См. [Пользовательские перезаписи URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
604
606
 
605
607
  **Пример `rewrite`**:
606
608
 
607
609
  ```typescript
608
610
  routing: {
609
- mode: "prefix-no-default", // Стратегия по умолчанию
611
+ mode: "prefix-no-default", // Запасная стратегия
610
612
  rewrite: nextjsRewrite({
611
613
  "/about": {
612
614
  en: "/about",
@@ -624,37 +626,37 @@ routing: {
624
626
  }
625
627
  ```
626
628
 
627
- #### Параметры хранения (Storage Options)
629
+ #### Параметры хранения (Storage)
628
630
 
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' }`). |
631
+ | Значение | Примечание | Описание |
632
+ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
633
+ | `'cookie'` | Для соответствия GDPR обеспечьте надлежащее согласие пользователя.<br/>• Настраивается через `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). | Хранит язык в куках — доступно как на клиенте, так и на сервере. |
634
+ | `'localStorage'` | Не истекает, если не будет явно очищено.<br/>• Прокси Intlayer не может получить к этому доступ.<br/>• Настраивается через `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | Хранит язык в браузере без ограничения срока — только на стороне клиента. |
635
+ | `'sessionStorage'` | Очищается при закрытии вкладки/окна.<br/>• Прокси Intlayer не может получить к этому доступ.<br/>• Настраивается через `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). | Хранит язык на время сессии страницы — только на стороне клиента. |
636
+ | `'header'` | Полезно для вызовов API.<br/>• Сторона клиента не может получить доступ.<br/>• Настраивается через `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). | Хранит или передает язык через HTTP-заголовки — только на стороне сервера. |
635
637
 
636
- #### Атрибуты куки (Cookie Attributes)
638
+ #### Атрибуты куки (Cookies Attributes)
637
639
 
638
- При использовании хранилища куки вы можете настроить дополнительные атрибуты:
640
+ При использовании хранения в куках можно настроить дополнительные атрибуты:
639
641
 
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` |
642
+ | Поле | Описание | Тип |
643
+ | ---------- | ------------------------------------------- | ---------------------------------------------------- |
644
+ | `name` | Имя куки. По умолчанию: `'INTLAYER_LOCALE'` | `string` |
645
+ | `domain` | Домен куки. По умолчанию: `undefined` | `string` |
646
+ | `path` | Путь куки. По умолчанию: `undefined` | `string` |
647
+ | `secure` | Требовать HTTPS. По умолчанию: `undefined` | `boolean` |
648
+ | `httpOnly` | Флаг HTTP-only. По умолчанию: `undefined` | `boolean` |
649
+ | `sameSite` | Политика SameSite. | `'strict'` &#124; <br/> `'lax'` &#124; <br/> `'none'` |
650
+ | `expires` | Дата истечения или кол-во дней. По умолчанию: `undefined` | `Date` &#124; <br/> `number` |
649
651
 
650
- #### Атрибуты хранилища локалей (Locale Storage Attributes)
652
+ #### Атрибуты хранилища (Storage Attributes)
651
653
 
652
654
  При использовании localStorage или sessionStorage:
653
655
 
654
- | Поле | Тип | Описание |
655
- | ------ | ---------------------------------------- | ------------------------------------------------------ |
656
- | `type` | `'localStorage' &#124; 'sessionStorage'` | Тип хранилища. |
657
- | `name` | `string` | Имя ключа хранилища. По умолчанию: `'INTLAYER_LOCALE'` |
656
+ | Поле | Описание | Тип |
657
+ | ------ | ----------------------------------------------- | ------------------------------------------------ |
658
+ | `type` | Тип хранилища. | `'localStorage'` &#124; <br/> `'sessionStorage'` |
659
+ | `name` | Имя ключа в хранилище. По умолчанию: `'INTLAYER_LOCALE'` | `string` |
658
660
 
659
661
  #### Примеры конфигурации
660
662
 
@@ -680,7 +682,7 @@ const config: IntlayerConfig = {
680
682
  export default config;
681
683
  ```
682
684
 
683
- **Конфигурация, соответствующая GDPR**:
685
+ **Конфигурация с соблюдением GDPR**:
684
686
 
685
687
  ```typescript
686
688
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -712,7 +714,7 @@ const config: IntlayerConfig = {
712
714
  export default config;
713
715
  ```
714
716
 
715
- **Режим параметров поиска (Search Parameters Mode)**:
717
+ **Режим параметров поиска (Search Params)**:
716
718
 
717
719
  ```typescript
718
720
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -732,7 +734,7 @@ const config: IntlayerConfig = {
732
734
  export default config;
733
735
  ```
734
736
 
735
- **Режим без префикса (No Prefix Mode) с пользовательским хранилищем**:
737
+ **Режим без префикса с кастомным хранилищем**:
736
738
 
737
739
  ```typescript
738
740
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -767,7 +769,7 @@ const config: IntlayerConfig = {
767
769
  defaultLocale: "en",
768
770
  },
769
771
  routing: {
770
- mode: "prefix-no-default", // Резервная стратегия для путей без перезаписи
772
+ mode: "prefix-no-default", // Запасной вариант для неперезаписанных путей
771
773
  storage: "cookie",
772
774
  rewrite: nextjsRewrite({
773
775
  "/about": {
@@ -791,153 +793,166 @@ export default config;
791
793
 
792
794
  ---
793
795
 
794
- ### Конфигурация контента (Content Configuration)
795
-
796
- Настройки обработки контента в приложении (имена каталогов, расширения файлов и производные конфигурации).
797
-
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}}"'` | Используется при извлечении контента или через визуальный редактор. |
806
-
807
- ---
808
-
809
- ### Конфигурация словаря (Dictionary Configuration)
810
-
811
- Настройки, управляющие способом импорта словарей и управлением ими.
796
+ ### Конфигурация контента (Content)
812
797
 
813
- | Поле | Тип | Описание | Пример | Примечание |
814
- | --------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
815
- | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | Режим импорта словарей. По умолчанию: `'static'` | `'static'`: словари импортируются при сборке. `'dynamic'`: загружаются по требованию. `'fetch'`: извлекаются из удаленного API. | См. режим импорта ниже. |
816
- | `fill` | `boolean &#124; DictionaryFill` | Заполнять ли отсутствующие переводы автоматически с помощью AI. По умолчанию: `true` в режиме разработки | `true` | Помогает идентифицировать отсутствующие переводы. Можно настроить сохранение результатов локально. |
817
- | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; string` | Где хранятся словари. По умолчанию: `'local'` | `'remote'` | `'local'`: файловая система. `'remote'`: Intlayer CMS. `'hybrid'`: и то, и другое. |
818
- | `contentAutoTransformation` | `boolean` | Указывает, должны ли файлы контента автоматически преобразовываться (например, из Markdown в HTML). По умолчанию: `false` | `true` | Полезно для обработки Markdown полей через @intlayer/markdown. |
798
+ Настройки, связанные с тем, как контент управляется в приложении, включая имена директорий, расширения файлов и производные конфигурации.
819
799
 
820
- #### Режим импорта (Import Modes)
821
-
822
- | Значение | Описание |
823
- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
824
- | `'static'` | Словари включаются в бандл во время сборки. Лучшая производительность, но больший размер файлов при наличии множества языков. |
825
- | `'dynamic'` | Словари загружаются асинхронно при доступе к определенному языку. Использует React Suspense. Рекомендуется для приложений с большим количеством языков. |
826
- | `'fetch'` | Словари извлекаются динамически во время выполнения (runtime) с сервера (например, Intlayer CMS). Позволяет обновлять контент без пересборки. |
800
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
801
+ | ---------------- | ------------------------------------------------------------------------------------------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
802
+ | `watch` | Указывает, должен ли Intlayer отслеживать изменения в файлах декларации контента для пересборки словарей. | `boolean` | `true` | | |
803
+ | `fileExtensions` | Расширения файлов для сканирования при компиляции словарей. | `string[]` | `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']` | `['.data.ts', '.data.js', '.data.json']` | Настройка поможет избежать конфликтов. |
804
+ | `contentDir` | Путь к директории, где хранятся файлы определения контента (`.content.*`). | `string[]` | `['.']` | `['src', '../../ui-library', require.resolve("@my-package/content")]` | Используется для отслеживания файлов контента и пересборки словарей. |
805
+ | `codeDir` | Путь к директории, где хранится код, относительно базовой директории. | `string[]` | `['.']` | `['src', '../../ui-library']` | Используется для отслеживания файлов кода для преобразования (удаление лишнего, оптимизация).<br/>• Отделение от `contentDir` может повысить производительность. |
806
+ | `excludedPath` | Директории, исключенные из сканирования контента. | `string[]` | `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']` | | Пока не используется; планируется в будущем. |
807
+ | `formatCommand` | Команда для форматирования файлов контента при их локальной записи Intlayer. | `string` | `undefined` | `'npx prettier --write "{{file}}" --log-level silent'` (Prettier), `'npx biome format "{{file}}" --write --log-level none'` (Biome), `'npx eslint --fix "{{file}}" --quiet'` (ESLint) | • `{{file}}` будет заменено на путь к файлу.<br/>• Если не определено, Intlayer определит автоматически (тестирует prettier, biome, eslint). |
827
808
 
828
809
  ---
829
810
 
830
- ### Конфигурация словарей (Dictionary Configuration)
831
-
832
- Настройки, управляющие операциями со словарями, включая поведение автозаполнения и генерацию контента.
833
-
834
- Эта конфигурация словарей служит двум основным целям:
835
-
836
- 1. **Значения по умолчанию**: Определение значений по умолчанию при создании файлов объявления контента.
837
- 2. **Поведение при отсутствии перевода**: Предоставление резервных значений, когда конкретные поля не определены, что позволяет глобально настраивать поведение операций со словарями.
838
-
839
- Для получения дополнительной информации о файлах объявления контента и о том, как применяются значения конфигурации, см. [Документацию по файлам контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md).
840
-
841
- | Поле | Тип | Описание | Пример | Примечание |
842
- | --------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
843
- | `fill` | `boolean &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; FilePathPattern>>` | Управляет тем, как генерируются выходные файлы автозаполнения (AI-перевод). По умолчанию: `true` | См. пример ниже | `true`: путь по умолчанию (тот же файл, что и источник). `false`: отключено. Шаблон строки/функции генерирует файлы для каждой локали. Объект по локалям: каждая локаль сопоставляется со своим шаблоном; `false` пропускает эту локаль. Включение `{{locale}}` запускает генерацию для каждой локали. `fill` на уровне словаря всегда имеет приоритет над этой глобальной конфигурацией. |
844
- | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | Управляет способом импорта словарей. По умолчанию: `'static'` | `'dynamic'` | `'static'`: импортируется статически. `'dynamic'`: импортируется динамически через Suspense. `'fetch'`: динамически запрашивается через API Live Sync. Не влияет на `getIntlayer`, `getDictionary`, `useDictionary` и др. |
845
- | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; string` | Определяет, где хранятся словари. По умолчанию: `'local'` | `'remote'` | `'local'`: файловая система. `'remote'`: Intlayer CMS. `'hybrid'`: и то, и другое. |
846
- | `contentAutoTransformation` | `boolean` | Должны ли файлы контента автоматически преобразовываться (например, Markdown в HTML). По умолчанию: `false` | `true` | Полезно для обработки полей Markdown через @intlayer/markdown. |
811
+ ### Конфигурация словарей (Dictionary)
812
+
813
+ Параметры, управляющие операциями со словарями, включая поведение автоматического заполнения и генерацию контента.
814
+
815
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
816
+ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
817
+ | `fill` | Управляет тем, как генерируются выходные файлы автозаполнения (ИИ-перевод). | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: путь по умолчанию (тот же файл, что и источник).<br/>• `false`: отключить.<br/>• Шаблон строка/функция генерирует файлы по языкам.<br/>• Объект по языкам: каждый язык соответствует своему шаблону; `false` игнорирует этот язык.<br/>• Включение `{{locale}}` активирует генерацию по языкам.<br/>• `fill` на уровне словаря всегда имеет приоритет над этой глобальной настройкой. |
818
+ | `description` | Помогает редактору и CMS понять назначение словаря. Также используется как контекст для генерации переводов с помощью ИИ. | `string` | `undefined` | `'User profile section'` | |
819
+ | `locale` | Преобразует словарь в формат для конкретного языка. Каждое объявленное поле становится узлом перевода. Если отсутствует, словарь считается многоязычным. | `LocalesValues` | `undefined` | `'en'` | Используйте это, если словарь предназначен для одного конкретного языка, а не содержит переводы для нескольких. |
820
+ | `contentAutoTransformation` | Автоматически преобразует строки контента в типизированные узлы (markdown, HTML или вставка). | `boolean` &#124; <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')`.<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')`.<br/>• Вставка : `Hello {{name}}` → `insert('Hello {{name}}')`. |
821
+ | `location` | Указывает, где хранятся файлы словарей и как они синхронизируются с CMS. | `'local'` &#124; <br/> `'remote'` &#124; <br/> `'hybrid'` &#124; <br/> `'plugin'` &#124; <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: управление только локально.<br/>• `'remote'`: управление только удаленно (CMS).<br/>• `'hybrid'`: управление и локально, и удаленно.<br/>• `'plugin'` или кастомная строка: управление плагином или кастомным источником. |
822
+ | `importMode` | Управляет способом импорта словарей. | `'static'` &#124; <br/> `'dynamic'` &#124; <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: статический импорт.<br/>• `'dynamic'`: динамический импорт через Suspense.<br/>• `'fetch'`: получение через Live Sync API; откат к `'dynamic'` при неудаче.<br/>• Требует плагины `@intlayer/babel` и `@intlayer/swc`.<br/>• Ключи должны быть объявлены статически.<br/>• Игнорируется, если `optimize` выключен.<br/>• Не влияет на `getIntlayer`, `getDictionary` и т.д. |
823
+ | `priority` | Приоритет словаря. Более высокие значения побеждают более низкие при разрешении конфликтов между словарями. | `number` | `undefined` | `1` | |
824
+ | `live` | Устарело используйте `importMode: 'fetch'`. Указывало, должен ли контент словаря получаться динамически через Live Sync API. | `boolean` | `undefined` | | Переименовано в `importMode: 'fetch'` в v8.0.0. |
825
+ | `schema` | Генерируется автоматически Intlayer для валидации JSON-схемы. | `'https://intlayer.org/schema.json'` | авто-генерация | | Не редактируйте вручную. |
826
+ | `title` | Помогает идентифицировать словарь в редакторе и CMS. | `string` | `undefined` | `'User Profile'` | |
827
+ | `tags` | Категоризирует словари и предоставляет контекст или инструкции для редактора и ИИ. | `string[]` | `undefined` | `['user', 'profile']` | |
828
+ | `version` | Версия удаленного словаря; помогает отслеживать текущую используемую версию. | `string` | `undefined` | `'1.0.0'` | • Управляется в CMS.<br/>• Не редактируйте локально. |
847
829
 
848
830
  **Пример `fill`**:
849
831
 
850
832
  ```ts
851
833
  dictionary: {
852
834
  fill: {
853
- en: '/locales/en/{{key}}.content.json',
835
+ en: "/locales/en/{{key}}.content.json",
854
836
  fr: ({ key }) => `/locales/fr/${key}.content.json`,
855
837
  es: false,
856
- }
857
- }
838
+ },
839
+ };
858
840
  ```
859
841
 
860
842
  ---
861
843
 
862
- ### Конфигурация AI (AI Configuration)
844
+ ### Конфигурация логгера (Log)
863
845
 
864
- Определяет настройки для функций Intlayer на базе AI, таких как создание переводов.
846
+ Параметры для настройки вывода логов Intlayer.
865
847
 
866
- | Поле | Тип | Описание | Пример | Примечание |
867
- | -------------------- | ---------------------- | ------------------------------------------------------------------------------ | ------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
868
- | `provider` | `string` | Провайдер AI для использования. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
869
- | `model` | `string` | Модель AI для использования. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
870
- | `apiKey` | `string` | API-ключ для выбранного провайдера. | `process.env.OPENAI_API_KEY` | |
871
- | `applicationContext` | `string` | Дополнительный контекст о вашем приложении для повышения точности перевода AI. | `'Обучающая платформа для детей.'` | |
872
- | `baseURL` | `string` | Необязательный базовый URL для API-вызовов. | | Полезно, если вы используете прокси или локальное развертывание AI. |
873
- | `dataSerialization` | `'json' &#124; 'toon'` | Определяет способ отправки данных в AI. По умолчанию: `'json'` | `'json'` | `'json'`: более надежно и точно. `'toon'`: потребляет меньше токенов, но может быть менее стабильным. |
848
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
849
+ | -------- | ----------------------------------- | -------------------------------------------------------------- | ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- |
850
+ | `mode` | Указывает режим логгера. | `'default'` &#124; <br/> `'verbose'` &#124; <br/> `'disabled'` | `'default'` | `'verbose'` | `'verbose'`: логирует больше информации для отладки.<br/>• `'disabled'`: полностью отключает логгер. |
851
+ | `prefix` | Префикс для всех сообщений в логе. | `string` | `'[intlayer] '` | `'[my prefix] '` | |
874
852
 
875
853
  ---
876
854
 
877
- ### Конфигурация сборки (Build Configuration)
855
+ ### Конфигурация ИИ (AI)
856
+
857
+ Настройки, управляющие ИИ-функциями Intlayer, включая провайдера, модель и API-ключ.
858
+
859
+ Эта конфигурация опциональна, если вы зарегистрированы в [Intlayer Dashboard](https://app.intlayer.org/project) с ключом доступа. Intlayer будет автоматически управлять наиболее эффективным и экономичным решением ИИ для ваших нужд. Использование параметров по умолчанию гарантирует лучшую долгосрочную поддержку, так как Intlayer постоянно обновляется для использования наиболее актуальных моделей.
860
+
861
+ Если вы предпочитаете использовать собственный API-ключ или конкретную модель, вы можете определить свою конфигурацию ИИ.
862
+ Эта конфигурация ИИ будет использоваться глобально в вашей среде Intlayer. Команды CLI будут использовать эти настройки по умолчанию для таких команд, как `fill`, так же как и SDK, визуальный редактор и CMS. Вы можете переопределить эти значения по умолчанию для конкретных случаев использования через параметры команд.
863
+
864
+ Intlayer поддерживает несколько ИИ-провайдеров для максимальной гибкости. На данный момент поддерживаются следующие провайдеры:
865
+
866
+ - **OpenAI** (По умолчанию)
867
+ - **Anthropic Claude**
868
+ - **Mistral AI**
869
+ - **DeepSeek**
870
+ - **Google Gemini**
871
+ - **Google AI Studio**
872
+ - **Google Vertex**
873
+ - **Meta Llama**
874
+ - **Ollama**
875
+ - **OpenRouter**
876
+ - **Alibaba Cloud**
877
+ - **Fireworks**
878
+ - **Hugging Face**
879
+ - **Groq**
880
+ - **Amazon Bedrock**
881
+ - **Together.ai**
882
+
883
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
884
+ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
885
+ | `provider` | Провайдер, используемый для ИИ-функций Intlayer. | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` | `undefined` | `'anthropic'` | Разные провайдеры требуют разные API-ключи и имеют разную стоимость. |
886
+ | `model` | Модель, используемая для ИИ-функций. | `string` | Нет | `'gpt-4o-2024-11-20'` | Конкретная модель зависит от провайдера. |
887
+ | `temperature` | Управляет случайностью ответов ИИ. | `number` | Нет | `0.1` | Выше температура = более креативно и менее предсказуемо. |
888
+ | `apiKey` | Ваш API-ключ для выбранного провайдера. | `string` | Нет | `process.env.OPENAI_API_KEY` | Должно храниться в секрете; используйте переменные окружения. |
889
+ | `applicationContext` | Дополнительный контекст о вашем приложении, чтобы помочь ИИ генерировать более точные переводы (домен, целевая аудитория, тон, терминология). | `string` | Нет | `'My own application context'` | Можно использовать для добавления правил (например: `"You should not transform URLs"`). |
890
+ | `baseURL` | Базовый URL для ИИ API. | `string` | Нет | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Может указывать на локальный или кастомный эндпоинт ИИ API. |
891
+ | `dataSerialization` | Формат сериализации данных для ИИ-функций. | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: по умолчанию, надежно; потребляет больше токенов.<br/>• `'toon'`: меньше токенов, менее стабильно.<br/>• Дополнительные параметры передаются в модель как контекст (усилия рассуждения и т.д.). |
878
892
 
879
- Настройки процесса сборки и оптимизации Intlayer.
893
+ ---
880
894
 
881
- | Поле | Тип | Описание | Пример | Примечание |
882
- | -------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | ------ | ---------- |
883
- | `mode` | `'auto' &#124; 'manual'` | Указывает, должен ли Intlayer запускаться автоматически во время шагов предварительной сборки приложения. По умолчанию: `'auto'` | | |
884
- | `optimize` | `boolean` | Указывает, должны ли скомпилированные словари быть оптимизированы для рантайма. По умолчанию: `true` в продакшене | | |
885
- | `outputFormat` | `('cjs' &#124; 'esm')[]` | Формат вывода сгенерированных файлов словарей. По умолчанию: `['cjs', 'esm']` | | |
886
- | `checkTypes` | `boolean` | Указывает, должен ли Intlayer проверять типы в сгенерированных файлах. По умолчанию: `false` | | |
895
+ ### Конфигурация сборки (Build)
887
896
 
888
- ---
897
+ Параметры, управляющие тем, как Intlayer оптимизирует и компилирует интернационализацию вашего приложения.
898
+
899
+ Опции сборки применяются к плагинам `@intlayer/babel` и `@intlayer/swc`.
889
900
 
890
- ### Системная конфигурация (System Configuration)
901
+ > В режиме разработки Intlayer использует статический импорт словарей для упрощения процесса разработки.
891
902
 
892
- Эти настройки предназначены для продвинутых вариантов использования и внутренней конфигурации Intlayer.
903
+ > Во время оптимизации Intlayer заменит вызовы словарей для оптимизации чанкинга (chunking), чтобы итоговый бандл импортировал только те словари, которые действительно используются.
893
904
 
894
- | Поле | Тип | Описание | По умолчанию |
895
- | ------------------------- | -------- | ------------------------------------------------- | --------------------------------- |
896
- | `dictionariesDir` | `string` | Каталог скомпилированных словарей. | `'.intlayer/dictionary'` |
897
- | `moduleAugmentationDir` | `string` | Каталог расширения модулей TypeScript. | `'.intlayer/types'` |
898
- | `unmergedDictionariesDir` | `string` | Каталог несложенных словарей. | `'.intlayer/unmerged_dictionary'` |
899
- | `typesDir` | `string` | Каталог сгенерированных типов. | `'.intlayer/types'` |
900
- | `mainDir` | `string` | Каталог основных файлов Intlayer. | `'.intlayer/main'` |
901
- | `configDir` | `string` | Каталог скомпилированных конфигурационных файлов. | `'.intlayer/config'` |
902
- | `cacheDir` | `string` | Каталог файлов кэша. | `'.intlayer/cache'` |
905
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
906
+ | ----------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
907
+ | `mode` | Управляет режимом сборки. | `'auto'` &#124; <br/> `'manual'` | `'auto'` | `'manual'` | • `'auto'`: сборка запускается автоматически при сборке приложения.<br/>• `'manual'`: выполняется только при явном вызове команды сборки.<br/>• Можно использовать для отключения сборки словарей (например, чтобы избежать выполнения в средах Node.js). |
908
+ | `optimize` | Управляет тем, должна ли выполняться оптимизация сборки. | `boolean` | `undefined` | `process.env.NODE_ENV === 'production'` | • Если не определено, оптимизация запускается при сборке фреймворка (Vite/Next.js).<br/>• `true` форсирует оптимизацию даже в dev режиме.<br/>• `false` отключает ее.<br/>• Если включено, заменяет вызовы словарей для оптимизации чанкинга.<br/>• Требует плагины `@intlayer/babel` и `@intlayer/swc`. |
909
+ | `checkTypes` | Указывает, должна ли сборка проверять типы TypeScript и логировать ошибки. | `boolean` | `false` | | Может замедлить процесс сборки. |
910
+ | `outputFormat` | Управляет выходным форматом словарей. | `('esm' &#124; 'cjs')[]` | `['esm', 'cjs']` | `['cjs']` | |
911
+ | `traversePattern` | Шаблоны, определяющие, какие файлы сканировать во время оптимизации. | `string[]` | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • Ограничьте оптимизацию релевантными файлами для повышения производительности сборки.<br/>• Игнорирует, если `optimize` выключен.<br/>• Использует шаблоны glob. |
903
912
 
904
913
  ---
905
914
 
906
- ### Конфигурация компилятора (Compiler Configuration)
915
+ ### Системная конфигурация (System)
907
916
 
908
- Настройки компилятора Intlayer (`intlayer compiler`).
917
+ Эти настройки предназначены для продвинутых случаев использования и внутренней конфигурации Intlayer.
909
918
 
910
- | Поле | Тип | Описание | По умолчанию |
911
- | --------------------- | ------------------------ | -------------------------------------------------------------------------------- | ------------ |
912
- | `enabled` | `boolean` | Указывает, активен ли компилятор. | `false` |
913
- | `output` | `string &#124; Function` | Путь вывода для извлеченных словарей. | |
914
- | `saveComponents` | `boolean` | Указывает, должны ли исходные файлы быть перезаписаны преобразованными версиями. | `false` |
915
- | `noMetadata` | `boolean` | Если `true`, компилятор не будет включать метаданные в сгенерированные файлы. | `false` |
916
- | `dictionaryKeyPrefix` | `string` | Необязательный префикс ключа словаря. | `''` |
919
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
920
+ | ------------------------- | ---------------------------------------------------- | -------- | --------------------------------- | ------ | ---------- |
921
+ | `dictionariesDir` | Директория для скомпилированных словарей. | `string` | `'.intlayer/dictionary'` | | |
922
+ | `moduleAugmentationDir` | Директория для расширения модулей TypeScript. | `string` | `'.intlayer/types'` | | |
923
+ | `unmergedDictionariesDir` | Директория для хранения неслитых словарей. | `string` | `'.intlayer/unmerged_dictionary'` | | |
924
+ | `typesDir` | Директория для сгенерированных типов. | `string` | `'.intlayer/types'` | | |
925
+ | `mainDir` | Директория основного файла Intlayer. | `string` | `'.intlayer/main'` | | |
926
+ | `configDir` | Директория скомпилированных файлов конфигурации. | `string` | `'.intlayer/config'` | | |
927
+ | `cacheDir` | Директория файлов кэша. | `string` | `'.intlayer/cache'` | | |
917
928
 
918
929
  ---
919
930
 
920
- ### Конфигурация логгера (Logger Configuration)
931
+ ### Конфигурация компилятора (Compiler)
921
932
 
922
- Настройки настройки лог-вывода Intlayer.
933
+ Настройки, управляющие компилятором Intlayer, который извлекает словари напрямую из ваших компонентов.
923
934
 
924
- | Поле | Тип | Описание | По умолчанию |
925
- | -------- | ---------------------------------------------- | -------------------------- | -------------- |
926
- | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | Режим логирования. | `'default'` |
927
- | `prefix` | `string` | Префикс для лог-сообщений. | `'[intlayer]'` |
935
+ | Поле | Описание | Тип | По умолчанию | Пример | Примечание |
936
+ | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
937
+ | `enabled` | Указывает, должен ли компилятор быть включен для извлечения словарей. | `boolean` &#124; <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` пропускает компилятор при разработке для ускорения сборки; выполняется только при командах сборки. |
938
+ | `dictionaryKeyPrefix` | Префикс для извлеченных ключей словарей. | `string` | `''` | `'my-prefix-'` | Добавляется к сгенерированному ключу (на основе имени файла) для предотвращения конфликтов. |
939
+ | `saveComponents` | Должны ли компоненты сохраняться после их преобразования. | `boolean` | `false` | | • Если `true`, перезаписывает исходные файлы их преобразованными версиями.<br/>• Компилятор можно удалить после одного запуска. |
940
+ | `output` | Определяет путь для выходных файлов. Заменяет `outputDir`. Поддерживает переменные шаблона: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` &#124; <br/> `FilePathPattern` &#124; <br/> `Partial<Record<Locale, boolean &#124; FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • Пути `./` разрешаются относительно директории компонента.<br/>• Пути `/` относительно корня.<br/>• `{{locale}}` включает генерацию по языкам.<br/>• Поддерживает объектную нотацию для каждого языка. |
941
+ | `noMetadata` | Если `true`, компилятор опускает метаданные словаря (ключ, обертку контента) из вывода. | `boolean` | `false` | `false` → `{"key":"my-key","content":{"key":"value"}}` <br/> `true` → `{"key":"value"}` | • Полезно для вывода в формате i18next или ICU MessageFormat JSON.<br/>• Хорошо работает с плагином `loadJSON`. |
942
+ | `dictionaryKeyPrefix` | Префикс ключа словаря | `string` | `''` | | Добавить опциональный префикс для извлеченных ключей словарей |
928
943
 
929
944
  ---
930
945
 
931
946
  ### Пользовательские схемы (Custom Schemas)
932
947
 
933
- | Поле | Тип | Описание |
934
- | --------- | --------------------------- | ---------------------------------------------------------------------- |
935
- | `schemas` | `Record<string, ZodSchema>` | Позволяет определять схемы Zod для валидации структуры ваших словарей. |
948
+ | Поле | Описание | Тип |
949
+ | --------- | ------------------------------------------------------------------------------- | --------------------------- |
950
+ | `schemas` | Позволяет определять схемы Zod для валидации структуры ваших словарей. | `Record<string, ZodSchema>` |
936
951
 
937
952
  ---
938
953
 
939
954
  ### Плагины (Plugins)
940
955
 
941
- | Поле | Тип | Описание |
942
- | --------- | ------------------ | --------------------------------------- |
943
- | `plugins` | `IntlayerPlugin[]` | Список плагинов Intlayer для активации. |
956
+ | Поле | Описание | Тип |
957
+ | --------- | ----------------------------------------- | ------------------ |
958
+ | `plugins` | Список плагинов Intlayer для включения. | `IntlayerPlugin[]` |