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
| Nom | Type | Description |
|---|---|---|
fileIds | string[] | Tableau d’ID de fichiers de traduction à télécharger |
options? | DownloadFileBatchOptions | Configuration facultative de la requête de téléchargement |
DownloadFileBatchOptions
| Nom | Type | Description |
|---|---|---|
timeout? | number | Dé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é | Type | Description |
|---|---|---|
files | File[] | Tableau d’objets fichier téléchargés |
count | number | Nombre de files téléchargés avec succès |
Structure des fichiers
type File = {
id: string;
fileName: string;
data: string;
metadata: any;
}| Propriété | Type | Description |
|---|---|---|
id | string | ID du fichier de traduction |
fileName | string | Nom de fichier d’origine |
data | string | Contenu du fichier sous forme de chaîne UTF-8 (décodé à partir de Base64) |
metadata | any | Métadonnées supplémentaires du fichier |
Exemples
// (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
checkFileTranslationspour 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
- Voir
downloadTranslatedFilepour télécharger un fichier individuel - Voir
checkFileTranslationspour vérifier que les files sont prêts à être téléchargés - Voir
enqueueFilespour lancer des jobs de traduction - Voir
fetchTranslationspour obtenir les métadonnées de traduction
Comment trouvez-vous ce guide ?