Compartir a través de


Azure Translator en Foundry Tools 3.0: Traducción

Traduce texto.

URL de la solicitud

Envíe una POST solicitud a:

https://api.cognitive.microsofttranslator.com/translate?api-version=3.0

ConsulteCompatibilidad con red virtual para la configuración y el soporte técnico de la red seleccionada de Translator y el punto de conexión privado.

Parámetros de solicitud

Los parámetros de solicitud pasados en la cadena de consulta son:

Parámetros obligatorios

Parámetro de consulta Description
versión de la API Parámetro obligatorio.
Versión de la API solicitada por el cliente. El valor debe ser 3.0.
Para Parámetro obligatorio.
Especifica el idioma del texto de salida. El idioma de destino debe ser uno de los idiomas admitidos incluidos en el translation ámbito. Por ejemplo, use to=de para traducir a alemán.
Es posible traducir a varios idiomas simultáneamente repitiendo el parámetro en la cadena de consulta. Por ejemplo, use to=de&to=it para traducir a alemán e italiano.

Parámetros opcionales

Parámetro de consulta Description
desde Parámetro opcional.
Especifica el idioma del texto de entrada. Busque los idiomas disponibles para traducir desde mediante la búsqueda de idiomas admitidos mediante el translation ámbito. Si no se especifica el from parámetro , la detección automática de idioma se aplica para determinar el idioma de origen.

Debe usar el from parámetro en lugar de la detección automática al usar la característica de diccionario dinámico . Nota: La característica de diccionario dinámico distingue mayúsculas de minúsculas.
textType Parámetro opcional.
Define si el texto que se va a traducir es texto sin formato o texto HTML. Cualquier HTML debe ser un elemento completo con formato correcto. Los valores posibles son: plain (valor predeterminado) o html.
categoría Parámetro opcional.
Cadena que especifica la categoría (dominio) de la traducción. Este parámetro se usa para obtener traducciones de un sistema personalizado creado con Custom Translator. Para usar el sistema personalizado implementado, agregue el identificador de categoría de los detalles del proyecto de Custom Translator al parámetro category. El valor predeterminado es : general.
profanityAction Parámetro opcional.
Especifica cómo se deben tratar las palabras soeces en las traducciones. Los valores posibles son: NoAction (valor predeterminado), Markedo Deleted. Para comprender las formas de tratar las palabras soeces, consulte Control de palabras soeces.
profanityMarker Parámetro opcional.
Especifica cómo se deben marcar las palabras soeces en las traducciones. Los valores posibles son: Asterisk (valor predeterminado) o Tag. Para comprender las formas de tratar las palabras soeces, consulte Control de palabras soeces.
includeAlignment Parámetro opcional.
Especifica si se debe incluir la proyección de alineación del texto de origen al texto traducido. Los valores posibles son: true o false (valor predeterminado).
includeSentenceLength Parámetro opcional.
Especifica si se deben incluir límites de oración para el texto de entrada y el texto traducido. Los valores posibles son: true o false (valor predeterminado).
suggestedFrom Parámetro opcional.
Especifica un idioma de reserva si no se puede identificar el idioma del texto de entrada. La detección automática de idioma se aplica cuando se omite el from parámetro. Si se produce un error en la detección, se asume el suggestedFrom idioma.
fromScript Parámetro opcional.
Especifica el script del texto de entrada.
toScript Parámetro opcional.
Especifica el script del texto traducido.
allowFallback Parámetro opcional.
Especifica que el servicio puede revertir a un sistema general cuando no existe un sistema personalizado. Los valores posibles son: true (valor predeterminado) o false.

allowFallback=false especifica que la traducción solo debe usar sistemas entrenados para el category especificado por la solicitud. Si una traducción del lenguaje X al idioma Y requiere encadenar a través de un lenguaje dinámico E, todos los sistemas de la cadena (X → E y E → Y) deben ser personalizados y tener la misma categoría. Si no se encuentra ningún sistema con la categoría específica, la solicitud devuelve un código de estado 400. allowFallback=true especifica que el servicio puede revertir a un sistema general cuando no existe un sistema personalizado.

Los encabezados de solicitud incluyen:

