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.
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.
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.
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.
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.