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.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'global';
// const inputUri = 'path_to_your_file';

// Imports the Google Cloud Translation library
const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1;

// Instantiates a client
const translationClient = new TranslationServiceClient();

const documentInputConfig = {
  gcsSource: {
    inputUri: inputUri,
  },
};

async function translateDocument() {
  // Construct request
  const request = {
    parent: translationClient.locationPath(projectId, location),
    documentInputConfig: documentInputConfig,
    sourceLanguageCode: 'en-US',
    targetLanguageCode: 'sr-Latn',
  };

  // Run request
  const [response] = await translationClient.translateDocument(request);

  console.log(
    `Response: Mime Type - ${response.documentTranslation.mimeType}`
  );
}

translateDocument();

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.

from google.cloud import translate_v3beta1 as translate


def translate_document(
    project_id: str,
    file_path: str,
) -> translate.TranslationServiceClient:
    """Translates a document.

    Args:
        project_id: The GCP project ID.
        file_path: The path to the file to be translated.

    Returns:
        The translated document.
    """

    client = translate.TranslationServiceClient()
    location = "us-central1"
    parent = f"projects/{project_id}/locations/{location}"

    # Supported file types: https://cloud.google.com/translate/docs/supported-formats
    with open(file_path, "rb") as document:
        document_content = document.read()

    document_input_config = {
        "content": document_content,
        "mime_type": "application/pdf",
    }

    response = client.translate_document(
        request={
            "parent": parent,
            "target_language_code": "fr-FR",
            "document_input_config": document_input_config,
        }
    )

    # To output the translated document, uncomment the code below.
    # f = open('/tmp/output', 'wb')
    # f.write(response.document_translation.byte_stream_outputs[0])
    # f.close()

    # If not provided in the TranslationRequest, the translated file will only be returned through a byte-stream
    # and its output mime type will be the same as the input file's mime type
    print(
        f"Response: Detected Language Code - {response.document_translation.detected_language_code}"
    )

    return response

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.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const inputUri = 'path_to_your_files';
// const outputUri = 'path_to_your_output_bucket';

// Imports the Google Cloud Translation library
const {TranslationServiceClient} = require('@google-cloud/translate').v3beta1;

// Instantiates a client
const translationClient = new TranslationServiceClient();

const documentInputConfig = {
  gcsSource: {
    inputUri: inputUri,
  },
};

async function batchTranslateDocument() {
  // Construct request
  const request = {
    parent: translationClient.locationPath(projectId, location),
    documentInputConfig: documentInputConfig,
    sourceLanguageCode: 'en-US',
    targetLanguageCodes: ['sr-Latn'],
    inputConfigs: [
      {
        gcsSource: {
          inputUri: inputUri,
        },
      },
    ],
    outputConfig: {
      gcsDestination: {
        outputUriPrefix: outputUri,
      },
    },
  };

  // Batch translate documents using a long-running operation.
  // You can wait for now, or get results later.
  const [operation] = await translationClient.batchTranslateDocument(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();

  console.log(`Total Pages: ${response.totalPages}`);
}

batchTranslateDocument();

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.


from google.cloud import translate_v3beta1 as translate


def batch_translate_document(
    input_uri: str,
    output_uri: str,
    project_id: str,
    timeout: int = 180,
) -> translate.BatchTranslateDocumentResponse:
    """Batch translate documents.

    Args:
        input_uri: Google Cloud Storage location of the input document.
        output_uri: Google Cloud Storage location of the output document.
        project_id: The GCP project ID.
        timeout: The timeout for this request.

    Returns:
        Translated document response
    """
    client = translate.TranslationServiceClient()

    # The ``global`` location is not supported for batch translation
    location = "us-central1"

    # Google Cloud Storage location for the source input. This can be a single file
    # (for example, ``gs://translation-test/input.docx``) or a wildcard
    # (for example, ``gs://translation-test/*``).
    # Supported file types: https://cloud.google.com/translate/docs/supported-formats
    gcs_source = {"input_uri": input_uri}

    batch_document_input_configs = {
        "gcs_source": gcs_source,
    }
    gcs_destination = {"output_uri_prefix": output_uri}
    batch_document_output_config = {"gcs_destination": gcs_destination}
    parent = f"projects/{project_id}/locations/{location}"

    # Supported language codes: https://cloud.google.com/translate/docs/language
    operation = client.batch_translate_document(
        request={
            "parent": parent,
            "source_language_code": "en-US",
            "target_language_codes": ["fr-FR"],
            "input_configs": [batch_document_input_configs],
            "output_config": batch_document_output_config,
        }
    )

    print("Waiting for operation to complete...")
    response = operation.result(timeout)

    print(f"Total Pages: {response.total_pages}")

    return response

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.