@intlayer/docs 9.0.0-canary.14 → 9.0.0-canary.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +40 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +40 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +2 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/cli/index.md +1 -1
  8. package/docs/ar/configuration.md +42 -1
  9. package/docs/ar/intlayer_CMS.md +5 -128
  10. package/docs/ar/live-sync.md +174 -0
  11. package/docs/ar/releases/v9.md +45 -1
  12. package/docs/bn/cli/index.md +1 -1
  13. package/docs/bn/configuration.md +45 -1
  14. package/docs/cs/cli/index.md +1 -1
  15. package/docs/cs/configuration.md +45 -1
  16. package/docs/de/cli/index.md +1 -1
  17. package/docs/de/configuration.md +42 -1
  18. package/docs/de/intlayer_CMS.md +5 -135
  19. package/docs/de/live-sync.md +174 -0
  20. package/docs/de/releases/v9.md +45 -1
  21. package/docs/en/analytics.md +222 -0
  22. package/docs/en/cli/index.md +1 -1
  23. package/docs/en/configuration.md +42 -1
  24. package/docs/en/intlayer_CMS.md +6 -140
  25. package/docs/en/live-sync.md +184 -0
  26. package/docs/en/releases/v9.md +53 -3
  27. package/docs/en-GB/cli/index.md +1 -1
  28. package/docs/en-GB/configuration.md +42 -1
  29. package/docs/en-GB/intlayer_CMS.md +5 -128
  30. package/docs/en-GB/live-sync.md +173 -0
  31. package/docs/en-GB/releases/v9.md +45 -1
  32. package/docs/es/cli/index.md +1 -1
  33. package/docs/es/configuration.md +42 -1
  34. package/docs/es/intlayer_CMS.md +5 -140
  35. package/docs/es/live-sync.md +176 -0
  36. package/docs/es/releases/v9.md +45 -1
  37. package/docs/fr/cli/index.md +1 -1
  38. package/docs/fr/configuration.md +42 -1
  39. package/docs/fr/intlayer_CMS.md +5 -135
  40. package/docs/fr/live-sync.md +174 -0
  41. package/docs/fr/releases/v9.md +45 -1
  42. package/docs/hi/cli/index.md +1 -1
  43. package/docs/hi/configuration.md +42 -1
  44. package/docs/hi/intlayer_CMS.md +5 -128
  45. package/docs/hi/live-sync.md +174 -0
  46. package/docs/hi/releases/v9.md +45 -1
  47. package/docs/id/cli/index.md +1 -1
  48. package/docs/id/configuration.md +42 -1
  49. package/docs/id/intlayer_CMS.md +5 -139
  50. package/docs/id/live-sync.md +185 -0
  51. package/docs/id/releases/v9.md +45 -1
  52. package/docs/it/cli/index.md +1 -1
  53. package/docs/it/configuration.md +42 -1
  54. package/docs/it/intlayer_CMS.md +5 -128
  55. package/docs/it/live-sync.md +174 -0
  56. package/docs/it/releases/v9.md +45 -1
  57. package/docs/ja/cli/index.md +1 -1
  58. package/docs/ja/configuration.md +42 -1
  59. package/docs/ja/intlayer_CMS.md +5 -139
  60. package/docs/ja/live-sync.md +185 -0
  61. package/docs/ja/releases/v9.md +45 -1
  62. package/docs/ko/cli/index.md +1 -1
  63. package/docs/ko/configuration.md +42 -1
  64. package/docs/ko/intlayer_CMS.md +5 -141
  65. package/docs/ko/live-sync.md +187 -0
  66. package/docs/ko/releases/v9.md +45 -1
  67. package/docs/nl/cli/index.md +1 -1
  68. package/docs/nl/configuration.md +45 -1
  69. package/docs/pl/cli/index.md +1 -1
  70. package/docs/pl/configuration.md +45 -1
  71. package/docs/pl/intlayer_CMS.md +5 -139
  72. package/docs/pl/live-sync.md +185 -0
  73. package/docs/pl/releases/v9.md +45 -1
  74. package/docs/pt/cli/index.md +1 -1
  75. package/docs/pt/configuration.md +45 -1
  76. package/docs/pt/intlayer_CMS.md +5 -143
  77. package/docs/pt/live-sync.md +174 -0
  78. package/docs/pt/releases/v9.md +45 -1
  79. package/docs/ru/cli/index.md +1 -1
  80. package/docs/ru/configuration.md +42 -1
  81. package/docs/ru/intlayer_CMS.md +5 -139
  82. package/docs/ru/live-sync.md +185 -0
  83. package/docs/ru/releases/v9.md +45 -1
  84. package/docs/tr/cli/index.md +1 -1
  85. package/docs/tr/configuration.md +42 -1
  86. package/docs/tr/intlayer_CMS.md +5 -127
  87. package/docs/tr/live-sync.md +173 -0
  88. package/docs/tr/releases/v9.md +45 -1
  89. package/docs/uk/cli/index.md +1 -1
  90. package/docs/uk/configuration.md +42 -1
  91. package/docs/uk/intlayer_CMS.md +5 -139
  92. package/docs/uk/live-sync.md +185 -0
  93. package/docs/uk/releases/v9.md +45 -1
  94. package/docs/ur/cli/index.md +1 -1
  95. package/docs/ur/configuration.md +45 -1
  96. package/docs/vi/cli/index.md +1 -1
  97. package/docs/vi/configuration.md +42 -1
  98. package/docs/vi/intlayer_CMS.md +5 -139
  99. package/docs/vi/live-sync.md +185 -0
  100. package/docs/vi/releases/v9.md +45 -1
  101. package/docs/zh/cli/index.md +1 -1
  102. package/docs/zh/configuration.md +42 -1
  103. package/docs/zh/intlayer_CMS.md +5 -129
  104. package/docs/zh/live-sync.md +175 -0
  105. package/docs/zh/releases/v9.md +45 -1
  106. package/package.json +7 -7
  107. package/src/generated/docs.entry.ts +40 -0
