Inicio de traducción

Use esta API para iniciar una solicitud de traducción al servicio de traducción de documentos. Cada solicitud puede contener varios documentos y debe contener un contenedor de origen y otro de destino para cada documento.

El filtro de prefijo y sufijo (si se proporcionan) se usan para filtrar carpetas. El prefijo se aplica a la subruta después del nombre del contenedor.

Los glosarios/memorias de traducción pueden incluirse en la solicitud y el servicio los aplica cuando se traduce el documento.

Si el glosario no es válido o no se puede acceder a él durante la traducción, se indica un error en el estado del documento. Si ya existe un archivo con el mismo nombre en el destino, el trabajo producirá errores. El valor de targetUrl para cada idioma de destino debe ser único.

URL de la solicitud

Envíe una solicitud POST a:

POST https://<NAME-OF-YOUR-RESOURCE>.cognitiveservices.azure.com/translator/text/batch/v1.0/batches

Aprenda a encontrar su nombre de dominio personalizado.

Importante

  • Todas las solicitudes de API al servicio de traducción de documentos requieren un punto de conexión de dominio personalizado.
  • No usará el punto de conexión que se encuentra en la página Claves y punto de conexión del recurso en Azure Portal, ni el punto de conexión global del traductor (api.cognitive.microsofttranslator.com) para realizar solicitudes HTTP de traducción de documentos.

Encabezados de solicitud

Los encabezados de solicitud son:

encabezados Descripción
Ocp-Apim-Subscription-Key Encabezado de solicitud obligatorio

Cuerpo de la solicitud: solicitud de envío por lotes

Nombre Tipo Descripción
inputs BatchRequest[] BatchRequest[] que aparece a continuación. La lista de entrada de documentos o carpetas que contienen documentos. Tipos de medios: "application/json", "text/json", "application/*+json".

Entradas

Definición para la solicitud de traducción por lotes de entrada.

Nombre Tipo Obligatorio Descripción
source SourceInput[] Verdadero inputs.source que aparece a continuación. Origen de los documentos de entrada.
storageType StorageInputType[] False inputs.storageType que aparece a continuación. Tipo de almacenamiento de la cadena de origen de los documentos de entrada. Se requiere solo para la traducción de documentos únicos.
destinos TargetInput[] Verdadero inputs.target que aparece a continuación. Ubicación del destino de la salida.

inputs.source

Origen de los documentos de entrada.

Nombre Tipo Obligatorio Descripción
filter DocumentFilter[] False DocumentFilter[] que aparece a continuación.
filter.prefix string False Una cadena de prefijo que distingue entre mayúsculas y minúsculas para filtrar los documentos en la ruta de origen para su traducción. Por ejemplo, cuando se utiliza un URI de Azure Storage Blob, utilice el prefijo para restringir las subcarpetas para la traducción.
filter.suffix string False Una cadena de sufijo que distingue entre mayúsculas y minúsculas para filtrar los documentos en la ruta de origen para su traducción. Esto se utiliza más a menudo para las extensiones de archivos.
language string False Código de idioma. Si no se especifica ninguno, se realizará la detección automática en el documento.
sourceUrl string True Ubicación de la carpeta/contenedor o archivo único con los documentos.
storageSource StorageSource False StorageSource que aparece a continuación.
storageSource.AzureBlob string False

inputs.storageType

Tipo de almacenamiento de la cadena de origen de los documentos de entrada.

Nombre Tipo
archivo string
folder string

inputs.target

Destino de los documentos traducidos terminados.

Nombre Tipo Obligatorio Descripción
category string False Categoría/sistema personalizado para la solicitud de traducción.
glossaries Glossary[] False Glosario que aparece a continuación. Lista del glosario.
glossaries.format string False Formato.
glossaries.glossaryUrl string Verdadero (si se usan glosarios). Ubicación del glosario. Usaremos la extensión de archivo para extraer el formato si no se proporciona el parámetro de formato. Si el par de idiomas de traducción no está presente en el glosario, no se aplicará.
glossaries.storageSource StorageSource False StorageSource que aparece a continuación.
glossaries.version string False Versión opcional. Si no se especifica, se usa el valor predeterminado.
targetUrl string True Ubicación de la carpeta/contenedor con sus documentos.
language string True Código de dos letras del idioma de destino. Vea la lista de códigos de idioma.
storageSource StorageSource [] False StorageSource [] que aparece a continuación.

Solicitud de ejemplo

Los siguientes son ejemplos de solicitudes por lotes.

Traducción de todos los documentos de un contenedor

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=SDRPMjE4nfrH3csmKLILkT%2Fv3e0Q6SWpssuuQl1NmfM%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?sv=2019-12-12&st=2021-03-05T17%3A49%3A02Z&se=2021-03-13T17%3A49%3A00Z&sr=c&sp=wdl&sig=Sq%2BYdNbhgbq4hLT0o1UUOsTnQJFU590sWYo4BOhhQhs%3D",
                    "language": "fr"
                }
            ]
        }
    ]
}

Traducción de todos los documentos de un contenedor aplicando glosarios

