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
| Nombre | Tipo | Descripción | 
|---|---|---|
| fileIds | string[] | Lista de IDs de archivos de traducción para descargar | 
| options? | DownloadFileBatchOptions | Configuración opcional para la solicitud de descarga | 
DownloadFileBatchOptions
| Nombre | Tipo | Descripción | 
|---|---|---|
| timeout? | number | Tiempo de espera de la solicitud en milisegundos | 
Retorna
Promise<DownloadFileBatchResult> - Contiene los archivos descargados y los metadatos.
type DownloadFileBatchResult = {
  files: File[];
  count: number;
}| Propiedad | Tipo | Descripción | 
|---|---|---|
| files | File[] | Array de objetos de archivo descargados | 
| count | number | Número de archivos descargados correctamente | 
Estructura de archivos
type File = {
  id: string;
  fileName: string;
  data: string;
  metadata: any;
}| Propiedad | Tipo | Descripción | 
|---|---|---|
| id | string | ID del archivo de traducción | 
| fileName | string | Nombre original del archivo | 
| data | string | Contenido del archivo como cadena UTF-8 (decodificada desde Base64) | 
| metadata | any | Metadatos adicionales del archivo | 
Ejemplos
// (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 checkFileTranslationspara 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
- Consulta downloadTranslatedFilepara descargar un solo archivo
- Consulta checkFileTranslationspara verificar que los archivos estén listos para la descarga
- Consulta enqueueFilespara iniciar trabajos de traducción
- Consulta fetchTranslationspara obtener metadatos de traducción
¿Qué te ha parecido esta guía?

