downloadFileBatch
Referencia de API del método downloadFileBatch para descargar múltiples files 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: 'tu projectId', apiKey: 'tu apiKey' });
const result = await gt.downloadFileBatch([
'translation-id-1',
'translation-id-2',
'translation-id-3'
]);Eficiencia por lotes:
Este método está optimizado para descargar múltiples files en una sola llamada a la API, lo que reduce la sobrecarga de red y mejora el rendimiento en comparación con realizar varias llamadas individuales a downloadTranslatedFile.
Referencia
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
fileIds | string[] | Array 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 |
Devuelve
Promise<DownloadFileBatchResult> - Contiene los files descargados y sus metadatos.
type DownloadFileBatchResult = {
files: File[];
count: number;
}| Propiedad | Tipo | Descripción |
|---|---|---|
files | File[] | Matriz de objetos de archivo descargados |
count | number | Número de files descargados correctamente |
Estructura de archivos
type Archivo = {
id: string;
nombreArchivo: string;
datos: string;
metadatos: any;
}| Propiedad | Tipo | Descripción |
|---|---|---|
id | string | ID del archivo de traducción |
fileName | string | Nombre del archivo original |
data | string | Contenido del archivo como cadena UTF-8 (decodificada desde Base64) |
metadata | any | Metadatos adicionales del archivo |
Ejemplos
// (1) Crea una instancia de GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// (2) Sube 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) Pon en cola el trabajo de traducción del archivo
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
});
// (4) Espera 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) Descarga el archivo
const result = await gt.downloadFileBatch(translationIds);Notas
- Los IDs de archivos deben ser IDs de traducción válidos: usa
checkFileTranslationspara verificar primero que estén completos - Los files se devuelven en el mismo orden que los IDs solicitados cuando es posible
- Las descargas fallidas de files individuales dentro del lote no hacen que falle todo el lote
Próximos pasos
- Consulta
downloadTranslatedFilepara descargar un solo archivo - Consulta
checkFileTranslationspara verificar que los files estén listos para descargar - Consulta
enqueueFilespara iniciar trabajos de traducción - Consulta
fetchTranslationspara obtener metadatos de traducción
¿Qué te parece esta guía?