@intlayer/docs 8.4.5 → 8.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +20 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +20 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +1 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/configuration.md +520 -722
  8. package/docs/ar/intlayer_with_storybook.md +521 -0
  9. package/docs/bn/configuration.md +922 -0
  10. package/docs/bn/intlayer_with_hono.md +428 -0
  11. package/docs/de/configuration.md +369 -743
  12. package/docs/de/intlayer_with_storybook.md +521 -0
  13. package/docs/en/configuration.md +181 -507
  14. package/docs/en/intlayer_with_storybook.md +521 -0
  15. package/docs/en-GB/configuration.md +456 -657
  16. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  17. package/docs/es/configuration.md +379 -754
  18. package/docs/es/intlayer_with_storybook.md +521 -0
  19. package/docs/fr/configuration.md +376 -757
  20. package/docs/fr/intlayer_with_storybook.md +521 -0
  21. package/docs/hi/configuration.md +532 -728
  22. package/docs/hi/intlayer_with_storybook.md +521 -0
  23. package/docs/id/configuration.md +371 -684
  24. package/docs/id/intlayer_with_storybook.md +521 -0
  25. package/docs/it/configuration.md +397 -775
  26. package/docs/it/intlayer_with_storybook.md +521 -0
  27. package/docs/ja/configuration.md +525 -724
  28. package/docs/ja/intlayer_with_storybook.md +521 -0
  29. package/docs/ko/configuration.md +525 -724
  30. package/docs/ko/intlayer_with_storybook.md +521 -0
  31. package/docs/pl/configuration.md +430 -734
  32. package/docs/pl/intlayer_with_storybook.md +521 -0
  33. package/docs/pt/configuration.md +375 -746
  34. package/docs/pt/intlayer_with_storybook.md +521 -0
  35. package/docs/ru/configuration.md +532 -701
  36. package/docs/ru/intlayer_with_storybook.md +521 -0
  37. package/docs/tr/configuration.md +527 -719
  38. package/docs/tr/intlayer_with_storybook.md +521 -0
  39. package/docs/uk/configuration.md +425 -744
  40. package/docs/uk/intlayer_with_storybook.md +521 -0
  41. package/docs/ur/configuration.md +922 -0
  42. package/docs/ur/intlayer_with_hono.md +428 -0
  43. package/docs/vi/configuration.md +412 -753
  44. package/docs/vi/intlayer_with_storybook.md +521 -0
  45. package/docs/zh/configuration.md +521 -714
  46. package/docs/zh/intlayer_with_storybook.md +521 -0
  47. package/package.json +6 -6
  48. package/src/generated/docs.entry.ts +20 -0
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
4
- title: Конфигурация
5
- description: Узнайте, как настроить Intlayer для вашего приложения. Поймите различные параметры и опции, доступные для настройки Intlayer под ваши нужды.
3
+ updatedAt: 2026-03-20
4
+ title: Конфигурация (Configuration)
5
+ description: Узнайте, как настроить Intlayer для вашего приложения. Поймите различные настройки и опции, доступные для настройки Intlayer в соответствии с вашими потребностями.
6
6
  keywords:
7
7
  - Конфигурация
8
8
  - Настройки
@@ -14,58 +14,88 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 8.4.0
18
+ date: 2026-03-20
19
+ changes: Добавлена нотация объектов по локалям для 'compiler.output' и 'dictionary.fill'
17
20
  - version: 8.3.0
18
21
  date: 2026-03-11
19
- changes: Переместить 'baseDir' из конфигурации 'content' в конфигурацию 'system'
22
+ changes: Перенесен 'baseDir' из конфигурации 'content' в конфигурацию 'system'
20
23
  - version: 8.2.0
21
- date: 2026-03-10
22
- changes: Обновление опций компилятора, добавление поддержки 'output' и 'noMetadata'
24
+ date: 2026-03-09
25
+ changes: Обновлены параметры компилятора (compiler), добавлена поддержка для 'output' и 'noMetadata'
23
26
  - version: 8.1.7
24
27
  date: 2026-02-25
25
- changes: Обновление опций компилятора
28
+ changes: Обновлены параметры компилятора
29
+ - version: 8.1.5
30
+ date: 2026-02-23
31
+ changes: Добавлен параметр компилятора 'build-only' и префикс словаря
26
32
  - version: 8.0.6
27
33
  date: 2026-02-12
28
- changes: Добавление поддержки провайдеров Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face и Together.ai
34
+ changes: Добавлена поддержка провайдеров Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face и Together.ai
29
35
  - version: 8.0.5
30
36
  date: 2026-02-06
31
- changes: Добавление `dataSerialization` в конфигурацию ИИ
37
+ changes: Добавлен `dataSerialization` в конфигурацию AI
38
+ - version: 8.0.0
39
+ date: 2026-01-24
40
+ changes: Переименован режим импорта `live` в `fetch` для лучшего описания базового механизма.
41
+ - version: 8.0.0
42
+ date: 2026-01-22
43
+ changes: Перенесена конфигурация сборки `importMode` в конфигурацию `dictionary`.
32
44
  - version: 8.0.0
33
45
  date: 2026-01-22
34
- changes: Переместить конфигурацию сборки importMode в конфигурацию словаря.
46
+ changes: Добавлен параметр `rewrite` в конфигурацию маршрутизации
35
47
  - version: 8.0.0
36
48
  date: 2026-01-18
37
- changes: Разделение конфигурации системы и конфигурации контента. Перемещение внутренних путей в свойство `system`. Добавление `codeDir` для разделения файлов контента и преобразования кода.
49
+ changes: Разделена системная конфигурация и конфигурация контента. Внутренние пути перемещены в свойство `system`. Добавлен `codeDir` для разделения файлов контента и преобразования кода.
38
50
  - version: 8.0.0
39
51
  date: 2026-01-18
