@intlayer/docs 6.0.0 → 6.0.2-canary.0
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/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +6 -5
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +318 -1863
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +1317 -6282
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +197 -1182
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +43 -84
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +2 -5
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +318 -1863
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1317 -6282
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +197 -1182
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +43 -84
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/blog.d.ts +1 -1
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/intlayer_CMS.md +261 -85
- package/docs/ar/releases/v6.md +273 -0
- package/docs/ar/roadmap.md +1 -3
- package/docs/ar/vs_code_extension.md +94 -63
- package/docs/de/intlayer_CMS.md +247 -65
- package/docs/de/releases/v6.md +298 -0
- package/docs/de/roadmap.md +1 -3
- package/docs/de/vs_code_extension.md +89 -58
- package/docs/en/configuration.md +9 -2
- package/docs/en/intlayer_CMS.md +205 -23
- package/docs/en/intlayer_cli.md +4 -4
- package/docs/en/intlayer_visual_editor.md +7 -6
- package/docs/en/intlayer_with_nextjs_14.md +17 -1
- package/docs/en/intlayer_with_nextjs_15.md +17 -1
- package/docs/en/releases/v6.md +268 -0
- package/docs/en/roadmap.md +1 -3
- package/docs/en/vs_code_extension.md +79 -49
- package/docs/en-GB/intlayer_CMS.md +216 -52
- package/docs/en-GB/releases/v6.md +297 -0
- package/docs/en-GB/roadmap.md +1 -3
- package/docs/en-GB/vs_code_extension.md +79 -48
- package/docs/es/intlayer_CMS.md +257 -84
- package/docs/es/releases/v6.md +274 -0
- package/docs/es/roadmap.md +1 -3
- package/docs/es/vs_code_extension.md +90 -60
- package/docs/fr/intlayer_CMS.md +250 -68
- package/docs/fr/releases/v6.md +274 -0
- package/docs/fr/roadmap.md +1 -3
- package/docs/fr/vs_code_extension.md +94 -63
- package/docs/hi/intlayer_CMS.md +253 -77
- package/docs/hi/releases/v6.md +273 -0
- package/docs/hi/roadmap.md +1 -3
- package/docs/hi/vs_code_extension.md +92 -61
- package/docs/it/intlayer_CMS.md +251 -73
- package/docs/it/releases/v6.md +273 -0
- package/docs/it/roadmap.md +1 -3
- package/docs/it/vs_code_extension.md +94 -63
- package/docs/ja/intlayer_CMS.md +282 -97
- package/docs/ja/releases/v6.md +273 -0
- package/docs/ja/roadmap.md +1 -3
- package/docs/ja/vs_code_extension.md +99 -68
- package/docs/ko/intlayer_CMS.md +267 -93
- package/docs/ko/releases/v6.md +273 -0
- package/docs/ko/roadmap.md +1 -3
- package/docs/ko/vs_code_extension.md +88 -57
- package/docs/pt/intlayer_CMS.md +261 -83
- package/docs/pt/releases/v6.md +273 -0
- package/docs/pt/roadmap.md +1 -3
- package/docs/pt/vs_code_extension.md +89 -58
- package/docs/ru/intlayer_CMS.md +240 -65
- package/docs/ru/releases/v6.md +274 -0
- package/docs/ru/roadmap.md +1 -1
- package/docs/ru/vs_code_extension.md +83 -52
- package/docs/tr/intlayer_CMS.md +278 -96
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +3 -0
- package/docs/tr/releases/v6.md +273 -0
- package/docs/tr/roadmap.md +1 -1
- package/docs/tr/vs_code_extension.md +100 -71
- package/docs/zh/intlayer_CMS.md +257 -76
- package/docs/zh/releases/v6.md +273 -0
- package/docs/zh/roadmap.md +1 -3
- package/docs/zh/vs_code_extension.md +99 -68
- package/package.json +9 -8
- package/src/blog.ts +1 -1
- package/src/common.ts +2 -6
- package/src/generated/blog.entry.ts +323 -1864
- package/src/generated/docs.entry.ts +1317 -6278
- package/src/generated/frequentQuestions.entry.ts +202 -1183
- package/src/generated/legal.entry.ts +48 -85
package/docs/de/intlayer_CMS.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Intlayer CMS | Externalisieren Sie
|
|
5
|
-
description: Externalisieren Sie
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
|
+
title: Intlayer CMS | Externalisieren Sie Ihre Inhalte in das Intlayer CMS
|
|
5
|
+
description: Externalisieren Sie Ihre Inhalte in das Intlayer CMS, um die Verwaltung Ihrer Inhalte an Ihr Team zu delegieren.
|
|
6
6
|
keywords:
|
|
7
7
|
- CMS
|
|
8
|
-
-
|
|
8
|
+
- Visueller Editor
|
|
9
9
|
- Internationalisierung
|
|
10
10
|
- Dokumentation
|
|
11
11
|
- Intlayer
|
|
@@ -21,27 +21,27 @@ youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
|
|
|
21
21
|
|
|
22
22
|
# Intlayer Content Management System (CMS) Dokumentation
|
|
23
23
|
|
|
24
|
-
<iframe title="
|
|
24
|
+
<iframe title="Visueller Editor + CMS für Ihre Webanwendung: Intlayer erklärt" 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&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
25
25
|
|
|
26
|
-
Das Intlayer CMS ist eine Anwendung, die es Ihnen ermöglicht,
|
|
26
|
+
Das Intlayer CMS ist eine Anwendung, die es Ihnen ermöglicht, die Inhalte eines Intlayer-Projekts auszulagern.
|
|
27
27
|
|
|
28
|
-
Dafür führt Intlayer das Konzept der
|
|
28
|
+
Dafür führt Intlayer das Konzept der „fernen Wörterbücher“ ein.
|
|
29
29
|
|
|
30
30
|

