Traduzir documentos

O Cloud Translation - Advanced oferece uma API de tradução direta de documentos formatados, como PDF e DOCX. Em comparação com traduções de texto simples, a Document Translation preserva a formatação e o layout originais nos documentos traduzidos, ajudando você a reter grande parte do contexto original, como quebras de parágrafo.

As seções a seguir descrevem como traduzir documentos e usar a Document Translation com outros recursos da edição Advanced do Cloud Translation, como glossários e modelos do AutoML Translation. A Document Translation é compatível com solicitações de tradução on-line e em lote.

Para traduções de texto simples e HTML, consulte Como traduzir texto.

Formatos de arquivo compatíveis

A Document Translation é compatível com os seguintes tipos de arquivo de entrada e os tipos de arquivo de saída associados.

Entradas Tipo de documento MIME Saída
DOC* application/msword DOC, DOCX
DOCX* application/vnd.openxmlformats-officedocument.wordprocessingml.document DOCX
PDF application/pdf PDF e 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

*O conteúdo dentro das caixas de texto não é traduzido e permanece no idioma de origem.

O Document Translation é compatível com documentos PDF nativos e digitalizados com algumas diferenças. Para lidar com o formato, use arquivos PDF nativos sempre que possível. A tradução de arquivos PDF digitalizados resulta em perda de formatação. Layouts complexos em PDF também podem resultar em alguma perda de formatação, o que pode incluir tabelas de dados, layouts de várias colunas e gráficos com rótulos ou legendas.

Se você tiver conteúdo PDF no formato DOCX ou PPTX, recomendamos que você traduza o conteúdo usando esses formatos antes de convertê-los em PDFs. Em geral, a Tradução de documentos preserva o layout e o estilo de um arquivo DOCX e PPTX melhor do que arquivos PDF. Após a tradução de um documento, será possível converter os resultados em arquivos PDF.

Traduções de documentos nativas e digitalizadas em PDF

A Document Translation é compatível com arquivos PDF nativos e digitalizados, incluindo traduções para ou de idiomas da direita para a esquerda. A compatibilidade com a conversão de PDF para DOCX está disponível apenas para traduções de documentos em lote em arquivos PDF nativos. Além disso, o Document Translation preserva hiperlinks, tamanho e cor da fonte somente para arquivos PDF nativos (para traduções síncronas e em lote).

Se você traduzir um arquivo PDF com uma combinação de conteúdo PDF digitalizado e nativo, o conteúdo digitalizado não será traduzido.

Antes de começar

Antes de começar a usar a API Cloud Translation, é preciso ter um projeto com a API Cloud Translation ativada e as credenciais apropriadas. Também é possível instalar bibliotecas de cliente para linguagens de programação comuns para ajudar você a fazer chamadas para a API. Para ver mais informações, consulte a página Configuração.

Permissões necessárias

Para solicitações que exigem acesso ao Cloud Storage, como a tradução de documentos em lote, é necessário ter permissões do Cloud Storage para ler arquivos de entrada ou enviar arquivos de saída para um bucket. Por exemplo, para ler arquivos de entrada de um bucket, é preciso ter no mínimo permissões de leitura de objetos, fornecidas pelo papel roles/storage.objectViewer, no bucket. Para mais informações sobre esses papéis, consulte a documentação do Cloud Storage

Traduzir documentos (on-line)

A tradução on-line fornece processamento em tempo real (processamento síncrono) de um único arquivo.

Para PDFs, o tamanho do arquivo pode ser de até 20 MB e até 300 páginas para PDFs nativos (é necessário que o campo isTranslateNativePdfOnly seja true). Se você ativar o campo enableShadowRemovalNativePdf, o limite será de 20 páginas. Para PDFs digitalizados, o limite é de 20 páginas.

Para outros tipos de documento, os tamanhos dos arquivos podem ser de até 20 MB, sem limites de página.

Traduzir um documento do Cloud Storage