40
- changes: Добавлены опции словаря `location` и `schema`
52
+ changes: Добавлены параметры словаря `location` и `schema`
41
53
  - version: 7.5.1
42
54
  date: 2026-01-10
43
55
  changes: Добавлена поддержка форматов файлов JSON5 и JSONC
44
56
  - version: 7.5.0
45
57
  date: 2025-12-17
46
- changes: Добавлена опция `buildMode`
58
+ changes: Добавлен параметр `buildMode`
59
+ - version: 7.0.0
60
+ date: 2025-10-25
61
+ changes: Добавлена конфигурация `dictionary`
62
+ - version: 7.0.0
63
+ date: 2025-10-21
64
+ changes: Заменен `middleware` конфигурацией маршрутизации `routing`
65
+ - version: 7.0.0
66
+ date: 2025-10-12
67
+ changes: Добавлен параметр `formatCommand`
68
+ - version: 6.2.0
69
+ date: 2025-10-12
70
+ changes: Обновлен параметр `excludedPath`
71
+ - version: 6.0.2
72
+ date: 2025-09-23
73
+ changes: Добавлен параметр `outputFormat`
74
+ - version: 6.0.0
75
+ date: 2025-09-21
76
+ changes: Удалено поле `dictionaryOutput` и поле `i18nextResourcesDir`
47
77
  - version: 6.0.0
48
78
  date: 2025-09-16
49
79
  changes: Добавлен режим импорта `live`
50
80
  - version: 6.0.0
51
81
  date: 2025-09-04
52
- changes: Заменить поле `hotReload` на `liveSync` и добавить поля `liveSyncPort` и `liveSyncURL`
82
+ changes: Поле `hotReload` заменено на `liveSync`, добавлены поля `liveSyncPort` и `liveSyncURL`
53
83
  - version: 5.6.1
54
84
  date: 2025-07-25
55
- changes: Заменить `activateDynamicImport` на опцию `importMode`
85
+ changes: Поле `activateDynamicImport` заменено параметром `importMode`
56
86
  - version: 5.6.0
57
87
  date: 2025-07-13
58
- changes: Изменить значение по умолчанию для contentDir с `['src']` на `['.']`
88
+ changes: Изменен контентный каталог по умолчанию `contentDir` с `['src']` на `['.']`
59
89
  - version: 5.5.11
60
90
  date: 2025-06-29
61
- changes: Добавить команды `docs`
91
+ changes: Добавлены команды `docs`
62
92
  ---
63
93
 
64
94
  # Документация по конфигурации Intlayer
65
95
 
66
96
  ## Обзор
67
97
 
68
- Файлы конфигурации Intlayer позволяют настраивать различные аспекты плагина, такие как интернационализация, промежуточное ПО и обработка контента. В этом документе приведено подробное описание каждого свойства в конфигурации.
98
+ Конфигурационные файлы Intlayer позволяют настраивать различные аспекты плагина, такие как интернационализация (internationalization), промежуточное ПО (middleware) и обработка контента. Эта документация содержит подробное описание каждого свойства конфигурации.
69
99
 
70
100
  ---
71
101
 
@@ -75,9 +105,9 @@ history:
75
105
 
76
106
  ---
77
107
 
78
- ## Поддержка файлов конфигурации
108
+ ## Поддерживаемые форматы конфигурационных файлов
79
109
 
80
- Intlayer поддерживает форматы файлов конфигурации JSON, JS, MJS и TS:
110
+ Intlayer принимает форматы конфигурационных файлов JSON, JS, MJS и TS:
81
111
 
82
112
  - `intlayer.config.ts`
83
113
  - `intlayer.config.js`
@@ -90,7 +120,7 @@ Intlayer поддерживает форматы файлов конфигура
90
120
 
91
121
  ---
92
122
 
93
- ## Пример файла конфигурации
123
+ ## Пример конфигурационного файла
94
124
 
95
125
  ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
126
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -98,108 +128,108 @@ import { nextjsRewrite } from "intlayer/routing";
98
128
  import { z } from "zod";
99
129
 
100
130
  /**
101
- * Example Intlayer configuration file showing all available options.
131
+ * Пример конфигурационного файла Intlayer со всеми доступными параметрами.
102
132
  */
