GT ClassMethodsTranslation

querySourceFile

Référence de l’API pour la méthode querySourceFile, qui permet d’obtenir des informations sur le fichier source et les traductions

Présentation

La méthode querySourceFile récupère des informations détaillées sur un fichier source et toutes ses traductions associées. Cela inclut les métadonnées du fichier, l’état des traductions pour toutes les locales, ainsi que les dates/horodatages de création, d’achèvement, d’approbation et de publication.

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(`Fichier source : ${result.sourceFile.fileName}`);
console.log(`Disponible en ${result.translations.length} locales`);

Références

Paramètres

NameTypeDescription
dataFileQueryObjet de requête de fichier indiquant le fichier à récupérer
options?CheckFileTranslationsOptionsConfiguration facultative de la requête

FileQuery

NomTypeDescription
fileIdstringIdentifiant unique du fichier à consulter
versionId?stringID de version facultatif pour cette version précise du fichier

CheckFileTranslationsOptions

NomTypeDescription
timeout?numberDélai d’attente de la requête, en millisecondes

Renvoie

Promise<FileQueryResult> — Contient les informations sur le fichier source et l’état de la traduction pour toutes les locales.

type FileQueryResult = {
  sourceFile: {
    id: string;
    fileId: string;
    versionId: string;
    sourceLocale: string;
    fileName: string;
    fileFormat: string;
    dataFormat: string | null;
    createdAt: string;
    updatedAt: string;
    approvalRequiredAt: string | null;
    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

PropriétéTypeDescription
idstringID interne de la base de données
fileIdstringIdentifiant unique du fichier
versionIdstringIdentifiant de version
sourceLocalestringLocale de la langue source
fileNamestringNom de fichier d’origine
fileFormatstringFormat du fichier (JSON, MD, MDX, etc.)
dataFormatstring | nullFormat des données dans le fichier (ICU, i18next, JSX)
createdAtstringHorodatage ISO de création du fichier
updatedAtstringHorodatage ISO de la dernière mise à jour
approvalRequiredAtstring | nullHorodatage ISO du moment où l’approbation a été demandée
localesstring[]Liste des locales cibles pour ce fichier

Propriétés de traduction

PropriétéTypeDescription
localestringCode de locale cible
completedAtstring | nullHorodatage ISO de l’achèvement de la traduction
approvedAtstring | nullHorodatage ISO de l’approbation de la traduction
publishedAtstring | nullHorodatage ISO de la publication de la traduction
createdAtstring | nullHorodatage ISO de la création de la tâche de traduction
updatedAtstring | nullHorodatage ISO de la dernière mise à jour de la traduction

Exemple

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('=== Informations du fichier source ===');
  console.log(`Nom : ${result.sourceFile.fileName}`);
  console.log(`Format : ${result.sourceFile.fileFormat}`);
  console.log(`Locale source : ${result.sourceFile.sourceLocale}`);
  console.log(`Créé le : ${new Date(result.sourceFile.createdAt).toLocaleString()}`);
  console.log(`Mis à jour le : ${new Date(result.sourceFile.updatedAt).toLocaleString()}`);
  
  console.log('\n=== Statut de la traduction ===');
  result.translations.forEach(translation => {
    console.log(`${translation.locale}:`);
    console.log(`  Créé le : ${translation.createdAt ? new Date(translation.createdAt).toLocaleString() : 'Non démarré'}`);
    console.log(`  Terminé le : ${translation.completedAt ? new Date(translation.completedAt).toLocaleString() : 'En cours'}`);
    console.log(`  Publié le : ${translation.publishedAt ? new Date(translation.publishedAt).toLocaleString() : 'Non publié'}`);
  });
  
  return result;
}

const fileInfo = await getFileInfo('file-123', 'version-456');

Notes

  • Renvoie le fichier source et l’état de traduction pour toutes les locales cibles
  • Les horodatages de traduction suivent le cycle de vie : createdAtcompletedAtapprovedAtpublishedAt
  • Des horodatages null indiquent que cette étape n’a pas encore été atteinte
  • Le tableau locales dans le fichier source répertorie toutes les locales cibles configurées pour la traduction
  • Utilisez cette méthode pour des rapports détaillés, le suivi de la progression et les workflows de gestion de fichiers

Prochaines étapes

Comment trouvez-vous ce guide ?