Traduce documentos

Cloud Translation Advanced proporciona una API de traducción de documentos para traducir directamente documentos con formato, como PDF y DOCX. En comparación con las traducciones de texto sin formato, Document Translation conserva el formato y el diseño originales de los documentos traducidos para ayudarte a conservar gran parte del contexto original, como las divisiones de los párrafos.

En las siguientes secciones, se describe cómo traducir documentos y usar Document Translation con otras funciones de Cloud Translation Advanced, como los glosarios y los modelos de AutoML Translation. Document Translation es compatible con solicitudes de traducción en línea y por lotes.

Para traducir texto sin formato y traducciones HTML, consulta Traducir texto.

Formatos de archivo compatibles

Document Translation admite los siguientes tipos de archivos de entrada y sus tipos de archivos de salida asociados.

Entradas Tipo de documento MIME 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 dentro de los cuadros de texto no se traduce y permanece en el idioma de origen.

* La traducción de documentos admite documentos PDF nativos y escaneados con algunas diferencias. Para manejar el formato óptimo, usa archivos PDF nativos cuando sea posible. La traducción de archivos PDF escaneados genera una pérdida de formato. Los diseños complejos de PDF también pueden generar cierta pérdida de formato, que pueden incluir tablas de datos, diseños de varias columnas y gráficos con etiquetas o leyendas.

Si tienes contenido en PDF en formato DOCX o PPTX, te recomendamos que traduzcas el contenido mediante esos formatos antes de convertirlos en PDF. En general, Document Translation conserva el diseño y el estilo de un documento de DOCX y PPTX mejor que los archivos PDF. Después de la traducción de un documento, puedes convertir los resultados en archivos PDF.

Traducciones de documentos PDF nativos y escaneados

Document Translation admite archivos PDF nativos y escaneados, como las traducciones en o desde idiomas que se leen de derecha a izquierda. La compatibilidad con las conversiones de PDF a DOCX está disponible solo para las traducciones de documentos por lotes en archivos PDF nativos. Además, Document Translation conserva los hipervínculos y el tamaño y color de la fuente solo para los archivos PDF nativos (en el caso de las traducciones síncronas y por lotes).

Si traduces un archivo PDF con una combinación de contenido PDF nativo y escaneado, el contenido analizado no se traducirá.

Antes de comenzar

Antes de comenzar a usar la API de Cloud Translation, debes tener un proyecto que tenga habilitada esta API y las credenciales adecuadas. También puedes instalar bibliotecas cliente para los lenguajes de programación comunes que te ayudarán a realizar llamadas a la API. Para obtener más información, consulta la página Configuración.

Permisos necesarios

Para las solicitudes que requieren acceso a Cloud Storage, como la traducción de documentos por lotes, es posible que necesites permisos de Cloud Storage para leer archivos de entrada o enviar archivos de salida a un bucket. Por ejemplo, para leer archivos de entrada de un bucket, al menos debes tener permisos de objetos de lectura (proporcionados por la función roles/storage.objectViewer) en el bucket. Para obtener más información sobre las funciones de Cloud Storage, consulta su documentación.

Traduce documentos (en línea)

La traducción en línea proporciona procesamiento en tiempo real (procesamiento síncrono) de un solo archivo.

En el caso de los archivos PDF, el tamaño del archivo puede ser de hasta 20 MB y hasta 300 páginas para los archivos PDF nativos (el campo isTranslateNativePdfOnly debe ser true). Si habilitas el campo enableShadowRemovalNativePdf, el límite es de 20 páginas. Para los archivos PDF escaneados, el límite es de 20 páginas.

En otros tipos de documentos, los tamaños de archivo no pueden superar los 20 MB sin límite de páginas.

Traduce un documento desde Cloud Storage

En el siguiente ejemplo, se traduce un archivo de un bucket de Cloud Storage y se muestra el resultado a un bucket de Cloud Storage. La respuesta también muestra un flujo de bytes. Puedes especificar el tipo de MIME; Si no lo haces, Document Translation lo determina mediante la extensión del archivo de entrada.

