Traduzir documentos

A edição Advanced da Cloud Translation oferece a API Document Translation para 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 da Cloud Translation, como glossários e modelos do AutoML Translation. A Document Translation dá suporte a 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 com suporte

A Document Translation dá suporte aos 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, 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.

A Document Translation dá suporte a 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 grid vertical 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 Document Translation 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 dá suporte a 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, a 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 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 estas substituições:

  • 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-alvo 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 este exemplo, siga as instruções de configuração do Node.js no Guia de início rápido da Cloud Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Cloud Translation para Node.js.

Para autenticar-se na 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 inline

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

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 estas substituições:

  • 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-alvo 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 este exemplo, siga as instruções de configuração do Python no Guia de início rápido da Cloud Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Cloud Translation para Python.

Para autenticar-se na 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 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 estas substituições:

  • 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-alvo 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 que 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 estas substituições:

  • 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: 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-alvo para os quais os documentos de entrada serão traduzidos. Use os códigos 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 este exemplo, siga as instruções de configuração do Node.js no Guia de início rápido da Cloud Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Cloud Translation para Node.js.

Para autenticar-se na 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 este exemplo, siga as instruções de configuração do Python no Guia de início rápido da Cloud Translation: como usar bibliotecas de cliente. Saiba mais na documentação de referência da API Cloud Translation para Python.

Para autenticar-se na 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. É possível 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 estas substituições:

  • 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: 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-alvo para os quais os documentos de entrada serão traduzidos. Use os códigos 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 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-alvo com os próprios modelos e glossário.

Se você especificar um modelo para alguns idiomas-alvo 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-alvo, 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 estas substituições:

  • 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 dos documentos de entrada. Defina como um dos códigos de idioma listados em Suporte a idiomas.
  • TARGET_LANGUAGE: os idiomas-alvo para os quais os documentos de entrada serão traduzidos. Use os códigos 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 que 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 sobrepostos no texto de origem. Esse problema é chamado de texto fantasma.

Em alguns casos, é possível remover o texto fantasma 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, por exemplo, 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 a 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 estar na horizontal. Se, por exemplo, um documento digitalizado inclui texto na diagonal, a 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 maneira consistente, a Cloud Translation pode 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 da Document Translation é determinado por página. Para saber mais informações, consulte Preços.