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 esta API 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. La carpeta de destino debe estar vacía 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.
REST
En este ejemplo, se muestran dos archivos de entrada enviados para traducir.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del 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, expande una de estas opciones:
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" } }
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: sigue lasinstrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para Ruby.
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
REST
En este ejemplo, se muestra cómo especificar un modelo personalizado para el idioma objetivo.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del 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, expande una de estas opciones:
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" } }
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: sigue lasinstrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para Ruby.
Especifica modelos de AutoML para varios idiomas objetivo
REST
Si tienes varios idiomas objetivo, puedes especificar un modelo personalizado para cada uno.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del 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, expande una de estas opciones:
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 mediante un glosario
REST
En este ejemplo, se muestra cómo especificar un glosario para el idioma objetivo.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del 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 print-access-token)" \
-H "x-goog-user-project: PROJECT_NUMBER_OR_ID" \
-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 print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_NUMBER_OR_ID" }
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" } }
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: sigue lasinstrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para Ruby.
Traduce textos con un modelo y un glosario personalizados de AutoML Translation
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 datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: el ID numérico o alfanumérico del 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 print-access-token)" \
-H "x-goog-user-project: PROJECT_NUMBER_OR_ID" \
-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 print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_NUMBER_OR_ID" }
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" } }
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que encontrarás en la guía de inicio rápido de Cloud Translation sobre las bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Idiomas adicionales
C#: sigue lasinstrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Cloud Translation para Ruby.
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.
Recursos adicionales
- Para obtener ayuda en la resolución de errores o problemas habituales, consulta la página Solución de problemas.