Si no especificas un código de idioma de origen, Document Translation detecta el idioma por ti. El idioma detectado se incluye en el resultado del campo detectedLanguageCode.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del proyecto de Google Cloud.
  • LOCATION: la región en la que deseas ejecutar esta operación Por ejemplo: us-central1
  • SOURCE_LANGUAGE: el código de idioma del documento de entrada (opcional) Si lo conoces, configura uno de los códigos de idioma que aparecen en la sección Idiomas admitidos.
  • TARGET_LANGUAGE: el idioma de destino al que se traducirá el documento de entrada. Establece uno de los códigos de idioma que se indican en Idiomas admitidos.
  • INPUT_FILE_PATH por la ubicación de Cloud Storage y el nombre de archivo del documento de entrada
  • OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage en la que se almacenará el documento de salida
  • IS_NATIVE: (Opcional) Para los documentos PDF nativos, un valor booleano que indica si tu solicitud usa el límite de páginas PDF nativas o analizadas. Si es verdadero, el límite de página se aumenta a 300 páginas solo para documentos nativos en PDF. Si es falso o no se especifica, se usa el límite de páginas PDF analizadas (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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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 instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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();

Traduce un documento intercalado

En el siguiente ejemplo, se envía un documento intercalado como parte de la solicitud. Debes incluir el tipo de MIME para traducciones de documentos intercalados.

Si no especificas un código de idioma de origen, Document Translation detecta el idioma por ti. El idioma detectado se incluye en el resultado del campo detectedLanguageCode.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del proyecto de Google Cloud.
  • LOCATION: la región en la que deseas ejecutar esta operación Por ejemplo: us-central1
  • SOURCE_LANGUAGE: el código de idioma del documento de entrada (opcional) Si lo conoces, configura uno de los códigos de idioma que aparecen en la sección Idiomas admitidos.
  • TARGET_LANGUAGE: el idioma de destino al que se traducirá el documento de entrada. Establece 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 en la que se almacenará el documento de salida
  • IS_NATIVE: (Opcional) Para los documentos PDF nativos, un valor booleano que indica si tu solicitud usa el límite de páginas PDF nativas o analizadas. Si es verdadero, el límite de página se aumenta a 300 páginas solo para documentos nativos en PDF. Si es falso o no se especifica, se usa el límite de páginas PDF analizadas (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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "documentTranslation": {
    "byteStreamOutputs": ["BYTE_STREAM"],
    "mimeType": "MIME_TYPE"
  },
  "model": "projects/PROJECT_NUMBER/locations/LOCATION/models/general/nmt"
}

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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

Usa un modelo o un glosario de AutoML

En lugar del modelo administrado 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 manejar la terminología específica del dominio. Si especificas un modelo o un glosario, debes especificar el idioma de origen. En el siguiente ejemplo, se usa un modelo de AutoML y un glosario. Si el modelo o el glosario están en un proyecto diferente, debes tener el permiso de IAM correspondiente para acceder a esos recursos.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del proyecto de Google Cloud.
  • LOCATION: la región en la que deseas ejecutar esta operación, como us-central1. La ubicación debe coincidir con la región en la que se encuentran tu modelo, glosario o ambos.
  • SOURCE_LANGUAGE: es el código de idioma del documento de entrada. Establece uno de los códigos de idioma que se indican en Idiomas admitidos.
  • TARGET_LANGUAGE: el idioma de destino al que se traducirá el documento de entrada. Establece uno de los códigos de idioma que se indican en Idiomas admitidos.
  • INPUT_FILE_PATH por la ubicación de Cloud Storage y el nombre de archivo del documento de entrada
  • OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage en la que se almacenará el documento de salida
  • MODEL_PROJECT_ID: el ID del proyecto en el que se encuentra el modelo
  • MODEL_LOCATION: la región en la que se encuentra el modelo
  • MODEL_ID: el ID del modelo que se usará
  • GLOSSARY_PROJECT_ID: el ID del proyecto en el que se encuentra el glosario
  • GLOSSARY_LOCATION: la región en la que se encuentra el glosario
  • GLOSSARY_ID: es el ID del glosario que se 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, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "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"
  }
}

Traduce documentos (por lotes)

La traducción por lotes te permite traducir varios archivos a varios idiomas en una sola solicitud. Para 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, el límite que se alcance primero. Puedes especificar un modelo de traducción particular para cada idioma.

Traduce varios documentos

En el siguiente ejemplo, se incluyen varios parámetros de configuración de entrada. Cada configuración de entrada es un puntero a un archivo en un bucket de Cloud Storage.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del proyecto de Google Cloud
  • LOCATION: la región en la que deseas ejecutar esta operación Por ejemplo: us-central1
  • SOURCE_LANGUAGE: el código de idioma de los documentos de entrada. Establece uno de los códigos de idioma que se indican en Idiomas admitidos.
  • TARGET_LANGUAGE: los idioma de segmentación o idiomas a los que se traducen 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 más documentos de entrada
  • OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage en la que 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, expande 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 instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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 instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.

Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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

Traduce y convierte un archivo PDF nativo

