@intlayer/docs 8.4.5 → 8.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/dist/cjs/generated/docs.entry.cjs +20 -0
  12. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  13. package/dist/esm/generated/docs.entry.mjs +20 -0
  14. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  15. package/dist/types/generated/docs.entry.d.ts +1 -0
  16. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  17. package/docs/ar/intlayer_with_storybook.md +521 -0
  18. package/docs/bn/intlayer_with_hono.md +428 -0
  19. package/docs/de/intlayer_with_storybook.md +521 -0
  20. package/docs/en/configuration.md +160 -508
  21. package/docs/en/intlayer_with_storybook.md +521 -0
  22. package/docs/en-GB/intlayer_with_storybook.md +521 -0
  23. package/docs/es/configuration.md +387 -754
  24. package/docs/es/intlayer_with_storybook.md +521 -0
  25. package/docs/fr/configuration.md +384 -757
  26. package/docs/fr/intlayer_with_storybook.md +521 -0
  27. package/docs/hi/intlayer_with_storybook.md +521 -0
  28. package/docs/id/intlayer_with_storybook.md +521 -0
  29. package/docs/it/intlayer_with_storybook.md +521 -0
  30. package/docs/ja/intlayer_with_storybook.md +521 -0
  31. package/docs/ko/intlayer_with_storybook.md +521 -0
  32. package/docs/pl/intlayer_with_storybook.md +521 -0
  33. package/docs/pt/intlayer_with_storybook.md +521 -0
  34. package/docs/ru/intlayer_with_storybook.md +521 -0
  35. package/docs/tr/intlayer_with_storybook.md +521 -0
  36. package/docs/uk/intlayer_with_storybook.md +521 -0
  37. package/docs/ur/intlayer_with_hono.md +428 -0
  38. package/docs/vi/intlayer_with_storybook.md +521 -0
  39. package/docs/zh/intlayer_with_storybook.md +521 -0
  40. package/package.json +6 -6
  41. package/src/generated/docs.entry.ts +20 -0
  42. package/docs/ar/configuration.md +0 -1124
  43. package/docs/de/configuration.md +0 -1296
  44. package/docs/en-GB/configuration.md +0 -1123
  45. package/docs/hi/configuration.md +0 -1118
  46. package/docs/id/configuration.md +0 -1235
  47. package/docs/it/configuration.md +0 -1301
  48. package/docs/ja/configuration.md +0 -1121
  49. package/docs/ko/configuration.md +0 -1121
  50. package/docs/pl/configuration.md +0 -1226
  51. package/docs/pt/configuration.md +0 -1293
  52. package/docs/ru/configuration.md +0 -1112
  53. package/docs/tr/configuration.md +0 -1114
  54. package/docs/uk/configuration.md +0 -1241
  55. package/docs/vi/configuration.md +0 -1263
  56. package/docs/zh/configuration.md +0 -1115