O exemplo a seguir converte um arquivo de um bucket do Cloud Storage e gera o resultado em um bucket do Cloud Storage. A resposta também retorna um fluxo de bytes. É possível especificar o tipo MIME. Caso contrário, a Document Translation determina a extensão usando a extensão do arquivo de entrada.

Observação: se você não especificar um código de idioma de origem, a Document Translation detectará o idioma para você. O idioma detectado está incluído na saída do campo detectedLanguageCode.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER_OR_ID: o ID numérico ou alfanumérico do seu projeto do Google Cloud.
  • LOCATION: região em que você quer executar a operação. Por exemplo, us-central1.
  • SOURCE_LANGUAGE: (opcional) o código do idioma do documento de entrada. Se possível, defina um dos códigos de idioma listados em Suporte a idiomas.
  • TARGET_LANGUAGE: o idioma de chegada para o qual traduzir o documento de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • INPUT_FILE_PATH: o local do Cloud Storage e o nome do arquivo do documento de entrada.
  • OUTPUT_FILE_PREFIX: o local do Cloud Storage em que o documento de saída será armazenado.
  • IS_NATIVE: (opcional) para documentos PDF nativos, um valor booleano que indica se a solicitação usa o limite de páginas de PDF nativo ou digitalizado. Se for verdadeiro, o limite de páginas será aumentado para 300 páginas apenas no caso de documentos PDF nativos. Se for falso ou não estiver especificado, o limite de páginas de PDF digitalizado será usado (20 páginas).

Método HTTP e URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Node.js

Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Cloud Translation: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Cloud Translation em Node.js.

Para autenticar no Cloud Translation, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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();

Traduzir um documento in-line

O exemplo a seguir envia um documento in-line como parte da solicitação. É necessário incluir o tipo MIME para traduções de documentos in-line.

Se você não especificar um código de idioma de origem, a Document Translation detectará o idioma para você. O idioma detectado está incluído na saída do campo detectedLanguageCode.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER_OR_ID: o ID numérico ou alfanumérico do seu projeto do Google Cloud.
  • LOCATION: região em que você quer executar a operação. Por exemplo, us-central1.
  • SOURCE_LANGUAGE: (opcional) o código do idioma do documento de entrada. Se possível, defina um dos códigos de idioma listados em Suporte a idiomas.
  • TARGET_LANGUAGE: o idioma de chegada para o qual traduzir o documento de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • MIME_TYPE: o formato do documento de origem, como application/pdf.
  • INPUT_BYTE_STREAM: o conteúdo do documento de entrada representado como um stream de bytes.
  • OUTPUT_FILE_PREFIX: o local do Cloud Storage em que o documento de saída será armazenado.
  • IS_NATIVE: (opcional) para documentos PDF nativos, um valor booleano que indica se a solicitação usa o limite de páginas de PDF nativo ou digitalizado. Se for verdadeiro, o limite de páginas será aumentado para 300 páginas apenas no caso de documentos PDF nativos. Se for falso ou não estiver especificado, o limite de páginas de PDF digitalizado será usado (20 páginas).

Método HTTP e URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Python

Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Cloud Translation: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Cloud Translation em Python.

Para autenticar no Cloud Translation, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 um modelo ou um glossário do AutoML

