@intlayer/docs 8.0.0-canary.6 → 8.0.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/docs/ar/dictionary/content_file.md +30 -1
- package/docs/ar/dictionary/html.md +45 -56
- package/docs/ar/dictionary/markdown.md +21 -57
- package/docs/ar/releases/v8.md +11 -2
- package/docs/de/dictionary/content_file.md +30 -1
- package/docs/de/dictionary/html.md +45 -56
- package/docs/de/dictionary/markdown.md +21 -57
- package/docs/de/releases/v8.md +11 -2
- package/docs/en/dictionary/content_file.md +35 -1
- package/docs/en/dictionary/html.md +45 -56
- package/docs/en/dictionary/markdown.md +22 -58
- package/docs/en/releases/v8.md +11 -2
- package/docs/en-GB/dictionary/content_file.md +31 -2
- package/docs/en-GB/dictionary/html.md +45 -56
- package/docs/en-GB/dictionary/markdown.md +17 -53
- package/docs/en-GB/releases/v8.md +11 -2
- package/docs/es/dictionary/content_file.md +30 -2
- package/docs/es/dictionary/html.md +45 -56
- package/docs/es/dictionary/markdown.md +21 -57
- package/docs/es/releases/v8.md +11 -2
- package/docs/fr/dictionary/content_file.md +30 -1
- package/docs/fr/dictionary/html.md +45 -56
- package/docs/fr/dictionary/markdown.md +21 -57
- package/docs/fr/releases/v8.md +11 -2
- package/docs/hi/dictionary/content_file.md +33 -3
- package/docs/hi/dictionary/html.md +45 -56
- package/docs/hi/dictionary/markdown.md +21 -57
- package/docs/hi/releases/v8.md +10 -1
- package/docs/id/dictionary/content_file.md +30 -1
- package/docs/id/dictionary/html.md +45 -56
- package/docs/id/dictionary/markdown.md +21 -57
- package/docs/id/releases/v8.md +11 -2
- package/docs/it/dictionary/content_file.md +30 -1
- package/docs/it/dictionary/html.md +45 -56
- package/docs/it/dictionary/markdown.md +21 -57
- package/docs/it/releases/v8.md +11 -2
- package/docs/ja/dictionary/content_file.md +30 -1
- package/docs/ja/dictionary/html.md +45 -56
- package/docs/ja/dictionary/markdown.md +21 -57
- package/docs/ja/releases/v8.md +11 -2
- package/docs/ko/dictionary/content_file.md +30 -1
- package/docs/ko/dictionary/html.md +45 -56
- package/docs/ko/dictionary/markdown.md +21 -57
- package/docs/ko/releases/v8.md +11 -2
- package/docs/pl/dictionary/content_file.md +30 -1
- package/docs/pl/dictionary/html.md +45 -56
- package/docs/pl/dictionary/markdown.md +18 -54
- package/docs/pl/releases/v8.md +11 -2
- package/docs/pt/dictionary/content_file.md +30 -1
- package/docs/pt/dictionary/html.md +45 -56
- package/docs/pt/dictionary/markdown.md +21 -57
- package/docs/pt/releases/v8.md +11 -2
- package/docs/ru/dictionary/content_file.md +30 -1
- package/docs/ru/dictionary/html.md +45 -56
- package/docs/ru/dictionary/markdown.md +21 -57
- package/docs/ru/releases/v8.md +11 -2
- package/docs/tr/dictionary/content_file.md +30 -1
- package/docs/tr/dictionary/html.md +45 -56
- package/docs/tr/dictionary/markdown.md +17 -53
- package/docs/tr/releases/v8.md +11 -2
- package/docs/uk/dictionary/content_file.md +32 -3
- package/docs/uk/dictionary/html.md +45 -56
- package/docs/uk/dictionary/markdown.md +14 -50
- package/docs/uk/releases/v8.md +11 -2
- package/docs/vi/dictionary/content_file.md +30 -1
- package/docs/vi/dictionary/html.md +45 -56
- package/docs/vi/dictionary/markdown.md +19 -55
- package/docs/vi/releases/v8.md +11 -2
- package/docs/zh/dictionary/content_file.md +28 -2
- package/docs/zh/dictionary/html.md +45 -56
- package/docs/zh/dictionary/markdown.md +20 -56
- package/docs/zh/releases/v8.md +11 -2
- package/package.json +7 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-02-07
|
|
3
|
-
updatedAt: 2026-01-
|
|
3
|
+
updatedAt: 2026-01-28
|
|
4
4
|
title: Inhaltsdatei
|
|
5
5
|
description: Erfahren Sie, wie Sie die Erweiterungen für Ihre Inhaltsdeklarationsdateien anpassen können. Folgen Sie dieser Dokumentation, um Bedingungen effizient in Ihrem Projekt umzusetzen.
|
|
6
6
|
keywords:
|
|
@@ -12,6 +12,9 @@ slugs:
|
|
|
12
12
|
- concept
|
|
13
13
|
- content
|
|
14
14
|
history:
|
|
15
|
+
- version: 8.0.0
|
|
16
|
+
date: 2026-01-28
|
|
17
|
+
changes: Inhaltstyp-Knoten `html` hinzugefügt
|
|
15
18
|
- version: 8.0.0
|
|
16
19
|
date: 2026-01-24
|
|
17
20
|
changes: Rename `live` import mode to `fetch` to better describe the underlying mechanism.
|
|
@@ -84,6 +87,7 @@ interface Content {
|
|
|
84
87
|
quantityContent: string; // Mengeninhalt
|
|
85
88
|
conditionalContent: string; // Bedingter Inhalt
|
|
86
89
|
markdownContent: never; // Markdown-Inhalt
|
|
90
|
+
htmlContent: never; // HTML-Inhalt
|
|
87
91
|
externalContent: string; // Externer Inhalt
|
|
88
92
|
insertionContent: string; // Einfügeinhalt
|
|
89
93
|
nestedContent: string; // Verschachtelter Inhalt
|
|
@@ -129,6 +133,7 @@ export default {
|
|
|
129
133
|
fileContent: file("./path/to/file.txt"),
|
|
130
134
|
externalContent: fetch("https://example.com").then((res) => res.json()),
|
|
131
135
|
markdownContent: md("# Markdown-Beispiel"),
|
|
136
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
132
137
|
|
|
133
138
|
/*
|
|
134
139
|
* Nur verfügbar mit `react-intlayer` oder `next-intlayer`
|
|
@@ -178,6 +183,7 @@ export default {
|
|
|
178
183
|
"login.button" // [Optional] Der Pfad zum einzufügenden Inhalt
|
|
179
184
|
),
|
|
180
185
|
markdownContent: md("# Markdown-Beispiel"),
|
|
186
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
181
187
|
fileContent: file("./path/to/file.txt"),
|
|
182
188
|
externalContent: fetch("https://example.com").then((res) => res.json())
|
|
183
189
|
|
|
@@ -228,6 +234,7 @@ module.exports = {
|
|
|
228
234
|
"login.button" // [Optional] Der Pfad zum einzubettenden Inhalt
|
|
229
235
|
),
|
|
230
236
|
markdownContent: md("# Markdown-Beispiel"),
|
|
237
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
231
238
|
fileContent: file("./path/to/file.txt"),
|
|
232
239
|
externalContent: fetch("https://example.com").then((res) => res.json())
|
|
233
240
|
|
|
@@ -289,6 +296,10 @@ module.exports = {
|
|
|
289
296
|
"nodeType": "markdown",
|
|
290
297
|
"markdown": "# Markdown-Beispiel",
|
|
291
298
|
},
|
|
299
|
+
"htmlContent": {
|
|
300
|
+
"nodeType": "html",
|
|
301
|
+
"html": "<p>Hello <strong>World</strong></p>",
|
|
302
|
+
},
|
|
292
303
|
"fileContent": {
|
|
293
304
|
"nodeType": "file",
|
|
294
305
|
"file": "./path/to/file.txt",
|
|
@@ -323,6 +334,7 @@ Intlayer unterstützt verschiedene Inhaltstypen durch typisierte Knoten:
|
|
|
323
334
|
- **Enumerationsinhalt**: Inhalt, der sich basierend auf aufzählbaren Werten ändert [siehe Enumerationsinhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/enumeration_content.md)
|
|
324
335
|
- **Einfügeinhalt**: Inhalt, der in anderen Inhalt eingefügt werden kann [siehe Einfügeinhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/insertion_content.md)
|
|
325
336
|
- **Markdown-Inhalt**: Rich-Text-Inhalt im Markdown-Format [siehe Markdown-Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/markdown_content.md)
|
|
337
|
+
- **HTML-Inhalt**: Rich-HTML-Inhalt mit optionalen benutzerdefinierten Komponenten [siehe HTML-Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/html.md)
|
|
326
338
|
- **Verschachtelter Inhalt**: Verweise auf andere Wörterbücher [siehe Verschachtelter Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/nested_content.md)
|
|
327
339
|
- **Geschlechtsabhängiger Inhalt**: Inhalt, der sich je nach Geschlecht unterscheidet [siehe Geschlechtsabhängiger Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/gender_content.md)
|
|
328
340
|
- **Dateiinhalt**: Verweise auf externe Dateien [siehe Dateiinhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/file_content.md)
|
|
@@ -688,6 +700,23 @@ markdownContent: md(
|
|
|
688
700
|
);
|
|
689
701
|
```
|
|
690
702
|
|
|
703
|
+
### HTML-Inhalt (`html`)
|
|
704
|
+
|
|
705
|
+
Rich-HTML-Inhalt, der Standard-Tags oder benutzerdefinierte Komponenten verwenden kann:
|
|
706
|
+
|
|
707
|
+
```typescript
|
|
708
|
+
import { html, file, t } from "intlayer";
|
|
709
|
+
|
|
710
|
+
// Inline-HTML
|
|
711
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>");
|
|
712
|
+
|
|
713
|
+
// Pro-Locale-HTML aus externen Dateien
|
|
714
|
+
localizedHtmlContent: t({
|
|
715
|
+
en: html(file("./content.en.html")),
|
|
716
|
+
de: html(file("./content.de.html")),
|
|
717
|
+
});
|
|
718
|
+
```
|
|
719
|
+
|
|
691
720
|
### Geschlechtsabhängiger Inhalt (`gender`)
|
|
692
721
|
|
|
693
722
|
Inhalt, der sich je nach Geschlecht unterscheidet:
|
|
@@ -31,47 +31,12 @@ history:
|
|
|
31
31
|
|
|
32
32
|
Intlayer unterstützt HTML-Inhalte, sodass Sie reichhaltige, strukturierte Inhalte in Ihre Dictionaries einbetten können. Diese Inhalte können mit Standard-HTML-Tags gerendert oder zur Laufzeit durch benutzerdefinierte Komponenten ersetzt werden.
|
|
33
33
|
|
|
34
|
-
## Wie HTML funktioniert
|
|
35
|
-
|
|
36
|
-
Intlayer v8 erkennt HTML-Tags in Ihren Inhaltsstrings intelligent. Wenn ein String als HTML identifiziert wird (Tags enthält), wird er automatisch in einen HTML-Knoten umgewandelt.
|
|
37
|
-
|
|
38
|
-
<Columns>
|
|
39
|
-
<Column title="v7 Verhalten (Manuelles Wrapping)">
|
|
40
|
-
|
|
41
|
-
```typescript fileName="htmlDictionary.content.ts"
|
|
42
|
-
import { html } from "intlayer";
|
|
43
|
-
|
|
44
|
-
export default {
|
|
45
|
-
key: "app",
|
|
46
|
-
content: {
|
|
47
|
-
text: html("<p>Hello <strong>World</strong></p>"),
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
</Column>
|
|
53
|
-
<Column title="v8 Verhalten (Automatische Erkennung)">
|
|
54
|
-
|
|
55
|
-
```typescript fileName="htmlDictionary.content.ts"
|
|
56
|
-
export default {
|
|
57
|
-
key: "app",
|
|
58
|
-
content: {
|
|
59
|
-
text: "<p>Hello <strong>World</strong></p>",
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
</Column>
|
|
65
|
-
</Columns>
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
34
|
## HTML-Inhalte deklarieren
|
|
70
35
|
|
|
71
36
|
Sie können HTML-Inhalte mit der `html`-Funktion oder einfach als String deklarieren.
|
|
72
37
|
|
|
73
38
|
<Tabs>
|
|
74
|
-
<Tab label="Manuelles Wrapping">
|
|
39
|
+
<Tab label="Manuelles Wrapping" value="manual-wrapping">
|
|
75
40
|
Verwenden Sie die `html`-Funktion, um HTML-Inhalte explizit zu deklarieren. Dies stellt sicher, dass Standard-Tags korrekt zugeordnet werden, selbst wenn die automatische Erkennung deaktiviert ist.
|
|
76
41
|
|
|
77
42
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -88,7 +53,7 @@ Sie können HTML-Inhalte mit der `html`-Funktion oder einfach als String deklari
|
|
|
88
53
|
```
|
|
89
54
|
|
|
90
55
|
</Tab>
|
|
91
|
-
<Tab label="Automatische Erkennung">
|
|
56
|
+
<Tab label="Automatische Erkennung" value="automatic-detection">
|
|
92
57
|
Wenn der String gängige HTML-Tags enthält (z. B. `<p>`, `<div>`, `<strong>` usw.), wird Intlayer ihn automatisch umwandeln.
|
|
93
58
|
|
|
94
59
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -101,7 +66,7 @@ Sie können HTML-Inhalte mit der `html`-Funktion oder einfach als String deklari
|
|
|
101
66
|
```
|
|
102
67
|
|
|
103
68
|
</Tab>
|
|
104
|
-
<Tab label="Externe Dateien">
|
|
69
|
+
<Tab label="Externe Dateien" value="external-files">
|
|
105
70
|
Importieren Sie HTML-Inhalte aus Dateien. Beachten Sie, dass die Funktion `file()` derzeit einen String zurückgibt, der automatisch als HTML erkannt wird, wenn er Tags enthält.
|
|
106
71
|
|
|
107
72
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -121,6 +86,30 @@ Sie können HTML-Inhalte mit der `html`-Funktion oder einfach als String deklari
|
|
|
121
86
|
</Tab>
|
|
122
87
|
</Tabs>
|
|
123
88
|
|
|
89
|
+
### Der `html()`-Knoten
|
|
90
|
+
|
|
91
|
+
Die `html()`-Funktion ist ein neues Feature in Intlayer v8, mit dem Sie HTML-Inhalte in Ihren Wörterbüchern explizit definieren können. Während Intlayer HTML-Inhalte oft automatisch erkennt, bietet die Verwendung der `html()`-Funktion mehrere Vorteile:
|
|
92
|
+
|
|
93
|
+
- **Typsicherheit**: Mit der `html()`-Funktion können Sie die erwarteten Props für benutzerdefinierte Komponenten definieren, was eine bessere Autovervollständigung und Typprüfung in Ihrem Editor ermöglicht.
|
|
94
|
+
- **Explizite Deklaration**: Sie stellt sicher, dass eine Zeichenfolge immer als HTML behandelt wird, auch wenn sie keine Standard-HTML-Tags enthält, die die automatische Erkennung auslösen würden.
|
|
95
|
+
- **Definition benutzerdefinierter Komponenten**: Sie können ein zweites Argument an `html()` übergeben, um die benutzerdefinierten Komponenten und deren erwartete Prop-Typen zu definieren.
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
import { html } from "intlayer";
|
|
99
|
+
|
|
100
|
+
const myContent = html(
|
|
101
|
+
"<MyCustomComponent title='Hallo'>Welt</MyCustomComponent>",
|
|
102
|
+
{
|
|
103
|
+
MyCustomComponent: {
|
|
104
|
+
title: "string",
|
|
105
|
+
children: "node",
|
|
106
|
+
},
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Wenn Sie die Methode `.use()` auf einem HTML-Knoten verwenden, werden die von Ihnen bereitgestellten Komponenten gegen die in der `html()`-Funktion bereitgestellte Definition (falls verfügbar) geprüft.
|
|
112
|
+
|
|
124
113
|
---
|
|
125
114
|
|
|
126
115
|
## HTML rendern
|
|
@@ -132,7 +121,7 @@ Das Rendern kann automatisch durch das Inhaltssystem von Intlayer oder manuell m
|
|
|
132
121
|
Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind HTML-Knoten bereits für das Rendering vorbereitet.
|
|
133
122
|
|
|
134
123
|
<Tabs group="framework">
|
|
135
|
-
<Tab label="React / Next.js">
|
|
124
|
+
<Tab label="React / Next.js" value="react">
|
|
136
125
|
HTML-Knoten können direkt als JSX gerendert werden. Standard-Tags funktionieren automatisch.
|
|
137
126
|
|
|
138
127
|
```tsx fileName="App.tsx"
|
|
@@ -154,7 +143,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind HTML-Knoten bereits fü
|
|
|
154
143
|
```
|
|
155
144
|
|
|
156
145
|
</Tab>
|
|
157
|
-
<Tab label="Vue">
|
|
146
|
+
<Tab label="Vue" value="vue">
|
|
158
147
|
In Vue können HTML-Inhalte mit der integrierten `component`-Komponente gerendert werden.
|
|
159
148
|
|
|
160
149
|
```vue fileName="App.vue"
|
|
@@ -174,7 +163,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind HTML-Knoten bereits fü
|
|
|
174
163
|
```
|
|
175
164
|
|
|
176
165
|
</Tab>
|
|
177
|
-
<Tab label="Svelte">
|
|
166
|
+
<Tab label="Svelte" value="svelte">
|
|
178
167
|
Svelte rendert HTML-Knoten als Strings. Verwenden Sie `{@html}`, um sie zu rendern.
|
|
179
168
|
|
|
180
169
|
```svelte
|
|
@@ -187,7 +176,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind HTML-Knoten bereits fü
|
|
|
187
176
|
```
|
|
188
177
|
|
|
189
178
|
</Tab>
|
|
190
|
-
<Tab label="Preact">
|
|
179
|
+
<Tab label="Preact" value="preact">
|
|
191
180
|
Preact unterstützt HTML-Knoten direkt im JSX.
|
|
192
181
|
|
|
193
182
|
```tsx fileName="App.tsx"
|
|
@@ -200,7 +189,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind HTML-Knoten bereits fü
|
|
|
200
189
|
```
|
|
201
190
|
|
|
202
191
|
</Tab>
|
|
203
|
-
<Tab label="Solid">
|
|
192
|
+
<Tab label="Solid" value="solid">
|
|
204
193
|
Solid unterstützt HTML-Knoten direkt im JSX.
|
|
205
194
|
|
|
206
195
|
```tsx fileName="App.tsx"
|
|
@@ -213,7 +202,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind HTML-Knoten bereits fü
|
|
|
213
202
|
```
|
|
214
203
|
|
|
215
204
|
</Tab>
|
|
216
|
-
<Tab label="Angular">
|
|
205
|
+
<Tab label="Angular" value="angular">
|
|
217
206
|
Angular verwendet die `[innerHTML]`-Direktive, um HTML-Inhalte zu rendern.
|
|
218
207
|
|
|
219
208
|
```typescript fileName="app.component.ts"
|
|
@@ -246,7 +235,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind HTML-Knoten bereits fü
|
|
|
246
235
|
Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren. Dies ist ideal, um benutzerdefinierte Komponenten zu definieren, die in allen HTML-Inhalten verfügbar sein sollen.
|
|
247
236
|
|
|
248
237
|
<Tabs group="framework">
|
|
249
|
-
<Tab label="React / Next.js">
|
|
238
|
+
<Tab label="React / Next.js" value="react">
|
|
250
239
|
|
|
251
240
|
```tsx fileName="AppProvider.tsx"
|
|
252
241
|
import { HTMLProvider } from "react-intlayer";
|
|
@@ -264,7 +253,7 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
264
253
|
```
|
|
265
254
|
|
|
266
255
|
</Tab>
|
|
267
|
-
<Tab label="Vue">
|
|
256
|
+
<Tab label="Vue" value="vue">
|
|
268
257
|
|
|
269
258
|
```typescript fileName="main.ts"
|
|
270
259
|
import { createApp, h } from "vue";
|
|
@@ -285,7 +274,7 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
285
274
|
```
|
|
286
275
|
|
|
287
276
|
</Tab>
|
|
288
|
-
<Tab label="Svelte">
|
|
277
|
+
<Tab label="Svelte" value="svelte">
|
|
289
278
|
|
|
290
279
|
```svelte fileName="App.svelte"
|
|
291
280
|
<script lang="ts">
|
|
@@ -303,7 +292,7 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
303
292
|
```
|
|
304
293
|
|
|
305
294
|
</Tab>
|
|
306
|
-
<Tab label="Preact">
|
|
295
|
+
<Tab label="Preact" value="preact">
|
|
307
296
|
|
|
308
297
|
```tsx fileName="AppProvider.tsx"
|
|
309
298
|
import { HTMLProvider } from "preact-intlayer";
|
|
@@ -320,7 +309,7 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
320
309
|
```
|
|
321
310
|
|
|
322
311
|
</Tab>
|
|
323
|
-
<Tab label="Solid">
|
|
312
|
+
<Tab label="Solid" value="solid">
|
|
324
313
|
|
|
325
314
|
```tsx fileName="AppProvider.tsx"
|
|
326
315
|
import { HTMLProvider } from "solid-intlayer";
|
|
@@ -337,7 +326,7 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
337
326
|
```
|
|
338
327
|
|
|
339
328
|
</Tab>
|
|
340
|
-
<Tab label="Angular">
|
|
329
|
+
<Tab label="Angular" value="angular">
|
|
341
330
|
|
|
342
331
|
```typescript fileName="app.config.ts"
|
|
343
332
|
import { createIntlayerMarkdownProvider } from "angular-intlayer";
|
|
@@ -364,7 +353,7 @@ Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren.
|
|
|
364
353
|
Wenn Sie rohe HTML-Strings rendern müssen oder mehr Kontrolle über die Komponentenzuordnung benötigen, verwenden Sie die folgenden Tools.
|
|
365
354
|
|
|
366
355
|
<Tabs group="framework">
|
|
367
|
-
<Tab label="React / Next.js">
|
|
356
|
+
<Tab label="React / Next.js" value="react">
|
|
368
357
|
#### `<HTMLRenderer />` Komponente
|
|
369
358
|
Rendern Sie einen HTML-String mit spezifischen Komponenten.
|
|
370
359
|
|
|
@@ -401,7 +390,7 @@ Wenn Sie rohe HTML-Strings rendern müssen oder mehr Kontrolle über die Kompone
|
|
|
401
390
|
```
|
|
402
391
|
|
|
403
392
|
</Tab>
|
|
404
|
-
<Tab label="Vue">
|
|
393
|
+
<Tab label="Vue" value="vue">
|
|
405
394
|
|
|
406
395
|
#### `<HTMLRenderer />` Komponente
|
|
407
396
|
|
|
@@ -416,7 +405,7 @@ Wenn Sie rohe HTML-Strings rendern müssen oder mehr Kontrolle über die Kompone
|
|
|
416
405
|
```
|
|
417
406
|
|
|
418
407
|
</Tab>
|
|
419
|
-
<Tab label="Svelte">
|
|
408
|
+
<Tab label="Svelte" value="svelte">
|
|
420
409
|
|
|
421
410
|
#### `<HTMLRenderer />` Komponente
|
|
422
411
|
|
|
@@ -450,7 +439,7 @@ Wenn Sie rohe HTML-Strings rendern müssen oder mehr Kontrolle über die Kompone
|
|
|
450
439
|
```
|
|
451
440
|
|
|
452
441
|
</Tab>
|
|
453
|
-
<Tab label="Preact">
|
|
442
|
+
<Tab label="Preact" value="preact">
|
|
454
443
|
|
|
455
444
|
#### `<HTMLRenderer />` Komponente
|
|
456
445
|
|
|
@@ -481,7 +470,7 @@ Wenn Sie rohe HTML-Strings rendern müssen oder mehr Kontrolle über die Kompone
|
|
|
481
470
|
```
|
|
482
471
|
|
|
483
472
|
</Tab>
|
|
484
|
-
<Tab label="Solid">
|
|
473
|
+
<Tab label="Solid" value="solid">
|
|
485
474
|
|
|
486
475
|
#### `<HTMLRenderer />` Komponente
|
|
487
476
|
|
|
@@ -512,7 +501,7 @@ Wenn Sie rohe HTML-Strings rendern müssen oder mehr Kontrolle über die Kompone
|
|
|
512
501
|
```
|
|
513
502
|
|
|
514
503
|
</Tab>
|
|
515
|
-
<Tab label="Angular">
|
|
504
|
+
<Tab label="Angular" value="angular">
|
|
516
505
|
#### `IntlayerMarkdownService` Service
|
|
517
506
|
Rendern Sie einen HTML-String mit dem Service.
|
|
518
507
|
|
|
@@ -32,48 +32,12 @@ history:
|
|
|
32
32
|
|
|
33
33
|
Intlayer unterstützt Rich-Text-Inhalte, die mittels Markdown-Syntax definiert sind. Dies ermöglicht es Ihnen, Inhalte mit reichhaltiger Formatierung, wie Blogs, Artikel und mehr, einfach zu schreiben und zu pflegen.
|
|
34
34
|
|
|
35
|
-
## Wie Markdown funktioniert
|
|
36
|
-
|
|
37
|
-
Intlayer v8 erkennt Markdown-Syntax in Ihren Inhaltsstrings intelligent. Wenn ein String als Markdown identifiziert wird, wird er automatisch in einen Markdown-Knoten umgewandelt.
|
|
38
|
-
|
|
39
|
-
<Columns>
|
|
40
|
-
<Column title="v7 Verhalten (Manuelles Wrapping)">
|
|
41
|
-
|
|
42
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
43
|
-
import { md } from "intlayer";
|
|
44
|
-
|
|
45
|
-
export default {
|
|
46
|
-
key: "app",
|
|
47
|
-
content: {
|
|
48
|
-
text: md("## Mein Titel \n\nLorem Ipsum"),
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
</Column>
|
|
54
|
-
<Column title="v8 Verhalten (Automatische Erkennung)">
|
|
55
|
-
|
|
56
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
57
|
-
export default {
|
|
58
|
-
key: "app",
|
|
59
|
-
contentAutoTransformation: true, // Automatische Erkennung von Markdown-Inhalten aktivieren - Kann global in intlayer.config.ts eingestellt werden
|
|
60
|
-
content: {
|
|
61
|
-
text: "## Mein Titel \n\nLorem Ipsum",
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
</Column>
|
|
67
|
-
</Columns>
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
35
|
## Teil 1: Markdown-Inhalte deklarieren
|
|
72
36
|
|
|
73
37
|
Sie können Markdown-Inhalte mit der `md`-Funktion oder einfach als String deklarieren (sofern er Markdown-Syntax enthält).
|
|
74
38
|
|
|
75
39
|
<Tabs>
|
|
76
|
-
<Tab label="Manuelles Wrapping">
|
|
40
|
+
<Tab label="Manuelles Wrapping" value="manual-wrapping">
|
|
77
41
|
Verwenden Sie die `md`-Funktion, um Markdown-Inhalte explizit zu deklarieren. Dies ist nützlich, wenn Sie sicherstellen möchten, dass ein String als Markdown behandelt wird, auch wenn er keine offensichtliche Syntax enthält.
|
|
78
42
|
|
|
79
43
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -90,7 +54,7 @@ Sie können Markdown-Inhalte mit der `md`-Funktion oder einfach als String dekla
|
|
|
90
54
|
```
|
|
91
55
|
|
|
92
56
|
</Tab>
|
|
93
|
-
<Tab label="Automatische Erkennung">
|
|
57
|
+
<Tab label="Automatische Erkennung" value="automatic-detection">
|
|
94
58
|
Wenn der String gängige Markdown-Indikatoren enthält (wie Überschriften, Listen, Links usw.), wird Intlayer ihn automatisch umwandeln.
|
|
95
59
|
|
|
96
60
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -104,7 +68,7 @@ Sie können Markdown-Inhalte mit der `md`-Funktion oder einfach als String dekla
|
|
|
104
68
|
```
|
|
105
69
|
|
|
106
70
|
</Tab>
|
|
107
|
-
<Tab label="Externe Dateien">
|
|
71
|
+
<Tab label="Externe Dateien" value="external-files">
|
|
108
72
|
Importieren Sie `.md`-Dateien direkt mit der `file`-Funktion.
|
|
109
73
|
|
|
110
74
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -135,7 +99,7 @@ Das Rendering kann automatisch durch das Inhaltssystem von Intlayer oder manuell
|
|
|
135
99
|
Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind Markdown-Knoten bereits für das Rendering vorbereitet.
|
|
136
100
|
|
|
137
101
|
<Tabs group="framework">
|
|
138
|
-
<Tab label="React / Next.js">
|
|
102
|
+
<Tab label="React / Next.js" value="react">
|
|
139
103
|
Markdown-Knoten können direkt als JSX gerendert werden.
|
|
140
104
|
|
|
141
105
|
```tsx fileName="App.tsx"
|
|
@@ -156,7 +120,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind Markdown-Knoten bereits
|
|
|
156
120
|
```
|
|
157
121
|
|
|
158
122
|
</Tab>
|
|
159
|
-
<Tab label="Vue">
|
|
123
|
+
<Tab label="Vue" value="vue">
|
|
160
124
|
In Vue können Markdown-Inhalte mit der integrierten `component`-Komponente oder direkt als Knoten gerendert werden.
|
|
161
125
|
|
|
162
126
|
```vue fileName="App.vue"
|
|
@@ -171,7 +135,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind Markdown-Knoten bereits
|
|
|
171
135
|
```
|
|
172
136
|
|
|
173
137
|
</Tab>
|
|
174
|
-
<Tab label="Svelte">
|
|
138
|
+
<Tab label="Svelte" value="svelte">
|
|
175
139
|
Svelte rendert Markdown standardmäßig als HTML-String. Verwenden Sie `{@html}`, um es zu rendern.
|
|
176
140
|
|
|
177
141
|
```svelte
|
|
@@ -184,7 +148,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind Markdown-Knoten bereits
|
|
|
184
148
|
```
|
|
185
149
|
|
|
186
150
|
</Tab>
|
|
187
|
-
<Tab label="Preact">
|
|
151
|
+
<Tab label="Preact" value="preact">
|
|
188
152
|
Preact unterstützt Markdown-Knoten direkt im JSX.
|
|
189
153
|
|
|
190
154
|
```tsx fileName="App.tsx"
|
|
@@ -197,7 +161,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind Markdown-Knoten bereits
|
|
|
197
161
|
```
|
|
198
162
|
|
|
199
163
|
</Tab>
|
|
200
|
-
<Tab label="Solid">
|
|
164
|
+
<Tab label="Solid" value="solid">
|
|
201
165
|
Solid unterstützt Markdown-Knoten direkt im JSX.
|
|
202
166
|
|
|
203
167
|
```tsx fileName="App.tsx"
|
|
@@ -210,7 +174,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind Markdown-Knoten bereits
|
|
|
210
174
|
```
|
|
211
175
|
|
|
212
176
|
</Tab>
|
|
213
|
-
<Tab label="Angular">
|
|
177
|
+
<Tab label="Angular" value="angular">
|
|
214
178
|
Angular verwendet die `[innerHTML]`-Direktive, um Markdown-Inhalte zu rendern.
|
|
215
179
|
|
|
216
180
|
```typescript fileName="app.component.ts"
|
|
@@ -242,7 +206,7 @@ Wenn Sie auf Inhalte über `useIntlayer` zugreifen, sind Markdown-Knoten bereits
|
|
|
242
206
|
Wenn Sie rohe Markdown-Strings rendern müssen oder mehr Kontrolle über den Rendering-Prozess wünschen, verwenden Sie die folgenden Tools.
|
|
243
207
|
|
|
244
208
|
<Tabs group="framework">
|
|
245
|
-
<Tab label="React / Next.js">
|
|
209
|
+
<Tab label="React / Next.js" value="react">
|
|
246
210
|
|
|
247
211
|
#### `<MarkdownRenderer />` Komponente
|
|
248
212
|
|
|
@@ -281,7 +245,7 @@ Wenn Sie rohe Markdown-Strings rendern müssen oder mehr Kontrolle über den Ren
|
|
|
281
245
|
```
|
|
282
246
|
|
|
283
247
|
</Tab>
|
|
284
|
-
<Tab label="Vue">
|
|
248
|
+
<Tab label="Vue" value="vue">
|
|
285
249
|
|
|
286
250
|
#### `<MarkdownRenderer />` Komponente
|
|
287
251
|
|
|
@@ -296,7 +260,7 @@ Wenn Sie rohe Markdown-Strings rendern müssen oder mehr Kontrolle über den Ren
|
|
|
296
260
|
```
|
|
297
261
|
|
|
298
262
|
</Tab>
|
|
299
|
-
<Tab label="Svelte">
|
|
263
|
+
<Tab label="Svelte" value="svelte">
|
|
300
264
|
|
|
301
265
|
#### `<MarkdownRenderer />` Komponente
|
|
302
266
|
|
|
@@ -330,7 +294,7 @@ Wenn Sie rohe Markdown-Strings rendern müssen oder mehr Kontrolle über den Ren
|
|
|
330
294
|
```
|
|
331
295
|
|
|
332
296
|
</Tab>
|
|
333
|
-
<Tab label="Preact">
|
|
297
|
+
<Tab label="Preact" value="preact">
|
|
334
298
|
#### `<MarkdownRenderer />` Komponente
|
|
335
299
|
|
|
336
300
|
```tsx
|
|
@@ -360,7 +324,7 @@ Wenn Sie rohe Markdown-Strings rendern müssen oder mehr Kontrolle über den Ren
|
|
|
360
324
|
```
|
|
361
325
|
|
|
362
326
|
</Tab>
|
|
363
|
-
<Tab label="Solid">
|
|
327
|
+
<Tab label="Solid" value="solid">
|
|
364
328
|
#### `<MarkdownRenderer />` Komponente
|
|
365
329
|
|
|
366
330
|
```tsx
|
|
@@ -390,7 +354,7 @@ Wenn Sie rohe Markdown-Strings rendern müssen oder mehr Kontrolle über den Ren
|
|
|
390
354
|
```
|
|
391
355
|
|
|
392
356
|
</Tab>
|
|
393
|
-
<Tab label="Angular">
|
|
357
|
+
<Tab label="Angular" value="angular">
|
|
394
358
|
#### `IntlayerMarkdownService` Service
|
|
395
359
|
Rendern Sie einen Markdown-String mit dem Service.
|
|
396
360
|
|
|
@@ -416,7 +380,7 @@ Wenn Sie rohe Markdown-Strings rendern müssen oder mehr Kontrolle über den Ren
|
|
|
416
380
|
Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurieren. Dies vermeidet die Übergabe der gleichen Props an jeden Renderer.
|
|
417
381
|
|
|
418
382
|
<Tabs group="framework">
|
|
419
|
-
<Tab label="React / Next.js">
|
|
383
|
+
<Tab label="React / Next.js" value="react">
|
|
420
384
|
|
|
421
385
|
```tsx fileName="AppProvider.tsx"
|
|
422
386
|
import { MarkdownProvider } from "react-intlayer";
|
|
@@ -436,7 +400,7 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
436
400
|
```
|
|
437
401
|
|
|
438
402
|
</Tab>
|
|
439
|
-
<Tab label="Vue">
|
|
403
|
+
<Tab label="Vue" value="vue">
|
|
440
404
|
|
|
441
405
|
```typescript fileName="main.ts"
|
|
442
406
|
import { createApp } from "vue";
|
|
@@ -461,7 +425,7 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
461
425
|
```
|
|
462
426
|
|
|
463
427
|
</Tab>
|
|
464
|
-
<Tab label="Svelte">
|
|
428
|
+
<Tab label="Svelte" value="svelte">
|
|
465
429
|
|
|
466
430
|
```svelte fileName="App.svelte"
|
|
467
431
|
<script lang="ts">
|
|
@@ -481,7 +445,7 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
481
445
|
```
|
|
482
446
|
|
|
483
447
|
</Tab>
|
|
484
|
-
<Tab label="Preact">
|
|
448
|
+
<Tab label="Preact" value="preact">
|
|
485
449
|
|
|
486
450
|
```tsx fileName="AppProvider.tsx"
|
|
487
451
|
import { MarkdownProvider } from "preact-intlayer";
|
|
@@ -500,7 +464,7 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
500
464
|
```
|
|
501
465
|
|
|
502
466
|
</Tab>
|
|
503
|
-
<Tab label="Solid">
|
|
467
|
+
<Tab label="Solid" value="solid">
|
|
504
468
|
|
|
505
469
|
```tsx fileName="AppProvider.tsx"
|
|
506
470
|
import { MarkdownProvider } from "solid-intlayer";
|
|
@@ -519,7 +483,7 @@ Sie können das Markdown-Rendering global für Ihre gesamte Anwendung konfigurie
|
|
|
519
483
|
```
|
|
520
484
|
|
|
521
485
|
</Tab>
|
|
522
|
-
<Tab label="Angular">
|
|
486
|
+
<Tab label="Angular" value="angular">
|
|
523
487
|
|
|
524
488
|
```typescript fileName="app.config.ts"
|
|
525
489
|
import { createIntlayerMarkdownProvider } from "angular-intlayer";
|
package/docs/de/releases/v8.md
CHANGED
|
@@ -12,6 +12,7 @@ keywords:
|
|
|
12
12
|
- Next.js
|
|
13
13
|
- JavaScript
|
|
14
14
|
- TypeScript
|
|
15
|
+
youtubeVideo: https://www.youtube.com/watch?v=ia6JmVf-kkU
|
|
15
16
|
slugs:
|
|
16
17
|
- doc
|
|
17
18
|
- releases
|
|
@@ -22,6 +23,14 @@ slugs:
|
|
|
22
23
|
|
|
23
24
|
Willkommen bei Intlayer v8! Diese Version konzentriert sich darauf, die Developer Experience durch automatische Inhaltserkennung zu verbessern, die Datenintegrität mittels Schema-Validierung sicherzustellen und mehr Kontrolle über die Verwaltung von Dictionaries zu bieten.
|
|
24
25
|
|
|
26
|
+
<iframe
|
|
27
|
+
src="https://www.youtube.com/embed/ia6JmVf-kkU"
|
|
28
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
29
|
+
title="Demo Video - New Intlayer v8 - What's new?"
|
|
30
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
31
|
+
loading="lazy"
|
|
32
|
+
/>
|
|
33
|
+
|
|
25
34
|
## Inhaltsverzeichnis
|
|
26
35
|
|
|
27
36
|
<TOC levels={[2]} maxDepth={1} />
|
|
@@ -1199,8 +1208,8 @@ Markdown- und HTML-Inhalte in Svelte werden nun automatisch in HTML geparst, wen
|
|
|
1199
1208
|
|
|
1200
1209
|
### Konfigurationsänderungen
|
|
1201
1210
|
|
|
1202
|
-
- **`live`-Eigenschaft**: Die `live`-Eigenschaft in Dictionaries
|
|
1203
|
-
- **
|
|
1211
|
+
- **`live`-Eigenschaft**: Die `live`-Eigenschaft in Dictionaries wurde entfernt. Verwenden Sie stattdessen `importMode: 'fetch'`.
|
|
1212
|
+
- **importMode**: Die Eigenschaft `build.importMode` in der Konfiguration ist veraltet. Verwenden Sie stattdessen `dictionary.importMode`.
|
|
1204
1213
|
- **`contentDir` und `codeDir`**: `contentDir` ist jetzt speziell für Inhaltsdateien. Eine neue Eigenschaft `codeDir` wurde für die Code-Transformation hinzugefügt. Wenn `codeDir` nicht gesetzt ist, fällt Intlayer auf `contentDir` zurück und protokolliert eine Warnung.
|
|
1205
1214
|
- **Schema-Validierung**: Um die neue `schema`-Funktion zu nutzen, stellen Sie sicher, dass `zod` in Ihrem Projekt installiert ist.
|
|
1206
1215
|
|