GT ClassMethodsTranslation

downloadFileBatch

Referencia de API del método downloadFileBatch para descargar múltiples archivos de traducción en una sola solicitud

Descripción general

El método downloadFileBatch descarga varios archivos de traducción en una única solicitud por lotes.

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

Eficiencia por lotes: Este método está optimizado para descargar varios archivos en una sola llamada a la API, lo que reduce la sobrecarga de red y mejora el rendimiento frente a realizar múltiples llamadas individuales a downloadTranslatedFile.

Referencias

Parámetros

NombreTipoDescripción
fileIdsstring[]Lista de IDs de archivos de traducción para descargar
options?DownloadFileBatchOptionsConfiguración opcional para la solicitud de descarga

DownloadFileBatchOptions

NombreTipoDescripción
timeout?numberTiempo de espera de la solicitud en milisegundos

Retorna

Promise<DownloadFileBatchResult> - Contiene los archivos descargados y los metadatos.

type DownloadFileBatchResult = {
  files: File[];
  count: number;
}
PropiedadTipoDescripción
filesFile[]Array de objetos de archivo descargados
countnumberNúmero de archivos descargados correctamente

Estructura de archivos

type File = {
  id: string;
  fileName: string;
  data: string;
  metadata: any;
}
PropiedadTipoDescripción
idstringID del archivo de traducción
fileNamestringNombre original del archivo
datastringContenido del archivo como cadena UTF-8 (decodificada desde Base64)
metadataanyMetadatos adicionales del archivo

Ejemplos

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

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

// (3) Encolar el trabajo de traducción del archivo
const enqueueResult = await gt.enqueueFiles(
  uploadedFiles,
  {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Esperar a que se completen todas las traducciones
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) Descargar el archivo
const result = await gt.downloadFileBatch(translationIds);

Notas

  • Los IDs de archivo deben ser IDs de traducción válidos; usa checkFileTranslations para verificar la integridad primero
  • Cuando es posible, los archivos se devuelven en el mismo orden que los IDs solicitados
  • Las descargas fallidas de archivos individuales dentro del lote no provocan que falle todo el lote

Próximos pasos

¿Qué te ha parecido esta guía?

downloadFileBatch