@intlayer/docs 8.4.5 → 8.4.7

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 (56) 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/dist/cjs/generated/docs.entry.cjs +20 -0
  12. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  13. package/dist/esm/generated/docs.entry.mjs +20 -0
  14. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  15. package/dist/types/generated/docs.entry.d.ts +1 -0
  16. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  17. package/docs/ar/intlayer_with_storybook.md +521 -0
  18. package/docs/bn/intlayer_with_hono.md +428 -0
  19. package/docs/de/intlayer_with_storybook.md +521 -0
  20. package/docs/en/configuration.md +160 -508
  21. package/docs/en/intlayer_with_storybook.md +521 -0
  22. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  23. package/docs/es/configuration.md +387 -754
  24. package/docs/es/intlayer_with_storybook.md +521 -0
  25. package/docs/fr/configuration.md +384 -757
  26. package/docs/fr/intlayer_with_storybook.md +521 -0
  27. package/docs/hi/intlayer_with_storybook.md +521 -0
  28. package/docs/id/intlayer_with_storybook.md +521 -0
  29. package/docs/it/intlayer_with_storybook.md +521 -0
  30. package/docs/ja/intlayer_with_storybook.md +521 -0
  31. package/docs/ko/intlayer_with_storybook.md +521 -0
  32. package/docs/pl/intlayer_with_storybook.md +521 -0
  33. package/docs/pt/intlayer_with_storybook.md +521 -0
  34. package/docs/ru/intlayer_with_storybook.md +521 -0
  35. package/docs/tr/intlayer_with_storybook.md +521 -0
  36. package/docs/uk/intlayer_with_storybook.md +521 -0
  37. package/docs/ur/intlayer_with_hono.md +428 -0
  38. package/docs/vi/intlayer_with_storybook.md +521 -0
  39. package/docs/zh/intlayer_with_storybook.md +521 -0
  40. package/package.json +6 -6
  41. package/src/generated/docs.entry.ts +20 -0
  42. package/docs/ar/configuration.md +0 -1124
  43. package/docs/de/configuration.md +0 -1296
  44. package/docs/en-GB/configuration.md +0 -1123
  45. package/docs/hi/configuration.md +0 -1118
  46. package/docs/id/configuration.md +0 -1235
  47. package/docs/it/configuration.md +0 -1301
  48. package/docs/ja/configuration.md +0 -1121
  49. package/docs/ko/configuration.md +0 -1121
  50. package/docs/pl/configuration.md +0 -1226
  51. package/docs/pt/configuration.md +0 -1293
  52. package/docs/ru/configuration.md +0 -1112
  53. package/docs/tr/configuration.md +0 -1114
  54. package/docs/uk/configuration.md +0 -1241
  55. package/docs/vi/configuration.md +0 -1263
  56. package/docs/zh/configuration.md +0 -1115
