@intlayer/docs 8.4.6 → 8.4.8
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/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/docs/ar/configuration.md +300 -264
- package/docs/cs/configuration.md +958 -0
- package/docs/de/configuration.md +285 -249
- package/docs/en/configuration.md +115 -137
- package/docs/en-GB/configuration.md +272 -237
- package/docs/es/configuration.md +161 -125
- package/docs/fr/configuration.md +137 -101
- package/docs/it/configuration.md +294 -259
- package/docs/ja/configuration.md +269 -233
- package/docs/nl/configuration.md +958 -0
- package/docs/pt/configuration.md +311 -275
- package/docs/ru/configuration.md +287 -272
- package/docs/tr/configuration.md +265 -229
- package/package.json +6 -6
- package/docs/bn/configuration.md +0 -922
- package/docs/hi/configuration.md +0 -922
- package/docs/id/configuration.md +0 -922
- package/docs/ko/configuration.md +0 -922
- package/docs/pl/configuration.md +0 -922
- package/docs/uk/configuration.md +0 -922
- package/docs/ur/configuration.md +0 -922
- package/docs/vi/configuration.md +0 -922
- package/docs/zh/configuration.md +0 -922
package/docs/de/configuration.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
3
|
updatedAt: 2026-03-20
|
|
4
4
|
title: Konfiguration (Configuration)
|
|
5
|
-
description: Erfahren Sie, wie Sie Intlayer für Ihre Anwendung konfigurieren. Verstehen Sie die verschiedenen Einstellungen und Optionen,
|
|
5
|
+
description: Erfahren Sie, wie Sie Intlayer für Ihre Anwendung konfigurieren. Verstehen Sie die verschiedenen Einstellungen und Optionen, um Intlayer an Ihre Bedürfnisse anzupassen.
|
|
6
6
|
keywords:
|
|
7
7
|
- Konfiguration
|
|
8
8
|
- Einstellungen
|
|
@@ -16,10 +16,10 @@ slugs:
|
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.4.0
|
|
18
18
|
date: 2026-03-20
|
|
19
|
-
changes:
|
|
19
|
+
changes: Objektweise Notation pro Sprache für 'compiler.output' und 'dictionary.fill' hinzugefügt
|
|
20
20
|
- version: 8.3.0
|
|
21
21
|
date: 2026-03-11
|
|
22
|
-
changes: 'baseDir' von
|
|
22
|
+
changes: 'baseDir' von 'content' in die 'system' Konfiguration verschoben
|
|
23
23
|
- version: 8.2.0
|
|
24
24
|
date: 2026-03-09
|
|
25
25
|
changes: Compiler-Optionen aktualisiert, Unterstützung für 'output' und 'noMetadata' hinzugefügt
|
|
@@ -34,34 +34,34 @@ history:
|
|
|
34
34
|
changes: Unterstützung für Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face und Together.ai Anbieter hinzugefügt
|
|
35
35
|
- version: 8.0.5
|
|
36
36
|
date: 2026-02-06
|
|
37
|
-
changes: `dataSerialization` zur
|
|
37
|
+
changes: `dataSerialization` zur KI-Konfiguration hinzugefügt
|
|
38
38
|
- version: 8.0.0
|
|
39
39
|
date: 2026-01-24
|
|
40
40
|
changes: Import-Modus `live` in `fetch` umbenannt, um den zugrunde liegenden Mechanismus besser zu beschreiben.
|
|
41
41
|
- version: 8.0.0
|
|
42
42
|
date: 2026-01-22
|
|
43
|
-
changes: Build-Konfiguration `importMode` in die
|
|
43
|
+
changes: Build-Konfiguration `importMode` in die `dictionary` Konfiguration verschoben.
|
|
44
44
|
- version: 8.0.0
|
|
45
45
|
date: 2026-01-22
|
|
46
|
-
changes:
|
|
46
|
+
changes: `rewrite` Option zur Routing-Konfiguration hinzugefügt
|
|
47
47
|
- version: 8.0.0
|
|
48
48
|
date: 2026-01-18
|
|
49
|
-
changes: Systemkonfiguration von
|
|
49
|
+
changes: Systemkonfiguration von der Inhaltskonfiguration getrennt. Interne Pfade in die Eigenschaft `system` verschoben. `codeDir` hinzugefügt, um Inhaltsdateien von der Codetransformation zu trennen.
|
|
50
50
|
- version: 8.0.0
|
|
51
51
|
date: 2026-01-18
|
|
52
|
-
changes:
|
|
52
|
+
changes: Wörterbuch-Optionen `location` und `schema` hinzugefügt
|
|
53
53
|
- version: 7.5.1
|
|
54
54
|
date: 2026-01-10
|
|
55
|
-
changes: Unterstützung für JSON5
|
|
55
|
+
changes: Unterstützung für JSON5 und JSONC Dateiformate hinzugefügt
|
|
56
56
|
- version: 7.5.0
|
|
57
57
|
date: 2025-12-17
|
|
58
58
|
changes: Option `buildMode` hinzugefügt
|
|
59
59
|
- version: 7.0.0
|
|
60
60
|
date: 2025-10-25
|
|
61
|
-
changes:
|
|
61
|
+
changes: `dictionary` Konfiguration hinzugefügt
|
|
62
62
|
- version: 7.0.0
|
|
63
63
|
date: 2025-10-21
|
|
64
|
-
changes: `middleware` durch
|
|
64
|
+
changes: `middleware` durch `routing` Konfiguration ersetzt
|
|
65
65
|
- version: 7.0.0
|
|
66
66
|
date: 2025-10-12
|
|
67
67
|
changes: Option `formatCommand` hinzugefügt
|
|
@@ -79,23 +79,23 @@ history:
|
|
|
79
79
|
changes: Import-Modus `live` hinzugefügt
|
|
80
80
|
- version: 6.0.0
|
|
81
81
|
date: 2025-09-04
|
|
82
|
-
changes: Feld `hotReload` durch `liveSync` ersetzt
|
|
82
|
+
changes: Feld `hotReload` durch `liveSync` ersetzt und die Felder `liveSyncPort` und `liveSyncURL` hinzugefügt
|
|
83
83
|
- version: 5.6.1
|
|
84
84
|
date: 2025-07-25
|
|
85
85
|
changes: `activateDynamicImport` durch die Option `importMode` ersetzt
|
|
86
86
|
- version: 5.6.0
|
|
87
87
|
date: 2025-07-13
|
|
88
|
-
changes:
|
|
88
|
+
changes: Standard `contentDir` von `['src']` zu `['.']` geändert
|
|
89
89
|
- version: 5.5.11
|
|
90
90
|
date: 2025-06-29
|
|
91
91
|
changes: `docs` Befehle hinzugefügt
|
|
92
92
|
---
|
|
93
93
|
|
|
94
|
-
# Intlayer
|
|
94
|
+
# Intlayer Konfigurationsdokumentation
|
|
95
95
|
|
|
96
96
|
## Überblick
|
|
97
97
|
|
|
98
|
-
|
|
98
|
+
Intlayer-Konfigurationsdateien ermöglichen die Anpassung verschiedener Aspekte des Plugins, wie Internationalisierung, Middleware und Inhaltsverarbeitung. Dieses Dokument bietet eine detaillierte Beschreibung jeder Eigenschaft in der Konfiguration.
|
|
99
99
|
|
|
100
100
|
---
|
|
101
101
|
|
|
@@ -105,9 +105,9 @@ Die Intlayer-Konfigurationsdateien ermöglichen es Ihnen, verschiedene Aspekte d
|
|
|
105
105
|
|
|
106
106
|
---
|
|
107
107
|
|
|
108
|
-
##
|
|
108
|
+
## Unterstützung von Konfigurationsdateien
|
|
109
109
|
|
|
110
|
-
Intlayer akzeptiert die
|
|
110
|
+
Intlayer akzeptiert die Konfigurationsdateiformate JSON, JS, MJS und TS:
|
|
111
111
|
|
|
112
112
|
- `intlayer.config.ts`
|
|
113
113
|
- `intlayer.config.js`
|
|
@@ -120,7 +120,7 @@ Intlayer akzeptiert die Konfigurations-Dateiformate JSON, JS, MJS und TS:
|
|
|
120
120
|
|
|
121
121
|
---
|
|
122
122
|
|
|
123
|
-
## Beispiel
|
|
123
|
+
## Beispiel-Konfigurationsdatei
|
|
124
124
|
|
|
125
125
|
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
126
126
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -128,7 +128,7 @@ import { nextjsRewrite } from "intlayer/routing";
|
|
|
128
128
|
import { z } from "zod";
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
|
-
* Beispiel für eine Intlayer-Konfigurationsdatei
|
|
131
|
+
* Beispiel für eine Intlayer-Konfigurationsdatei, die alle verfügbaren Optionen zeigt.
|
|
132
132
|
*/
|
|
133
133
|
const config: IntlayerConfig = {
|
|
134
134
|
/**
|
|
@@ -136,59 +136,59 @@ const config: IntlayerConfig = {
|
|
|
136
136
|
*/
|
|
137
137
|
internationalization: {
|
|
138
138
|
/**
|
|
139
|
-
* Liste der in der Anwendung
|
|
139
|
+
* Liste der unterstützten Sprachen in der Anwendung.
|
|
140
140
|
* Standard: [Locales.ENGLISH]
|
|
141
141
|
*/
|
|
142
142
|
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
|
-
* Liste der
|
|
146
|
-
* Wenn leer, sind im `strict
|
|
145
|
+
* Liste der erforderlichen Sprachen, die in jedem Wörterbuch definiert sein müssen.
|
|
146
|
+
* Wenn leer, sind im `strict` Modus alle Sprachen erforderlich.
|
|
147
147
|
* Standard: []
|
|
148
148
|
*/
|
|
149
149
|
requiredLocales: [Locales.ENGLISH],
|
|
150
150
|
|
|
151
151
|
/**
|
|
152
|
-
*
|
|
153
|
-
* - "strict": Fehler, wenn
|
|
154
|
-
* - "inclusive":
|
|
155
|
-
* - "loose": Akzeptiert
|
|
152
|
+
* Strengegrad für internationalisierte Inhalte.
|
|
153
|
+
* - "strict": Fehler, wenn eine deklarierte Sprache fehlt oder nicht deklariert ist.
|
|
154
|
+
* - "inclusive": Warnungen, wenn eine deklarierte Sprache fehlt.
|
|
155
|
+
* - "loose": Akzeptiert jede vorhandene Sprache.
|
|
156
156
|
* Standard: "inclusive"
|
|
157
157
|
*/
|
|
158
158
|
strictMode: "inclusive",
|
|
159
159
|
|
|
160
160
|
/**
|
|
161
|
-
*
|
|
161
|
+
* Standardsprache, die als Fallback verwendet wird, wenn die angeforderte Sprache nicht gefunden wird.
|
|
162
162
|
* Standard: Locales.ENGLISH
|
|
163
163
|
*/
|
|
164
164
|
defaultLocale: Locales.ENGLISH,
|
|
165
165
|
},
|
|
166
166
|
|
|
167
167
|
/**
|
|
168
|
-
* Einstellungen
|
|
168
|
+
* Einstellungen, die Wörterbuchoperationen und Fallback-Verhalten steuern.
|
|
169
169
|
*/
|
|
170
170
|
dictionary: {
|
|
171
171
|
/**
|
|
172
172
|
* Steuert, wie Wörterbücher importiert werden.
|
|
173
173
|
* - "static": Statisch zur Build-Zeit importiert.
|
|
174
|
-
* - "dynamic": Dynamisch
|
|
175
|
-
* - "fetch": Dynamisch
|
|
174
|
+
* - "dynamic": Dynamisch mit Suspense importiert.
|
|
175
|
+
* - "fetch": Dynamisch über die Live Sync API abgerufen.
|
|
176
176
|
* Standard: "static"
|
|
177
177
|
*/
|
|
178
178
|
importMode: "static",
|
|
179
179
|
|
|
180
180
|
/**
|
|
181
|
-
* Strategie
|
|
181
|
+
* Strategie für das automatische Ausfüllen fehlender Übersetzungen mittels KI.
|
|
182
182
|
* Kann ein boolescher Wert oder ein Pfadmuster zum Speichern der ausgefüllten Inhalte sein.
|
|
183
183
|
* Standard: true
|
|
184
184
|
*/
|
|
185
185
|
fill: true,
|
|
186
186
|
|
|
187
187
|
/**
|
|
188
|
-
*
|
|
188
|
+
* Physischer Speicherort der Wörterbuchdateien.
|
|
189
189
|
* - "local": Im lokalen Dateisystem gespeichert.
|
|
190
190
|
* - "remote": Im Intlayer CMS gespeichert.
|
|
191
|
-
* - "hybrid":
|
|
191
|
+
* - "hybrid": Im lokalen Dateisystem und im Intlayer CMS gespeichert.
|
|
192
192
|
* - "plugin" (oder ein beliebiger benutzerdefinierter String): Von einem Plugin oder einer benutzerdefinierten Quelle bereitgestellt.
|
|
193
193
|
* Standard: "local"
|
|
194
194
|
*/
|
|
@@ -206,30 +206,30 @@ const config: IntlayerConfig = {
|
|
|
206
206
|
*/
|
|
207
207
|
routing: {
|
|
208
208
|
/**
|
|
209
|
-
* Strategie für das
|
|
210
|
-
* - "prefix-no-default":
|
|
211
|
-
* - "prefix-all":
|
|
212
|
-
* - "no-prefix": Keine
|
|
213
|
-
* - "search-params":
|
|
209
|
+
* Strategie für das Sprachrouting.
|
|
210
|
+
* - "prefix-no-default": Präfix für alle außer der Standardsprache (z. B. /dashboard, /fr/dashboard).
|
|
211
|
+
* - "prefix-all": Präfix für alle Sprachen (z. B. /en/dashboard, /fr/dashboard).
|
|
212
|
+
* - "no-prefix": Keine Sprache in der URL.
|
|
213
|
+
* - "search-params": Verwendung von ?locale=...
|
|
214
214
|
* Standard: "prefix-no-default"
|
|
215
215
|
*/
|
|
216
216
|
mode: "prefix-no-default",
|
|
217
217
|
|
|
218
218
|
/**
|
|
219
|
-
* Wo die vom Benutzer gewählte
|
|
219
|
+
* Wo die vom Benutzer gewählte Sprache gespeichert werden soll.
|
|
220
220
|
* Optionen: 'cookie', 'localStorage', 'sessionStorage', 'header' oder ein Array davon.
|
|
221
221
|
* Standard: ['cookie', 'header']
|
|
222
222
|
*/
|
|
223
223
|
storage: ["cookie", "header"],
|
|
224
224
|
|
|
225
225
|
/**
|
|
226
|
-
*
|
|
226
|
+
* Basispfad für die Anwendungs-URLs.
|
|
227
227
|
* Standard: ""
|
|
228
228
|
*/
|
|
229
229
|
basePath: "",
|
|
230
230
|
|
|
231
231
|
/**
|
|
232
|
-
* Benutzerdefinierte URL-Rewrite-Regeln für
|
|
232
|
+
* Benutzerdefinierte URL-Rewrite-Regeln für sprachspezifische Pfade.
|
|
233
233
|
*/
|
|
234
234
|
rewrite: nextjsRewrite({
|
|
235
235
|
"/[locale]/about": {
|
|
@@ -240,37 +240,37 @@ const config: IntlayerConfig = {
|
|
|
240
240
|
},
|
|
241
241
|
|
|
242
242
|
/**
|
|
243
|
-
* Einstellungen
|
|
243
|
+
* Einstellungen zum Finden und Verarbeiten von Inhaltsdateien.
|
|
244
244
|
*/
|
|
245
245
|
content: {
|
|
246
246
|
/**
|
|
247
|
-
* Dateierweiterungen
|
|
248
|
-
* Standard: ['.content.ts', '.content.js', '.content.json',
|
|
247
|
+
* Dateierweiterungen, nach denen nach Wörterbüchern gesucht wird.
|
|
248
|
+
* Standard: ['.content.ts', '.content.js', '.content.json', etc.]
|
|
249
249
|
*/
|
|
250
250
|
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
251
251
|
|
|
252
252
|
/**
|
|
253
|
-
* Verzeichnisse, in denen sich
|
|
253
|
+
* Verzeichnisse, in denen sich .content-Dateien befinden.
|
|
254
254
|
* Standard: ["."]
|
|
255
255
|
*/
|
|
256
256
|
contentDir: ["src"],
|
|
257
257
|
|
|
258
258
|
/**
|
|
259
|
-
*
|
|
260
|
-
* Wird für
|
|
259
|
+
* Verzeichnisse, in denen sich der Quellcode befindet.
|
|
260
|
+
* Wird für Build-Optimierung und Codetransformation verwendet.
|
|
261
261
|
* Standard: ["."]
|
|
262
262
|
*/
|
|
263
263
|
codeDir: ["src"],
|
|
264
264
|
|
|
265
265
|
/**
|
|
266
|
-
* Muster, die vom
|
|
267
|
-
* Standard: ['node_modules', '.intlayer',
|
|
266
|
+
* Muster, die vom Scannen ausgeschlossen werden sollen.
|
|
267
|
+
* Standard: ['node_modules', '.intlayer', etc.]
|
|
268
268
|
*/
|
|
269
269
|
excludedPath: ["node_modules"],
|
|
270
270
|
|
|
271
271
|
/**
|
|
272
272
|
* Ob Änderungen überwacht und Wörterbücher während der Entwicklung neu erstellt werden sollen.
|
|
273
|
-
* Standard: true
|
|
273
|
+
* Standard: true in der Entwicklung
|
|
274
274
|
*/
|
|
275
275
|
watch: true,
|
|
276
276
|
|
|
@@ -281,7 +281,7 @@ const config: IntlayerConfig = {
|
|
|
281
281
|
},
|
|
282
282
|
|
|
283
283
|
/**
|
|
284
|
-
* Konfiguration
|
|
284
|
+
* Konfiguration des visuellen Editors.
|
|
285
285
|
*/
|
|
286
286
|
editor: {
|
|
287
287
|
/**
|
|
@@ -291,7 +291,7 @@ const config: IntlayerConfig = {
|
|
|
291
291
|
enabled: true,
|
|
292
292
|
|
|
293
293
|
/**
|
|
294
|
-
*
|
|
294
|
+
* URL Ihrer Anwendung zur Validierung der Herkunft.
|
|
295
295
|
* Standard: ""
|
|
296
296
|
*/
|
|
297
297
|
applicationURL: "http://localhost:3000",
|
|
@@ -303,67 +303,67 @@ const config: IntlayerConfig = {
|
|
|
303
303
|
port: 8000,
|
|
304
304
|
|
|
305
305
|
/**
|
|
306
|
-
*
|
|
306
|
+
* Öffentliche URL für den Editor.
|
|
307
307
|
* Standard: "http://localhost:8000"
|
|
308
308
|
*/
|
|
309
309
|
editorURL: "http://localhost:8000",
|
|
310
310
|
|
|
311
311
|
/**
|
|
312
|
-
*
|
|
312
|
+
* Intlayer CMS URL.
|
|
313
313
|
* Standard: "https://app.intlayer.org"
|
|
314
314
|
*/
|
|
315
315
|
cmsURL: "https://app.intlayer.org",
|
|
316
316
|
|
|
317
317
|
/**
|
|
318
|
-
* Backend
|
|
318
|
+
* Backend API URL.
|
|
319
319
|
* Standard: "https://back.intlayer.org"
|
|
320
320
|
*/
|
|
321
321
|
backendURL: "https://back.intlayer.org",
|
|
322
322
|
|
|
323
323
|
/**
|
|
324
|
-
* Ob
|
|
324
|
+
* Ob Echtzeit-Inhaltssynchronisierung aktiviert werden soll.
|
|
325
325
|
* Standard: false
|
|
326
326
|
*/
|
|
327
327
|
liveSync: true,
|
|
328
328
|
},
|
|
329
329
|
|
|
330
330
|
/**
|
|
331
|
-
*
|
|
331
|
+
* KI-gestützte Übersetzungs- und Generierungseinstellungen.
|
|
332
332
|
*/
|
|
333
333
|
ai: {
|
|
334
334
|
/**
|
|
335
|
-
*
|
|
335
|
+
* Zu verwendender KI-Anbieter.
|
|
336
336
|
* Optionen: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
337
337
|
* Standard: 'openai'
|
|
338
338
|
*/
|
|
339
339
|
provider: "openai",
|
|
340
340
|
|
|
341
341
|
/**
|
|
342
|
-
* Modell des
|
|
342
|
+
* Zu verwendendes Modell des ausgewählten Anbieters.
|
|
343
343
|
*/
|
|
344
344
|
model: "gpt-4o",
|
|
345
345
|
|
|
346
346
|
/**
|
|
347
|
-
* API-
|
|
347
|
+
* API-Schlüssel des Anbieters.
|
|
348
348
|
*/
|
|
349
349
|
apiKey: process.env.OPENAI_API_KEY,
|
|
350
350
|
|
|
351
351
|
/**
|
|
352
|
-
* Globaler Kontext
|
|
352
|
+
* Globaler Kontext, um die KI beim Generieren von Übersetzungen zu unterstützen.
|
|
353
353
|
*/
|
|
354
354
|
applicationContext: "Dies ist eine Reisebuchungsanwendung.",
|
|
355
355
|
|
|
356
356
|
/**
|
|
357
|
-
* Basis-URL für die
|
|
357
|
+
* Basis-URL für die KI-API.
|
|
358
358
|
*/
|
|
359
359
|
baseURL: "http://localhost:3000",
|
|
360
360
|
|
|
361
361
|
/**
|
|
362
|
-
* Datenserialisierung
|
|
362
|
+
* Datenserialisierung
|
|
363
363
|
*
|
|
364
364
|
* Optionen:
|
|
365
|
-
* - "json": Standard,
|
|
366
|
-
* - "toon":
|
|
365
|
+
* - "json": Standard, zuverlässig; verbraucht mehr Tokens.
|
|
366
|
+
* - "toon": Weniger Tokens, weniger konsistent als JSON.
|
|
367
367
|
*
|
|
368
368
|
* Standard: "json"
|
|
369
369
|
*/
|
|
@@ -375,8 +375,8 @@ const config: IntlayerConfig = {
|
|
|
375
375
|
*/
|
|
376
376
|
build: {
|
|
377
377
|
/**
|
|
378
|
-
* Modus
|
|
379
|
-
* - "auto":
|
|
378
|
+
* Modus der Build-Ausführung.
|
|
379
|
+
* - "auto": Automatischer Build während des App-Builds.
|
|
380
380
|
* - "manual": Erfordert einen expliziten Build-Befehl.
|
|
381
381
|
* Standard: "auto"
|
|
382
382
|
*/
|
|
@@ -384,12 +384,12 @@ const config: IntlayerConfig = {
|
|
|
384
384
|
|
|
385
385
|
/**
|
|
386
386
|
* Ob das finale Bundle durch Entfernen ungenutzter Wörterbücher optimiert werden soll.
|
|
387
|
-
* Standard: true in Produktion
|
|
387
|
+
* Standard: true in der Produktion
|
|
388
388
|
*/
|
|
389
389
|
optimize: true,
|
|
390
390
|
|
|
391
391
|
/**
|
|
392
|
-
* Ausgabeformat für
|
|
392
|
+
* Ausgabeformat für generierte Wörterbuchdateien.
|
|
393
393
|
* Standard: ['cjs', 'esm']
|
|
394
394
|
*/
|
|
395
395
|
outputFormat: ["cjs", "esm"],
|
|
@@ -406,10 +406,10 @@ const config: IntlayerConfig = {
|
|
|
406
406
|
*/
|
|
407
407
|
log: {
|
|
408
408
|
/**
|
|
409
|
-
* Logging-
|
|
410
|
-
* - "default":
|
|
409
|
+
* Logging-Level.
|
|
410
|
+
* - "default": Standard-Logging.
|
|
411
411
|
* - "verbose": Detailliertes Debug-Logging.
|
|
412
|
-
* - "disabled":
|
|
412
|
+
* - "disabled": Kein Logging.
|
|
413
413
|
* Standard: "default"
|
|
414
414
|
*/
|
|
415
415
|
mode: "default",
|
|
@@ -422,7 +422,7 @@ const config: IntlayerConfig = {
|
|
|
422
422
|
},
|
|
423
423
|
|
|
424
424
|
/**
|
|
425
|
-
* Systemkonfiguration (
|
|
425
|
+
* Systemkonfiguration (Erweiterte Anwendungsfälle)
|
|
426
426
|
*/
|
|
427
427
|
system: {
|
|
428
428
|
/**
|
|
@@ -431,12 +431,12 @@ const config: IntlayerConfig = {
|
|
|
431
431
|
dictionariesDir: ".intlayer/dictionary",
|
|
432
432
|
|
|
433
433
|
/**
|
|
434
|
-
* Verzeichnis für
|
|
434
|
+
* Verzeichnis für die Modul-Augmentierung.
|
|
435
435
|
*/
|
|
436
436
|
moduleAugmentationDir: ".intlayer/types",
|
|
437
437
|
|
|
438
438
|
/**
|
|
439
|
-
* Verzeichnis zum Speichern nicht zusammengeführter
|
|
439
|
+
* Verzeichnis zum Speichern nicht zusammengeführter Wörterbücher.
|
|
440
440
|
*/
|
|
441
441
|
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
442
442
|
|
|
@@ -456,85 +456,85 @@ const config: IntlayerConfig = {
|
|
|
456
456
|
configDir: ".intlayer/config",
|
|
457
457
|
|
|
458
458
|
/**
|
|
459
|
-
* Verzeichnis, in dem Cache-Dateien gespeichert sind.
|
|
459
|
+
* Verzeichnis, in dem die Cache-Dateien gespeichert sind.
|
|
460
460
|
*/
|
|
461
461
|
cacheDir: ".intlayer/cache",
|
|
462
462
|
},
|
|
463
463
|
|
|
464
464
|
/**
|
|
465
|
-
* Compiler-Konfiguration (
|
|
465
|
+
* Compiler-Konfiguration (Erweiterte Anwendungsfälle)
|
|
466
466
|
*/
|
|
467
467
|
compiler: {
|
|
468
468
|
/**
|
|
469
469
|
* Gibt an, ob der Compiler aktiviert sein soll.
|
|
470
470
|
*
|
|
471
|
-
* - false:
|
|
472
|
-
* - true:
|
|
473
|
-
* - "build-only":
|
|
471
|
+
* - false: Compiler deaktivieren.
|
|
472
|
+
* - true: Compiler aktivieren.
|
|
473
|
+
* - "build-only": Compiler während der Entwicklung überspringen, um Startzeiten zu beschleunigen.
|
|
474
474
|
*
|
|
475
475
|
* Standard: false
|
|
476
476
|
*/
|
|
477
477
|
enabled: true,
|
|
478
478
|
|
|
479
479
|
/**
|
|
480
|
-
* Definiert den Pfad für Ausgabedateien. Ersetzt `outputDir`.
|
|
480
|
+
* Definiert den Pfad für die Ausgabedateien. Ersetzt `outputDir`.
|
|
481
481
|
*
|
|
482
|
-
* - Pfade
|
|
483
|
-
* - Pfade
|
|
482
|
+
* - `./` Pfade werden relativ zum Komponentenverzeichnis aufgelöst.
|
|
483
|
+
* - `/` Pfade werden relativ zum Projektstamm (`baseDir`) aufgelöst.
|
|
484
484
|
*
|
|
485
|
-
* -
|
|
485
|
+
* - Wenn die Variable `{{locale}}` im Pfad enthalten ist, wird die Generierung separater Wörterbücher pro Sprache ausgelöst.
|
|
486
486
|
*
|
|
487
487
|
* Beispiel:
|
|
488
488
|
* ```ts
|
|
489
489
|
* {
|
|
490
|
-
* //
|
|
490
|
+
* // Mehrsprachige .content.ts Dateien in der Nähe der Komponente erstellen
|
|
491
491
|
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
492
492
|
*
|
|
493
|
-
* // output: './{{fileName}}{{extension}}', //
|
|
493
|
+
* // output: './{{fileName}}{{extension}}', // Äquivalent mit Template-String
|
|
494
494
|
* }
|
|
495
495
|
* ```
|
|
496
496
|
*
|
|
497
497
|
* ```ts
|
|
498
498
|
* {
|
|
499
|
-
* //
|
|
499
|
+
* // Zentralisierte pro-Sprache JSON-Dateien im Stammverzeichnis des Projekts erstellen
|
|
500
500
|
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
501
501
|
*
|
|
502
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', //
|
|
502
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Äquivalent mit Template-String
|
|
503
503
|
* }
|
|
504
504
|
* ```
|
|
505
505
|
*
|
|
506
506
|
* Liste der Variablen:
|
|
507
|
-
* - `fileName`:
|
|
508
|
-
* - `key`:
|
|
509
|
-
* - `locale`:
|
|
510
|
-
* - `extension`:
|
|
511
|
-
* - `componentFileName`:
|
|
512
|
-
* - `componentExtension`:
|
|
513
|
-
* - `format`:
|
|
514
|
-
* - `componentFormat`:
|
|
515
|
-
* - `componentDirPath`:
|
|
507
|
+
* - `fileName`: Name der Datei.
|
|
508
|
+
* - `key`: Schlüssel des Inhalts.
|
|
509
|
+
* - `locale`: Sprache des Inhalts.
|
|
510
|
+
* - `extension`: Erweiterung der Datei.
|
|
511
|
+
* - `componentFileName`: Name der Komponentendatei.
|
|
512
|
+
* - `componentExtension`: Erweiterung der Komponentendatei.
|
|
513
|
+
* - `format`: Format des Wörterbuchs.
|
|
514
|
+
* - `componentFormat`: Format des Komponentenwörterbuchs.
|
|
515
|
+
* - `componentDirPath`: Verzeichnispfad der Komponente.
|
|
516
516
|
*/
|
|
517
517
|
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
518
518
|
|
|
519
519
|
/**
|
|
520
|
-
* Gibt an, ob Komponenten nach der Transformation gespeichert werden sollen.
|
|
521
|
-
* Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die
|
|
520
|
+
* Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
|
|
521
|
+
* Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
|
|
522
522
|
*/
|
|
523
523
|
saveComponents: false,
|
|
524
524
|
|
|
525
525
|
/**
|
|
526
|
-
*
|
|
526
|
+
* Nur Inhalte in die generierte Datei einfügen. Nützlich für pro-Sprache i18next oder ICU MessageFormat JSON-Ausgaben.
|
|
527
527
|
*/
|
|
528
528
|
noMetadata: false,
|
|
529
529
|
|
|
530
530
|
/**
|
|
531
|
-
*
|
|
531
|
+
* Wörterbuch-Schlüsselpräfix
|
|
532
532
|
*/
|
|
533
|
-
dictionaryKeyPrefix: "", //
|
|
533
|
+
dictionaryKeyPrefix: "", // Optionales Präfix für die extrahierten Wörterbuchschlüssel hinzufügen
|
|
534
534
|
},
|
|
535
535
|
|
|
536
536
|
/**
|
|
537
|
-
* Benutzerdefinierte
|
|
537
|
+
* Benutzerdefinierte Schemata zum Validieren des Inhalts der Wörterbücher.
|
|
538
538
|
*/
|
|
539
539
|
schemas: {
|
|
540
540
|
"my-schema": z.object({
|
|
@@ -543,7 +543,7 @@ const config: IntlayerConfig = {
|
|
|
543
543
|
},
|
|
544
544
|
|
|
545
545
|
/**
|
|
546
|
-
* Plugin-Konfiguration
|
|
546
|
+
* Plugin-Konfiguration.
|
|
547
547
|
*/
|
|
548
548
|
plugins: [],
|
|
549
549
|
};
|
|
@@ -553,56 +553,58 @@ export default config;
|
|
|
553
553
|
|
|
554
554
|
---
|
|
555
555
|
|
|
556
|
-
##
|
|
556
|
+
## Konfigurationsreferenz
|
|
557
557
|
|
|
558
|
-
|
|
558
|
+
Die folgenden Abschnitte beschreiben die verschiedenen für Intlayer verfügbaren Konfigurationseinstellungen.
|
|
559
559
|
|
|
560
560
|
---
|
|
561
561
|
|
|
562
|
-
###
|
|
562
|
+
### Internationalisierungskonfiguration
|
|
563
563
|
|
|
564
|
-
Definiert Einstellungen
|
|
564
|
+
Definiert Einstellungen zur Internationalisierung, einschließlich der verfügbaren Sprachen und der Standardsprache für die Anwendung.
|
|
565
565
|
|
|
566
|
-
| Feld
|
|
567
|
-
|
|
|
568
|
-
| `locales`
|
|
569
|
-
| `requiredLocales` |
|
|
570
|
-
| `strictMode`
|
|
571
|
-
| `defaultLocale`
|
|
566
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
567
|
+
| ---------------- | -------------------------------------------------------------------------------------------------- | ---------- | ------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
568
|
+
| `locales` | Die Liste der unterstützten Sprachen in der Anwendung. | `string[]` | `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
|
|
569
|
+
| `requiredLocales` | Die Liste der erforderlichen Sprachen in der Anwendung. | `string[]` | `[]` | `[]` | • Wenn leer, sind alle Sprachen im `strict` Modus erforderlich.<br/>• Stellen Sie sicher, dass erforderliche Sprachen auch im `locales` Feld definiert sind. |
|
|
570
|
+
| `strictMode` | Gewährleistet eine starke Implementierung von internationalisierten Inhalten mittels TypeScript. | `string` | `'inclusive'` | | • Wenn `"strict"`: Die `t`-Funktion erfordert, dass jede deklarierte Sprache definiert ist — wirft einen Fehler, wenn eine fehlt oder nicht deklariert ist.<br/>• Wenn `"inclusive"`: Warnt vor fehlenden Sprachen, akzeptiert aber vorhandene, nicht deklarierte.<br/>• Wenn `"loose"`: Akzeptiert jede vorhandene Sprache. |
|
|
571
|
+
| `defaultLocale` | Die Standardsprache, die als Fallback verwendet wird, wenn die angeforderte Sprache nicht gefunden wird. | `string` | `Locales.ENGLISH` | `'en'` | Wird verwendet, um die Sprache zu bestimmen, wenn keine in der URL, im Cookie oder im Header angegeben ist. |
|
|
572
572
|
|
|
573
573
|
---
|
|
574
574
|
|
|
575
|
-
###
|
|
575
|
+
### Editorkonfiguration
|
|
576
|
+
|
|
577
|
+
Definiert Einstellungen für den integrierten Editor, einschließlich Server-Port und Aktivierungsstatus.
|
|
578
|
+
|
|
579
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
580
|
+
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
581
|
+
| `applicationURL` | Die URL der Anwendung. | `string` | `undefined` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Wird aus Sicherheitsgründen verwendet, um die Herkunft des Editors einzuschränken.<br/>• Wenn auf `'*'` gesetzt, ist der Editor von jeder Quelle zugänglich. |
|
|
582
|
+
| `port` | Der vom visuellen Editor-Server verwendete Port. | `number` | `8000` | | |
|
|
583
|
+
| `editorURL` | Die URL des Editor-Servers. | `string` | `'http://localhost:8000'` | `'http://localhost:3000'` <br/> `'https://example.com'` <br/> `process.env.INTLAYER_EDITOR_URL` | • Wird verwendet, um die Quellen einzuschränken, die mit der Anwendung interagieren können.<br/>• Wenn auf `'*'` gesetzt, von jeder Quelle zugänglich.<br/>• Sollte festgelegt werden, wenn der Port geändert wird oder der Editor auf einer anderen Domain gehostet wird. |
|
|
584
|
+
| `cmsURL` | Die URL des Intlayer CMS. | `string` | `'https://app.intlayer.org'` | `'https://app.intlayer.org'` | |
|
|
585
|
+
| `backendURL` | Die URL des Backend-Servers. | `string` | `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
+
| `enabled` | Gibt an, ob die Anwendung mit dem visuellen Editor interagiert. | `boolean` | `false` | `process.env.NODE_ENV !== 'production'` | • Wenn `false`, kann der Editor nicht mit der Anwendung interagieren.<br/>• Deaktivierung für bestimmte Umgebungen erhöht die Sicherheit. |
|
|
587
|
+
| `clientId` | Erlaubt Intlayer-Paketen die Authentifizierung beim Backend mittels oAuth2. Um ein Zugriffstoken zu erhalten, gehen Sie zu [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Geheim halten; in Umgebungsvariablen speichern. |
|
|
588
|
+
| `clientSecret` | Erlaubt Intlayer-Paketen die Authentifizierung beim Backend mittels oAuth2. Um ein Zugriffstoken zu erhalten, gehen Sie zu [intlayer.org/project](https://app.intlayer.org/project). | `string` | <br/> `undefined` | `undefined` | | Geheim halten; in Umgebungsvariablen speichern. |
|
|
589
|
+
| `dictionaryPriorityStrategy` | Strategie zur Priorisierung von Wörterbüchern, wenn sowohl lokale als auch entfernte vorhanden sind. | `string` | `'local_first'` | `'distant_first'` | • `'distant_first'`: Priorisiert entfernte vor lokalen.<br/>• `'local_first'`: Priorisiert lokale vor entfernten. |
|
|
590
|
+
| `liveSync` | Gibt an, ob der App-Server Inhalte im Hot-Reload-Verfahren aktualisieren soll, wenn eine Änderung im CMS <br/> Visual Editor <br/> Backend erkannt wird. | `boolean` | `true` | `true` | • Wenn ein Wörterbuch hinzugefügt/aktualisiert wird, aktualisiert die App den Seiteninhalt.<br/>• Live Sync verlagert Inhalte auf einen anderen Server, was die Leistung geringfügig beeinflussen kann.<br/>• Es wird empfohlen, beides auf derselben Maschine zu hosten. |
|
|
591
|
+
| `liveSyncPort` | Der Port des Live Sync Servers. | `number` | `4000` | `4000` | |
|
|
592
|
+
| `liveSyncURL` | Die URL des Live Sync Servers. | `string` | `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Zeigt standardmäßig auf localhost; kann für einen entfernten Live Sync Server geändert werden. |
|
|
576
593
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
| Feld | Typ | Beschreibung | Beispiel | Hinweis |
|
|
580
|
-
| ---------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
581
|
-
| `applicationURL` | `string` | Die URL Ihrer Anwendung. Standard: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Wird verwendet, um die Ursprünge (Origins) des Editors aus Sicherheitsgründen einzuschränken. Wenn auf `'*'` gesetzt, kann von jedem Origin aus auf den Editor zugegriffen werden. |
|
|
582
|
-
| `port` | `number` | Port, der vom Visual Editor-Server verwendet wird. Standard: `8000` | | |
|
|
583
|
-
| `editorURL` | `string` | URL des Editor-Servers. Standard: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | Wird verwendet, um die Origins einzuschränken, die mit der Anwendung interagieren können. Wenn auf `'*'` gesetzt, von jedem Origin aus zugänglich. Muss gesetzt werden, wenn der Port geändert wird oder der Editor auf einer anderen Domain gehostet wird. |
|
|
584
|
-
| `cmsURL` | `string` | URL des Intlayer CMS. Standard: `'https://intlayer.org'` | `'https://intlayer.org'` | |
|
|
585
|
-
| `backendURL` | `string` | Backend-Server-URL. Standard: `https://back.intlayer.org` | `http://localhost:4000` | |
|
|
586
|
-
| `enabled` | `boolean` | Gibt an, ob die App mit dem visuellen Editor interagiert. Standard: `true` | `process.env.NODE_ENV !== 'production'` | Wenn `false`, kann der Editor nicht mit der App interagieren. Die Deaktivierung für bestimmte Umgebungen erhöht die Sicherheit. |
|
|
587
|
-
| `clientId` | `string | undefined` | Ermöglicht es Intlayer-Paketen, sich über oAuth2 am Backend zu authentifizieren. Um einen Zugriffstoken zu erhalten, gehen Sie zu [intlayer.org/project](https://app.intlayer.org/project). Standard: `undefined` | | Geheim halten; in Umgebungsvariablen speichern. |
|
|
588
|
-
| `clientSecret` | `string | undefined` | Ermöglicht es Intlayer-Paketen, sich über oAuth2 am Backend zu authentifizieren. Um einen Zugriffstoken zu erhalten, gehen Sie zu [intlayer.org/project](https://app.intlayer.org/project). Standard: `undefined` | | Geheim halten; in Umgebungsvariablen speichern. |
|
|
589
|
-
| `dictionaryPriorityStrategy` | `string` | Strategie zur Priorisierung von Wörterbüchern, wenn sowohl lokale als auch entfernte Wörterbücher vorhanden sind. Standard: `'local_first'` | `'distant_first'` | `'distant_first'`: Priorisiert entfernte (Remote) vor lokalen. `'local_first'`: Priorisiert lokale vor entfernten. |
|
|
590
|
-
| `liveSync` | `boolean` | Gibt an, ob der Anwendungsserver Inhalte neu laden soll, wenn eine Änderung im CMS / Visual Editor / Backend erkannt wird. Standard: `true` | `true` | Wenn ein Wörterbuch hinzugefügt/aktualisiert wird, aktualisiert die App den Seiteninhalt. Live Sync lagert den Inhalt auf einen anderen Server aus, was die Leistung geringfügig beeinträchtigen kann. Es wird empfohlen, beides auf derselben Maschine zu hosten. |
|
|
591
|
-
| `liveSyncPort` | `number` | Port des Live Sync Servers. Standard: `4000` | `4000` | |
|
|
592
|
-
| `liveSyncURL` | `string` | URL des Live Sync Servers. Standard: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | Zeigt standardmäßig auf localhost; kann auf einen entfernten Live Sync Server geändert werden. |
|
|
594
|
+
---
|
|
593
595
|
|
|
594
|
-
### Konfiguration
|
|
596
|
+
### Routing-Konfiguration
|
|
595
597
|
|
|
596
|
-
Einstellungen, die das Routing-Verhalten steuern, einschließlich URL-Struktur,
|
|
598
|
+
Einstellungen, die das Routing-Verhalten steuern, einschließlich URL-Struktur, Sprachspeicherung und Middleware-Handhabung.
|
|
597
599
|
|
|
598
|
-
| Feld | Typ
|
|
599
|
-
| ---------- |
|
|
600
|
-
| `mode` | `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
|
|
601
|
-
| `storage` | `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array` |
|
|
602
|
-
| `basePath` |
|
|
603
|
-
| `rewrite` |
|
|
600
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
601
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
602
|
+
| `mode` | URL-Routing-Modus für die Sprachbehandlung. | `'prefix-no-default'` | <br/> `'prefix-all'` | <br/> `'no-prefix'` | <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) oder `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: Sprache wird anderweitig behandelt. `'search-params'`: `/dashboard?locale=fr` | Beeinflusst nicht das Cookie- oder Sprachspeicher-Management. |
|
|
603
|
+
| `storage` | Konfiguration für die Speicherung der Sprache im Client. | `false` | <br/> `'cookie'` | <br/> `'localStorage'` | <br/> `'sessionStorage'` | <br/> `'header'` | <br/> `CookiesAttributes` | <br/> `StorageAttributes` | <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Siehe Tabelle Speicheroptionen unten. |
|
|
604
|
+
| `basePath` | Der Basispfad für die Anwendungs-URLs. | `string` | `''` | `'/my-app'` | Wenn die App unter `https://example.com/my-app` erreichbar ist, ist basePath `'/my-app'` und URLs werden zu `https://example.com/my-app/en`. |
|
|
605
|
+
| `rewrite` | Benutzerdefinierte URL-Rewrite-Regeln, die den Standard-Routing-Modus für bestimmte Pfade überschreiben. Unterstützt dynamische `[param]` Parameter. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Siehe Beispiel unten | • Rewrite-Regeln haben Vorrang vor `mode`.<br/>• Funktioniert mit Next.js und Vite.<br/>• `getLocalizedUrl()` wendet passende Regeln automatisch an.<br/>• Siehe [Benutzerdefinierte URL-Rewrites](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
|
|
604
606
|
|
|
605
|
-
|
|
607
|
+
**`rewrite` Beispiel**:
|
|
606
608
|
|
|
607
609
|
```typescript
|
|
608
610
|
routing: {
|
|
@@ -624,41 +626,41 @@ routing: {
|
|
|
624
626
|
}
|
|
625
627
|
```
|
|
626
628
|
|
|
627
|
-
#### Speicheroptionen
|
|
629
|
+
#### Speicheroptionen
|
|
628
630
|
|
|
629
|
-
| Wert |
|
|
630
|
-
| ------------------ |
|
|
631
|
-
| `'cookie'` |
|
|
632
|
-
| `'localStorage'` |
|
|
633
|
-
| `'sessionStorage'` |
|
|
634
|
-
| `'header'` |
|
|
631
|
+
| Wert | Hinweis | Beschreibung |
|
|
632
|
+
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
633
|
+
| `'cookie'` | • Stellen Sie für die DSGVO-Konformität eine ordnungsgemäße Benutzereinwilligung sicher.<br/>• Anpassbar über `CookiesAttributes` (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). | Speichert die Sprache in Cookies — zugänglich sowohl auf Client- als auch auf Serverseite. |
|
|
634
|
+
| `'localStorage'` | • Kein Ablauf, außer explizit gelöscht.<br/>• Der Intlayer-Proxy kann nicht darauf zugreifen.<br/>• Anpassbar über `StorageAttributes` (`{ type: 'localStorage', name: 'custom-locale' }`). | Speichert die Sprache im Browser ohne Ablauf — nur Clientseite. |
|
|
635
|
+
| `'sessionStorage'` | • Gelöscht, wenn Tab/Fenster geschlossen wird.<br/>• Der Intlayer-Proxy kann nicht darauf zugreifen.<br/>• Anpassbar über `StorageAttributes` (`{ type: 'sessionStorage', name: 'custom-locale' }`). | Speichert die Sprache für die Dauer der Seitensitzung — nur Clientseite. |
|
|
636
|
+
| `'header'` | • Nützlich für API-Aufrufe.<br/>• Clientseite kann nicht darauf zugreifen.<br/>• Anpassbar über `StorageAttributes` (`{ type: 'header', name: 'custom-locale' }`). | Überträgt die Sprache über HTTP-Header — nur Serverseite. |
|
|
635
637
|
|
|
636
|
-
#### Cookie-Attribute
|
|
638
|
+
#### Cookie-Attribute
|
|
637
639
|
|
|
638
|
-
|
|
640
|
+
Wenn Sie Cookie-Speicherung verwenden, können Sie zusätzliche Cookie-Attribute konfigurieren:
|
|
639
641
|
|
|
640
|
-
| Feld |
|
|
641
|
-
| ---------- |
|
|
642
|
-
| `name` |
|
|
643
|
-
| `domain` |
|
|
644
|
-
| `path` |
|
|
645
|
-
| `secure` |
|
|
646
|
-
| `httpOnly` |
|
|
647
|
-
| `sameSite` | `'strict' | 'lax' | 'none'` |
|
|
648
|
-
| `expires` |
|
|
642
|
+
| Feld | Beschreibung | Typ |
|
|
643
|
+
| ---------- | --------------------------------------------- | ----------------------------------------------------- |
|
|
644
|
+
| `name` | Cookie-Name. Standard: `'INTLAYER_LOCALE'` | `string` |
|
|
645
|
+
| `domain` | Cookie-Domain. Standard: `undefined` | `string` |
|
|
646
|
+
| `path` | Cookie-Pfad. Standard: `undefined` | `string` |
|
|
647
|
+
| `secure` | HTTPS erforderlich. Standard: `undefined` | `boolean` |
|
|
648
|
+
| `httpOnly` | HTTP-only Flag. Standard: `undefined` | `boolean` |
|
|
649
|
+
| `sameSite` | SameSite-Richtlinie. | `'strict'` | <br/> `'lax'` | <br/> `'none'` |
|
|
650
|
+
| `expires` | Ablaufdatum oder Tage. Standard: `undefined` | `Date` | <br/> `number` |
|
|
649
651
|
|
|
650
|
-
####
|
|
652
|
+
#### Sprachspeicher-Attribute
|
|
651
653
|
|
|
652
654
|
Bei Verwendung von localStorage oder sessionStorage:
|
|
653
655
|
|
|
654
|
-
| Feld |
|
|
655
|
-
| ------ |
|
|
656
|
-
| `type` | `'localStorage' | 'sessionStorage'` |
|
|
657
|
-
| `name` |
|
|
656
|
+
| Feld | Beschreibung | Typ |
|
|
657
|
+
| ------ | ---------------------------------------------- | ------------------------------------------------ |
|
|
658
|
+
| `type` | Speichertyp. | `'localStorage'` | <br/> `'sessionStorage'` |
|
|
659
|
+
| `name` | Speicher-Schlüsselname. Standard: `'INTLAYER_LOCALE'` | `string` |
|
|
658
660
|
|
|
659
661
|
#### Konfigurationsbeispiele
|
|
660
662
|
|
|
661
|
-
Hier sind einige gängige Konfigurationsbeispiele für die neue
|
|
663
|
+
Hier sind einige gängige Konfigurationsbeispiele für die neue Routing-Struktur von v7:
|
|
662
664
|
|
|
663
665
|
**Basiskonfiguration (Standard)**:
|
|
664
666
|
|
|
@@ -712,7 +714,7 @@ const config: IntlayerConfig = {
|
|
|
712
714
|
export default config;
|
|
713
715
|
```
|
|
714
716
|
|
|
715
|
-
**Suchparameter-Modus
|
|
717
|
+
**Suchparameter-Modus**:
|
|
716
718
|
|
|
717
719
|
```typescript
|
|
718
720
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -732,7 +734,7 @@ const config: IntlayerConfig = {
|
|
|
732
734
|
export default config;
|
|
733
735
|
```
|
|
734
736
|
|
|
735
|
-
**
|
|
737
|
+
**Modus ohne Präfix mit benutzerdefiniertem Speicher**:
|
|
736
738
|
|
|
737
739
|
```typescript
|
|
738
740
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
@@ -755,7 +757,7 @@ const config: IntlayerConfig = {
|
|
|
755
757
|
export default config;
|
|
756
758
|
```
|
|
757
759
|
|
|
758
|
-
**
|
|
760
|
+
**Benutzerdefiniertes URL-Rewriting mit dynamischen Routen**:
|
|
759
761
|
|
|
760
762
|
```typescript
|
|
761
763
|
// intlayer.config.ts
|
|
@@ -767,7 +769,7 @@ const config: IntlayerConfig = {
|
|
|
767
769
|
defaultLocale: "en",
|
|
768
770
|
},
|
|
769
771
|
routing: {
|
|
770
|
-
mode: "prefix-no-default", // Fallback für
|
|
772
|
+
mode: "prefix-no-default", // Fallback für nicht umgeschriebene Pfade
|
|
771
773
|
storage: "cookie",
|
|
772
774
|
rewrite: nextjsRewrite({
|
|
773
775
|
"/about": {
|
|
@@ -791,132 +793,166 @@ export default config;
|
|
|
791
793
|
|
|
792
794
|
---
|
|
793
795
|
|
|
794
|
-
###
|
|
796
|
+
### Inhaltskonfiguration
|
|
795
797
|
|
|
796
|
-
Einstellungen
|
|
798
|
+
Einstellungen für die Inhaltsbehandlung in der Anwendung, einschließlich Verzeichnisnamen, Dateierweiterungen und abgeleiteter Konfigurationen.
|
|
797
799
|
|
|
798
|
-
| Feld | Typ |
|
|
799
|
-
| ---------------- | ---------- |
|
|
800
|
-
| `watch` |
|
|
801
|
-
| `fileExtensions` |
|
|
802
|
-
| `contentDir` |
|
|
803
|
-
| `codeDir` |
|
|
804
|
-
| `excludedPath` |
|
|
805
|
-
| `formatCommand` |
|
|
800
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
801
|
+
| ---------------- | ---------------------------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
802
|
+
| `watch` | Gibt an, ob Intlayer auf Änderungen in Inhaltsdeklarationsdateien achten soll, um Wörterbücher neu zu erstellen. | `boolean` | `true` | | |
|
|
803
|
+
| `fileExtensions` | Dateierweiterungen, die beim Kompilieren von Wörterbüchern gescannt werden sollen. | `string[]` | `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']` | `['.data.ts', '.data.js', '.data.json']` | Die Anpassung kann helfen, Konflikte zu vermeiden. |
|
|
804
|
+
| `contentDir` | Der Verzeichnispfad, in dem Inhaltsdefinitionsdateien (`.content.*`) gespeichert sind. | `string[]` | `['.']` | `['src', '../../ui-library', require.resolve("@my-package/content")]` | Wird verwendet, um nach Inhaltsdateien zu suchen und Wörterbücher neu zu erstellen. |
|
|
805
|
+
| `codeDir` | Der Verzeichnispfad, in dem der Code gespeichert ist, relativ zum Basisverzeichnis. | `string[]` | `['.']` | `['src', '../../ui-library']` | • Wird verwendet, um nach Codedateien für die Transformation (Pruning, Optimierung) zu suchen.<br/>• Die Trennung von `contentDir` kann die Leistung verbessern. |
|
|
806
|
+
| `excludedPath` | Verzeichnisse, die vom Scannen nach Inhalten ausgeschlossen werden sollen. | `string[]` | `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']` | | Wird noch nicht verwendet; für zukünftige Implementierung vorgesehen. |
|
|
807
|
+
| `formatCommand` | Befehl zum Formatieren von Inhaltsdateien, wenn Intlayer sie lokal schreibt. | `string` | `undefined` | `'npx prettier --write "{{file}}" --log-level silent'` (Prettier), `'npx biome format "{{file}}" --write --log-level none'` (Biome), `'npx eslint --fix "{{file}}" --quiet'` (ESLint) | • `{{file}}` wird durch den Dateipfad ersetzt.<br/>• Wenn nicht definiert, erkennt Intlayer dies automatisch (testet Prettier, Biome, ESLint). |
|
|
806
808
|
|
|
807
809
|
---
|
|
808
810
|
|
|
809
|
-
###
|
|
810
|
-
|
|
811
|
-
Einstellungen, die den Betrieb von Wörterbüchern steuern, einschließlich des Verhaltens beim automatischen Ausfüllen und der Inhaltsgenerierung.
|
|
812
|
-
|
|
813
|
-
Diese Wörterbuchkonfiguration hat zwei Hauptzwecke:
|
|
811
|
+
### Wörterbuchkonfiguration
|
|
814
812
|
|
|
815
|
-
|
|
816
|
-
2. **Fallback-Verhalten**: Bereitstellung von Fallback-Werten, wenn bestimmte Felder nicht definiert sind, sodass Sie das Verhalten von Wörterbuchoperationen global definieren können.
|
|
813
|
+
Einstellungen, die Wörterbuchoperationen steuern, einschließlich automatischem Ausfüllverhalten und Inhaltsgenerierung.
|
|
817
814
|
|
|
818
|
-
|
|
815
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
816
|
+
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
817
|
+
| `fill` | Steuert, wie die Ausgabedateien für das automatische Ausfüllen (KI-Übersetzung) generiert werden. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `true` | `{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }` | • `true`: Standardpfad (gleiche Datei wie Quelle).<br/>• `false`: Deaktivieren.<br/>• String-/Funktionsmuster erzeugt Dateien pro Sprache.<br/>• Objekt pro Sprache: Jede Sprache entspricht ihrem eigenen Muster; `false` ignoriert diese Sprache.<br/>• Das Einschließen von `{{locale}}` aktiviert die Pro-Sprache-Generierung.<br/>• `fill` auf Wörterbuchebene hat immer Vorrang vor dieser globalen Einstellung. |
|
|
818
|
+
| `description` | Hilft dem Editor und dem CMS, den Zweck des Wörterbuchs zu verstehen. Wird auch als Kontext für die KI-gestützte Übersetzungsgenerierung verwendet. | `string` | `undefined` | `'Benutzerprofil-Abschnitt'` | |
|
|
819
|
+
| `locale` | Transformiert das Wörterbuch in ein Pro-Sprache-Format. Jedes deklarierte Feld wird zu einem Übersetzungsknoten. Wenn nicht vorhanden, wird das Wörterbuch als mehrsprachig behandelt. | `LocalesValues` | `undefined` | `'en'` | Verwenden Sie dies, wenn das Wörterbuch spezifisch für eine einzelne Sprache ist, anstatt Übersetzungen für mehrere zu enthalten. |
|
|
820
|
+
| `contentAutoTransformation` | Transformiert Inhaltsstrings automatisch in typisierte Knoten (Markdown, HTML oder Insertion). | `boolean` | <br/> `{ markdown?: boolean; html?: boolean; insertion?: boolean }` | `false` | `true` | • Markdown : `### Title` → `md('### Title')`.<br/>• HTML : `<div>Title</div>` → `html('<div>Title</div>')`.<br/>• Insertion : `Hallo {{name}}` → `insert('Hallo {{name}}')`. |
|
|
821
|
+
| `location` | Gibt an, wo Wörterbuchdateien gespeichert werden und wie sie mit dem CMS synchronisiert werden. | `'local'` | <br/> `'remote'` | <br/> `'hybrid'` | <br/> `'plugin'` | <br/> `string` | `'local'` | `'hybrid'` | • `'local'`: Nur lokal verwaltet.<br/>• `'remote'`: Nur remote verwaltet (CMS).<br/>• `'hybrid'`: Sowohl lokal als auch remote verwaltet.<br/>• `'plugin'` oder benutzerdefinierter String: Von einem Plugin oder einer benutzerdefinierten Quelle verwaltet. |
|
|
822
|
+
| `importMode` | Steuert, wie Wörterbücher importiert werden. | `'static'` | <br/> `'dynamic'` | <br/> `'fetch'` | `'static'` | `'dynamic'` | • `'static'`: Statisch importiert.<br/>• `'dynamic'`: Dynamisch mittels Suspense importiert.<br/>• `'fetch'`: Über Live Sync API abgerufen; Fallback auf `'dynamic'`, falls fehlgeschlagen.<br/>• Erfordert `@intlayer/babel` und `@intlayer/swc` Plugins.<br/>• Schlüssel müssen statisch deklariert sein.<br/>• Wird ignoriert, wenn `optimize` deaktiviert ist.<br/>• Beeinflusst nicht `getIntlayer`, `getDictionary`, etc. |
|
|
823
|
+
| `priority` | Priorität des Wörterbuchs. Höhere Werte gewinnen beim Lösen von Konflikten zwischen Wörterbüchern. | `number` | `undefined` | `1` | |
|
|
824
|
+
| `live` | Veraltet — stattdessen `importMode: 'fetch'` verwenden. Gibt an, ob Wörterbuchinhalte dynamisch über die Live Sync API abgerufen werden sollen. | `boolean` | `undefined` | | In v8.0.0 in `importMode: 'fetch'` umbenannt. |
|
|
825
|
+
| `schema` | Wird automatisch von Intlayer für die JSON-Schema-Validierung generiert. | `'https://intlayer.org/schema.json'` | automatisch generiert | | Nicht manuell bearbeiten. |
|
|
826
|
+
| `title` | Hilft bei der Identifizierung des Wörterbuchs im Editor und CMS. | `string` | `undefined` | `'Benutzerprofil'` | |
|
|
827
|
+
| `tags` | Kategorisiert Wörterbücher und bietet Kontext oder Anweisungen für den Editor und die KI. | `string[]` | `undefined` | `['benutzer', 'profil']` | |
|
|
828
|
+
| `version` | Version des entfernten Wörterbuchs; hilft bei der Verfolgung der aktuell verwendeten Version. | `string` | `undefined` | `'1.0.0'` | • Verwaltbar im CMS.<br/>• Nicht lokal bearbeiten. |
|
|
819
829
|
|
|
820
|
-
|
|
821
|
-
| --------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
822
|
-
| `fill` | `boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>>` | Steuert, wie die Ausgabedateien für das automatische Ausfüllen (KI-Übersetzung) generiert werden. Standard: `true` | Siehe Beispiel unten | `true`: Standardpfad (gleiche Datei wie die Quelle). `false`: Deaktiviert. String-/Funktions-Templates generieren Dateien pro Locale. Pro-Locale-Objekt: Jedes Locale wird einem eigenen Muster zugeordnet; `false` überspringt dieses Locale. Die Einbeziehung von `{{locale}}` löst die Generierung pro Locale aus. Das `fill` auf Wörterbuchebene hat immer Vorrang vor dieser globalen Konfiguration. |
|
|
823
|
-
| `importMode` | `'static' | 'dynamic' | 'fetch'` | Steuert, wie Wörterbücher importiert werden. Standard: `'static'` | `'dynamic'` | `'static'`: Statisch importiert. `'dynamic'`: Dynamisch über Suspense importiert. `'fetch'`: Dynamisch über die Live Sync API abgerufen. Beeinflusst nicht `getIntlayer`, `getDictionary`, `useDictionary` usw. |
|
|
824
|
-
| `location` | `'local' | 'remote' | 'hybrid' | string` | Wo die Wörterbücher gespeichert werden. Standard: `'local'` | `'remote'` | `'local'`: Dateisystem. `'remote'`: Intlayer CMS. `'hybrid'`: Beides. |
|
|
825
|
-
| `contentAutoTransformation` | `boolean` | Ob Inhaltsdateien automatisch transformiert werden sollen (z. B. von Markdown zu HTML). Standard: `false` | `true` | Nützlich für die Verarbeitung von Markdown-Feldern über @intlayer/markdown. |
|
|
826
|
-
|
|
827
|
-
**Beispiel für `fill`**:
|
|
830
|
+
**`fill` Beispiel**:
|
|
828
831
|
|
|
829
832
|
```ts
|
|
830
833
|
dictionary: {
|
|
831
834
|
fill: {
|
|
832
|
-
en:
|
|
835
|
+
en: "/locales/en/{{key}}.content.json",
|
|
833
836
|
fr: ({ key }) => `/locales/fr/${key}.content.json`,
|
|
834
837
|
es: false,
|
|
835
|
-
}
|
|
836
|
-
}
|
|
838
|
+
},
|
|
839
|
+
};
|
|
837
840
|
```
|
|
838
841
|
|
|
839
842
|
---
|
|
840
843
|
|
|
841
|
-
###
|
|
844
|
+
### Logger-Konfiguration
|
|
842
845
|
|
|
843
|
-
|
|
846
|
+
Einstellungen zur Anpassung der Protokollausgabe (Logs) von Intlayer.
|
|
844
847
|
|
|
845
|
-
| Feld
|
|
846
|
-
|
|
|
847
|
-
| `
|
|
848
|
-
| `
|
|
849
|
-
| `apiKey` | `string` | API-Key für den gewählten Anbieter. | `process.env.OPENAI_API_KEY` | |
|
|
850
|
-
| `applicationContext` | `string` | Zusätzlicher Kontext über Ihre App zur Verbesserung der Genauigkeit der KI-Übersetzung. | `'Lernplattform für Kinder.'` | |
|
|
851
|
-
| `baseURL` | `string` | Optionale Basis-URL für API-Aufrufe. | | Nützlich, wenn Sie einen Proxy oder ein lokales KI-Deployment verwenden. |
|
|
852
|
-
| `dataSerialization` | `'json' | 'toon'` | Definiert, wie Daten an die KI gesendet werden. Standard: `'json'` | `'json'` | `'json'`: Robuster und präziser. `'toon'`: Verbraucht weniger Token, kann aber weniger stabil sein. |
|
|
848
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
849
|
+
| -------- | --------------------------------------- | -------------------------------------------------------------- | ---------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
850
|
+
| `mode` | Steuert den Modus des Loggers. | `'default'` | <br/> `'verbose'` | <br/> `'disabled'` | `'default'` | `'verbose'` | • `'verbose'`: Protokolliert mehr Informationen für das Debugging.<br/>• `'disabled'`: Deaktiviert den Logger vollständig. |
|
|
851
|
+
| `prefix` | Das Präfix für Protokollnachrichten. | `string` | `'[intlayer] '` | `'[mein präfix] '` | |
|
|
853
852
|
|
|
854
853
|
---
|
|
855
854
|
|
|
856
|
-
### Konfiguration
|
|
855
|
+
### KI-Konfiguration
|
|
856
|
+
|
|
857
|
+
Einstellungen, die die KI-Funktionen von Intlayer steuern, einschließlich Anbieter, Modell und API-Schlüssel.
|
|
858
|
+
|
|
859
|
+
Diese Konfiguration ist optional, wenn Sie im [Intlayer Dashboard](https://app.intlayer.org/project) mit einem Zugangsschlüssel registriert sind. Intlayer verwaltet automatisch die effizienteste und kostengünstigste KI-Lösung für Ihre Bedürfnisse. Die Verwendung der Standardoptionen gewährleistet eine bessere langfristige Wartbarkeit, da Intlayer kontinuierlich aktualisiert wird, um die relevantesten Modelle zu verwenden.
|
|
860
|
+
|
|
861
|
+
Wenn Sie lieber Ihren eigenen API-Schlüssel oder ein bestimmtes Modell verwenden möchten, können Sie Ihre benutzerdefinierte KI-Konfiguration definieren.
|
|
862
|
+
Diese KI-Konfiguration wird global in Ihrer Intlayer-Umgebung verwendet. Die CLI-Befehle verwenden diese Einstellungen standardmäßig für Befehle wie `fill`, ebenso wie das SDK, der visuelle Editor und das CMS. Sie können diese Standardwerte für spezifische Anwendungsfälle über Befehlsparameter überschreiben.
|
|
863
|
+
|
|
864
|
+
Intlayer unterstützt mehrere KI-Anbieter für maximale Flexibilität. Derzeit unterstützte Anbieter sind:
|
|
865
|
+
|
|
866
|
+
- **OpenAI** (Standard)
|
|
867
|
+
- **Anthropic Claude**
|
|
868
|
+
- **Mistral AI**
|
|
869
|
+
- **DeepSeek**
|
|
870
|
+
- **Google Gemini**
|
|
871
|
+
- **Google AI Studio**
|
|
872
|
+
- **Google Vertex**
|
|
873
|
+
- **Meta Llama**
|
|
874
|
+
- **Ollama**
|
|
875
|
+
- **OpenRouter**
|
|
876
|
+
- **Alibaba Cloud**
|
|
877
|
+
- **Fireworks**
|
|
878
|
+
- **Hugging Face**
|
|
879
|
+
- **Groq**
|
|
880
|
+
- **Amazon Bedrock**
|
|
881
|
+
- **Together.ai**
|
|
882
|
+
|
|
883
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
884
|
+
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
885
|
+
| `provider` | Der für Intlayer KI-Funktionen zu verwendende Anbieter. | `'openai'` | <br/> `'anthropic'` | <br/> `'mistral'` | <br/> `'deepseek'` | <br/> `'gemini'` | <br/> `'ollama'` | <br/> `'openrouter'` | <br/> `'alibaba'` | <br/> `'fireworks'` | <br/> `'groq'` | <br/> `'huggingface'` | <br/> `'bedrock'` | <br/> `'googleaistudio'` | <br/> `'googlevertex'` | <br/> `'togetherai'` | `undefined` | `'anthropic'` | Verschiedene Anbieter erfordern unterschiedliche API-Schlüssel und haben unterschiedliche Preismodelle. |
|
|
886
|
+
| `model` | Das für die KI-Funktionen zu verwendende Modell. | `string` | Keines | `'gpt-4o-2024-11-20'` | Das spezifische Modell variiert je nach Anbieter. |
|
|
887
|
+
| `temperature` | Steuert den Zufallsfaktor der KI-Antworten. | `number` | Keines | `0.1` | Höhere Temperatur = kreativer und weniger vorhersehbar. |
|
|
888
|
+
| `apiKey` | Ihr API-Schlüssel für den ausgewählten Anbieter. | `string` | Keines | `process.env.OPENAI_API_KEY` | Geheim halten; in Umgebungsvariablen speichern. |
|
|
889
|
+
| `applicationContext` | Zusätzlicher Kontext über Ihre Anwendung, um der KI zu helfen, genauere Übersetzungen zu generieren (Domain, Zielgruppe, Tonfall, Terminologie). | `string` | Keines | `'Mein Anwendungskontext'` | Kann verwendet werden, um Regeln hinzuzufügen (z. B.: `"URLs dürfen nicht verändert werden"`). |
|
|
890
|
+
| `baseURL` | Die Basis-URL für die KI-API. | `string` | Keines | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Kann auf einen lokalen oder benutzerdefinierten KI-API-Endpunkt zeigen. |
|
|
891
|
+
| `dataSerialization` | Datenserialisierungsformat für die KI-Funktionen. | `'json'` | <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: Standard, zuverlässig; verbraucht mehr Tokens.<br/>• `'toon'`: Weniger Tokens, weniger konsistent.<br/>• Zusätzliche Parameter werden an das Modell als Kontext übergeben (Abstraktionsaufwand etc.). |
|
|
857
892
|
|
|
858
|
-
|
|
893
|
+
---
|
|
859
894
|
|
|
860
|
-
|
|
861
|
-
| -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------ | -------- | ------- |
|
|
862
|
-
| `mode` | `'auto' | 'manual'` | Gibt an, ob Intlayer während der Pre-Build-Schritte der App automatisch ausgeführt werden soll. Standard: `'auto'` | | |
|
|
863
|
-
| `optimize` | `boolean` | Gibt an, ob kompilierte Wörterbücher für die Laufzeit optimiert werden sollen. Standard: `true` in Produktion | | |
|
|
864
|
-
| `outputFormat` | `('cjs' | 'esm')[]` | Ausgabeformat für die generierten Wörterbuchdateien. Standard: `['cjs', 'esm']` | | |
|
|
865
|
-
| `checkTypes` | `boolean` | Gibt an, ob Intlayer die Typen in den generierten Dateien prüfen soll. Standard: `false` | | |
|
|
895
|
+
### Build-Konfiguration
|
|
866
896
|
|
|
867
|
-
|
|
897
|
+
Einstellungen, die steuern, wie Intlayer die Internationalisierung Ihrer Anwendung optimiert und erstellt.
|
|
868
898
|
|
|
869
|
-
|
|
899
|
+
Die Build-Optionen gelten für die Plugins `@intlayer/babel` und `@intlayer/swc`.
|
|
870
900
|
|
|
871
|
-
|
|
901
|
+
> Im Entwicklungsmodus verwendet Intlayer statische Importe für Wörterbücher, um die Entwicklung zu vereinfachen.
|
|
902
|
+
|
|
903
|
+
> Bei der Optimierung ersetzt Intlayer Wörterbuch-Aufrufe, um das Chunking zu optimieren, sodass das finale Bundle nur die tatsächlich verwendeten Wörterbücher importiert.
|
|
872
904
|
|
|
873
|
-
| Feld
|
|
874
|
-
|
|
|
875
|
-
| `
|
|
876
|
-
| `
|
|
877
|
-
| `
|
|
878
|
-
| `
|
|
879
|
-
| `
|
|
880
|
-
| `configDir` | `string` | Verzeichnis der kompilierten Konfigurationsdateien. | `'.intlayer/config'` |
|
|
881
|
-
| `cacheDir` | `string` | Verzeichnis der Cache-Dateien. | `'.intlayer/cache'` |
|
|
905
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
906
|
+
| ----------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
907
|
+
| `mode` | Steuert den Build-Modus. | `'auto'` | <br/> `'manual'` | `'auto'` | `'manual'` | • `'auto'`: Build wird automatisch während des App-Builds ausgelöst.<br/>• `'manual'`: Wird nur ausgeführt, wenn der Build-Befehl explizit aufgerufen wird.<br/>• Kann verwendet werden, um Wörterbuch-Builds zu deaktivieren (z. B. um die Ausführung in Node.js-Umgebungen zu vermeiden). |
|
|
908
|
+
| `optimize` | Steuert, ob der Build optimiert werden soll. | `boolean` | `undefined` | `process.env.NODE_ENV === 'production'` | • Wenn nicht definiert, wird die Optimierung beim Build des Frameworks (Vite/Next.js) ausgelöst.<br/>• `true` erzwingt die Optimierung auch im Dev-Modus.<br/>• `false` deaktiviert sie.<br/>• Wenn aktiv, ersetzt es Wörterbuch-Aufrufe zur Chunking-Optimierung.<br/>• Erfordert `@intlayer/babel` und `@intlayer/swc` Plugins. |
|
|
909
|
+
| `checkTypes` | Gibt an, ob der Build TypeScript-Typen prüfen und Fehler protokollieren soll. | `boolean` | `false` | | Kann den Build-Prozess verlangsamen. |
|
|
910
|
+
| `outputFormat` | Steuert das Ausgabeformat der Wörterbücher. | `('esm' | 'cjs')[]` | `['esm', 'cjs']` | `['cjs']` | |
|
|
911
|
+
| `traversePattern` | Muster, die definieren, welche Dateien während der Optimierung durchlaufen werden sollen. | `string[]` | `['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']` | `['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']` | • Begrenzen Sie die Optimierung auf relevante Dateien, um die Build-Leistung zu verbessern.<br/>• Wird ignoriert, wenn `optimize` deaktiviert ist.<br/>• Verwendet Glob-Muster. |
|
|
882
912
|
|
|
883
913
|
---
|
|
884
914
|
|
|
885
|
-
###
|
|
915
|
+
### Systemkonfiguration
|
|
886
916
|
|
|
887
|
-
Einstellungen für
|
|
917
|
+
Diese Einstellungen sind für fortgeschrittene Anwendungsfälle und die interne Konfiguration von Intlayer gedacht.
|
|
888
918
|
|
|
889
|
-
| Feld
|
|
890
|
-
|
|
|
891
|
-
| `
|
|
892
|
-
| `
|
|
893
|
-
| `
|
|
894
|
-
| `
|
|
895
|
-
| `
|
|
919
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
920
|
+
| ------------------------- | ---------------------------------------------------- | -------- | --------------------------------- | -------- | ------- |
|
|
921
|
+
| `dictionariesDir` | Verzeichnis für kompilierte Wörterbücher. | `string` | `'.intlayer/dictionary'` | | |
|
|
922
|
+
| `moduleAugmentationDir` | Verzeichnis für die TypeScript-Modul-Augmentierung. | `string` | `'.intlayer/types'` | | |
|
|
923
|
+
| `unmergedDictionariesDir` | Verzeichnis für nicht zusammengeführte Wörterbücher. | `string` | `'.intlayer/unmerged_dictionary'` | | |
|
|
924
|
+
| `typesDir` | Verzeichnis für generierte Typen. | `string` | `'.intlayer/types'` | | |
|
|
925
|
+
| `mainDir` | Verzeichnis für die Intlayer-Hauptdatei. | `string` | `'.intlayer/main'` | | |
|
|
926
|
+
| `configDir` | Verzeichnis für kompilierte Konfigurationsdateien. | `string` | `'.intlayer/config'` | | |
|
|
927
|
+
| `cacheDir` | Verzeichnis für Cache-Dateien. | `string` | `'.intlayer/cache'` | | |
|
|
896
928
|
|
|
897
929
|
---
|
|
898
930
|
|
|
899
|
-
###
|
|
931
|
+
### Compiler-Konfiguration
|
|
900
932
|
|
|
901
|
-
Einstellungen
|
|
933
|
+
Einstellungen, die den Intlayer-Compiler steuern, der Wörterbücher direkt aus Ihren Komponenten extrahiert.
|
|
902
934
|
|
|
903
|
-
| Feld
|
|
904
|
-
|
|
|
905
|
-
| `
|
|
906
|
-
| `
|
|
935
|
+
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|
|
936
|
+
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
937
|
+
| `enabled` | Gibt an, ob der Compiler für die Extraktion von Wörterbüchern aktiviert sein soll. | `boolean` | <br/> `'build-only'` | `true` | `'build-only'` | `'build-only'` überspringt den Compiler während der Entwicklung, um Builds zu beschleunigen; wird nur bei Build-Befehlen ausgeführt. |
|
|
938
|
+
| `dictionaryKeyPrefix` | Präfix für extrahierte Wörterbuch-Schlüssel. | `string` | `''` | `'mein-präfix-'` | Wird dem generierten Schlüssel (basierend auf dem Dateinamen) vorangestellt, um Konflikte zu vermeiden. |
|
|
939
|
+
| `saveComponents` | Gibt an, ob Komponenten nach der Transformation gespeichert werden sollen. | `boolean` | `false` | | • Wenn `true`, werden Originaldateien durch transformierte Versionen ersetzt.<br/>• Der Compiler kann nach einem Durchlauf entfernt werden. |
|
|
940
|
+
| `output` | Definiert den Pfad für Ausgabedateien. Ersetzt `outputDir`. Unterstützt Template-Variablen: `{{fileName}}`, <br/> `{{key}}`, <br/> `{{locale}}`, <br/> `{{extension}}`, <br/> `{{componentFileName}}`, <br/> `{{componentExtension}}`, <br/> `{{format}}`, <br/> `{{componentFormat}}`, <br/> `{{componentDirPath}}`. | `boolean` | <br/> `FilePathPattern` | <br/> `Partial<Record<Locale, boolean | FilePathPattern>>` | `undefined` | `'./{{fileName}}{{extension}}'` <br/> `'/locales/{{locale}}/{{key}}.json'` <br/> `{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }` | • `./` Pfade werden relativ zum Komponentenverzeichnis aufgelöst.<br/>• `/` Pfade relativ zum Stamm.<br/>• `{{locale}}` löst die Pro-Sprache-Generierung aus.<br/>• Unterstützt objektweise Notation pro Sprache. |
|
|
941
|
+
| `noMetadata` | Wenn `true`, lässt der Compiler die Metadaten des Wörterbuchs (Schlüssel, Inhalts-Wrapper) in der Ausgabe weg. | `boolean` | `false` | `false` → `{"key":"mein-schlüssel","content":{"key":"wert"}}` <br/> `true` → `{"key":"wert"}` | • Nützlich für i18next oder ICU MessageFormat JSON-Ausgaben.<br/>• Funktioniert gut mit dem `loadJSON` Plugin. |
|
|
942
|
+
| `dictionaryKeyPrefix` | Wörterbuch-Schlüsselpräfix | `string` | `''` | | Fügen Sie ein optionales Präfix für die extrahierten Wörterbuchschlüssel hinzu |
|
|
907
943
|
|
|
908
944
|
---
|
|
909
945
|
|
|
910
|
-
### Benutzerdefinierte
|
|
946
|
+
### Benutzerdefinierte Schemata (Custom Schemas)
|
|
911
947
|
|
|
912
|
-
| Feld | Typ |
|
|
913
|
-
| --------- |
|
|
914
|
-
| `schemas` |
|
|
948
|
+
| Feld | Beschreibung | Typ |
|
|
949
|
+
| --------- | ---------------------------------------------------------------------------------- | --------------------------- |
|
|
950
|
+
| `schemas` | Erlaubt die Definition von Zod-Schemata zur Validierung der Struktur Ihrer Wörterbücher. | `Record<string, ZodSchema>` |
|
|
915
951
|
|
|
916
952
|
---
|
|
917
953
|
|
|
918
954
|
### Plugins
|
|
919
955
|
|
|
920
|
-
| Feld | Typ |
|
|
921
|
-
| --------- |
|
|
922
|
-
| `plugins` |
|
|
956
|
+
| Feld | Beschreibung | Typ |
|
|
957
|
+
| --------- | -------------------------------------- | ------------------ |
|
|
958
|
+
| `plugins` | Liste der zu aktivierenden Intlayer-Plugins. | `IntlayerPlugin[]` |
|