GT ClassMethodsTranslation

downloadFileBatch

API Reference für die Methode downloadFileBatch zum Herunterladen mehrerer Übersetzungsdateien in einer einzelnen Anfrage

Überblick

Die Methode downloadFileBatch lädt mehrere Übersetzungsdateien in einer einzigen Batch-Anfrage herunter.

const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });

const result = await gt.downloadFileBatch([
  'translation-id-1', 
  'translation-id-2', 
  'translation-id-3'
]);

Batch-Effizienz: Diese Methode ist darauf optimiert, mehrere Dateien in einem einzigen API-Aufruf herunterzuladen. Dadurch sinkt der Netzwerk-Overhead und die Leistung verbessert sich im Vergleich zu mehreren einzelnen downloadTranslatedFile-Aufrufen.

Referenzen

Parameter

NameTypBeschreibung
fileIdsstring[]Array von Übersetzungsdatei-IDs zum Herunterladen
options?DownloadFileBatchOptionsOptionale Konfiguration für die Downloadanfrage

DownloadFileBatchOptions

NameTypeBeschreibung
timeout?numberAnfrage-Zeitüberschreitung in Millisekunden

Rückgabewert

Promise<DownloadFileBatchResult> – Enthält die heruntergeladenen Dateien und Metadaten.

type DownloadFileBatchResult = {
  files: File[];
  count: number;
}
EigenschaftTypBeschreibung
filesFile[]Array heruntergeladener Dateiobjekte
countnumberAnzahl der erfolgreich heruntergeladenen Dateien

Verzeichnisstruktur

type File = {
  id: string;
  fileName: string;
  data: string;
  metadata: any;
}
EigenschaftTypBeschreibung
idstringID der Übersetzungsdatei
fileNamestringUrsprünglicher Dateiname
datastringDateiinhalt als UTF-8-String (aus Base64 dekodiert)
metadataanyZusätzliche Dateimetadaten

Beispiele

index.ts
// (1) GT-Instanz erstellen
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// (2) Datei hochladen
const fileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
  files,
  { sourceLocale: 'en' }
);

// (3) Dateiübersetzungsauftrag in die Warteschlange einreihen
const enqueueResult = await gt.enqueueFiles(
  uploadedFiles,
  {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Warten bis alle Übersetzungen abgeschlossen sind
let translationIds = [];
const statusQuery = Object.values(enqueueResult.data).flatMap(({fileName, versionId}) => {
  return targetLocales.map((locale) => ({locale, fileName, versionId}));
});
while (true) {
  const status = await gt.checkFileTranslations(statusQuery);
  if (status.translations.length === statusQuery.length) {
    translationIds = status.translations.map(translation => translation.id);
    break;
  }
  await new Promise(resolve => setTimeout(resolve, 1000));
}

// (5) Datei herunterladen
const result = await gt.downloadFileBatch(translationIds);

Hinweise

  • Datei-IDs müssen gültige Übersetzungs-IDs sein – nutze checkFileTranslations, um zunächst die Vollständigkeit zu prüfen.
  • Dateien werden nach Möglichkeit in derselben Reihenfolge zurückgegeben wie die angeforderten IDs.
  • Fehlgeschlagene einzelne Datei-Downloads innerhalb eines Batches führen nicht zum Fehlschlagen des gesamten Batches.

Nächste Schritte

Wie ist dieser Leitfaden?

downloadFileBatch