# General Translation Platform: Gestión de proyectos y archivos
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/project/project-management.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Gestiona la información de un proyecto de General Translation, las ramas, los movimientos de archivos, la publicación en la CDN y los diffs de edición desde una instancia de GT. Referencia de la API para los métodos de gestión de proyectos y archivos.

Métodos de bajo nivel en una instancia de [GT](/docs/platform/core/reference/gt-class/constructor) para gestionar los metadatos de un proyecto, las ramas, el ciclo de vida de los archivos y el historial de ediciones. Se usan principalmente en herramientas como la [CLI](/docs/cli/quickstart); la mayoría de las aplicaciones usan en su lugar los [métodos de traducción](/docs/platform/core/reference/gt-class-methods/translation/translate) de nivel superior.

*Nota: todos los métodos de esta página llaman a la API de General Translation y requieren una API key en la instancia de [`GT`](/docs/platform/core/reference/gt-class/constructor). Los códigos de configuración regional de los argumentos se normalizan a su forma canónica antes de realizar la solicitud.*

| Método                                  | Descripción                                                                                                   | Devuelve                          |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| [`getProjectInfo`](#get-project-info)   | Obtiene el nombre, las configuraciones regionales y la configuración de revisión del proyecto autenticado.    | `Promise<ProjectInfoResult>`      |
| [`queryBranchData`](#query-branch-data) | Busca los ID de rama por nombre.                                                                              | `Promise<BranchDataResult>`       |
| [`createBranch`](#create-branch)        | Crea una rama (o devuelve una existente).                                                                     | `Promise<CreateBranchResult>`     |
| [`getOrphanedFiles`](#orphaned-files)   | Encuentra archivos de una rama que ya no están en el conjunto local de archivos.                              | `Promise<GetOrphanedFilesResult>` |
| [`processFileMoves`](#process-moves)    | Clona archivos de origen y traducciones con nuevos ID de archivo después de un movimiento o cambio de nombre. | `Promise<ProcessMovesResponse>`   |
| [`publishFiles`](#publish-files)        | Publica o retira archivos de la CDN.                                                                          | `Promise<PublishFilesResult>`     |
| [`submitUserEditDiffs`](#edit-diffs)    | Envía las ediciones del usuario para que las generaciones futuras conserven la intención.                     | `Promise<void>`                   |

## `getProjectInfo` [#get-project-info]

Obtiene los metadatos del proyecto autenticado: su nombre, organización, las configuraciones regionales predeterminada y actuales, y la configuración de revisión.

```typescript
getProjectInfo(options?: { timeout?: number }): Promise<ProjectInfoResult>
```

* **`options.timeout`** — tiempo de espera opcional de la solicitud en milisegundos.

Devuelve un `ProjectInfoResult`:

| Campo            | Descripción                                                        | Tipo                 |
| ---------------- | ------------------------------------------------------------------ | -------------------- |
| `id`             | ID del proyecto.                                                   | `string`             |
| `name`           | Nombre del proyecto.                                               | `string`             |
| `orgId`          | ID de la organización.                                             | `string`             |
| `defaultLocale`  | La configuración regional predeterminada (de origen) del proyecto. | `string`             |
| `currentLocales` | Las configuraciones regionales de destino configuradas para el proyecto. | `string[]`           |
| `autoApprove`    | Si las traducciones se aprueban automáticamente sin revisión.      | `boolean` (opcional) |

```typescript
const info = await gt.getProjectInfo();
console.log(info.defaultLocale, info.currentLocales);
```

## `queryBranchData` [#query-branch-data]

Resuelve los nombres de las ramas a sus registros de rama correspondientes y devuelve la rama predeterminada del proyecto.

```typescript
queryBranchData(query: { branchNames: string[] }): Promise<BranchDataResult>
```

* **`query.branchNames`** — los nombres de las ramas que se van a consultar.

Devuelve un `BranchDataResult` con `branches` (`{ id, name }[]`) y `defaultBranch` (`{ id, name }` o `null`).

```typescript
const { branches, defaultBranch } = await gt.queryBranchData({
  branchNames: ['main'],
});
```

## `createBranch` [#create-branch]

Crea una rama o devuelve la rama existente si ya hay una con ese nombre.

```typescript
createBranch(query: {
  branchName: string;
  defaultBranch: boolean;
}): Promise<CreateBranchResult>
```

* **`query.branchName`** — el nombre de la rama que se va a crear.
* **`query.defaultBranch`** — si esta rama es la rama predeterminada del proyecto.

Devuelve un `CreateBranchResult` con la `branch` que se creó (`{ id, name }`).

```typescript
const { branch } = await gt.createBranch({
  branchName: 'feature/new-copy',
  defaultBranch: false,
});
```

## `getOrphanedFiles` [#orphaned-files]

Devuelve los archivos que existen en una rama, pero cuyos ID de archivo no figuran en la lista proporcionada; es decir, archivos que probablemente se movieron, cambiaron de nombre o se eliminaron localmente. Se usa para detectar movimientos.

```typescript
getOrphanedFiles(
  branchId: string,
  fileIds: string[],
  options?: { timeout?: number }
): Promise<GetOrphanedFilesResult>
```

* **`branchId`** — la rama que se debe comprobar.
* **`fileIds`** — los ID de archivo actuales (no huérfanos).
* **`options.timeout`** — tiempo de espera opcional de la solicitud, en milisegundos.

Devuelve un `GetOrphanedFilesResult` con `orphanedFiles` (`{ fileId, versionId, fileName }[]`). Las listas grandes de `fileIds` se procesan automáticamente por lotes, y un archivo solo se considera huérfano si no aparece en ninguno de los lotes.

## `processFileMoves` [#process-moves]

Conserva las traducciones cuando se mueven o renombran archivos, clonando los archivos de origen y sus traducciones con nuevos ID de archivo.

```typescript
processFileMoves(
  moves: MoveMapping[],
  options?: { branchId?: string; timeout?: number }
): Promise<ProcessMovesResponse>
```

* **`moves`** — una lista de mapeos de `{ oldFileId, newFileId, newFileName }`.
* **`options.branchId`** — la rama a la que se aplican los movimientos.
* **`options.timeout`** — tiempo de espera opcional de la solicitud, en milisegundos.

Devuelve un `ProcessMovesResponse` con `results` para cada movimiento y un `summary` (`{ total, succeeded, failed }`). Los movimientos se procesan automáticamente por lotes.

```typescript
const result = await gt.processFileMoves(
  [{ oldFileId: 'abc123', newFileId: 'def456', newFileName: 'locales/en.json' }],
  { branchId: 'main' }
);
```

## `publishFiles` [#publish-files]

Publica o deja de publicar archivos de origen y traducciones en la CDN.

```typescript
publishFiles(files: PublishFileEntry[]): Promise<PublishFilesResult>
```

Cada entrada es un `PublishFileEntry`:

| Field       | Description                                                   | Type      | Optional |
| ----------- | ------------------------------------------------------------- | --------- | -------- |
| `fileId`    | El archivo que se va a publicar o retirar de la publicación.  | `string`  | No       |
| `versionId` | La versión del archivo.                                       | `string`  | No       |
| `publish`   | `true` para publicar, `false` para retirar de la publicación. | `boolean` | No       |
| `branchId`  | La rama a la que pertenece el archivo.                        | `string`  | Sí       |
| `fileName`  | El nombre del archivo.                                        | `string`  | Sí       |

Devuelve un `PublishFilesResult` con `results` por archivo (`{ fileId, versionId, branchId, success, locale?, error? }`). Una `configuración regional` en un resultado indica una traducción; su ausencia indica un archivo fuente.

## `submitUserEditDiffs` [#edit-diffs]

Envía las ediciones del usuario a las traducciones existentes para que las futuras generaciones conserven la intención del usuario.

```typescript
submitUserEditDiffs(payload: {
  diffs: SubmitUserEditDiff[];
}): Promise<void>
```

Cada `SubmitUserEditDiff` incluye `fileName`, `locale`, `diff`, `branchId`, `versionId`, `fileId` y `localContent`. La instancia resuelve los alias de configuración regional personalizados antes del envío; luego, la API resuelve cada configuración regional a la configuración regional compatible que se usa para el almacenamiento. Los códigos equivalentes, como `ja` y `ja-JP`, actualizan la misma traducción almacenada. Los diffs se procesan automáticamente por lotes. Se resuelve cuando el envío se completa correctamente.

## Sitemap

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