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