Em vez do modelo gerenciado pelo Google, é possível usar seus modelos do AutoML Translation para traduzir documentos. Além de especificar um modelo, também é possível incluir um glossário para lidar com a terminologia específica do domínio. Se você especificar um modelo ou um glossário, precisará especificar o idioma de origem. No exemplo a seguir, usamos um modelo do AutoML e um glossário. Se o modelo ou o glossário estiver em um projeto diferente, será preciso ter a permissão correspondente do IAM para acessar esses recursos.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER_OR_ID: o ID numérico ou alfanumérico do seu projeto do Google Cloud.
  • LOCATION: região em que você quer executar essa operação, como us-central1. O local precisa corresponder à região em que seu modelo e/ou glossário estão localizados.
  • SOURCE_LANGUAGE: o código do idioma do documento de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • TARGET_LANGUAGE: o idioma de chegada para o qual traduzir o documento de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • INPUT_FILE_PATH: o local do Cloud Storage e o nome do arquivo do documento de entrada.
  • OUTPUT_FILE_PREFIX: o local do Cloud Storage em que o documento de saída será armazenado.
  • MODEL_PROJECT_ID: o ID do projeto em que o modelo está localizado.
  • MODEL_LOCATION: a região em que o modelo está localizado.
  • MODEL_ID: o ID do modelo a ser usado.
  • GLOSSARY_PROJECT_ID: o ID do projeto em que o glossário está localizado.
  • GLOSSARY_LOCATION: a região em que o glossário está localizado.
  • GLOSSARY_ID: o ID do glossário a ser usado.

Método HTTP e URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Traduzir documentos (lote)

A tradução em lote permite que você traduza vários arquivos em vários idiomas em uma única solicitação. Para cada solicitação, é possível enviar até 100 arquivos com tamanho de conteúdo total de até 1 GB ou 100 milhões de pontos de código Unicode, o limite que for atingido primeiro. É possível especificar um modelo de tradução específico para cada idioma.

Traduzir vários documentos

O exemplo a seguir inclui várias configurações de entrada. Cada configuração de entrada é um ponteiro para um arquivo em um bucket do Cloud Storage.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER_OR_ID: o ID numérico ou alfanumérico do projeto do Google Cloud
  • LOCATION: região em que você quer executar a operação. Por exemplo, us-central1.
  • SOURCE_LANGUAGE: o código do idioma dos documentos de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • TARGET_LANGUAGE: os idiomas de chegada para os quais os documentos de entrada serão traduzidos. Use os IDs de idioma listados em Suporte a idiomas.
  • INPUT_FILE_PATH: o local do Cloud Storage e o nome do arquivo de um ou mais documentos de entrada.
  • OUTPUT_FILE_PREFIX: o local do Cloud Storage em que todos os documentos de saída são armazenados.

Método HTTP e URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:batchTranslateDocument

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

