@intlayer/docs 6.0.1 → 6.0.2

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 (104) hide show
  1. package/dist/cjs/blog.cjs.map +1 -1
  2. package/dist/cjs/common.cjs +6 -5
  3. package/dist/cjs/common.cjs.map +1 -1
  4. package/dist/cjs/generated/blog.entry.cjs +318 -1863
  5. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  6. package/dist/cjs/generated/docs.entry.cjs +1317 -6282
  7. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  8. package/dist/cjs/generated/frequentQuestions.entry.cjs +197 -1182
  9. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  10. package/dist/cjs/generated/legal.entry.cjs +43 -84
  11. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  12. package/dist/esm/blog.mjs.map +1 -1
  13. package/dist/esm/common.mjs +2 -5
  14. package/dist/esm/common.mjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +318 -1863
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +1317 -6282
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +197 -1182
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +43 -84
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/dist/types/blog.d.ts +1 -1
  24. package/dist/types/blog.d.ts.map +1 -1
  25. package/dist/types/common.d.ts +1 -1
  26. package/dist/types/common.d.ts.map +1 -1
  27. package/dist/types/generated/blog.entry.d.ts +1 -1
  28. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  29. package/dist/types/generated/docs.entry.d.ts +2 -1
  30. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  31. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
  32. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  33. package/dist/types/generated/legal.entry.d.ts +1 -1
  34. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  35. package/docs/ar/intlayer_CMS.md +261 -85
  36. package/docs/ar/releases/v6.md +273 -0
  37. package/docs/ar/roadmap.md +1 -3
  38. package/docs/ar/vs_code_extension.md +94 -63
  39. package/docs/de/intlayer_CMS.md +247 -65
  40. package/docs/de/releases/v6.md +298 -0
  41. package/docs/de/roadmap.md +1 -3
  42. package/docs/de/vs_code_extension.md +89 -58
  43. package/docs/en/configuration.md +9 -2
  44. package/docs/en/intlayer_CMS.md +205 -23
  45. package/docs/en/intlayer_cli.md +4 -4
  46. package/docs/en/intlayer_visual_editor.md +7 -6
  47. package/docs/en/intlayer_with_nextjs_14.md +17 -1
  48. package/docs/en/intlayer_with_nextjs_15.md +17 -1
  49. package/docs/en/releases/v6.md +268 -0
  50. package/docs/en/roadmap.md +1 -3
  51. package/docs/en/vs_code_extension.md +79 -49
  52. package/docs/en-GB/intlayer_CMS.md +216 -52
  53. package/docs/en-GB/releases/v6.md +297 -0
  54. package/docs/en-GB/roadmap.md +1 -3
  55. package/docs/en-GB/vs_code_extension.md +79 -48
  56. package/docs/es/intlayer_CMS.md +257 -84
  57. package/docs/es/releases/v6.md +274 -0
  58. package/docs/es/roadmap.md +1 -3
  59. package/docs/es/vs_code_extension.md +90 -60
  60. package/docs/fr/intlayer_CMS.md +250 -68
  61. package/docs/fr/releases/v6.md +274 -0
  62. package/docs/fr/roadmap.md +1 -3
  63. package/docs/fr/vs_code_extension.md +94 -63
  64. package/docs/hi/intlayer_CMS.md +253 -77
  65. package/docs/hi/releases/v6.md +273 -0
  66. package/docs/hi/roadmap.md +1 -3
  67. package/docs/hi/vs_code_extension.md +92 -61
  68. package/docs/it/intlayer_CMS.md +251 -73
  69. package/docs/it/releases/v6.md +273 -0
  70. package/docs/it/roadmap.md +1 -3
  71. package/docs/it/vs_code_extension.md +94 -63
  72. package/docs/ja/intlayer_CMS.md +282 -97
  73. package/docs/ja/releases/v6.md +273 -0
  74. package/docs/ja/roadmap.md +1 -3
  75. package/docs/ja/vs_code_extension.md +99 -68
  76. package/docs/ko/intlayer_CMS.md +267 -93
  77. package/docs/ko/releases/v6.md +273 -0
  78. package/docs/ko/roadmap.md +1 -3
  79. package/docs/ko/vs_code_extension.md +88 -57
  80. package/docs/pt/intlayer_CMS.md +261 -83
  81. package/docs/pt/releases/v6.md +273 -0
  82. package/docs/pt/roadmap.md +1 -3
  83. package/docs/pt/vs_code_extension.md +89 -58
  84. package/docs/ru/intlayer_CMS.md +240 -65
  85. package/docs/ru/releases/v6.md +274 -0
  86. package/docs/ru/roadmap.md +1 -1
  87. package/docs/ru/vs_code_extension.md +83 -52
  88. package/docs/tr/intlayer_CMS.md +278 -96
  89. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  90. package/docs/tr/intlayer_with_tanstack.md +3 -0
  91. package/docs/tr/releases/v6.md +273 -0
  92. package/docs/tr/roadmap.md +1 -1
  93. package/docs/tr/vs_code_extension.md +100 -71
  94. package/docs/zh/intlayer_CMS.md +257 -76
  95. package/docs/zh/releases/v6.md +273 -0
  96. package/docs/zh/roadmap.md +1 -3
  97. package/docs/zh/vs_code_extension.md +99 -68
  98. package/package.json +11 -10
  99. package/src/blog.ts +1 -1
  100. package/src/common.ts +2 -6
  101. package/src/generated/blog.entry.ts +323 -1864
  102. package/src/generated/docs.entry.ts +1317 -6278
  103. package/src/generated/frequentQuestions.entry.ts +202 -1183
  104. package/src/generated/legal.entry.ts +48 -85
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-08-23
3
3
  updatedAt: 2025-08-23