@@ -1,1296 +0,0 @@
1
- ---
2
- createdAt: 2024-08-13
3
- updatedAt: 2026-03-12
4
- title: Konfiguration
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
- keywords:
7
- - Konfiguration
8
- - Einstellungen
9
- - Anpassung
10
- - Intlayer
11
- - Optionen
12
- slugs:
13
- - doc
14
- - concept
15
- - configuration
16
- history - version: 8.3.0
17
- date: 2026-03-11
18
- changes: Verschiebe 'baseDir' von 'content' nach 'system' Konfiguration
19
- - version: 8.2.0
20
- date: 2026-03-09
21
- changes: Compiler-Optionen aktualisieren, Unterstützung für 'output' und 'noMetadata' hinzufügen
22
- - version: 8.1.7
23
- date: 2026-02-25
24
- changes: Compiler-Optionen aktualisieren
25
- - version: 8.1.5
26
- date: 2026-02-23
27
- changes: Compiler-Option 'build-only' und Wörterbuch-Präfix hinzugefügt
28
- - version: 8.0.6
29
- date: 2026-02-12
30
- changes: Unterstützung für Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face und Together.ai Provider hinzufügen
31
- - version: 8.0.5
32
- date: 2026-02-06
33
- changes: Hinzufügen von `dataSerialization` zur KI-Konfiguration
34
- - version: 8.0.0
35
- date: 2026-01-24
36
- changes: Importmodus `live` in `fetch` umbenannt, um den zugrunde liegenden Mechanismus besser zu beschreiben.
37
- - version: 8.0.0
38
- date: 2026-01-22
39
- changes: Build-Konfiguration für `importMode` in die Wörterbuch-Konfiguration verschoben.
40
- - version: 8.0.0
41
- date: 2026-01-22
42
- changes: Option `rewrite` zur Routing-Konfiguration hinzugefügt
43
- - version: 8.0.0
44
- date: 2026-01-18
45
- changes: Systemkonfiguration von der Inhaltskonfiguration trennen. Interne Pfade zur Eigenschaft `system` verschieben. `codeDir` hinzufügen, um Inhaltsdateien von der Codetransformation zu trennen.
46
- - version: 8.0.0
47
- date: 2026-01-18
48
- changes: Wörterbuchoptionen `location` und `schema` hinzugefügt
49
- - version: 7.5.1
50
- date: 2026-01-10
51
- changes: Unterstützung für JSON5- und JSONC-Dateiformate hinzugefügt
52
- - version: 7.5.0
53
- date: 2025-12-17
54
- changes: Hinzufügen der Option `buildMode`
55
- - version: 7.0.0
56
- date: 2025-10-25
57
- changes: Konfiguration für `dictionary` hinzugefügt
58
- - version: 7.0.0
59
- date: 2025-10-21
60
- changes: `middleware` durch `routing`-Konfiguration ersetzt
61
- - version: 7.0.0
62
- date: 2025-10-12
63
- changes: Option `formatCommand` hinzugefügt
64
- - version: 6.2.0
65
- date: 2025-10-12
66
- changes: Option `excludedPath` aktualisiert
67
- - version: 6.0.2
68
- date: 2025-09-23
69
- changes: Option `outputFormat` hinzugefügt
70
- - version: 6.0.0
71
- date: 2025-09-21
72
- changes: Feld `dictionaryOutput` und Feld `i18nextResourcesDir` entfernt
73
- - version: 6.0.0
74
- date: 2025-09-16
75
- changes: `live` Importmodus hinzugefügt
76
- - version: 6.0.0
77
- date: 2025-09-04
78
- changes: Ersetze das Feld `hotReload` durch `liveSync` und füge die Felder `liveSyncPort` und `liveSyncURL` hinzu
79
- - version: 5.6.1
80
- date: 2025-07-25
81
- changes: Ersetze `activateDynamicImport` durch die Option `importMode`
82
- - version: 5.6.0
83
- date: 2025-07-13
84
- changes: Ändere das Standard-`contentDir` von `['src']` zu `['.']`
85
- - version: 5.5.11
86
- date: 2025-06-29
87
- changes: Füge `docs`-Befehle hinzue `docs`-Befehle hinzu
88
- ---
89
-
90
- # Intlayer Konfigurationsdokumentation
91
-
92
- ## Überblick
93
-
94
- Intlayer-Konfigurationsdateien ermöglichen die Anpassung verschiedener Aspekte des Plugins, wie Internationalisierung, Middleware und Inhaltsverwaltung. Dieses Dokument bietet eine detaillierte Beschreibung jeder Eigenschaft in der Konfiguration.
95
-
96
- ---
97
-
98
- ## Inhaltsverzeichnis
99
-
100
- <TOC/>
101
-
102
- ---
103
-
104
- ## Unterstützte Konfigurationsdateiformate
105
-
106
- Intlayer akzeptiert JSON-, JS-, MJS- und TS-Konfigurationsdateiformate:
107
-
108
- - `intlayer.config.ts`
109
- - `intlayer.config.js`
110
- - `intlayer.config.json`
111
- - `intlayer.config.json5`
112
- - `intlayer.config.jsonc`
113
- - `intlayer.config.cjs`
114
- - `intlayer.config.mjs`
115
- - `.intlayerrc`
116
-
117
- ---
118
-
119
- ## Beispiel für eine Konfigurationsdatei
120
-
121
- ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
122
- import { Locales, type IntlayerConfig } from "intlayer";
123
- import { nextjsRewrite } from "intlayer/routing";
124
- import { z } from "zod";
125
-
126
- /**
127
- * Example Intlayer configuration file showing all available options.
128
- */
129
- const config: IntlayerConfig = {
130
- /**
131
- * Configuration for internationalization settings.
132
- */
133
- internationalization: {
134
- /**
135
- * List of supported locales in the application.
136
- * Default: [Locales.ENGLISH]
137
- */
138
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
139
-
140
- /**
141
- * List of required locales that must be defined in every dictionary.
142
- * If empty, all locales are required in `strict` mode.
143
- * Default: []
144
- */
145
- requiredLocales: [Locales.ENGLISH],
146
-
147
- /**
148
- * Strictness level for internationalized content.
149
- * - "strict": Errors if any declared locale is missing or undeclared.
150
- * - "inclusive": Warnings if a declared locale is missing.
151
- * - "loose": Accepts any existing locale.
152
- * Default: "inclusive"
153
- */
154
- strictMode: "inclusive",
155
-
156
- /**
157
- * Default locale used as a fallback if the requested locale is not found.
158
- * Default: Locales.ENGLISH
159
- */
160
- defaultLocale: Locales.ENGLISH,
161
- },
162
-
163
- /**
164
- * Settings that control dictionary operations and fallback behavior.
165
- */
166
- dictionary: {
167
- /**
168
- * Controls how dictionaries are imported.
169
- * - "static": Statically imported at build time.
170
- * - "dynamic": Dynamically imported using Suspense.
171
- * - "fetch": Fetched dynamically via the live sync API.
172
- * Default: "static"
173
- */
174
- importMode: "static",
175
-
176
- /**
177
- * Strategy for auto-filling missing translations using AI.
178
- * Can be a boolean or a path pattern to store filled content.
179
- * Default: true
180
- */
181
- fill: true,
182
-
183
- /**
184
- * Physical location of the dictionary files.
185
- * - "local": Stored in the local filesystem.
186
- * - "remote": Stored in the Intlayer CMS.
187
- * - "hybrid": Stored in the local filesystem and the Intlayer CMS.
188
- * - "plugin" (or any custom string): Provided by a plugin or a custom source.
189
- * Default: "local"
190
- */
191
- location: "local",
192
-
193
- /**
194
- * Whether to automatically transform content (e.g., Markdown to HTML).
195
- * Default: false
196
- */
197
- contentAutoTransformation: false,
198
- },
199
-
200
- /**
201
- * Routing and middleware configuration.
202
- */
203
- routing: {
204
- /**
205
- * Locale routing strategy.
206
- * - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
207
- * - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
208
- * - "no-prefix": No locale in the URL.
209
- * - "search-params": Use ?locale=...
210
- * Default: "prefix-no-default"
211
- */
212
- mode: "prefix-no-default",
213
-
214
- /**
215
- * Where to store the user's selected locale.
216
- * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
217
- * Default: ['cookie', 'header']
218
- */
219
- storage: ["cookie", "header"],
220
-
221
- /**
222
- * Base path for the application URLs.
223
- * Default: ""
224
- */
225
- basePath: "",
226
-
227
- /**
228
- * Custom URL rewriting rules for locale-specific paths.
229
- */
230
- rewrite: nextjsRewrite({
231
- "/[locale]/about": {
232
- en: "/[locale]/about",
233
- fr: "/[locale]/a-propos",
234
- },
235
- }),
236
- },
237
-
238
- /**
239
- * Settings for finding and processing content files.
240
- */
241
- content: {
242
- /**
243
- * File extensions to scan for dictionaries.
244
- * Default: ['.content.ts', '.content.js', '.content.json', etc.]
245
- */
246
- fileExtensions: [".content.ts", ".content.js", ".content.json"],
247
-
248
- /**
249
- * Directories where .content files are located.
250
- * Default: ["."]
251
- */
252
- contentDir: ["src"],
253
-
254
- /**
255
- * Directories where source code is located.
256
- * Used for build optimization and code transformation.
257
- * Default: ["."]
258
- */
259
- codeDir: ["src"],
260
-
261
- /**
262
- * Patterns to exclude from scanning.
263
- * Default: ['node_modules', '.intlayer', etc.]
264
- */
265
- excludedPath: ["node_modules"],
266
-
267
- /**
268
- * Whether to watch for changes and rebuild dictionaries in development.
269
- * Default: true in development
270
- */
271
- watch: true,
272
-
273
- /**
274
- * Command to format newly created / updated .content files.
275
- */
276
- formatCommand: 'npx prettier --write "{{file}}"',
277
- },
278
-
279
- /**
280
- * Visual Editor configuration.
281
- */
282
- editor: {
283
- /**
284
- * Whether the visual editor is enabled.
285
- * Default: false
286
- */
287
- enabled: true,
288
-
289
- /**
290
- * URL of your application for origin validation.
291
- * Default: ""
292
- */
293
- applicationURL: "http://localhost:3000",
294
-
295
- /**
296
- * Port for the local editor server.
297
- * Default: 8000
298
- */
299
- port: 8000,
300
-
301
- /**
302
- * Public URL for the editor.
303
- * Default: "http://localhost:8000"
304
- */
305
- editorURL: "http://localhost:8000",
306
-
307
- /**
308
- * Intlayer CMS URL.
309
- * Default: "https://app.intlayer.org"
310
- */
311
- cmsURL: "https://app.intlayer.org",
312
-
313
- /**
314
- * Backend API URL.
315
- * Default: "https://back.intlayer.org"
316
- */
317
- backendURL: "https://back.intlayer.org",
318
-
319
- /**
320
- * Whether to enable real-time content synchronization.
321
- * Default: false
322
- */
323
- liveSync: true,
324
- },
325
-
326
- /**
327
- * AI-powered translation and generation settings.
328
- */
329
- ai: {
330
- /**
331
- * AI provider to use.
332
- * Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
333
- * Default: 'openai'
334
- */
335
- provider: "openai",
336
-
337
- /**
338
- * Model to use from the selected provider.
339
- */
340
- model: "gpt-4o",
341
-
342
- /**
343
- * Provider API key.
344
- */
345
- apiKey: process.env.OPENAI_API_KEY,
346
-
347
- /**
348
- * Global context to guide the AI in generating translations.
349
- */
350
- applicationContext: "Dies ist eine App zur Reisebuchung.",
351
-
352
- /**
353
- * Base URL for the AI API.
354
- */
355
- baseURL: "http://localhost:3000",
356
-
357
- /**
358
- * Datenserialisierung
359
- *
360
- * Optionen:
361
- * - "json": Standard, zuverlässig; verbraucht mehr Token.
362
- * - "toon": Weniger Token, weniger konsistent als JSON.
363
- *
364
- * Standard: "json"
365
- */
366
- dataSerialization: "json",
367
- },
368
-
369
- /**
370
- * Build and optimization settings.
371
- */
372
- build: {
373
- /**
374
- * Build execution mode.
375
- * - "auto": Automatic build during app build.
376
- * - "manual": Requires explicit build command.
377
- * Default: "auto"
378
- */
379
- mode: "auto",
380
-
381
- /**
382
- * Whether to optimize the final bundle by pruning unused dictionaries.
383
- * Default: true in production
384
- */
385
- optimize: true,
386
-
387
- /**
388
- * Output format for generated dictionary files.
389
- * Default: ['cjs', 'esm']
390
- */
391
- outputFormat: ["cjs", "esm"],
392
-
393
- /**
394
- * Indicates if the build should check TypeScript types.
395
- * Default: false
396
- */
397
- checkTypes: false,
398
- },
399
-
400
- /**
401
- * Logger configuration.
402
- */
403
- log: {
404
- /**
405
- * Logging level.
406
- * - "default": Standard logging.
407
- * - "verbose": Detailed debug logging.
408
- * - "disabled": No logging.
409
- * Default: "default"
410
- */
411
- mode: "default",
412
-
413
- /**
414
- * Prefix for all log messages.
415
- * Default: "[intlayer]"
416
- */
417
- prefix: "[intlayer]",
418
- },
419
-
420
- /**
421
- * System configuration (Advanced use cases)
422
- */
423
- system: {
424
- /**
425
- * Directory for storing localization dictionaries.
426
- */
427
- dictionariesDir: ".intlayer/dictionary",
428
-
429
- /**
430
- * Directory for module augmentation.
431
- */
432
- moduleAugmentationDir: ".intlayer/types",
433
-
434
- /**
435
- * Directory for storing unmerged dictionaries.
436
- */
437
- unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
438
-
439
- /**
440
- * Directory for storing dictionary types.
441
- */
442
- typesDir: ".intlayer/types",
443
-
444
- /**
445
- * Directory where main application files are stored.
446
- */
447
- mainDir: ".intlayer/main",
448
-
449
- /**
450
- * Directory where the configuration files are stored.
451
- */
452
- configDir: ".intlayer/config",
453
-
454
- /**
455
- * Directory where the cache files are stored.
456
- */
457
- cacheDir: ".intlayer/cache",
458
- },
459
-
460
- /**
461
- * Compiler configuration (Advanced use cases)
462
- */
463
- compiler: {
464
- /**
465
- * Gibt an, ob der Compiler aktiviert werden soll.
466
- *
467
- * - false : Deaktiviert den Compiler.
468
- * - true : Aktiviert den Compiler.
469
- * - "build-only" : Überspringt den Compiler während der Entwicklung, um die Startzeiten zu beschleunigen.
470
- *
471
- * Standardwert : false
472
- */
473
- enabled: true,
474
-
475
- /**
476
- * Definiert den Pfad der Ausgabedateien. Ersetzt `outputDir`.
477
- *
478
- * - `./` Pfade werden relativ zum Verzeichnis der Komponente aufgelöst.
479
- * - `/` Pfade werden relativ zum Projektstamm (`baseDir`) aufgelöst.
480
- *
481
- * - Das Einbeziehen der Variable `{{locale}}` im Pfad löst die Generierung separater Wörterbücher pro Sprache aus.
482
- *
483
- * Beispiel:
484
- * ```ts
485
- * {
486
- * // Erstelle mehrsprachige .content.ts-Dateien in der Nähe der Komponente
487
- * output: ({ fileName, extension }) => `./${fileName}${extension}`,
488
- *
489
- * // output: './{{fileName}}{{extension}}', // Äquivalent mit einem Template-String
490
- * }
491
- * ```
492
- *
493
- * ```ts
494
- * {
495
- * // Erstelle zentralisierte JSON-Dateien pro Sprache im Projektstamm
496
- * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
497
- *
498
- * // output: '/locales/{{locale}}/{{key}}.content.json', // Äquivalent mit einem Template-String
499
- * }
500
- * ```
501
- *
502
- * Liste der Variablen:
503
- * - `fileName`: Der Name der Datei.
504
- * - `key`: Der Schlüssel des Inhalts.
505
- * - `locale`: Die Sprache des Inhalts.
506
- * - `extension`: Die Dateierweiterung.
507
- * - `componentFileName`: Der Dateiname der Komponente.
508
- * - `componentExtension`: Die Dateierweiterung der Komponente.
509
- * - `format`: Das Wörterbuchformat.
510
- * - `componentFormat`: Das Wörterbuchformat der Komponente.
511
- * - `componentDirPath`: Der Verzeichnispfad der Komponente.
512
- */
513
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
514
-
515
- /**
516
- * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
517
- * Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
518
- */
519
- saveComponents: false,
520
-
521
- /**
522
- * Nur Inhalt in die generierte Datei einfügen. Nützlich für i18next- oder ICU-MessageFormat-JSON-Ausgaben pro Sprache.
523
- */
524
- noMetadata: false,
525
-
526
- /**
527
- * Wörterbuch-Schlüssel-Präfix
528
- */
529
- dictionaryKeyPrefix: "", // Optionales Präfix für extrahierte Wörterbuchschlüssel hinzufügen
530
- },
531
-
532
- /**
533
- * Custom schemas to validate the dictionaries content.
534
- */
535
- schemas: {
536
- "my-schema": z.object({
537
- title: z.string(),
538
- }),
539
- },
540
-
541
- /**
542
- * Plugins configuration.
543
- */
544
- plugins: [],
545
- };
546
-
547
- export default config;
548
- ````
549
-
550
- ## Konfigurationsreferenz
551
-
552
- Die folgenden Abschnitte beschreiben die verschiedenen Konfigurationseinstellungen, die für Intlayer verfügbar sind.
553
-
554
- ---
555
-
556
- ### Internationalisierungs-Konfiguration
557
-
558
- Definiert Einstellungen im Zusammenhang mit der Internationalisierung, einschließlich verfügbarer Sprachen und der Standardsprache für die Anwendung.
559
-
560
- #### Eigenschaften
561
-
562
- - **locales**:
563
- - _Typ_: `string[]`
564
- - _Standard_: `['en']`
565
- - _Beschreibung_: Die Liste der unterstützten Sprachen in der Anwendung.
566
- - _Beispiel_: `['en', 'fr', 'es']`
567
-
568
- - **requiredLocales**:
569
- - _Typ_: `string[]`
570
- - _Standard_: `[]`
571
- - _Beschreibung_: Die Liste der erforderlichen Sprachen in der Anwendung.
572
- - _Beispiel_: `[]`
573
- - _Hinweis_: Wenn leer, sind alle Sprachen im `strict`-Modus erforderlich.
574
- - _Hinweis_: Stellen Sie sicher, dass die erforderlichen Sprachen auch im Feld `locales` definiert sind.
575
- - **strictMode**:
576
- - _Typ_: `string`
577
- - _Standard_: `inclusive`
578
- - _Beschreibung_: Gewährleistet eine strenge Umsetzung internationalisierter Inhalte mit TypeScript.
579
- - _Hinweis_: Wenn auf "strict" gesetzt, verlangt die Übersetzungsfunktion `t`, dass jede deklarierte Sprache definiert ist. Wenn eine Sprache fehlt oder nicht in Ihrer Konfiguration deklariert ist, wird ein Fehler ausgelöst.
580
- - _Hinweis_: Wenn auf "inclusive" gesetzt, verlangt die Übersetzungsfunktion `t`, dass jede deklarierte Sprache definiert ist. Wenn eine Sprache fehlt, wird eine Warnung ausgegeben. Es wird jedoch akzeptiert, wenn eine Sprache nicht in Ihrer Konfiguration deklariert, aber vorhanden ist.
581
- - _Hinweis_: Wenn auf "loose" gesetzt, akzeptiert die Übersetzungsfunktion `t` jede vorhandene Locale.
582
-
583
- - **defaultLocale**:
584
- - _Typ_: `string`
585
- - _Standard_: `'en'`
586
- - _Beschreibung_: Die Standard-Locale, die als Fallback verwendet wird, wenn die angeforderte Locale nicht gefunden wird.
587
- - _Beispiel_: `'en'`
588
- - _Hinweis_: Dies wird verwendet, um die Locale zu bestimmen, wenn keine in der URL, im Cookie oder im Header angegeben ist.
589
-
590
- ---
591
-
592
- ### Editor-Konfiguration
593
-
594
- Definiert Einstellungen im Zusammenhang mit dem integrierten Editor, einschließlich Server-Port und Aktivstatus.
595
-
596
- #### Eigenschaften
597
-
598
- - **applicationURL**:
599
- - _Typ_: `string`
600
- - _Standard_: `http://localhost:3000`
601
- - _Beschreibung_: Die URL der Anwendung. Wird verwendet, um den Ursprung des Editors aus Sicherheitsgründen einzuschränken.
602
- - _Beispiel_:
603
- - `'http://localhost:3000'`
604
- - `'https://example.com'`
605
- - `process.env.INTLAYER_EDITOR_URL`
606
- - _Hinweis_: Die URL der Anwendung. Wird verwendet, um die Herkunft des Editors aus Sicherheitsgründen einzuschränken. Wenn auf `'*'` gesetzt, ist der Editor von jeder Herkunft aus zugänglich.
607
-
608
- - **port**:
609
- - _Typ_: `number`
610
- - _Standard_: `8000`
611
- - _Beschreibung_: Der Port, der vom visuellen Editor-Server verwendet wird.
612
-
613
- - **editorURL**:
614
- - _Typ_: `string`
615
- - _Standard_: `'http://localhost:8000'`
616
- - _Beschreibung_: Die URL des Editor-Servers. Wird verwendet, um die Herkunft des Editors aus Sicherheitsgründen einzuschränken.
617
- - `'http://localhost:3000'`
618
- - `'https://example.com'`
619
- - `process.env.INTLAYER_EDITOR_URL`
620
- - _Hinweis_: Die URL des Editor-Servers, die von der Anwendung aus erreichbar sein soll. Wird verwendet, um die Ursprünge einzuschränken, die mit der Anwendung aus Sicherheitsgründen interagieren können. Wenn auf `'*'` gesetzt, ist der Editor von jedem Ursprung aus zugänglich. Sollte gesetzt werden, wenn der Port geändert wird oder wenn der Editor auf einer anderen Domain gehostet wird.
621
-
622
- - **cmsURL**:
623
- - _Typ_: `string`
624
- - _Standard_: `'https://intlayer.org'`
625
- - _Beschreibung_: Die URL des Intlayer CMS.
626
- - _Beispiel_: `'https://intlayer.org'`
627
- - _Hinweis_: Die URL des Intlayer CMS.
628
-
629
- - **backendURL**:
630
- - _Typ_: `string`
631
- - _Standard_: `https://back.intlayer.org`
632
- - _Beschreibung_: Die URL des Backend-Servers.
633
- - _Beispiel_: `http://localhost:4000`
634
-
635
- - **enabled**:
636
- - _Typ_: `boolean`
637
- - _Standard_: `true`
638
- - _Beschreibung_: Gibt an, ob die Anwendung mit dem visuellen Editor interagiert.
639
- - _Beispiel_: `process.env.NODE_ENV !== 'production'`
640
- - _Hinweis_: Wenn true, kann der Editor mit der Anwendung interagieren. Wenn false, kann der Editor nicht mit der Anwendung interagieren. In jedem Fall kann der Editor nur durch den visuellen Editor aktiviert werden. Das Deaktivieren des Editors für bestimmte Umgebungen ist eine Möglichkeit, die Sicherheit zu erhöhen.
641
-
642
- - **clientId**:
643
- - _Typ_: `string` | `undefined`
644
- - _Standard_: `undefined`
645
- - _Beschreibung_: clientId und clientSecret ermöglichen es den Intlayer-Paketen, sich mit dem Backend über die oAuth2-Authentifizierung zu authentifizieren. Ein Zugriffstoken wird verwendet, um den Benutzer zu authentifizieren, der mit dem Projekt verbunden ist. Um ein Zugriffstoken zu erhalten, gehen Sie zu https://app.intlayer.org/project und erstellen Sie ein Konto.
646
- - _Beispiel_: `true`
647
- - _Hinweis_: Wichtig: Die clientId und clientSecret sollten geheim gehalten und nicht öffentlich geteilt werden. Bitte stellen Sie sicher, dass sie an einem sicheren Ort, wie z.B. Umgebungsvariablen, aufbewahrt werden.
648
-
649
- - **clientSecret**:
650
- - _Typ_: `string` | `undefined`
651
- - _Standard_: `undefined`
652
- - _Beschreibung_: clientId und clientSecret ermöglichen es den Intlayer-Paketen, sich mit dem Backend über die oAuth2-Authentifizierung zu authentifizieren. Ein Zugriffstoken wird verwendet, um den Benutzer zu authentifizieren, der mit dem Projekt verbunden ist. Um ein Zugriffstoken zu erhalten, gehen Sie zu https://app.intlayer.org/project und erstellen Sie ein Konto.
653
- - _Beispiel_: `true`
654
- - _Hinweis_: Wichtig: Die clientId und clientSecret sollten geheim gehalten und nicht öffentlich geteilt werden. Bitte stellen Sie sicher, dass sie an einem sicheren Ort aufbewahrt werden, z. B. in Umgebungsvariablen.
655
-
656
- - **dictionaryPriorityStrategy**:
657
- - _Typ_: `string`
658
- - _Standard_: `'local_first'`
659
- - _Beschreibung_: Die Strategie zur Priorisierung von Wörterbüchern, wenn sowohl lokale als auch entfernte Wörterbücher vorhanden sind. Wenn auf `'distant_first'` gesetzt, priorisiert die Anwendung entfernte Wörterbücher gegenüber lokalen Wörterbüchern. Wenn auf `'local_first'` gesetzt, priorisiert die Anwendung lokale Wörterbücher gegenüber entfernten Wörterbüchern.
660
- - _Beispiel_: `'distant_first'`
661
-
662
- - **liveSync**:
663
- - _Typ_: `boolean`
664
- - _Standard_: `false`
665
- - _Beschreibung_: Gibt an, ob der Anwendungsserver den Inhalt der Anwendung automatisch neu laden soll, wenn eine Änderung im CMS / Visual Editor / Backend erkannt wird.
666
- - _Beispiel_: `true`
667
- - _Hinweis_: Zum Beispiel, wenn ein neues Wörterbuch hinzugefügt oder aktualisiert wird, aktualisiert die Anwendung den anzuzeigenden Inhalt auf der Seite.
668
- - _Hinweis_: Live-Sync erfordert die Externalisierung des Inhalts der Anwendung auf einen anderen Server. Das bedeutet, dass dies die Leistung der Anwendung leicht beeinträchtigen kann. Um dies zu begrenzen, empfehlen wir, die Anwendung und den Live-Sync-Server auf derselben Maschine zu hosten. Außerdem kann die Kombination von Live-Sync und `optimize` eine beträchtliche Anzahl von Anfragen an den Live-Sync-Server stellen. Abhängig von Ihrer Infrastruktur empfehlen wir, beide Optionen und deren Kombination zu testen.
669
-
670
- - **liveSyncPort**:
671
- - _Typ_: `number`
672
- - _Standard_: `4000`
673
- - _Beschreibung_: Der Port des Live-Sync-Servers.
674
- - _Beispiel_: `4000`
675
- - _Hinweis_: Der Port des Live-Sync-Servers.
676
-
677
- - **liveSyncURL**:
678
- - _Typ_: `string`
679
- - _Standard_: `'http://localhost:{liveSyncPort}'`
680
- - _Beschreibung_: Die URL des Live-Sync-Servers.
681
- - _Beispiel_: `'https://example.com'`
682
- - _Hinweis_: Standardmäßig zeigt es auf localhost, kann aber auf jede beliebige URL geändert werden, falls ein entfernter Live-Sync-Server verwendet wird.
683
-
684
- ### Routing-Konfiguration
685
-
686
- Einstellungen, die das Routing-Verhalten steuern, einschließlich URL-Struktur, Locale-Speicherung und Middleware-Handhabung.
687
-
688
- #### Eigenschaften
689
-
690
- - **mode**:
691
- - _Typ_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
692
- - _Standard_: `'prefix-no-default'`
693
- - _Beschreibung_: URL-Routing-Modus zur Handhabung von Locales.
694
- - _Beispiele_:
695
- - `'prefix-no-default'`: `/dashboard` (en) oder `/fr/dashboard` (fr)
696
- - `'prefix-all'`: `/en/dashboard` (en) oder `/fr/dashboard` (fr)
697
- - `'no-prefix'`: `/dashboard` (Ländererkennung durch andere Mittel)
698
- - `'search-params'`: `/dashboard?locale=fr`
699
- - _Hinweis_: Diese Einstellung hat keinen Einfluss auf die Cookie-Verwaltung oder die Locale-Speicherung.
700
-
701
- - **storage**:
702
- - _Typ_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
703
- - _Standard_: `['cookie', 'header']`
704
- - _Beschreibung_: Konfiguration zur Speicherung der Locale beim Client.
705
-
706
- - **cookie**:
707
- - _Beschreibung_: Speichert Daten in Cookies, kleinen im Browser des Clients gespeicherten Datenfragmenten, die sowohl client- als auch serverseitig zugänglich sind.
708
- - _Hinweis_: Stellen Sie für eine DSGVO-konforme Speicherung sicher, dass die Zustimmung des Nutzers vor der Verwendung eingeholt wird.
709
- - _Hinweis_: Cookie-Parameter sind anpassbar, wenn sie als CookiesAttributes definiert sind (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
710
-
711
- - **localStorage**:
712
- - _Beschreibung_: Speichert Daten im Browser ohne Ablaufdatum, was eine Datenpersistenz über Sitzungen hinweg ermöglicht; nur clientseitig zugänglich.
713
- - _Hinweis_: Ideal für die langfristige Datenspeicherung, beachten Sie jedoch Datenschutz- und Sicherheitsimplikationen.
714
- - _Hinweis_: Local Storage ist nur clientseitig zugänglich; der Intlayer-Proxy kann darauf nicht zugreifen.
715
- - _Hinweis_: Local Storage-Parameter sind anpassbar, wenn sie als StorageAttributes definiert sind (`{ type: 'localStorage', name: 'custom-locale' }`).
716
-
717
- - **sessionStorage**:
718
- - _Beschreibung_: Speichert Daten für die Dauer einer Seitensitzung, d.h. sie werden gelöscht, sobald der Tab oder das Fenster geschlossen wird; nur clientseitig zugänglich.
719
- - _Hinweis_: Geeignet für die temporäre Datenspeicherung pro Sitzung.
720
- - _Hinweis_: Local Storage ist nur clientseitig zugänglich; der Intlayer-Proxy kann darauf nicht zugreifen.
721
- - _Hinweis_: Local Storage-Parameter sind anpassbar, wenn sie als StorageAttributes definiert sind (`{ type: 'sessionStorage', name: 'custom-locale' }`).
722
-
723
- - **header**:
724
- - _Beschreibung_: Verwendet HTTP-Header zum Speichern oder Übertragen von Locale-Daten, geeignet für die serverseitige Sprachbestimmung.
725
- - _Hinweis_: Nützlich bei API-Aufrufen, um konsistente Spracheinstellungen über Anfragen hinweg beizubehalten.
726
- - _Hinweis_: Der Header ist nur serverseitig zugänglich; die Clientseite kann darauf nicht zugreifen.
727
- - _Hinweis_: Der Header-Name ist anpassbar, wenn er als StorageAttributes definiert ist (`{ type: 'header', name: 'custom-locale' }`).
728
-
729
- - **basePath**:
730
- - _Typ_: `string`
731
- - _Standard_: `''`
732
- - _Beschreibung_: Der Basispfad für die Anwendungs-URLs.
733
- - _Beispiel_: `'/my-app'`
734
- - _Hinweis_:
735
- - Wenn die Anwendung unter `https://example.com/my-app` gehostet wird,
736
- - ist der Basispfad `'/my-app'`.
737
- - Die URL lautet dann `https://example.com/my-app/en`.
738
- - Wenn kein Basispfad gesetzt ist, lautet die URL `https://example.com/en`.
739
-
740
- - **rewrite**:
741
- - _Typ_: `Record<string, StrictModeLocaleMap<string>>`
742
- - _Standard_: `undefined`
743
- - _Beschreibung_: Benutzerdefinierte URL-Umschreibungsregeln, die den Standard-Routing-Modus für bestimmte Pfade außer Kraft setzen. Ermöglicht die Definition sprachspezifischer Pfade, die vom Standard-Routing-Verhalten abweichen. Unterstützt dynamische Routenparameter mit der Syntax `[param]`.
744
- - _Beispiel_:
745
- ```typescript
746
- routing: {
747
- mode: "prefix-no-default", // Fallback-Strategie
748
- rewrite: nextjsRewrite({
749
- "/about": {
750
- en: "/about",
751
- fr: "/a-propos",
752
- },
753
- "/product/[slug]": {
754
- en: "/product/[slug]",
755
- fr: "/produit/[slug]",
756
- },
757
- "/blog/[category]/[id]": {
758
- en: "/blog/[category]/[id]",
759
- fr: "/journal/[category]/[id]",
760
- },
761
- }),
762
- }
763
- ```
764
- - _Hinweis_: Umschreibungsregeln haben Vorrang vor dem Standard-`mode`-Verhalten. Wenn ein Pfad mit einer Umschreibungsregel übereinstimmt, wird der lokalisierte Pfad aus der Umschreibungskonfiguration anstelle des Standard-Sprachpräfixes verwendet.
765
- - _Hinweis_: Dynamische Routenparameter werden über die Klammernotation unterstützt (z. B. `[slug]`, `[id]`). Parameterwerte werden automatisch aus der URL extrahiert und in den umgeschriebenen Pfad interpoliert.
766
- - _Hinweis_: Funktioniert mit Next.js- und Vite-Anwendungen. Die Middleware/der Proxy schreibt eingehende Anfragen automatisch um, damit sie der internen Routenstruktur entsprechen.
767
- - _Hinweis_: Beim Generieren von URLs mit `getLocalizedUrl()` werden Umschreibungsregeln automatisch angewendet, wenn sie mit dem angegebenen Pfad übereinstimmen.
768
- - _Referenz_: Weitere Informationen finden Sie unter [Benutzerdefinierte URL-Umschreibungen](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/custom_url_rewrites.md).
769
-
770
- #### Cookie-Attribute
771
-
772
- Bei Verwendung der Cookie-Speicherung können Sie zusätzliche Cookie-Attribute konfigurieren:
773
-
774
- - **name**: Cookie-Name (Standard: `'INTLAYER_LOCALE'`)
775
- - **domain**: Cookie-Domain (Standard: undefined)
776
- - **path**: Cookie-Pfad (Standard: undefined)
777
- - **secure**: Erfordert HTTPS (Standard: undefined)
778
- - **httpOnly**: HTTP-only Flag (Standard: undefined)
779
- - **sameSite**: SameSite-Richtlinie (`'strict' | 'lax' | 'none'`)
780
- - **expires**: Ablaufdatum oder Tage (Standard: undefined)
781
-
782
- #### Locale-SpeicherAttribute
783
-
784
- Bei Verwendung von localStorage oder sessionStorage:
785
-
786
- - **type**: Speichertyp (`'localStorage' | 'sessionStorage'`)
787
- - **name**: Name des Speicherschlüssels (Standard: `'INTLAYER_LOCALE'`)
788
-
789
- #### Konfigurationsbeispiele
790
-
791
- Hier sind einige gängige Konfigurationsbeispiele für die neue Routing-Struktur (v8):
792
-
793
- **Basiskonfiguration (Standard)**:
794
-
795
- ```typescript
796
- import { Locales, type IntlayerConfig } from "intlayer";
797
- // intlayer.config.ts
798
- const config: IntlayerConfig = {
799
- internationalization: {
800
- locales: ["en", "fr", "es"],
801
- defaultLocale: "en",
802
- },
803
- routing: {
804
- mode: "prefix-no-default",
805
- storage: "localStorage",
806
- basePath: "",
807
- },
808
- };
809
-
810
- export default config;
811
- ```
812
-
813
- **DSGVO-konforme Konfiguration**:
814
-
815
- ```typescript
816
- import { Locales, type IntlayerConfig } from "intlayer";
817
- // intlayer.config.ts
818
- const config: IntlayerConfig = {
819
- internationalization: {
820
- locales: ["en", "fr", "es"],
821
- defaultLocale: "en",
822
- },
823
- routing: {
824
- mode: "prefix-no-default",
825
- storage: [
826
- {
827
- type: "localStorage",
828
- name: "user-locale",
829
- },
830
- {
831
- type: "cookie",
832
- name: "user-locale",
833
- secure: true,
834
- sameSite: "strict",
835
- httpOnly: false,
836
- },
837
- ],
838
- basePath: "",
839
- },
840
- };
841
-
842
- export default config;
843
- ```
844
-
845
- **Suchparameter-Modus**:
846
-
847
- ```typescript
848
- import { Locales, type IntlayerConfig } from "intlayer";
849
- // intlayer.config.ts
850
- const config: IntlayerConfig = {
851
- internationalization: {
852
- locales: ["en", "fr", "es"],
853
- defaultLocale: "en",
854
- },
855
- routing: {
856
- mode: "search-params",
857
- storage: "localStorage",
858
- basePath: "",
859
- },
860
- };
861
-
862
- export default config;
863
- ```
864
-
865
- **Präfixfreier Modus mit benutzerdefiniertem Speicher**:
866
-
867
- ```typescript
868
- import { Locales, type IntlayerConfig } from "intlayer";
869
- // intlayer.config.ts
870
- const config: IntlayerConfig = {
871
- internationalization: {
872
- locales: ["en", "fr", "es"],
873
- defaultLocale: "en",
874
- },
875
- routing: {
876
- mode: "no-prefix",
877
- storage: {
878
- type: "sessionStorage",
879
- name: "app-locale",
880
- },
881
- basePath: "/my-app",
882
- },
883
- };
884
-
885
- export default config;
886
- ```
887
-
888
- **Benutzerdefinierte URL-Umschreibung mit dynamischen Routen**:
889
-
890
- ```typescript
891
- // intlayer.config.ts
892
- import { nextjsRewrite } from "intlayer/routing";
893
-
894
- const config: IntlayerConfig = {
895
- internationalization: {
896
- locales: ["en", "fr"],
897
- defaultLocale: "en",
898
- },
899
- routing: {
900
- mode: "prefix-no-default", // Fallback-Strategie für nicht umgeschriebene Pfade
901
- storage: "cookie",
902
- rewrite: nextjsRewrite({
903
- "/about": {
904
- en: "/about",
905
- fr: "/a-propos",
906
- },
907
- "/product/[slug]": {
908
- en: "/product/[slug]",
909
- fr: "/produit/[slug]",
910
- },
911
- "/blog/[category]/[id]": {
912
- en: "/blog/[category]/[id]",
913
- fr: "/journal/[category]/[id]",
914
- },
915
- }),
916
- },
917
- };
918
-
919
- export default config;
920
- ```
921
-
922
- ---
923
-
924
- ### Inhaltskonfiguration
925
-
926
- Einstellungen im Zusammenhang mit der Inhaltsverwaltung innerhalb der Anwendung, einschließlich Verzeichnisnamen, Dateierweiterungen und abgeleiteter Konfigurationen.
927
-
928
- #### Eigenschaften
929
-
930
- - **autoFill**:
931
- - _Typ_: `boolean | string | FilePathPattern | { [key in Locales]?: string }`
932
- - _Standard_: `undefined`
933
- - _Beschreibung_: Gibt an, wie der Inhalt automatisch mit KI ausgefüllt werden soll. Kann global in der Datei `intlayer.config.ts` deklariert werden.
934
- - _Beispiel_: true
935
- - _Beispiel_: `'./{{fileName}}.content.json'`
936
- - _Beispiel_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
937
- - _Hinweis_: Die Auto-Fill-Konfiguration kann sein:
938
- - boolean: Auto-Fill für alle Sprachen aktivieren
939
- - string: Pfad zu einer einzelnen Datei oder Vorlage mit Variablen
940
- - object: Pro-Sprache Dateipfade
941
-
942
- - **watch**:
943
- - _Typ_: `boolean`
944
- - _Standard_: `process.env.NODE_ENV === 'development'`
945
- - _Beschreibung_: Gibt an, ob Intlayer Änderungen an den Inhaltsdeklarationsdateien in der App überwachen soll, um die zugehörigen Wörterbücher neu zu erstellen.
946
-
947
- - **fileExtensions**:
948
- - _Typ_: `string[]`
949
- - _Standard_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
950
- - _Beschreibung_: Dateierweiterungen, nach denen beim Erstellen von Wörterbüchern gesucht wird.
951
- - _Beispiel_: `['.data.ts', '.data.js', '.data.json']`
952
- - _Hinweis_: Die Anpassung der Dateierweiterungen kann helfen, Konflikte zu vermeiden.
953
-
954
- - **contentDir**:
955
- - _Typ_: `string[]`
956
- - _Standard_: `['.']`
957
- - _Beispiel_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
958
- - _Beschreibung_: Der Verzeichnispfad, in dem Inhaltsdefinitionsdateien (`.content.*`) gespeichert sind.
959
- - _Hinweis_: Dies wird verwendet, um Inhaltsdateien zu überwachen, um Wörterbücher neu zu erstellen.
960
-
961
- - **codeDir**:
962
- - _Typ_: `string[]`
963
- - _Standard_: `['.']`
964
- - _Beispiel_: `['src', '../../ui-library']`
965
- - _Beschreibung_: Der Verzeichnispfad, in dem der Code gespeichert ist, relativ zum Basisverzeichnis.
966
- - _Hinweis_: Dies wird verwendet, um Codedateien zu überwachen, die transformiert werden sollen (beschneiden, optimieren). Die Trennung von `contentDir` kann die Build-Leistung verbessern, indem unnötige Scans von Inhaltsdateien vermieden werden.
967
-
968
- - **excludedPath**:
969
- - _Typ_: `string[]`
970
- - _Standard_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
971
- - _Beschreibung_: Verzeichnisse, die von der Inhaltssuche ausgeschlossen sind.
972
- - _Hinweis_: Diese Einstellung wird derzeit noch nicht verwendet, ist aber für zukünftige Implementierungen geplant.
973
-
974
- - **formatCommand**:
975
- - _Typ_: `string`
976
- - _Standard_: `undefined`
977
- - _Beschreibung_: Der Befehl zum Formatieren des Inhalts. Wenn Intlayer Ihre .content-Dateien lokal schreibt, wird dieser Befehl zum Formatieren des Inhalts verwendet.
978
- - _Beispiel_: `'npx prettier --write "{{file}}" --log-level silent'` Mit Prettier
979
- - _Beispiel_: `'npx biome format "{{file}}" --write --log-level none'` Mit Biome
980
- - _Beispiel_: `'npx eslint --fix "{{file}}" --quiet'` Mit ESLint
981
- - _Hinweis_: Intlayer ersetzt {{file}} durch den Pfad der zu formatierenden Datei.
982
- - _Hinweis_: Wenn nicht gesetzt, versucht Intlayer, den Formatierungsbefehl automatisch zu erkennen. Durch Versuch, die folgenden Befehle aufzulösen: prettier, biome, eslint.
983
-
984
- ---
985
-
986
- ### Systemkonfiguration
987
-
988
- Einstellungen im Zusammenhang mit internen Pfaden und Ausgabeergebnissen von Intlayer. Diese Einstellungen sind typischerweise intern und sollten nicht vom Benutzer geändert werden müssen.
989
-
990
- #### Eigenschaften
991
-
992
- - **baseDir**:
993
- - _Typ_: `string`
994
- - _Standard_: `process.cwd()`
995
- - _Beschreibung_: Das Basisverzeichnis für das Projekt.
996
- - _Beispiel_: `'/path/to/project'`
997
- - _Hinweis_: Dies wird verwendet, um alle Intlayer-bezogenen Verzeichnisse aufzulösen.
998
-
999
- - **dictionariesDir**:
1000
- - _Typ_: `string`
1001
- - _Standard_: `'.intlayer/dictionary'`
1002
- - _Beschreibung_: Der Verzeichnispfad zur Speicherung von Lokalisierungswörterbüchern.
1003
-
1004
- - **moduleAugmentationDir**:
1005
- - _Typ_: `string`
1006
- - _Standard_: `'.intlayer/types'`
1007
- - _Beschreibung_: Verzeichnis für Module-Augmentation, um bessere IDE-Vorschläge und Typüberprüfung zu ermöglichen.
1008
- - _Beispiel_: `'intlayer-types'`
1009
- - _Hinweis_: Stellen Sie sicher, dass dies in der `tsconfig.json` enthalten ist.
1010
-
1011
- - **unmergedDictionariesDir**:
1012
- - _Typ_: `string`
1013
- - _Standard_: `'.intlayer/unmerged_dictionary'`
1014
- - _Beschreibung_: Das Verzeichnis zur Speicherung von nicht zusammengeführten Wörterbüchern.
1015
-
1016
- - **typesDir**:
1017
- - _Typ_: `string`
1018
- - _Standard_: `'.intlayer/types'`
1019
- - _Beschreibung_: Das Verzeichnis zur Speicherung von Wörterbuchtypen.
1020
-
1021
- - **mainDir**:
1022
- - _Typ_: `string`
1023
- - _Standard_: `'.intlayer/main'`
1024
- - _Beschreibung_: Das Verzeichnis, in dem die Hauptanwendungsdateien gespeichert sind.
1025
-
1026
- - **configDir**:
1027
- - _Typ_: `string`
1028
- - _Standard_: `'.intlayer/config'`
1029
- - _Beschreibung_: Das Verzeichnis, in dem die Konfigurationsdateien gespeichert sind.
1030
-
1031
- - **cacheDir**:
1032
- - _Typ_: `string`
1033
- - _Standard_: `'.intlayer/cache'`
1034
- - _Beschreibung_: Das Verzeichnis, in dem die Cache-Dateien gespeichert sind.
1035
-
1036
- ### Wörterbuch-Konfiguration
1037
-
1038
- Einstellungen, die Wörterbuchoperationen steuern, einschließlich des Auto-Fill-Verhaltens und der Inhaltsgenerierung.
1039
-
1040
- Diese Wörterbuchkonfiguration dient zwei Hauptzwecken:
1041
-
1042
- 1. **Standardwerte**: Definieren Sie Standardwerte beim Erstellen von Inhaltsdeklarationsdateien
1043
- 2. **Fallback-Verhalten**: Stellen Sie Fallback-Werte bereit, wenn bestimmte Felder nicht definiert sind, sodass Sie das Verhalten von Wörterbuchoperationen global definieren können
1044
-
1045
- Weitere Informationen zu Inhaltsdeklarationsdateien und zur Anwendung von Konfigurationswerten finden Sie in der [Inhaltsdatei-Dokumentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/content_file.md).
1046
-
1047
- #### Eigenschaften
1048
-
1049
- - **fill**
1050
- - **description**
1051
- - **locale**
1052
- - **location**
1053
- - **priority**
1054
- - **live**
1055
- - **schema**
1056
- - **title**
1057
- - **tags**
1058
- - **version**
1059
-
1060
- ---
1061
-
1062
- ### Logger-Konfiguration
1063
-
1064
- Einstellungen, die den Logger steuern, einschließlich des zu verwendenden Präfixes.
1065
-
1066
- #### Eigenschaften
1067
-
1068
- - **mode**:
1069
- - _Typ_: `string`
1070
- - _Standard_: `default`
1071
- - _Beschreibung_: Gibt den Modus des Loggers an.
1072
- - _Optionen_: `default`, `verbose`, `disabled`
1073
- - _Beispiel_: `default`
1074
- - _Hinweis_: Der Modus des Loggers. Der verbose-Modus protokolliert mehr Informationen und kann für Debugging-Zwecke verwendet werden. Der deaktivierte Modus schaltet den Logger aus.
1075
-
1076
- - **prefix**:
1077
- - _Typ_: `string`
1078
- - _Standard_: `'[intlayer] '`
1079
- - _Beschreibung_: Das Präfix des Loggers.
1080
- - _Beispiel_: `'[my custom prefix] '`
1081
- - _Hinweis_: Das Präfix des Loggers.
1082
-
1083
- ### KI-Konfiguration
1084
-
1085
- Einstellungen, die die KI-Funktionen von Intlayer steuern, einschließlich des Anbieters, Modells und API-Schlüssels.
1086
-
1087
- Diese Konfiguration ist optional, wenn Sie mit einem Zugriffsschlüssel im [Intlayer Dashboard](https://app.intlayer.org/project) 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.
1088
-
1089
- Wenn Sie Ihren eigenen API-Schlüssel oder ein bestimmtes Modell verwenden möchten, können Sie Ihre eigene KI-Konfiguration definieren.
1090
- Diese KI-Konfiguration wird global in Ihrer Intlayer-Umgebung verwendet. CLI-Befehle verwenden diese Einstellungen als Standardwerte für die Befehle (z. B. `fill`), ebenso wie das SDK, der Visual Editor und das CMS. Sie können diese Standardwerte für spezifische Anwendungsfälle mit Befehlsparametern überschreiben.
1091
-
1092
- Intlayer unterstützt mehrere KI-Anbieter für erhöhte Flexibilität und Auswahlmöglichkeiten. Derzeit unterstützte Anbieter sind:
1093
-
1094
- - **OpenAI** (Standard)
1095
- - **Anthropic Claude**
1096
- - **Mistral AI**
1097
- - **DeepSeek**
1098
- - **Google Gemini**
1099
- - **Meta Llama**
1100
- - **Ollama**
1101
- - **OpenRouter**
1102
- - **Alibaba Cloud**
1103
- - **Fireworks**
1104
- - **Hugging Face**
1105
- - **Groq**
1106
- - **Amazon Bedrock**
1107
- - **Google AI Studio**
1108
- - **Google Vertex**
1109
- - **Together.ai**
1110
- - **ollama**
1111
-
1112
- #### Eigenschaften
1113
-
1114
- - **provider** :
1115
- - _Typ_ : `string`
1116
- - _Standard_ : `'openai'`
1117
- - _Beschreibung_ : Der Provider, der für die KI-Funktionen von Intlayer verwendet werden soll.
1118
- - _Optionen_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
1119
- - _Beispiel_ : `'anthropic'`
1120
- - _Hinweis_: Verschiedene Provider erfordern möglicherweise unterschiedliche API-Schlüssel und haben unterschiedliche Preismodelle.
1121
-
1122
- - **model** :
1123
- - _Typ_ : `string`
1124
- - _Standard_ : Keiner
1125
- - _Beschreibung_ : Das Modell, das für die KI-Funktionen von Intlayer verwendet werden soll.
1126
- - _Beispiel_ : `'gpt-4o-2024-11-20'`
1127
- - _Hinweis_ : Das spezifische zu verwendende Modell variiert je nach Provider.
1128
-
1129
- - **temperature** :
1130
- - _Typ_ : `number`
1131
- - _Standard_ : Keine
1132
- - _Beschreibung_ : Die Temperatur steuert die Zufälligkeit der KI-Antworten.
1133
- - _Beispiel_ : `0.1`
1134
- - _Hinweis_ : Eine höhere Temperatur macht die KI kreativer und weniger vorhersehbar.
1135
-
1136
- - **apiKey** :
1137
- - _Typ_ : `string`
1138
- - _Standard_ : Keine
1139
- - _Beschreibung_ : Ihr API-Schlüssel für den ausgewählten Provider.
1140
- - _Beispiel_ : `process.env.OPENAI_API_KEY`
1141
- - _Hinweis_ : Wichtig: API-Schlüssel sollten geheim gehalten und nicht öffentlich geteilt werden. Bitte stellen Sie sicher, dass sie an einem sicheren Ort, wie z.B. Umgebungsvariablen, aufbewahrt werden.
1142
-
1143
- - **applicationContext** :
1144
- - _Typ_ : `string`
1145
- - _Standard_ : Keiner
1146
- - _Beschreibung_ : Bietet dem KI-Modell zusätzlichen Kontext über Ihre Anwendung, um genauere und kontextbezogenere Übersetzungen zu generieren. Dies kann Informationen über das Anwendungsgebiet Ihrer App, die Zielgruppe, den Tonfall oder spezifische Terminologie enthalten.
1147
- - _Hinweis_: Sie können dies verwenden, um dem KI-Modell weitere Regeln hinzuzufügen (z. B. "Sie dürfen URLs nicht transformieren").
1148
- - _Beispiel_ : `'Mein Anwendungskontext'`
1149
-
1150
- - **baseURL** :
1151
- - _Typ_ : `string`
1152
- - _Standard_ : Keine
1153
- - _Beschreibung_ : Die Basis-URL für die KI-API.
1154
- - _Beispiel_ : `'https://api.openai.com/v1'`
1155
- - _Beispiel_ : `'http://localhost:5000'`
1156
- - _Hinweis_ : Kann verwendet werden, um auf einen lokalen oder benutzerdefinierten KI-API-Endpunkt zu verweisen.
1157
-
1158
- - **dataSerialization**:
1159
- - _Typ_: `'json' | 'toon'`
1160
- - _Standard_: `'json'`
1161
- - _Beschreibung_: Das Datenserialisierungsformat, das für die KI-Funktionen von Intlayer verwendet werden soll.
1162
- - _Beispiel_: `'toon'`
1163
- - _Hinweis_: `json`: Standard, zuverlässig; verbraucht mehr Tokens. `toon`: Weniger Tokens, weniger konsistent als JSON.
1164
- > Wenn Sie zusätzliche Parameter angeben, wird Intlayer diese als Kontext an das KI-Modell übergeben. Dies kann verwendet werden, um den Reasoning-Aufwand, die Text-Ausführlichkeit usw. anzupassen.
1165
-
1166
- ### Build-Konfiguration
1167
-
1168
- Einstellungen, die steuern, wie Intlayer die Internationalisierung Ihrer Anwendung optimiert und baut.
1169
-
1170
- Die Build-Optionen gelten für die Plugins `@intlayer/babel` und `@intlayer/swc`.
1171
-
1172
- > Im Entwicklungsmodus verwendet Intlayer statische Importe für die Wörterbücher, um die Entwicklungserfahrung zu vereinfachen.
1173
-
1174
- > Wenn optimiert, wird Intlayer die Aufrufe an die Wörterbücher ersetzen, um das Splitting zu optimieren, so dass das finale Paket nur die tatsächlich verwendeten Wörterbücher importiert.
1175
-
1176
- #### Eigenschaften
1177
-
1178
- - **mode** :
1179
- - _Typ_ : `'auto' | 'manual'`
1180
- - _Standard_ : `'auto'`
1181
- - _Beschreibung_ : Steuert den Build-Modus.
1182
- - _Beispiel_ : `'manual'`
1183
- - _Hinweis_ : Wenn 'auto', wird der Build automatisch während des App-Builds ausgelöst.
1184
- - _Hinweis_ : Wenn 'manual', wird der Build erst ausgelöst, wenn der Build-Befehl ausgeführt wird.
1185
- - _Hinweis_ : Kann verwendet werden, um den Bau von Wörterbüchern zu deaktivieren, z.B. wenn die Ausführung in einer Node.js-Umgebung vermieden werden soll.
1186
-
1187
- - **optimize** :
1188
- - _Typ_ : `boolean`
1189
- - _Standard_ : `undefined`
1190
- - _Beschreibung_ : Steuert, ob der Build optimiert werden soll.
1191
- - _Beispiel_ : `process.env.NODE_ENV === 'production'`
1192
- - _Hinweis_ : Standardmäßig ist die Build-Optimierung nicht festgelegt. Wenn sie nicht definiert ist, wird Intlayer die Build-Optimierung während des Baus Ihrer Anwendung (vite / nextjs / etc) aktivieren. Das Setzen auf `true` erzwingt die Build-Optimierung, auch im Entwicklungsmodus. Das Setzen auf `false` deaktiviert die Build-Optimierung.
1193
- - _Hinweis_ : Wenn aktiviert, wird Intlayer alle Aufrufe an die Wörterbücher ersetzen, um das Splitting zu optimieren. Das finale Paket wird daher nur die verwendeten Wörterbücher importieren. Alle Importe bleiben statische Importe, um asynchrone Verarbeitung beim Laden der Wörterbücher zu vermeiden.
1194
- - _Hinweis_ : Intlayer wird alle Aufrufe von `useIntlayer` durch den über die Option `importMode` definierten Modus ersetzen und `getIntlayer` durch `getDictionary`.
1195
- - _Hinweis_ : Diese Option ist abhängig von den Plugins `@intlayer/babel` und `@intlayer/swc`.
1196
- - _Hinweis_ : Stellen Sie sicher, dass alle Schlüssel in `useIntlayer`-Aufrufen statisch deklariert sind. Zum Beispiel `useIntlayer('navbar')`.
1197
-
1198
- - **checkTypes** :
1199
- - _Typ_ : `boolean`
1200
- - _Standard_ : `false`
1201
- - _Beschreibung_ : Gibt an, ob der Build die TypeScript-Typen überprüfen und Fehler protokollieren soll.
1202
- - _Hinweis_ : Dies kann den Build verlangsamen.
1203
-
1204
- - **outputFormat** :
1205
- - _Typ_ : `('esm' | 'cjs')[]`
1206
- - _Standard_ : `['cjs', 'esm']`
1207
- - _Beschreibung_ : Steuert das Ausgabeformat der Wörterbücher.
1208
- - _Beispiel_ : `'cjs'`
1209
- - _Hinweis_ : Das Ausgabeformat der Wörterbücher.
1210
-
1211
- - **traversePattern** :
1212
- - _Typ_ : `string[]`
1213
- - _Standard_ : `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
1214
- - _Beschreibung_ : Muster, die definieren, welche Dateien während der Optimierung durchlaufen werden sollen.
1215
- - _Beispiel_ : `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
1216
- - _Hinweis_ : Verwenden Sie dies, um die Optimierung auf relevante Codedateien zu beschränken und die Build-Performance zu verbessern.
1217
- - _Hinweis_ : Diese Option wird ignoriert, wenn `optimize` deaktiviert ist.
1218
- - _Hinweis_ : Verwenden Sie ein Glob-Muster.
1219
-
1220
- ---
1221
-
1222
- ### Compiler-Konfiguration
1223
-
1224
- Einstellungen zur Steuerung des Intlayer-Compilers, der Wörterbücher direkt aus Ihren Komponenten extrahiert.
1225
-
1226
- #### Eigenschaften
1227
-
1228
- - **enabled**:
1229
- - _Typ_: `boolean | 'build-only'`
1230
- - _Standard_: `true`
1231
- - _Beschreibung_: Gibt an, ob der Compiler aktiviert sein soll, um die Wörterbücher zu extrahieren.
1232
- - _Beispiel_: `'build-only'`
1233
- - _Hinweis_: Wenn Sie dies auf `'build-only'` setzen, wird der Compiler im Entwicklungsmodus übersprungen, um die Startzeiten zu beschleunigen. Er wird nur bei Build-Befehlen ausgeführt.
1234
-
1235
- - **dictionaryKeyPrefix**:
1236
- - _Typ_: `string`
1237
- - _Standard_: `''`
1238
- - _Beschreibung_: Präfix für die extrahierten Wörterbuchschlüssel.
1239
- - _Beispiel_: `'my-key-'`
1240
- - _Hinweis_: Wenn Wörterbücher extrahiert werden, wird der Schlüssel basierend auf dem Dateinamen generiert. Dieses Präfix wird dem generierten Schlüssel hinzugefügt, um Konflikte zu vermeiden.
1241
-
1242
- - **saveComponents**:
1243
- - _Typ_: `boolean`
1244
- - _Standard_: `false`
1245
- - _Beschreibung_: Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen.
1246
- - _Hinweis_: Wenn auf true gesetzt, ersetzt der Compiler die Originaldateien durch die transformierten Dateien. Auf diese Weise kann der Compiler nur einmal ausgeführt werden, um die App zu transformieren, und dann entfernt werden.
1247
-
1248
- - **transformPattern**:
1249
- - _Typ_: `string | string[]`
1250
- - _Standard_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
1251
- - _Beschreibung_: Muster, die definieren, welche Dateien während der Optimierung durchlaufen werden sollen.
1252
- - _Beispiel_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
1253
- - _Hinweis_: Verwenden Sie dies, um die Optimierung auf relevante Code-Dateien zu beschränken und die Build-Leistung zu verbessern.
1254
-
1255
- - **excludePattern**:
1256
- - _Typ_: `string | string[]`
1257
- - _Standard_: `['**/node_modules/**']`
1258
- - _Beschreibung_: Muster, die definieren, welche Dateien während der Optimierung ausgeschlossen werden sollen.
1259
- - _Beispiel_: `['**/node_modules/**', '!**/node_modules/react/**']`
1260
-
1261
- - **output**:
1262
- - _Typ_: `FilePathPattern`
1263
- - _Standard_: `undefined`
1264
- - _Beschreibung_: Definiert den Pfad der Ausgabedateien. Ersetzt `outputDir`. Verarbeitet dynamische Variablen über Template-Strings oder eine Funktion. Unterstützte Variablen: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` und `{{componentDirPath}}`.
1265
- - _Hinweis_: `./` Pfade werden relativ zum Verzeichnis der Komponente aufgelöst. `/` Pfade werden relativ zum Projektstamm (`baseDir`) aufgelöst.
1266
- - _Hinweis_: Das Einfügen der Variable `{{locale}}` in den Pfad löst die Generierung separater Wörterbücher pro Locale aus.
1267
- - _Beispiel_:
1268
- - **Mehrsprachige Dateien in der Nähe der Komponente** :
1269
- - String: `'./{{fileName}}{{extension}}'`
1270
- - Funktion: `({ fileName, extension }) => \`./${fileName}${extension}\``
1271
-
1272
- - **Zentralisierte JSON-Dateien pro Locale** :
1273
- - String: `'/locales/{{locale}}/{{key}}.content.json'`
1274
- - Funktion: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
1275
-
1276
- - **noMetadata**:
1277
- - _Typ_: `boolean`
1278
- - _Standard_: `false`
1279
- - _Beschreibung_: Gibt an, ob die Metadaten in der Datei gespeichert werden sollen. Wenn wahr, speichert der Compiler nicht die Metadaten der Wörterbücher (Schlüssel, Inhaltscontainer). Nützlich für i18next- oder ICU-MessageFormat-JSON-Ausgaben pro Sprache.
1280
- - _Hinweis_: Nützlich bei Verwendung mit dem Plugin `loadJSON`.
1281
- - _Beispiel_:
1282
- Wenn `true` :
1283
- ```json
1284
- {
1285
- "key": "value"
1286
- }
1287
- ```
1288
- Wenn `false`:
1289
- ```json
1290
- {
1291
- "key": "value",
1292
- "content": {
1293
- "key": "value"
1294
- }
1295
- }
1296
- ```