Intlayer Konfigurationsdokumentation

    Übersicht

    Die Intlayer-Konfigurationsdateien ermöglichen die Anpassung verschiedener Aspekte des Plugins, wie Internationalisierung, Middleware und Inhaltsverarbeitung. Dieses Dokument bietet eine detaillierte Beschreibung jedes Attributs in der Konfiguration.


    Unterstützung von Konfigurationsdateien

    Intlayer akzeptiert die folgenden Formate für Konfigurationsdateien: JSON, JS, MJS und TS:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Beispielkonfigurationsdatei

    intlayer.config.ts
    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 verfügbaren Konfigurationseinstellungen für Intlayer.


    Internationalisierungs-Konfiguration

    Definiert Einstellungen, die mit der Internationalisierung zusammenhängen, einschließlich verfügbarer Lokalisierungen und der Standardlokalisierung für die Anwendung.

    Eigenschaften

    • locales:
      • Typ: string[]
      • Standard: ['en']
      • Beschreibung: Die Liste der unterstützten Lokalisierungen in der Anwendung.
      • Beispiel: ['en', 'fr', 'es']
    • strictMode:

      • Typ: string
      • Standard: required_only
      • Beschreibung: Stellt sicher, dass die Durchsetzung internationalisierter Inhalte mithilfe von TypeScript stark ist.
      • Hinweis: Wenn auf "strict" gesetzt, erfordert die Übersetzungsfunktion t, dass jede deklarierte Lokalisierung definiert ist. Wenn eine Lokalisierung fehlt oder in Ihrer Konfiguration nicht deklariert ist, wird ein Fehler ausgegeben.
      • Hinweis: Wenn auf "required_only" gesetzt, erfordert die Übersetzungsfunktion t, dass jede deklarierte Lokalisierung definiert ist. Wenn eine Lokalisierung fehlt, wird eine Warnung ausgegeben. Aber akzeptiert, wenn eine Lokalisierung nicht in Ihrer Konfiguration deklariert ist, aber existiert.
      • Hinweis: Wenn auf "loose" gesetzt, akzeptiert die Übersetzungsfunktion t jede vorhandene Lokalisierung.
    • defaultLocale:

      • Typ: string
      • Standard: 'en'
      • Beschreibung: Die Standardlokalisierung, die als Fallback verwendet wird, wenn die angeforderte Lokalisierung nicht gefunden wird.
      • Beispiel: 'en'
      • Hinweis: Dies wird verwendet, um die Lokalisierung zu bestimmen, wenn in der URL, im Cookie oder im Header keine angegeben ist.

    Editor-Konfiguration

    Definiert Einstellungen, die mit dem integrierten Editor zusammenhängen, einschließlich Serverport und aktivem Status.

    Eigenschaften

    • 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 der Editor aktiv ist.
      • Beispiel: true
      • Hinweis: Kann mit NODE_ENV oder einer anderen dedizierten Umgebungsvariable gesetzt werden
    • 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 in Bezug auf das Projekt zu authentifizieren. Um ein Zugriffstoken zu erhalten, gehen Sie zu /dashboard/project und erstellen Sie ein Konto.
      • Beispiel: true
      • Hinweis: Wichtig: clientId und clientSecret sollten geheim gehalten und nicht öffentlich geteilt werden. Bitte stellen Sie sicher, dass Sie sie an einem sicheren Ort, wie z. B. Umgebungsvariablen, aufbewahren.
    • 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 in Bezug auf das Projekt zu authentifizieren. Um ein Zugriffstoken zu erhalten, gehen Sie zu /dashboard/project und erstellen Sie ein Konto.
      • Beispiel: true
      • Hinweis: Wichtig: clientId und clientSecret sollten geheim gehalten und nicht öffentlich geteilt werden. Bitte stellen Sie sicher, dass Sie sie an einem sicheren Ort, wie z. B. Umgebungsvariablen, aufbewahren.

    Middleware-Konfiguration

    Einstellungen, die das Verhalten der Middleware steuern, einschließlich, wie die Anwendung Cookies, Header und URL-Präfixe für die Lokalisierungsverwaltung behandelt.

    Eigenschaften

    • headerName:
      • Typ: string
      • Standard: 'x-intlayer-locale'
      • Beschreibung: Der Name des HTTP-Headers, der zur Bestimmung der Lokalisierung verwendet wird.
      • Beispiel: 'x-custom-locale'
      • Hinweis: Dies ist nützlich für die API-basierte Lokalisierungsbestimmung.
    • cookieName:
      • Typ: string
      • Standard: 'intlayer-locale'
      • Beschreibung: Der Name des Cookies, der verwendet wird, um die Lokalisierung zu speichern.
      • Beispiel: 'custom-locale'
      • Hinweis: Wird verwendet, um die Lokalisierung über Sitzungen hinweg beizubehalten.
    • prefixDefault:
      • Typ: boolean
      • Standard: true
      • Beschreibung: Ob die Standardlokalisierung in der URL enthalten sein soll.
      • Beispiel: false
      • Hinweis: Wenn false, haben URLs für die Standardlokalisierung kein Lokalisierungspräfix.
    • basePath:
      • Typ: string
      • Standard: ''
      • Beschreibung: Der Basis-Pfad für die Anwendungs-URLs.
      • Beispiel: '/my-app'
      • Hinweis: Dies beeinflusst, wie URLs für die Anwendung aufgebaut werden.
    • serverSetCookie:
      • Typ: string
      • Standard: 'always'
      • Beschreibung: Regel zum Setzen des Lokalisierungs-Cookies auf dem Server.
      • Optionen: 'always', 'never'
      • Beispiel: 'never'
      • Hinweis: Steuert, ob das Lokalisierungs-Cookie bei jeder Anfrage gesetzt wird oder niemals.
    • noPrefix:
      • Typ: boolean
      • Standard: false
      • Beschreibung: Ob das Lokalisierungspräfix aus den URLs weggelassen werden soll.
      • Beispiel: true
      • Hinweis: Wenn true, enthalten URLs keine Lokalisierungsinformationen.

    Inhaltskonfiguration

    Einstellungen, die sich auf die Inhaltsverarbeitung innerhalb der Anwendung beziehen, einschließlich Verzeichnisnamen, Dateiendungen und abgeleitete Konfigurationen.

    Eigenschaften

    • watch:
      • Typ: boolean
      • Standard: process.env.NODE_ENV === 'development'
      • Beschreibung: Gibt an, ob Intlayer Änderungen in den Inhaltdokumenten der App beobachten soll, um die entsprechenden 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: Dateiendungen, nach denen beim Erstellen von Wörterbüchern gesucht wird.
      • Beispiel: ['.data.ts', '.data.js', '.data.json']
      • Hinweis: Die Anpassung der Dateiendungen 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 zu verwendenden Wörterbuchausgabe, z. B. 'intlayer' oder 'i18next'.
    • contentDirName:
      • Typ: string
      • Standard: 'src'
      • Beschreibung: Der Name des Verzeichnisses, in dem der Inhalt gespeichert ist.
      • Beispiel: 'data', 'content', 'locales'
      • Hinweis: Wenn nicht auf der Basisverzeichnisebene, aktualisieren Sie das contentDir.
    • contentDir:

      • Typ: string
      • AbgeleitetVon: 'baseDir' / 'contentDirName'
      • Beschreibung: Der Verzeichnispfad, in dem der Inhalt gespeichert ist.
    • resultDirName:
      • Typ: string
      • Standard: '.intlayer'
      • Beschreibung: Der Name des Verzeichnisses, in dem die 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 Ausgabewerten.
    • moduleAugmentationDirName:

      • Typ: string
      • Standard: 'types'
      • Beschreibung: Verzeichnis für Modulvergrößerungen, das bessere IDE-Vorschläge und Typprüfungen ermöglicht.
      • 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 Modulvergrößerungen und zusätzliche Typdefinitionen.
    • dictionariesDirName:
      • Typ: string
      • Standard: 'dictionary'
      • Beschreibung: Verzeichnis zum Speichern von Wörterbüchern.
      • Beispiel: 'translations'
      • Hinweis: Wenn nicht auf der Ergebnisverzeichnisebene, aktualisieren Sie dictionariesDir.
    • dictionariesDir:

      • Typ: string
      • AbgeleitetVon: 'resultDir' / 'dictionariesDirName'
      • Beschreibung: Das Verzeichnis zum Speichern von Lokalisierungswörterbüchern.
    • i18nextResourcesDirName:
      • Typ: string
      • Standard: 'i18next_dictionary'
      • Beschreibung: Verzeichnis zum Speichern von i18n-Wörterbüchern.
      • Beispiel: 'translations'
      • Hinweis: Wenn nicht auf der Ergebnisverzeichnisebene, aktualisieren Sie i18nextResourcesDir.
      • Hinweis: Stellen Sie sicher, dass die Ausgabe der i18n-Wörterbücher i18next umfasst, um die Wörterbücher für i18next zu erstellen.
    • i18nextResourcesDir:

      • Typ: string
      • AbgeleitetVon: 'resultDir' / 'i18nextResourcesDirName'
      • Beschreibung: Das Verzeichnis zum Speichern 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 zum Speichern von Wörterbuchtypen.
      • Beispiel: 'intlayer-types'
      • Hinweis: Wenn nicht auf der Ergebnisverzeichnisebene, aktualisieren Sie typesDir.
    • typesDir:

      • Typ: string
      • AbgeleitetVon: 'resultDir' / 'typeDirName'
      • Beschreibung: Das Verzeichnis zum Speichern von Wörterbuchtypen.
    • mainDirName:
      • Typ: string
      • Standard: 'main'
      • Beschreibung: Verzeichnis zum Speichern von Hauptdateien.
      • Beispiel: 'intlayer-main'
      • Hinweis: Wenn nicht auf der Ergebnisverzeichnisebene, aktualisieren Sie mainDir.
    • mainDir:
      • Typ: string
      • AbgeleitetVon: 'resultDir' / 'mainDirName'
      • Beschreibung: Das Verzeichnis, in dem die Hauptanwendungsdateien gespeichert sind.
    • excludedPath:
      • Typ: string[]
      • Standard: ['node_modules']
      • Beschreibung: Verzeichnisse, die von der Inhaltssuche ausgeschlossen sind.
      • Hinweis: Diese Einstellung wird noch nicht verwendet, ist jedoch für eine zukünftige Implementierung geplant.

    Logger-Konfiguration

    Einstellungen zur Steuerung des Loggers, einschließlich des Loglevels und des verwendeten Präfixes.

    Eigenschaften

    • enabled:
      • Typ: boolean
      • Standard: true
      • Beschreibung: Gibt an, ob der Logger aktiviert ist.
      • Beispiel: true
      • Hinweis: Kann mit NODE_ENV oder einer anderen dedizierten Umgebungsvariable gesetzt werden.
    • level:
      • Typ: 'info' | 'warn' | 'debug' | 'log'
      • Standard: 'log'
      • Beschreibung: Das Level des Loggers.
      • Beispiel: 'info'
      • Hinweis: Das Level des Loggers. Es kann entweder 'log', 'info', 'warn', 'error' oder 'debug' sein.
    • prefix:
      • Typ: string
      • Standard: '[intlayer] '
      • Beschreibung: Das Präfix des Loggers.
      • Beispiel: '[mein benutzerdefiniertes Präfix] '
      • 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