Headers Description
Encabezados de autenticación Encabezado de solicitud requerido.
Consulte las opciones disponibles para la autenticación.
Tipo de contenido Encabezado de solicitud requerido.
Especifica el tipo de contenido de la carga útil.
El valor aceptado es application/json; charset=UTF-8.
Content-Length Opcional.
Longitud del cuerpo de la solicitud.
X-ClientTraceId Opcional.
Guid generado por el cliente para identificar de forma única la solicitud. Puede omitir este encabezado si incluye el identificador de seguimiento en la cadena de consulta mediante un parámetro de consulta denominado ClientTraceId.

Cuerpo de la solicitud

El cuerpo de la solicitud es una matriz JSON. Cada elemento de matriz es un objeto JSON con una propiedad de cadena denominada Text, que representa la cadena que se va a traducir.

[
    {"text":"I would really like to drive your car around the block a few times."}
]

Para obtener información sobre los límites de caracteres y matrices, consulteLímites de solicitud.

Cuerpo de respuesta

Una respuesta correcta es una matriz JSON con un resultado para cada cadena de la matriz de entrada. Un objeto de resultado incluye las siguientes propiedades:

  • detectedLanguage: objeto que describe el idioma detectado a través de las siguientes propiedades:

    • language: cadena que representa el código del idioma detectado.

    • score: valor float que indica la confianza en el resultado. La puntuación está entre cero y una y una puntuación baja indica una confianza baja.

    La detectedLanguage propiedad solo está presente en el objeto de resultado cuando se solicita la detección automática de idioma.

  • translations: matriz de resultados de traducción. El tamaño de la matriz coincide con el número de idiomas de destino especificados a través del to parámetro de consulta. Cada elemento de la matriz incluye:

    • to: cadena que representa el código de idioma del idioma de destino.

    • text: cadena que proporciona el texto traducido.

    • transliteration: objeto que proporciona el texto traducido en el script especificado por el toScript parámetro .

      • script: cadena que especifica el script de destino.

      • text: cadena que proporciona el texto traducido en el script de destino.

      El transliteration objeto no se incluye si no se realiza la transliteración.

      • alignment: objeto con una sola propiedad de cadena denominada proj, que asigna texto de entrada al texto traducido. La información de alineación solo se proporciona cuando el parámetro includeAlignment de solicitud es true. La alineación se devuelve como un valor de cadena del formato siguiente: [[SourceTextStartIndex]:[SourceTextEndIndex]–[TgtTextStartIndex]:[TgtTextEndIndex]]. Los dos puntos separan el índice inicial y final, el guión separa los idiomas y el espacio separa las palabras. Una palabra puede alinearse con cero, una o varias palabras en el otro idioma, y las palabras alineadas pueden ser no contiguas. Cuando no hay información de alineación disponible, el elemento de alineación está vacío. Consulte Obtención de información de alineación para obtener un ejemplo y restricciones.
    • sentLen: objeto que devuelve límites de oración en los textos de entrada y salida.

      • srcSentLen: matriz de enteros que representa las longitudes de las oraciones en el texto de entrada. La longitud de la matriz es el número de oraciones y los valores son la longitud de cada oración.

      • transSentLen: matriz de enteros que representa las longitudes de las oraciones en el texto traducido. La longitud de la matriz es el número de oraciones y los valores son la longitud de cada oración.

      Los límites de oración solo se incluyen cuando el parámetro includeSentenceLength de solicitud es true.

  • sourceText: un objeto con una sola propiedad de cadena denominada text, que proporciona el texto de entrada en el script predeterminado del idioma de origen. sourceText la propiedad solo está presente cuando la entrada se expresa en un script que no es el script habitual para el lenguaje. Por ejemplo, si la entrada fuera árabe escrita en alfabeto latino, sourceText.text sería el mismo texto árabe convertido en script árabe..

En la sección de ejemplos se proporcionan ejemplos de respuestas JSON.

Encabezados de respuesta

Headers Description
X-requestid Valor generado por el servicio para identificar la solicitud utilizada con fines de solución de problemas.
X-mt-system Especifica el tipo de sistema que se usó para la traducción para cada idioma "to" solicitado para la traducción. El valor es una lista separada por comas de cadenas. Cada cadena indica un tipo: Custom:

