# General Translation Platform: querySourceFile
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/query-source-file.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Recupera los metadatos del archivo fuente y la información relacionada con las traducciones. Referencia de la API para querySourceFile.

Recupera información completa sobre un archivo fuente y todas sus traducciones con General Translation. Esto incluye los metadatos del archivo, el estado de la traducción en cada configuración regional y las marcas de tiempo de creación, finalización, aprobación y publicación.

## Resumen general [#overview]

Llama a `querySourceFile` con una consulta que identifique el archivo. Devuelve los metadatos del archivo fuente, además de una entrada de traducción para cada configuración regional.

```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`);
```

Firma:

```typescript
querySourceFile(
  data: FileQuery,
  options?: CheckFileTranslationsOptions
): Promise<FileQueryResult>
```

*Nota: `querySourceFile` requiere un `apiKey` (o `devApiKey`) y un `projectId` en la instancia de GT.*

## Cómo funciona [#how-it-works]

* **Estado completo de la traducción.** Devuelve el archivo fuente y el estado de la traducción para cada configuración regional de destino.
* **Ciclo de vida de las marcas de tiempo.** Las marcas de tiempo de la traducción siguen el orden `createdAt` → `completedAt` → `approvedAt` → `publishedAt`. Una marca de tiempo con valor `null` significa que esa etapa aún no se ha alcanzado.
* **Configuraciones regionales configuradas.** La lista `locales` del archivo fuente incluye todas las configuraciones regionales de destino configuradas para la traducción.

## Parámetros [#parameters]

| Parámetro             | Descripción                                                       | Tipo                           | Opcional | Predeterminado |
| --------------------- | ----------------------------------------------------------------- | ------------------------------ | -------- | -------------- |
| [`data`](#data)       | Consulta de archivo que especifica qué archivo se debe recuperar. | `FileQuery`                    | No       | —              |
| [`options`](#options) | Configuración de la solicitud.                                    | `CheckFileTranslationsOptions` | Sí       | —              |

### `data` [#data]

**Tipo** `FileQuery` · **Obligatorio**

Identifica el archivo que se va a consultar:

| Campo       | Descripción                                            | Tipo     | Opcional |
| ----------- | ------------------------------------------------------ | -------- | -------- |
| `fileId`    | Identificador único del archivo que se va a consultar. | `string` | No       |
| `versionId` | ID de la versión específica del archivo.               | `string` | Sí       |
| `branchId`  | ID de la rama específica.                              | `string` | Sí       |

### `options` [#options]

**Tipo** `CheckFileTranslationsOptions` · **Opcional**

| Campo     | Descripción                                       | Tipo     | Opcional |
| --------- | ------------------------------------------------- | -------- | -------- |
| `timeout` | Tiempo de espera de la solicitud en milisegundos. | `number` | Sí       |

## Devuelve [#returns]

**Tipo** `Promise<FileQueryResult>`

Se resuelve con un `FileQueryResult` que contiene la información del archivo fuente y el estado de la traducción para todas las configuraciones regionales:

```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;
  }[];
};
```

Propiedades del archivo fuente:

| Propiedad      | Descripción                                                  | Tipo             |
| -------------- | ------------------------------------------------------------ | ---------------- |
| `id`           | ID interno de la base de datos.                              | `string`         |
| `fileId`       | Identificador único del archivo.                             | `string`         |
| `versionId`    | Identificador de la versión.                                 | `string`         |
| `sourceLocale` | Configuración regional del idioma de origen.                 | `string`         |
| `fileName`     | Nombre original del archivo.                                 | `string`         |
| `fileFormat`   | Formato del archivo (JSON, MD, MDX, entre otros).            | `string`         |
| `dataFormat`   | Formato de los datos dentro del archivo (ICU, I18NEXT, JSX). | `string \| null` |
| `createdAt`    | Marca de tiempo ISO de creación del archivo.                 | `string`         |
| `updatedAt`    | Marca de tiempo ISO de la última actualización.              | `string`         |
| `locales`      | Lista de locales de destino de este archivo.                 | `string[]`       |

Propiedades de la traducción:

| Propiedad     | Descripción                                                      | Tipo             |
| ------------- | ---------------------------------------------------------------- | ---------------- |
| `locale`      | Código de configuración regional de destino.                     | `string`         |
| `completedAt` | Marca de tiempo ISO de finalización de la traducción.            | `string \| null` |
| `approvedAt`  | Marca de tiempo ISO de aprobación de la traducción.              | `string \| null` |
| `publishedAt` | Marca de tiempo ISO de publicación de la traducción.             | `string \| null` |
| `createdAt`   | Marca de tiempo ISO de creación del trabajo de traducción.       | `string \| null` |
| `updatedAt`   | Marca de tiempo ISO de la última actualización de la traducción. | `string \| null` |

## Ejemplos [#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');
```

## Notas [#notes]

* Devuelve el archivo fuente y el estado de traducción de todas las configuraciones regionales de destino.
* Las marcas de tiempo de la traducción siguen el ciclo de vida `createdAt` → `completedAt` → `approvedAt` → `publishedAt`; los valores `null` indican una etapa a la que todavía no se ha llegado.
* El array `locales` del archivo fuente muestra todas las configuraciones regionales de destino configuradas para la traducción.
* Usa este método para generar informes detallados, hacer seguimiento del progreso y gestionar archivos en distintos flujos de trabajo.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
