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 de destino 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 empezar a usar la API de Cloud Translation, debes tener un proyecto con esta API habilitada y las credenciales adecuadas. También puedes instalar bibliotecas cliente para los lenguajes de programación comunes que te ayudarán a hacer 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 buckets 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 bucket, al menos debes tener permisos de objetos de lectura (proporcionados por la
rol roles/storage.objectViewer) en el bucket. Para obtener más información sobre
los roles 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 buckets 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ío antes de que inicie 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, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: Es el ID numérico o alfanumérico 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, 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 Translation para Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Lenguajes adicionales
C#: Sigue las instrucciones 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 de destino.
Especifica un modelo de AutoML para el idioma de destino
REST
En este ejemplo, se muestra cómo especificar un modelo personalizado para el idioma de destino.Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: Es el ID numérico o alfanumérico 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, 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 Translation para Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Lenguajes adicionales
C#: Sigue las instrucciones 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 de destino
REST
Si tienes varios idiomas de destino, puedes especificar un modelo personalizado para cada uno.Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: Es el ID numérico o alfanumérico 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, 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 de destino y no otros
Puedes especificar un modelo personalizado para un idioma de destino sin especificar un modelo para los otros idiomas de destino. Con el código de Especificar modelos personalizados para varios idiomas de destino, modifica el campo models para especificar el idioma de destino 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
REST
En este ejemplo, se muestra cómo especificar un glosario para el idioma de destino.Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: Es el ID numérico o alfanumérico de tu proyecto de Google Cloud .
- glossary-id: Es 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 Translation para Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Lenguajes adicionales
C#: Sigue las instrucciones 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 de destino.Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT_NUMBER_OR_ID: Es el ID numérico o alfanumérico 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 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 Translation para Go.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Java.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Node.js.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para 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 Translation para Python.
Para autenticarte en Cloud Translation, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Lenguajes adicionales
C#: Sigue las instrucciones 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 sondear 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.