# General Translation Platform: uploadSourceFiles URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/translation/upload-source-files.mdx --- title: uploadSourceFiles description: Téléversez des fichiers source dans un projet avant de mettre la traduction en file d’attente. Référence API pour uploadSourceFiles. --- Téléverse des fichiers source sur la plateforme General Translation pour le traitement de la traduction. Il s’agit généralement de la première étape d’un workflow de traduction de fichiers, avant de configurer un projet ou de mettre des jobs de traduction en file d’attente. ## Vue d’ensemble [#overview] Appelez `uploadSourceFiles` avec un tableau de fichiers et un objet d’options qui définit le paramètre régional de la source. La méthode renvoie les références des fichiers téléversés, que vous utiliserez aux étapes suivantes. ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const result = await gt.uploadSourceFiles(files, { sourceLocale: 'en', }); ``` Signature : ```typescript uploadSourceFiles( files: { source: FileUpload }[], options: UploadFilesOptions ): Promise ``` *Remarque : `uploadSourceFiles` nécessite une `apiKey` (ou `devApiKey`) ainsi qu’un `projectId` sur l’instance GT.* ## Fonctionnement [#how-it-works] * **Encodage des fichiers.** Le contenu des fichiers est automatiquement encodé en Base64 pour être transmis en toute sécurité. * **Références de fichiers.** Les références de fichiers renvoyées (y compris `fileId`, `versionId` et `branchId`) sont requises pour les opérations ultérieures. * **Workflow typique.** `uploadSourceFiles` est le point d’entrée du pipeline de fichiers : téléversez les fichiers source, puis [`setupProject`](/docs/platform/core/reference/gt-class-methods/translation/setup-project) → [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) → [`queryFileData`](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) → [`downloadFileBatch`](/docs/platform/core/reference/gt-class-methods/translation/download-file-batch). ## Paramètres [#parameters] | Paramètre | Description | Type | Facultatif | Par défaut | | --------------------- | -------------------------------------------- | -------------------------- | ---------- | ---------- | | [`files`](#files) | Tableau de fichiers sources à téléverser. | `{ source: FileUpload }[]` | Non | — | | [`options`](#options) | Options de configuration pour le téléversement. | `UploadFilesOptions` | Non | — | ### `files` [#files] **Type** `{ source: FileUpload }[]` · **Obligatoire** Les fichiers source à téléverser. Chaque entrée contient un `FileUpload` sous la clé `source` : | Champ | Description | Type | Facultatif | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ---------- | | `content` | Contenu brut du fichier sous forme de chaîne de caractères. | `string` | Non | | `fileName` | Identifiant unique du fichier, généralement le chemin d’accès suivi du nom du fichier. | `string` | Non | | `fileFormat` | Format du fichier. L’une des valeurs suivantes : `GTJSON`, `JSON`, `PO`, `POT`, `YAML`, `MDX`, `MD`, `TS`, `JS`, `HTML`, `TXT` ou `TWILIO_CONTENT_JSON`. | `FileFormat` | Non | | `transformFormat` | Format de sortie demandé pour les traductions générées. | `FileFormat` | Oui | | `dataFormat` | Format des données contenues dans le fichier (ICU, I18NEXT, JSX). | [`DataFormat`](/docs/platform/core/reference/types/data-format) | Oui | | `locale` | Paramètre régional du contenu du fichier source. | `string` | Non | | `branchId` | Branche dans laquelle téléverser le fichier. La branche par défaut est utilisée si ce champ est omis. | `string` | Oui | | `versionId` | ID de version, pour les cas d’usage avancés. | `string` | Oui | | `fileId` | ID de fichier, pour les cas d’usage avancés. | `string` | Oui | ### `options` [#options] **Type** `UploadFilesOptions` · **Obligatoire** Configuration du téléversement : | Champ | Description | Type | Facultatif | | --------------- | --------------------------------------------------------------- | -------- | ---------- | | `sourceLocale` | Le paramètre régional source pour tous les fichiers téléversés. | `string` | Non | | `modelProvider` | Préférence du fournisseur de modèle d’IA. | `string` | Oui | | `timeout` | Délai d’expiration de la requête en millisecondes. | `number` | Oui | *Remarque : `branchId` n’est pas une option de téléversement. Il s’agit d’un champ propre à chaque fichier, et non d’une propriété de `UploadFilesOptions`.* ## Renvoie [#returns] **Type** `Promise` Se résout avec un `UploadFilesResponse` contenant les références des fichiers téléversés et un résumé : ```typescript type UploadFilesResponse = { uploadedFiles: FileReference[]; // références pour les opérations suivantes count: number; // nombre de fichiers téléversés avec succès message: string; // message d'état de l'API }; ``` Chaque `FileReference` a la forme suivante : ```typescript type FileReference = { fileId: string; versionId: string; branchId: string; fileName: string; fileFormat: FileFormat; transformFormat?: FileFormat; // format de sortie demandé pour les traductions générées dataFormat?: DataFormat; }; ``` ## Exemples [#examples] ```typescript // Utilisation de base : upload de fichiers de traduction JSON import { GT } from 'generaltranslation'; import fs from 'fs'; const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id', }); const files = [ { source: { content: fs.readFileSync('./locales/en/common.json', 'utf8'), fileName: 'common.json', fileFormat: 'JSON' as const, locale: 'en', }, }, { source: { content: fs.readFileSync('./locales/en/navigation.json', 'utf8'), fileName: 'navigation.json', fileFormat: 'JSON' as const, locale: 'en', }, }, ]; const result = await gt.uploadSourceFiles(files, { sourceLocale: 'en', }); console.log(`Uploaded ${result.count} files`); result.uploadedFiles.forEach((file) => { console.log(` ${file.fileName}: ${file.fileId} (branch: ${file.branchId})`); }); ``` ```typescript // Avec spécification explicite du format de données const files = [ { source: { content: '{"welcome": "Welcome, {name}!"}', fileName: 'messages.json', fileFormat: 'JSON' as const, dataFormat: 'ICU' as const, // format de message ICU locale: 'en', }, }, { source: { content: '{"greeting": "Hello {{name}}"}', fileName: 'i18next.json', fileFormat: 'JSON' as const, dataFormat: 'I18NEXT' as const, locale: 'en', }, }, ]; const result = await gt.uploadSourceFiles(files, { sourceLocale: 'en', modelProvider: 'gpt-4', timeout: 30000, }); ``` ```typescript // Téléversement par lots avec gestion des erreurs import { glob } from 'glob'; import path from 'path'; async function uploadAllJsonFiles() { try { // Rechercher tous les fichiers JSON const jsonPaths = await glob('./locales/en/**/*.json'); const files = jsonPaths.map((filePath) => ({ source: { content: fs.readFileSync(filePath, 'utf8'), fileName: path.relative('./locales/en', filePath), fileFormat: 'JSON' as const, locale: 'en', }, })); console.log(`Uploading ${files.length} files...`); const result = await gt.uploadSourceFiles(files, { sourceLocale: 'en', timeout: 60000, // Délai d'expiration de 60 secondes pour les téléversements volumineux }); if (result.count !== files.length) { console.warn(`Expected ${files.length} files, but only ${result.count} uploaded`); } return result.uploadedFiles; } catch (error) { console.error('Upload failed:', error); throw error; } } const uploadedFiles = await uploadAllJsonFiles(); ``` ## Notes [#notes] * Le contenu des fichiers est automatiquement encodé en Base64 pour garantir une transmission sûre. * Les noms de fichiers doivent être des identifiants uniques, généralement composés du chemin du fichier. * Le champ `locale` de chaque fichier doit correspondre à l’option `sourceLocale`. * Les fichiers volumineux ou un grand nombre de fichiers peuvent nécessiter des délais d’expiration plus longs. * Les références de fichiers renvoyées par cette méthode sont nécessaires pour les opérations ultérieures et incluent `branchId` pour le versionnage avec prise en charge des branches. * Les formats de fichier pris en charge sont `GTJSON`, `JSON`, `PO`, `POT`, `YAML`, `MDX`, `MD`, `TS`, `JS`, `HTML`, `TXT` et `TWILIO_CONTENT_JSON` — voir le type `FileFormat` pour la liste complète.