GT ClassMethodsTranslation

downloadFileBatch

Référence de l’API de la méthode downloadFileBatch pour télécharger plusieurs files en une seule requête

Vue d’ensemble

La méthode downloadFileBatch télécharge plusieurs fichiers de traduction en une seule requête groupée.

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'
]);

Efficacité par lots : Cette méthode est optimisée pour télécharger plusieurs files en un seul appel API, réduisant la surcharge réseau et améliorant les performances par rapport à plusieurs appels downloadTranslatedFile distincts.

Références

Paramètres

NomTypeDescription
fileIdsstring[]Tableau d’ID de fichiers de traduction à télécharger
options?DownloadFileBatchOptionsConfiguration facultative de la requête de téléchargement

DownloadFileBatchOptions

NomTypeDescription
timeout?numberDélai d’attente de la requête, en millisecondes

Renvoie

Promise<DownloadFileBatchResult> - Contient les files téléchargés et leurs métadonnées.

type DownloadFileBatchResult = {
  files: File[];
  count: number;
}
PropriétéTypeDescription
filesFile[]Tableau d’objets fichier téléchargés
countnumberNombre de files téléchargés avec succès

Structure des fichiers

type File = {
  id: string;
  fileName: string;
  data: string;
  metadata: any;
}
PropriétéTypeDescription
idstringID du fichier de traduction
fileNamestringNom de fichier d’origine
datastringContenu du fichier sous forme de chaîne UTF-8 (décodé à partir de Base64)
metadataanyMétadonnées supplémentaires du fichier

Exemples

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

// (2) Téléverser le fichier
const fileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
  files,
  { sourceLocale: 'en' }
);

// (3) Mettre en file d'attente le job de traduction du fichier
const enqueueResult = await gt.enqueueFiles(
  uploadedFiles,
  {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Attendre la fin de toutes les traductions
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) Télécharger le fichier
const result = await gt.downloadFileBatch(translationIds);

Remarques

  • Les IDs de files doivent être des IDs de traduction valides — utilisez checkFileTranslations pour vérifier d’abord l’achèvement
  • Les files sont renvoyés dans le même ordre que les IDs demandés lorsque c’est possible
  • Les échecs de téléchargement de files individuels au sein du lot n’entraînent pas l’échec de l’ensemble du lot

Prochaines étapes

Comment trouvez-vous ce guide ?