Request incluye un sistema personalizado y al menos se usó un sistema personalizado durante la traducción.
Equipo: todas las demás solicitudes
Uso medido de X Especifica el consumo (el número de caracteres para los que se cobra al usuario) para la solicitud de trabajo de traducción. Por ejemplo, si la palabra "Hello" se traduce de inglés (en) a francés (fr), este campo devuelve el valor 5.

Códigos de estado de respuesta

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

Código de estado Description
200 Éxito.
400 Falta uno de los parámetros de consulta o no es válido. Corrija los parámetros de solicitud antes de volver a intentarlo.
401 No se pudo autenticar la solicitud. Compruebe que las credenciales se especifican y son válidas.
403 La solicitud no está autorizada. Compruebe el mensaje de error de detalles. Este código de estado suele indicar que ha usado todas las traducciones gratuitas proporcionadas con una suscripción de prueba.
408 No se pudo completar la solicitud porque falta un recurso. Compruebe el mensaje de error de detalles. Cuando la solicitud incluye una categoría personalizada, este código de estado suele indicar que el sistema de traducción personalizado aún no está disponible para atender solicitudes. La solicitud debe reintentarse después de un período de espera (por ejemplo, 1 minuto).
429 El servidor rechazó la solicitud porque el cliente superó los límites de solicitud.
500 Error inesperado. Si el error persiste, notifique con: fecha y hora del error, identificador de solicitud del encabezado de respuesta X-RequestId y identificador de cliente del encabezado de solicitud X-ClientTraceId.
503 El servidor no está disponible temporalmente. Vuelva a intentar la solicitud. Si el error persiste, notifique con: fecha y hora del error, identificador de solicitud del encabezado de respuesta X-RequestId y identificador de cliente del encabezado de solicitud X-ClientTraceId.

Si se produce un error, la solicitud devuelve una respuesta de error JSON. El código de error es un número de 6 dígitos que combina el código de estado HTTP de 3 dígitos seguido de un número de 3 dígitos para clasificar aún más el error. Los códigos de error comunes se pueden encontrar en la página de referencia de Translator v3.

Examples

Traducción de una sola entrada

En este ejemplo se muestra cómo traducir una sola oración de inglés a chino simplificado.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=zh-Hans" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}]"

El cuerpo de la respuesta es:

[
    {
        "translations":[
            {"text":"你好, 你叫什么名字?","to":"zh-Hans"}
        ]
    }
]

La translations matriz incluye un elemento , que proporciona la traducción de la sola parte de texto en la entrada.

Traducción de una sola entrada con detección automática de idioma

En este ejemplo se muestra cómo traducir una sola oración de inglés a chino simplificado. La solicitud no especifica el idioma de entrada. En su lugar, se usa la detección automática del idioma de origen.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=zh-Hans" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}]"

El cuerpo de la respuesta es:

[
    {
        "detectedLanguage": {"language": "en", "score": 1.0},
        "translations":[
            {"text": "你好, 你叫什么名字?", "to": "zh-Hans"}
        ]
    }
]

La respuesta es similar a la respuesta del ejemplo anterior. Dado que se solicitó la detección automática de idioma, la respuesta también incluye información sobre el idioma detectado para el texto de entrada. La detección automática del idioma funciona mejor con texto de entrada más largo.

Traducción con transliteración

Vamos a ampliar el ejemplo anterior agregando transliteración. La siguiente solicitud solicita una traducción china escrita en alfabeto latino.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=zh-Hans&toScript=Latn" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}]"

El cuerpo de la respuesta es:

[
    {
        "detectedLanguage":{"language":"en","score":1.0},
        "translations":[
            {
                "text":"你好, 你叫什么名字?",
                "transliteration":{"script":"Latn", "text":"nǐ hǎo , nǐ jiào shén me míng zì ?"},
                "to":"zh-Hans"
            }
        ]
    }
]

El resultado de la traducción ahora incluye una transliteration propiedad , que proporciona el texto traducido mediante caracteres latinos.

Traducción de varios fragmentos de texto

Traducir varias cadenas a la vez es simplemente una cuestión de especificar una matriz de cadenas en el cuerpo de la solicitud.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=zh-Hans" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}, {'Text':'I am fine, thank you.'}]"

La respuesta contiene la traducción de todos los fragmentos de texto en el mismo orden exacto que en la solicitud. El cuerpo de la respuesta es:

[
    {
        "translations":[
            {"text":"你好, 你叫什么名字?","to":"zh-Hans"}
        ]
    },
    {
        "translations":[
            {"text":"我很好,谢谢你。","to":"zh-Hans"}
        ]
    }
]

Traducción a varios idiomas

En este ejemplo se muestra cómo traducir la misma entrada a varios idiomas en una solicitud.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=zh-Hans&to=de" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}]"

El cuerpo de la respuesta es:

[
    {
        "translations":[
            {"text":"你好, 你叫什么名字?","to":"zh-Hans"},
            {"text":"Hallo, was ist dein Name?","to":"de"}
        ]
    }
]

Control de palabras soeces

Normalmente, Translator conserva palabras soeces presentes en el origen de la traducción. El grado de palabras soeces y el contexto que hace que las palabras profanas difieren entre las culturas y, como resultado, el grado de soece en el idioma de destino se puede amplificar o reducir.

Si desea evitar obtener palabras soeces en la traducción, independientemente de la presencia de palabras soeces en el texto de origen, puede usar la opción de filtrado de palabras soeces. La opción le permite elegir si desea ver la palabra soece eliminada, marcada con las etiquetas adecuadas (lo que le ofrece la opción de agregar su propio posprocesamiento) o sin realizar ninguna acción. Los valores aceptados de ProfanityAction son Deleted, Markedy NoAction (valor predeterminado).

Valor de ProfanityAction aceptado Valor profanityMarker Acción Ejemplo: Origen - Español Ejemplo: Destino: inglés
NoAction Predeterminado. Igual que no establecer la opción. La palabra soece pasa de origen a destino. Que coche de <insert-profane-word> <Qué coche insert-profane-word>
Marcado Asterisk Los asteriscos reemplazan palabras profanas (valor predeterminado). Que coche de <insert-profane-word> Qué coche ***
Marcado Etiqueta Las palabras soeces están rodeadas de etiquetas <XML soeces>...</soece>. Que coche de <insert-profane-word> <Qué auto soece><insert-profane-word></profanity>
Borrado Las palabras soeces se quitan de la salida sin reemplazo. Que coche de <insert-profane-word> Qué coche

En los ejemplos anteriores, <insert-profane-word> es un marcador de posición para palabras profanas.

Por ejemplo:

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=de&profanityAction=Marked" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'This is an <expletive> good idea.'}]"

Esta solicitud devuelve:

[
    {
        "translations":[
            {"text":"Das ist eine *** gute Idee.","to":"de"}
        ]
    }
]

Compare con:

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=de&profanityAction=Marked&profanityMarker=Tag" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'This is an <expletive> good idea.'}]"

Esa última solicitud devuelve:

[
    {
        "translations":[
            {"text":"Das ist eine <profanity>verdammt</profanity> gute Idee.","to":"de"}
        ]
    }
]

Traducción de contenido que incluye marcado

Es habitual traducir contenido que incluye marcado como contenido de una página HTML o contenido de un documento XML. Incluya el parámetro textType=html de consulta al traducir contenido con etiquetas. Además, a veces resulta útil excluir contenido específico de la traducción. Puede usar el atributo class=notranslate para especificar el contenido que debe permanecer en su idioma original. En el ejemplo siguiente, el contenido dentro del primer div elemento no se traduce, mientras que el contenido del segundo div elemento se traduce.

<div class="notranslate">This will not be translated.</div>
<div>This will be translated. </div>

Esta es una solicitud de ejemplo que se va a ilustrar.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=zh-Hans&textType=html" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'<div class=\"notranslate\">This will not be translated.</div><div>This will be translated.</div>'}]"

La respuesta es:

[
    {
        "translations":[
            {"text":"<div class=\"notranslate\">This will not be translated.</div><div>这将被翻译。</div>","to":"zh-Hans"}
        ]
    }
]

Obtención de información de alineación

La alineación se devuelve como un valor de cadena del formato siguiente para cada palabra del origen. La información de cada palabra está separada por un espacio, incluido para idiomas no separados por espacios (scripts) como chino:

[[SourceTextStartIndex]:[SourceTextEndIndex]–[TgtTextStartIndex]:[TgtTextEndIndex]] *

Cadena de alineación de ejemplo: "0:0-7:10 1:2-11:20 3:4-0:3 3:4-4:6 5:5-21:21".

