# General Translation Platform: createTag URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/translation/create-tag.mdx --- title: createTag description: Crea un tag per raggruppare o identificare le versioni dei file. Riferimento API per createTag. --- Crea o aggiorna un tag di traduzione con General Translation, associando un insieme di file sorgente a un ID del tag definito dall'utente e a un messaggio facoltativo. I tag etichettano le versioni di traduzione nella dashboard con nomi leggibili invece che con hash di contenuto. ## Panoramica [#overview] Chiama `createTag` con un ID del tag e i riferimenti ai file da associare al tag. Restituisce il tag creato o aggiornato. ```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` richiede un'`apiKey` (o `devApiKey`) e `projectId` nell'istanza GT.* ## Come funziona [#how-it-works] * **Upsert.** Se esiste già un tag con lo stesso `tagId`, viene creato o aggiornato con i nuovi riferimenti ai file. * **Sequenza.** I tag vengono creati dopo il caricamento del file sorgente, ma prima della configurazione iniziale della traduzione e dell'accodamento. * **Non bloccante nella CLI.** La creazione del tag non è bloccante nel workflow della CLI: gli errori non impediscono le traduzioni. * **Integrazione con la CLI.** I flag `--tag` e `-m` della CLI usano internamente questo metodo. ## Parametri [#parameters] | Parametro | Descrizione | Tipo | Facoltativo | Predefinito | | --------------------- | --------------------------------- | ------------------ | ----------- | ----------- | | [`options`](#options) | Opzioni per la creazione del tag. | `CreateTagOptions` | No | — | ### `options` [#options] **Tipo** `CreateTagOptions` · **Obbligatorio** Opzioni per la creazione del tag: | Campo | Descrizione | Tipo | Facoltativo | | --------- | ------------------------------------------------------------------------------------- | -------------------------- | ----------- | | `tagId` | Un identificatore univoco per il tag (ad esempio `"v2.1.0"` o un hash di commit Git). | `string` | No | | `files` | Riferimenti ai file da associare a questo tag. | `CreateTagFileReference[]` | No | | `message` | Messaggio descrittivo per il tag. | `string` | Sì | Ogni `CreateTagFileReference` identifica una versione di file caricata: | Campo | Descrizione | Tipo | Facoltativo | | ----------- | ----------------------------------------------------- | -------- | ----------- | | `fileId` | L'ID del file da un caricamento precedente. | `string` | No | | `versionId` | L'ID della versione da un caricamento precedente. | `string` | No | | `branchId` | Il Branch ID da un caricamento precedente. | `string` | No | ## Restituisce [#returns] **Tipo** `Promise` Si risolve con un `CreateTagResult` contenente il tag creato o aggiornato: ```typescript type CreateTagResult = { tag: { id: string; tagId: string; message: string | null; createdAt: string; updatedAt: string; }; }; ``` | Proprietà | Descrizione | Tipo | | --------------- | -------------------------------------------- | ---------------- | | `tag.id` | Identificatore interno del tag. | `string` | | `tag.tagId` | ID del tag specificato dall'utente. | `string` | | `tag.message` | Messaggio del tag, se specificato. | `string \| null` | | `tag.createdAt` | Timestamp ISO di creazione del tag. | `string` | | `tag.updatedAt` | Timestamp ISO dell'ultimo aggiornamento. | `string` | ## Esempi [#examples] ```typescript // Utilizzo base: etichettare i file caricati con un numero di versione import { GT } from 'generaltranslation'; const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id', }); // Carica prima i file sorgente const uploadResult = await gt.uploadSourceFiles(files, { sourceLocale: 'en', }); // Etichetta i file caricati 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 // Etichetta con un hash di commit 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, }); ``` ## Note [#notes] * Se esiste già un tag con lo stesso `tagId`, viene creato o aggiornato con i nuovi riferimenti ai file. * I tag vengono creati dopo il caricamento dei file sorgente, ma prima della configurazione della traduzione e dell'accodamento. * La creazione dei tag non è bloccante nel workflow della CLI: gli errori non impediscono le traduzioni. * I flag `--tag` e `-m` della CLI usano internamente questo metodo.