# General Translation Platform: createTag URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/create-tag.mdx --- title: createTag description: Crea una etiqueta para agrupar o identificar versiones de archivos. Referencia de la API de createTag. --- Crea o actualizar o insertar una etiqueta de traducción en General Translation, asociando un conjunto de archivos de origen con un ID de etiqueta definido por el usuario y un mensaje opcional. Las etiquetas identifican las versiones de traducción en el panel de control con nombres legibles en lugar de hashes de contenido. ## Resumen [#overview] Llama a `createTag` con un ID de etiqueta y las referencias a archivos que quieras asociarle. Devuelve la etiqueta creada o actualizada. ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const result = await gt.createTag({ tagId: 'v2.1.0', files: uploadedFiles.map((f) => ({ fileId: f.fileId, versionId: f.versionId, branchId: f.branchId, })), message: 'Added checkout page translations', }); ``` Firma: ```typescript createTag(options: CreateTagOptions): Promise ``` *Nota: `createTag` requiere una `apiKey` (o `devApiKey`) y un `projectId` en la instancia de GT.* ## Cómo funciona [#how-it-works] * **Upsert.** Si ya existe una etiqueta con el mismo `tagId`, se actualiza o se inserta con las nuevas referencias de archivos. * **Orden.** Las etiquetas se crean después de subir el archivo de origen, pero antes de la preparación de la traducción y de ponerla en cola. * **No crítico en la CLI.** La creación de etiquetas no es crítica en el flujo de trabajo de la CLI: los errores no bloquean las traducciones. * **Integración con la CLI.** Las opciones `--tag` y `-m` de la CLI usan este método internamente. ## Parámetros [#parameters] | Parámetro | Descripción | Tipo | Opcional | Predeterminado | | --------------------- | ------------------------------ | ------------------ | -------- | -------------- | | [`options`](#options) | Opciones para crear etiquetas. | `CreateTagOptions` | No | — | ### `options` [#options] **Tipo** `CreateTagOptions` · **Obligatorio** Opciones para crear la etiqueta: | Campo | Descripción | Tipo | Opcional | | --------- | ------------------------------------------------------------------------------------------ | -------------------------- | -------- | | `tagId` | Un identificador único para la etiqueta (por ejemplo, `"v2.1.0"` o un commit hash de Git). | `string` | No | | `files` | Referencias de archivos que se asociarán con esta etiqueta. | `CreateTagFileReference[]` | No | | `message` | Mensaje descriptivo de la etiqueta. | `string` | Sí | Cada `CreateTagFileReference` identifica una versión de archivo subida: | Campo | Descripción | Tipo | Opcional | | ----------- | ------------------------------------------- | -------- | -------- | | `fileId` | El ID del archivo de una subida anterior. | `string` | No | | `versionId` | El ID de la versión de una subida anterior. | `string` | No | | `branchId` | El Branch ID de una subida anterior. | `string` | No | ## Devuelve [#returns] **Tipo** `Promise` Se resuelve con un `CreateTagResult` que contiene la etiqueta creada o actualizada: ```typescript type CreateTagResult = { tag: { id: string; tagId: string; message: string | null; createdAt: string; updatedAt: string; }; }; ``` | Propiedad | Descripción | Tipo | | --------------- | ----------------------------------------------- | ---------------- | | `tag.id` | Identificador interno de la etiqueta. | `string` | | `tag.tagId` | El ID de etiqueta proporcionado por el usuario. | `string` | | `tag.message` | El mensaje de la etiqueta, si se proporcionó. | `string \| null` | | `tag.createdAt` | Marca temporal ISO de creación de la etiqueta. | `string` | | `tag.updatedAt` | Marca temporal ISO de la última actualización. | `string` | ## Ejemplos [#examples] ```typescript // Uso básico: etiquetar archivos subidos con un número de versión import { GT } from 'generaltranslation'; const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id', }); // Primero, subir los archivos de origen const uploadResult = await gt.uploadSourceFiles(files, { sourceLocale: 'en', }); // Etiquetar los archivos subidos const tagResult = await gt.createTag({ tagId: 'v2.1.0', files: uploadResult.uploadedFiles.map((f) => ({ fileId: f.fileId, versionId: f.versionId, branchId: f.branchId, })), message: 'Release 2.1 translations', }); console.log(`Tagged as ${tagResult.tag.tagId}`); ``` ```typescript // Etiquetar con un hash de commit de git import { execSync } from 'node:child_process'; const commitHash = execSync('git rev-parse --short HEAD', { encoding: 'utf-8', }).trim(); const commitMessage = execSync('git log -1 --format=%s', { encoding: 'utf-8', }).trim(); const tagResult = await gt.createTag({ tagId: commitHash, files: uploadResult.uploadedFiles.map((f) => ({ fileId: f.fileId, versionId: f.versionId, branchId: f.branchId, })), message: commitMessage, }); ``` ## Notas [#notes] * Si ya existe una etiqueta con el mismo `tagId`, se actualiza o se inserta con las nuevas referencias de archivo. * Las etiquetas se crean después de cargar el archivo de origen, pero antes de la configuración de la traducción y de ponerla en cola. * La creación de etiquetas no es un error fatal en el flujo de trabajo de la CLI: los fallos no bloquean las traducciones. * Las opciones `--tag` y `-m` de la CLI usan este método internamente.