Zurück

gtx-cli@2.10.0

Fernando Aviles avatarFernando Aviles
gtx-cli2.10.0metadatacontextjsonyamltranslation-quality

Überblick

gtx-cli 2.10.0 unterstützt jetzt schlüsselbasierte Metadaten in JSON- und YAML-Übersetzungsdateien. Dabei handelt es sich um Übersetzungsanweisungen pro Schlüssel, mit denen Sie präzise steuern können, wie einzelne Strings übersetzt werden.

Bisher wurde der Übersetzungskontext für schlüsselbasierte Dateien auf Projektebene verwaltet. Stilvorgaben, Glossareinträge und gebietsschemaspezifische Regeln galten allgemein für alle Ihre Inhalte. Mit schlüsselbasierten Metadaten können Sie eine Ebene tiefer gehen und spezifische Übersetzungshinweise direkt einzelnen Schlüsseln in Ihren Dateien zuweisen.


So sieht es aus

Sie erstellen eine begleitende Metadatendatei, die neben Ihrer Quelldatei liegt und deren Schlüsselstruktur nachbildet. Auf der untersten Ebene geben Sie anstelle von Zeichenfolgen Metadatenobjekte mit Übersetzungsanweisungen an:

{
  "nav": {
    "home": "Home",
    "bank": "Bank",
    "save": "Save"
  },
  "alerts": {
    "new_lead": "You have a new lead!"
  }
}
{
  "nav": {
    "home": {
      "context": "Baseball-Begriff — Home Plate auf einem Diamanten. KEIN Haus."
    },
    "bank": {
      "context": "Flussufer — die Seite eines Flusses. KEINE Finanzinstitution."
    },
    "save": {
      "context": "Sportbegriff — ein Torwart, der einen Schuss abwehrt. KEIN Speichern von Daten.",
      "maxChars": 12
    }
  },
  "alerts": {
    "new_lead": {
      "context": "Vertriebs-/CRM-Kontext. Ein 'Lead' ist ein potenzieller Kunde.",
      "maxChars": 30
    }
  }
}

Die Begleitdatei muss sich im selben Verzeichnis wie die Quelldatei befinden und der Benennungskonvention {name}.metadata.json (oder .metadata.yaml für YAML-Dateien) folgen. Die Befehlszeilenschnittstelle (CLI) erkennt sie automatisch, wenn Sie npx gt translate ausführen.

Mit schlüsselspezifischem Kontext wird "Bank" als "Ribera" (Flussufer) statt als mögliches "Banco" (Finanzinstitut) übersetzt, und "Save" wird zu "Parada" (Torwartparade) statt zu "Guardar" (speichern). Für Zeichenfolgen, die bereits eindeutig sind, müssen Sie überhaupt keine Metadaten angeben — fügen Sie nur Einträge für die Schlüssel hinzu, die davon profitieren.


Unterstützte Felder

Wir unterstützen derzeit drei Metadatenfelder:

  • context — Übersetzungsanweisungen für einen bestimmten String. Dies ist das wirkungsvollste Feld: Verwenden Sie es, um mehrdeutige Wörter zu präzisieren, fachspezifische Terminologie festzulegen oder die beabsichtigte Bedeutung zu verdeutlichen.
  • maxChars — eine maximale Zeichenbegrenzung für die übersetzte Ausgabe. Dies geschieht nach bestem Bemühen: Die Engine verwendet kürzere Synonyme und knappe Formulierungen, damit der Text in die Vorgabe passt, kürzt eine Übersetzung jedoch nicht auf eine nicht realisierbare Länge.
  • sourceCode — umgebender Quellcode-Kontext für einen String. So können Sie der Engine zeigen, wo und wie der String in Ihrer Codebasis verwendet wird, was ihr hilft, bessere Entscheidungen in Bezug auf Ton, Terminologie und Formulierung zu treffen.

Alle Felder sind pro Schlüssel optional. Vollständige Details und Beispiele zu jedem Feld finden Sie in der Referenz zu schlüsselbasierten Metadaten.


YAML-Unterstützung

Derselbe Ansatz funktioniert auch für YAML-Dateien. Erstellen Sie eine .metadata.yaml-Begleitdatei mit derselben Schlüsselstruktur:

ui:
  buttons:
    save:
      context: "Sportbegriff — eine Parade des Torwarts. NICHT das Speichern von Daten."
    draft:
      context: "Fassbier, wie in 'draft beer'. NICHT eine Dokumentversion."
  labels:
    date:
      context: "Die essbare Frucht der Dattelpalme. NICHT ein Kalenderdatum."
    chips:
      context: "Britisches Englisch: heiße frittierte Kartoffelstreifen (Pommes frites). NICHT Chips oder Mikrochips."