103
133
  const config: IntlayerConfig = {
104
134
  /**
105
- * Configuration for internationalization settings.
135
+ * Конфигурация настроек интернационализации.
106
136
  */
107
137
  internationalization: {
108
138
  /**
109
- * List of supported locales in the application.
110
- * Default: [Locales.ENGLISH]
139
+ * Список локалей (locales), поддерживаемых в приложении.
140
+ * По умолчанию: [Locales.ENGLISH]
111
141
  */
112
142
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
113
143
 
114
144
  /**
115
- * List of required locales that must be defined in every dictionary.
116
- * If empty, all locales are required in `strict` mode.
117
- * Default: []
145
+ * Список обязательных локалей, которые должны быть определены в каждом словаре.
146
+ * Если пуст, все локали обязательны в режиме `strict`.
147
+ * По умолчанию: []
118
148
  */
119
149
  requiredLocales: [Locales.ENGLISH],
120
150
 
121
151
  /**
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"
152
+ * Уровень строгости для интернационализированного контента.
153
+ * - "strict": Ошибка, если любая объявленная локаль отсутствует или не объявлена.
154
+ * - "inclusive": Предупреждение, если объявленная локаль отсутствует.
155
+ * - "loose": Принимает любую существующую локаль.
156
+ * По умолчанию: "inclusive"
127
157
  */
128
158
  strictMode: "inclusive",
129
159
 
130
160
  /**
131
- * Default locale used as a fallback if the requested locale is not found.
132
- * Default: Locales.ENGLISH
161
+ * Локаль по умолчанию, используемая в качестве резервной, если запрошенная локаль не найдена.
162
+ * По умолчанию: Locales.ENGLISH
133
163
  */
134
164
  defaultLocale: Locales.ENGLISH,
135
165
  },
136
166
 
137
167
  /**
138
- * Settings that control dictionary operations and fallback behavior.
168
+ * Настройки, управляющие операциями со словарями и поведением при отсутствии перевода.
139
169
  */
140
170
  dictionary: {
141
171
  /**
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"
172
+ * Управляет способом импорта словарей.
173
+ * - "static": Статически импортируется во время сборки.
174
+ * - "dynamic": Динамически импортируется с использованием Suspense.
175
+ * - "fetch": Динамически извлекается через Live Sync API.
176
+ * По умолчанию: "static"
147
177
  */
148
178
  importMode: "static",
149
179
 
150
180
  /**
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
181
+ * Стратегия автоматического заполнения отсутствующих переводов с помощью AI.
182
+ * Может быть логическим значением или шаблоном пути для сохранения заполненного контента.
183
+ * По умолчанию: true
154
184
  */
155
185
  fill: true,
156
186
 
157
187
  /**
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"
188
+ * Физическое расположение файлов словарей.
189
+ * - "local": Хранится в локальной файловой системе.
190
+ * - "remote": Хранится в Intlayer CMS.
191
+ * - "hybrid": Хранится как локально, так и в Intlayer CMS.
192
+ * - "plugin" (или любая пользовательская строка): Предоставляется плагином или пользовательским источником.
193
+ * По умолчанию: "local"
164
194
  */
165
195
  location: "local",
166
196
 
167
197
  /**
168
- * Whether to automatically transform content (e.g., Markdown to HTML).
169
- * Default: false
198
+ * Должен ли контент автоматически преобразовываться (например, Markdown в HTML).
199
+ * По умолчанию: false
170
200
  */
171
201
  contentAutoTransformation: false,
172
202
  },
173
203
 
174
204
  /**
175
- * Routing and middleware configuration.
205
+ * Конфигурация маршрутизации и промежуточного ПО.
176
206
  */
177
207
  routing: {
178
208
  /**
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"
209
+ * Стратегия маршрутизации локалей.
210
+ * - "prefix-no-default": Добавляет префикс ко всем локалям, кроме локали по умолчанию (например, /dashboard, /fr/dashboard).
211
+ * - "prefix-all": Добавляет префикс ко всем локалям (например, /en/dashboard, /fr/dashboard).
212
+ * - "no-prefix": Локаль в URL отсутствует.
213
+ * - "search-params": Использует ?locale=...
214
+ * По умолчанию: "prefix-no-default"
185
215
  */
186
216
  mode: "prefix-no-default",
187
217
 
188
218
  /**
189
- * Where to store the user's selected locale.
190
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
191
- * Default: ['cookie', 'header']
219
+ * Где хранить выбранную пользователем локаль.
220
+ * Параметры: 'cookie', 'localStorage', 'sessionStorage', 'header' или их массив.
221
+ * По умолчанию: ['cookie', 'header']
192
222
  */
193
223
  storage: ["cookie", "header"],
194
224
 
195
225
  /**
196
- * Base path for the application URLs.
197
- * Default: ""
226
+ * Базовый путь для URL приложения.
227
+ * По умолчанию: ""
198
228
  */
199
229
  basePath: "",
200
230
 
201
231
  /**
202
- * Custom URL rewriting rules for locale-specific paths.
232
+ * Пользовательские правила перезаписи (rewrite) URL для конкретных путей в зависимости от локали.
203
233
  */
204
234
  rewrite: nextjsRewrite({
205
235
  "/[locale]/about": {
@@ -210,125 +240,130 @@ const config: IntlayerConfig = {
210
240
  },
211
241
 
212
242
  /**
213
- * Settings for finding and processing content files.
243
+ * Настройки, касающиеся поиска и обработки файлов контента.
214
244
  */
215
245
  content: {
216
246
  /**
217
- * File extensions to scan for dictionaries.
218
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
247
+ * Расширения файлов для сканирования словарей.
248
+ * По умолчанию: ['.content.ts', '.content.js', '.content.json' и др.]
219
249
  */
220
250
  fileExtensions: [".content.ts", ".content.js", ".content.json"],
221
251
 
222
252
  /**
223
- * Directories where .content files are located.
224
- * Default: ["."]
253
+ * Каталоги, в которых расположены файлы .content.
254
+ * По умолчанию: ["."]
225
255
  */
226
256
  contentDir: ["src"],
227
257
 
228
258
  /**
229
- * Directories where source code is located.
230
- * Used for build optimization and code transformation.
231
- * Default: ["."]
259
+ * Где находится исходный код.
260
+ * Используется для оптимизации сборки и преобразования кода.
261
+ * По умолчанию: ["."]
232
262
  */
233
263
  codeDir: ["src"],
234
264
 
235
265
  /**
236
- * Patterns to exclude from scanning.
237
- * Default: ['node_modules', '.intlayer', etc.]
266
+ * Паттерны, исключаемые из сканирования.
267
+ * По умолчанию: ['node_modules', '.intlayer' и др.]
238
268
  */
239
269
  excludedPath: ["node_modules"],
240
270
 
241
271
  /**
242
- * Whether to watch for changes and rebuild dictionaries in development.
243
- * Default: true in development
272
+ * Отслеживать ли изменения и пересобирать словари во время разработки.
273
+ * По умолчанию: true в режиме разработки
244
274
  */
245
275
  watch: true,
246
276
 
247
277
  /**
248
- * Command to format newly created / updated .content files.
278
+ * Команда, используемая для форматирования вновь созданных / обновленных файлов .content.
249
279
  */
250
280
  formatCommand: 'npx prettier --write "{{file}}"',
251
281
  },
252
282
 
253
283
  /**
254
- * Visual Editor configuration.
284
+ * Конфигурация визуального редактора (Visual Editor).
255
285
  */
256
286
  editor: {
257
287
  /**
258
- * Whether the visual editor is enabled.
259
- * Default: false
288
+ * Включен ли визуальный редактор.
289
+ * По умолчанию: false
260
290
  */
261
291
  enabled: true,
262
292
 
263
293
  /**
264
- * URL of your application for origin validation.
265
- * Default: ""
294
+ * URL вашего приложения для проверки источника (origin validation).
295
+ * По умолчанию: ""
266
296
  */
267
297
  applicationURL: "http://localhost:3000",
268
298
 
269
299
  /**
270
- * Port for the local editor server.
271
- * Default: 8000
300
+ * Порт для локального сервера редактора.
301
+ * По умолчанию: 8000
272
302
  */
273
303
  port: 8000,
274
304
 
275
305
  /**
276
- * Public URL for the editor.
277
- * Default: "http://localhost:8000"
306
+ * Публичный URL для редактора.
307
+ * По умолчанию: "http://localhost:8000"
278
308
  */
279
309
  editorURL: "http://localhost:8000",
280
310
 
281
311
  /**
282
- * Intlayer CMS URL.
283
- * Default: "https://app.intlayer.org"
312
+ * URL Intlayer CMS.
313
+ * По умолчанию: "https://app.intlayer.org"
284
314
  */
285
315
  cmsURL: "https://app.intlayer.org",
286
316
 
287
317
  /**
288
- * Backend API URL.
289
- * Default: "https://back.intlayer.org"
318
+ * URL Backend API.
319
+ * По умолчанию: "https://back.intlayer.org"
290
320
  */
291
321
  backendURL: "https://back.intlayer.org",
292
322
 
293
323
  /**
294
- * Whether to enable real-time content synchronization.
295
- * Default: false
324
+ * Включить ли синхронизацию контента в реальном времени.
325
+ * По умолчанию: false
296
326
  */
297
327
  liveSync: true,
298
328
  },
299
329
 
300
330
  /**
301
- * AI-powered translation and generation settings.
331
+ * Настройки перевода и создания контента на базе AI.
302
332
  */
303
333
  ai: {
304
334
  /**
305
- * AI provider to use.
306
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
307
- * Default: 'openai'
335
+ * Провайдер AI для использования.
336
+ * Параметры: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
337
+ * По умолчанию: 'openai'
308
338
  */
309
339
  provider: "openai",
310
340
 
311
341
  /**
312
- * Model to use from the selected provider.
342
+ * Модель выбранного провайдера для использования.
313
343
  */
314
344
  model: "gpt-4o",
315
345
 
316
346
  /**
317
- * Provider API key.
347
+ * API-ключ провайдера.
318
348
  */
319
349
  apiKey: process.env.OPENAI_API_KEY,
320
350
 
321
351
  /**
322
- * Global context to guide the AI in generating translations.
352
+ * Глобальный контекст для руководства AI при создании переводов.
353
+ */
354
+ applicationContext: "Это приложение для бронирования путешествий.",
355
+
356
+ /**
357
+ * Базовый URL для AI API.
323
358
  */
324
359
  baseURL: "http://localhost:3000",
325
360
 
326
361
  /**
327
- * Сериализация данных
362
+ * Сериализация данных (Data Serialization)
328
363
  *
329
- * Опции:
330
- * - "json": Стандартный, надежный; использует больше токенов.
331
- * - "toon": Меньше токенов, менее последователен, чем JSON.
364
+ * Параметры:
365
+ * - "json": По умолчанию, надежно; потребляет больше токенов.
366
+ * - "toon": Потребляет меньше токенов, может быть не таким последовательным, как JSON.
332
367
  *
333
368
  * По умолчанию: "json"
334
369
  */
@@ -336,118 +371,118 @@ const config: IntlayerConfig = {
336
371
  },
337
372
 
338
373
  /**
339
- * Build and optimization settings.
374
+ * Настройки сборки и оптимизации.
340
375
  */
341
376
  build: {
342
377
  /**
343
- * Build execution mode.
344
- * - "auto": Automatic build during app build.
345
- * - "manual": Requires explicit build command.
346
- * Default: "auto"
378
+ * Режим выполнения сборки.
379
+ * - "auto": Собирается автоматически во время сборки приложения.
380
+ * - "manual": Требуется явная команда сборки.
381
+ * По умолчанию: "auto"
347
382
  */
348
383
  mode: "auto",
349
384
 
350
385
  /**
351
- * Whether to optimize the final bundle by pruning unused dictionaries.
352
- * Default: true in production
386
+ * Оптимизировать ли финальный бандл, удаляя неиспользуемые словари.
387
+ * По умолчанию: true в продакшене
353
388
  */
354
389
  optimize: true,
355
390
 
356
391
  /**
357
- * Output format for generated dictionary files.
358
- * Default: ['esm', 'cjs']
392
+ * Формат вывода сгенерированных файлов словарей.
393
+ * По умолчанию: ['cjs', 'esm']
359
394
  */
360
- outputFormat: ["esm"],
395
+ outputFormat: ["cjs", "esm"],
361
396
 
362
397
  /**
363
- * Indicates if the build should check TypeScript types.
364
- * Default: false
398
+ * Указывает, должна ли сборка проверять типы TypeScript.
399
+ * По умолчанию: false
365
400
  */
366
401
  checkTypes: false,
367
402
  },
368
403
 
369
404
  /**
370
- * Logger configuration.
405
+ * Конфигурация логгера (Logger).
371
406
  */
372
407
  log: {
373
408
  /**
374
- * Logging level.
375
- * - "default": Standard logging.
376
- * - "verbose": Detailed debug logging.
377
- * - "disabled": No logging.
378
- * Default: "default"
409
+ * Уровень логирования.
410
+ * - "default": Стандартное логирование.
411
+ * - "verbose": Углубленное отладочное логирование.
412
+ * - "disabled": Отключает логирование.
413
+ * По умолчанию: "default"
379
414
  */
380
415
  mode: "default",
381
416
 
382
417
  /**
383
- * Prefix for all log messages.
384
- * Default: "[intlayer]"
418
+ * Префикс для всех лог-сообщений.
419
+ * По умолчанию: "[intlayer]"
385
420
  */
386
421
  prefix: "[intlayer]",
387
422
  },
388
423
 
389
424
  /**
390
- * System configuration (Advanced use cases)
425
+ * Системная конфигурация (Для продвинутого использования)
391
426
  */
392
427
  system: {
393
428
  /**
394
- * Directory for storing localization dictionaries.
429
+ * Каталог для хранения локализованных словарей.
395
430
  */
396
431
  dictionariesDir: ".intlayer/dictionary",
397
432
 
398
433
  /**
399
- * Directory for module augmentation.
434
+ * Каталог для расширения модулей TypeScript (module augmentation).
400
435
  */
401
436
  moduleAugmentationDir: ".intlayer/types",
402
437
 
403
438
  /**
404
- * Directory for storing unmerged dictionaries.
439
+ * Каталог для хранения несложенных (unmerged) словарей.
405
440
  */
406
441
  unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
407
442
 
408
443
  /**
409
- * Directory for storing dictionary types.
444
+ * Каталог для хранения типов словарей.
410
445
  */
411
446
  typesDir: ".intlayer/types",
412
447
 
413
448
  /**
414
- * Directory where main application files are stored.
449
+ * Каталог, в котором хранятся основные файлы приложения.
415
450
  */
416
451
  mainDir: ".intlayer/main",
417
452
 
418
453
  /**
419
- * Directory where the configuration files are stored.
454
+ * Каталог, в котором хранятся файлы конфигурации.
420
455
  */
421
456
  configDir: ".intlayer/config",
422
457
 
423
458
  /**
424
- * Directory where the cache files are stored.
459
+ * Каталог, в котором хранятся файлы кэша.
425
460
  */
426
461
  cacheDir: ".intlayer/cache",
427
462
  },
428
463
 
429
464
  /**
430
- * Compiler configuration (Advanced use cases)
465
+ * Конфигурация компилятора (Для продвинутого использования)
431
466
  */
432
467
  compiler: {
433
468
  /**
434
- * Указывает, должен ли компилятор быть включен.
469
+ * Указывает, должен ли быть включен компилятор.
435
470
  *
436
- * - false : Отключить компилятор.
437
- * - true : Включить компилятор.
438
- * - "build-only" : Пропустить компилятор во время разработки для ускорения запуска.
471
+ * - false: Отключает компилятор.
472
+ * - true: Включает компилятор.
473
+ * - "build-only": Пропускает компилятор во время разработки и ускоряет время запуска.
439
474
  *
440
- * По умолчанию : false
475
+ * По умолчанию: false
441
476
  */
442
477
  enabled: true,
443
478
 
444
479
  /**
445
- * Определяет путь к выходным файлам. Заменяет `outputDir`.
480
+ * Определяет путь для выходных файлов. Заменяет `outputDir`.
446
481
  *
447
482
  * - Пути `./` разрешаются относительно каталога компонента.
448
483
  * - Пути `/` разрешаются относительно корня проекта (`baseDir`).
449
484
  *
450
- * - Включение переменной `{{locale}}` в путь приведет к генерации отдельных словарей для каждой локали.
485
+ * - Включение переменной `{{locale}}` в путь приведет к созданию отдельных словарей для каждого языка.
451
486
  *
452
487
  * Пример:
453
488
  * ```ts
@@ -455,16 +490,16 @@ const config: IntlayerConfig = {
455
490
  * // Создавать многоязычные файлы .content.ts рядом с компонентом
456
491
  * output: ({ fileName, extension }) => `./${fileName}${extension}`,
457
492
  *
458
- * // output: './{{fileName}}{{extension}}', // Эквивалент с использованием строки шаблона
493
+ * // output: './{{fileName}}{{extension}}', // Эквивалентно через шаблонную строку
459
494
  * }
460
495
  * ```
461
496
  *
462
497
  * ```ts
463
498
  * {
464
- * // Создавать централизованные JSON по локалям в корне проекта
499
+ * // Создавать централизованные JSON для каждого языка в корне проекта
465
500
  * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
466
501
  *
467
- * // output: '/locales/{{locale}}/{{key}}.content.json', // Эквивалент с использованием строки шаблона
502
+ * // output: '/locales/{{locale}}/{{key}}.content.json', // Эквивалентно через шаблонную строку
468
503
  * }
469
504
  * ```
470
505
  *
@@ -482,24 +517,24 @@ const config: IntlayerConfig = {
482
517
  output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
483
518
 
484
519
  /**
485
- * Указывает, должны ли компоненты сохраняться после трансформации.
486
- * Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
520
+ * Указывает, должны ли компоненты сохраняться после преобразования.
521
+ * Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
487
522
  */
488
523
  saveComponents: false,
489
524
 
490
525
  /**
491
- * Вставьте только содержимое в сгенерированный файл. Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
526
+ * Вставляет в сгенерированный файл только контент. Полезно для вывода JSON для каждого языка для i18next или ICU MessageFormat.
492
527
  */
493
528
  noMetadata: false,
494
529
 
495
530
  /**
496
531
  * Префикс ключа словаря
497
532
  */
498
- dictionaryKeyPrefix: "", // Добавьте необязательный префикс для извлеченных ключей словаря
533
+ dictionaryKeyPrefix: "", // Добавьте необязательный префикс к извлеченным ключам словарей
499
534
  },
500
535
 
501
536
  /**
502
- * Custom schemas to validate the dictionaries content.
537
+ * Пользовательские схемы (Schemas) для валидации контента словарей.
503
538
  */
504
539
  schemas: {
505
540
  "my-schema": z.object({
@@ -508,7 +543,7 @@ const config: IntlayerConfig = {
508
543
  },
509
544
 
510
545
  /**
511
- * Plugins configuration.
546
+ * Конфигурация плагинов (Plugins).
512
547
  */
513
548
  plugins: [],
514
549
  };
@@ -516,597 +551,393 @@ const config: IntlayerConfig = {
516
551
  export default config;
517
552
  ````
518
553
 
519
- ## Справочник по конфигурации
554
+ ---
555
+
556
+ ## Справочник по конфигурации (Configuration Reference)
520
557
 
521
- В следующих разделах описаны различные настройки конфигурации, доступные в Intlayer.
558
+ В следующих разделах описываются различные параметры конфигурации, доступные в Intlayer.
522
559
 
523
560
  ---
524
561
 
525
- ### Конфигурация интернационализации
562
+ ### Конфигурация интернационализации (Internationalization Configuration)
526
563
 
527
564
  Определяет настройки, связанные с интернационализацией, включая доступные локали и локаль по умолчанию для приложения.
528
565
 
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 или заголовке.
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, куки или заголовке. |
558
572
 
559
573
  ---
560
574
 
561
- ### Конфигурация редактора
575
+ ### Конфигурация редактора (Editor Configuration)
562
576
 
563
577
  Определяет настройки, связанные с интегрированным редактором, включая порт сервера и статус активности.
564
578
 
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`
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. |
593
+
594
+ ### Конфигурация маршрутизации (Routing Configuration)
595
+
596
+ Настройки, управляющие поведением маршрутизации, включая структуру URL, хранение локалей и обработку промежуточного ПО.
597
+
598
+ | Поле | Тип | Описание | Пример | Примечание |
599
+ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
600
+ | `mode` | `'prefix-no-default' &#124; 'prefix-all' &#124; 'no-prefix' &#124; 'search-params'` | Режим маршрутизации URL для обработки локалей. По умолчанию: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) или `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: локаль обрабатывается другими способами. `'search-params'`: `/dashboard?locale=fr` | Не влияет на управление куки или хранилищем локалей. |
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). |
604
+
605
+ **Пример `rewrite`**:
606
+
607
+ ```typescript
608
+ routing: {
609
+ mode: "prefix-no-default", // Стратегия по умолчанию
610
+ rewrite: nextjsRewrite({
611
+ "/about": {
612
+ en: "/about",
613
+ fr: "/a-propos",
614
+ },
615
+ "/product/[slug]": {
616
+ en: "/product/[slug]",
617
+ fr: "/produit/[slug]",
618
+ },
619
+ "/blog/[category]/[id]": {
620
+ en: "/blog/[category]/[id]",
621
+ fr: "/journal/[category]/[id]",
622
+ },
623
+ }),
624
+ }
625
+ ```
626
+
627
+ #### Параметры хранения (Storage Options)
628
+
629
+ | Значение | Описание | Примечание |
630
+ | ------------------ | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
631
+ | `'cookie'` | Хранит локаль в куки — доступно как на стороне клиента, так и на стороне сервера. | Для соответствия GDPR убедитесь в получении надлежащего согласия пользователя. Настраивается через `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
632
+ | `'localStorage'` | Хранит локаль в браузере без срока действия — только на стороне клиента. | Не исчезает до явной очистки. Прокси Intlayer не может получить к нему доступ. Настраивается через `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). |
633
+ | `'sessionStorage'` | Хранит локаль в течение сессии страницы — только на стороне клиента. | Очищается при закрытии вкладки/окна. Прокси Intlayer не может получить к нему доступ. Настраивается через `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
634
+ | `'header'` | Хранит или передает локаль через HTTP-заголовки — только на стороне сервера. | Полезно для API-вызовов. Сторона клиента не может получить к нему доступ. Настраивается через `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). |
635
+
636
+ #### Атрибуты куки (Cookie Attributes)
637
+
638
+ При использовании хранилища куки вы можете настроить дополнительные атрибуты:
639
+
640
+ | Поле | Тип | Описание |
641
+ | ---------- | ------------------------------------- | ------------------------------------------------------------- |
642
+ | `name` | `string` | Имя куки. По умолчанию: `'INTLAYER_LOCALE'` |
643
+ | `domain` | `string` | Домен куки. По умолчанию: `undefined` |
644
+ | `path` | `string` | Путь куки. По умолчанию: `undefined` |
645
+ | `secure` | `boolean` | Требует HTTPS. По умолчанию: `undefined` |
646
+ | `httpOnly` | `boolean` | Флаг HTTP-only. По умолчанию: `undefined` |
647
+ | `sameSite` | `'strict' &#124; 'lax' &#124; 'none'` | Политика SameSite. |
648
+ | `expires` | `Date &#124; number` | Дата истечения или количество дней. По умолчанию: `undefined` |
649
+
650
+ #### Атрибуты хранилища локалей (Locale Storage Attributes)
651
+
652
+ При использовании localStorage или sessionStorage:
653
+
654
+ | Поле | Тип | Описание |
655
+ | ------ | ---------------------------------------- | ------------------------------------------------------ |
656
+ | `type` | `'localStorage' &#124; 'sessionStorage'` | Тип хранилища. |
657
+ | `name` | `string` | Имя ключа хранилища. По умолчанию: `'INTLAYER_LOCALE'` |
658
+
659
+ #### Примеры конфигурации
660
+
661
+ Вот несколько распространенных примеров конфигурации для новой структуры маршрутизации v7:
662
+
663
+ **Базовая конфигурация (по умолчанию)**:
664
+
665
+ ```typescript
666
+ import { Locales, type IntlayerConfig } from "intlayer";
667
+ // intlayer.config.ts
668
+ const config: IntlayerConfig = {
669
+ internationalization: {
670
+ locales: ["en", "fr", "es"],
671
+ defaultLocale: "en",
672
+ },
673
+ routing: {
674
+ mode: "prefix-no-default",
675
+ storage: "localStorage",
676
+ basePath: "",
677
+ },
678
+ };
679
+
680
+ export default config;
681
+ ```
682
+
683
+ **Конфигурация, соответствующая GDPR**:
684
+
685
+ ```typescript
686
+ import { Locales, type IntlayerConfig } from "intlayer";
687
+ // intlayer.config.ts
688
+ const config: IntlayerConfig = {
689
+ internationalization: {
690
+ locales: ["en", "fr", "es"],
691
+ defaultLocale: "en",
692
+ },
693
+ routing: {
694
+ mode: "prefix-no-default",
695
+ storage: [
696
+ {
697
+ type: "localStorage",
698
+ name: "user-locale",
699
+ },
700
+ {
701
+ type: "cookie",
702
+ name: "user-locale",
703
+ secure: true,
704
+ sameSite: "strict",
705
+ httpOnly: false,
706
+ },
707
+ ],
708
+ basePath: "",
709
+ },
710
+ };
711
+
712
+ export default config;
713
+ ```
714
+
715
+ **Режим параметров поиска (Search Parameters Mode)**:
716
+
717
+ ```typescript
718
+ import { Locales, type IntlayerConfig } from "intlayer";
719
+ // intlayer.config.ts
720
+ const config: IntlayerConfig = {
721
+ internationalization: {
722
+ locales: ["en", "fr", "es"],
723
+ defaultLocale: "en",
724
+ },
725
+ routing: {
726
+ mode: "search-params",
727
+ storage: "localStorage",
728
+ basePath: "",
729
+ },
730
+ };
731
+
732
+ export default config;
733
+ ```
734
+
735
+ **Режим без префикса (No Prefix Mode) с пользовательским хранилищем**:
736
+
737
+ ```typescript
738
+ import { Locales, type IntlayerConfig } from "intlayer";
739
+ // intlayer.config.ts
740
+ const config: IntlayerConfig = {
741
+ internationalization: {
742
+ locales: ["en", "fr", "es"],
743
+ defaultLocale: "en",
744
+ },
745
+ routing: {
746
+ mode: "no-prefix",
747
+ storage: {
748
+ type: "sessionStorage",
749
+ name: "app-locale",
750
+ },
751
+ basePath: "/my-app",
752
+ },
753
+ };
754
+
755
+ export default config;
756
+ ```
757
+
758
+ **Пользовательская перезапись URL с динамическими путями**:
759
+
760
+ ```typescript
761
+ // intlayer.config.ts
762
+ import { nextjsRewrite } from "intlayer/routing";
763
+
764
+ const config: IntlayerConfig = {
765
+ internationalization: {
766
+ locales: ["en", "fr"],
767
+ defaultLocale: "en",
768
+ },
769
+ routing: {
770
+ mode: "prefix-no-default", // Резервная стратегия для путей без перезаписи
771
+ storage: "cookie",
772
+ rewrite: nextjsRewrite({
773
+ "/about": {
774
+ en: "/about",
775
+ fr: "/a-propos",
776
+ },
777
+ "/product/[slug]": {
778
+ en: "/product/[slug]",
779
+ fr: "/produit/[slug]",
780
+ },
781
+ "/blog/[category]/[id]": {
782
+ en: "/blog/[category]/[id]",
783
+ fr: "/journal/[category]/[id]",
784
+ },
785
+ }),
786
+ },
787
+ };
788
+
789
+ export default config;
790
+ ```
791
+
792
+ ---
793
+
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}}"'` | Используется при извлечении контента или через визуальный редактор. |
742
806
 
743
807
  ---
744
808
 
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.
809
+ ### Конфигурация словаря (Dictionary Configuration)
810
+
811
+ Настройки, управляющие способом импорта словарей и управлением ими.
812
+
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. |
819
+
820
+ #### Режим импорта (Import Modes)
821
+
822
+ | Значение | Описание |
823
+ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
824
+ | `'static'` | Словари включаются в бандл во время сборки. Лучшая производительность, но больший размер файлов при наличии множества языков. |
825
+ | `'dynamic'` | Словари загружаются асинхронно при доступе к определенному языку. Использует React Suspense. Рекомендуется для приложений с большим количеством языков. |
826
+ | `'fetch'` | Словари извлекаются динамически во время выполнения (runtime) с сервера (например, Intlayer CMS). Позволяет обновлять контент без пересборки. |
804
827
 
805
828
  ---
806
829
 
807
- ### Конфигурация системы
830
+ ### Конфигурация словарей (Dictionary Configuration)
831
+
832
+ Настройки, управляющие операциями со словарями, включая поведение автозаполнения и генерацию контента.
833
+
834
+ Эта конфигурация словарей служит двум основным целям:
808
835
 
809
- Настройки, связанные с внутренними путями и результатами вывода Intlayer. Эти настройки обычно являются внутренними и не должны изменяться пользователем.
836
+ 1. **Значения по умолчанию**: Определение значений по умолчанию при создании файлов объявления контента.
837
+ 2. **Поведение при отсутствии перевода**: Предоставление резервных значений, когда конкретные поля не определены, что позволяет глобально настраивать поведение операций со словарями.
810
838
 
811
- #### Свойства
839
+ Для получения дополнительной информации о файлах объявления контента и о том, как применяются значения конфигурации, см. [Документацию по файлам контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md).
812
840
 
813
- - **baseDir**:
814
- - _Тип_: `string`
815
- - _По умолчанию_: `process.cwd()`
816
- - _Описание_: Базовый каталог проекта.
817
- - _Пример_: `'/path/to/project'`
818
- - _Примечание_: Используется для разрешения всех директорий, связанных с Intlayer.
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. |
819
847
 
820
- - **dictionariesDir**:
821
- - _Тип_: `string`
822
- - _По умолчанию_: `'.intlayer/dictionary'`
823
- - _Описание_: Путь к каталогу для хранения словарей локализации.
848
+ **Пример `fill`**:
824
849
 
825
- - **moduleAugmentationDir**:
826
- - _Тип_: `string`
827
- - _По умолчанию_: `'.intlayer/types'`
828
- - _Описание_: Директория для расширения модулей, что позволяет улучшить подсказки IDE и проверку типов.
829
- - _Пример_: `'intlayer-types'`
830
- - _Примечание_: Обязательно включите эту директорию в `tsconfig.json`.
850
+ ```ts
851
+ dictionary: {
852
+ fill: {
853
+ en: '/locales/en/{{key}}.content.json',
854
+ fr: ({ key }) => `/locales/fr/${key}.content.json`,
855
+ es: false,
856
+ }
857
+ }
858
+ ```
831
859
 
832
- - **unmergedDictionariesDir**:
833
- - _Тип_: `string`
834
- - _По умолчанию_: `'.intlayer/unmerged_dictionary'`
835
- - _Описание_: Директория для хранения неслитых словарей.
860
+ ---
836
861
 
837
- - **typesDir**:
838
- - _Тип_: `string`
839
- - _По умолчанию_: `'.intlayer/types'`
840
- - _Описание_: Каталог для хранения типов словарей.
862
+ ### Конфигурация AI (AI Configuration)
841
863
 
842
- - **mainDir**:
843
- - _Тип_: `string`
844
- - _По умолчанию_: `'.intlayer/main'`
845
- - _Описание_: Каталог, где хранятся основные файлы приложения.
864
+ Определяет настройки для функций Intlayer на базе AI, таких как создание переводов.
846
865
 
847
- - **configDir**:
848
- - _Тип_: `string`
849
- - _По умолчанию_: `'.intlayer/config'`
850
- - _Описание_: Каталог, где хранятся файлы конфигурации.
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'`: потребляет меньше токенов, но может быть менее стабильным. |
851
874
 
852
- - **cacheDir**:
853
- - _Тип_: `string`
854
- - _По умолчанию_: `'.intlayer/cache'`
855
- - _Описание_: Каталог, где хранятся файлы кэша.
875
+ ---
856
876
 
857
- ### Конфигурация словаря
877
+ ### Конфигурация сборки (Build Configuration)
858
878
 
859
- Настройки, управляющие операциями словаря, включая поведение автоматического заполнения и генерацию контента.
879
+ Настройки процесса сборки и оптимизации Intlayer.
860
880
 
861
- Эта конфигурация словаря служит двум основным целям:
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` | | |
862
887
 
863
- 1. **Значения по умолчанию**: Определение значений по умолчанию при создании файлов объявления контента
864
- 2. **Поведение отката**: Предоставление значений отката, когда определённые поля не определены, позволяя вам глобально определить поведение операций словаря
888
+ ---
865
889
 
866
- Для получения дополнительной информации о файлах объявления контента и о том, как применяются значения конфигурации, см. [Документацию файла контента](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dictionary/content_file.md).
890
+ ### Системная конфигурация (System Configuration)
867
891
 
868
- #### Свойства
892
+ Эти настройки предназначены для продвинутых вариантов использования и внутренней конфигурации Intlayer.
869
893
 
870
- - **fill**
871
- - **description**
872
- - **locale**
873
- - **location**
874
- - **priority**
875
- - **live**
876
- - **schema**
877
- - **title**
878
- - **tags**
879
- - **version**
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'` |
880
903
 
881
904
  ---
882
905
 
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.
906
+ ### Конфигурация компилятора (Compiler Configuration)
907
+
908
+ Настройки компилятора Intlayer (`intlayer compiler`).
909
+
910
+ | Поле | Тип | Описание | По умолчанию |
911
+ | --------------------- | ------------------------ | -------------------------------------------------------------------------------- | ------------ |
912
+ | `enabled` | `boolean` | Указывает, активен ли компилятор. | `false` |
913
+ | `output` | `string &#124; Function` | Путь вывода для извлеченных словарей. | |
914
+ | `saveComponents` | `boolean` | Указывает, должны ли исходные файлы быть перезаписаны преобразованными версиями. | `false` |
915
+ | `noMetadata` | `boolean` | Если `true`, компилятор не будет включать метаданные в сгенерированные файлы. | `false` |
916
+ | `dictionaryKeyPrefix` | `string` | Необязательный префикс ключа словаря. | `''` |
917
+
918
+ ---
919
+
920
+ ### Конфигурация логгера (Logger Configuration)
921
+
922
+ Настройки настройки лог-вывода Intlayer.
923
+
924
+ | Поле | Тип | Описание | По умолчанию |
925
+ | -------- | ---------------------------------------------- | -------------------------- | -------------- |
926
+ | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | Режим логирования. | `'default'` |
927
+ | `prefix` | `string` | Префикс для лог-сообщений. | `'[intlayer]'` |
928
+
929
+ ---
930
+
931
+ ### Пользовательские схемы (Custom Schemas)
932
+
933
+ | Поле | Тип | Описание |
934
+ | --------- | --------------------------- | ---------------------------------------------------------------------- |
935
+ | `schemas` | `Record<string, ZodSchema>` | Позволяет определять схемы Zod для валидации структуры ваших словарей. |
1035
936
 
1036
937
  ---
1037
938
 
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
- ```
939
+ ### Плагины (Plugins)
940
+
941
+ | Поле | Тип | Описание |
942
+ | --------- | ------------------ | --------------------------------------- |
943
+ | `plugins` | `IntlayerPlugin[]` | Список плагинов Intlayer для активации. |