@@ -0,0 +1,185 @@
1
+ ---
2
+ createdAt: 2026-07-08
3
+ updatedAt: 2026-07-08
4
+ title: Live Sync | Отражение изменений контента CMS в реальном времени
5
+ description: Позвольте вашему приложению отражать изменения контента Intlayer CMS в реальном времени — без пересборки и повторного развёртывания.
6
+ keywords:
7
+ - Live Sync
8
+ - Живая синхронизация
9
+ - CMS
10
+ - Визуальный редактор
11
+ - Интернационализация
12
+ - Документация
13
+ - Intlayer
14
+ - Next.js
15
+ - Vite
16
+ history:
17
+ - version: 9.0.0
18
+ date: 2026-07-08
19
+ changes: "Перенесено из документации Intlayer CMS в отдельную страницу"
20
+ - version: 6.0.1
21
+ date: 2025-09-22
22
+ changes: "Добавлена документация по live sync"
23
+ - version: 6.0.0
24
+ date: 2025-09-04
25
+ changes: "Заменено поле `hotReload` на `liveSync`"
26
+ author: aymericzip
27
+ ---
28
+
29
+ # Живая синхронизация
30
+
31
+ Живая синхронизация позволяет вашему приложению отражать изменения контента CMS в режиме реального времени. Пересборка или повторный деплой не требуются. Когда функция включена, обновления передаются на сервер живой синхронизации, который обновляет словари, используемые вашим приложением.
32
+
33
+ ## Содержание
34
+
35
+ <TOC/>
36
+
37
+ ---
38
+
39
+ ## Включение Live Sync
40
+
41
+ Включите живую синхронизацию, обновив конфигурацию Intlayer:
42
+
43
+ ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
44
+ import type { IntlayerConfig } from "intlayer";
45
+
46
+ const config: IntlayerConfig = {
47
+ // ... другие настройки конфигурации
48
+ editor: {
49
+ /**
50
+ * Включает горячую перезагрузку конфигураций локалей при обнаружении изменений.
51
+ * Например, когда словарь добавляется или обновляется, приложение обновляет
52
+ * отображаемый на странице контент.
53
+ *
54
+ * Поскольку горячая перезагрузка требует постоянного подключения к серверу,
55
+ * она доступна только для клиентов с тарифным планом `enterprise`.
56
+ *
57
+ * По умолчанию: false
58
+ */
59
+ liveSync: true,
60
+ },
61
+ dictionary: {
62
+ /**
63
+ * Управляет способом импорта словарей:
64
+ *
65
+ * - "fetch": словари загружаются динамически с использованием Live Sync API.
66
+ * Заменяет useIntlayer на useDictionaryDynamic.
67
+ *
68
+ * Примечание: Режим "fetch" использует Live Sync API для загрузки словарей. Если вызов API
69
+ * не удаётся, словари импортируются динамически.
70
+ * Примечание: Только словари с удалённым содержимым и флагом "live" используют режим "fetch".
71
+ * Остальные используют динамический режим для повышения производительности.
72
+ */
73
+ importMode: "fetch",
74
+ },
75
+ };
76
+
77
+ export default config;
78
+ ```
79
+
80
+ Запустите сервер Live Sync, чтобы обернуть ваше приложение:
81
+
82
+ Пример использования автономного сервера:
83
+
84
+ ```json5 fileName="package.json"
85
+ {
86
+ "scripts": {
87
+ // ... other scripts
88
+ "live:start": "npx intlayer live",
89
+ },
90
+ }
91
+ ```
92
+
93
+ Вы также можете использовать сервер вашего приложения параллельно, используя аргумент `--process`.
94
+
95
+ Пример с использованием Next.js:
96
+
97
+ ```json5 fileName="package.json"
98
+ {
99
+ "scripts": {
100
+ // ... другие скрипты
101
+ "build": "next build",
102
+ "dev": "next dev",
103
+ "start": "npx intlayer live --with 'next start'",
104
+ },
105
+ }
106
+ ```
107
+
108
+ Пример с использованием Vite:
109
+
110
+ ```json5 fileName="package.json"
111
+ {
112
+ "scripts": {
113
+ // ... другие скрипты
114
+ "build": "vite build",
115
+ "dev": "vite dev",
116
+ "start": "npx intlayer live --with 'vite start'",
117
+ },
118
+ }
119
+ ```
120
+
121
+ Сервер Live Sync оборачивает ваше приложение и автоматически применяет обновлённый контент по мере его поступления.
122
+
123
+ Чтобы получать уведомления об изменениях из CMS, сервер Live Sync поддерживает SSE-соединение с бэкендом. Когда контент в CMS изменяется, бэкенд пересылает обновление серверу Live Sync, который записывает новые словари. Ваше приложение отобразит обновление при следующей навигации или перезагрузке браузера, пересборка не требуется.
124
+
125
+ Блок-схема (CMS/Backend -> Live Sync Server -> Application Server -> Frontend):
126
+
127
+ ![Схема потока Live Sync CMS/Backend/Live Sync Server/Application Server/Frontend](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
128
+
129
+ Как это работает:
130
+
131
+ ![Схема логики Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
132
+
133
+ ## Рабочий процесс разработки (локально)
134
+
135
+ - В процессе разработки все удалённые словари загружаются при запуске приложения, чтобы вы могли быстро тестировать обновления.
136
+ - Чтобы протестировать Live Sync локально с Next.js, оберните ваш dev-сервер:
137
+
138
+ ```json5 fileName="package.json"
139
+ {
140
+ "scripts": {
141
+ // ... другие скрипты
142
+ "dev": "npx intlayer live --with 'next dev'",
143
+ // "dev": "npx intlayer live --with 'vite dev'", // Для Vite
144
+ },
145
+ }
146
+ ```
147
+
148
+ Включите оптимизацию, чтобы Intlayer применял трансформации Live импорта во время разработки:
149
+
150
+ ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
151
+ import type { IntlayerConfig } from "intlayer";
152
+
153
+ const config: IntlayerConfig = {
154
+ editor: {
155
+ applicationURL: "http://localhost:5173",
156
+ liveSyncURL: "http://localhost:4000",
157
+ liveSync: true,
158
+ },
159
+ dictionary: {
160
+ importMode: "fetch",
161
+ },
162
+ build: {
163
+ optimize: true, // default: process.env.NODE_ENV === 'production'
164
+ },
165
+ };
166
+
167
+ export default config;
168
+ ```
169
+
170
+ Эта настройка оборачивает ваш dev-сервер сервером Live Sync, загружает удалённые словари при запуске и транслирует обновления из CMS через SSE. Обновите страницу, чтобы увидеть изменения.
171
+
172
+ ## Примечания и ограничения
173
+
174
+ - Добавьте источник live sync в политику безопасности вашего сайта (CSP). Убедитесь, что URL live sync разрешён в `connect-src` (и в `frame-ancestors`, если это актуально).
175
+ - Live Sync не работает со статическим выводом. Для Next.js страница должна быть динамической, чтобы получать обновления во время выполнения (например, используйте `generateStaticParams`, `generateMetadata`, `getServerSideProps` или `getStaticProps` соответствующим образом, чтобы избежать ограничений полностью статического вывода).
176
+ - В CMS у каждого словаря есть флаг `live`. Только словари с `live=true` загружаются через API live sync; остальные импортируются динамически и остаются неизменными во время выполнения.
177
+ - Флаг `live` оценивается для каждого словаря во время сборки. Если удалённый контент не был помечен как `live=true` во время сборки, необходимо выполнить повторную сборку, чтобы включить Live Sync для этого словаря.
178
+ - Сервер live sync должен иметь возможность записывать в `.intlayer`. В контейнерах убедитесь, что есть права на запись в `/.intlayer`.
179
+
180
+ ## Полезные ссылки
181
+
182
+ - [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md)
183
+ - [Визуальный редактор Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md)
184
+ - [Справочник по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
185
+ - [Руководство по самостоятельному размещению](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/self_hosting.md)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-06-14
3
- updatedAt: 2026-06-30
3
+ updatedAt: 2026-07-08
4
4
  title: Новый Intlayer v9 — Что нового?
5
5
  description: Узнайте, что нового в Intlayer v9. Представляем пакеты совместимости drop-in для популярных библиотек i18n, а также поддержку Collections и Variants.
6
6
  keywords:
@@ -205,6 +205,49 @@ const product = useIntlayer("product-copy", {
205
205
 
206
206
  ---
207
207
 
208
+ ## `@intlayer/analytics`: отслеживание показов контента и A/B-тестирование
209
+
210
+ Новый необязательный пакет [`@intlayer/analytics`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md) показывает, какой контент реально видят ваши посетители — и замыкает цикл с **Collections и Variants**, позволяя проводить A/B-тесты контента и измерять конверсии по каждому варианту.
211
+
212
+ - **Отслеживание на уровне провайдера**: `IntlayerProvider` (React / Next.js / React Native) автоматически регистрирует события `page_view` при загрузке, смене маршрута и смене локали.
213
+ - **Отслеживание на уровне узла**: каждое разрешение `useIntlayer` отправляет событие `content_exposure` — какой ключ словаря, путь ключа, локаль и (если применимо) A/B-**вариант** были показаны. Повторные показы одного и того же узла в пределах окна отправки объединяются в одно событие.
214
+ - **Детерминированное назначение A/B-варианта**: `getVariant(experimentKey, variants)` назначает сессии вариант **без обращения к серверу**, поэтому перед первым рендером не возникает мерцания.
215
+ - **`useConversion()`**: привязывает цель (регистрация, клик, покупка…) к варианту, который видела сессия.
216
+ - **Нулевая стоимость, если не установлен**: тот же tree-shakeable паттерн, что и у `@intlayer/editor` — динамический `import()`, обёрнутый в `try/catch`, плюс переменная окружения времени сборки (`INTLAYER_ANALYTICS_ENABLED`), которая полностью удаляет интеграцию из бандла для приложений, которые её не подключили.
217
+ - **Без новой схемы конфигурации**: переиспользует `editor.backendURL` (эндпоинт для отправки событий / самостоятельный хостинг) и `editor.clientId` (ключ проекта, он же переключатель включения).
218
+ - **Уважение к приватности**: анонимное хеширование сессии (SHA-256, без хранения исходных id), без хранения IP, только приблизительная геолокация по стране, пакетная отправка запросов примерно раз в 20 секунд.
219
+ - **Дашборд**: новая страница **Analytics** (отображается в боковой панели после выбора проекта) показывает активных пользователей, пользователей за сегодня, за последние 7/30/90 дней, график динамики посетителей и разбивку по локалям и странам.
220
+
221
+ ```tsx fileName="CTAButton.tsx" codeFormat="tsx"
222
+ import { useConversion } from "react-intlayer";
223
+
224
+ const CTAButton = () => {
225
+ const trackConversion = useConversion();
226
+
227
+ return (
228
+ <button
229
+ onClick={() =>
230
+ trackConversion({
231
+ experimentKey: "homepage-hero",
232
+ variant: "black_friday",
233
+ goal: "cta_click",
234
+ })
235
+ }
236
+ >
237
+ Get started
238
+ </button>
239
+ );
240
+ };
241
+ ```
242
+
243
+ ```bash packageManager="npm"
244
+ npm install @intlayer/analytics
245
+ ```
246
+
247
+ Уже доступно для React, Next.js и React Native (через `react-intlayer`); привязки для других фреймворков (Vue, Svelte, Angular, …) планируются по той же схеме внедрения, что и `@intlayer/editor`. Полное руководство см. в [документации Analytics](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md).
248
+
249
+ ---
250
+
208
251
  ## Vite Plugin: Bundled Compiler & Proxy
209
252
 
210
253
  Plugin Vite `intlayer()` теперь объединяет **компилятор** и **proxy маршрутизации локалей** напрямую, поэтому большинству проектов нужен только один plugin в `vite.config.ts`:
@@ -351,6 +394,7 @@ Chromium (используемый для генерации скриншото
351
394
 
352
395
  - [Руководство по пакетам адаптеров совместимости](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compat/index.md)
353
396
  - [Динамические словари — Collections и Variants](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/dynamic_dictionaries/index.md)
397
+ - [Аналитика - отслеживание показов контента и A/B-тестирование](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md)
354
398
  - [Справочник по конфигурации](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/configuration.md)
355
399
  - [CMS SDK — программный доступ через @intlayer/api](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md)
356
400
  - [Руководство по самостоятельному размещению](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/self_hosting.md)
@@ -125,7 +125,7 @@ Mevcut dillerin veya diğer parametrelerin nasıl yapılandırılacağını öğ
125
125
 
126
126
  ### Kimlik Doğrulama
127
127
 
128
- - **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/login.md)** - Intlayer CMS ile kimlik doğrulaması yapın ve erişim kimlik bilgilerini alın
128
+ - **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/login.md)** - Intlayer CMS ile kimlik doğrulaması yapın ve erişim kimlik bilgilerini alın
129
129
 
130
130
  ### Temel Komutlar
131
131
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-06-23
3
+ updatedAt: 2026-07-11
4
4
  title: Yapılandırma (Configuration)
5
5
  description: Uygulamanız için Intlayer'ı nasıl yapılandıracağınızı öğrenin. Intlayer'ı ihtiyaçlarınıza göre özelleştirmek için çeşitli ayarları ve seçenekleri anlayın.
6
6
  keywords:
@@ -14,6 +14,9 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 9.0.0
18
+ date: 2026-07-11
19
+ changes: "`analytics` yapılandırması eklendi"
17
20
  - version: 9.0.0
18
21
  date: 2026-06-24
19
22
  changes: "Add `enableProxy` option to the routing configuration"
@@ -355,6 +358,30 @@ const config: IntlayerConfig = {
355
358
  liveSync: true,
356
359
  },
357
360
 
361
+ /**
362
+ * Analitik (analytics) yapılandırması.
363
+ */
364
+ analytics: {
365
+ /**
366
+ * Analitik toplamanın etkin olup olmadığı (sayfa görüntülemeleri, içerik gösterimleri, A/B olayları).
367
+ * Atıflandırma (attribution) için `editor.clientId` ayarlanmış olmalıdır.
368
+ * Varsayılan: false
369
+ */
370
+ enabled: true,
371
+
372
+ /**
373
+ * Backend'e otomatik toplu gönderimler arasındaki milisaniye.
374
+ * Varsayılan: 20000
375
+ */
376
+ flushInterval: 20000,
377
+
378
+ /**
379
+ * Kaydedilecek oturumların oranı, 0 (hiçbiri) ile 1 (tümü) arasında.
380
+ * Varsayılan: 1
381
+ */
382
+ sampleRate: 1,
383
+ },
384
+
358
385
  /**
359
386
  * Yapay zeka destekli çeviri ve oluşturma ayarları.
360
387
  */
@@ -668,6 +695,20 @@ Sunucu portu ve etkinleştirme durumu dahil olmak üzere yerleşik görsel edit
668
695
 
669
696
  ---
670
697
 
698
+ ### Analitik Yapılandırması (Analytics)
699
+
700
+ Intlayer analitiğiyle ilgili ayarları tanımlar: kullanıcılara gerçekten gösterilen içeriğin (sayfa görüntülemeleri, içerik gösterimleri) toplanması ve içerik üzerinde A/B testinin desteklenmesi.
701
+
702
+ Analitik kesinlikle opt-in'dir: `analytics.enabled` açıkça `true` olarak ayarlanmadıkça **ve** atıflandırma için bir proje anahtarı (`editor.clientId`) yapılandırılmadıkça hiçbir şey toplanmaz. Devre dışı bırakıldığında (varsayılan), analitik entegrasyonunun tamamı uygulama paketinizden kaldırılır (dead-code elimination).
703
+
704
+ | Alan | Açıklama | Tür | Varsayılan | Örnek | Not |
705
+ | --------------- | -------------------------------------------------------------------------------------------- | --------- | ---------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
706
+ | `enabled` | Analitik toplamayı etkinleştirir (sayfa görüntülemeleri, içerik gösterimleri, A/B olayları). | `boolean` | `false` | `true` | Atıflandırma için `editor.clientId` ayarlanmış olmalıdır; aksi takdirde `enabled` `true` olsa bile analitik devre dışı kalır. |
707
+ | `flushInterval` | Backend'e otomatik toplu gönderimler arasındaki milisaniye. | `number` | `20000` | `10000` | |
708
+ | `sampleRate` | Kaydedilecek oturumların oranı, `0` (hiçbiri) ile `1` (tümü) arasında. | `number` | `1` | `0.5` | Örnekleme oturum başına belirlenimlidir, bu nedenle kaydedilen bir oturum tüm olaylarını raporlar (kısmi huniler olmaz). |
709
+
710
+ ---
711
+
671
712
  ### Yönlendirme Yapılandırması
672
713
 
673
714
  URL yapısı, dil saklama ve ara yazılım yönetimi dahil olmak üzere yönlendirme davranışını kontrol eden ayarlar.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-08-23
3
- updatedAt: 2026-06-30
3
+ updatedAt: 2026-07-08
4
4
  title: Intlayer CMS | İçeriğinizi Intlayer CMS'ye Dışa Aktarın
5
5
  description: İçeriğinizin yönetimini ekibinize devretmek için içeriğinizi Intlayer CMS'ye dışa aktarın.
6
6
  keywords:
@@ -18,6 +18,9 @@ slugs:
18
18
  - cms
19
19
  youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
20
20
  history:
21
+ - version: 9.0.0
22
+ date: 2026-07-08
23
+ changes: "'Canlı senkronizasyon' bölümü kendi sayfasına (live-sync.md) taşındı, burada yalnızca kısa bir giriş ve bağlantı bırakıldı"
21
24
  - version: 9.0.0
22
25
  date: 2026-06-30
23
26
  changes: "Kendi Sunucuda Barındırma bölümü eklendi"
@@ -248,132 +251,7 @@ Daha sonra sözlüğünüzü [Intlayer CMS](https://app.intlayer.org/content) ü
248
251
 
249
252
  Canlı Senkronizasyon, uygulamanızın CMS içerik değişikliklerini çalışma zamanında yansıtmasını sağlar. Yeniden derleme veya yeniden dağıtım gerekmez. Etkinleştirildiğinde, güncellemeler uygulamanızın okuduğu sözlükleri yenileyen bir Canlı Senkronizasyon sunucusuna aktarılır.
250
253
 
251
- > Canlı Senkronizasyon sürekli bir sunucu bağlantısı gerektirir ve yalnızca enterprise planında kullanılabilir.
252
-
253
- Intlayer yapılandırmanızı güncelleyerek Canlı Senkronizasyonu etkinleştirin:
254
-
255
- ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
256
- import type { IntlayerConfig } from "intlayer";
257
-
258
- const config: IntlayerConfig = {
259
- // ... diğer yapılandırma ayarları
260
- editor: {
261
- /**
262
- * Değişiklik algılandığında yerel ayar yapılandırmalarının sıcak yeniden yüklemesini etkinleştirir.
263
- * Örneğin, bir sözlük eklendiğinde veya güncellendiğinde, uygulama sayfada görüntülenen içeriği günceller.
264
- *
265
- * Sıcak yeniden yükleme sürekli bir sunucu bağlantısı gerektirdiği için,
266
- * yalnızca `enterprise` planı müşterileri için kullanılabilir.
267
- *
268
- * Varsayılan: false
269
- */
270
- liveSync: true,
271
- },
272
- dictionary: {
273
- /**
274
- * Sözlüklerin nasıl içe aktarılacağını kontrol eder:
275
- *
276
- * - "live": Sözlükler, Live Sync API kullanılarak dinamik olarak getirilir.
277
- * useIntlayer yerine useDictionaryDynamic kullanılır.
278
- *
279
- * Not: Canlı mod, sözlükleri getirmek için Live Sync API'sini kullanır. API çağrısı
280
- * başarısız olursa, sözlükler dinamik olarak içe aktarılır.
281
- * Not: Yalnızca uzak içeriğe ve "live" bayraklarına sahip sözlükler canlı modu kullanır.
282
- * Diğerleri performans için dinamik modu kullanır.
283
- */
284
- importMode: "fetch",
285
- },
286
- };
287
-
288
- export default config;
289
- ```
290
-
291
- Uygulamanızı sarmak için Live Sync sunucusunu başlatın:
292
-
293
- Next.js kullanarak örnek:
294
-
295
- ```json5 fileName="package.json"
296
- {
297
- "scripts": {
298
- // ... diğer komutlar
299
- "build": "next build",
300
- "dev": "next dev",
301
- "start": "npx intlayer live --with 'next start'",
302
- },
303
- }
304
- ```
305
-
306
- Vite kullanarak örnek:
307
-
308
- ```json5 fileName="package.json"
309
- {
310
- "scripts": {
311
- // ... diğer komutlar
312
- "build": "vite build",
313
- "dev": "vite dev",
314
- "start": "npx intlayer live --with 'vite start'",
315
- },
316
- }
317
- ```
318
-
319
- Live Sync sunucusu uygulamanızı sarar ve güncellenen içeriği geldiği anda otomatik olarak uygular.
320
-
321
- CMS'den değişiklik bildirimleri almak için, Live Sync sunucusu backend ile bir SSE bağlantısı sürdürür. CMS'de içerik değiştiğinde, backend güncellemeyi Live Sync sunucusuna iletir ve bu sunucu yeni sözlükleri yazar. Uygulamanız, sonraki gezinme veya tarayıcı yenilemesinde güncellemeyi yansıtacaktır, yeniden derleme gerekmez.
322
-
323
- Akış şeması (CMS/Backend -> Live Sync Sunucusu -> Uygulama Sunucusu -> Ön Yüz):
324
-
325
- ![Live Sync Mantık Şeması](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
326
-
327
- Nasıl çalışır:
328
-
329
- ![Live Sync Akış CMS/Backend/Live Sync Sunucusu/Uygulama Sunucusu/Ön Yüz Şeması](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
330
-
331
- ### Geliştirme iş akışı (yerel)
332
-
333
- - Geliştirme aşamasında, uygulama başladığında tüm uzak sözlükler alınır, böylece güncellemeleri hızlıca test edebilirsiniz.
334
- - Next.js ile Live Sync'i yerel olarak test etmek için geliştirme sunucunuzu şu şekilde sarmalayın:
335
-
336
- ```json5 fileName="package.json"
337
- {
338
- "scripts": {
339
- // ... diğer scriptler
340
- "dev": "npx intlayer live --with 'next dev'",
341
- // "dev": "npx intlayer live --with 'vite dev'", // Vite için
342
- },
343
- }
344
- ```
345
-
346
- Optimizasyonu etkinleştirin, böylece Intlayer geliştirme sırasında Live import dönüşümlerini uygular:
347
-
348
- ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
349
- import type { IntlayerConfig } from "intlayer";
350
-
351
- const config: IntlayerConfig = {
352
- editor: {
353
- applicationURL: "http://localhost:5173",
354
- liveSyncURL: "http://localhost:4000",
355
- liveSync: true,
356
- },
357
- dictionary: {
358
- importMode: "fetch",
359
- },
360
- build: {
361
- optimize: true,
362
- },
363
- };
364
-
365
- export default config;
366
- ```
367
-
368
- Bu yapılandırma, geliştirme sunucunuzu Live Sync sunucusuyla sarar, başlangıçta uzak sözlükleri getirir ve CMS'den SSE aracılığıyla güncellemeleri aktarır. Değişiklikleri görmek için sayfayı yenileyin.
369
-
370
- Notlar ve kısıtlamalar:
371
-
372
- - Live sync kaynağını site güvenlik politikanıza (CSP) ekleyin. Live sync URL'sinin `connect-src` içinde (ve ilgili ise `frame-ancestors` içinde) izinli olduğundan emin olun.
373
- - Live Sync statik çıktı ile çalışmaz. Next.js için, sayfa çalışma zamanında güncellemeleri alabilmek için dinamik olmalıdır (örneğin, tam statik kısıtlamalardan kaçınmak için `generateStaticParams`, `generateMetadata`, `getServerSideProps` veya `getStaticProps` uygun şekilde kullanılmalıdır).
374
- - CMS'de, her sözlüğün bir `live` bayrağı vardır. Yalnızca `live=true` olan sözlükler live sync API'si aracılığıyla alınır; diğerleri dinamik olarak içe aktarılır ve çalışma zamanında değişmeden kalır.
375
- - `live` bayrağı her sözlük için build zamanında değerlendirilir. Uzaktaki içerik derleme sırasında `live=true` olarak işaretlenmemişse, o sözlük için Live Sync'i etkinleştirmek üzere yeniden derleme yapmanız gerekir.
376
- - Live sync sunucusunun `.intlayer` dosyasına yazabilmesi gerekir. Konteynerlerde, `/.intlayer` dosyasına yazma erişiminin olduğundan emin olun.
254
+ Tam kurulum kılavuzu (etkinleştirme, Live Sync sunucusunu başlatma, yerel geliştirme iş akışı ve kısıtlamalar) için [Live Sync belgelerine](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/live-sync.md) bakın.
377
255
 
378
256
  ## Kendi Sunucunuzda Barındırma
379
257
 
@@ -0,0 +1,173 @@
1
+ ---
2
+ createdAt: 2026-07-08
3
+ updatedAt: 2026-07-08
4
+ title: Canlı senkronizasyon | CMS içerik değişikliklerini çalışma zamanında yansıtın
5
+ description: Uygulamanızın, yeniden derleme veya yeniden dağıtım gerektirmeden Intlayer CMS içerik değişikliklerini çalışma zamanında yansıtmasını sağlayın.
6
+ keywords:
7
+ - Canlı senkronizasyon
8
+ - Live Sync
9
+ - CMS
10
+ - Görsel Düzenleyici
11
+ - Uluslararasılaştırma
12
+ - Dokümantasyon
13
+ - Intlayer
14
+ - Next.js
15
+ - Vite
16
+ history:
17
+ - version: 9.0.0
18
+ date: 2026-07-08
19
+ changes: "Intlayer CMS belgelerinden ayrılarak kendi sayfasına taşındı"
20
+ - version: 6.0.1
21
+ date: 2025-09-22
22
+ changes: "Canlı senkronizasyon dokümantasyonu eklendi"
23
+ - version: 6.0.0
24
+ date: 2025-09-04
25
+ changes: "`hotReload` alanı `liveSync` ile değiştirildi"
26
+ author: aymericzip
27
+ ---
28
+
29
+ # Canlı senkronizasyon
30
+
31
+ Canlı Senkronizasyon, uygulamanızın CMS içerik değişikliklerini çalışma zamanında yansıtmasını sağlar. Yeniden derleme veya yeniden dağıtım gerekmez. Etkinleştirildiğinde, güncellemeler uygulamanızın okuduğu sözlükleri yenileyen bir Canlı Senkronizasyon sunucusuna aktarılır.
32
+
33
+ ## İçindekiler
34
+
35
+ <TOC/>
36
+
37
+ ---
38
+
39
+ ## Canlı senkronizasyonu etkinleştirme
40
+
41
+ > Canlı Senkronizasyon sürekli bir sunucu bağlantısı gerektirir ve yalnızca enterprise planında kullanılabilir.
42
+
43
+ Intlayer yapılandırmanızı güncelleyerek Canlı Senkronizasyonu etkinleştirin:
44
+
45
+ ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
46
+ import type { IntlayerConfig } from "intlayer";
47
+
48
+ const config: IntlayerConfig = {
49
+ // ... diğer yapılandırma ayarları
50
+ editor: {
51
+ /**
52
+ * Değişiklik algılandığında yerel ayar yapılandırmalarının sıcak yeniden yüklemesini etkinleştirir.
53
+ * Örneğin, bir sözlük eklendiğinde veya güncellendiğinde, uygulama sayfada görüntülenen içeriği günceller.
54
+ *
55
+ * Sıcak yeniden yükleme sürekli bir sunucu bağlantısı gerektirdiği için,
56
+ * yalnızca `enterprise` planı müşterileri için kullanılabilir.
57
+ *
58
+ * Varsayılan: false
59
+ */
60
+ liveSync: true,
61
+ },
62
+ dictionary: {
63
+ /**
64
+ * Sözlüklerin nasıl içe aktarılacağını kontrol eder:
65
+ *
66
+ * - "live": Sözlükler, Live Sync API kullanılarak dinamik olarak getirilir.
67
+ * useIntlayer yerine useDictionaryDynamic kullanılır.
68
+ *
69
+ * Not: Canlı mod, sözlükleri getirmek için Live Sync API'sini kullanır. API çağrısı
70
+ * başarısız olursa, sözlükler dinamik olarak içe aktarılır.
71
+ * Not: Yalnızca uzak içeriğe ve "live" bayraklarına sahip sözlükler canlı modu kullanır.
72
+ * Diğerleri performans için dinamik modu kullanır.
73
+ */
74
+ importMode: "fetch",
75
+ },
76
+ };
77
+
78
+ export default config;
79
+ ```
80
+
81
+ Uygulamanızı sarmak için Live Sync sunucusunu başlatın:
82
+
83
+ Next.js kullanarak örnek:
84
+
85
+ ```json5 fileName="package.json"
86
+ {
87
+ "scripts": {
88
+ // ... diğer komutlar
89
+ "build": "next build",
90
+ "dev": "next dev",
91
+ "start": "npx intlayer live --with 'next start'",
92
+ },
93
+ }
94
+ ```
95
+
96
+ Vite kullanarak örnek:
97
+
98
+ ```json5 fileName="package.json"
99
+ {
100
+ "scripts": {
101
+ // ... diğer komutlar
102
+ "build": "vite build",
103
+ "dev": "vite dev",
104
+ "start": "npx intlayer live --with 'vite start'",
105
+ },
106
+ }
107
+ ```
108
+
109
+ Live Sync sunucusu uygulamanızı sarar ve güncellenen içeriği geldiği anda otomatik olarak uygular.
110
+
111
+ CMS'den değişiklik bildirimleri almak için, Live Sync sunucusu backend ile bir SSE bağlantısı sürdürür. CMS'de içerik değiştiğinde, backend güncellemeyi Live Sync sunucusuna iletir ve bu sunucu yeni sözlükleri yazar. Uygulamanız, sonraki gezinme veya tarayıcı yenilemesinde güncellemeyi yansıtacaktır, yeniden derleme gerekmez.
112
+
113
+ Akış şeması (CMS/Backend -> Live Sync Sunucusu -> Uygulama Sunucusu -> Ön Yüz):
114
+
115
+ ![Live Sync Mantık Şeması](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
116
+
117
+ Nasıl çalışır:
118
+
119
+ ![Live Sync Akış CMS/Backend/Live Sync Sunucusu/Uygulama Sunucusu/Ön Yüz Şeması](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
120
+
121
+ ## Geliştirme iş akışı (yerel)
122
+
123
+ - Geliştirme aşamasında, uygulama başladığında tüm uzak sözlükler alınır, böylece güncellemeleri hızlıca test edebilirsiniz.
124
+ - Next.js ile Live Sync'i yerel olarak test etmek için geliştirme sunucunuzu şu şekilde sarmalayın:
125
+
126
+ ```json5 fileName="package.json"
127
+ {
128
+ "scripts": {
129
+ // ... diğer scriptler
130
+ "dev": "npx intlayer live --with 'next dev'",
131
+ // "dev": "npx intlayer live --with 'vite dev'", // Vite için
132
+ },
133
+ }
134
+ ```
135
+
136
+ Optimizasyonu etkinleştirin, böylece Intlayer geliştirme sırasında Live import dönüşümlerini uygular:
137
+
138
+ ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
139
+ import type { IntlayerConfig } from "intlayer";
140
+
141
+ const config: IntlayerConfig = {
142
+ editor: {
143
+ applicationURL: "http://localhost:5173",
144
+ liveSyncURL: "http://localhost:4000",
145
+ liveSync: true,
146
+ },
147
+ dictionary: {
148
+ importMode: "fetch",
149
+ },
150
+ build: {
151
+ optimize: true,
152
+ },
153
+ };
154
+
155
+ export default config;
156
+ ```
157
+
158
+ Bu yapılandırma, geliştirme sunucunuzu Live Sync sunucusuyla sarar, başlangıçta uzak sözlükleri getirir ve CMS'den SSE aracılığıyla güncellemeleri aktarır. Değişiklikleri görmek için sayfayı yenileyin.
159
+
160
+ ## Notlar ve kısıtlamalar
161
+
162
+ - Live sync kaynağını site güvenlik politikanıza (CSP) ekleyin. Live sync URL'sinin `connect-src` içinde (ve ilgili ise `frame-ancestors` içinde) izinli olduğundan emin olun.
163
+ - Live Sync statik çıktı ile çalışmaz. Next.js için, sayfa çalışma zamanında güncellemeleri alabilmek için dinamik olmalıdır (örneğin, tam statik kısıtlamalardan kaçınmak için `generateStaticParams`, `generateMetadata`, `getServerSideProps` veya `getStaticProps` uygun şekilde kullanılmalıdır).
164
+ - CMS'de, her sözlüğün bir `live` bayrağı vardır. Yalnızca `live=true` olan sözlükler live sync API'si aracılığıyla alınır; diğerleri dinamik olarak içe aktarılır ve çalışma zamanında değişmeden kalır.
165
+ - `live` bayrağı her sözlük için build zamanında değerlendirilir. Uzaktaki içerik derleme sırasında `live=true` olarak işaretlenmemişse, o sözlük için Live Sync'i etkinleştirmek üzere yeniden derleme yapmanız gerekir.
166
+ - Live sync sunucusunun `.intlayer` dosyasına yazabilmesi gerekir. Konteynerlerde, `/.intlayer` dosyasına yazma erişiminin olduğundan emin olun.
167
+
168
+ ## Faydalı bağlantılar
169
+
170
+ - [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md)
171
+ - [Intlayer Görsel Düzenleyici](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_visual_editor.md)
172
+ - [Yapılandırma Referansı](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md)
173
+ - [Kendi Sunucuda Barındırma Kılavuzu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/self_hosting.md)