GT ClassMethodsTranslation

querySourceFile

Referencia de API del método querySourceFile para obtener información del archivo fuente y de sus traducciones

Descripción general

El método querySourceFile obtiene información completa sobre un archivo fuente y todas sus traducciones asociadas. Esto incluye los metadatos del archivo, el estado de traducción en todos los locales y las marcas de tiempo de creación, finalización, aprobación y publicación.

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

Referencias

Parámetros

NombreTipoDescripción
dataFileQueryObjeto de consulta que especifica qué archivo obtener
options?CheckFileTranslationsOptionsConfiguración opcional de la solicitud

FileQuery

NombreTipoDescripción
fileIdstringIdentificador único del archivo que se va a consultar
versionId?stringID de la versión opcional para una versión específica del archivo

CheckFileTranslationsOptions

NombreTipoDescripción
timeout?numberTiempo de espera de la solicitud, en milisegundos

Devuelve

Promise<FileQueryResult> - Contiene información del archivo fuente y el estado de la traducción para todas las 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;
  }[];
}

Propiedades del archivo de origen

PropiedadTipoDescripción
idstringID interno de la base de datos
fileIdstringIdentificador único del archivo
versionIdstringIdentificador de versión
sourceLocalestringLocale del idioma de origen
fileNamestringNombre original del archivo
fileFormatstringFormato de archivo (JSON, MD, MDX, etc.)
dataFormatstring | nullFormato de datos dentro del archivo (ICU, i18next, JSX)
createdAtstringMarca de tiempo ISO de creación del archivo
updatedAtstringMarca de tiempo ISO de la última actualización
approvalRequiredAtstring | nullMarca de tiempo ISO cuando se solicitó la aprobación
localesstring[]Lista de locales de destino para este archivo

Propiedades de la traducción

PropiedadTipoDescripción
localestringCódigo de configuración regional de destino
completedAtstring | nullMarca de tiempo ISO de la finalización de la traducción
approvedAtstring | nullMarca de tiempo ISO de la aprobación de la traducción
publishedAtstring | nullMarca de tiempo ISO de la publicación de la traducción
createdAtstring | nullMarca de tiempo ISO de la creación de la tarea de traducción
updatedAtstring | nullMarca de tiempo ISO de la última actualización de la traducción

Ejemplo

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('=== Información del archivo fuente ===');
  console.log(`Nombre: ${result.sourceFile.fileName}`);
  console.log(`Formato: ${result.sourceFile.fileFormat}`);
  console.log(`Locale de origen: ${result.sourceFile.sourceLocale}`);
  console.log(`Creado: ${new Date(result.sourceFile.createdAt).toLocaleString()}`);
  console.log(`Actualizado: ${new Date(result.sourceFile.updatedAt).toLocaleString()}`);
  
  console.log('\n=== Estado de traducción ===');
  result.translations.forEach(translation => {
    console.log(`${translation.locale}:`);
    console.log(`  Creado: ${translation.createdAt ? new Date(translation.createdAt).toLocaleString() : 'No iniciado'}`);
    console.log(`  Completado: ${translation.completedAt ? new Date(translation.completedAt).toLocaleString() : 'En curso'}`);
    console.log(`  Publicado: ${translation.publishedAt ? new Date(translation.publishedAt).toLocaleString() : 'No publicado'}`);
  });
  
  return result;
}

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

Notas

  • Devuelve el archivo fuente y el estado de traducción para todas las locales de destino
  • Las marcas de tiempo de traducción siguen el ciclo de vida: createdAtcompletedAtapprovedAtpublishedAt
  • Las marcas de tiempo nulas indican que esa etapa aún no se ha alcanzado
  • El arreglo locales en el archivo fuente muestra todas las locales de destino configuradas para la traducción
  • Usa este método para generar informes detallados, hacer seguimiento del progreso y gestionar flujos de trabajo de archivos

Siguientes pasos

¿Qué te parece esta guía?