Asegúrese de que ha creado la URL del glosario y el token de SAS para el blob/documento específico (no para el contenedor).

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=SDRPMjE4nfrH3csmKLILkT%2Fv3e0Q6SWpssuuQl1NmfM%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?sv=2019-12-12&st=2021-03-05T17%3A49%3A02Z&se=2021-03-13T17%3A49%3A00Z&sr=c&sp=wdl&sig=Sq%2BYdNbhgbq4hLT0o1UUOsTnQJFU590sWYo4BOhhQhs%3D",
                    "language": "fr",
                    "glossaries": [
                        {
                            "glossaryUrl": "https://my.blob.core.windows.net/glossaries/en-fr.xlf?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=BsciG3NWoOoRjOYesTaUmxlXzyjsX4AgVkt2AsxJ9to%3D",
                            "format": "xliff",
                            "version": "1.2"
                        }
                    ]

                }
            ]
        }
    ]
}

Traducción de una carpeta específica en un contenedor

Asegúrese de que ha especificado el nombre de la carpeta (distingue entre mayúsculas y minúsculas) como prefijo en el filtro, aunque el token de SAS sigue siendo para el contenedor.

{
    "inputs": [
        {
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en?sv=2019-12-12&st=2021-03-05T17%3A45%3A25Z&se=2021-03-13T17%3A45%3A00Z&sr=c&sp=rl&sig=SDRPMjE4nfrH3csmKLILkT%2Fv3e0Q6SWpssuuQl1NmfM%3D",
                "filter": {
                    "prefix": "MyFolder/"
                }
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target-fr?sv=2019-12-12&st=2021-03-05T17%3A49%3A02Z&se=2021-03-13T17%3A49%3A00Z&sr=c&sp=wdl&sig=Sq%2BYdNbhgbq4hLT0o1UUOsTnQJFU590sWYo4BOhhQhs%3D",
                    "language": "fr"
                }
            ]
        }
    ]
}

Traducción de un documento específico en un contenedor

  • Asegúrese de que ha especificado "storageType": "File".
  • Asegúrese de haber creado la URL de origen y el token de SAS para el blob/documento específico (no para el contenedor).
  • Asegúrese de haber especificado el nombre del archivo de destino como parte de la dirección URL de destino, aunque el token de SAS sigue siendo para el contenedor.
  • La solicitud de ejemplo siguiente muestra un único documento que se traduce en dos idiomas de destino.
{
    "inputs": [
        {
            "storageType": "File",
            "source": {
                "sourceUrl": "https://my.blob.core.windows.net/source-en/source-english.docx?sv=2019-12-12&st=2021-01-26T18%3A30%3A20Z&se=2021-02-05T18%3A30%3A00Z&sr=c&sp=rl&sig=d7PZKyQsIeE6xb%2B1M4Yb56I%2FEEKoNIF65D%2Fs0IFsYcE%3D"
            },
            "targets": [
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-Spanish.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "es"
                },
                {
                    "targetUrl": "https://my.blob.core.windows.net/target/try/Target-German.docx?sv=2019-12-12&st=2021-01-26T18%3A31%3A11Z&se=2021-02-05T18%3A31%3A00Z&sr=c&sp=wl&sig=AgddSzXLXwHKpGHr7wALt2DGQJHCzNFF%2F3L94JHAWZM%3D",
                    "language": "de"
                }
            ]
        }
    ]
}

Códigos de estado de respuesta

A continuación se indican los códigos de estado HTTP posibles que devuelve una solicitud.

Código de estado Descripción
202 Accepted. El servicio crea correctamente la solicitud y la solicitud por lotes. El encabezado Operation-Location indicará una dirección URL de estado con la operación ID.HeadersOperation-Location: string.
400 Solicitud incorrecta. Solicitud no válida. Compruebe los parámetros de entrada.
401 No autorizado. Compruebe las credenciales.
429 La tasa de solicitudes es demasiado alta.
500 Error interno del servidor.
503 El servicio no está disponible en este momento. Vuelva a intentarlo más tarde.
Otros códigos de estado
  • Demasiadas solicitudes
  • Servidor temporal no disponible.

Respuesta de error

Nombre Tipo Descripción
código string Enumeraciones que contiene códigos de error de alto nivel. Valores posibles:
  • InternalServerError
  • InvalidArgument
  • InvalidRequest
  • RequestRateTooHigh
  • ResourceNotFound
  • ServiceUnavailable
  • No autorizado
message string Obtiene un mensaje de error de alto nivel.
innerError InnerTranslationError Nuevo formato de error interno que cumple las directrices de Cognitive Services API. Contiene las propiedades necesarias ErrorCode, message y las propiedades opcionales, target, details (par clave-valor), innerError (se puede anidar).
inner.Errorcode string Obtiene la cadena de error de código.
innerError.message string Obtiene un mensaje de error de alto nivel.
innerError.target string Obtiene el origen del error. Por ejemplo, sería "documentos" o "id. de documento" en el caso de un documento no válido.

Ejemplos

Ejemplo de respuesta correcta

La siguiente información se devuelve en una respuesta correcta.

Puede encontrar el identificador del trabajo en el valor de la URL de Operation-Location del encabezado de respuesta. El último parámetro de la dirección URL es el identificador del trabajo de la operación (la cadena que sigue a "/operation/").

Operation-Location: https://<NAME-OF-YOUR-RESOURCE>.cognitiveservices.azure.com/translator/text/batch/v1.0/operation/0FA2822F-4C2A-4317-9C20-658C801E0E55

Respuesta de error de ejemplo

{
  "error": {
    "code": "ServiceUnavailable",
    "message": "Service is temporary unavailable",
    "innerError": {
      "code": "ServiceTemporaryUnavailable",
      "message": "Service is currently unavailable.  Please try again later"
    }
  }
}

Pasos siguientes

Siga nuestro inicio rápido para obtener más información sobre el uso de Traducción de documentos y la biblioteca cliente.