|
|
31
31
|
|
|
32
|
-
## Verständnis von
|
|
32
|
+
## Verständnis von fernen Wörterbüchern
|
|
33
33
|
|
|
34
|
-
Intlayer unterscheidet zwischen
|
|
34
|
+
Intlayer unterscheidet zwischen „lokalen“ und „fernen“ Wörterbüchern.
|
|
35
35
|
|
|
36
|
-
- Ein
|
|
36
|
+
- Ein „lokales“ Wörterbuch ist ein Wörterbuch, das in Ihrem Intlayer-Projekt deklariert ist. Zum Beispiel die Deklarationsdatei eines Buttons oder Ihrer Navigationsleiste. In diesem Fall macht es keinen Sinn, Ihre Inhalte auszulagern, da sich diese Inhalte nicht häufig ändern sollen.
|
|
37
37
|
|
|
38
|
-
- Ein
|
|
38
|
+
- Ein „fernes“ Wörterbuch ist ein Wörterbuch, das über das Intlayer CMS verwaltet wird. Dies kann nützlich sein, um Ihrem Team zu ermöglichen, Ihre Inhalte direkt auf Ihrer Website zu verwalten, und zielt außerdem darauf ab, A/B-Testfunktionen und automatische SEO-Optimierung zu nutzen.
|
|
39
39
|
|
|
40
|
-
## Visueller Editor vs CMS
|
|
40
|
+
## Visueller Editor vs. CMS
|
|
41
41
|
|
|
42
|
-
Der [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_visual_editor.md) Editor ist ein
|
|
42
|
+
Der [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_visual_editor.md) Editor ist ein Werkzeug, das es Ihnen ermöglicht, Ihre Inhalte in einem visuellen Editor für lokale Wörterbücher zu verwalten. Sobald eine Änderung vorgenommen wird, wird der Inhalt im Code-Basis ersetzt. Das bedeutet, dass die Anwendung neu gebaut wird und die Seite neu geladen wird, um den neuen Inhalt anzuzeigen.
|
|
43
43
|
|
|
44
|
-
Im Gegensatz dazu ist das Intlayer CMS ein
|
|
44
|
+
Im Gegensatz dazu ist das Intlayer CMS ein Werkzeug, das es Ihnen ermöglicht, Ihre Inhalte in einem visuellen Editor für ferne Wörterbücher zu verwalten. Sobald eine Änderung vorgenommen wird, wirkt sich der Inhalt **nicht** auf Ihre Code-Basis aus. Und die Website zeigt automatisch den geänderten Inhalt an.
|
|
45
45
|
|
|
46
46
|
## Integration
|
|
47
47
|
|
|
@@ -49,15 +49,15 @@ Für weitere Details zur Installation des Pakets siehe den entsprechenden Abschn
|
|
|
49
49
|
|
|
50
50
|
### Integration mit Next.js
|
|
51
51
|
|
|
52
|
-
Für die Integration mit Next.js siehe die [
|
|
52
|
+
Für die Integration mit Next.js siehe die [Installationsanleitung](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_nextjs_15.md).
|
|
53
53
|
|
|
54
54
|
### Integration mit Create React App
|
|
55
55
|
|
|
56
|
-
Für die Integration mit Create React App siehe die [
|
|
56
|
+
Für die Integration mit Create React App siehe die [Installationsanleitung](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_create_react_app.md).
|
|
57
57
|
|
|
58
58
|
### Integration mit Vite + React
|
|
59
59
|
|
|
60
|
-
Für die Integration mit Vite + React siehe die [
|
|
60
|
+
Für die Integration mit Vite + React siehe die [Installationsanleitung](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_vite+react.md).
|
|
61
61
|
|
|
62
62
|
## Konfiguration
|
|
63
63
|
|
|
@@ -73,7 +73,7 @@ const config: IntlayerConfig = {
|
|
|
73
73
|
* Erforderlich
|
|
74
74
|
*
|
|
75
75
|
* Die URL der Anwendung.
|
|
76
|
-
* Dies ist die URL, die
|
|
76
|
+
* Dies ist die URL, auf die der visuelle Editor abzielt.
|
|
77
77
|
*/
|
|
78
78
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
79
79
|
|
|
@@ -123,7 +123,7 @@ const config = {
|
|
|
123
123
|
* Erforderlich
|
|
124
124
|
*
|
|
125
125
|
* Die URL der Anwendung.
|
|
126
|
-
* Dies ist die URL, die
|
|
126
|
+
* Dies ist die URL, auf die der visuelle Editor abzielt.
|
|
127
127
|
*/
|
|
128
128
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
129
129
|
|
|
@@ -132,7 +132,7 @@ const config = {
|
|
|
132
132
|
*
|
|
133
133
|
* Client-ID und Client-Secret sind erforderlich, um den Editor zu aktivieren.
|
|
134
134
|
* Sie ermöglichen die Identifizierung des Benutzers, der den Inhalt bearbeitet.
|
|
135
|
-
*
|
|
135
|
+
* Diese können durch das Erstellen eines neuen Clients im Intlayer Dashboard - Projekte (https://intlayer.org/dashboard/projects) erhalten werden.
|
|
136
136
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
137
137
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
138
138
|
*/
|
|
@@ -145,7 +145,7 @@ const config = {
|
|
|
145
145
|
* Falls Sie das Intlayer CMS selbst hosten, können Sie die URL des CMS festlegen.
|
|
146
146
|
*
|
|
147
147
|
* Die URL des Intlayer CMS.
|
|
148
|
-
* Standardmäßig ist sie auf https://intlayer.org gesetzt
|
|
148
|
+
* Standardmäßig ist sie auf https://intlayer.org gesetzt
|
|
149
149
|
*/
|
|
150
150
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
151
151
|
|
|
@@ -154,8 +154,8 @@ const config = {
|
|
|
154
154
|
*
|
|
155
155
|
* Falls Sie das Intlayer CMS selbst hosten, können Sie die URL des Backends festlegen.
|
|
156
156
|
*
|
|
157
|
-
* Die URL des Intlayer
|
|
158
|
-
* Standardmäßig ist sie auf https://back.intlayer.org gesetzt
|
|
157
|
+
* Die URL des Intlayer CMS.
|
|
158
|
+
* Standardmäßig ist sie auf https://back.intlayer.org gesetzt
|
|
159
159
|
*/
|
|
160
160
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
161
161
|
},
|
|
@@ -173,7 +173,7 @@ const config = {
|
|
|
173
173
|
* Erforderlich
|
|
174
174
|
*
|
|
175
175
|
* Die URL der Anwendung.
|
|
176
|
-
* Dies ist die URL, die
|
|
176
|
+
* Dies ist die URL, auf die der visuelle Editor abzielt.
|
|
177
177
|
*/
|
|
178
178
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
179
179
|
|
|
@@ -195,7 +195,7 @@ const config = {
|
|
|
195
195
|
* Falls Sie das Intlayer CMS selbst hosten, können Sie die URL des CMS festlegen.
|
|
196
196
|
*
|
|
197
197
|
* Die URL des Intlayer CMS.
|
|
198
|
-
* Standardmäßig ist sie auf https://intlayer.org gesetzt
|
|
198
|
+
* Standardmäßig ist sie auf https://intlayer.org gesetzt
|
|
199
199
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
200
200
|
|
|
201
201
|
/**
|
|
@@ -215,19 +215,19 @@ module.exports = config;
|
|
|
215
215
|
|
|
216
216
|
> Wenn Sie keine Client-ID und kein Client-Secret haben, können Sie diese durch das Erstellen eines neuen Clients im [Intlayer Dashboard - Projekte](https://intlayer.org/dashboard/projects) erhalten.
|
|
217
217
|
|
|
218
|
-
> Um alle verfügbaren Parameter zu sehen,
|
|
218
|
+
> Um alle verfügbaren Parameter zu sehen, konsultieren Sie die [Konfigurationsdokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md).
|
|
219
219
|
|
|
220
220
|
## Verwendung des CMS
|
|
221
221
|
|
|
222
|
-
###
|
|
222
|
+
### Konfiguraton hochladen
|
|
223
223
|
|
|
224
|
-
Um das Intlayer CMS zu konfigurieren, können Sie die [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/de/intlayer_cli.md) Befehle verwenden.
|
|
224
|
+
Um das Intlayer CMS zu konfigurieren, können Sie die [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/docs/de/intlayer_cli.md) Befehle verwenden.
|
|
225
225
|
|
|
226
226
|
```bash
|
|
227
227
|
npx intlayer config push
|
|
228
228
|
```
|
|
229
229
|
|
|
230
|
-
> Wenn Sie Umgebungsvariablen in Ihrer `intlayer.config.ts` Konfigurationsdatei verwenden, können Sie die gewünschte Umgebung mit dem `--env`
|
|
230
|
+
> Wenn Sie Umgebungsvariablen in Ihrer `intlayer.config.ts` Konfigurationsdatei verwenden, können Sie die gewünschte Umgebung mit dem Argument `--env` angeben:
|
|
231
231
|
|
|
232
232
|
```bash
|
|
233
233
|
npx intlayer config push --env production
|
|
@@ -235,32 +235,33 @@ npx intlayer config push --env production
|
|
|
235
235
|
|
|
236
236
|
Dieser Befehl lädt Ihre Konfiguration in das Intlayer CMS hoch.
|
|
237
237
|
|
|
238
|
-
### Wörterbuch hochladen
|
|
238
|
+
### Ein Wörterbuch hochladen
|
|
239
239
|
|
|
240
|
-
Um Ihre
|
|
240
|
+
Um Ihre Lokalisierungswörterbücher in ein entferntes Wörterbuch zu transformieren, können Sie die [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/docs/de/intlayer_cli.md) Befehle verwenden.
|
|
241
241
|
|
|
242
242
|
```bash
|
|
243
243
|
npx intlayer dictionary push -d my-first-dictionary-key
|
|
244
244
|
```
|
|
245
245
|
|
|
246
|
-
> Wenn Sie Umgebungsvariablen in Ihrer `intlayer.config.ts` Konfigurationsdatei verwenden, können Sie die gewünschte Umgebung mit dem `--env`
|
|
246
|
+
> Wenn Sie Umgebungsvariablen in Ihrer `intlayer.config.ts` Konfigurationsdatei verwenden, können Sie die gewünschte Umgebung mit dem Argument `--env` angeben:
|
|
247
247
|
|
|
248
248
|
```bash
|
|
249
249
|
npx intlayer dictionary push -d my-first-dictionary-key --env production
|
|
250
250
|
```
|
|
251
251
|
|
|
252
|
-
Dieser Befehl lädt Ihre
|
|
252
|
+
Dieser Befehl lädt Ihre anfänglichen Inhaltswörterbücher hoch und macht sie für asynchrones Abrufen und Bearbeiten über die Intlayer-Plattform verfügbar.
|
|
253
253
|
|
|
254
254
|
### Wörterbuch bearbeiten
|
|
255
255
|
|
|
256
|
-
|
|
256
|
+
Anschließend können Sie Ihr Wörterbuch im [Intlayer CMS](https://intlayer.org/dashboard/content) anzeigen und verwalten.
|
|
257
|
+
|
|
258
|
+
## Live-Synchronisation
|
|
257
259
|
|
|
258
|
-
|
|
260
|
+
Live Sync ermöglicht es Ihrer App, CMS-Inhaltsänderungen zur Laufzeit widerzuspiegeln. Kein Neuaufbau oder erneutes Bereitstellen erforderlich. Wenn aktiviert, werden Updates an einen Live-Sync-Server gestreamt, der die Wörterbücher aktualisiert, die Ihre Anwendung liest.
|
|
259
261
|
|
|
260
|
-
|
|
262
|
+
> Live Sync erfordert eine kontinuierliche Serververbindung und ist im Enterprise-Plan verfügbar.
|
|
261
263
|
|
|
262
|
-
|
|
263
|
-
Durch Aktivieren der [`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration) Konfiguration wird die Anwendung den aktualisierten Inhalt automatisch ersetzen, sobald er erkannt wird.
|
|
264
|
+
Aktivieren Sie Live Sync, indem Sie Ihre Intlayer-Konfiguration aktualisieren:
|
|
264
265
|
|
|
265
266
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
266
267
|
import type { IntlayerConfig } from "intlayer";
|
|
@@ -268,18 +269,32 @@ import type { IntlayerConfig } from "intlayer";
|
|
|
268
269
|
const config: IntlayerConfig = {
|
|
269
270
|
// ... andere Konfigurationseinstellungen
|
|
270
271
|
editor: {
|
|
271
|
-
// ... andere Konfigurationseinstellungen
|
|
272
|
-
|
|
273
272
|
/**
|
|
274
|
-
*
|
|
275
|
-
* Zum Beispiel, wenn ein
|
|
273
|
+
* Aktiviert das Hot-Reloading der Lokalisierungskonfigurationen, wenn Änderungen erkannt werden.
|
|
274
|
+
* Zum Beispiel, wenn ein Wörterbuch hinzugefügt oder aktualisiert wird, aktualisiert die Anwendung
|
|
275
|
+
* den auf der Seite angezeigten Inhalt.
|
|
276
276
|
*
|
|
277
|
-
* Da
|
|
277
|
+
* Da Hot-Reloading eine kontinuierliche Verbindung zum Server erfordert, ist es
|
|
278
|
+
* nur für Kunden des `enterprise`-Plans verfügbar.
|
|
278
279
|
*
|
|
279
280
|
* Standard: false
|
|
280
281
|
*/
|
|
281
282
|
liveSync: true,
|
|
282
283
|
},
|
|
284
|
+
build: {
|
|
285
|
+
/**
|
|
286
|
+
* Steuert, wie Wörterbücher importiert werden:
|
|
287
|
+
*
|
|
288
|
+
* - "live": Wörterbücher werden dynamisch über die Live Sync API abgerufen.
|
|
289
|
+
* Ersetzt useIntlayer durch useDictionaryDynamic.
|
|
290
|
+
*
|
|
291
|
+
* Hinweis: Der Live-Modus verwendet die Live Sync API, um Wörterbücher abzurufen. Wenn der API-Aufruf
|
|
292
|
+
* fehlschlägt, werden die Wörterbücher dynamisch importiert.
|
|
293
|
+
* Hinweis: Nur Wörterbücher mit entfernten Inhalten und dem "live"-Flag verwenden den Live-Modus.
|
|
294
|
+
* Andere verwenden den dynamischen Modus für bessere Leistung.
|
|
295
|
+
*/
|
|
296
|
+
importMode: "live",
|
|
297
|
+
},
|
|
283
298
|
};
|
|
284
299
|
|
|
285
300
|
export default config;
|
|
@@ -290,18 +305,32 @@ export default config;
|
|
|
290
305
|
const config = {
|
|
291
306
|
// ... andere Konfigurationseinstellungen
|
|
292
307
|
editor: {
|
|
293
|
-
// ... andere Konfigurationseinstellungen
|
|
294
|
-
|
|
295
308
|
/**
|
|
296
|
-
*
|
|
297
|
-
* Zum Beispiel, wenn ein
|
|
309
|
+
* Ermöglicht das Hot-Reloading von Sprachkonfigurationen, wenn Änderungen erkannt werden.
|
|
310
|
+
* Zum Beispiel, wenn ein Wörterbuch hinzugefügt oder aktualisiert wird, aktualisiert die Anwendung
|
|
311
|
+
* den auf der Seite angezeigten Inhalt.
|
|
298
312
|
*
|
|
299
|
-
* Da
|
|
313
|
+
* Da Hot-Reloading eine kontinuierliche Verbindung zum Server erfordert, ist es
|
|
314
|
+
* nur für Kunden des `enterprise`-Plans verfügbar.
|
|
300
315
|
*
|
|
301
316
|
* Standard: false
|
|
302
317
|
*/
|
|
303
318
|
liveSync: true,
|
|
304
319
|
},
|
|
320
|
+
build: {
|
|
321
|
+
/**
|
|
322
|
+
* Steuert, wie Wörterbücher importiert werden:
|
|
323
|
+
*
|
|
324
|
+
* - "live": Wörterbücher werden dynamisch über die Live Sync API abgerufen.
|
|
325
|
+
* Ersetzt useIntlayer durch useDictionaryDynamic.
|
|
326
|
+
*
|
|
327
|
+
* Hinweis: Der Live-Modus verwendet die Live Sync API, um Wörterbücher abzurufen. Wenn der API-Aufruf
|
|
328
|
+
* fehlschlägt, werden die Wörterbücher dynamisch importiert.
|
|
329
|
+
* Hinweis: Nur Wörterbücher mit Remote-Inhalten und dem "live"-Flag verwenden den Live-Modus.
|
|
330
|
+
* Andere verwenden den dynamischen Modus zur Leistungssteigerung.
|
|
331
|
+
*/
|
|
332
|
+
importMode: "live",
|
|
333
|
+
},
|
|
305
334
|
};
|
|
306
335
|
|
|
307
336
|
export default config;
|
|
@@ -312,43 +341,196 @@ export default config;
|
|
|
312
341
|
const config = {
|
|
313
342
|
// ... andere Konfigurationseinstellungen
|
|
314
343
|
editor: {
|
|
315
|
-
// ... andere Konfigurationseinstellungen
|
|
316
|
-
|
|
317
344
|
/**
|
|
318
|
-
*
|
|
319
|
-
* Zum Beispiel, wenn ein
|
|
345
|
+
* Aktiviert das Hot-Reloading der Lokalisierungskonfigurationen, wenn Änderungen erkannt werden.
|
|
346
|
+
* Zum Beispiel, wenn ein Wörterbuch hinzugefügt oder aktualisiert wird, aktualisiert die Anwendung
|
|
347
|
+
* den auf der Seite angezeigten Inhalt.
|
|
320
348
|
*
|
|
321
|
-
* Da
|
|
349
|
+
* Da Hot-Reloading eine kontinuierliche Verbindung zum Server erfordert, ist es
|
|
350
|
+
* nur für Kunden des `enterprise`-Plans verfügbar.
|
|
322
351
|
*
|
|
323
352
|
* Standard: false
|
|
324
353
|
*/
|
|
325
354
|
liveSync: true,
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Der Port des Live Sync Servers.
|
|
358
|
+
*
|
|
359
|
+
* Standard: 4000
|
|
360
|
+
*/
|
|
361
|
+
liveSyncPort: 4000,
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Die URL des Live Sync Servers.
|
|
365
|
+
*
|
|
366
|
+
* Standard: http://localhost:{liveSyncPort}
|
|
367
|
+
*/
|
|
368
|
+
liveSyncURL: "https://live.example.com",
|
|
369
|
+
},
|
|
370
|
+
build: {
|
|
371
|
+
/**
|
|
372
|
+
* Steuert, wie Wörterbücher importiert werden:
|
|
373
|
+
*
|
|
374
|
+
* - "live": Wörterbücher werden dynamisch über die Live Sync API abgerufen.
|
|
375
|
+
* Ersetzt useIntlayer durch useDictionaryDynamic.
|
|
376
|
+
*
|
|
377
|
+
* Hinweis: Der Live-Modus verwendet die Live Sync API, um Wörterbücher abzurufen. Wenn der API-Aufruf
|
|
378
|
+
* fehlschlägt, werden Wörterbücher dynamisch importiert.
|
|
379
|
+
* Hinweis: Nur Wörterbücher mit entfernten Inhalten und "live"-Flags verwenden den Live-Modus.
|
|
380
|
+
* Andere verwenden aus Leistungsgründen den dynamischen Modus.
|
|
381
|
+
*/
|
|
382
|
+
importMode: "live",
|
|
326
383
|
},
|
|
327
384
|
};
|
|
328
385
|
|
|
329
386
|
module.exports = config;
|
|
330
387
|
```
|
|
331
388
|
|
|
332
|
-
|
|
389
|
+
Starten Sie den Live Sync Server, um Ihre Anwendung einzubinden:
|
|
390
|
+
|
|
391
|
+
Beispiel mit Next.js:
|
|
392
|
+
|
|
393
|
+
```json5 fileName="package.json"
|
|
394
|
+
{
|
|
395
|
+
"scripts": {
|
|
396
|
+
// ... andere Skripte
|
|
397
|
+
"build": "next build",
|
|
398
|
+
"dev": "next dev",
|
|
399
|
+
"start": "npx intlayer live --process 'next start'",
|
|
400
|
+
},
|
|
401
|
+
}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Beispiel mit Vite:
|
|
405
|
+
|
|
406
|
+
```json5 fileName="package.json"
|
|
407
|
+
{
|
|
408
|
+
"scripts": {
|
|
409
|
+
// ... andere Skripte
|
|
410
|
+
"build": "vite build",
|
|
411
|
+
"dev": "vite dev",
|
|
412
|
+
"start": "npx intlayer live --process 'vite start'",
|
|
413
|
+
},
|
|
414
|
+
}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Der Live Sync Server umschließt Ihre Anwendung und wendet automatisch aktualisierte Inhalte an, sobald diese eintreffen.
|
|
418
|
+
|
|
419
|
+
Um Änderungsbenachrichtigungen vom CMS zu erhalten, hält der Live-Sync-Server eine SSE-Verbindung zum Backend aufrecht. Wenn sich Inhalte im CMS ändern, leitet das Backend die Aktualisierung an den Live-Sync-Server weiter, der die neuen Wörterbücher schreibt. Ihre Anwendung spiegelt die Aktualisierung bei der nächsten Navigation oder beim Neuladen des Browsers wider – ein Neubau ist nicht erforderlich.
|
|
333
420
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
421
|
+
Flussdiagramm (CMS/Backend -> Live Sync Server -> Application Server -> Frontend):
|
|
422
|
+
|
|
423
|
+

|
|
424
|
+
|
|
425
|
+
So funktioniert es:
|
|
426
|
+
|
|
427
|
+

|
|
428
|
+
|
|
429
|
+
### Entwicklungs-Workflow (lokal)
|
|
430
|
+
|
|
431
|
+
- In der Entwicklung werden alle entfernten Wörterbücher beim Start der Anwendung abgerufen, sodass Sie Updates schnell testen können.
|
|
432
|
+
- Um Live Sync lokal mit Next.js zu testen, umschließen Sie Ihren Dev-Server:
|
|
433
|
+
|
|
434
|
+
```json5 fileName="package.json"
|
|
435
|
+
{
|
|
436
|
+
"scripts": {
|
|
437
|
+
// ... andere Skripte
|
|
438
|
+
"dev": "npx intlayer live --process 'next dev'",
|
|
439
|
+
// "dev": "npx intlayer live --process 'vite dev'", // Für Vite
|
|
440
|
+
},
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
Aktivieren Sie die Optimierung, damit Intlayer während der Entwicklung die Live-Import-Transformationen anwendet:
|
|
445
|
+
|
|
446
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
447
|
+
import type { IntlayerConfig } from "intlayer";
|
|
448
|
+
|
|
449
|
+
const config: IntlayerConfig = {
|
|
450
|
+
editor: {
|
|
451
|
+
applicationURL: "http://localhost:5173",
|
|
452
|
+
liveSyncURL: "http://localhost:4000",
|
|
453
|
+
liveSync: true,
|
|
454
|
+
},
|
|
455
|
+
build: {
|
|
456
|
+
optimize: true,
|
|
457
|
+
importMode: "live",
|
|
458
|
+
},
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
export default config;
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
465
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
466
|
+
const config = {
|
|
467
|
+
editor: {
|
|
468
|
+
applicationURL: "http://localhost:5173",
|
|
469
|
+
liveSyncURL: "http://localhost:4000",
|
|
470
|
+
liveSync: true,
|
|
471
|
+
},
|
|
472
|
+
build: {
|
|
473
|
+
optimize: true,
|
|
474
|
+
importMode: "live",
|
|
475
|
+
},
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
export default config;
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
482
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
483
|
+
const config = {
|
|
484
|
+
editor: {
|
|
485
|
+
applicationURL: "http://localhost:5173",
|
|
486
|
+
liveSyncURL: "http://localhost:4000",
|
|
487
|
+
liveSync: true,
|
|
488
|
+
},
|
|
489
|
+
build: {
|
|
490
|
+
optimize: true,
|
|
491
|
+
importMode: "live",
|
|
492
|
+
},
|
|
493
|
+
};
|
|
494
|
+
|
|
495
|
+
module.exports = config;
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
Diese Konfiguration umschließt Ihren Dev-Server mit dem Live Sync Server, lädt entfernte Wörterbücher beim Start und streamt Updates vom CMS über SSE. Aktualisieren Sie die Seite, um Änderungen zu sehen.
|
|
499
|
+
|
|
500
|
+
Hinweise und Einschränkungen:
|
|
501
|
+
|
|
502
|
+
- Fügen Sie die Live Sync-Quelle zu Ihrer Site-Sicherheitsrichtlinie (CSP) hinzu. Stellen Sie sicher, dass die Live Sync-URL in `connect-src` (und `frame-ancestors`, falls relevant) erlaubt ist.
|
|
503
|
+
- Live Sync funktioniert nicht mit statischem Output. Für Next.js muss die Seite dynamisch sein, um zur Laufzeit Updates zu erhalten (z. B. verwenden Sie `generateStaticParams`, `generateMetadata`, `getServerSideProps` oder `getStaticProps` entsprechend, um vollständige statische Einschränkungen zu vermeiden).
|
|
504
|
+
|
|
505
|
+
Diese Einrichtung bindet Ihren Entwicklungsserver mit dem Live-Sync-Server, lädt beim Start entfernte Wörterbücher und streamt Aktualisierungen vom CMS über SSE. Aktualisieren Sie die Seite, um Änderungen zu sehen.
|
|
506
|
+
|
|
507
|
+
Hinweise und Einschränkungen:
|
|
508
|
+
|
|
509
|
+
- Fügen Sie die Live-Sync-Quelle zu Ihrer Sicherheitsrichtlinie der Website (CSP) hinzu. Stellen Sie sicher, dass die Live-Sync-URL in `connect-src` (und `frame-ancestors`, falls relevant) erlaubt ist.
|
|
510
|
+
- Live Sync funktioniert nicht mit statischer Ausgabe. Für Next.js muss die Seite dynamisch sein, um zur Laufzeit Updates zu erhalten (z. B. verwenden Sie `generateStaticParams`, `generateMetadata`, `getServerSideProps` oder `getStaticProps` entsprechend, um vollständige statische Einschränkungen zu vermeiden).
|
|
511
|
+
- Im CMS hat jedes Wörterbuch ein `live`-Flag. Nur Wörterbücher mit `live=true` werden über die Live-Sync-API abgerufen; andere werden dynamisch importiert und bleiben zur Laufzeit unverändert.
|
|
512
|
+
- Das `live`-Flag wird für jedes Wörterbuch zur Build-Zeit ausgewertet. Wenn der entfernte Inhalt während des Builds nicht mit `live=true` gekennzeichnet war, müssen Sie neu bauen, um Live Sync für dieses Wörterbuch zu aktivieren.
|
|
513
|
+
- Der Live-Sync-Server muss in der Lage sein, in `.intlayer` zu schreiben. In Containern stellen Sie sicher, dass Schreibzugriff auf `/.intlayer` besteht.
|
|
337
514
|
|
|
338
515
|
## Debug
|
|
339
516
|
|
|
340
|
-
|
|
517
|
+
Wenn Sie Probleme mit dem CMS haben, überprüfen Sie Folgendes:
|
|
341
518
|
|
|
342
519
|
- Die Anwendung läuft.
|
|
343
520
|
|
|
344
|
-
- Die [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration)
|
|
521
|
+
- Die [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration)-Konfiguration ist in Ihrer Intlayer-Konfigurationsdatei korrekt gesetzt.
|
|
345
522
|
- Erforderliche Felder:
|
|
346
|
-
|
|
347
|
-
|
|
523
|
+
- Die Anwendungs-URL sollte mit der in der Editor-Konfiguration (`applicationURL`) eingestellten URL übereinstimmen.
|
|
524
|
+
- Die CMS-URL
|
|
525
|
+
|
|
526
|
+
- Stellen Sie sicher, dass die Projektkonfiguration in das Intlayer CMS übertragen wurde.
|
|
348
527
|
|
|
349
|
-
- Stellen Sie sicher, dass die
|
|
350
|
-
- Der visuelle Editor verwendet ein iframe, um Ihre Website anzuzeigen. Stellen Sie sicher, dass die Content Security Policy (CSP) Ihrer Website die CMS-URL als `frame-ancestors` erlaubt ('https://intlayer.org' standardmäßig). Überprüfen Sie die Editor-Konsole auf Fehler.
|
|
528
|
+
- Der visuelle Editor verwendet ein iframe, um Ihre Website anzuzeigen. Stellen Sie sicher, dass die Content Security Policy (CSP) Ihrer Website die CMS-URL als `frame-ancestors` erlaubt (standardmäßig 'https://intlayer.org'). Überprüfen Sie die Editor-Konsole auf Fehler.
|
|
351
529
|
|
|
352
530
|
## Dokumentationshistorie
|
|
353
531
|
|
|
354
|
-
|
|
532
|
+
| Version | Datum | Änderungen |
|
|
533
|
+
| ------- | ---------- | ---------------------------------------------- |
|
|
534
|
+
| 6.0.1 | 2025-09-22 | Live-Sync-Dokumentation hinzugefügt |
|
|
535
|
+
| 6.0.0 | 2025-09-04 | Ersetzte das Feld `hotReload` durch `liveSync` |
|
|
536
|
+
| 5.5.10 | 2025-06-29 | Historie initialisiert |
|