@intlayer/docs 9.0.0-canary.15 → 9.0.0-canary.17
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.
- package/blog/en/rag_powered_documentation_assistant.md +6 -0
- package/dist/cjs/generated/docs.entry.cjs +40 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +40 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/index.md +1 -1
- package/docs/ar/configuration.md +42 -1
- package/docs/ar/intlayer_CMS.md +5 -128
- package/docs/ar/live-sync.md +174 -0
- package/docs/ar/releases/v9.md +45 -1
- package/docs/bn/cli/index.md +1 -1
- package/docs/bn/configuration.md +45 -1
- package/docs/cs/cli/index.md +1 -1
- package/docs/cs/configuration.md +45 -1
- package/docs/de/cli/index.md +1 -1
- package/docs/de/configuration.md +42 -1
- package/docs/de/intlayer_CMS.md +5 -135
- package/docs/de/live-sync.md +174 -0
- package/docs/de/releases/v9.md +45 -1
- package/docs/en/analytics.md +222 -0
- package/docs/en/cli/index.md +1 -1
- package/docs/en/configuration.md +42 -1
- package/docs/en/intlayer_CMS.md +6 -140
- package/docs/en/live-sync.md +184 -0
- package/docs/en/releases/v9.md +53 -3
- package/docs/en-GB/cli/index.md +1 -1
- package/docs/en-GB/configuration.md +42 -1
- package/docs/en-GB/intlayer_CMS.md +5 -128
- package/docs/en-GB/live-sync.md +173 -0
- package/docs/en-GB/releases/v9.md +45 -1
- package/docs/es/cli/index.md +1 -1
- package/docs/es/configuration.md +42 -1
- package/docs/es/intlayer_CMS.md +5 -140
- package/docs/es/live-sync.md +176 -0
- package/docs/es/releases/v9.md +45 -1
- package/docs/fr/cli/index.md +1 -1
- package/docs/fr/configuration.md +42 -1
- package/docs/fr/intlayer_CMS.md +5 -135
- package/docs/fr/live-sync.md +174 -0
- package/docs/fr/releases/v9.md +45 -1
- package/docs/hi/cli/index.md +1 -1
- package/docs/hi/configuration.md +42 -1
- package/docs/hi/intlayer_CMS.md +5 -128
- package/docs/hi/live-sync.md +174 -0
- package/docs/hi/releases/v9.md +45 -1
- package/docs/id/cli/index.md +1 -1
- package/docs/id/configuration.md +42 -1
- package/docs/id/intlayer_CMS.md +5 -139
- package/docs/id/live-sync.md +185 -0
- package/docs/id/releases/v9.md +45 -1
- package/docs/it/cli/index.md +1 -1
- package/docs/it/configuration.md +42 -1
- package/docs/it/intlayer_CMS.md +5 -128
- package/docs/it/live-sync.md +174 -0
- package/docs/it/releases/v9.md +45 -1
- package/docs/ja/cli/index.md +1 -1
- package/docs/ja/configuration.md +42 -1
- package/docs/ja/intlayer_CMS.md +5 -139
- package/docs/ja/live-sync.md +185 -0
- package/docs/ja/releases/v9.md +45 -1
- package/docs/ko/cli/index.md +1 -1
- package/docs/ko/configuration.md +42 -1
- package/docs/ko/intlayer_CMS.md +5 -141
- package/docs/ko/live-sync.md +187 -0
- package/docs/ko/releases/v9.md +45 -1
- package/docs/nl/cli/index.md +1 -1
- package/docs/nl/configuration.md +45 -1
- package/docs/pl/cli/index.md +1 -1
- package/docs/pl/configuration.md +45 -1
- package/docs/pl/intlayer_CMS.md +5 -139
- package/docs/pl/live-sync.md +185 -0
- package/docs/pl/releases/v9.md +45 -1
- package/docs/pt/cli/index.md +1 -1
- package/docs/pt/configuration.md +45 -1
- package/docs/pt/intlayer_CMS.md +5 -143
- package/docs/pt/live-sync.md +174 -0
- package/docs/pt/releases/v9.md +45 -1
- package/docs/ru/cli/index.md +1 -1
- package/docs/ru/configuration.md +42 -1
- package/docs/ru/intlayer_CMS.md +5 -139
- package/docs/ru/live-sync.md +185 -0
- package/docs/ru/releases/v9.md +45 -1
- package/docs/tr/cli/index.md +1 -1
- package/docs/tr/configuration.md +42 -1
- package/docs/tr/intlayer_CMS.md +5 -127
- package/docs/tr/live-sync.md +173 -0
- package/docs/tr/releases/v9.md +45 -1
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/configuration.md +42 -1
- package/docs/uk/intlayer_CMS.md +5 -139
- package/docs/uk/live-sync.md +185 -0
- package/docs/uk/releases/v9.md +45 -1
- package/docs/ur/cli/index.md +1 -1
- package/docs/ur/configuration.md +45 -1
- package/docs/vi/cli/index.md +1 -1
- package/docs/vi/configuration.md +42 -1
- package/docs/vi/intlayer_CMS.md +5 -139
- package/docs/vi/live-sync.md +185 -0
- package/docs/vi/releases/v9.md +45 -1
- package/docs/zh/cli/index.md +1 -1
- package/docs/zh/configuration.md +42 -1
- package/docs/zh/intlayer_CMS.md +5 -129
- package/docs/zh/live-sync.md +175 -0
- package/docs/zh/releases/v9.md +45 -1
- package/package.json +7 -7
- 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: Sinkronisasi langsung | Refleksikan perubahan konten CMS saat runtime
|
|
5
|
+
description: Biarkan aplikasi Anda merefleksikan perubahan konten Intlayer CMS saat runtime, tanpa perlu build ulang atau deploy ulang.
|
|
6
|
+
keywords:
|
|
7
|
+
- Sinkronisasi langsung
|
|
8
|
+
- Live Sync
|
|
9
|
+
- CMS
|
|
10
|
+
- Editor Visual
|
|
11
|
+
- Internasionalisasi
|
|
12
|
+
- Dokumentasi
|
|
13
|
+
- Intlayer
|
|
14
|
+
- Next.js
|
|
15
|
+
- Vite
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-07-08
|
|
19
|
+
changes: "Dipindahkan dari dokumentasi Intlayer CMS ke halamannya sendiri"
|
|
20
|
+
- version: 6.0.1
|
|
21
|
+
date: 2025-09-22
|
|
22
|
+
changes: "Menambahkan dokumentasi live sync"
|
|
23
|
+
- version: 6.0.0
|
|
24
|
+
date: 2025-09-04
|
|
25
|
+
changes: "Mengganti field `hotReload` dengan `liveSync`"
|
|
26
|
+
author: aymericzip
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Sinkronisasi langsung
|
|
30
|
+
|
|
31
|
+
Sinkronisasi Langsung memungkinkan aplikasi Anda mencerminkan perubahan konten CMS secara real-time. Tidak perlu membangun ulang atau menerapkan ulang. Saat diaktifkan, pembaruan dikirimkan ke server Sinkronisasi Langsung yang menyegarkan kamus yang dibaca aplikasi Anda.
|
|
32
|
+
|
|
33
|
+
## Daftar Isi
|
|
34
|
+
|
|
35
|
+
<TOC/>
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Mengaktifkan Sinkronisasi langsung
|
|
40
|
+
|
|
41
|
+
Aktifkan Sinkronisasi Langsung dengan memperbarui konfigurasi Intlayer Anda:
|
|
42
|
+
|
|
43
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
44
|
+
import type { IntlayerConfig } from "intlayer";
|
|
45
|
+
|
|
46
|
+
const config: IntlayerConfig = {
|
|
47
|
+
// ... pengaturan konfigurasi lainnya
|
|
48
|
+
editor: {
|
|
49
|
+
/**
|
|
50
|
+
* Mengaktifkan hot reloading konfigurasi locale saat perubahan terdeteksi.
|
|
51
|
+
* Misalnya, ketika sebuah kamus ditambahkan atau diperbarui, aplikasi akan memperbarui
|
|
52
|
+
* konten yang ditampilkan pada halaman.
|
|
53
|
+
*
|
|
54
|
+
* Karena hot reloading memerlukan koneksi terus-menerus ke server, fitur ini
|
|
55
|
+
* hanya tersedia untuk klien dengan paket `enterprise`.
|
|
56
|
+
*
|
|
57
|
+
* Default: false
|
|
58
|
+
*/
|
|
59
|
+
liveSync: true,
|
|
60
|
+
},
|
|
61
|
+
dictionary: {
|
|
62
|
+
/**
|
|
63
|
+
* Mengontrol bagaimana kamus diimpor:
|
|
64
|
+
*
|
|
65
|
+
* - "live": Kamus diambil secara dinamis menggunakan Live Sync API.
|
|
66
|
+
* Menggantikan useIntlayer dengan useDictionaryDynamic.
|
|
67
|
+
*
|
|
68
|
+
* Catatan: Mode live menggunakan Live Sync API untuk mengambil kamus. Jika panggilan API
|
|
69
|
+
* gagal, kamus diimpor secara dinamis.
|
|
70
|
+
* Catatan: Hanya kamus dengan konten jarak jauh dan flag "live" yang menggunakan mode live.
|
|
71
|
+
* Yang lain menggunakan mode dinamis untuk kinerja.
|
|
72
|
+
*/
|
|
73
|
+
importMode: "fetch",
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export default config;
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Mulai server Live Sync untuk membungkus aplikasi Anda:
|
|
81
|
+
|
|
82
|
+
Contoh menggunakan server mandiri:
|
|
83
|
+
|
|
84
|
+
```json5 fileName="package.json"
|
|
85
|
+
{
|
|
86
|
+
"scripts": {
|
|
87
|
+
// ... skrip lainnya
|
|
88
|
+
"live:start": "npx intlayer live",
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Anda juga dapat menggunakan server aplikasi Anda secara paralel dengan menggunakan argumen `--process`.
|
|
94
|
+
|
|
95
|
+
Contoh menggunakan Next.js:
|
|
96
|
+
|
|
97
|
+
```json5 fileName="package.json"
|
|
98
|
+
{
|
|
99
|
+
"scripts": {
|
|
100
|
+
// ... skrip lainnya
|
|
101
|
+
"build": "next build",
|
|
102
|
+
"dev": "next dev",
|
|
103
|
+
"start": "npx intlayer live --with 'next start'",
|
|
104
|
+
},
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Contoh menggunakan Vite:
|
|
109
|
+
|
|
110
|
+
```json5 fileName="package.json"
|
|
111
|
+
{
|
|
112
|
+
"scripts": {
|
|
113
|
+
// ... skrip lainnya
|
|
114
|
+
"build": "vite build",
|
|
115
|
+
"dev": "vite dev",
|
|
116
|
+
"start": "npx intlayer live --with 'vite start'",
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Server Live Sync membungkus aplikasi Anda dan secara otomatis menerapkan konten yang diperbarui saat konten tersebut tiba.
|
|
122
|
+
|
|
123
|
+
Untuk menerima notifikasi perubahan dari CMS, server Live Sync mempertahankan koneksi SSE ke backend. Ketika konten berubah di CMS, backend meneruskan pembaruan ke server Live Sync, yang kemudian menulis kamus baru. Aplikasi Anda akan mencerminkan pembaruan tersebut pada navigasi berikutnya atau saat memuat ulang browser, tidak perlu membangun ulang.
|
|
124
|
+
|
|
125
|
+
Diagram alur (CMS/Backend -> Server Live Sync -> Server Aplikasi -> Frontend):
|
|
126
|
+
|
|
127
|
+

|
|
128
|
+
|
|
129
|
+
Cara kerjanya:
|
|
130
|
+
|
|
131
|
+

|
|
132
|
+
|
|
133
|
+
## Alur kerja pengembangan (lokal)
|
|
134
|
+
|
|
135
|
+
- Dalam pengembangan, semua kamus jarak jauh diambil saat aplikasi dimulai, sehingga Anda dapat menguji pembaruan dengan cepat.
|
|
136
|
+
- Untuk menguji Live Sync secara lokal dengan Next.js, bungkus server dev Anda:
|
|
137
|
+
|
|
138
|
+
```json5 fileName="package.json"
|
|
139
|
+
{
|
|
140
|
+
"scripts": {
|
|
141
|
+
// ... skrip lainnya
|
|
142
|
+
"dev": "npx intlayer live --with 'next dev'",
|
|
143
|
+
// "dev": "npx intlayer live --with 'vite dev'", // Untuk Vite
|
|
144
|
+
},
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Aktifkan optimasi agar Intlayer menerapkan transformasi impor Live selama pengembangan:
|
|
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,
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export default config;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Pengaturan ini membungkus server dev Anda dengan server Live Sync, mengambil kamus jarak jauh saat startup, dan mengalirkan pembaruan dari CMS melalui SSE. Segarkan halaman untuk melihat perubahan.
|
|
171
|
+
|
|
172
|
+
## Catatan dan batasan
|
|
173
|
+
|
|
174
|
+
- Tambahkan origin live sync ke kebijakan keamanan situs Anda (CSP). Pastikan URL live sync diizinkan dalam `connect-src` (dan `frame-ancestors` jika relevan).
|
|
175
|
+
- Live Sync tidak berfungsi dengan output statis. Untuk Next.js, halaman harus dinamis agar dapat menerima pembaruan saat runtime (misalnya, gunakan `generateStaticParams`, `generateMetadata`, `getServerSideProps`, atau `getStaticProps` secara tepat untuk menghindari batasan hanya statis penuh).
|
|
176
|
+
- Di CMS, setiap kamus memiliki flag `live`. Hanya kamus dengan `live=true` yang diambil melalui API live sync; yang lain diimpor secara dinamis dan tetap tidak berubah saat runtime.
|
|
177
|
+
- Flag `live` dievaluasi untuk setiap kamus saat build. Jika konten jarak jauh tidak diberi flag `live=true` selama build, Anda harus membangun ulang untuk mengaktifkan Live Sync untuk kamus tersebut.
|
|
178
|
+
- Server live sync harus dapat menulis ke `.intlayer`. Dalam container, pastikan akses tulis ke `/.intlayer`.
|
|
179
|
+
|
|
180
|
+
## Tautan berguna
|
|
181
|
+
|
|
182
|
+
- [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md)
|
|
183
|
+
- [Editor Visual Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_visual_editor.md)
|
|
184
|
+
- [Referensi Konfigurasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md)
|
|
185
|
+
- [Panduan Self-Hosting](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/self_hosting.md)
|
package/docs/id/releases/v9.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-06-14
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: Intlayer v9 Baru - Apa yang baru?
|
|
5
5
|
description: Temukan apa yang baru di Intlayer v9. Memperkenalkan paket kompatibilitas drop-in untuk pustaka i18n populer dan dukungan untuk Collections dan Variants.
|
|
6
6
|
keywords:
|
|
@@ -203,6 +203,49 @@ const product = useIntlayer("product-copy", {
|
|
|
203
203
|
|
|
204
204
|
---
|
|
205
205
|
|
|
206
|
+
## `@intlayer/analytics`: pelacakan eksposur konten & pengujian A/B
|
|
207
|
+
|
|
208
|
+
Paket opsional baru, [`@intlayer/analytics`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md), memberi tahu Anda konten apa yang benar-benar ditampilkan kepada pengunjung Anda — dan melengkapi **Collections & Variants** dengan memungkinkan Anda melakukan pengujian A/B pada konten serta mengukur konversi per varian.
|
|
209
|
+
|
|
210
|
+
- **Pelacakan tingkat provider**: `IntlayerProvider` (React / Next.js / React Native) secara otomatis mencatat peristiwa `page_view` saat memuat, berpindah rute, dan berganti locale.
|
|
211
|
+
- **Pelacakan tingkat node**: setiap resolusi `useIntlayer` melaporkan peristiwa `content_exposure` — kunci dictionary, key path, locale mana, dan (jika berlaku) **varian** A/B mana yang ditampilkan. Eksposur berulang pada node yang sama dalam satu jendela flush digabungkan menjadi satu peristiwa.
|
|
212
|
+
- **Penetapan A/B deterministik**: `getVariant(experimentKey, variants)` menetapkan varian ke setiap sesi **tanpa round-trip ke server**, sehingga tidak ada kedipan sebelum render pertama.
|
|
213
|
+
- **`useConversion()`**: mengaitkan sebuah goal (pendaftaran, klik, pembelian…) dengan varian yang dilihat sesi tersebut.
|
|
214
|
+
- **Tanpa biaya jika tidak dipasang**: pola tree-shakeable yang sama seperti `@intlayer/editor` — `import()` dinamis yang dibungkus `try/catch`, ditambah variabel lingkungan waktu build (`INTLAYER_ANALYTICS_ENABLED`) yang menghapus seluruh integrasi melalui dead-code elimination untuk aplikasi yang tidak mengaktifkannya.
|
|
215
|
+
- **Tanpa skema konfigurasi baru**: menggunakan kembali `editor.backendURL` (endpoint pengiriman / self-hosting) dan `editor.clientId` (kunci proyek, sekaligus saklar pengaktif).
|
|
216
|
+
- **Menghormati privasi**: hashing sesi anonim (SHA-256, tanpa menyimpan id mentah), tanpa penyimpanan IP, geolokasi kasar hanya berdasarkan negara, permintaan dikirim secara batch kira-kira setiap 20 detik.
|
|
217
|
+
- **Dashboard**: halaman **Analytics** baru (muncul di sidebar setelah proyek dipilih) menampilkan pengguna aktif, pengguna hari ini, pengguna 7/30/90 hari terakhir, grafik evolusi pengunjung, serta rincian Locale vs Lokasi.
|
|
218
|
+
|
|
219
|
+
```tsx fileName="CTAButton.tsx" codeFormat="tsx"
|
|
220
|
+
import { useConversion } from "react-intlayer";
|
|
221
|
+
|
|
222
|
+
const CTAButton = () => {
|
|
223
|
+
const trackConversion = useConversion();
|
|
224
|
+
|
|
225
|
+
return (
|
|
226
|
+
<button
|
|
227
|
+
onClick={() =>
|
|
228
|
+
trackConversion({
|
|
229
|
+
experimentKey: "homepage-hero",
|
|
230
|
+
variant: "black_friday",
|
|
231
|
+
goal: "cta_click",
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
>
|
|
235
|
+
Get started
|
|
236
|
+
</button>
|
|
237
|
+
);
|
|
238
|
+
};
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
```bash packageManager="npm"
|
|
242
|
+
npm install @intlayer/analytics
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Sudah tersedia hari ini untuk React, Next.js, dan React Native (melalui `react-intlayer`); binding framework lain (Vue, Svelte, Angular, …) direncanakan, mengikuti pola rilis yang sama seperti `@intlayer/editor`. Lihat [dokumentasi Analytics](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md) untuk panduan lengkap.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
206
249
|
## Vite Plugin: Bundled Compiler & Proxy
|
|
207
250
|
|
|
208
251
|
Plugin Vite `intlayer()` sekarang menggabungkan **compiler** dan **locale-routing proxy** secara langsung, sehingga sebagian besar proyek hanya memerlukan satu plugin di `vite.config.ts`:
|
|
@@ -324,5 +367,6 @@ Jika Anda memperbarui dari v8, perhatikan bahwa v9 tidak menyertakan breaking ch
|
|
|
324
367
|
|
|
325
368
|
- [Panduan Compat Adapter Packages](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/compat/index.md)
|
|
326
369
|
- [Dynamic Dictionaries - Collections & Variants](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dynamic_dictionaries/index.md)
|
|
370
|
+
- [Analytics - Pelacakan eksposur konten & pengujian A/B](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md)
|
|
327
371
|
- [Referensi Konfigurasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md)
|
|
328
372
|
- [SDK CMS - Akses terprogram dengan @intlayer/api](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md)
|
package/docs/it/cli/index.md
CHANGED
|
@@ -125,7 +125,7 @@ Per vedere come configurare le lingue disponibili o altri parametri, fai riferim
|
|
|
125
125
|
|
|
126
126
|
### Autenticazione
|
|
127
127
|
|
|
128
|
-
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/login.md)** - Autenticati con l'Intlayer CMS e ottieni le credenziali di accesso
|
|
128
|
+
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/login.md)** - Autenticati con l'Intlayer CMS e ottieni le credenziali di accesso
|
|
129
129
|
|
|
130
130
|
### Comandi principali
|
|
131
131
|
|
package/docs/it/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-11
|
|
4
4
|
title: Configurazione
|
|
5
5
|
description: Scopri come configurare Intlayer per la tua applicazione. Comprendi le diverse impostazioni e opzioni disponibili per personalizzare Intlayer secondo le tue necessità.
|
|
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: "Aggiunta la configurazione `analytics`"
|
|
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
|
+
* Configurazione degli analytics.
|
|
363
|
+
*/
|
|
364
|
+
analytics: {
|
|
365
|
+
/**
|
|
366
|
+
* Se la raccolta degli analytics è abilitata (visualizzazioni di pagina, esposizioni di contenuto, eventi A/B).
|
|
367
|
+
* Richiede che `editor.clientId` sia impostato per l'attribuzione.
|
|
368
|
+
* Predefinito: false
|
|
369
|
+
*/
|
|
370
|
+
enabled: true,
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* Millisecondi tra gli invii automatici in batch al backend.
|
|
374
|
+
* Predefinito: 20000
|
|
375
|
+
*/
|
|
376
|
+
flushInterval: 20000,
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Frazione di sessioni da registrare, da 0 (nessuna) a 1 (tutte).
|
|
380
|
+
* Predefinito: 1
|
|
381
|
+
*/
|
|
382
|
+
sampleRate: 1,
|
|
383
|
+
},
|
|
384
|
+
|
|
358
385
|
/**
|
|
359
386
|
* Impostazioni per le traduzioni e la generazione tramite IA.
|
|
360
387
|
*/
|
|
@@ -671,6 +698,20 @@ Definisce le impostazioni per l'editor visuale, incluse la porta del server e lo
|
|
|
671
698
|
|
|
672
699
|
---
|
|
673
700
|
|
|
701
|
+
### Configurazione Analytics (Analytics)
|
|
702
|
+
|
|
703
|
+
Definisce le impostazioni relative agli analytics di Intlayer: la raccolta di quale contenuto viene effettivamente mostrato agli utenti (visualizzazioni di pagina, esposizioni di contenuto) e il supporto ai test A/B sui contenuti.
|
|
704
|
+
|
|
705
|
+
Gli analytics sono rigorosamente opt-in: non viene raccolto nulla a meno che `analytics.enabled` non sia esplicitamente impostato su `true` **e** una chiave di progetto (`editor.clientId`) sia configurata per l'attribuzione. Quando disabilitati (impostazione predefinita), l'intera integrazione analytics viene eliminata dal bundle dell'applicazione (dead-code elimination).
|
|
706
|
+
|
|
707
|
+
| Campo | Descrizione | Tipo | Predefinito | Esempio | Nota |
|
|
708
|
+
| --------------- | ------------------------------------------------------------------------------------------------------ | --------- | ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
709
|
+
| `enabled` | Abilita la raccolta degli analytics (visualizzazioni di pagina, esposizioni di contenuto, eventi A/B). | `boolean` | `false` | `true` | Richiede che `editor.clientId` sia impostato per l'attribuzione; altrimenti gli analytics rimangono disabilitati anche se `enabled` è `true`. |
|
|
710
|
+
| `flushInterval` | Millisecondi tra gli invii automatici in batch al backend. | `number` | `20000` | `10000` | |
|
|
711
|
+
| `sampleRate` | Frazione di sessioni da registrare, da `0` (nessuna) a `1` (tutte). | `number` | `1` | `0.5` | Il campionamento è deterministico per sessione, quindi una sessione registrata riporta tutti i suoi eventi (nessun funnel parziale). |
|
|
712
|
+
|
|
713
|
+
---
|
|
714
|
+
|
|
674
715
|
### Configurazione Routing (Routing)
|
|
675
716
|
|
|
676
717
|
Impostazioni che controllano il comportamento del routing, inclusa la struttura dell'URL, lo storage del locale e la gestione del middleware.
|
package/docs/it/intlayer_CMS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-08-23
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: Intlayer CMS | Esternalizza i tuoi contenuti nel CMS di Intlayer
|
|
5
5
|
description: Esternalizza i tuoi contenuti nel CMS di Intlayer per delegare la gestione dei tuoi contenuti al tuo team.
|
|
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: "Spostata la sezione «Sincronizzazione live» nella propria pagina (live-sync.md), lasciando qui una breve introduzione con link"
|
|
21
24
|
- version: 9.0.0
|
|
22
25
|
date: 2026-06-30
|
|
23
26
|
changes: "Aggiunta sezione Self-Hosting: bootstrap Docker Compose, inventario dei servizi, configurazione SDK, funzionalità opzionali e note di aggiornamento"
|
|
@@ -248,133 +251,7 @@ Successivamente potrai visualizzare e gestire il tuo dizionario nel [Intlayer CM
|
|
|
248
251
|
|
|
249
252
|
La Sincronizzazione Live consente alla tua app di riflettere le modifiche ai contenuti del CMS in tempo reale. Non è necessario ricostruire o ridistribuire. Quando abilitata, gli aggiornamenti vengono trasmessi a un server di Sincronizzazione Live che aggiorna i dizionari letti dalla tua applicazione.
|
|
250
253
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
Abilita Live Sync aggiornando la configurazione di Intlayer:
|
|
254
|
-
|
|
255
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
256
|
-
import type { IntlayerConfig } from "intlayer";
|
|
257
|
-
|
|
258
|
-
const config: IntlayerConfig = {
|
|
259
|
-
// ... altre impostazioni di configurazione
|
|
260
|
-
editor: {
|
|
261
|
-
/**
|
|
262
|
-
* Abilita il caricamento a caldo delle configurazioni locali quando vengono rilevate modifiche.
|
|
263
|
-
* Ad esempio, quando un dizionario viene aggiunto o aggiornato, l'applicazione aggiorna
|
|
264
|
-
* il contenuto visualizzato nella pagina.
|
|
265
|
-
*
|
|
266
|
-
* Poiché il caricamento a caldo richiede una connessione continua al server, è
|
|
267
|
-
* disponibile solo per i clienti del piano `enterprise`.
|
|
268
|
-
*
|
|
269
|
-
* Predefinito: false
|
|
270
|
-
*/
|
|
271
|
-
liveSync: true,
|
|
272
|
-
},
|
|
273
|
-
dictionary: {
|
|
274
|
-
/**
|
|
275
|
-
* Controlla come vengono importati i dizionari:
|
|
276
|
-
*
|
|
277
|
-
* - "live": I dizionari vengono recuperati dinamicamente utilizzando l'API Live Sync.
|
|
278
|
-
* Sostituisce useIntlayer con useDictionaryDynamic.
|
|
279
|
-
*
|
|
280
|
-
* Nota: La modalità live utilizza l'API Live Sync per recuperare i dizionari. Se la chiamata API
|
|
281
|
-
* fallisce, i dizionari vengono importati dinamicamente.
|
|
282
|
-
* Nota: Solo i dizionari con contenuto remoto e flag "live" utilizzano la modalità live.
|
|
283
|
-
* Gli altri usano la modalità dinamica per le prestazioni.
|
|
284
|
-
*/
|
|
285
|
-
importMode: "fetch",
|
|
286
|
-
},
|
|
287
|
-
};
|
|
288
|
-
|
|
289
|
-
export default config;
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
Avvia il server Live Sync per avvolgere la tua applicazione:
|
|
293
|
-
|
|
294
|
-
Esempio con Next.js:
|
|
295
|
-
|
|
296
|
-
```json5 fileName="package.json"
|
|
297
|
-
{
|
|
298
|
-
"scripts": {
|
|
299
|
-
// ... altri script
|
|
300
|
-
"build": "next build",
|
|
301
|
-
"dev": "next dev",
|
|
302
|
-
"start": "npx intlayer live --with 'next start'",
|
|
303
|
-
},
|
|
304
|
-
}
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
Esempio con Vite:
|
|
308
|
-
|
|
309
|
-
```json5 fileName="package.json"
|
|
310
|
-
{
|
|
311
|
-
"scripts": {
|
|
312
|
-
// ... altri script
|
|
313
|
-
"build": "vite build",
|
|
314
|
-
"dev": "vite dev",
|
|
315
|
-
"start": "npx intlayer live --with 'vite start'",
|
|
316
|
-
},
|
|
317
|
-
}
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
Il server Live Sync avvolge la tua applicazione e applica automaticamente i contenuti aggiornati non appena arrivano.
|
|
321
|
-
|
|
322
|
-
Per ricevere notifiche di modifica dal CMS, il server Live Sync mantiene una connessione SSE con il backend. Quando il contenuto cambia nel CMS, il backend inoltra l'aggiornamento al server Live Sync, che scrive i nuovi dizionari. La tua applicazione rifletterà l'aggiornamento alla successiva navigazione o al reload del browser, non è necessario ricostruire.
|
|
323
|
-
|
|
324
|
-
Diagramma di flusso (CMS/Backend -> Server Live Sync -> Server Applicazione -> Frontend):
|
|
325
|
-
|
|
326
|
-

|
|
327
|
-
|
|
328
|
-
Come funziona:
|
|
329
|
-
|
|
330
|
-

|
|
331
|
-
|
|
332
|
-
### Flusso di lavoro di sviluppo (locale)
|
|
333
|
-
|
|
334
|
-
- In fase di sviluppo, tutti i dizionari remoti vengono recuperati all'avvio dell'applicazione, così puoi testare rapidamente gli aggiornamenti.
|
|
335
|
-
- Per testare Live Sync localmente con Next.js, avvolgi il tuo server di sviluppo:
|
|
336
|
-
|
|
337
|
-
```json5 fileName="package.json"
|
|
338
|
-
{
|
|
339
|
-
"scripts": {
|
|
340
|
-
// ... altri script
|
|
341
|
-
"dev": "npx intlayer live --with 'next dev'",
|
|
342
|
-
// "dev": "npx intlayer live --with 'vite dev'", // Per Vite
|
|
343
|
-
},
|
|
344
|
-
}
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
Abilita l'ottimizzazione affinché Intlayer applichi le trasformazioni di importazione Live durante lo sviluppo:
|
|
348
|
-
|
|
349
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
350
|
-
import type { IntlayerConfig } from "intlayer";
|
|
351
|
-
|
|
352
|
-
const config: IntlayerConfig = {
|
|
353
|
-
editor: {
|
|
354
|
-
applicationURL: "http://localhost:5173",
|
|
355
|
-
liveSyncURL: "http://localhost:4000",
|
|
356
|
-
liveSync: true,
|
|
357
|
-
},
|
|
358
|
-
dictionary: {
|
|
359
|
-
importMode: "fetch",
|
|
360
|
-
},
|
|
361
|
-
build: {
|
|
362
|
-
optimize: true,
|
|
363
|
-
},
|
|
364
|
-
};
|
|
365
|
-
|
|
366
|
-
export default config;
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
Questa configurazione avvolge il tuo server di sviluppo con il server Live Sync, recupera i dizionari remoti all'avvio e trasmette aggiornamenti dal CMS tramite SSE. Aggiorna la pagina per vedere le modifiche.
|
|
370
|
-
|
|
371
|
-
Note e vincoli:
|
|
372
|
-
|
|
373
|
-
- Aggiungi l'origine del live sync alla tua politica di sicurezza del sito (CSP). Assicurati che l'URL del live sync sia consentito in `connect-src` (e in `frame-ancestors` se pertinente).
|
|
374
|
-
- Live Sync non funziona con output statico. Per Next.js, la pagina deve essere dinamica per ricevere aggiornamenti in fase di esecuzione (ad esempio, usa `generateStaticParams`, `generateMetadata`, `getServerSideProps` o `getStaticProps` in modo appropriato per evitare vincoli di solo statico completo).
|
|
375
|
-
- Nel CMS, ogni dizionario ha un flag `live`. Solo i dizionari con `live=true` vengono recuperati tramite l'API di live sync; gli altri vengono importati dinamicamente e rimangono invariati a runtime.
|
|
376
|
-
- Il flag `live` viene valutato per ogni dizionario al momento della build. Se il contenuto remoto non era contrassegnato come `live=true` durante la build, è necessario ricostruire per abilitare Live Sync per quel dizionario.
|
|
377
|
-
- Il server di live sync deve poter scrivere nella cartella `.intlayer`. Nei container, assicurarsi che sia garantito l'accesso in scrittura a `/.intlayer`.
|
|
254
|
+
Per la guida completa alla configurazione (attivazione, avvio del server Live Sync, flusso di lavoro di sviluppo locale e limitazioni), consulta la [documentazione di Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/live-sync.md).
|
|
378
255
|
|
|
379
256
|
## Self-Hosting
|
|
380
257
|
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-07-08
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
|
+
title: Sincronizzazione live | Rifletti le modifiche dei contenuti del CMS in tempo reale
|
|
5
|
+
description: Consenti alla tua applicazione di riflettere le modifiche dei contenuti del CMS Intlayer in tempo reale, senza ricompilazione né nuova distribuzione.
|
|
6
|
+
keywords:
|
|
7
|
+
- Sincronizzazione live
|
|
8
|
+
- Live Sync
|
|
9
|
+
- CMS
|
|
10
|
+
- Editor Visivo
|
|
11
|
+
- Internazionalizzazione
|
|
12
|
+
- Documentazione
|
|
13
|
+
- Intlayer
|
|
14
|
+
- Next.js
|
|
15
|
+
- Vite
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-07-08
|
|
19
|
+
changes: "Spostato dalla documentazione del CMS Intlayer in una pagina dedicata"
|
|
20
|
+
- version: 6.0.1
|
|
21
|
+
date: 2025-09-22
|
|
22
|
+
changes: "Aggiunta documentazione sulla sincronizzazione live"
|
|
23
|
+
- version: 6.0.0
|
|
24
|
+
date: 2025-09-04
|
|
25
|
+
changes: "Sostituito il campo `hotReload` con `liveSync`"
|
|
26
|
+
author: aymericzip
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Sincronizzazione live
|
|
30
|
+
|
|
31
|
+
La Sincronizzazione Live consente alla tua app di riflettere le modifiche ai contenuti del CMS in tempo reale. Non è necessario ricostruire o ridistribuire. Quando abilitata, gli aggiornamenti vengono trasmessi a un server di Sincronizzazione Live che aggiorna i dizionari letti dalla tua applicazione.
|
|
32
|
+
|
|
33
|
+
## Indice
|
|
34
|
+
|
|
35
|
+
<TOC/>
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Attivare la sincronizzazione live
|
|
40
|
+
|
|
41
|
+
> Live Sync richiede una connessione continua al server ed è disponibile nel piano enterprise.
|
|
42
|
+
|
|
43
|
+
Abilita Live Sync aggiornando la configurazione di Intlayer:
|
|
44
|
+
|
|
45
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
46
|
+
import type { IntlayerConfig } from "intlayer";
|
|
47
|
+
|
|
48
|
+
const config: IntlayerConfig = {
|
|
49
|
+
// ... altre impostazioni di configurazione
|
|
50
|
+
editor: {
|
|
51
|
+
/**
|
|
52
|
+
* Abilita il caricamento a caldo delle configurazioni locali quando vengono rilevate modifiche.
|
|
53
|
+
* Ad esempio, quando un dizionario viene aggiunto o aggiornato, l'applicazione aggiorna
|
|
54
|
+
* il contenuto visualizzato nella pagina.
|
|
55
|
+
*
|
|
56
|
+
* Poiché il caricamento a caldo richiede una connessione continua al server, è
|
|
57
|
+
* disponibile solo per i clienti del piano `enterprise`.
|
|
58
|
+
*
|
|
59
|
+
* Predefinito: false
|
|
60
|
+
*/
|
|
61
|
+
liveSync: true,
|
|
62
|
+
},
|
|
63
|
+
dictionary: {
|
|
64
|
+
/**
|
|
65
|
+
* Controlla come vengono importati i dizionari:
|
|
66
|
+
*
|
|
67
|
+
* - "live": I dizionari vengono recuperati dinamicamente utilizzando l'API Live Sync.
|
|
68
|
+
* Sostituisce useIntlayer con useDictionaryDynamic.
|
|
69
|
+
*
|
|
70
|
+
* Nota: La modalità live utilizza l'API Live Sync per recuperare i dizionari. Se la chiamata API
|
|
71
|
+
* fallisce, i dizionari vengono importati dinamicamente.
|
|
72
|
+
* Nota: Solo i dizionari con contenuto remoto e flag "live" utilizzano la modalità live.
|
|
73
|
+
* Gli altri usano la modalità dinamica per le prestazioni.
|
|
74
|
+
*/
|
|
75
|
+
importMode: "fetch",
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export default config;
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Avvia il server Live Sync per avvolgere la tua applicazione:
|
|
83
|
+
|
|
84
|
+
Esempio con Next.js:
|
|
85
|
+
|
|
86
|
+
```json5 fileName="package.json"
|
|
87
|
+
{
|
|
88
|
+
"scripts": {
|
|
89
|
+
// ... altri script
|
|
90
|
+
"build": "next build",
|
|
91
|
+
"dev": "next dev",
|
|
92
|
+
"start": "npx intlayer live --with 'next start'",
|
|
93
|
+
},
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Esempio con Vite:
|
|
98
|
+
|
|
99
|
+
```json5 fileName="package.json"
|
|
100
|
+
{
|
|
101
|
+
"scripts": {
|
|
102
|
+
// ... altri script
|
|
103
|
+
"build": "vite build",
|
|
104
|
+
"dev": "vite dev",
|
|
105
|
+
"start": "npx intlayer live --with 'vite start'",
|
|
106
|
+
},
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Il server Live Sync avvolge la tua applicazione e applica automaticamente i contenuti aggiornati non appena arrivano.
|
|
111
|
+
|
|
112
|
+
Per ricevere notifiche di modifica dal CMS, il server Live Sync mantiene una connessione SSE con il backend. Quando il contenuto cambia nel CMS, il backend inoltra l'aggiornamento al server Live Sync, che scrive i nuovi dizionari. La tua applicazione rifletterà l'aggiornamento alla successiva navigazione o al reload del browser, non è necessario ricostruire.
|
|
113
|
+
|
|
114
|
+
Diagramma di flusso (CMS/Backend -> Server Live Sync -> Server Applicazione -> Frontend):
|
|
115
|
+
|
|
116
|
+

|
|
117
|
+
|
|
118
|
+
Come funziona:
|
|
119
|
+
|
|
120
|
+

|
|
121
|
+
|
|
122
|
+
## Flusso di lavoro di sviluppo (locale)
|
|
123
|
+
|
|
124
|
+
- In fase di sviluppo, tutti i dizionari remoti vengono recuperati all'avvio dell'applicazione, così puoi testare rapidamente gli aggiornamenti.
|
|
125
|
+
- Per testare Live Sync localmente con Next.js, avvolgi il tuo server di sviluppo:
|
|
126
|
+
|
|
127
|
+
```json5 fileName="package.json"
|
|
128
|
+
{
|
|
129
|
+
"scripts": {
|
|
130
|
+
// ... altri script
|
|
131
|
+
"dev": "npx intlayer live --with 'next dev'",
|
|
132
|
+
// "dev": "npx intlayer live --with 'vite dev'", // Per Vite
|
|
133
|
+
},
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Abilita l'ottimizzazione affinché Intlayer applichi le trasformazioni di importazione Live durante lo sviluppo:
|
|
138
|
+
|
|
139
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
140
|
+
import type { IntlayerConfig } from "intlayer";
|
|
141
|
+
|
|
142
|
+
const config: IntlayerConfig = {
|
|
143
|
+
editor: {
|
|
144
|
+
applicationURL: "http://localhost:5173",
|
|
145
|
+
liveSyncURL: "http://localhost:4000",
|
|
146
|
+
liveSync: true,
|
|
147
|
+
},
|
|
148
|
+
dictionary: {
|
|
149
|
+
importMode: "fetch",
|
|
150
|
+
},
|
|
151
|
+
build: {
|
|
152
|
+
optimize: true,
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export default config;
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Questa configurazione avvolge il tuo server di sviluppo con il server Live Sync, recupera i dizionari remoti all'avvio e trasmette aggiornamenti dal CMS tramite SSE. Aggiorna la pagina per vedere le modifiche.
|
|
160
|
+
|
|
161
|
+
## Note e vincoli
|
|
162
|
+
|
|
163
|
+
- Aggiungi l'origine del live sync alla tua politica di sicurezza del sito (CSP). Assicurati che l'URL del live sync sia consentito in `connect-src` (e in `frame-ancestors` se pertinente).
|
|
164
|
+
- Live Sync non funziona con output statico. Per Next.js, la pagina deve essere dinamica per ricevere aggiornamenti in fase di esecuzione (ad esempio, usa `generateStaticParams`, `generateMetadata`, `getServerSideProps` o `getStaticProps` in modo appropriato per evitare vincoli di solo statico completo).
|
|
165
|
+
- Nel CMS, ogni dizionario ha un flag `live`. Solo i dizionari con `live=true` vengono recuperati tramite l'API di live sync; gli altri vengono importati dinamicamente e rimangono invariati a runtime.
|
|
166
|
+
- Il flag `live` viene valutato per ogni dizionario al momento della build. Se il contenuto remoto non era contrassegnato come `live=true` durante la build, è necessario ricostruire per abilitare Live Sync per quel dizionario.
|
|
167
|
+
- Il server di live sync deve poter scrivere nella cartella `.intlayer`. Nei container, assicurarsi che sia garantito l'accesso in scrittura a `/.intlayer`.
|
|
168
|
+
|
|
169
|
+
## Link utili
|
|
170
|
+
|
|
171
|
+
- [CMS Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_CMS.md)
|
|
172
|
+
- [Editor Visivo di Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_visual_editor.md)
|
|
173
|
+
- [Riferimento di configurazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md)
|
|
174
|
+
- [Guida al Self-Hosting](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/self_hosting.md)
|