En el siguiente ejemplo, se traduce un archivo PDF nativo y se convierte en un archivo DOCX. Puedes especificar varias entradas de varios tipos de archivos (no todos tienen que ser archivos PDF nativos). Sin embargo, los archivos PDF escaneados no se pueden incluir cuando se incluye una conversión; la solicitud se rechaza y no se realizan traducciones. Solo los archivos PDF nativos se traducen y se convierten en archivos DOCX. Por ejemplo, si incluyes archivos PPTX, estos se traducen y se muestran como archivos PPTX.

Si traduces con frecuencia una combinación de archivos PDF nativos y escaneados, te recomendamos que los organices en buckets de Cloud Storage independientes. De esta manera, cuando solicitas una traducción por lotes y una conversión, puedes excluir con facilidad el bucket que contiene archivos PDF escaneados en lugar de tener que excluir archivos individuales.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del proyecto de Google Cloud
  • LOCATION: la región en la que deseas ejecutar esta operación Por ejemplo: us-central1
  • SOURCE_LANGUAGE: el código de idioma de los documentos de entrada. Establece uno de los códigos de idioma que se indican en Idiomas admitidos.
  • TARGET_LANGUAGE: los idioma de segmentación o idiomas a los que se traducen 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 más archivos PDF nativos.
  • OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage en la que 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, expande 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"
  }
}

Usa un modelo o un glosario de AutoML

En lugar del modelo administrado 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 manejar la terminología específica del dominio. Si especificas un modelo o un glosario, debes especificar el idioma de origen. En el siguiente ejemplo, se usa un modelo de AutoML y un glosario. Puedes especificar hasta 10 idiomas objetivo con su propio modelo y glosario.

Si especificas un modelo para algunos idiomas objetivo y no para otros, Document Translation usa el modelo administrado por Google para los idiomas no especificados. Del mismo modo, si especificas un glosario para algunos idiomas objetivo, la traducción de documentos no usa ningún glosario para los idiomas no especificados.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del proyecto de Google Cloud
  • LOCATION: la región en la que deseas ejecutar esta operación, como us-central1. La ubicación debe coincidir con la región en la que se encuentran tu modelo, glosario o ambos.
  • SOURCE_LANGUAGE: el código de idioma de los documentos de entrada. Establece uno de los códigos de idioma que se indican en Idiomas admitidos.
  • TARGET_LANGUAGE: los idioma de segmentación o idiomas a los que se traducen 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 más documentos de entrada
  • OUTPUT_FILE_PREFIX: la ubicación de Cloud Storage en la que se almacenan todos los documentos de salida
  • MODEL_PROJECT_ID: el ID del proyecto en el que se encuentra el modelo
  • MODEL_LOCATION: la región en la que se encuentra el modelo
  • MODEL_ID: el ID del modelo que se usará
  • GLOSSARY_PROJECT_ID: el ID del proyecto en el que se encuentra el glosario
  • GLOSSARY_LOCATION: la región en la que se encuentra el glosario
  • GLOSSARY_ID: es el ID del glosario que se 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, expande 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 de PDF nativas pueden incluir texto traducido superpuesto en el texto de origen. Este problema se conoce como texto paralelo.

En algunos casos, puedes quitar el texto paralelo si habilitas la opción enableShadowRemovalNativePdf. Si habilitas esta opción, la latencia de respuesta aumentará y, para las traducciones de documentos en línea, el límite de la página se reducirá a 20. Solo puedes saber si el documento requiere que se quite el texto paralelo después de traducirlo.

En otros casos, si la opción enableShadowRemovalNativePdf no funciona, convierte el PDF en una imagen y, luego, tradúcelo. Por lo general, estos casos incluyen texto de varias capas, como cuando un texto seleccionable se encuentra sobre una imagen de fondo que también incluye texto. Convertir el PDF en una imagen permite que Cloud Translation procese el documento como un PDF escaneado. Para realizar la conversión, puedes usar Chrome (imprimir como imagen) o cualquier otra herramienta de terceros.

Orientación del texto

Para las traducciones de PDF escaneadas, el texto de origen debe segmentarse horizontalmente. Por ejemplo, si un documento analizado incluye texto que está pendiente o hacia abajo, es posible que Cloud Translation no analice correctamente todo el texto, lo que genera traducciones incorrectas o incompletas.

Si tus documentos no están orientados de manera coherente, puedes hacer que Cloud Translation los oriente por ti. En tu solicitud de traducción, habilita la opción enableRotationCorrection para que el texto esté orientado de forma correcta antes de la traducción.

¿Qué sigue?

  • El precio de Document Translation se calcula por página. Para obtener más información, consulta Precios.