4
- title: Intlayer CMS | Вынесите свой контент в Intlayer CMS
5
- description: Вынесите свой контент в Intlayer CMS, чтобы делегировать управление вашим контентом вашей команде.
4
+ title: Intlayer CMS | Внешнее управление контентом через Intlayer CMS
5
+ description: Внешнее управление вашим контентом через Intlayer CMS для делегирования управления контентом вашей команде.
6
6
  keywords:
7
7
  - CMS
8
8
  - Визуальный редактор
@@ -21,9 +21,9 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
21
21
 
22
22
  # Документация по системе управления контентом Intlayer (CMS)
23
23
 
24
- <iframe title="Visual Editor + CMS для вашего веб-приложения: объяснение Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
24
+ <iframe title="Визуальный редактор + CMS для вашего веб-приложения: объяснение Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
25
25
 
26
- Intlayer CMS - это приложение, которое позволяет вам выносить контент из проекта Intlayer.
26
+ Intlayer CMS это приложение, которое позволяет вам вынести контент проекта Intlayer во внешнее управление.
27
27
 
28
28
  Для этого Intlayer вводит концепцию «удалённых словарей».
29
29
 
@@ -33,15 +33,15 @@ Intlayer CMS - это приложение, которое позволяет в
33
33
 
34
34
  Intlayer различает «локальные» и «удалённые» словари.
35
35
 
36
- - 'Локальный' словарь - это словарь, который объявлен в вашем проекте Intlayer. Например, файл объявления кнопки или вашей навигационной панели. Вынесение такого контента не имеет смысла, так как этот контент не предполагается часто изменять.
36
+ - «Локальный» словарь это словарь, который объявлен в вашем проекте Intlayer. Например, файл объявления кнопки или ваша навигационная панель. Вынесение такого контента во внешнее управление не имеет смысла, так как этот контент не предполагается часто менять.
37
37
 
38
- - 'Удалённый' словарь - это словарь, который управляется через Intlayer CMS. Это может быть полезно, чтобы позволить вашей команде управлять контентом напрямую на вашем сайте, а также использовать функции A/B тестирования и автоматической оптимизации SEO.
38
+ - «Удалённый» словарь это словарь, который управляется через Intlayer CMS. Это может быть полезно, чтобы ваша команда могла управлять контентом непосредственно на вашем сайте, а также для использования функций A/B тестирования и автоматической SEO-оптимизации.
39
39
 
40
- ## Визуальный редактор vs CMS
40
+ ## Визуальный редактор против CMS
41
41
 
