Intlayer Konfigurationsdokumentation
Überblick
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.
Unterstützte Konfigurationsdateien
Intlayer akzeptiert die Formate JSON, JS, MJS und TS für Konfigurationsdateien:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
Beispielkonfigurationsdatei
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH], }, content: { typesDir: "content/types", }, middleware: { noPrefix: false, },};export default config;
Konfigurationsreferenz
Die folgenden Abschnitte beschreiben die verschiedenen Konfigurationseinstellungen, die für Intlayer verfügbar sind.
Internationalisierungskonfiguration
Definiert Einstellungen zur Internationalisierung, einschließlich verfügbarer Sprachen und der Standardsprache für die Anwendung.
Eigenschaften
locales:
- Typ: string[]
- Standard: ['en']
- Beschreibung: Die Liste der unterstützten Sprachen in der Anwendung.
- Beispiel: ['en', 'fr', 'es']
- requiredLocales:
- Typ: string[]
- Standard: []
- Beschreibung: Die Liste der erforderlichen Sprachen in der Anwendung.
- Beispiel: []
- Hinweis: Wenn leer, sind im strict-Modus alle Sprachen erforderlich.
- Hinweis: Stellen Sie sicher, dass erforderliche Sprachen auch im Feld locales definiert sind.
strictMode:
- Typ: string
- Standard: inclusive
- Beschreibung: Stellt sicher, dass internationalisierte Inhalte mit TypeScript stark implementiert werden.
- Hinweis: Wenn auf "strict" gesetzt, erfordert 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.
- Hinweis: Wenn auf "inclusive" gesetzt, erfordert 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 ist, aber existiert.
- Hinweis: Wenn auf "loose" gesetzt, akzeptiert die Übersetzungsfunktion t jede vorhandene Sprache.
defaultLocale:
- Typ: string
- Standard: 'en'
- Beschreibung: Die Standardsprache, die als Fallback verwendet wird, wenn die angeforderte Sprache nicht gefunden wird.
- Beispiel: 'en'
- Hinweis: Dies wird verwendet, um die Sprache zu bestimmen, wenn keine in der URL, im Cookie oder im Header angegeben ist.
Editor-Konfiguration
Definiert Einstellungen für den integrierten Editor, einschließlich Serverport und Aktivierungsstatus.
Eigenschaften
applicationURL:
- Typ: string
- Standard: '*'
- Beschreibung: Die URL der Anwendung. Wird verwendet, um den Ursprung des Editors aus Sicherheitsgründen einzuschränken.
- Beispiel:
- '*'
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- Hinweis: Die URL der Anwendung. Wird verwendet, um den Ursprung des Editors aus Sicherheitsgründen einzuschränken. Wenn auf '*' gesetzt, ist der Editor von jedem Ursprung aus zugänglich.
port:
- Typ: number
- Standard: 8000
- Beschreibung: Der Port, der vom visuellen Editor-Server verwendet wird.
editorURL:
- Typ: string
- Standard: 'http://localhost:8000'
- Beschreibung: Die URL des Editor-Servers. Wird verwendet, um den Ursprung des Editors aus Sicherheitsgründen einzuschränken.
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- ''*'
- Hinweis: Die URL des Editor-Servers, die von der Anwendung erreicht werden soll. Wird verwendet, um die Ursprünge einzuschränken, die mit der Anwendung 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.
cmsURL:
- Typ: string
- Standard: 'https://intlayer.org'
- Beschreibung: Die URL des Intlayer CMS.
- Beispiel: 'https://intlayer.org'
- Hinweis: Die URL des Intlayer CMS.
backendURL:
- Typ: string
- Standard: https://back.intlayer.org
- Beschreibung: Die URL des Backend-Servers.
- Beispiel: http://localhost:4000
enabled:
- Typ: boolean
- Standard: true
- Beschreibung: Gibt an, ob die Anwendung mit dem visuellen Editor interagiert.
- Beispiel: process.env.NODE_ENV !== 'production'
- 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 gewährleisten.
clientId:
- Typ: string | undefined
- Standard: undefined
- Beschreibung: clientId und clientSecret ermöglichen es den Intlayer-Paketen, sich mit dem Backend über 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://intlayer.org/dashboard/project und erstellen Sie ein Konto.
- Beispiel: true
- 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.
clientSecret:
- Typ: string | undefined
- Standard: undefined
- Beschreibung: clientId und clientSecret ermöglichen es den Intlayer-Paketen, sich mit dem Backend über 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://intlayer.org/dashboard/project und erstellen Sie ein Konto.
- Beispiel: true
- 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.
hotReload:
- Typ: boolean
- Standard: false
- Beschreibung: Gibt an, ob die Anwendung die Sprachkonfigurationen bei einer Änderung automatisch neu laden soll.
- Beispiel: true
- Hinweis: Wenn z. B. ein neues Wörterbuch hinzugefügt oder aktualisiert wird, wird die Anwendung den Inhalt auf der Seite aktualisieren.
- Hinweis: Da das Hot-Reloading eine kontinuierliche Verbindung zum Server erfordert, ist es nur für Kunden des Enterprise-Plans verfügbar.
dictionaryPriorityStrategy:
- Typ: string
- Standard: 'local_first'
- 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, wird die Anwendung entfernte Wörterbücher gegenüber lokalen Wörterbüchern priorisieren. Wenn auf 'local_first' gesetzt, wird die Anwendung lokale Wörterbücher gegenüber entfernten Wörterbüchern priorisieren.
- Beispiel: 'distant_first'
Middleware-Konfiguration
Einstellungen, die das Verhalten der Middleware steuern, einschließlich der Handhabung von Cookies, Headern und URL-Präfixen für die Sprachverwaltung.
Eigenschaften
- headerName:
- Typ: string
- Standard: 'x-intlayer-locale'
- Beschreibung: Der Name des HTTP-Headers, der zur Bestimmung der Sprache verwendet wird.
- Beispiel: 'x-custom-locale'
- Hinweis: Dies ist nützlich für die API-basierte Sprachbestimmung.
- cookieName:
- Typ: string
- Standard: 'intlayer-locale'
- Beschreibung: Der Name des Cookies, das zur Speicherung der Sprache verwendet wird.
- Beispiel: 'custom-locale'
- Hinweis: Wird verwendet, um die Sprache über Sitzungen hinweg beizubehalten.
- prefixDefault:
- Typ: boolean
- Standard: true
- Beschreibung: Ob die Standardsprache in der URL enthalten sein soll.
- Beispiel: false
- Hinweis: Wenn false, enthalten URLs für die Standardsprache kein Sprachpräfix.
- basePath:
- Typ: string
- Standard: ''
- Beschreibung: Der Basispfad für die URLs der Anwendung.
- Beispiel: '/my-app'
- Hinweis: Dies beeinflusst, wie URLs für die Anwendung konstruiert werden.
- serverSetCookie:
- Typ: string
- Standard: 'always'
- Beschreibung: Regel zum Setzen des Sprach-Cookies auf dem Server.
- Optionen: 'always', 'never'
- Beispiel: 'never'
- Hinweis: Steuert, ob das Sprach-Cookie bei jeder Anfrage oder nie gesetzt wird.
- noPrefix:
- Typ: boolean
- Standard: false
- Beschreibung: Ob das Sprachpräfix aus URLs weggelassen werden soll.
- Beispiel: true
- Hinweis: Wenn true, enthalten URLs keine Sprachinformationen.
Inhaltskonfiguration
Einstellungen zur Inhaltsverwaltung innerhalb der Anwendung, einschließlich Verzeichnisnamen, Dateierweiterungen und abgeleiteter Konfigurationen.
Eigenschaften
- watch:
- Typ: boolean
- Standard: process.env.NODE_ENV === 'development'
- Beschreibung: Gibt an, ob Intlayer Änderungen an den Inhaltsdeklarationsdateien in der App überwachen soll, um die zugehörigen Wörterbücher neu zu erstellen.
- fileExtensions:
- Typ: string[]
- Standard: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
- Beschreibung: Dateierweiterungen, nach denen beim Erstellen von Wörterbüchern gesucht wird.
- Beispiel: ['.data.ts', '.data.js', '.data.json']
- Hinweis: Die Anpassung von Dateierweiterungen kann helfen, Konflikte zu vermeiden.
- baseDir:
- Typ: string
- Standard: process.cwd()
- Beschreibung: Das Basisverzeichnis für das Projekt.
- Beispiel: '/path/to/project'
- Hinweis: Dies wird verwendet, um alle Intlayer-bezogenen Verzeichnisse aufzulösen.
- dictionaryOutput:
- Typ: string[]
- Standard: ['intlayer']
- Beschreibung: Der Typ der Wörterbuchausgabe, z. B. 'intlayer' oder 'i18next'.
- contentDirName:
- Typ: string
- Standard: 'src'
- Beschreibung: Der Name des Verzeichnisses, in dem die Inhalte gespeichert sind.
- Beispiel: 'data', 'content', 'locales'
- Hinweis: Wenn nicht auf der Basisebene des Verzeichnisses, aktualisieren Sie das contentDir.
contentDir:
- Typ: string
- AbgeleitetVon: 'baseDir' / 'contentDirName'
- Beschreibung: Der Verzeichnispfad, in dem Inhalte gespeichert sind.
- resultDirName:
- Typ: string
- Standard: '.intlayer'
- Beschreibung: Der Name des Verzeichnisses, in dem Ergebnisse gespeichert werden.
- Beispiel: 'outputOFIntlayer'
- Hinweis: Wenn dieses Verzeichnis nicht auf der Basisebene ist, aktualisieren Sie resultDir.
resultDir:
- Typ: string
- AbgeleitetVon: 'baseDir' / 'resultDirName'
- Beschreibung: Der Verzeichnispfad für die Speicherung von Zwischen- oder Ausgaberesultaten.
moduleAugmentationDirName:
- Typ: string
- Standard: 'types'
- Beschreibung: Verzeichnis für Modulerweiterungen, die bessere IDE-Vorschläge und Typüberprüfungen ermöglichen.
- Beispiel: 'intlayer-types'
- Hinweis: Stellen Sie sicher, dass dies in tsconfig.json enthalten ist.
moduleAugmentationDir:
- Typ: string
- AbgeleitetVon: 'baseDir' / 'moduleAugmentationDirName'
- Beschreibung: Der Pfad für Modulerweiterungen und zusätzliche Typdefinitionen.
- dictionariesDirName:
- Typ: string
- Standard: 'dictionary'
- Beschreibung: Verzeichnis zur Speicherung von Wörterbüchern.
- Beispiel: 'translations'
- Hinweis: Wenn nicht auf der Ergebnisebene des Verzeichnisses, aktualisieren Sie dictionariesDir.
dictionariesDir:
- Typ: string
- AbgeleitetVon: 'resultDir' / 'dictionariesDirName'
- Beschreibung: Das Verzeichnis zur Speicherung von Lokalisierungswörterbüchern.
- i18nextResourcesDirName:
- Typ: string
- Standard: 'i18next_dictionary'
- Beschreibung: Verzeichnis zur Speicherung von i18n-Wörterbüchern.
- Beispiel: 'translations'
- Hinweis: Wenn nicht auf der Ergebnisebene des Verzeichnisses, aktualisieren Sie i18nextResourcesDir.
- Hinweis: Stellen Sie sicher, dass die i18n-Wörterbuchausgabe i18next enthält, um die Wörterbücher für i18next zu erstellen.
i18nextResourcesDir:
- Typ: string
- AbgeleitetVon: 'resultDir' / 'i18nextResourcesDirName'
- Beschreibung: Das Verzeichnis zur Speicherung von i18n-Wörterbüchern.
- Hinweis: Stellen Sie sicher, dass dieses Verzeichnis für den i18next-Ausgabetyp konfiguriert ist.
typeDirName:
- Typ: string
- Standard: 'types'
- Beschreibung: Verzeichnis zur Speicherung von Wörterbuchtypen.
- Beispiel: 'intlayer-types'
- Hinweis: Wenn nicht auf der Ergebnisebene des Verzeichnisses, aktualisieren Sie typesDir.
typesDir:
- Typ: string
- AbgeleitetVon: 'resultDir' / 'typeDirName'
- Beschreibung: Das Verzeichnis zur Speicherung von Wörterbuchtypen.
- mainDirName:
- Typ: string
- Standard: 'main'
- Beschreibung: Verzeichnis zur Speicherung von Hauptdateien.
- Beispiel: 'intlayer-main'
- Hinweis: Wenn nicht auf der Ergebnisebene des Verzeichnisses, aktualisieren Sie mainDir.
- mainDir:
- Typ: string
- AbgeleitetVon: 'resultDir' / 'mainDirName'
- Beschreibung: Das Verzeichnis, in dem Hauptanwendungsdateien gespeichert sind.
- excludedPath:
- Typ: string[]
- Standard: ['node_modules']
- Beschreibung: Verzeichnisse, die von der Inhaltssuche ausgeschlossen sind.
- Hinweis: Diese Einstellung wird derzeit nicht verwendet, ist jedoch für zukünftige Implementierungen geplant.
Logger-Konfiguration
Einstellungen, die den Logger steuern, einschließlich des zu verwendenden Präfixes.
Eigenschaften
- mode:
- Typ: string
- Standard: default
- Beschreibung: Gibt den Modus des Loggers an.
- Optionen: default, verbose, disabled
- Beispiel: default
- Hinweis: Der Modus des Loggers. Der Verbose-Modus protokolliert mehr Informationen, kann jedoch für Debugging-Zwecke verwendet werden. Der deaktivierte Modus deaktiviert den Logger.
- prefix:
- Typ: string
- Standard: '[intlayer] '
- Beschreibung: Das Präfix des Loggers.
- Beispiel: '[my custom prefix] '
- Hinweis: Das Präfix des Loggers.
Wenn Sie eine Idee haben, um diese Dokumentation zu verbessern, zögern Sie bitte nicht, durch das Einreichen eines Pull-Requests auf GitHub beizutragen.
GitHub-Link zur Dokumentation