downloadFileBatch
API Reference für die Methode downloadFileBatch, um mehrere Übersetzungs-files in einer einzigen Anfrage herunterzuladen
Übersicht
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 dafür optimiert, mehrere files in einem einzigen API-Aufruf herunterzuladen. Dadurch wird der Netzwerk-Overhead reduziert und die Leistung im Vergleich zu mehreren einzelnen downloadTranslatedFile-Aufrufen verbessert.
Referenzen
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
fileIds | string[] | Array von Übersetzungsdatei-IDs zum Herunterladen |
options? | DownloadFileBatchOptions | Optionale Konfiguration für die Downloadanfrage |
DownloadFileBatchOptions
| Name | Type | Beschreibung |
|---|---|---|
timeout? | number | Zeitlimit für die Anfrage in Millisekunden |
Rückgabewert
Promise<DownloadFileBatchResult> – enthält die heruntergeladenen files und Metadaten.
type DownloadFileBatchResult = {
files: File[];
count: number;
}| Eigenschaft | Typ | Beschreibung |
|---|---|---|
files | File[] | Array heruntergeladener Dateiobjekte |
count | number | Anzahl der erfolgreich heruntergeladenen files |
Projektstruktur
type File = {
id: string;
fileName: string;
data: string;
metadata: any;
}| Eigenschaft | Typ | Beschreibung |
|---|---|---|
id | string | ID der Übersetzungsdatei |
fileName | string | Originaler Dateiname |
data | string | Dateiinhalte als UTF‑8‑String (aus Base64 dekodiert) |
metadata | any | Zusätzliche Dateimetadaten |
Beispiele
// (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) Übersetzungsauftrag für Datei einreihen
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
});
// (4) Auf Abschluss aller Übersetzungen warten
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
- File-IDs müssen gültige Übersetzungs-IDs sein – verwenden Sie
checkFileTranslations, um zuerst die Vollständigkeit zu prüfen - Files werden, wenn möglich, in derselben Reihenfolge wie die angeforderten IDs zurückgegeben
- Fehlgeschlagene einzelne File-Downloads innerhalb des Batches führen nicht dazu, dass der gesamte Batch fehlschlägt
Nächste Schritte
- Siehe
downloadTranslatedFilefür das Herunterladen einzelner Dateien - Siehe
checkFileTranslations, um zu prüfen, ob Dateien zum Download bereit sind - Siehe
enqueueFiles, um Übersetzungsjobs zu starten - Siehe
fetchTranslations, um Übersetzungsmetadaten abzurufen
Wie ist diese Anleitung?