Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Unterstützung für LM Studio-Anbieter hinzugefügt"v8.9.412.5.2026
- "Optionen `prune` und `minify` zur Build-Konfiguration hinzugefügt"v8.7.08.4.2026
- "Option `currentDomain` hinzugefügt"v8.7.03.4.2026
- "Objektweise Notation pro Sprache für 'compiler.output' und 'dictionary.fill' hinzugefügt"v8.4.020.3.2026
- "'baseDir' von 'content' in die 'system' Konfiguration verschoben"v8.3.011.3.2026
- "Compiler-Optionen aktualisiert, Unterstützung für 'output' und 'noMetadata' hinzugefügt"v8.2.09.3.2026
- "Compiler-Optionen aktualisiert"v8.1.725.2.2026
- "Compiler-Option 'build-only' und Wörterbuch-Präfix hinzugefügt"v8.1.523.2.2026
- "Unterstützung für Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face und Together.ai Anbieter hinzugefügt"v8.0.612.2.2026
- "`dataSerialization` zur KI-Konfiguration hinzugefügt"v8.0.56.2.2026
- "Import-Modus `live` in `fetch` umbenannt, um den zugrunde liegenden Mechanismus besser zu beschreiben."v8.0.024.1.2026
- "Build-Konfiguration `importMode` in die `dictionary` Konfiguration verschoben."v8.0.022.1.2026
- "`rewrite` Option zur Routing-Konfiguration hinzugefügt"v8.0.022.1.2026
- "Systemkonfiguration von der Inhaltskonfiguration getrennt. Interne Pfade in die Eigenschaft `system` verschoben. `codeDir` hinzugefügt, um Inhaltsdateien von der Codetransformation zu trennen."v8.0.018.1.2026
- "Wörterbuch-Optionen `location` und `schema` hinzugefügt"v8.0.018.1.2026
- "Unterstützung für JSON5 und JSONC Dateiformate hinzugefügt"v7.5.110.1.2026
- "Option `buildMode` hinzugefügt"v7.5.017.12.2025
- "`dictionary` Konfiguration hinzugefügt"v7.0.025.10.2025
- "`middleware` durch `routing` Konfiguration ersetzt"v7.0.021.10.2025
- "Option `formatCommand` hinzugefügt"v7.0.012.10.2025
- "Option `excludedPath` aktualisiert"v6.2.012.10.2025
- "Option `outputFormat` hinzugefügt"v6.0.223.9.2025
- "Feld `dictionaryOutput` und Feld `i18nextResourcesDir` entfernt"v6.0.021.9.2025
- "Import-Modus `live` hinzugefügt"v6.0.016.9.2025
- "Feld `hotReload` durch `liveSync` ersetzt und die Felder `liveSyncPort` und `liveSyncURL` hinzugefügt"v6.0.04.9.2025
- "`activateDynamicImport` durch die Option `importMode` ersetzt"v5.6.125.7.2025
- "Standard `contentDir` von `['src']` zu `['.']` geändert"v5.6.013.7.2025
- "`docs` Befehle hinzugefügt"v5.5.1129.6.2025
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Intlayer Konfigurationsdokumentation
Überblick
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.
Inhaltsverzeichnis
Unterstützung von Konfigurationsdateien
Intlayer akzeptiert die Konfigurationsdateiformate JSON, JS, MJS und TS:
intlayer.config.tsintlayer.config.jsintlayer.config.jsonintlayer.config.json5intlayer.config.jsoncintlayer.config.cjsintlayer.config.mjs.intlayerrc
Beispiel-Konfigurationsdatei
Kopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer";import { nextjsRewrite } from "intlayer/routing";import { z } from "zod";/** * Beispiel für eine Intlayer-Konfigurationsdatei, die alle verfügbaren Optionen zeigt. */const config: IntlayerConfig = { /** * Konfiguration für Internationalisierungseinstellungen. */ internationalization: { /** * Liste der unterstützten Sprachen in der Anwendung. * Standard: [Locales.ENGLISH] */ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], /** * Liste der erforderlichen Sprachen, die in jedem Wörterbuch definiert sein müssen. * Wenn leer, sind im `strict` Modus alle Sprachen erforderlich. * Standard: [] */ requiredLocales: [Locales.ENGLISH], /** * Strengegrad für internationalisierte Inhalte. * - "strict": Fehler, wenn eine deklarierte Sprache fehlt oder nicht deklariert ist. * - "inclusive": Warnungen, wenn eine deklarierte Sprache fehlt. * - "loose": Akzeptiert jede vorhandene Sprache. * Standard: "inclusive" */ strictMode: "inclusive", /** * Standardsprache, die als Fallback verwendet wird, wenn die angeforderte Sprache nicht gefunden wird. * Standard: Locales.ENGLISH */ defaultLocale: Locales.ENGLISH, }, /** * Einstellungen, die Wörterbuchoperationen und Fallback-Verhalten steuern. */ dictionary: { /** * Steuert, wie Wörterbücher importiert werden. * - "static": Statisch zur Build-Zeit importiert. * - "dynamic": Dynamisch mit Suspense importiert. * - "fetch": Dynamisch über die Live Sync API abgerufen. * Standard: "static" */ importMode: "static", /** * Strategie für das automatische Ausfüllen fehlender Übersetzungen mittels KI. * Kann ein boolescher Wert oder ein Pfadmuster zum Speichern der ausgefüllten Inhalte sein. * Standard: true */ fill: true, /** * Physischer Speicherort der Wörterbuchdateien. * - "local": Im lokalen Dateisystem gespeichert. * - "remote": Im Intlayer CMS gespeichert. * - "hybrid": Im lokalen Dateisystem und im Intlayer CMS gespeichert. * - "plugin" (oder ein beliebiger benutzerdefinierter String): Von einem Plugin oder einer benutzerdefinierten Quelle bereitgestellt. * Standard: "local" */ location: "local", /** * Ob Inhalte automatisch transformiert werden sollen (z. B. Markdown zu HTML). * Standard: false */ contentAutoTransformation: false, }, /** * Routing- und Middleware-Konfiguration. */ routing: { /** * Strategie für das Sprachrouting. * - "prefix-no-default": Präfix für alle außer der Standardsprache (z. B. /dashboard, /fr/dashboard). * - "prefix-all": Präfix für alle Sprachen (z. B. /en/dashboard, /fr/dashboard). * - "no-prefix": Keine Sprache in der URL. * - "search-params": Verwendung von ?locale=... * Standard: "prefix-no-default" */ mode: "prefix-no-default", /** * Wo die vom Benutzer gewählte Sprache gespeichert werden soll. * Optionen: 'cookie', 'localStorage', 'sessionStorage', 'header' oder ein Array davon. * Standard: ['cookie', 'header'] */ storage: ["cookie", "header"], /** * Basispfad für die Anwendungs-URLs. * Standard: "" */ basePath: "", /** * Benutzerdefinierte URL-Rewrite-Regeln für sprachspezifische Pfade. */ rewrite: nextjsRewrite({ "/[locale]/about": { en: "/[locale]/about", fr: "/[locale]/a-propos", }, }), /** * Verknüpft Sprachen mit Domain-Hostnamen für domainbasiertes Routing. * URLs für diese Sprachen sind absolut (z. B. https://intlayer.cn/). * Die Domain impliziert die Sprache, daher wird dem Pfad kein Sprachpräfix hinzugefügt. * Standard: undefined */ domains: { en: "intlayer.org", zh: "intlayer.cn", }, }, /** * Einstellungen zum Finden und Verarbeiten von Inhaltsdateien. */ content: { /** * Dateierweiterungen, nach denen nach Wörterbüchern gesucht wird. * Standard: ['.content.ts', '.content.js', '.content.json', etc.] */ fileExtensions: [".content.ts", ".content.js", ".content.json"], /** * Verzeichnisse, in denen sich .content-Dateien befinden. * Standard: ["."] */ contentDir: ["src"], /** * Verzeichnisse, in denen sich der Quellcode befindet. * Wird für Build-Optimierung und Codetransformation verwendet. * Standard: ["."] */ codeDir: ["src"], /** * Muster, die vom Scannen ausgeschlossen werden sollen. * Standard: ['node_modules', '.intlayer', etc.] */ excludedPath: ["node_modules"], /** * Ob Änderungen überwacht und Wörterbücher während der Entwicklung neu erstellt werden sollen. * Standard: true in der Entwicklung */ watch: true, /** * Befehl zum Formatieren neu erstellter / aktualisierter .content-Dateien. */ formatCommand: 'npx prettier --write "{{file}}"', }, /** * Konfiguration des visuellen Editors. */ editor: { /** * Ob der visuelle Editor aktiviert ist. * Standard: false */ enabled: true, /** * URL Ihrer Anwendung zur Validierung der Herkunft. * Standard: "" */ applicationURL: "http://localhost:3000", /** * Port für den lokalen Editor-Server. * Standard: 8000 */ port: 8000, /** * Öffentliche URL für den Editor. * Standard: "http://localhost:8000" */ editorURL: "http://localhost:8000", /** * Intlayer CMS URL. * Standard: "https://app.intlayer.org" */ cmsURL: "https://app.intlayer.org", /** * Backend API URL. * Standard: "https://back.intlayer.org" */ backendURL: "https://back.intlayer.org", /** * Ob Echtzeit-Inhaltssynchronisierung aktiviert werden soll. * Standard: false */ liveSync: true, }, /** * KI-gestützte Übersetzungs- und Generierungseinstellungen. */ ai: { /** * Zu verwendender KI-Anbieter. * Optionen: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio' * Standard: 'openai' */ provider: "openai", /** * Zu verwendendes Modell des ausgewählten Anbieters. */ model: "gpt-4o", /** * API-Schlüssel des Anbieters. */ apiKey: process.env.OPENAI_API_KEY, /** * Globaler Kontext, um die KI beim Generieren von Übersetzungen zu unterstützen. */ applicationContext: "Dies ist eine Reisebuchungsanwendung.", /** * Basis-URL für die KI-API. */ baseURL: "http://localhost:3000", /** * Datenserialisierung * * Optionen: * - "json": Standard, zuverlässig; verbraucht mehr Tokens. * - "toon": Weniger Tokens, weniger konsistent als JSON. * * Standard: "json" */ dataSerialization: "json", }, /** * Build- und Optimierungseinstellungen. */ build: { /** * Modus der Build-Ausführung. * - "auto": Automatischer Build während des App-Builds. * - "manual": Erfordert einen expliziten Build-Befehl. * Standard: "auto" */ mode: "auto", /** * Ob das finale Bundle durch Entfernen ungenutzter Wörterbücher optimiert werden soll. * Standard: true in der Produktion */ optimize: true, /** * Dictionarien minimieren, um die Bundle-Größe zu reduzieren. * Standard: false * * Note: * - Diese Option wird ignoriert, wenn `optimize` deaktiviert ist. * - Diese Option wird ignoriert, wenn `editor.enabled` auf true gesetzt ist. */ minify: true, /** * Nicht verwendete Schlüssel in Dictionarien entfernen. * Standard: false * * Note: * - Diese Option wird ignoriert, wenn `optimize` deaktiviert ist. */ purge: true, /** * Ausgabeformat für generierte Wörterbuchdateien. * Standard: ['cjs', 'esm'] */ outputFormat: ["cjs", "esm"], /** * Gibt an, ob der Build TypeScript-Typen prüfen soll. * Standard: false */ checkTypes: false, }, /** * Logger-Konfiguration. */ log: { /** * Logging-Level. * - "default": Standard-Logging. * - "verbose": Detailliertes Debug-Logging. * - "disabled": Kein Logging. * Standard: "default" */ mode: "default", /** * Präfix für alle Log-Nachrichten. * Standard: "[intlayer]" */ prefix: "[intlayer]", }, /** * Systemkonfiguration (Erweiterte Anwendungsfälle) */ system: { /** * Verzeichnis zum Speichern lokalisierter Wörterbücher. */ dictionariesDir: ".intlayer/dictionary", /** * Verzeichnis für die Modul-Augmentierung. */ moduleAugmentationDir: ".intlayer/types", /** * Verzeichnis zum Speichern nicht zusammengeführter Wörterbücher. */ unmergedDictionariesDir: ".intlayer/unmerged_dictionary", /** * Verzeichnis zum Speichern von Wörterbuchtypen. */ typesDir: ".intlayer/types", /** * Verzeichnis, in dem die Hauptanwendungsdateien gespeichert sind. */ mainDir: ".intlayer/main", /** * Verzeichnis, in dem die Konfigurationsdateien gespeichert sind. */ configDir: ".intlayer/config", /** * Verzeichnis, in dem die Cache-Dateien gespeichert sind. */ cacheDir: ".intlayer/cache", }, /** * Compiler-Konfiguration (Erweiterte Anwendungsfälle) */ compiler: { /** * Gibt an, ob der Compiler aktiviert sein soll. * * - false: Compiler deaktivieren. * - true: Compiler aktivieren. * - "build-only": Compiler während der Entwicklung überspringen, um Startzeiten zu beschleunigen. * * Standard: false */ enabled: true, /** * Definiert den Pfad für die Ausgabedateien. Ersetzt `outputDir`. * * - `./` Pfade werden relativ zum Komponentenverzeichnis aufgelöst. * - `/` Pfade werden relativ zum Projektstamm (`baseDir`) aufgelöst. * * - Wenn die Variable `{{locale}}` im Pfad enthalten ist, wird die Generierung separater Wörterbücher pro Sprache ausgelöst. * * Beispiel: * ```ts * { * // Mehrsprachige .content.ts Dateien in der Nähe der Komponente erstellen * output: ({ fileName, extension }) => `./${fileName}${extension}`, * * // output: './{{fileName}}{{extension}}', // Äquivalent mit Template-String * } * ``` * * ```ts * { * // Zentralisierte pro-Sprache JSON-Dateien im Stammverzeichnis des Projekts erstellen * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`, * * // output: '/locales/{{locale}}/{{key}}.content.json', // Äquivalent mit Template-String * } * ``` * * Liste der Variablen: * - `fileName`: Name der Datei. * - `key`: Schlüssel des Inhalts. * - `locale`: Sprache des Inhalts. * - `extension`: Erweiterung der Datei. * - `componentFileName`: Name der Komponentendatei. * - `componentExtension`: Erweiterung der Komponentendatei. * - `format`: Format des Wörterbuchs. * - `componentFormat`: Format des Komponentenwörterbuchs. * - `componentDirPath`: Verzeichnispfad der Komponente. */ output: ({ locale, key }) => `compiler/${locale}/${key}.json`, /** * Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. * * - Wenn `true`, schreibt der Compiler die Komponentendatei auf die Festplatte um. Die Transformation ist also dauerhaft und der Compiler überspringt die Transformation für den nächsten Prozess. Auf diese Weise kann der Compiler die App transformieren und anschließend entfernt werden. * * - Wenn `false`, fügt der Compiler den `useIntlayer()` Funktionsaufruf nur in den Code der Build-Ausgabe ein und lässt die Basis-Code-Basis intakt. Die Transformation erfolgt nur im Speicher. */ saveComponents: false, /** * Nur Inhalte in die generierte Datei einfügen. Nützlich für pro-Sprache i18next oder ICU MessageFormat JSON-Ausgaben. */ noMetadata: false, /** * Wörterbuch-Schlüsselpräfix */ dictionaryKeyPrefix: "", // Optionales Präfix für die extrahierten Wörterbuchschlüssel hinzufügen }, /** * Benutzerdefinierte Schemata zum Validieren des Inhalts der Wörterbücher. */ schemas: { "my-schema": z.object({ title: z.string(), }), }, /** * Plugin-Konfiguration. */ plugins: [],};export default config;Konfigurationsreferenz
Die folgenden Abschnitte beschreiben die verschiedenen für Intlayer verfügbaren Konfigurationseinstellungen.
Internationalisierungskonfiguration
Definiert Einstellungen zur Internationalisierung, einschließlich der verfügbaren Sprachen und der Standardsprache für die Anwendung.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
locales | Die Liste der unterstützten Sprachen in der Anwendung. | string[] | [Locales.ENGLISH] | ['en', 'fr', 'es'] | |
requiredLocales | Die Liste der erforderlichen Sprachen in der Anwendung. | string[] | [] | [] | • Wenn leer, sind alle Sprachen im strict Modus erforderlich.• Stellen Sie sicher, dass erforderliche Sprachen auch im locales Feld definiert sind. |
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.• Wenn "inclusive": Warnt vor fehlenden Sprachen, akzeptiert aber vorhandene, nicht deklarierte.• Wenn "loose": Akzeptiert jede vorhandene Sprache. | |
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. |
Editorkonfiguration
Definiert Einstellungen für den integrierten Editor, einschließlich Server-Port und Aktivierungsstatus.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
applicationURL | Die URL der Anwendung. | string | undefined | 'http://localhost:3000''https://example.com'process.env.INTLAYER_EDITOR_URL | • Wird aus Sicherheitsgründen verwendet, um die Herkunft des Editors einzuschränken. • Wenn auf '*' gesetzt, ist der Editor von jeder Quelle zugänglich. |
port | Der vom visuellen Editor-Server verwendete Port. | number | 8000 | ||
editorURL | Die URL des Editor-Servers. | string | 'http://localhost:8000' | 'http://localhost:3000''https://example.com'process.env.INTLAYER_EDITOR_URL | • Wird verwendet, um die Quellen einzuschränken, die mit der Anwendung interagieren können. • Wenn auf '*' gesetzt, von jeder Quelle zugänglich.• Sollte festgelegt werden, wenn der Port geändert wird oder der Editor auf einer anderen Domain gehostet wird. |
cmsURL | Die URL des Intlayer CMS. | string | 'https://app.intlayer.org' | 'https://app.intlayer.org' | |
backendURL | Die URL des Backend-Servers. | string | https://back.intlayer.org | http://localhost:4000 | |
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.• Deaktivierung für bestimmte Umgebungen erhöht die Sicherheit. |
clientId | Erlaubt Intlayer-Paketen die Authentifizierung beim Backend mittels oAuth2. Um ein Zugriffstoken zu erhalten, gehen Sie zu intlayer.org/project. | string | undefined | undefined | Geheim halten; in Umgebungsvariablen speichern. | |
clientSecret | Erlaubt Intlayer-Paketen die Authentifizierung beim Backend mittels oAuth2. Um ein Zugriffstoken zu erhalten, gehen Sie zu intlayer.org/project. | string | undefined | undefined | Geheim halten; in Umgebungsvariablen speichern. | |
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.• 'local_first': Priorisiert lokale vor entfernten. |
liveSync | Gibt an, ob der App-Server Inhalte im Hot-Reload-Verfahren aktualisieren soll, wenn eine Änderung im CMS Visual Editor Backend erkannt wird. | boolean | true | true | • Wenn ein Wörterbuch hinzugefügt/aktualisiert wird, aktualisiert die App den Seiteninhalt. • Live Sync verlagert Inhalte auf einen anderen Server, was die Leistung geringfügig beeinflussen kann. • Es wird empfohlen, beides auf derselben Maschine zu hosten. |
liveSyncPort | Der Port des Live Sync Servers. | number | 4000 | 4000 | |
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. |
Routing-Konfiguration
Einstellungen, die das Routing-Verhalten steuern, einschließlich URL-Struktur, Sprachspeicherung und Middleware-Handhabung.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
mode | URL-Routing-Modus für die Sprachbehandlung. | 'prefix-no-default' | 'prefix-all' | 'no-prefix' | '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. |
storage | Konfiguration für die Speicherung der Sprache im Client. | false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array | ['cookie', 'header'] | 'localStorage'[{ type: 'cookie', name: 'custom-locale', secure: true }] | Siehe Tabelle Speicheroptionen unten. |
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. |
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.• Funktioniert mit Next.js und Vite. • getLocalizedUrl() wendet passende Regeln automatisch an.• Siehe Benutzerdefinierte URL-Rewrites. |
domains | Verknüpft Sprachen mit Domain-Hostnamen für domainbasiertes Routing. Wenn festgelegt, verwenden URLs für eine Sprache diese Domain als Basis (absolute URL) und dem Pfad wird kein Sprachpräfix hinzugefügt. | Partial<Record<Locale, string>> | undefined | { zh: 'intlayer.zh', fr: 'intlayer.org' } | • Protokoll ist standardmäßig https://, wenn es nicht im Hostnamen enthalten ist.• Die Domain selbst identifiziert die Sprache, daher wird kein /zh/-Präfix hinzugefügt.• getLocalizedUrl('/', 'zh') gibt https://intlayer.zh/ zurück. |
rewrite Beispiel:
Kopieren Sie den Code in die Zwischenablage
routing: { mode: "prefix-no-default", // Fallback-Strategie rewrite: nextjsRewrite({ "/about": { en: "/about", fr: "/a-propos", }, "/product/[slug]": { en: "/product/[slug]", fr: "/produit/[slug]", }, "/blog/[category]/[id]": { en: "/blog/[category]/[id]", fr: "/journal/[category]/[id]", }, }),}Speicheroptionen
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Wert | Hinweis | Beschreibung |
|---|---|---|
'cookie' | • Stellen Sie für die DSGVO-Konformität eine ordnungsgemäße Benutzereinwilligung sicher. • 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. |
'localStorage' | • Kein Ablauf, außer explizit gelöscht. • Der Intlayer-Proxy kann nicht darauf zugreifen. • Anpassbar über StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }). | Speichert die Sprache im Browser ohne Ablauf - nur Clientseite. |
'sessionStorage' | • Gelöscht, wenn Tab/Fenster geschlossen wird. • Der Intlayer-Proxy kann nicht darauf zugreifen. • Anpassbar über StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }). | Speichert die Sprache für die Dauer der Seitensitzung - nur Clientseite. |
'header' | • Nützlich für API-Aufrufe. • Clientseite kann nicht darauf zugreifen. • Anpassbar über StorageAttributes ({ type: 'header', name: 'custom-locale' }). | Überträgt die Sprache über HTTP-Header - nur Serverseite. |
Cookie-Attribute
Wenn Sie Cookie-Speicherung verwenden, können Sie zusätzliche Cookie-Attribute konfigurieren:
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ |
|---|---|---|
name | Cookie-Name. Standard: 'INTLAYER_LOCALE' | string |
domain | Cookie-Domain. Standard: undefined | string |
path | Cookie-Pfad. Standard: undefined | string |
secure | HTTPS erforderlich. Standard: undefined | boolean |
httpOnly | HTTP-only Flag. Standard: undefined | boolean |
sameSite | SameSite-Richtlinie. | 'strict' | 'lax' | 'none' |
expires | Ablaufdatum oder Tage. Standard: undefined | Date | number |
Sprachspeicher-Attribute
Bei Verwendung von localStorage oder sessionStorage:
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ |
|---|---|---|
type | Speichertyp. | 'localStorage' | 'sessionStorage' |
name | Speicher-Schlüsselname. Standard: 'INTLAYER_LOCALE' | string |
Konfigurationsbeispiele
Hier sind einige gängige Konfigurationsbeispiele für die neue Routing-Struktur von v7:
Basiskonfiguration (Standard):
Kopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = { internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", storage: "localStorage", basePath: "", },};export default config;DSGVO-konforme Konfiguration:
Kopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = { internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", storage: [ { type: "localStorage", name: "user-locale", }, { type: "cookie", name: "user-locale", secure: true, sameSite: "strict", httpOnly: false, }, ], basePath: "", },};export default config;Suchparameter-Modus:
Kopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = { internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "search-params", storage: "localStorage", basePath: "", },};export default config;Modus ohne Präfix mit benutzerdefiniertem Speicher:
Kopieren Sie den Code in die Zwischenablage
import { Locales, type IntlayerConfig } from "intlayer";// intlayer.config.tsconst config: IntlayerConfig = { internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "no-prefix", storage: { type: "sessionStorage", name: "app-locale", }, basePath: "/my-app", },};export default config;Benutzerdefiniertes URL-Rewriting mit dynamischen Routen:
Kopieren Sie den Code in die Zwischenablage
// intlayer.config.tsimport { nextjsRewrite } from "intlayer/routing";const config: IntlayerConfig = { internationalization: { locales: ["en", "fr"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", // Fallback für nicht umgeschriebene Pfade storage: "cookie", rewrite: nextjsRewrite({ "/about": { en: "/about", fr: "/a-propos", }, "/product/[slug]": { en: "/product/[slug]", fr: "/produit/[slug]", }, "/blog/[category]/[id]": { en: "/blog/[category]/[id]", fr: "/journal/[category]/[id]", }, }), },};export default config;Inhaltskonfiguration
Einstellungen für die Inhaltsbehandlung in der Anwendung, einschließlich Verzeichnisnamen, Dateierweiterungen und abgeleiteter Konfigurationen.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
watch | Gibt an, ob Intlayer auf Änderungen in Inhaltsdeklarationsdateien achten soll, um Wörterbücher neu zu erstellen. | boolean | true | ||
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. |
contentDir | Der Verzeichnispfad, in dem Inhaltsdefinitionsdateien (.content.*) gespeichert sind. | string[] | ['.'] | ['src', '../../ui-library', require.resolve("@my-package/content"), '@my-package/content'] | Wird verwendet, um nach Inhaltsdateien zu suchen und Wörterbücher neu zu erstellen. |
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. • Die Trennung von contentDir kann die Leistung verbessern. |
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. | |
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.• Wenn nicht definiert, erkennt Intlayer dies automatisch (testet Prettier, Biome, ESLint). |
Wörterbuchkonfiguration
Einstellungen, die Wörterbuchoperationen steuern, einschließlich automatischem Ausfüllverhalten und Inhaltsgenerierung.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
fill | Steuert, wie die Ausgabedateien für das automatische Ausfüllen (KI-Übersetzung) generiert werden. | boolean | FilePathPattern | 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).• false: Deaktivieren.• String-/Funktionsmuster erzeugt Dateien pro Sprache. • Objekt pro Sprache: Jede Sprache entspricht ihrem eigenen Muster; false ignoriert diese Sprache.• Das Einschließen von {{locale}} aktiviert die Pro-Sprache-Generierung.• fill auf Wörterbuchebene hat immer Vorrang vor dieser globalen Einstellung. |
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' | |
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. |
contentAutoTransformation | Transformiert Inhaltsstrings automatisch in typisierte Knoten (Markdown, HTML oder Insertion). | boolean | { markdown?: boolean; html?: boolean; insertion?: boolean } | false | true | • Markdown : ### Title → md('### Title').• HTML : <div>Title</div> → html('<div>Title</div>').• Insertion : Hallo {{name}} → insert('Hallo {{name}}'). |
location | Gibt an, wo Wörterbuchdateien gespeichert werden und wie sie mit dem CMS synchronisiert werden. | 'local' | 'remote' | 'hybrid' | 'plugin' | string | 'local' | 'hybrid' | • 'local': Nur lokal verwaltet.• 'remote': Nur remote verwaltet (CMS).• 'hybrid': Sowohl lokal als auch remote verwaltet.• 'plugin' oder benutzerdefinierter String: Von einem Plugin oder einer benutzerdefinierten Quelle verwaltet. |
importMode | Steuert, wie Wörterbücher importiert werden. | 'static' | 'dynamic' | 'fetch' | 'static' | 'dynamic' | • 'static': Statisch importiert.• 'dynamic': Dynamisch mittels Suspense importiert.• 'fetch': Über Live Sync API abgerufen; Fallback auf 'dynamic', falls fehlgeschlagen.• Erfordert @intlayer/babel und @intlayer/swc Plugins.• Schlüssel müssen statisch deklariert sein. • Wird ignoriert, wenn optimize deaktiviert ist.• Beeinflusst nicht getIntlayer, getDictionary, etc. |
priority | Priorität des Wörterbuchs. Höhere Werte gewinnen beim Lösen von Konflikten zwischen Wörterbüchern. | number | undefined | 1 | |
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. | |
schema | Wird automatisch von Intlayer für die JSON-Schema-Validierung generiert. | 'https://intlayer.org/schema.json' | automatisch generiert | Nicht manuell bearbeiten. | |
title | Hilft bei der Identifizierung des Wörterbuchs im Editor und CMS. | string | undefined | 'Benutzerprofil' | |
tags | Kategorisiert Wörterbücher und bietet Kontext oder Anweisungen für den Editor und die KI. | string[] | undefined | ['benutzer', 'profil'] | |
version | Version des entfernten Wörterbuchs; hilft bei der Verfolgung der aktuell verwendeten Version. | string | undefined | '1.0.0' | • Verwaltbar im CMS. • Nicht lokal bearbeiten. |
fill Beispiel:
Kopieren Sie den Code in die Zwischenablage
dictionary: { fill: { en: "/locales/en/{{key}}.content.json", fr: ({ key }) => `/locales/fr/${key}.content.json`, es: false, },};Logger-Konfiguration
Einstellungen zur Anpassung der Protokollausgabe (Logs) von Intlayer.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
mode | Steuert den Modus des Loggers. | 'default' | 'verbose' | 'disabled' | 'default' | 'verbose' | • 'verbose': Protokolliert mehr Informationen für das Debugging.• 'disabled': Deaktiviert den Logger vollständig. |
prefix | Das Präfix für Protokollnachrichten. | string | '[intlayer] ' | '[mein präfix] ' |
KI-Konfiguration
Einstellungen, die die KI-Funktionen von Intlayer steuern, einschließlich Anbieter, Modell und API-Schlüssel.
Diese Konfiguration ist optional, wenn Sie im Intlayer Dashboard 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.
Wenn Sie lieber Ihren eigenen API-Schlüssel oder ein bestimmtes Modell verwenden möchten, können Sie Ihre benutzerdefinierte KI-Konfiguration definieren.
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.
Intlayer unterstützt mehrere KI-Anbieter für maximale Flexibilität. Derzeit unterstützte Anbieter sind:
- OpenAI (Standard)
- Anthropic Claude
- Mistral AI
- DeepSeek
- Google Gemini
- Google AI Studio
- Google Vertex
- Meta Llama
- Ollama
- OpenRouter
- Alibaba Cloud
- Fireworks
- Hugging Face
- Groq
- Amazon Bedrock
- Together.ai
- LM Studio
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
provider | Der für Intlayer KI-Funktionen zu verwendende Anbieter. | 'openai' | 'anthropic' | 'mistral' | 'deepseek' | 'gemini' | 'ollama' | 'openrouter' | 'alibaba' | 'fireworks' | 'groq' | 'huggingface' | 'bedrock' | 'googleaistudio' | 'googlevertex' | 'togetherai' | 'lmstudio' | undefined | 'anthropic' | Verschiedene Anbieter erfordern unterschiedliche API-Schlüssel und haben unterschiedliche Preismodelle. |
model | Das für die KI-Funktionen zu verwendende Modell. | string | Keines | 'gpt-4o-2024-11-20' | Das spezifische Modell variiert je nach Anbieter. |
temperature | Steuert den Zufallsfaktor der KI-Antworten. | number | Keines | 0.1 | Höhere Temperatur = kreativer und weniger vorhersehbar. |
apiKey | Ihr API-Schlüssel für den ausgewählten Anbieter. | string | Keines | process.env.OPENAI_API_KEY | Geheim halten; in Umgebungsvariablen speichern. |
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"). |
baseURL | Die Basis-URL für die KI-API. | string | Keines | 'https://api.openai.com/v1''http://localhost:5000' | Kann auf einen lokalen oder benutzerdefinierten KI-API-Endpunkt zeigen. |
dataSerialization | Datenserialisierungsformat für die KI-Funktionen. | 'json' | 'toon' | undefined | 'toon' | • 'json': Standard, zuverlässig; verbraucht mehr Tokens.• 'toon': Weniger Tokens, weniger konsistent.• Zusätzliche Parameter werden an das Modell als Kontext übergeben (Abstraktionsaufwand etc.). |
Build-Konfiguration
Einstellungen, die steuern, wie Intlayer die Internationalisierung Ihrer Anwendung optimiert und erstellt.
Die Build-Optionen gelten für die Plugins @intlayer/babel und @intlayer/swc.
Im Entwicklungsmodus verwendet Intlayer statische Importe für Wörterbücher, um die Entwicklung zu vereinfachen.
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.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
mode | Steuert den Build-Modus. | 'auto' | 'manual' | 'auto' | 'manual' | • 'auto': Build wird automatisch während des App-Builds ausgelöst.• 'manual': Wird nur ausgeführt, wenn der Build-Befehl explizit aufgerufen wird.• Kann verwendet werden, um Wörterbuch-Builds zu deaktivieren (z. B. um die Ausführung in Node.js-Umgebungen zu vermeiden). |
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. • true erzwingt die Optimierung auch im Dev-Modus.• false deaktiviert sie.• Wenn aktiv, ersetzt es Wörterbuch-Aufrufe zur Chunking-Optimierung. • Erfordert @intlayer/babel und @intlayer/swc Plugins. |
minify | Dictionarien minimieren, um die Bundle-Größe zu reduzieren. | boolean | false | • Gibt an, ob das Bundle minimiert werden soll. • Standard: true in Produktion.• Diese Option wird ignoriert, wenn optimize deaktiviert ist.• Diese Option wird ignoriert, wenn editor.enabled auf true gesetzt ist. | |
purge | Nicht verwendete Schlüssel in Dictionarien entfernen. | boolean | false | • Gibt an, ob das Bundle bereinigt werden soll. • Standard: true in Produktion.• Diese Option wird ignoriert, wenn optimize deaktiviert ist. | |
checkTypes | Gibt an, ob der Build TypeScript-Typen prüfen und Fehler protokollieren soll. | boolean | false | Kann den Build-Prozess verlangsamen. | |
outputFormat | Steuert das Ausgabeformat der Wörterbücher. | ('esm' | 'cjs')[] | ['esm', 'cjs'] | ['cjs'] | |
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. • Wird ignoriert, wenn optimize deaktiviert ist.• Verwendet Glob-Muster. |
Systemkonfiguration
Diese Einstellungen sind für fortgeschrittene Anwendungsfälle und die interne Konfiguration von Intlayer gedacht.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
dictionariesDir | Verzeichnis für kompilierte Wörterbücher. | string | '.intlayer/dictionary' | ||
moduleAugmentationDir | Verzeichnis für die TypeScript-Modul-Augmentierung. | string | '.intlayer/types' | ||
unmergedDictionariesDir | Verzeichnis für nicht zusammengeführte Wörterbücher. | string | '.intlayer/unmerged_dictionary' | ||
typesDir | Verzeichnis für generierte Typen. | string | '.intlayer/types' | ||
mainDir | Verzeichnis für die Intlayer-Hauptdatei. | string | '.intlayer/main' | ||
configDir | Verzeichnis für kompilierte Konfigurationsdateien. | string | '.intlayer/config' | ||
cacheDir | Verzeichnis für Cache-Dateien. | string | '.intlayer/cache' |
Compiler-Konfiguration
Einstellungen, die den Intlayer-Compiler steuern, der Wörterbücher direkt aus Ihren Komponenten extrahiert.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ | Standard | Beispiel | Hinweis |
|---|---|---|---|---|---|
enabled | Gibt an, ob der Compiler für die Extraktion von Wörterbüchern aktiviert sein soll. | boolean | '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. |
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. |
saveComponents | Gibt an, ob die Komponenten nach der Transformation gespeichert werden sollen. | boolean | false | • Wenn true, schreibt der Compiler die Komponentendatei auf die Festplatte um. Die Transformation ist dauerhaft und der Compiler kann anschließend entfernt werden.• Wenn false, fügt der Compiler den useIntlayer() Funktionsaufruf nur in den Code der Build-Ausgabe ein und lässt die Basis-Code-Basis intakt. | |
output | Definiert den Pfad für Ausgabedateien. Ersetzt outputDir. Unterstützt Template-Variablen: {{fileName}}, {{key}}, {{locale}}, {{extension}}, {{componentFileName}}, {{componentExtension}}, {{format}}, {{componentFormat}}, {{componentDirPath}}. | boolean | FilePathPattern | Partial<Record<Locale, boolean | FilePathPattern>> | undefined | './{{fileName}}{{extension}}''/locales/{{locale}}/{{key}}.json'{ en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false } | • ./ Pfade werden relativ zum Komponentenverzeichnis aufgelöst.• / Pfade relativ zum Stamm.• {{locale}} löst die Pro-Sprache-Generierung aus.• Unterstützt objektweise Notation pro Sprache. |
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"}}true → {"key":"wert"} | • Nützlich für i18next oder ICU MessageFormat JSON-Ausgaben. • Funktioniert gut mit dem loadJSON Plugin. |
dictionaryKeyPrefix | Wörterbuch-Schlüsselpräfix | string | '' | Fügen Sie ein optionales Präfix für die extrahierten Wörterbuchschlüssel hinzu |
Benutzerdefinierte Schemata (Custom Schemas)
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ |
|---|---|---|
schemas | Erlaubt die Definition von Zod-Schemata zur Validierung der Struktur Ihrer Wörterbücher. | Record<string, ZodSchema> |
Plugins
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Feld | Beschreibung | Typ |
|---|---|---|
plugins | Liste der zu aktivierenden Intlayer-Plugins. | IntlayerPlugin[] |