# General Translation Platform: Traducir archivos URL: https://generaltranslation.com/es/docs/platform/core/guides/translating-files.mdx --- title: Traducir archivos description: "Cómo traducir archivos con la biblioteca generaltranslation: esta guía cubre la carga de un archivo fuente, poner en cola la traducción, comprobar el estado y descargar el archivo traducido." related: links: - /docs/platform/core/guides/translating-strings - /docs/platform/core/guides/locale-codes --- La biblioteca `generaltranslation` puede traducir archivos fuente completos. Esta página explica los flujos de trabajo de carga, puesta en cola, consulta del estado y descarga de archivos. ## Antes de empezar [#before-start] Asegúrate de haber completado el [Quickstart](/docs/platform/core/quickstart) para instalar `generaltranslation` e inicializar la clase [GT](/docs/platform/core/reference/gt-class/constructor). ## Cómo funciona la traducción de archivos [#file-translation-works] Los archivos se traducen como trabajos: 1. Sube el archivo fuente. 2. Pon el archivo en cola para traducirlo. 3. Consulta el estado de la traducción. 4. Descarga el archivo traducido. La traducción de archivos requiere varias llamadas porque los Projects suelen traducir muchos archivos. Separar los pasos te da más flexibilidad al usar la API: facilita procesar archivos por lotes, reintentar trabajos fallidos, consultar periódicamente el estado de los trabajos y descargar el resultado cuando esté listo. Inicia un trabajo subiendo un archivo; si subes muchos archivos, se iniciarán muchos trabajos. Consulta los métodos [uploadSourceFiles](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) y [queryFileData](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) para obtener más información. ## 1. Sube el archivo fuente [#upload] A modo de ejemplo, en esta guía se traduce este archivo JSON en inglés: ```json { "hello": "Hello", "world": "World" } ``` Lee el archivo, da formato al contenido y luego llama a [uploadSourceFiles](/docs/platform/core/reference/gt-class-methods/translation/upload-source-files) para subir los archivos. ```typescript title="src/index.ts" import fs from 'fs'; import path from 'path'; import { FileUpload } from 'generaltranslation/types'; // (i) Leer el contenido de un archivo const filePath = path.join(process.cwd(), 'en.json'); const fileContents = fs.readFileSync(filePath, 'utf8'); // (ii) Formatear el contenido del archivo const fileUpload: FileUpload = { content: fileContents, fileName: filePath, fileFormat: 'JSON', locale: 'en', }; const files = [ { source: fileUpload } ]; // (iii) Subir el archivo const { uploadedFiles } = await gt.uploadSourceFiles( files, { sourceLocale: 'en' } ); ``` La respuesta devuelve una lista de referencias a archivos. Esto te permite, más adelante, poner el archivo en cola para traducirlo, comprobar su estado y descargar el archivo traducido. ```ts title="Output" [ { fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e', versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121', branchId: '123456789', fileName: '/Users/demo/en.json', fileFormat: 'JSON' } ] ``` ## 2. Encola el archivo para traducirlo [#enqueue] Usa [enqueueFiles](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) con la referencia del archivo cargado y las configuraciones regionales de destino. En este ejemplo, lo traduciremos al español (`es`). ```typescript title="src/index.ts" const fileUploadRef = { fileId: uploadedFiles[0].fileId, versionId: uploadedFiles[0].versionId, branchId: uploadedFiles[0].branchId, fileName: uploadedFiles[0].fileName, fileFormat: uploadedFiles[0].fileFormat, }; const enqueueResult = await gt.enqueueFiles( [fileUploadRef], { sourceLocale: 'en', targetLocales: ['es'], } ); ``` La respuesta devuelve un resultado con la información del trabajo. ```ts title="Output" { jobData: { 'job-123456': { sourceFileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e', fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e', versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121', branchId: '123456789', targetLocale: 'es', projectId: 'your-project-id', force: false } }, locales: ['es'], message: 'Successfully enqueued 1 file translation jobs in 1 batch(es)' } ``` ## 3. Comprueba el estado del archivo [#status] Usa [queryFileData](/docs/platform/core/reference/gt-class-methods/translation/query-file-data) para comprobar si el archivo traducido está completo y listo para su descarga. ```typescript title="src/index.ts" const { fileId, versionId, branchId } = uploadedFiles[0]; const status = await gt.queryFileData({ translatedFiles: [ { fileId, versionId, branchId, locale: 'es', }, ], }); ``` Si el archivo aún está en proceso de traducción, `completedAt` es `null`. Cuando se completa, contiene una marca de tiempo: ```ts title="Output" { translatedFiles: [ { fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e', versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121', branchId: '123456789', locale: 'es', completedAt: '2024-01-15T12:00:00Z' } ] } ``` ## 4. Descarga el archivo traducido [#download] Por último, descarga el archivo traducido mediante el método [downloadFile](/docs/platform/core/reference/gt-class-methods/translation/download-file). ```typescript title="src/index.ts" const { fileId, branchId } = uploadedFiles[0]; const content = await gt.downloadFile({ fileId, branchId, locale: 'es', }); ``` La respuesta devuelve el contenido del archivo traducido. En este ejemplo, devuelve: ```json title="Output" { "hello": "Hola", "world": "Mundo" } ``` ## Next steps - /docs/platform/core/guides/translating-strings - /docs/platform/core/guides/locale-codes