Konfiguration

Konfigurationsdokumentation für die Datei gt.config.json

Übersicht

Die Datei gt.config.json wird verwendet, um die GT-Einstellungen Ihres Projekts zu konfigurieren. Sie sollte im Stammverzeichnis Ihres Projekts platziert werden.

Der CLI-Setup-Assistent npx gtx-cli init erstellt eine gt.config.json-Datei für Sie in Ihrem Projekt.

Konfiguration

Die gt.config.json Datei akzeptiert die folgenden Eigenschaften, ist aber nicht darauf beschränkt:

  • defaultLocale: Die Standard-Locale für Ihr Projekt. Dies ist die Locale, in der Ihr Quellinhalt geschrieben ist. Dies ist auch die Fallback-Locale für Ihr Projekt (bei Verwendung von gt-next oder gt-react).

  • locales: Ein Array von Locales für Ihr Projekt. Dies sind die Locales, in die Sie Ihr Projekt übersetzen möchten. Siehe die unterstützten Locales für weitere Informationen. Wenn Sie gt-next oder gt-react verwenden, sind dies auch die Locales, die Ihre App unterstützt.

  • files: Dies ist ein Objekt, das Informationen über den Inhalt enthält, den Sie übersetzen möchten.

  • stageTranslations: Ein optionales Boolean-Flag, das angibt, ob Ihr Projekt für die Verwendung einer menschlichen Überprüfung konfiguriert ist.

  • src: Ein optionales Array von relativen Verzeichnispfaden, die übersetzbare Inhalte enthalten.

  • dictionary: Ein optionaler String, der den relativen Pfad zur Wörterbuch-Datei angibt.

Um bei der Validierung Ihrer gt.config.json Datei zu helfen, können Sie das JSON Schema für die CLI verwenden.

Fügen Sie es am Anfang Ihrer gt.config.json Datei hinzu:

gt.config.json
{
  "$schema": "https://assets.gtx.dev/config-schema.json",
}

Hier ist ein Grundgerüst der gt.config.json Datei:

gt.config.json
{
  "$schema": "https://assets.gtx.dev/config-schema.json",
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "gt": {
      "output": "..."
    },
    "json": {
      "include": [...]
    },
    "mdx": {
      "include": [...]
    },
    "md": {
      "include": [...]
    }
  },
  "src": ["./src", "./app", "./pages", "./components"],
  "dictionary": "./dictionary.json"
}

files

Unterstützte Dateitypen

files sollte einen Schlüssel für jeden Dateityp enthalten, den Sie übersetzen möchten. Sie können Ihr Projekt so konfigurieren, dass verschiedene Dateitypen gemischt und kombiniert werden, und alle übersetzt werden. Wir unterstützen derzeit die folgenden Dateitypen:

  • gt: General Translation Dateien.
  • json: JSON-Dateien.
  • mdx: Markdown-Komponenten (MDX) Dateien.
  • md: Markdown (MD) Dateien.
  • js: JavaScript-Dateien.
  • ts: TypeScript-Dateien.

Jeder Dateityp sollte einem Objekt entsprechen, das einen oder mehrere der folgenden Schlüssel enthält:

  • include
  • exclude
  • transform
  • output

include

Falls verwendet, sollte der Wert des include-Schlüssels ein Array von Glob-Mustern sein, die den Dateien entsprechen, die Sie übersetzen möchten.

Sie müssen den [locale]-Platzhalter in Ihren Glob-Mustern verwenden, um sicherzustellen, dass Quelldateien korrekt gefunden und übersetzte Dateien am richtigen Ort gespeichert werden. Das CLI-Tool ersetzt den [locale]-Platzhalter durch den defaultLocale-Wert bei der Suche nach übersetzbaren Dateien.

Das CLI-Tool speichert übersetzte Dateien im entsprechenden Pfad, wobei der [locale]-Platzhalter durch den Ziel-Locale-Code ersetzt wird.

