La traducción por lotes te permite traducir grandes cantidades de texto (con un límite de 100 archivos por lote) y hasta 10 idiomas objetivo diferentes en un comando sin conexión. El tamaño total del contenido debe ser menor o igual que 100 millones de puntos de código Unicode y debe usar la codificación UTF-8.
Antes de comenzar
Antes de comenzar a usar la API de Cloud Translation, debes tener un proyecto que tenga habilitada la API de Cloud Translation y las credenciales adecuadas. También puedes instalar bibliotecas cliente para los lenguajes de programación comunes que te ayudarán a realizar llamadas a la API.
Para obtener más información, consulta la página Configuración.
Permisos
Para las traducciones por lotes, debes tener acceso a los depósitos de Cloud Storage además de los permisos de Cloud Translation.
Los archivos de entrada de traducción por lotes se leen desde un bucket de Cloud Storage y los archivos de salida se escriben en un bucket de Cloud Storage. Por ejemplo, para leer archivos de entrada de un depósito, al menos debes tener permisos de objetos de lectura (proporcionados por la función roles/storage.objectViewer
) en el depósito. Para obtener más información sobre las funciones de Cloud Storage, consulta su documentación.
Archivo de entrada
Solo se admiten dos tipos de MIME: text/html (HTML) y text/plain (.tsv y .txt).
Usa un archivo TSV
Si una extensión de archivo es TSV, puede contener una o dos columnas. La primera columna (opcional) es el ID de la solicitud de texto. Si falta la primera columna, Google usa el número de fila (basado en 0) del archivo de entrada como el ID en el archivo de salida. La segunda columna es el texto real que se quiere traducir. Para obtener mejores resultados, cada fila debe ser menor o igual que 10.000 puntos de código Unicode. De lo contrario, es posible que se muestre un error.
Usa texto o HTML
Las demás extensiones de archivo compatibles son archivos de texto (.txt) o HTML, que se tratan como una sola porción grande de texto.
Solicitud por lotes
Con una solicitud de traducción por lotes, debes proporcionar la ruta de acceso a un archivo de configuración de entrada (InputConfig) que contenga el contenido que deseas traducir y proporcionar una ruta de acceso a una ubicación de salida (OutputConfig) para la traducción final. Necesitas al menos dos depósitos distintos de Cloud Storage. El bucket de origen contiene el contenido que deseas traducir y el bucket de destino contendrá los archivos traducidos resultantes. El bucket de destino debe estar vacío antes de que comience el proceso de traducción.
A medida que se procesa la solicitud, escribimos los resultados en la ubicación de salida en tiempo real. Aunque canceles la solicitud a mitad de la operación, se producirá un resultado parcial a nivel de los archivos de entrada en la ubicación de salida de Cloud Storage. Por lo tanto, se cobrará la cantidad de caracteres traducidos.
LÍNEA DE REST Y CMD
En este ejemplo, se muestran dos archivos de entrada enviados para traducir.Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:
- project-number-or-id: el número o ID de tu proyecto de Google Cloud
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
Cuerpo JSON de la solicitud:
{ "sourceLanguageCode": "en", "targetLanguageCodes": ["es", "fr"], "inputConfigs": [ { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name1" } }, { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name2" } } ], "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://bucket-name-destination/" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-number/locations/us-central1/operations/20191107-08251564068323-5d3895ce-0000-2067-864c-001a1136fb06", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateMetadata", "state": "RUNNING" } }
Comienza a usarlo
Antes de probar este código de muestra, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Go.
Java
Antes de probar este código de muestra, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Java.
Node.js
Antes de probar este código de muestra, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Node.js.
Python
Antes de probar este código de muestra, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Python.
Realiza una solicitud por lotes con un modelo de AutoML
Puedes usar un modelo personalizado para realizar una solicitud por lotes. Existen muchos casos en los que se incluyen varios idiomas objetivo.
Especifica un modelo de AutoML para el idioma objetivo
LÍNEA DE CMD Y REST
En este ejemplo, se muestra cómo especificar un modelo personalizado para el idioma objetivo.Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:
- project-number-or-id: el número o ID de tu proyecto de Google Cloud
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
Cuerpo JSON de la solicitud:
{ "models":{"es":"projects/project-number-or-id/locations/us-central1/models/model-id"}, "sourceLanguageCode": "en", "targetLanguageCodes": ["es"], "inputConfigs": [ { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name1" } }, { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name2" } } ], "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://bucket-name-destination/" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-number/locations/us-central1/operations/20190725-08251564068323-5d3895ce-0000-2067-864c-001a1136fb06", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateMetadata", "state": "RUNNING" } }
Comienza a usarlo
Antes de probar este código de muestra, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Go.
Java
Antes de probar este código de muestra, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Java.
Node.js
Antes de probar este código de muestra, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Node.js.
Python
Antes de probar este código de muestra, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Python.
Especifica modelos de AutoML para varios idiomas objetivo
LÍNEA DE CMD Y REST
Si tienes varios idiomas objetivo, puedes especificar un modelo personalizado para cada uno.Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:
- project-number-or-id: el número o ID de tu proyecto de Google Cloud
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
Cuerpo JSON de la solicitud:
{ "models":{ "es":"projects/project-number-or-id/locations/us-central1/models/model-id1", "fr":"projects/project-number-or-id/locations/us-central1/models/model-id2"}, "sourceLanguageCode": "en", "targetLanguageCodes": ["es", "fr"], "inputConfigs": [ { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name1" } }, { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name2" } } ], "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://bucket-name-destination/" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-number/locations/us-central1/operations/20191105-08251564068323-5d3895ce-0000-2067-864c-001a1136fb06", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateMetadata", "state": "RUNNING" } }
Especifica un modelo de AutoML para un idioma objetivo y no otros
Puedes especificar un modelo personalizado para un idioma objetivo sin especificar un modelo para los otros idiomas objetivo. Con el código de Especificar modelos personalizados para varios idiomas objetivo, modifica el campo models
para especificar el idioma objetivo del modelo, es
en este ejemplo, y deja fr
sin especificar:
"models": {'es':'projects/project-number-or-id/locations/us-central1/models/model-id'},
En el ejemplo anterior, project-number-or-id
es tu ID o número de proyecto de Google Cloud, y model-id
es el nombre que le asignaste a tu modelo de AutoML.
Traduce texto con un glosario
LÍNEA DE CMD Y REST
En este ejemplo, se muestra cómo especificar un glosario para el idioma objetivo.Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:
- project-number-or-id: el número o ID de tu proyecto de Google Cloud
- glossary-id: tu ID de glosario, por ejemplo, “my-en-to-es-glosario”
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
Cuerpo JSON de la solicitud:
{ "sourceLanguageCode": "en", "targetLanguageCodes": ["es"], "glossaries": { "es": { "glossary": "projects/project-number-or-id/locations/us-central1/glossaries/glossary-id" } }, "inputConfigs": [{ "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name1" } }, { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name2" } } ], "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://bucket-name-destination/" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-number/locations/us-central1/operations/operation-id", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateMetadata", "state": "RUNNING" } }
Comienza a usarlo
Antes de probar este código de muestra, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Go.
Java
Antes de probar este código de muestra, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Java.
Node.js
Antes de probar este código de muestra, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Node.js.
Python
Antes de probar este código de muestra, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Python.
Traduce textos con un modelo y un glosario personalizados de AutoML Translation
LÍNEA DE CMD Y REST
En este ejemplo, se muestra cómo especificar un modelo y un glosario personalizados para el idioma objetivo.Antes de usar cualquiera de los siguientes datos de solicitud, realiza estos reemplazos:
- project-number-or-id: el número o ID de tu proyecto de Google Cloud
Método HTTP y URL:
POST https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
Cuerpo JSON de la solicitud:
{ "models": { "es": "projects/project_number_or_id/locations/us-central1/models/model-id" }, "sourceLanguageCode": "en", "targetLanguageCodes": ["es"], "glossaries": { "es": { "glossary": "projects/project_number_or_id/locations/us-central1/glossaries/glossary-id" } }, "inputConfigs": [{ "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name" } }, { "gcsSource": { "inputUri": "gs://bucket-name-source/input-file-name2" } } ], "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://bucket-name-destination/" } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://translation.googleapis.com/v3/projects/project-number-or-id/locations/us-central1:batchTranslateText " | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/project-number/locations/us-central1/operations/operation-id", "metadata": { "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateMetadata", "state": "RUNNING" } }
Comienza a usarlo
Antes de probar este código de muestra, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Go.
Java
Antes de probar este código de muestra, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Java.
Node.js
Antes de probar este código de muestra, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Node.js.
Python
Antes de probar este código de muestra, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido sobre las bibliotecas cliente de Translation. Si deseas obtener más información, consulta la documentación de referencia de la API de Translation para Python.
Estado de la operación
Una solicitud por lotes es una operación de larga duración, por lo que puede tomar una cantidad considerable de tiempo en completarse. Puedes consultar el estado de esta operación para ver si se completó o puedes cancelar la operación.
Para obtener más información, consulta Operaciones de larga duración.