Traducir documentos
Cloud Translation - Advanced proporciona una API Document Translation para traducir directamente documentos con formato, como archivos PDF y DOCX. En comparación con las traducciones de texto sin formato, Traducción de documentos conserva el formato y el diseño originales de los documentos traducidos, lo que te ayuda a mantener gran parte del contexto original, como los saltos de párrafo.
En las siguientes secciones se describe cómo traducir documentos y usar Document Translation con otras funciones de Cloud Translation - Advanced, como glosarios y modelos de AutoML Translation. Traducción de documentos admite solicitudes de traducción online y por lotes.
Para obtener información sobre las traducciones de texto sin formato y HTML, consulta el artículo Traducir texto.
Formatos de archivo admitidos
Traducción de documentos admite los siguientes tipos de archivo de entrada y sus tipos de archivo de salida asociados.
Entradas | Tipo MIME del documento | Salida |
---|---|---|
DOC* | application/msword | DOC, DOCX |
DOCX* | application/vnd.openxmlformats-officedocument.wordprocessingml.document | DOCX |
PDF† | application/pdf | PDF, DOCX |
PPT | application/vnd.ms-powerpoint | PPT, PPTX |
PPTX | application/vnd.openxmlformats-officedocument.presentationml.presentation | PPTX |
XLS | application/vnd.ms-excel | XLS, XLSX |
XLSX | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | XLSX |
*El contenido de los cuadros de texto no se traduce y permanece en el idioma de origen.
†Traducción de documentos admite documentos PDF nativos y escaneados, aunque con algunas diferencias. Para que el formato sea óptimo, utiliza archivos PDF nativos siempre que sea posible. Al traducir archivos PDF escaneados, se pierde parte del formato. Los diseños complejos de PDFs también pueden provocar la pérdida de formato, como en el caso de las tablas de datos, los diseños de varias columnas y los gráficos con etiquetas o leyendas.
Si tienes contenido PDF en formato DOCX o PPTX, te recomendamos que traduzcas el contenido con esos formatos antes de convertirlo a PDF. En general, Traducción de documentos conserva el diseño y el estilo de los archivos DOCX y PPTX mejor que los archivos PDF. Una vez traducido un documento, puedes convertir los resultados a archivos PDF.
Traducciones de documentos PDF nativos y escaneados
Traducción de documentos admite archivos PDF nativos y escaneados, incluidas las traducciones a idiomas que se escriben de derecha a izquierda y viceversa. La conversión de PDF a DOCX solo está disponible para traducciones de documentos por lotes en archivos PDF nativos. Además, Traducción de documentos conserva los hiperenlaces, el tamaño de la fuente y el color de la fuente solo en los archivos PDF nativos (tanto en las traducciones síncronas como en las por lotes).
Si traduces un archivo PDF que contiene una mezcla de contenido PDF escaneado y nativo, el contenido escaneado no se traduce.
Antes de empezar
Para empezar a usar la API Cloud Translation, debes tener un proyecto en el que esté habilitada la API Cloud Translation y las credenciales adecuadas. También puedes instalar bibliotecas de cliente de los lenguajes de programación comunes para ayudarte a hacer llamadas a la API. Para obtener más información, consulta la página Configuración.
Permisos obligatorios
En el caso de las solicitudes que requieren acceso a Cloud Storage, como la traducción de documentos por lotes, es posible que necesite permisos de Cloud Storage para leer archivos de entrada o enviar archivos de salida a un segmento. Por ejemplo, para leer archivos de entrada de un segmento, debes tener al menos permisos de lectura de objetos (que proporciona el rol roles/storage.objectViewer
) en el segmento. Para obtener más información sobre los roles de Cloud Storage, consulta la documentación de Cloud Storage.
Traducir documentos (online)
La traducción online ofrece un procesamiento en tiempo real (procesamiento síncrono) de un solo archivo.
En el caso de los PDFs, el tamaño del archivo puede ser de hasta 20 MB y hasta 300 páginas para los PDFs nativos (el campo isTranslateNativePdfOnly
debe ser true
). Si habilitas el campo enableShadowRemovalNativePdf
, el límite es de 20 páginas. En el caso de los PDFs escaneados, el límite es de 20 páginas.
En el caso de otros tipos de documentos, el tamaño de los archivos puede ser de hasta 20 MB sin límite de páginas.
Traducir un documento de Cloud Storage
En el siguiente ejemplo se traduce un archivo de un segmento de Cloud Storage y se envía el resultado a otro segmento de Cloud Storage. La respuesta también devuelve un flujo de bytes. Puedes especificar el tipo MIME. Si no lo haces, Traducción de documentos lo determinará mediante la extensión del archivo de entrada.
Si no especificas un código de idioma de origen, Document Translation detectará el idioma por su cuenta. El idioma detectado se incluye en el resultado en el campo detectedLanguageCode
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu proyecto de Google Cloud .
- LOCATION: región en la que quieres ejecutar esta operación. Por ejemplo,
us-central1
. - SOURCE_LANGUAGE: (Opcional) Código de idioma del documento de entrada. Si lo conoces, asigna uno de los códigos de idioma que se indican en Idiomas admitidos.
- TARGET_LANGUAGE: idioma de destino al que se traducirá el documento de entrada. Se define en uno de los códigos de idioma que se indican en Idiomas admitidos.
- INPUT_FILE_PATH: la ubicación de Cloud Storage y el nombre de archivo del documento de entrada.
- OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage donde se almacenará el documento de salida.
- IS_NATIVE: (opcional) En el caso de los documentos PDF nativos, un valor booleano que indica si tu solicitud usa el límite de páginas de PDF nativo o escaneado. Si es true, el límite de páginas se aumenta a 300 páginas solo para documentos PDF nativos. Si se le asigna el valor false o no se especifica, se usará el límite de páginas PDF escaneadas (20 páginas).
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument
Cuerpo JSON de la solicitud:
{ "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "gcsSource": { "inputUri": "gs://INPUT_FILE_PATH" } }, "document_output_config": { "gcsDestination": { "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX" } }, "isTranslateNativePdfOnly": IS_NATIVE }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "documentTranslation": { "byteStreamOutputs": ["BYTE_STREAM"], "mimeType": "MIME_TYPE" }, "model": "projects/PROJECT_NUMBER/locations/LOCATION/models/general/nmt" }
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Cloud Translation.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Traducir un documento en línea
En el siguiente ejemplo se envía un documento insertado como parte de la solicitud. Debes incluir el tipo MIME de las traducciones de documentos insertados.
Si no especificas un código de idioma de origen, Document Translation detectará el idioma por su cuenta. El idioma detectado se incluye en el resultado en el campo detectedLanguageCode
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu proyecto de Google Cloud .
- LOCATION: región en la que quieres ejecutar esta operación. Por ejemplo,
us-central1
. - SOURCE_LANGUAGE: (Opcional) Código de idioma del documento de entrada. Si lo conoces, asigna uno de los códigos de idioma que se indican en Idiomas admitidos.
- TARGET_LANGUAGE: idioma de destino al que se traducirá el documento de entrada. Se define en uno de los códigos de idioma que se indican en Idiomas admitidos.
- MIME_TYPE: El formato del documento de origen, como
application/pdf
. - INPUT_BYTE_STREAM: el contenido del documento de entrada representado como un flujo de bytes.
- OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage donde se almacenará el documento de salida.
- IS_NATIVE: (opcional) En el caso de los documentos PDF nativos, un valor booleano que indica si tu solicitud usa el límite de páginas de PDF nativo o escaneado. Si es true, el límite de páginas se aumenta a 300 páginas solo para documentos PDF nativos. Si se le asigna el valor false o no se especifica, se usará el límite de páginas PDF escaneadas (20 páginas).
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument
Cuerpo JSON de la solicitud:
{ "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "mimeType": "MIME_TYPE", "content": "INPUT_BYTE_STREAM" }, "document_output_config": { "gcsDestination": { "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX" } }, "isTranslateNativePdfOnly": IS_NATIVE }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "documentTranslation": { "byteStreamOutputs": ["BYTE_STREAM"], "mimeType": "MIME_TYPE" }, "model": "projects/PROJECT_NUMBER/locations/LOCATION/models/general/nmt" }
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Cloud Translation.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Usar un modelo de AutoML o un glosario
En lugar del modelo gestionado por Google, puedes usar tus propios modelos de AutoML Translation para traducir documentos. Además de especificar un modelo, también puedes incluir un glosario para gestionar la terminología específica del dominio. Si especificas un modelo o un glosario, debes indicar el idioma de origen. En el siguiente ejemplo se usan un modelo de AutoML y un glosario. Si el modelo o el glosario están en otro proyecto, debes tener el permiso de gestión de identidades y accesos correspondiente para acceder a esos recursos.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu proyecto de Google Cloud .
- LOCATION: región en la que quieres ejecutar esta operación, como
us-central1
. La ubicación debe coincidir con la región en la que se encuentren tu modelo, tu glosario o ambos. - SOURCE_LANGUAGE: código de idioma del documento de entrada. Se define en uno de los códigos de idioma que se indican en Idiomas admitidos.
- TARGET_LANGUAGE: idioma de destino al que se traducirá el documento de entrada. Se define en uno de los códigos de idioma que se indican en Idiomas admitidos.
- INPUT_FILE_PATH: la ubicación de Cloud Storage y el nombre de archivo del documento de entrada.
- OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage donde se almacenará el documento de salida.
- MODEL_PROJECT_ID: ID del proyecto en el que se encuentra el modelo.
- MODEL_LOCATION: la región en la que se encuentra el modelo.
- MODEL_ID: ID del modelo que se va a usar.
- GLOSSARY_PROJECT_ID: el ID del proyecto en el que se encuentra la glosario.
- GLOSSARY_LOCATION: la región en la que se encuentra el glosario.
- GLOSSARY_ID: el ID de la glosario que se va a usar.
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument
Cuerpo JSON de la solicitud:
{ "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "gcsSource": { "inputUri": "gs://INPUT_FILE_PATH" } }, "document_output_config": { "gcsDestination": { "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX" } }, "model": "projects/MODEL_PROJECT_ID/locations/MODEL_LOCATION/models/MODEL_ID", "glossary_config": { "glossary": "projects/GLOSSARY_PROJECT_ID/locations/MODEL_LOCATION/glossaries/GLOSSARY_ID" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "documentTranslation": { "byteStreamOutputs": ["BYTE_STREAM"], "mimeType": "MIME_TYPE" }, "glossary_document_translation": { "byteStreamOutputs": ["BYTE_STREAM_USING_GLOSSARY"], "mimeType": "MIME_TYPE" }, "model": "projects/MODEL_PROJECT_ID/locations/MODEL_LOCATION/models/MODEL_ID", "glossaryConfig": { "glossary": "projects/GLOSSARY_PROJECT_ID/locations/MODEL_LOCATION/glossaries/GLOSSARY_ID" } }
Traducir documentos (por lotes)
La traducción por lotes te permite traducir varios archivos a varios idiomas en una sola solicitud. En cada solicitud, puedes enviar hasta 100 archivos con un tamaño de contenido total de hasta 1 GB o 100 millones de puntos de código Unicode, lo que se alcance primero. Puedes especificar un modelo de traducción concreto para cada idioma.
Traducir varios documentos
En el siguiente ejemplo se incluyen varias configuraciones de entrada. Cada configuración de entrada es un puntero a un archivo de un segmento de Cloud Storage.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu Google Cloud proyecto
- LOCATION: región en la que quieres ejecutar esta operación. Por ejemplo,
us-central1
. - SOURCE_LANGUAGE: código de idioma de los documentos de entrada. Se define en uno de los códigos de idioma que se indican en Idiomas admitidos.
- TARGET_LANGUAGE: el idioma o los idiomas de destino a los que se traducirán los documentos de entrada. Usa los códigos de idioma que se indican en Idiomas admitidos.
- INPUT_FILE_PATH: la ubicación de Cloud Storage y el nombre de archivo de uno o varios documentos de entrada.
- OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage donde se almacenan todos los documentos de salida.
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:batchTranslateDocument
Cuerpo JSON de la solicitud:
{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "gcsSource": { "inputUri": "gs://INPUT_FILE_PATH_1" } }, { "gcsSource": { "inputUri": "gs://INPUT_FILE_PATH_2" } }, ... ], "output_config": { "gcsDestination": { "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX" } } }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene el ID de una operación de larga duración.{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata", "state": "RUNNING" } }
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js Cloud Translation.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las Python instrucciones de configuración de la guía de inicio rápido de Cloud Translation con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python Cloud Translation.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Traducir y convertir un archivo PDF nativo
En el siguiente ejemplo se traduce y se convierte un archivo PDF nativo en un archivo DOCX. Puedes especificar varias entradas de distintos tipos de archivo. No es necesario que todos sean archivos PDF nativos. Sin embargo, no se pueden incluir archivos PDF escaneados al incluir una conversión. La solicitud se rechaza y no se realiza ninguna traducción. Solo se traducen los archivos PDF nativos y se convierten a archivos DOCX. Por ejemplo, si incluyes archivos PPTX, se traducirán y se devolverán como archivos PPTX.
Si sueles traducir una combinación de archivos PDF escaneados y nativos, te recomendamos que los organices en segmentos de Cloud Storage independientes. De esta forma, cuando solicites una traducción y conversión en lote, podrás excluir fácilmente el cubo que contiene los archivos PDF escaneados en lugar de tener que excluir archivos individuales.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu Google Cloud proyecto
- LOCATION: región en la que quieres ejecutar esta operación. Por ejemplo,
us-central1
. - SOURCE_LANGUAGE: código de idioma de los documentos de entrada. Se define en uno de los códigos de idioma que se indican en Idiomas admitidos.
- TARGET_LANGUAGE: el idioma o los idiomas de destino a los que se traducirán los documentos de entrada. Usa los códigos de idioma que se indican en Idiomas admitidos.
- INPUT_FILE_PATH: la ubicación de Cloud Storage y el nombre de archivo de uno o varios archivos PDF nativos.
- OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage donde se almacenan todos los documentos de salida.
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:batchTranslateDocument
Cuerpo JSON de la solicitud:
{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "gcsSource": { "inputUri": "gs://INPUT_FILE_PATH_1" } }, { "gcsSource": { "inputUri": "gs://INPUT_FILE_PATH_2" } }, ... ], "output_config": { "gcsDestination": { "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX" } }, "format_conversions": { "application/pdf": "application/vnd.openxmlformats-officedocument.wordprocessingml.document" } }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene el ID de una operación de larga duración.{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata", "state": "RUNNING" } }
Usar un modelo de AutoML o un glosario
En lugar del modelo gestionado por Google, puedes usar tus propios modelos de AutoML Translation para traducir documentos. Además de especificar un modelo, también puedes incluir un glosario para gestionar la terminología específica del dominio. Si especificas un modelo o un glosario, debes indicar el idioma de origen. En el siguiente ejemplo se usan un modelo de AutoML y un glosario. Puedes especificar hasta 10 idiomas de destino con su propio modelo y glosario.
Si especificas un modelo para algunos idiomas de destino, pero no para otros, Traducción de documentos usará el modelo gestionado por Google para los idiomas no especificados. Del mismo modo, si especificas un glosario para algunos idiomas de destino, Traducción de documentos no usará ningún glosario para los idiomas no especificados.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico de tu Google Cloud proyecto
- LOCATION: región en la que quieres ejecutar esta operación, como
us-central1
. La ubicación debe coincidir con la región en la que se encuentren tu modelo, tu glosario o ambos. - SOURCE_LANGUAGE: código de idioma de los documentos de entrada. Se define en uno de los códigos de idioma que se indican en Idiomas admitidos.
- TARGET_LANGUAGE: el idioma o los idiomas de destino a los que se traducirán los documentos de entrada. Usa los códigos de idioma que se indican en Idiomas admitidos.
- INPUT_FILE_PATH: la ubicación de Cloud Storage y el nombre de archivo de uno o varios documentos de entrada.
- OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage donde se almacenan todos los documentos de salida.
- MODEL_PROJECT_ID: ID del proyecto en el que se encuentra el modelo.
- MODEL_LOCATION: la región en la que se encuentra el modelo.
- MODEL_ID: ID del modelo que se va a usar.
- GLOSSARY_PROJECT_ID: el ID del proyecto en el que se encuentra la glosario.
- GLOSSARY_LOCATION: la región en la que se encuentra el glosario.
- GLOSSARY_ID: el ID de la glosario que se va a usar.
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument
Cuerpo JSON de la solicitud:
{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": "[TARGET_LANGUAGE, ...]", "input_configs": [ { "gcsSource": { "inputUri": "gs://INPUT_FILE_PATH" } } ], "output_config": { "gcsDestination": { "outputUriPrefix": "gs://OUTPUT_FILE_PREFIX" } }, "models": { "TARGET_LANGUAGE": "projects/MODEL_PROJECT_ID/locations/MODEL_LOCATION/models/MODEL_ID", ... }, "glossaries": { "TARGET_LANGUAGE": { "glossary": "projects/GLOSSARY_PROJECT_ID/locations/MODEL_LOCATION/glossaries/GLOSSARY_ID" }, ... } }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene el ID de una operación de larga duración.{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata", "state": "RUNNING" } }
Texto superpuesto
En algunos casos, las traducciones nativas de PDF pueden incluir texto traducido superpuesto al texto de origen. Este problema se conoce como texto fantasma.
En algunos casos, puedes quitar el texto fantasma habilitando la opción
enableShadowRemovalNativePdf
. Si habilitas esta opción, la latencia de respuesta aumenta y, en el caso de las traducciones de documentos online, el límite de páginas se reduce a 20. Solo sabrás si tu documento requiere que se elimine el texto fantasma una vez que se haya traducido.
En otros casos, si la opción enableShadowRemovalNativePdf
no funciona, convierte el PDF en una imagen y, a continuación, tradúcelo. Normalmente, estos casos incluyen texto en varias capas, como cuando el texto seleccionable está encima de una imagen de fondo que también incluye texto. Al convertir el PDF en una imagen, Cloud Translation puede procesar el documento como un PDF escaneado. Para hacer la conversión, puedes usar Chrome (imprimir como imagen) u otras herramientas de terceros.
Orientación del texto
En el caso de las traducciones de PDFs escaneados, el texto de origen debe estar orientado horizontalmente. Por ejemplo, si un documento escaneado incluye texto que está inclinado hacia arriba o hacia abajo, es posible que Cloud Translation no analice correctamente todo el texto, lo que dará lugar a traducciones incorrectas o incompletas.
Si tus documentos no tienen una orientación uniforme, puedes pedirle a Cloud Translation que los oriente. En tu solicitud de traducción, habilita la opción
enableRotationCorrection
para que el texto se oriente correctamente antes de traducirse.
Siguientes pasos
- Traducción de documentos se cobra por página. Para obtener más información, consulta los precios.