GT ClassMethodsTranslation

downloadFileBatch

Référence de l’API pour la méthode downloadFileBatch, qui permet de télécharger plusieurs fichiers de traduction en une seule requête

Présentation

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 fichiers en un seul appel d’API, ce qui réduit la surcharge réseau et améliore les performances par rapport à plusieurs appels individuels à downloadTranslatedFile.

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 fichiers 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 fichiers téléchargés avec succès

Structure de fichiers

type File = {
  id: string;
  fileName: string;
  data: string;
  metadata: any;
}
PropriétéTypeDescription
idstringID du fichier de traduction
fileNamestringNom du 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 la tâche de traduction du fichier
const enqueueResult = await gt.enqueueFiles(
  uploadedFiles,
  {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Attendre que toutes les traductions soient terminées
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);

Notes

  • Les ID de fichier doivent être des ID de traduction valides — utilisez checkFileTranslations pour vérifier d’abord l’état d’achèvement
  • Les fichiers sont renvoyés dans le même ordre que les ID demandés lorsque c’est possible
  • L’échec du téléchargement d’un fichier individuel dans le lot ne fait pas échouer tout le lot

Prochaines étapes

Que pensez-vous de ce guide ?

downloadFileBatch