# General Translation Platform: querySourceFile URL: https://generaltranslation.com/fr/docs/platform/core/reference/gt-class-methods/translation/query-source-file.mdx --- title: querySourceFile description: Récupère les métadonnées du fichier source et les informations de traduction associées. Référence de l’API pour querySourceFile. --- Récupère des informations complètes sur un fichier source et l’ensemble de ses traductions avec General Translation. Cela inclut les métadonnées du fichier, l’état de la traduction pour chaque locale, ainsi que les horodatages de création, de finalisation, d’approbation et de publication. ## Vue d’ensemble [#overview] Appelez `querySourceFile` avec une requête permettant d’identifier le fichier. Elle renvoie les métadonnées du fichier source, ainsi qu’une entrée de traduction pour chaque locale. ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const result = await gt.querySourceFile({ fileId: 'file-123', versionId: 'version-456', }); console.log(`Source file: ${result.sourceFile.fileName}`); console.log(`Available in ${result.translations.length} locales`); ``` Signature : ```typescript querySourceFile( data: FileQuery, options?: CheckFileTranslationsOptions ): Promise ``` *Remarque : `querySourceFile` nécessite une `apiKey` (ou `devApiKey`) ainsi que `projectId` sur l’instance GT.* ## Fonctionnement [#how-it-works] * **État complet de la traduction.** Renvoie le fichier source et l’état de la traduction pour chaque locale cible. * **Cycle de vie des horodatages.** Les horodatages de traduction suivent l’ordre `createdAt` → `completedAt` → `approvedAt` → `publishedAt`. Un horodatage `null` signifie que cette étape n’a pas encore été atteinte. * **Locales configurées.** Le tableau `locales` du fichier source répertorie tous les locales cibles configurés pour la traduction. ## Paramètres [#parameters] | Paramètre | Description | Type | Facultatif | Par défaut | | --------------------- | ---------------------------------------------------- | ------------------------------ | ---------- | ---------- | | [`data`](#data) | Requête de fichier indiquant quel fichier récupérer. | `FileQuery` | Non | — | | [`options`](#options) | Configuration de la requête. | `CheckFileTranslationsOptions` | Oui | — | ### `data` [#data] **Type** `FileQuery` · **Obligatoire** Identifie le fichier à interroger : | Champ | Description | Type | Facultatif | | ----------- | ------------------------------------------- | -------- | ---------- | | `fileId` | Identifiant unique du fichier à interroger. | `string` | Non | | `versionId` | ID de la version spécifique du fichier. | `string` | Oui | | `branchId` | ID de la branche spécifique. | `string` | Oui | ### `options` [#options] **Type** `CheckFileTranslationsOptions` · **Facultatif** | Champ | Description | Type | Facultatif | | --------- | ------------------------------------------------------- | -------- | ---------- | | `timeout` | Délai avant expiration de la requête, en millisecondes. | `number` | Oui | ## Renvoie [#returns] **Type** `Promise` Renvoie un `FileQueryResult` contenant les informations du fichier source et l’état de la traduction pour toutes les locales : ```typescript type FileQueryResult = { sourceFile: { id: string; fileId: string; versionId: string; sourceLocale: string; fileName: string; fileFormat: string; dataFormat: string | null; createdAt: string; updatedAt: string; locales: string[]; }; translations: { locale: string; completedAt: string | null; approvedAt: string | null; publishedAt: string | null; createdAt: string | null; updatedAt: string | null; }[]; }; ``` Propriétés du fichier source : | Prop | Description | Type | | -------------- | ---------------------------------------------------- | ---------------- | | `id` | ID interne de la base de données. | `string` | | `fileId` | Identifiant unique du fichier. | `string` | | `versionId` | Identifiant de version. | `string` | | `sourceLocale` | Locale de la langue source. | `string` | | `fileName` | Nom du fichier d’origine. | `string` | | `fileFormat` | Format du fichier (JSON, MD, MDX, etc.). | `string` | | `dataFormat` | Format des données du fichier (ICU, I18NEXT, JSX). | `string \| null` | | `createdAt` | Horodatage ISO de création du fichier. | `string` | | `updatedAt` | Horodatage ISO de la dernière mise à jour. | `string` | | `locales` | Liste des locales cibles de ce fichier. | `string[]` | Propriétés de la traduction : | Prop | Description | Type | | ------------- | ----------------------------------------------------------- | ---------------- | | `locale` | Code de langue cible. | `string` | | `completedAt` | Horodatage ISO de fin de la traduction. | `string \| null` | | `approvedAt` | Horodatage ISO de l’approbation de la traduction. | `string \| null` | | `publishedAt` | Horodatage ISO de la publication de la traduction. | `string \| null` | | `createdAt` | Horodatage ISO de création du job de traduction. | `string \| null` | | `updatedAt` | Horodatage ISO de la dernière mise à jour de la traduction. | `string \| null` | ## Exemples [#examples] ```typescript title="index.ts" import { GT } from 'generaltranslation'; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); async function getFileInfo(fileId: string, versionId?: string) { const result = await gt.querySourceFile({ fileId, versionId, }); console.log('=== Source File Info ==='); console.log(`Name: ${result.sourceFile.fileName}`); console.log(`Format: ${result.sourceFile.fileFormat}`); console.log(`Source Locale: ${result.sourceFile.sourceLocale}`); console.log(`Created: ${new Date(result.sourceFile.createdAt).toLocaleString()}`); console.log(`Updated: ${new Date(result.sourceFile.updatedAt).toLocaleString()}`); console.log('\n=== Translation Status ==='); result.translations.forEach((translation) => { console.log(`${translation.locale}:`); console.log( ` Created: ${translation.createdAt ? new Date(translation.createdAt).toLocaleString() : 'Not started'}` ); console.log( ` Completed: ${translation.completedAt ? new Date(translation.completedAt).toLocaleString() : 'In progress'}` ); console.log( ` Published: ${translation.publishedAt ? new Date(translation.publishedAt).toLocaleString() : 'Not published'}` ); }); return result; } const fileInfo = await getFileInfo('file-123', 'version-456'); ``` ## Remarques [#notes] * Renvoie le fichier source et l’état de la traduction pour toutes les locales cibles. * Les horodatages de traduction suivent le cycle de vie `createdAt` → `completedAt` → `approvedAt` → `publishedAt` ; des horodatages `null` indiquent qu’une étape n’a pas encore été atteinte. * Le tableau `locales` du fichier source affiche toutes les locales cibles configurées pour la traduction. * Utilisez cette méthode pour les rapports détaillés, le suivi de l’avancement et les workflows de gestion des fichiers.