gtx-cli@2.3.0
Übersicht
In gtx-cli 2.3.0 haben wir das Verhalten der Befehle translate und upload angepasst und die Transparenz der Übersetzungspipeline erhöht.
Translate
Früher hat translate sowohl Übersetzungen ausgelöst als auch einmalig ein Projekt-Setup im Hintergrund ausgeführt (wodurch der Kontext und das Glossar generiert wurden, die du in deinem Dashboard siehst).
Bei kleineren Projekten ging das schnell; bei größeren Codebasen konnte das Setup jedoch so lange dauern, dass ein Timeout ausgelöst wurde, wodurch es so aussah, als sei ein Übersetzungsfehler aufgetreten.
Während Nutzer den Eindruck hatten, dass translate fehlgeschlagen sei, wurde das Setup asynchron abgeschlossen und Übersetzungen wurden generiert, aber nicht heruntergeladen, was zu einer unvollständigen und verwirrenden User Experience führte.
Setup
Setup ist jetzt ein eigener Schritt. Wir haben ihn so optimiert, dass Timeouts nur noch selten auftreten.
Da wir aber wissen, dass Setup trotzdem fehlschlagen kann, ist die Übersetzung nicht mehr davon abhängig, dass das Setup erfolgreich abgeschlossen wird. Die Pipeline sieht jetzt ungefähr so aus:
- Upload: Dateien hochladen und Erfolg bestätigen.
- Setup (nur falls nötig): einen Setup-Job starten und warten; wenn er fehlschlägt oder ein Timeout auftritt, machen wir weiter.
- Translate: Übersetzungsjobs auf Basis der bereits hochgeladenen Dateien erstellen.
Wenn das Setup rechtzeitig abgeschlossen wird, umso besser. Wenn es fehlschlägt oder ein Timeout auftritt, machen wir trotzdem weiter und sagen dir, was passiert ist. Du erhältst trotzdem Übersetzungen.
Was du sehen wirst, wenn du npx gtx-cli translate ausführst:
Starte Übersetzung...
Zu übersetzende Dateien:
- your/file/path.mdx
- ...
Lade Dateien zur General Translation API hoch...
✔ Dateien erfolgreich hochgeladen
Richte Projekt ein...
# Wenn die Einrichtung erfolgreich ist
Einrichtung erfolgreich abgeschlossen.
# Wenn die Einrichtung eine Zeitüberschreitung aufweist
⚠ Zeitüberschreitung bei der Einrichtung — Fortfahren ohne Einrichtung: Zeitüberschreitung beim Warten auf Setup-Generierung
# Wenn die Einrichtung fehlschlägt
⚠ Einrichtung fehlgeschlagen — Fortfahren ohne Einrichtung: <error message>
# In jedem Fall wird mit den Übersetzungen fortgefahren
Erstelle 12 Übersetzung(en)
[0/12] Übersetzungen abgeschlossen
your/file/path.mdx [es]Mit dieser Änderung können wir nun garantieren, dass deine Übersetzungen selbst dann generiert werden, wenn die Einrichtung im Ausnahmefall fehlschlägt.
Außerdem gefällt uns, dass du so besser nachvollziehen kannst, wie und wo wir die Inhalte generieren, die deine Übersetzungen beeinflussen, und dass das Hinzufügen neuer Setup-Schritte sorgenfrei ist, da sie die Übersetzung nie verhindern werden.
Upload
Wir haben upload außerdem flexibler gemacht. Frühere Versionen sind davon ausgegangen, dass du immer eine Quelldatei zusammen mit ihren Übersetzungen sendest. Das passt nicht zu jedem Workflow. Jetzt kannst du:
- Nur Quelldateien hochladen (noch ohne Übersetzungen).
- Quellen und Übersetzungen gemeinsam hochladen.
Wir erkennen Übersetzungen weiterhin automatisch anhand deiner Repo-Struktur und Konfiguration. Sobald du hochgeladen hast, siehst du die Dateien sofort in deinem Dashboard.
Wenn dies deine gt.config.json ist:
{
"defaultLocale": "en",
"locales": ["es", "fr"],
"files": {
"json": { "include": ["src/i18n/en/**/*.json"] }
}
}Ausführen von npx gtx-cli upload:
# Nur Quelldateien (keine lokalen Übersetzungen gefunden):
Starte Upload...
Hochzuladende Dateien:
- src/i18n/en/common.json -> es, fr
...
Lade 1 Datei(en) zu General Translation hoch...
✔ Dateien erfolgreich hochgeladen
Fertig!
# In Ihrem Dashboard sehen Sie:
# src/i18n/en/common.json
# noch ohne zugehörige Übersetzungen.Wenn lokale Übersetzungen vorhanden sind und automatisch erkannt wurden:
Upload wird gestartet...
Dateien zum Hochladen:
- src/i18n/en/common.json -> es, fr
Lade 3 Datei(en) zu General Translation hoch...
✔ Dateien erfolgreich hochgeladen
Fertig!
# In Ihrem Dashboard sehen Sie:
# src/i18n/en/common.json
# sowie die übersetzten Versionen auf Spanisch und Französisch im Locale-Dropdown.Wenn die Übersetzungsdatei einer Locale fehlt, laden wir die Quelle hoch und überspringen die fehlende Übersetzung.
Wenn du lokale Übersetzungen hast, aber nur Quellen hochladen möchtest, entferne die Locales aus gt.config.json, bevor du upload ausführst:
{
"defaultLocale": "en",
"locales": [],
"files": {
"json": { "include": ["src/i18n/en/**/*.json"] }
}
}Uploads überschreiben vorhandene Übersetzungen
Hinweis: Wenn du
uploadausführst, ersetzt jede übersetzte Datei, die wir für eine bestimmte Datei/Locale erkennen und hochladen, den Inhalt, der aktuell für diese Datei/Locale gespeichert ist.
- Um nur Quelltexte hochzuladen, entferne vor
uploaddie Ziel-Locales ausgt.config.json.- Wenn du Änderungen zuerst prüfen möchtest, verwende ein separates Projekt oder exportiere die aktuellen Übersetzungen vor dem Upload.
- Fehlende Übersetzungen werden übersprungen; vorhandene Übersetzungen werden ersetzt.