{
  "include": ["docs/[locale]/**/*.json"]
}

exclude

Falls verwendet, sollte der Wert des exclude-Schlüssels ein Array von Glob-Mustern sein, die den Dateien entsprechen, die Sie von der Übersetzung ausschließen möchten.

Das Muster ist dasselbe wie das include-Muster.

{
  "exclude": ["docs/[locale]/exclude/**/*.json"]
}

transform

Falls verwendet, sollte der Wert des transform-Schlüssels eine Zeichenkette sein, die eine Neuzuordnung des Dateinamens definiert. Er sollte einen Platzhalter * enthalten, der durch den ursprünglichen Dateinamen ersetzt wird (alles vor dem ersten .).

Wenn Sie beispielsweise möchten, dass die Erweiterung aller Ihrer übersetzten Dateien .[locale].json anstelle von .json hat, können Sie die folgende Konfiguration verwenden:

{
  "transform": "*.[locale].json"
}

Dies ist nützlich, wenn Ihr Dokumentations- oder i18n-Framework eine spezifische Dateierweiterung für übersetzte Dateien anstelle von unterverzeichnisbasiertem Locale-Routing erfordert.

output

Dieser Schlüssel wird ausschließlich für General Translation Dateien verwendet, speziell zum lokalen Speichern von Übersetzungen. Wenn Sie das GT CDN verwenden, wird dieser Schlüssel nicht benötigt.

Der Wert sollte eine Zeichenkette sein, die einen [locale]-Platzhalter enthält, der den Ort angibt, an dem die Übersetzungen gespeichert werden.

Wenn Sie beispielsweise Ihre spanischen Übersetzungen in einer Datei namens ui.es.json im public/i18n-Verzeichnis speichern möchten, sollten Sie die folgende Zeichenkette verwenden:

{
  "output": "public/i18n/[locale].json"
}

Diese Option sollte nur verwendet werden, wenn Sie gt-next oder gt-react verwenden und Übersetzungen lokal speichern möchten, anstatt das GT CDN zu verwenden.

Derzeit kann nur eine Datei für jede Locale generiert werden.


Dateityp: gt

Unterstützte Schlüssel

  • output (Erforderlich)

Beispiel

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "gt": {
      "output": "public/i18n/[locale].json"
    },
  }
}

Diese Konfiguration weist das CLI-Tool an, Ihre französischen und spanischen Übersetzungen im public/i18n/[locale].json-Verzeichnis zu speichern.

Standardmäßig veröffentlicht das CLI-Tool Ihre Übersetzungen mit dieser Konfiguration nicht im GT CDN.


Dateityp: json

Unterstützte Schlüssel

  • include (Erforderlich)
  • exclude (Optional)
  • transform (Optional)

Beispiel

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "json": {
      "include": ["json_files/[locale]/**/*.json"],
      "exclude": ["json_files/[locale]/exclude/**/*.json"]
    }
  }
}

Nehmen wir an, die Standard-Locale Ihres Projekts ist en, und Sie möchten Ihr Projekt in fr und es übersetzen.

Mit dieser Konfiguration sucht das CLI nach allen JSON-Dateien im Unterverzeichnis json_files/en/ und speichert die übersetzten Dateien in json_files/fr/ und json_files/es/.

Es ignoriert alle Dateien im Unterverzeichnis json_files/en/exclude/.


Dateityp: mdx

Unterstützte Schlüssel

  • include (Erforderlich)
  • exclude (Optional)
  • transform (Optional)

Beispiel

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["ja"],
  "files": {
    "mdx": {
      "include": ["content/docs/[locale]/**/*.mdx"],
      "transform": "*.[locale].mdx"
    }
  }
}

Diese Konfiguration weist das CLI-Tool an, nach allen MDX-Dateien im Verzeichnis content/docs/en zu suchen und die übersetzten Dateien im Verzeichnis content/docs/ja zu speichern.