@@ -1,1112 +0,0 @@
1
- ---
2
- createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
4
- title: Конфигурация
5
- description: Узнайте, как настроить Intlayer для вашего приложения. Поймите различные параметры и опции, доступные для настройки Intlayer под ваши нужды.
6
- keywords:
7
- - Конфигурация
8
- - Настройки
9
- - Кастомизация
10
- - Intlayer
11
- - Опции
12
- slugs:
13
- - doc
14
- - concept
15
- - configuration
16
- history:
17
- - version: 8.3.0
18
- date: 2026-03-11
19
- changes: Переместить 'baseDir' из конфигурации 'content' в конфигурацию 'system'
20
- - version: 8.2.0
21
- date: 2026-03-10
22
- changes: Обновление опций компилятора, добавление поддержки 'output' и 'noMetadata'
23
- - version: 8.1.7
24
- date: 2026-02-25
25
- changes: Обновление опций компилятора
26
- - version: 8.0.6
27
- date: 2026-02-12
28
- changes: Добавление поддержки провайдеров Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face и Together.ai
29
- - version: 8.0.5
30
- date: 2026-02-06
31
- changes: Добавление `dataSerialization` в конфигурацию ИИ
32
- - version: 8.0.0
33
- date: 2026-01-22
34
- changes: Переместить конфигурацию сборки importMode в конфигурацию словаря.
35
- - version: 8.0.0
36
- date: 2026-01-18
37
- changes: Разделение конфигурации системы и конфигурации контента. Перемещение внутренних путей в свойство `system`. Добавление `codeDir` для разделения файлов контента и преобразования кода.
38
- - version: 8.0.0
39
- date: 2026-01-18
40
- changes: Добавлены опции словаря `location` и `schema`
41
- - version: 7.5.1
42
- date: 2026-01-10
43
- changes: Добавлена поддержка форматов файлов JSON5 и JSONC
44
- - version: 7.5.0
45
- date: 2025-12-17
46
- changes: Добавлена опция `buildMode`
47
- - version: 6.0.0
48
- date: 2025-09-16
49
- changes: Добавлен режим импорта `live`
50
- - version: 6.0.0
51
- date: 2025-09-04
52
- changes: Заменить поле `hotReload` на `liveSync` и добавить поля `liveSyncPort` и `liveSyncURL`
53
- - version: 5.6.1
54
- date: 2025-07-25
55
- changes: Заменить `activateDynamicImport` на опцию `importMode`
56
- - version: 5.6.0
57
- date: 2025-07-13
58
- changes: Изменить значение по умолчанию для contentDir с `['src']` на `['.']`
59
- - version: 5.5.11
60
- date: 2025-06-29
61
- changes: Добавить команды `docs`
62
- ---
63
-
64
- # Документация по конфигурации Intlayer
65
-
66
- ## Обзор
67
-
68
- Файлы конфигурации Intlayer позволяют настраивать различные аспекты плагина, такие как интернационализация, промежуточное ПО и обработка контента. В этом документе приведено подробное описание каждого свойства в конфигурации.
69
-
70
- ---
71
-
72
- ## Содержание
73
-
74
- <TOC/>
75
-
76
- ---
77
-
78
- ## Поддержка файлов конфигурации
79
-
80
- Intlayer поддерживает форматы файлов конфигурации JSON, JS, MJS и TS:
81
-
82
- - `intlayer.config.ts`
83
- - `intlayer.config.js`
84
- - `intlayer.config.json`
85
- - `intlayer.config.json5`
86
- - `intlayer.config.jsonc`
87
- - `intlayer.config.cjs`
88
- - `intlayer.config.mjs`
89
- - `.intlayerrc`
90
-
91
- ---
92
-
93
- ## Пример файла конфигурации
94
-
95
- ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
- import { Locales, type IntlayerConfig } from "intlayer";
97
- import { nextjsRewrite } from "intlayer/routing";
98
- import { z } from "zod";
99
-
100
- /**
101
- * Example Intlayer configuration file showing all available options.
102
- */
103
- const config: IntlayerConfig = {
104
- /**
105
- * Configuration for internationalization settings.
106
- */
107
- internationalization: {
108
- /**
109
- * List of supported locales in the application.
110
- * Default: [Locales.ENGLISH]
111
- */
112
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
113
-
114
- /**
115
- * List of required locales that must be defined in every dictionary.
116
- * If empty, all locales are required in `strict` mode.
117
- * Default: []
118
- */
119
- requiredLocales: [Locales.ENGLISH],
120
-
121
- /**
122
- * Strictness level for internationalized content.
123
- * - "strict": Errors if any declared locale is missing or undeclared.
124
- * - "inclusive": Warnings if a declared locale is missing.
125
- * - "loose": Accepts any existing locale.
126
- * Default: "inclusive"
127
- */
128
- strictMode: "inclusive",
129
-
130
- /**
131
- * Default locale used as a fallback if the requested locale is not found.
132
- * Default: Locales.ENGLISH
133
- */
134
- defaultLocale: Locales.ENGLISH,
135
- },
136
-
137
- /**
138
- * Settings that control dictionary operations and fallback behavior.
139
- */
140
- dictionary: {
141
- /**
142
- * Controls how dictionaries are imported.
143
- * - "static": Statically imported at build time.
144
- * - "dynamic": Dynamically imported using Suspense.
145
- * - "fetch": Fetched dynamically via the live sync API.
146
- * Default: "static"
147
- */
148
- importMode: "static",
149
-
150
- /**
151
- * Strategy for auto-filling missing translations using AI.
152
- * Can be a boolean or a path pattern to store filled content.
153
- * Default: true
154
- */
155
- fill: true,
156
-
157
- /**
158
- * Physical location of the dictionary files.
159
- * - "local": Stored in the local filesystem.
160
- * - "remote": Stored in the Intlayer CMS.
161
- * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
162
- * - "plugin" (or any custom string): Provided by a plugin or a custom source.
163
- * Default: "local"
164
- */
165
- location: "local",
166
-
167
- /**
168
- * Whether to automatically transform content (e.g., Markdown to HTML).
169
- * Default: false
170
- */
171
- contentAutoTransformation: false,
172
- },
173
-
174
- /**
175
- * Routing and middleware configuration.
176
- */
177
- routing: {
178
- /**
179
- * Locale routing strategy.
180
- * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
181
- * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
182
- * - "no-prefix": No locale in the URL.
183
- * - "search-params": Use ?locale=...
184
- * Default: "prefix-no-default"
185
- */
186
- mode: "prefix-no-default",
187
-
188
- /**
189
- * Where to store the user's selected locale.
190
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
191
- * Default: ['cookie', 'header']
192
- */
193
- storage: ["cookie", "header"],
194
-
195
- /**
196
- * Base path for the application URLs.
197
- * Default: ""
198
- */
199
- basePath: "",
200
-
201
- /**
202
- * Custom URL rewriting rules for locale-specific paths.
203
- */
204
- rewrite: nextjsRewrite({
205
- "/[locale]/about": {
206
- en: "/[locale]/about",
207
- fr: "/[locale]/a-propos",
208
- },
209
- }),
210
- },
211
-
212
- /**
213
- * Settings for finding and processing content files.
214
- */
215
- content: {
216
- /**
217
- * File extensions to scan for dictionaries.
218
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
219
- */
220
- fileExtensions: [".content.ts", ".content.js", ".content.json"],
221
-
222
- /**
223
- * Directories where .content files are located.
224
- * Default: ["."]
225
- */
226
- contentDir: ["src"],
227
-
228
- /**
229
- * Directories where source code is located.
230
- * Used for build optimization and code transformation.
231
- * Default: ["."]
232
- */
233
- codeDir: ["src"],
234
-
235
- /**
236
- * Patterns to exclude from scanning.
237
- * Default: ['node_modules', '.intlayer', etc.]
238
- */
239
- excludedPath: ["node_modules"],
240
-
241
- /**
242
- * Whether to watch for changes and rebuild dictionaries in development.
243
- * Default: true in development
244
- */
245
- watch: true,
246
-
247
- /**
248
- * Command to format newly created / updated .content files.
249
- */
250
- formatCommand: 'npx prettier --write "{{file}}"',
251
- },
252
-
253
- /**
254
- * Visual Editor configuration.
255
- */
256
- editor: {
257
- /**
258
- * Whether the visual editor is enabled.
259
- * Default: false
260
- */
261
- enabled: true,
262
-
263
- /**
264
- * URL of your application for origin validation.
265
- * Default: ""
266
- */
267
- applicationURL: "http://localhost:3000",
268
-
269
- /**
270
- * Port for the local editor server.
271
- * Default: 8000
272
- */
273
- port: 8000,
274
-
275
- /**
276
- * Public URL for the editor.
277
- * Default: "http://localhost:8000"
278
- */
279
- editorURL: "http://localhost:8000",
280
-
281
- /**
282
- * Intlayer CMS URL.
283
- * Default: "https://app.intlayer.org"
284
- */
285
- cmsURL: "https://app.intlayer.org",
286
-
287
- /**
288
- * Backend API URL.
289
- * Default: "https://back.intlayer.org"
290
- */
291
- backendURL: "https://back.intlayer.org",
292
-
293
- /**
294
- * Whether to enable real-time content synchronization.
295
- * Default: false
296
- */
297
- liveSync: true,
298
- },
299
-
300
- /**
301
- * AI-powered translation and generation settings.
302
- */
303
- ai: {
304
- /**
305
- * AI provider to use.
306
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
307
- * Default: 'openai'
308
- */
309
- provider: "openai",
310
-
311
- /**
312
- * Model to use from the selected provider.
313
- */
314
- model: "gpt-4o",
315
-
316
- /**
317
- * Provider API key.
318
- */
319
- apiKey: process.env.OPENAI_API_KEY,
320
-
321
- /**
322
- * Global context to guide the AI in generating translations.
323
- */
324
- baseURL: "http://localhost:3000",
325
-
326
- /**
327
- * Сериализация данных
328
- *
329
- * Опции:
330
- * - "json": Стандартный, надежный; использует больше токенов.
331
- * - "toon": Меньше токенов, менее последователен, чем JSON.
332
- *
333
- * По умолчанию: "json"
334
- */
335
- dataSerialization: "json",
336
- },
337
-
338
- /**
339
- * Build and optimization settings.
340
- */
341
- build: {
342
- /**
343
- * Build execution mode.
344
- * - "auto": Automatic build during app build.
345
- * - "manual": Requires explicit build command.
346
- * Default: "auto"
347
- */
348
- mode: "auto",
349
-
350
- /**
351
- * Whether to optimize the final bundle by pruning unused dictionaries.
352
- * Default: true in production
353
- */
354
- optimize: true,
355
-
356
- /**
357
- * Output format for generated dictionary files.
358
- * Default: ['esm', 'cjs']
359
- */
360
- outputFormat: ["esm"],
361
-
362
- /**
363
- * Indicates if the build should check TypeScript types.
364
- * Default: false
365
- */
366
- checkTypes: false,
367
- },
368
-
369
- /**
370
- * Logger configuration.
371
- */
372
- log: {
373
- /**
374
- * Logging level.
375
- * - "default": Standard logging.
376
- * - "verbose": Detailed debug logging.
377
- * - "disabled": No logging.
378
- * Default: "default"
379
- */
380
- mode: "default",
381
-
382
- /**
383
- * Prefix for all log messages.
384
- * Default: "[intlayer]"
385
- */
386
- prefix: "[intlayer]",
387
- },
388
-
389
- /**
390
- * System configuration (Advanced use cases)
391
- */
392
- system: {
393
- /**
394
- * Directory for storing localization dictionaries.
395
- */
396
- dictionariesDir: ".intlayer/dictionary",
397
-
398
- /**
399
- * Directory for module augmentation.
400
- */
401
- moduleAugmentationDir: ".intlayer/types",
402
-
403
- /**
404
- * Directory for storing unmerged dictionaries.
405
- */
406
- unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
407
-
408
- /**
409
- * Directory for storing dictionary types.
410
- */
411
- typesDir: ".intlayer/types",
412
-
413
- /**
414
- * Directory where main application files are stored.
415
- */
416
- mainDir: ".intlayer/main",
417
-
418
- /**
419
- * Directory where the configuration files are stored.
420
- */
421
- configDir: ".intlayer/config",
422
-
423
- /**
424
- * Directory where the cache files are stored.
425
- */
426
- cacheDir: ".intlayer/cache",
427
- },
428
-
429
- /**
430
- * Compiler configuration (Advanced use cases)
431
- */
432
- compiler: {
433
- /**
434
- * Указывает, должен ли компилятор быть включен.
435
- *
436
- * - false : Отключить компилятор.
437
- * - true : Включить компилятор.
438
- * - "build-only" : Пропустить компилятор во время разработки для ускорения запуска.
439
- *
440
- * По умолчанию : false
441
- */
442
- enabled: true,
443
-
444
- /**
445
- * Определяет путь к выходным файлам. Заменяет `outputDir`.
446
- *
447
- * - Пути `./` разрешаются относительно каталога компонента.
448
- * - Пути `/` разрешаются относительно корня проекта (`baseDir`).
449
- *
450
- * - Включение переменной `{{locale}}` в путь приведет к генерации отдельных словарей для каждой локали.
451
- *
452
- * Пример:
453
- * ```ts
454
- * {
455
- * // Создавать многоязычные файлы .content.ts рядом с компонентом
456
- * output: ({ fileName, extension }) => `./${fileName}${extension}`,
457
- *
458
- * // output: './{{fileName}}{{extension}}', // Эквивалент с использованием строки шаблона
459
- * }
460
- * ```
461
- *
462
- * ```ts
463
- * {
464
- * // Создавать централизованные JSON по локалям в корне проекта
465
- * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
466
- *
467
- * // output: '/locales/{{locale}}/{{key}}.content.json', // Эквивалент с использованием строки шаблона
468
- * }
469
- * ```
470
- *
471
- * Список переменных:
472
- * - `fileName`: Имя файла.
473
- * - `key`: Ключ контента.
474
- * - `locale`: Локаль контента.
475
- * - `extension`: Расширение файла.
476
- * - `componentFileName`: Имя файла компонента.
477
- * - `componentExtension`: Расширение файла компонента.
478
- * - `format`: Формат словаря.
479
- * - `componentFormat`: Формат словаря компонента.
480
- * - `componentDirPath`: Путь к каталогу компонента.
481
- */
482
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
483
-
484
- /**
485
- * Указывает, должны ли компоненты сохраняться после трансформации.
486
- * Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
487
- */
488
- saveComponents: false,
489
-
490
- /**
491
- * Вставьте только содержимое в сгенерированный файл. Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
492
- */
493
- noMetadata: false,
494
-
495
- /**
496
- * Префикс ключа словаря
497
- */
498
- dictionaryKeyPrefix: "", // Добавьте необязательный префикс для извлеченных ключей словаря
499
- },
500
-
501
- /**
502
- * Custom schemas to validate the dictionaries content.
503
- */
504
- schemas: {
505
- "my-schema": z.object({
506
- title: z.string(),
507
- }),
508
- },
509
-
510
- /**
511
- * Plugins configuration.
512
- */
513
- plugins: [],
514
- };
515
-
516
- export default config;
517
- ````
518
-
519
- ## Справочник по конфигурации
520
-
521
- В следующих разделах описаны различные настройки конфигурации, доступные в Intlayer.
522
-
523
- ---
524
-
525
- ### Конфигурация интернационализации
526
-
527
- Определяет настройки, связанные с интернационализацией, включая доступные локали и локаль по умолчанию для приложения.
528
-
529
- #### Свойства
530
-
531
- - **locales**:
532
- - _Тип_: `string[]`
533
- - _По умолчанию_: `['en']`
534
- - _Описание_: Список поддерживаемых локалей в приложении.
535
- - _Пример_: `['en', 'fr', 'es']`
536
-
537
- - **requiredLocales**:
538
- - _Тип_: `string[]`
539
- - _По умолчанию_: `[]`
540
- - _Описание_: Список обязательных локалей в приложении.
541
- - _Пример_: `[]`
542
- - _Примечание_: Если пусто, все локали обязательны в режиме `strict`.
543
- - _Примечание_: Убедитесь, что обязательные локали также определены в поле `locales`.
544
- - **strictMode**:
545
- - _Тип_: `string`
546
- - _По умолчанию_: `inclusive`
547
- - _Описание_: Обеспечивает строгую реализацию интернационализированного контента с использованием typescript.
548
- - _Примечание_: Если установлено значение "strict", функция перевода `t` потребует определения каждой объявленной локали. Если одна локаль отсутствует или не объявлена в вашей конфигурации, будет выброшена ошибка.
549
- - _Примечание_: Если установлено значение "inclusive", функция перевода `t` потребует определения каждой объявленной локали. Если одна локаль отсутствует, будет выдано предупреждение. Но будет принято, если локаль не объявлена в вашей конфигурации, но существует.
550
- - _Примечание_: Если установлено значение "loose", функция перевода `t` примет любую существующую локаль.
551
-
552
- - **defaultLocale**:
553
- - _Тип_: `string`
554
- - _По умолчанию_: `'en'`
555
- - _Описание_: Локаль по умолчанию, используемая в качестве резервной, если запрошенная локаль не найдена.
556
- - _Пример_: `'en'`
557
- - _Примечание_: Используется для определения локали, когда она не указана в URL, cookie или заголовке.
558
-
559
- ---
560
-
561
- ### Конфигурация редактора
562
-
563
- Определяет настройки, связанные с интегрированным редактором, включая порт сервера и статус активности.
564
-
565
- #### Свойства
566
-
567
- - **applicationURL**:
568
- - _Тип_: `string`
569
- - _По умолчанию_: `http://localhost:3000`
570
- - _Описание_: URL приложения. Используется для ограничения источника редактора по соображениям безопасности.
571
- - _Пример_:
572
- - `'http://localhost:3000'`
573
- - `'https://example.com'`
574
- - `process.env.INTLAYER_EDITOR_URL`
575
- - _Примечание_: URL приложения. Используется для ограничения источника редактора по соображениям безопасности. Если установлено значение `'*'`, редактор доступен с любого источника.
576
-
577
- - **port**:
578
- - _Тип_: `number`
579
- - _По умолчанию_: `8000`
580
- - _Описание_: Порт, используемый сервером визуального редактора.
581
-
582
- - **editorURL**:
583
- - _Тип_: `string`
584
- - _По умолчанию_: `'http://localhost:8000'`
585
- - _Описание_: URL сервера редактора. Используется для ограничения источника редактора по соображениям безопасности.
586
- - `'http://localhost:3000'`
587
- - `'https://example.com'`
588
- - `process.env.INTLAYER_EDITOR_URL`
589
- - _Примечание_: URL сервера редактора, к которому нужно обращаться из приложения. Используется для ограничения источников, которые могут взаимодействовать с приложением, в целях безопасности. Если установлено значение `'*'`, редактор доступен с любого источника. Должно быть установлено, если порт изменён или если редактор размещён на другом домене.
590
-
591
- - **cmsURL**:
592
- - _Тип_: `string`
593
- - _По умолчанию_: `'https://intlayer.org'`
594
- - _Описание_: URL Intlayer CMS.
595
- - _Пример_: `'https://intlayer.org'`
596
- - _Примечание_: URL Intlayer CMS.
597
-
598
- - **backendURL**:
599
- - _Тип_: `string`
600
- - _По умолчанию_: `https://back.intlayer.org`
601
- - _Описание_: URL сервера бэкенда.
602
- - _Пример_: `http://localhost:4000`
603
-
604
- - **enabled**:
605
- - _Тип_: `boolean`
606
- - _По умолчанию_: `true`
607
- - _Описание_: Указывает, взаимодействует ли приложение с визуальным редактором.
608
- - _Пример_: `process.env.NODE_ENV !== 'production'`
609
- - _Примечание_: Если значение true, редактор сможет взаимодействовать с приложением. Если false, редактор не сможет взаимодействовать с приложением. В любом случае, редактор может быть включен только визуальным редактором. Отключение редактора для определённых окружений является способом обеспечения безопасности.
610
-
611
- - **clientId**:
612
- - _Тип_: `string` | `undefined`
613
- - _По умолчанию_: `undefined`
614
- - _Описание_: clientId и clientSecret позволяют пакетам intlayer аутентифицироваться на сервере с использованием аутентификации oAuth2. Токен доступа используется для аутентификации пользователя, связанного с проектом. Чтобы получить токен доступа, перейдите на https://app.intlayer.org/project и создайте учетную запись.
615
- - _Пример_: `true`
616
- - _Примечание_: Важно: clientId и clientSecret должны храниться в секрете и не должны быть доступны публично. Пожалуйста, убедитесь, что они хранятся в безопасном месте, например, в переменных окружения.
617
-
618
- - **clientSecret**:
619
- - _Тип_: `string` | `undefined`
620
- - _По умолчанию_: `undefined`
621
- - _Описание_: clientId и clientSecret позволяют пакетам intlayer аутентифицироваться на сервере с помощью аутентификации oAuth2. Токен доступа используется для аутентификации пользователя, связанного с проектом. Чтобы получить токен доступа, перейдите на https://app.intlayer.org/project и создайте учетную запись.
622
- - _Пример_: `true`
623
- - _Примечание_: Важно: clientId и clientSecret должны храниться в секрете и не должны быть доступны публично. Пожалуйста, храните их в безопасном месте, например, в переменных окружения.
624
-
625
- - **dictionaryPriorityStrategy**:
626
- - _Тип_: `string`
627
- - _По умолчанию_: `'local_first'`
628
- - _Описание_: Стратегия приоритизации словарей в случае наличия как локальных, так и удалённых словарей. Если установлено значение `'distant_first'`, приложение будет отдавать приоритет удалённым словарям перед локальными. Если установлено значение `'local_first'`, приложение будет отдавать приоритет локальным словарям перед удалёнными.
629
- - _Пример_: `'distant_first'`
630
-
631
- - **liveSync**:
632
- - _Тип_: `boolean`
633
- - _По умолчанию_: `false`
634
- - _Описание_: Указывает, должен ли сервер приложения автоматически обновлять содержимое приложения при обнаружении изменений в CMS / Визуальном редакторе / Бэкенде.
635
- - _Пример_: `true`
636
- - _Примечание_: Например, когда добавляется или обновляется новый словарь, приложение обновит содержимое для отображения на странице.
637
- - _Примечание_: Live sync требует внешнего размещения контента приложения на другом сервере. Это может немного повлиять на производительность приложения. Чтобы ограничить это, мы рекомендуем размещать приложение и сервер live sync на одной машине. Также комбинация live sync и `optimize` может привести к значительному количеству запросов к серверу live sync. В зависимости от вашей инфраструктуры, мы рекомендуем протестировать оба варианта и их комбинацию.
638
-
639
- - **liveSyncPort**:
640
- - _Тип_: `number`
641
- - _По умолчанию_: `4000`
642
- - _Описание_: Порт сервера live sync.
643
- - _Пример_: `4000`
644
- - _Примечание_: Порт сервера live sync.
645
-
646
- - **liveSyncURL**:
647
- - _Тип_: `string`
648
- - _По умолчанию_: `'http://localhost:{liveSyncPort}'`
649
- - _Описание_: URL сервера live sync.
650
- - _Пример_: `'https://example.com'`
651
- - _Примечание_: По умолчанию указывает на localhost, но может быть изменён на любой URL в случае удалённого сервера live sync.
652
-
653
- ### Конфигурация Middleware
654
-
655
- Настройки, управляющие поведением middleware, включая обработку cookies, заголовков и префиксов URL для управления локализацией.
656
-
657
- #### Свойства
658
-
659
- - **headerName**:
660
- - _Тип_: `string`
661
- - _По умолчанию_: `'x-intlayer-locale'`
662
- - _Описание_: Имя HTTP-заголовка, используемого для определения локали.
663
- - _Пример_: `'x-custom-locale'`
664
- - _Примечание_: Полезно для определения локали через API.
665
-
666
- - **cookieName**:
667
- - _Тип_: `string`
668
- - _По умолчанию_: `'intlayer-locale'`
669
- - _Описание_: Имя cookie, используемого для хранения локали.
670
- - _Пример_: `'custom-locale'`
671
- - _Примечание_: Используется для сохранения локали между сессиями.
672
-
673
- - **prefixDefault**:
674
- - _Тип_: `boolean`
675
- - _По умолчанию_: `false`
676
- - _Описание_: Включать ли локаль по умолчанию в URL.
677
- - _Пример_: `true`
678
- - _Примечание_:
679
- - Если `true` и `defaultLocale = 'en'`: путь = `/en/dashboard` или `/fr/dashboard`
680
- - Если `false` и `defaultLocale = 'en'`: путь = `/dashboard` или `/fr/dashboard`
681
-
682
- - **basePath**:
683
- - _Тип_: `string`
684
- - _По умолчанию_: `''`
685
- - _Описание_: Базовый путь для URL приложения.
686
- - _Пример_: `'/my-app'`
687
- - _Примечание_:
688
- - Если приложение размещено по адресу `https://example.com/my-app`
689
- - Базовый путь будет `'/my-app'`
690
- - URL будет `https://example.com/my-app/en`
691
- - Если базовый путь не установлен, URL будет `https://example.com/en`
692
-
693
- - **rewrite**:
694
- - _Тип_: `Record<string, StrictModeLocaleMap<string>>`
695
- - _По умолчанию_: `undefined`
696
- - _Описание_: Пользовательские правила перезаписи URL, которые переопределяют режим маршрутизации по умолчанию для определенных путей. Позволяет определять пути, специфичные для языка, которые отличаются от стандартного поведения маршрутизации. Поддерживает динамические параметры маршрута с использованием синтаксиса `[param]`.
697
- - _Пример_:
698
- ```typescript
699
- routing: {
700
- mode: "prefix-no-default", // Стратегия отката
701
- rewrite: nextjsRewrite({
702
- "/[locale]/about": {
703
- en: "/[locale]/about",
704
- fr: "/[locale]/a-propos",
705
- },
706
- "/[locale]/product/[slug]": {
707
- en: "/[locale]/product/[slug]",
708
- fr: "/[locale]/produit/[slug]",
709
- },
710
- "/[locale]/blog/[category]/[id]": {
711
- en: "/[locale]/blog/[category]/[id]",
712
- fr: "/[locale]/journal/[category]/[id]",
713
- },
714
- }),
715
- }
716
- ```
717
- - _Примечание_: Правила перезаписи имеют приоритет над поведением `mode` по умолчанию. Если путь соответствует правилу перезаписи, будет использован локализованный путь из конфигурации перезаписи вместо стандартного префикса языка.
718
- - _Примечание_: Динамические параметры маршрута поддерживаются с использованием нотации в квадратных скобках (например, `[slug]`, `[id]`). Значения параметров автоматически извлекаются из URL и интерполируются в перезаписанный путь.
719
- - _Примечание_: Работает с приложениями Next.js и Vite. Промежуточное ПО/прокси автоматически перезапишет входящие запросы, чтобы соответствовать внутренней структуре маршрута.
720
- - _Примечание_: При генерации URL с помощью `getLocalizedUrl()` правила перезаписи автоматически применяются, если они соответствуют предоставленному пути.
721
- - _Ссылка_: Дополнительную информацию см. в разделе [Пользовательская перезапись URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/custom_url_rewrites.md).
722
-
723
- - **serverSetCookie**:
724
- - _Тип_: `string`
725
- - _По умолчанию_: `'always'`
726
- - _Описание_: Правило установки cookie локали на сервере.
727
- - _Опции_: `'always'`, `'never'`
728
- - _Пример_: `'never'`
729
- - _Примечание_: Управляет тем, устанавливается ли cookie локали при каждом запросе или никогда.
730
-
731
- - **noPrefix**:
732
- - _Тип_: `boolean`
733
- - _По умолчанию_: `false`
734
- - _Описание_: Нужно ли опускать префикс локали в URL.
735
- - _Пример_: `true`
736
- - _Примечание_:
737
- - Если `true`: префикс в URL отсутствует
738
- - Если `false`: префикс в URL присутствует
739
- - Пример с `basePath = '/my-app'`:
740
- - Если `noPrefix = false`: URL будет `https://example.com/my-app/en`
741
- - Если `noPrefix = true`: URL будет `https://example.com`
742
-
743
- ---
744
-
745
- ### Конфигурация контента
746
-
747
- Настройки, связанные с обработкой контента в приложении, включая имена каталогов, расширения файлов и производные конфигурации.
748
-
749
- #### Свойства
750
-
751
- - **autoFill**:
752
- - _Тип_: `boolean | string | FilePathPattern | { [key in Locales]?: string }`
753
- - _По умолчанию_: `undefined`
754
- - _Описание_: Указывает, как содержимое должно автоматически заполняться с помощью ИИ. Может быть объявлено глобально в файле `intlayer.config.ts`.
755
- - _Пример_: true
756
- - _Пример_: `'./{{fileName}}.content.json'`
757
- - _Пример_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
758
- - _Примечание_: Конфигурация автозаполнения. Может быть:
759
- - boolean: Включить автозаполнение для всех локалей
760
- - string: Путь к одному файлу или шаблону с переменными
761
- - object: Пути к файлам для каждой локали
762
-
763
- - **watch**:
764
- - _Тип_: `boolean`
765
- - _По умолчанию_: `process.env.NODE_ENV === 'development'`
766
- - _Описание_: Указывает, должен ли Intlayer отслеживать изменения в файлах декларации контента в приложении для перестройки соответствующих словарей.
767
-
768
- - **fileExtensions**:
769
- - _Тип_: `string[]`
770
- - _По умолчанию_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
771
- - _Описание_: Расширения файлов, которые следует искать при построении словарей.
772
- - _Пример_: `['.data.ts', '.data.js', '.data.json']`
773
- - _Примечание_: Настройка расширений файлов может помочь избежать конфликтов.
774
-
775
- - **contentDir**:
776
- - _Тип_: `string[]`
777
- - _По умолчанию_: `['.']`
778
- - _Пример_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
779
- - _Описание_: Путь к директории, где хранятся файлы определений контента (`.content.*`).
780
- - _Примечание_: Используется для отслеживания файлов контента для перестройки словарей.
781
-
782
- - **codeDir**:
783
- - _Тип_: `string[]`
784
- - _По умолчанию_: `['.']`
785
- - _Пример_: `['src', '../../ui-library']`
786
- - _Описание_: Путь к директории, где хранится код, относительно базовой директории.
787
- - _Примечание_: Используется для отслеживания файлов кода для преобразования (обрезка, оптимизация). Разделение этого от `contentDir` может улучшить производительность сборки, избегая ненужных сканирований файлов контента.
788
-
789
- - **excludedPath**:
790
- - _Тип_: `string[]`
791
- - _По умолчанию_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
792
- - _Описание_: Каталоги, исключённые из поиска контента.
793
- - _Примечание_: Эта настройка пока не используется, но планируется к реализации в будущем.
794
-
795
- - **formatCommand**:
796
- - _Тип_: `string`
797
- - _По умолчанию_: `undefined`
798
- - _Описание_: Команда для форматирования контента. Когда Intlayer записывает ваши файлы .content локально, эта команда будет использоваться для форматирования контента.
799
- - _Пример_: `'npx prettier --write "{{file}}" --log-level silent'` Использование Prettier
800
- - _Пример_: `'npx biome format "{{file}}" --write --log-level none'` Использование Biome
801
- - _Пример_: `'npx eslint --fix "{{file}}" --quiet'` Использование ESLint
802
- - _Примечание_: Intlayer заменит {{file}} на путь к файлу для форматирования.
803
- - _Примечание_: Если не установлено, Intlayer попытается автоматически обнаружить команду форматирования. Пытаясь разрешить следующие команды: prettier, biome, eslint.
804
-
805
- ---
806
-
807
- ### Конфигурация системы
808
-
809
- Настройки, связанные с внутренними путями и результатами вывода Intlayer. Эти настройки обычно являются внутренними и не должны изменяться пользователем.
810
-
811
- #### Свойства
812
-
813
- - **baseDir**:
814
- - _Тип_: `string`
815
- - _По умолчанию_: `process.cwd()`
816
- - _Описание_: Базовый каталог проекта.
817
- - _Пример_: `'/path/to/project'`
818
- - _Примечание_: Используется для разрешения всех директорий, связанных с Intlayer.
819
-
820
- - **dictionariesDir**:
821
- - _Тип_: `string`
822
- - _По умолчанию_: `'.intlayer/dictionary'`
823
- - _Описание_: Путь к каталогу для хранения словарей локализации.
824
-
825
- - **moduleAugmentationDir**:
826
- - _Тип_: `string`
827
- - _По умолчанию_: `'.intlayer/types'`
828
- - _Описание_: Директория для расширения модулей, что позволяет улучшить подсказки IDE и проверку типов.
829
- - _Пример_: `'intlayer-types'`
830
- - _Примечание_: Обязательно включите эту директорию в `tsconfig.json`.
831
-
832
- - **unmergedDictionariesDir**:
833
- - _Тип_: `string`
834
- - _По умолчанию_: `'.intlayer/unmerged_dictionary'`
835
- - _Описание_: Директория для хранения неслитых словарей.
836
-
837
- - **typesDir**:
838
- - _Тип_: `string`
839
- - _По умолчанию_: `'.intlayer/types'`
840
- - _Описание_: Каталог для хранения типов словарей.
841
-
842
- - **mainDir**:
843
- - _Тип_: `string`
844
- - _По умолчанию_: `'.intlayer/main'`
845
- - _Описание_: Каталог, где хранятся основные файлы приложения.
846
-
847
- - **configDir**:
848
- - _Тип_: `string`
849
- - _По умолчанию_: `'.intlayer/config'`
850
- - _Описание_: Каталог, где хранятся файлы конфигурации.
851
-
852
- - **cacheDir**:
853
- - _Тип_: `string`
854
- - _По умолчанию_: `'.intlayer/cache'`
855
- - _Описание_: Каталог, где хранятся файлы кэша.
856
-
857
- ### Конфигурация словаря
858
-
859
- Настройки, управляющие операциями словаря, включая поведение автоматического заполнения и генерацию контента.
860
-
861
- Эта конфигурация словаря служит двум основным целям:
862
-
863
- 1. **Значения по умолчанию**: Определение значений по умолчанию при создании файлов объявления контента
864
- 2. **Поведение отката**: Предоставление значений отката, когда определённые поля не определены, позволяя вам глобально определить поведение операций словаря
865
-
866
- Для получения дополнительной информации о файлах объявления контента и о том, как применяются значения конфигурации, см. [Документацию файла контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md).
867
-
868
- #### Свойства
869
-
870
- - **fill**
871
- - **description**
872
- - **locale**
873
- - **location**
874
- - **priority**
875
- - **live**
876
- - **schema**
877
- - **title**
878
- - **tags**
879
- - **version**
880
-
881
- ---
882
-
883
- ### Конфигурация логгера
884
-
885
- Настройки, управляющие логгером, включая префикс для использования.
886
-
887
- #### Свойства
888
-
889
- - **mode**:
890
- - _Тип_: `string`
891
- - _По умолчанию_: `default`
892
- - _Описание_: Указывает режим работы логгера.
893
- - _Опции_: `default`, `verbose`, `disabled`
894
- - _Пример_: `default`
895
- - _Примечание_: Режим работы логгера. Режим verbose выводит больше информации и может использоваться для отладки. Режим disabled отключает логгер.
896
-
897
- - **prefix**:
898
- - _Тип_: `string`
899
- - _По умолчанию_: `'[intlayer] '`
900
- - _Описание_: Префикс логгера.
901
- - _Пример_: `'[my custom prefix] '`
902
- - _Примечание_: Префикс логгера.
903
-
904
- ### Конфигурация ИИ
905
-
906
- Настройки, управляющие функциями ИИ в Intlayer, включая провайдера, модель и API-ключ.
907
-
908
- Эта конфигурация является необязательной, если вы зарегистрированы на [Панели управления Intlayer](https://app.intlayer.org/project) с использованием ключа доступа. Intlayer автоматически управляет наиболее эффективным и экономичным решением ИИ для ваших нужд. Использование настроек по умолчанию обеспечивает лучшую долгосрочную поддержку, поскольку Intlayer постоянно обновляется для использования наиболее актуальных моделей.
909
-
910
- Если вы предпочитаете использовать собственный API-ключ или конкретную модель, вы можете определить свою собственную конфигурацию ИИ.
911
- Эта конфигурация ИИ будет использоваться глобально во всей вашей среде Intlayer. Команды CLI будут использовать эти настройки по умолчанию для команд (например, `fill`), а также SDK, Визуальный редактор и CMS. Вы можете переопределить эти значения по умолчанию для конкретных случаев использования с помощью параметров команд.
912
-
913
- Intlayer поддерживает несколько провайдеров ИИ для повышения гибкости и выбора. В настоящее время поддерживаются следующие провайдеры:
914
-
915
- - **OpenAI** (по умолчанию)
916
- - **Anthropic Claude**
917
- - **Mistral AI**
918
- - **DeepSeek**
919
- - **Google Gemini**
920
- - **Meta Llama**
921
- - **Ollama**
922
- - **OpenRouter**
923
- - **Alibaba Cloud**
924
- - **Fireworks**
925
- - **Hugging Face**
926
- - **Groq**
927
- - **Amazon Bedrock**
928
- - **Google AI Studio**
929
- - **Google Vertex**
930
- - **Together.ai**
931
- - **ollama**
932
-
933
- #### Свойства
934
-
935
- - **provider**:
936
- - _Тип_: `string`
937
- - _По умолчанию_: `'openai'`
938
- - _Описание_: Провайдер, используемый для функций ИИ в Intlayer.
939
- - _Опции_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
940
- - _Пример_: `'anthropic'`
941
- - _Примечание_: Разные провайдеры могут требовать разные API-ключи и иметь различные модели ценообразования.
942
-
943
- - **model**:
944
- - _Тип_: `string`
945
- - _По умолчанию_: Нет
946
- - _Описание_: Модель, используемая для функций ИИ в Intlayer.
947
- - _Пример_: `'gpt-4o-2024-11-20'`
948
- - _Примечание_: Конкретная модель зависит от провайдера.
949
-
950
- - **temperature**:
951
- - _Тип_: `number`
952
- - _По умолчанию_: Нет
953
- - _Описание_: Параметр temperature контролирует случайность ответов ИИ.
954
- - _Пример_: `0.1`
955
- - _Примечание_: Более высокое значение temperature делает ИИ более креативным и менее предсказуемым.
956
-
957
- - **apiKey**:
958
- - _Тип_: `string`
959
- - _По умолчанию_: Нет
960
- - _Описание_: Ваш API-ключ для выбранного провайдера.
961
- - _Пример_: `process.env.OPENAI_API_KEY`
962
- - _Примечание_: Важно: ключи API должны храниться в секрете и не должны быть доступны публично. Пожалуйста, убедитесь, что они хранятся в безопасном месте, например, в переменных окружения.
963
-
964
- - **applicationContext**:
965
- - _Тип_: `string`
966
- - _По умолчанию_: Нет
967
- - _Описание_: Предоставляет дополнительный контекст о вашем приложении для модели ИИ, помогая ей генерировать более точные и контекстно уместные переводы. Это может включать информацию о домене вашего приложения, целевой аудитории, тоне или специфической терминологии.
968
-
969
- - **baseURL**:
970
- - _Тип_: `string`
971
- - _По умолчанию_: Нет
972
- - _Описание_: Базовый URL для API ИИ.
973
- - _Пример_: `'https://api.openai.com/v1'`
974
- - _Примечание_: Может использоваться для указания локальной или пользовательской конечной точки API ИИ.
975
-
976
- - **dataSerialization**:
977
- - _Тип_: `'json' | 'toon'`
978
- - _По умолчанию_: `'json'`
979
- - _Описание_: Формат сериализации данных для использования в функциях ИИ Intlayer.
980
- - _Пример_: `'toon'`
981
- - _Примечание_: `json`: Стандартный, надежный; использует больше токенов. `toon`: Меньше токенов, менее стабильный, чем JSON.
982
-
983
- ### Конфигурация сборки
984
-
985
- Настройки, которые контролируют, как Intlayer оптимизирует и собирает интернационализацию вашего приложения.
986
-
987
- Опции сборки применяются к плагинам `@intlayer/babel` и `@intlayer/swc`.
988
-
989
- > В режиме разработки Intlayer использует статические импорты словарей для упрощения процесса разработки.
990
-
991
- > При оптимизации Intlayer заменяет вызовы словарей для оптимизации разбиения на чанки, так что итоговый бандл импортирует только те словари, которые действительно используются.
992
-
993
- #### Свойства
994
-
995
- - **mode**:
996
- - _Тип_: `'auto' | 'manual'`
997
- - _По умолчанию_: `'auto'`
998
- - _Описание_: Управляет режимом сборки.
999
- - _Пример_: `'manual'`
1000
- - _Примечание_: Если 'auto', сборка будет автоматически включена при сборке приложения.
1001
- - _Примечание_: Если 'manual', сборка будет установлена только при выполнении команды сборки.
1002
- - _Примечание_: Может использоваться для отключения сборки словарей, например, когда следует избегать выполнения в среде Node.js.
1003
-
1004
- - **checkTypes**:
1005
- - _Тип_: `boolean`
1006
- - _По умолчанию_: `false`
1007
- - _Описание_: Указывает, должна ли сборка проверять типы TypeScript и регистрировать ошибки.
1008
- - _Примечание_: Это может замедлить процесс сборки.
1009
-
1010
- - **optimize**:
1011
- - _Тип_: `boolean`
1012
- - _По умолчанию_: `process.env.NODE_ENV === 'production'`
1013
- - _Описание_: Управляет тем, должна ли сборка быть оптимизирована.
1014
- - _Пример_: `true`
1015
- - _Примечание_: При включении Intlayer заменит все вызовы словарей для оптимизации разбиения на чанки. Таким образом, итоговый бандл будет импортировать только используемые словари. Все импорты останутся статическими, чтобы избежать асинхронной обработки при загрузке словарей.
1016
- - _Примечание_: Intlayer заменит все вызовы `useIntlayer` на режим, определённый опцией `importMode`, а `getIntlayer`, на `getDictionary`.
1017
- - _Примечание_: Эта опция зависит от плагинов `@intlayer/babel` и `@intlayer/swc`.
1018
- - _Примечание_: Убедитесь, что все ключи объявлены статически в вызовах `useIntlayer`, например `useIntlayer('navbar')`.
1019
-
1020
- - **outputFormat**:
1021
- - _Тип_: `'esm' | 'cjs'`
1022
- - _По умолчанию_: `'esm'`
1023
- - _Описание_: Управляет форматом вывода словарей.
1024
- - _Пример_: `'cjs'`
1025
- - _Примечание_: Формат вывода словарей.
1026
-
1027
- - **traversePattern**:
1028
- - _Тип_: `string[]`
1029
- - _По умолчанию_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
1030
- - _Описание_: Шаблоны, определяющие, какие файлы должны быть обработаны во время оптимизации.
1031
- - _Пример_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
1032
- - _Примечание_: Используйте это, чтобы ограничить оптимизацию только релевантными файлами кода и улучшить производительность сборки.
1033
- - _Примечание_: Этот параметр будет игнорироваться, если `optimize` отключен.
1034
- - _Примечание_: Используйте шаблон glob.
1035
-
1036
- ---
1037
-
1038
- ### Конфигурация компилятора
1039
-
1040
- Настройки, управляющие компилятором Intlayer, который извлекает словари непосредственно из ваших компонентов.
1041
-
1042
- #### Свойства
1043
-
1044
- - **enabled**:
1045
- - _Тип_: `boolean | 'build-only'`
1046
- - _По умолчанию_: `true`
1047
- - _Описание_: Указывает, должен ли быть включен компилятор для извлечения словарей.
1048
- - _Пример_: `'build-only'`
1049
- - _Примечание_: Установка значения `'build-only'` позволит пропустить компилятор в режиме разработки для ускорения времени запуска. Он будет запускаться только при выполнении команд сборки.
1050
-
1051
- - **dictionaryKeyPrefix**:
1052
- - _Тип_: `string`
1053
- - _По умолчанию_: `''`
1054
- - _Описание_: Префикс для извлеченных ключей словаря.
1055
- - _Пример_: `'my-key-'`
1056
- - _Примечание_: При извлечении словарей ключ генерируется на основе имени файла. Этот префикс добавляется к сгенерированному ключу для предотвращения конфликтов.
1057
-
1058
- - **saveComponents**:
1059
- - _Тип_: `boolean`
1060
- - _По умолчанию_: `false`
1061
- - _Описание_: Указывает, должны ли компоненты сохраняться после преобразования.
1062
- - _Примечание_: Если установлено значение true, компилятор заменит оригинальные файлы преобразованными. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
1063
-
1064
- - **transformPattern**:
1065
- - _Тип_: `string | string[]`
1066
- - _По умолчанию_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
1067
- - _Описание_: Шаблоны, определяющие, какие файлы должны быть обработаны во время оптимизации.
1068
- - _Пример_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
1069
- - _Примечание_: Используйте это, чтобы ограничить оптимизацию только релевантными файлами кода и улучшить производительность сборки.
1070
-
1071
- - **excludePattern**:
1072
- - _Тип_: `string | string[]`
1073
- - _По умолчанию_: `['**/node_modules/**']`
1074
- - _Описание_: Шаблоны, определяющие, какие файлы должны быть исключены во время оптимизации.
1075
- - _Пример_: `['**/node_modules/**', '!**/node_modules/react/**']`
1076
-
1077
- - **output**:
1078
- - _Тип_: `FilePathPattern`
1079
- - _По умолчанию_: `undefined`
1080
- - _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические переменные через шаблоны строк или функцию. Поддерживаемые переменные: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` и `{{componentDirPath}}`.
1081
- - _Примечание_: Пути `./` разрешаются относительно каталога компонента. Пути `/` разрешаются относительно корня проекта (`baseDir`).
1082
- - _Примечание_: Включение переменной `{{locale}}` в путь приведет к генерации отдельных словарей для каждой локали.
1083
- - _Пример_:
1084
- - **Мультиязычные файлы рядом с компонентом**:
1085
- - Строка: `'./{{fileName}}{{extension}}'`
1086
- - Функция: `({ fileName, extension }) => \`./${fileName}${extension}\``
1087
-
1088
- - **Централизованный JSON по локалям**:
1089
- - Строка: `'/locales/{{locale}}/{{key}}.content.json'`
1090
- - Функция: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
1091
-
1092
- - **noMetadata**:
1093
- - _Тип_: `boolean`
1094
- - _По умолчанию_: `false`
1095
- - _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого). Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
1096
- - _Примечание_: Полезно при использовании с плагином `loadJSON`.
1097
- - _Пример_:
1098
- Если `true`:
1099
- ```json
1100
- {
1101
- "key": "value"
1102
- }
1103
- ```
1104
- Если `false`:
1105
- ```json
1106
- {
1107
- "key": "value",
1108
- "content": {
1109
- "key": "value"
1110
- }
1111
- }
1112
- ```