En otras palabras, los dos puntos separan el índice inicial y final, el guión separa los idiomas y el espacio separa las palabras. Una palabra puede alinearse con cero, una o varias palabras en el otro idioma, y las palabras alineadas pueden ser no contiguas. Cuando no hay información de alineación disponible, el elemento Alignment está vacío. El método no devuelve ningún error en ese caso.

Para recibir información de alineación, especifique includeAlignment=true en la cadena de consulta.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=fr&includeAlignment=true" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'The answer lies in machine translation.'}]"

La respuesta es:

[
    {
        "translations":[
            {
                "text":"La réponse se trouve dans la traduction automatique.",
                "to":"fr",
                "alignment":{"proj":"0:2-0:1 4:9-3:9 11:14-11:19 16:17-21:24 19:25-40:50 27:37-29:38 38:38-51:51"}
            }
        ]
    }
]

La información de alineación comienza con 0:2-0:1, lo que significa que los tres primeros caracteres del texto de origen (The) se asignan a los dos primeros caracteres del texto traducido (La).

Limitaciones

La obtención de información de alineación es una característica experimental que hemos habilitado para la creación de prototipos de investigación y experiencias con posibles asignaciones de frases. Estas son algunas de las restricciones importantes en las que no se admiten las alineaciones:

  • La alineación no está disponible para el texto en formato HTML, textType=html
  • La alineación solo se devuelve para un subconjunto de los pares de idioma:
    • Inglés a/desde cualquier otro idioma excepto chino tradicional, cantoés (tradicional) o serbio (cirílico)
    • de japonés a coreano o coreano a japonés
    • de japonés a chino simplificado y chino simplificado a japonés
    • de chino simplificado a chino tradicional y chino tradicional a chino simplificado
  • No se alinea si la oración es una traducción cannada. El ejemplo de una traducción cannada es This is a test, I love youy otras oraciones de alta frecuencia
  • La alineación no está disponible cuando se aplica alguno de los enfoques para evitar la traducción, como se describe aquí.

Obtención de límites de oración

Para recibir información sobre la longitud de las oraciones en el texto de origen y el texto traducido, especifique includeSentenceLength=true en la cadena de consulta.

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=fr&includeSentenceLength=true" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'The answer lies in machine translation. The best machine translation technology cannot always provide translations tailored to a site or users like a human. Simply copy and paste a code snippet anywhere.'}]"

La respuesta es:

[
    {
        "translations":[
            {
                "text":"La réponse se trouve dans la traduction automatique. La meilleure technologie de traduction automatique ne peut pas toujours fournir des traductions adaptées à un site ou des utilisateurs comme un être humain. Il suffit de copier et coller un extrait de code n'importe où.",
                "to":"fr",
                "sentLen":{"srcSentLen":[40,117,46],"transSentLen":[53,157,62]}
            }
        ]
    }
]

Traducción con diccionario dinámico

Si ya conoce la traducción que desea aplicar a una palabra o frase, puede proporcionarla como marcado dentro de la solicitud. El diccionario dinámico solo es seguro para nombres adecuados, como nombres personales y nombres de productos. Nota: La característica de diccionario dinámico distingue mayúsculas de minúsculas.

El marcado que se va a proporcionar usa la sintaxis siguiente.

<mstrans:dictionary translation="translation of phrase">phrase</mstrans:dictionary>

Por ejemplo, considere la frase en inglés "The wordomatic is a dictionary entry" (La palabra wordomatic es una entrada de diccionario). Para conservar la palabra wordomatic en la traducción, envíe la solicitud:

curl -X POST "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=de" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'The word <mstrans:dictionary translation=\"wordomatic\">wordomatic</mstrans:dictionary> is a dictionary entry.'}]"

El resultado es:

[
    {
        "translations":[
            {"text":"Das Wort \"wordomatic\" ist ein Wörterbucheintrag.","to":"de"}
        ]
    }
]

Esta característica de diccionario dinámico funciona de la misma manera con textType=text o con textType=html. La característica debe usarse con moderación. La manera adecuada y mucho mejor de personalizar la traducción es mediante Custom Translator. Custom Translator hace uso completo del contexto y las probabilidades estadísticas. Si puede crear datos de entrenamiento que muestren el trabajo o la frase en contexto, obtendrá mejores resultados. Obtenga más información sobre Custom Translator.

Pasos siguientes