42
- [Визуальный редактор Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) - это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для локальных словарей. После внесения изменений контент будет заменён в кодовой базе. Это означает, что приложение будет пересобрано, и страница будет перезагружена для отображения нового контента.
42
+ Редактор [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для локальных словарей. После внесения изменений контент будет заменён в кодовой базе. Это означает, что приложение будет пересобрано, и страница перезагрузится для отображения нового контента.
43
43
 
44
- В отличие от этого, Intlayer CMS - это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для удалённых словарей. После внесения изменений контент **не** повлияет на вашу кодовую базу. И сайт автоматически отобразит изменённый контент.
44
+ В отличие от этого, Intlayer CMS это инструмент, который позволяет управлять вашим контентом в визуальном редакторе для удалённых словарей. После внесения изменений контент **не** повлияет на вашу кодовую базу. И сайт автоматически отобразит изменённый контент.
45
45
 
46
46
  ## Интеграция
47
47
 
@@ -49,8 +49,6 @@ Intlayer различает «локальные» и «удалённые» с
49
49
 
50
50
  ### Интеграция с Next.js
51
51
 
52
- ### Интеграция с Next.js
53
-
54
52
  Для интеграции с Next.js обратитесь к [руководству по настройке](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_with_nextjs_15.md).
55
53
 
56
54
  ### Интеграция с Create React App
@@ -63,7 +61,7 @@ Intlayer различает «локальные» и «удалённые» с
63
61
 
64
62
  ## Конфигурация
65
63
 
66
- В вашем файле конфигурации Intlayer вы можете настроить параметры CMS:
64
+ В вашем конфигурационном файле Intlayer вы можете настроить параметры CMS:
67
65
 
68
66
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
69
67
  import type { IntlayerConfig } from "intlayer";
@@ -82,7 +80,7 @@ const config: IntlayerConfig = {
82
80
  /**
83
81
  * Обязательно
84
82
  *
85
- * Идентификатор клиента и секрет клиента необходимы для включения редактора.
83
+ * Для включения редактора требуются client ID и client secret.
86
84
  * Они позволяют идентифицировать пользователя, который редактирует контент.
87
85
  * Их можно получить, создав нового клиента в Intlayer Dashboard - Projects (https://intlayer.org/dashboard/projects).
88
86
  * clientId: process.env.INTLAYER_CLIENT_ID,
@@ -94,20 +92,20 @@ const config: IntlayerConfig = {
94
92
  /**
95
93
  * Необязательно
96
94
  *
97
- * Если вы самостоятельно размещаете Intlayer CMS, вы можете указать URL CMS.
95
+ * В случае самостоятельного размещения Intlayer CMS, вы можете указать URL CMS.
98
96
  *
99
97
  * URL Intlayer CMS.
100
- * По умолчанию установлен на https://intlayer.org
98
+ * По умолчанию установлен https://intlayer.org
101
99
  */
102
100
  cmsURL: process.env.INTLAYER_CMS_URL,
103
101
 
104
102
  /**
105
103
  * Необязательно
106
104
  *
107
- * Если вы самостоятельно размещаете Intlayer CMS, вы можете указать URL бэкенда.
105
+ * В случае самостоятельного размещения Intlayer CMS, вы можете указать URL бэкенда.
108
106
  *
109
107
  * URL Intlayer CMS.
110
- * По умолчанию установлен на https://back.intlayer.org
108
+ * По умолчанию установлен https://back.intlayer.org
111
109
  */
112
110
  backendURL: process.env.INTLAYER_BACKEND_URL,
113
111
  },
@@ -132,7 +130,7 @@ const config = {
132
130
  /**
133
131
  * Обязательно
134
132
  *
135
- * Идентификатор клиента и секрет клиента необходимы для включения редактора.
133
+ * Для включения редактора требуются client ID и client secret.
136
134
  * Они позволяют идентифицировать пользователя, который редактирует контент.
137
135
  * Их можно получить, создав нового клиента в Intlayer Dashboard - Projects (https://intlayer.org/dashboard/projects).
138
136
  * clientId: process.env.INTLAYER_CLIENT_ID,
@@ -144,7 +142,7 @@ const config = {
144
142
  /**
145
143
  * Необязательно
146
144
  *
147
- * Если вы самостоятельно размещаете Intlayer CMS, вы можете указать URL CMS.
145
+ * В случае самостоятельного размещения Intlayer CMS, вы можете указать URL CMS.
148
146
  *
149
147
  * URL Intlayer CMS.
150
148
  * По умолчанию установлен на https://intlayer.org
@@ -154,9 +152,9 @@ const config = {
154
152
  /**
155
153
  * Необязательно
156
154
  *
157
- * Если вы самостоятельно размещаете Intlayer CMS, вы можете указать URL бэкенда.
155
+ * В случае самостоятельного хостинга Intlayer CMS, вы можете указать URL бэкенда.
158
156
  *
159
- * URL бэкенда Intlayer CMS.
157
+ * URL Intlayer CMS.
160
158
  * По умолчанию установлен на https://back.intlayer.org
161
159
  */
162
160
  backendURL: process.env.INTLAYER_BACKEND_URL,
@@ -182,7 +180,7 @@ const config = {
182
180
  /**
183
181
  * Обязательно
184
182
  *
185
- * Идентификатор клиента и секрет клиента необходимы для включения редактора.
183
+ * Для включения редактора требуются client ID и client secret.
186
184
  * Они позволяют идентифицировать пользователя, который редактирует контент.
187
185
  * Их можно получить, создав нового клиента в Intlayer Dashboard - Projects (https://intlayer.org/dashboard/projects).
188
186
  * clientId: process.env.INTLAYER_CLIENT_ID,
@@ -194,7 +192,7 @@ const config = {
194
192
  /**
195
193
  * Необязательно
196
194
  *
197
- * Если вы самостоятельно размещаете Intlayer CMS, вы можете указать URL CMS.
195
+ * В случае самостоятельного хостинга Intlayer CMS, вы можете указать URL CMS.
198
196
  *
199
197
  * URL Intlayer CMS.
200
198
  * По умолчанию установлен на https://intlayer.org
@@ -204,10 +202,10 @@ const config = {
204
202
  /**
205
203
  * Необязательно
206
204
  *
207
- * Если вы самостоятельно размещаете Intlayer CMS, вы можете указать URL бэкенда.
205
+ * В случае самостоятельного хостинга Intlayer CMS, вы можете указать URL бэкенда.
208
206
  *
209
- * URL Intlayer CMS.
210
- * По умолчанию установлен на https://back.intlayer.org
207
+ * URL бэкенда Intlayer CMS.
208
+ * По умолчанию установлен https://back.intlayer.org
211
209
  */
212
210
  backendURL: process.env.INTLAYER_BACKEND_URL,
213
211
  },
@@ -216,13 +214,13 @@ const config = {
216
214
  module.exports = config;
217
215
  ```
218
216
 
219
- > Если у вас нет идентификатора клиента и секрета клиента, вы можете получить их, создав нового клиента в [Intlayer Dashboard - Projects](https://intlayer.org/dashboard/projects).
217
+ > Если у вас нет client ID и client secret, вы можете получить их, создав нового клиента в [Intlayer Dashboard - Projects](https://intlayer.org/dashboard/projects).
220
218
 
221
219
  > Чтобы увидеть все доступные параметры, обратитесь к [документации по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md).
222
220
 
223
221
  ## Использование CMS
224
222
 
225
- ### Загрузка вашей конфигурации
223
+ ### Отправка вашей конфигурации
226
224
 
227
225
  Для настройки Intlayer CMS вы можете использовать команды [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ru/intlayer_cli.md).
228
226
 
@@ -230,7 +228,7 @@ module.exports = config;
230
228
  npx intlayer config push
231
229
  ```
232
230
 
233
- > Если вы используете переменные окружения в вашем файле конфигурации `intlayer.config.ts`, вы можете указать желаемую среду с помощью аргумента `--env`:
231
+ > Если вы используете переменные окружения в вашем файле конфигурации `intlayer.config.ts`, вы можете указать нужное окружение с помощью аргумента `--env`:
234
232
 
235
233
  ```bash
236
234
  npx intlayer config push --env production
@@ -238,32 +236,33 @@ npx intlayer config push --env production
238
236
 
239
237
  Эта команда загружает вашу конфигурацию в Intlayer CMS.
240
238
 
241
- ### Загрузка словаря
239
+ ### Отправка словаря
242
240
 
243
- Чтобы преобразовать ваши локальные словари в удаленные словари, вы можете использовать команды [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ru/intlayer_cli.md).
241
+ Чтобы преобразовать ваши локальные словари в удалённый словарь, вы можете использовать команды [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ru/intlayer_cli.md).
244
242
 
245
243
  ```bash
246
244
  npx intlayer dictionary push -d my-first-dictionary-key
247
245
  ```
248
246
 
249
- > Если вы используете переменные окружения в вашем файле конфигурации `intlayer.config.ts`, вы можете указать желаемую среду с помощью аргумента `--env`:
247
+ > Если вы используете переменные окружения в вашем файле конфигурации `intlayer.config.ts`, вы можете указать нужное окружение с помощью аргумента `--env`:
250
248
 
251
249
  ```bash
252
250
  npx intlayer dictionary push -d my-first-dictionary-key --env production
253
251
  ```
254
252
 
255
- Эта команда загружает ваши начальные словари контента, делая их доступными для асинхронного получения и редактирования через платформу Intlayer.
253
+ Эта команда загружает ваши исходные словари контента, делая их доступными для асинхронного получения и редактирования через платформу Intlayer.
256
254
 
257
255
  ### Редактирование словаря
258
256
 
259
- После этого вы сможете видеть и управлять вашим словарем в [Intlayer CMS](https://intlayer.org/dashboard/content).
257
+ После этого вы сможете просматривать и управлять вашим словарём в [Intlayer CMS](https://intlayer.org/dashboard/content).
260
258
 
261
- ## Горячая перезагрузка
259
+ ## Живая синхронизация
262
260
 
263
- Intlayer CMS может выполнять горячую перезагрузку словарей при обнаружении изменений.
261
+ Живая синхронизация позволяет вашему приложению отражать изменения контента CMS в режиме реального времени. Пересборка или повторный деплой не требуются. Когда функция включена, обновления передаются на сервер живой синхронизации, который обновляет словари, используемые вашим приложением.
264
262
 
265
- Без горячей перезагрузки потребуется новая сборка приложения для отображения нового контента.
266
- Активировав конфигурацию [`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration), приложение автоматически заменит обновленный контент при его обнаружении.
263
+ > Живая синхронизация требует постоянного подключения к серверу и доступна в тарифном плане enterprise.
264
+
265
+ Включите живую синхронизацию, обновив конфигурацию Intlayer:
267
266
 
268
267
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
269
268
  import type { IntlayerConfig } from "intlayer";
@@ -271,18 +270,32 @@ import type { IntlayerConfig } from "intlayer";
271
270
  const config: IntlayerConfig = {
272
271
  // ... другие настройки конфигурации
273
272
  editor: {
274
- // ... другие настройки конфигурации
275
-
276
273
  /**
277
- * Указывает, должна ли приложение выполнять горячую перезагрузку конфигураций локали при обнаружении изменений.
278
- * Например, когда добавляется или обновляется новый словарь, приложение обновит контент для отображения на странице.
274
+ * Включает горячую перезагрузку конфигураций локалей при обнаружении изменений.
275
+ * Например, когда словарь добавляется или обновляется, приложение обновляет
276
+ * отображаемый на странице контент.
279
277
  *
280
- * Поскольку горячая перезагрузка требует постоянного соединения с сервером, она доступна только для клиентов плана `enterprise`.
278
+ * Поскольку горячая перезагрузка требует постоянного подключения к серверу,
279
+ * она доступна только для клиентов с тарифным планом `enterprise`.
281
280
  *
282
281
  * По умолчанию: false
283
282
  */
284
283
  liveSync: true,
285
284
  },
285
+ build: {
286
+ /**
287
+ * Управляет способом импорта словарей:
288
+ *
289
+ * - "live": словари загружаются динамически с использованием Live Sync API.
290
+ * Заменяет useIntlayer на useDictionaryDynamic.
291
+ *
292
+ * Примечание: Режим live использует Live Sync API для загрузки словарей. Если вызов API
293
+ * не удаётся, словари загружаются динамически.
294
+ * Примечание: Режим live используется только для словарей с удалённым содержимым и флагом "live".
295
+ * Другие используют динамический режим для повышения производительности.
296
+ */
297
+ importMode: "live",
298
+ },
286
299
  };
287
300
 
288
301
  export default config;
@@ -293,18 +306,32 @@ export default config;
293
306
  const config = {
294
307
  // ... другие настройки конфигурации
295
308
  editor: {
296
- // ... другие настройки конфигурации
297
-
298
309
  /**
299
- * Указывает, должна ли приложение выполнять горячую перезагрузку конфигураций локали при обнаружении изменений.
300
- * Например, когда добавляется или обновляется новый словарь, приложение обновит контент для отображения на странице.
310
+ * Включает горячую перезагрузку конфигураций локалей при обнаружении изменений.
311
+ * Например, когда словарь добавляется или обновляется, приложение обновляет
312
+ * отображаемое на странице содержимое.
301
313
  *
302
- * Поскольку горячая перезагрузка требует постоянного соединения с сервером, она доступна только для клиентов плана `enterprise`.
314
+ * Поскольку горячая перезагрузка требует постоянного соединения с сервером, она
315
+ * доступна только для клиентов с планом `enterprise`.
303
316
  *
304
317
  * По умолчанию: false
305
318
  */
306
319
  liveSync: true,
307
320
  },
321
+ build: {
322
+ /**
323
+ * Управляет способом импорта словарей:
324
+ *
325
+ * - "live": словари загружаются динамически с использованием Live Sync API.
326
+ * Заменяет useIntlayer на useDictionaryDynamic.
327
+ *
328
+ * Примечание: Режим live использует Live Sync API для загрузки словарей. Если вызов API
329
+ * не удаётся, словари загружаются динамически.
330
+ * Примечание: только словари с удалённым содержимым и флагом "live" используют режим live.
331
+ * Другие используют динамический режим для повышения производительности.
332
+ */
333
+ importMode: "live",
334
+ },
308
335
  };
309
336
 
310
337
  export default config;
@@ -315,43 +342,191 @@ export default config;
315
342
  const config = {
316
343
  // ... другие настройки конфигурации
317
344
  editor: {
318
- // ... другие настройки конфигурации
319
-
320
345
  /**
321
- * Указывает, должна ли приложение выполнять горячую перезагрузку конфигураций локали при обнаружении изменений.
322
- * Например, когда добавляется или обновляется новый словарь, приложение обновит контент для отображения на странице.
346
+ * Включает горячую перезагрузку конфигураций локалей при обнаружении изменений.
347
+ * Например, когда словарь добавляется или обновляется, приложение обновляет
348
+ * отображаемое на странице содержимое.
323
349
  *
324
- * Поскольку горячая перезагрузка требует постоянного соединения с сервером, она доступна только для клиентов плана `enterprise`.
350
+ * Поскольку горячая перезагрузка требует постоянного соединения с сервером, она
351
+ * доступна только для клиентов с планом `enterprise`.
325
352
  *
326
353
  * По умолчанию: false
327
354
  */
328
355
  liveSync: true,
356
+
357
+ /**
358
+ * Порт сервера Live Sync.
359
+ *
360
+ * По умолчанию: 4000
361
+ */
362
+ liveSyncPort: 4000,
363
+
364
+ /**
365
+ * URL сервера Live Sync.
366
+ *
367
+ * По умолчанию: http://localhost:{liveSyncPort}
368
+ */
369
+ liveSyncURL: "https://live.example.com",
370
+ },
371
+ build: {
372
+ /**
373
+ * Управляет способом импорта словарей:
374
+ *
375
+ * - "live": словари загружаются динамически с использованием Live Sync API.
376
+ * Заменяет useIntlayer на useDictionaryDynamic.
377
+ *
378
+ * Примечание: режим live использует Live Sync API для загрузки словарей. Если вызов API
379
+ * не удаётся, словари импортируются динамически.
380
+ * Примечание: только словари с удалённым содержимым и флагом "live" используют режим live.
381
+ * Другие используют динамический режим для повышения производительности.
382
+ */
383
+ importMode: "live",
384
+ },
385
+ };
386
+
387
+ module.exports = config;
388
+ ```
389
+
390
+ Запустите сервер Live Sync, чтобы обернуть ваше приложение:
391
+
392
+ Пример с использованием Next.js:
393
+
394
+ ```json5 fileName="package.json"
395
+ {
396
+ "scripts": {
397
+ // ... другие скрипты
398
+ "build": "next build",
399
+ "dev": "next dev",
400
+ "start": "npx intlayer live --process 'next start'",
401
+ },
402
+ }
403
+ ```
404
+
405
+ Пример с использованием Vite:
406
+
407
+ ```json5 fileName="package.json"
408
+ {
409
+ "scripts": {
410
+ // ... другие скрипты
411
+ "build": "vite build",
412
+ "dev": "vite dev",
413
+ "start": "npx intlayer live --process 'vite start'",
414
+ },
415
+ }
416
+ ```
417
+
418
+ Сервер Live Sync оборачивает ваше приложение и автоматически применяет обновлённый контент по мере его поступления.
419
+
420
+ Чтобы получать уведомления об изменениях из CMS, сервер Live Sync поддерживает SSE-соединение с бэкендом. Когда контент в CMS изменяется, бэкенд пересылает обновление серверу Live Sync, который записывает новые словари. Ваше приложение отобразит обновление при следующей навигации или перезагрузке браузера — пересборка не требуется.
421
+
422
+ Блок-схема (CMS/Backend -> Live Sync Server -> Application Server -> Frontend):
423
+
424
+ ![Схема логики Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
425
+
426
+ Как это работает:
427
+
428
+ ![Схема потока Live Sync CMS/Backend/Live Sync Server/Application Server/Frontend](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
429
+
430
+ ### Рабочий процесс разработки (локально)
431
+
432
+ - В процессе разработки все удалённые словари загружаются при запуске приложения, чтобы вы могли быстро тестировать обновления.
433
+ - Чтобы протестировать Live Sync локально с Next.js, оберните ваш dev-сервер:
434
+
435
+ ```json5 fileName="package.json"
436
+ {
437
+ "scripts": {
438
+ // ... другие скрипты
439
+ "dev": "npx intlayer live --process 'next dev'",
440
+ // "dev": "npx intlayer live --process 'vite dev'", // Для Vite
441
+ },
442
+ }
443
+ ```
444
+
445
+ Включите оптимизацию, чтобы Intlayer применял трансформации Live импорта во время разработки:
446
+
447
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
448
+ import type { IntlayerConfig } from "intlayer";
449
+
450
+ const config: IntlayerConfig = {
451
+ editor: {
452
+ applicationURL: "http://localhost:5173",
453
+ liveSyncURL: "http://localhost:4000",
454
+ liveSync: true,
455
+ },
456
+ build: {
457
+ optimize: true,
458
+ importMode: "live",
459
+ },
460
+ };
461
+
462
+ export default config;
463
+ ```
464
+
465
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
466
+ /** @type {import('intlayer').IntlayerConfig} */
467
+ // Конфигурация Intlayer для режима Live Sync
468
+ const config = {
469
+ editor: {
470
+ applicationURL: "http://localhost:5173", // URL приложения
471
+ liveSyncURL: "http://localhost:4000", // URL сервера Live Sync
472
+ liveSync: true, // Включение Live Sync
473
+ },
474
+ build: {
475
+ optimize: true, // Включение оптимизации
476
+ importMode: "live", // Режим импорта "live"
477
+ },
478
+ };
479
+
480
+ export default config;
481
+ ```
482
+
483
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
484
+ /** @type {import('intlayer').IntlayerConfig} */
485
+ // Конфигурация Intlayer для режима Live Sync
486
+ const config = {
487
+ editor: {
488
+ applicationURL: "http://localhost:5173", // URL приложения
489
+ liveSyncURL: "http://localhost:4000", // URL сервера Live Sync
490
+ liveSync: true, // Включение Live Sync
491
+ },
492
+ build: {
493
+ optimize: true, // Включение оптимизации
494
+ importMode: "live", // Режим импорта "live"
329
495
  },
330
496
  };
331
497
 
332
498
  module.exports = config;
333
499
  ```
334
500
 
335
- Горячая перезагрузка заменяет контент как на стороне сервера, так и на стороне клиента.
501
+ Эта настройка оборачивает ваш dev-сервер сервером Live Sync, загружает удалённые словари при запуске и транслирует обновления из CMS через SSE. Обновите страницу, чтобы увидеть изменения.
336
502
 
337
- - На стороне сервера вы должны убедиться, что процесс приложения имеет права записи в каталог `.intlayer/dictionaries`.
338
- - На стороне клиента горячая перезагрузка позволяет приложению обновлять контент в браузере без необходимости перезагрузки страницы. Однако эта функция доступна только для клиентских компонентов.
339
- > Поскольку горячая перезагрузка требует постоянного соединения с сервером с использованием `EventListener`, она доступна только для клиентов плана `enterprise`.
503
+ Примечания и ограничения:
504
+
505
+ - Добавьте источник live sync в политику безопасности вашего сайта (CSP). Убедитесь, что URL live sync разрешён в `connect-src` (и в `frame-ancestors`, если это актуально).
506
+ - Live Sync не работает со статическим выводом. Для Next.js страница должна быть динамической, чтобы получать обновления во время выполнения (например, используйте `generateStaticParams`, `generateMetadata`, `getServerSideProps` или `getStaticProps` соответствующим образом, чтобы избежать ограничений полностью статического вывода).
507
+ - В CMS у каждого словаря есть флаг `live`. Только словари с `live=true` загружаются через API live sync; остальные импортируются динамически и остаются неизменными во время выполнения.
508
+ - Флаг `live` оценивается для каждого словаря во время сборки. Если удалённый контент не был помечен как `live=true` во время сборки, необходимо выполнить повторную сборку, чтобы включить Live Sync для этого словаря.
509
+ - Сервер live sync должен иметь возможность записывать в `.intlayer`. В контейнерах убедитесь, что есть права на запись в `/.intlayer`.
340
510
 
341
511
  ## Отладка
342
512
 
343
- Если вы столкнулись с проблемами с CMS, проверьте следующее:
513
+ Если вы столкнулись с проблемами в CMS, проверьте следующее:
344
514
 
345
515
  - Приложение запущено.
346
516
 
347
- - Конфигурация [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) правильно настроена в вашем файле конфигурации Intlayer.
517
+ - Конфигурация [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) корректно настроена в вашем конфигурационном файле Intlayer.
348
518
  - Обязательные поля:
349
- - URL приложения должен совпадать с тем, который вы указали в конфигурации редактора (`applicationURL`).
350
- - URL CMS.
519
+ - URL приложения должен совпадать с тем, который вы указали в конфигурации редактора (`applicationURL`).
520
+ - URL CMS
521
+
522
+ - Убедитесь, что конфигурация проекта была отправлена в Intlayer CMS.
351
523
 
352
- - Убедитесь, что конфигурация проекта была загружена в Intlayer CMS.
353
- - Визуальный редактор использует iframe для отображения вашего сайта. Убедитесь, что Политика безопасности контента (CSP) вашего сайта разрешает URL CMS в качестве `frame-ancestors` ('https://intlayer.org' по умолчанию). Проверьте консоль редактора на наличие ошибок.
524
+ - Визуальный редактор использует iframe для отображения вашего сайта. Убедитесь, что политика безопасности контента (CSP) вашего сайта разрешает URL CMS в качестве `frame-ancestors` (по умолчанию 'https://intlayer.org'). Проверьте консоль редактора на наличие ошибок.
354
525
 
355
- ## История документа
526
+ ## История документации
356
527
 
357
- - 5.5.10 - 2025-06-29: Инициализация истории
528
+ | Версия | Дата | Изменения |
529
+ | ------ | ---------- | --------------------------------------- |
530
+ | 6.0.1 | 2025-09-22 | Добавлена документация по live sync |
531
+ | 6.0.0 | 2025-09-04 | Заменено поле `hotReload` на `liveSync` |
532
+ | 5.5.10 | 2025-06-29 | Инициализация истории |