Der transform-Schlüssel bewirkt, dass die Erweiterung der übersetzten Dateien zu .ja.mdx geändert wird.


Dateityp: md

Unterstützte Schlüssel

  • include (Erforderlich)
  • exclude (Optional)
  • transform (Optional)

Beispiel

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["ja"],
  "files": {
    "md": {
      "include": ["content/docs/[locale]/**/*.md"],
      "exclude": ["content/docs/[locale]/exclude/**/*.md"],
      "transform": "*.[locale].md"
    }
  }
}

Diese Konfiguration weist das CLI-Tool an, nach allen MD-Dateien im Verzeichnis content/docs/en zu suchen und die übersetzten Dateien im Verzeichnis content/docs/ja zu speichern.

Der transform-Schlüssel bewirkt, dass die Erweiterung der übersetzten Dateien zu .ja.md geändert wird.

Alle Dateien im Verzeichnis content/docs/en/exclude werden ignoriert.


Dateityp: js

Unterstützte Schlüssel

  • include (Erforderlich)
  • exclude (Optional)
  • transform (Optional)

Beispiel

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "js": {
      "include": ["scripts/[locale]/**/*.js"]
    }
  }
}

Diese Konfiguration weist das CLI-Tool an, nach allen JavaScript-Dateien im Verzeichnis scripts/en zu suchen und die übersetzten Dateien in den Verzeichnissen scripts/fr und scripts/es zu speichern.

Der transform-Schlüssel bewirkt, dass die Erweiterung der übersetzten Dateien zu .fr.js bzw. .es.js geändert wird (von .js).


Dateityp: ts

Unterstützte Schlüssel

  • include (Erforderlich)
  • exclude (Optional)
  • transform (Optional)

Beispiel

gt.config.json
{ 
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "ts": {
      "include": ["scripts/[locale]/**/*.ts"]
    }
  }
}

Diese Konfiguration weist das CLI-Tool an, nach allen TypeScript-Dateien im Verzeichnis scripts/en zu suchen und die übersetzten Dateien in den Verzeichnissen scripts/fr und scripts/es zu speichern.

Der transform-Schlüssel bewirkt, dass die Erweiterung der übersetzten Dateien zu .fr.ts bzw. .es.ts geändert wird (von .ts).


Beispielkonfiguration

Lassen Sie uns eine Beispiel-gt.config.json-Datei aufschlüsseln:

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "gt": {
      "output": "public/i18n/[locale].json"
    },
    "mdx": {
      "include": ["content/docs/[locale]/**/*.mdx"],
      "transform": "*.[locale].mdx"
    },
    "json": {
      "include": ["resources/[locale]/**/*.json"],
      "exclude": ["resources/[locale]/exclude/**/*.json"]
    }
  }
}

In diesem Beispiel übersetzen wir die folgenden Dateien mit einem einzigen Aufruf von gtx-cli translate:

  • Alle MDX-Dateien im Verzeichnis content/docs/en.
  • Alle JSON-Dateien im Verzeichnis resources/en (ausgenommen Dateien im Verzeichnis resources/en/exclude).
  • Alle Inline-<T>-Komponenten in Ihrem React- oder Next.js-Projekt.
  • Ihre dictionary.[json|js|ts]-Datei.

GT: Übersetzungen werden in public/i18n/es.json und public/i18n/fr.json gespeichert. Diese Dateien können mit loadTranslations() geladen werden.

MDX: Übersetzungen werden in den Verzeichnissen content/docs/fr und content/docs/es gespeichert. Die Dateierweiterungen werden von .mdx zu .fr.mdx bzw. .es.mdx geändert.

JSON: Übersetzungen werden in den Verzeichnissen resources/fr und resources/es gespeichert.


Nächste Schritte

Erfahren Sie, wie Sie den init-Befehl verwenden können, um diese Konfigurationsdatei zu generieren.

Wie ist dieser Leitfaden?