querySourceFile
Referencia de API del método querySourceFile para obtener información del archivo fuente y de las traducciones
Descripción general
El método querySourceFile obtiene información detallada sobre un archivo fuente y todas sus traducciones asociadas.
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 fuente: ${result.sourceFile.fileName}`);
console.log(`Disponible en ${result.translations.length} locales`);Referencias
Parámetros
| Nombre | Tipo | Descripción | 
|---|---|---|
| data | FileQuery | Objeto de consulta de archivos que especifica qué archivo obtener | 
| options? | CheckFileTranslationsOptions | Configuración opcional de la solicitud | 
FileQuery
| Nombre | Tipo | Descripción | 
|---|---|---|
| fileId | string | Identificador único del archivo que se va a consultar | 
| versionId? | string | ID de versión opcional para una versión específica del archivo | 
CheckFileTranslationsOptions
| Nombre | Tipo | Descripción | 
|---|---|---|
| timeout? | number | Tiempo de espera de la solicitud en milisegundos | 
Devuelve
Promise<FileQueryResult> - Contiene información del archivo de origen y el estado de 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 fuente
| Propiedad | Tipo | Descripción | 
|---|---|---|
| id | string | ID interno de la base de datos | 
| fileId | string | Identificador único del archivo | 
| versionId | string | Identificador de la versión | 
| sourceLocale | string | Locale del idioma de origen | 
| fileName | string | Nombre del archivo original | 
| fileFormat | string | Formato de archivo (JSON, MD, MDX, etc.) | 
| dataFormat | string | null | Formato de datos dentro del archivo (ICU, I18NEXT, JSX) | 
| createdAt | string | Marca de tiempo ISO de la creación del archivo | 
| updatedAt | string | Marca de tiempo ISO de la última actualización | 
| approvalRequiredAt | string | null | Marca de tiempo ISO cuando se solicitó la aprobación | 
| locales | string[] | Lista de locales de destino para este archivo | 
Propiedades de la traducción
| Propiedad | Tipo | Descripción | 
|---|---|---|
| locale | string | Código de configuración regional de destino | 
| completedAt | string | null | Marca de tiempo ISO de finalización de la traducción | 
| approvedAt | string | null | Marca de tiempo ISO de aprobación de la traducción | 
| publishedAt | string | null | Marca de tiempo ISO de publicación de la traducción | 
| createdAt | string | null | Marca de tiempo ISO de creación de la tarea de traducción | 
| updatedAt | string | null | Marca de tiempo ISO de la última actualización de la traducción | 
Ejemplo
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(`Idioma 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 las Traducciones ===');
  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 progreso'}`);
    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: createdAt→completedAt→approvedAt→publishedAt
- Las marcas de tiempo null indican que esa etapa aún no se ha alcanzado
- El array localesen 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
Próximos pasos
- Consulta checkFileTranslationspara una comprobación ligera del estado de traducciones específicas
- Consulta downloadTranslatedFilepara descargar traducciones finalizadas
- Consulta enqueueFilespara iniciar trabajos de traducción de archivos
- Consulta getProjectDatapara obtener información a nivel de proyecto
¿Qué te ha parecido esta guía?