A resposta contém o ID para uma operação de longa duração.
{
  "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 testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Cloud Translation: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Cloud Translation em Node.js.

Para autenticar no Cloud Translation, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Cloud Translation: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Cloud Translation em Python.

Para autenticar no Cloud Translation, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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

Traduzir e converter um arquivo PDF nativo

O exemplo a seguir traduz e converte um arquivo PDF nativo em um arquivo DOCX. Você pode especificar várias entradas de vários tipos de arquivo. Nem todos precisam ser arquivos PDF nativos. No entanto, os arquivos PDF digitalizados não podem ser incluídos ao incluir uma conversão: a solicitação será rejeitada, e nenhuma tradução será feita. Somente arquivos PDFs nativos são traduzidos e convertidos em arquivos DOCX. Por exemplo, se você incluir arquivos PPTX, eles serão traduzidos e retornados como arquivos PPTX.

Se você traduz regularmente uma combinação de arquivos PDF nativos e digitalizados, recomendamos organizá-los em buckets separados do Cloud Storage. Dessa forma, ao solicitar uma conversão e uma tradução em lote, é possível excluir facilmente o bucket que contém arquivos PDF digitalizados em vez de excluir arquivos individuais.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER_OR_ID: o ID numérico ou alfanumérico do projeto do Google Cloud
  • LOCATION: região em que você quer executar a operação. Por exemplo, us-central1.
  • SOURCE_LANGUAGE: o código do idioma dos documentos de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • TARGET_LANGUAGE: os idiomas de chegada para os quais os documentos de entrada serão traduzidos. Use os IDs de idioma listados em Suporte a idiomas.
  • INPUT_FILE_PATH: o local do Cloud Storage e o nome de um ou mais arquivos PDF nativos.
  • OUTPUT_FILE_PREFIX: o local do Cloud Storage em que todos os documentos de saída são armazenados.

Método HTTP e URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:batchTranslateDocument

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

A resposta contém o ID para uma operação de longa duração.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Usar um modelo ou um glossário do AutoML

Em vez do modelo gerenciado pelo Google, é possível usar seus modelos do AutoML Translation para traduzir documentos. Além de especificar um modelo, também é possível incluir um glossário para lidar com a terminologia específica do domínio. Se você especificar um modelo ou um glossário, precisará especificar o idioma de origem. No exemplo a seguir, usamos um modelo do AutoML e um glossário. É possível especificar até 10 idiomas de chegada com os próprios modelos e glossário deles.

Se você especificar um modelo para alguns idiomas de chegada e não para outros, a Document Translation usará o modelo gerenciado pelo Google para os idiomas não especificados. Da mesma forma, se você especificar um glossário para alguns idiomas de destino, a Document Translation não usará nenhum glossário para os idiomas não especificados.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_NUMBER_OR_ID: o ID numérico ou alfanumérico do projeto do Google Cloud
  • LOCATION: região em que você quer executar essa operação, como us-central1. O local precisa corresponder à região em que seu modelo e/ou glossário estão localizados.
  • SOURCE_LANGUAGE: o código do idioma dos documentos de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • TARGET_LANGUAGE: os idiomas de chegada para os quais os documentos de entrada serão traduzidos. Use os IDs de idioma listados em Suporte a idiomas.
  • INPUT_FILE_PATH: o local do Cloud Storage e o nome do arquivo de um ou mais documentos de entrada.
  • OUTPUT_FILE_PREFIX: o local do Cloud Storage em que todos os documentos de saída são armazenados.
  • MODEL_PROJECT_ID: o ID do projeto em que o modelo está localizado.
  • MODEL_LOCATION: a região em que o modelo está localizado.
  • MODEL_ID: o ID do modelo a ser usado.
  • GLOSSARY_PROJECT_ID: o ID do projeto em que o glossário está localizado.
  • GLOSSARY_LOCATION: a região em que o glossário está localizado.
  • GLOSSARY_ID: o ID do glossário a ser usado.

Método HTTP e URL:

POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID/locations/LOCATION:translateDocument

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

A resposta contém o ID para uma operação de longa duração.
{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
    "state": "RUNNING"
  }
}

Texto sobreposto

Em alguns casos, as traduções de PDF nativos podem incluir textos traduzidos sobreposto no texto de origem. Esse problema é chamado de texto fantasma.

Em alguns casos, é possível remover o texto de sombra ativando a opção enableShadowRemovalNativePdf. Se você ativar essa opção, a latência de resposta aumentará e, para traduções de documentos on-line, o limite de páginas será reduzido para 20. Só é possível saber se o documento exige remoção de texto fantasma depois da tradução.

Em outros casos, se a opção enableShadowRemovalNativePdf não funcionar, converta o PDF em uma imagem e traduza o arquivo. Normalmente, esses casos incluem texto com várias camadas, como quando o texto selecionável está sobre uma imagem de plano de fundo que também inclui texto. Converter o PDF em uma imagem permite que o Cloud Translation processe o documento como um PDF digitalizado. Para fazer a conversão, use o Chrome (imprimir como imagem) ou outras ferramentas de terceiros.

Orientação do texto

Para traduções de PDF digitalizado, o texto de origem precisa ser orientado horizontalmente. Se, por exemplo, um documento digitalizado inclui texto inclinado para cima ou para baixo, o Cloud Translation talvez não analise corretamente todo o texto, o que resulta em traduções incorretas ou incompletas.

Se os documentos não estiverem orientados de forma consistente, é possível deixar o Cloud Translation orientá-los para você. Na solicitação de tradução, ative a opção enableRotationCorrection para que o texto fique na orientação correta antes da tradução.

A seguir

  • O preço do Document Translation é determinado por página. Para saber mais informações, consulte Preços.