Traduttore 3.0: Tradurre
Traduce il testo.
Richiesta URL
Inviare una richiesta POST
a:
https://api.cognitive.microsofttranslator.com/translate?api-version=3.0
Vedere Rete virtuale Supporto per il servizio Translator selezionato per la configurazione e il supporto di endpoint privati e di rete.
Parametri della richiesta
I parametri della richiesta inviati a una stringa di query sono:
Parametri obbligatori
Query parameter (Parametro di query) | Descrizione |
---|---|
api-version | Parametro obbligatorio. Versione dell'API richiesta dal client. Il valore deve essere 3.0 . |
to | Parametro obbligatorio. Specifica la lingua del testo di output. La lingua di destinazione deve essere una delle lingue supportate incluse nell'ambito translation . Ad esempio, usare to=de per la traduzione in tedesco. È possibile tradurre in più lingue contemporaneamente ripetendo il parametro nella stringa di query. Ad esempio, usare to=de&to=it per la traduzione in tedesco e in italiano. |
Parametri facoltativi
Query parameter (Parametro di query) | Descrizione |
---|---|
da | Parametro facoltativo. Specifica la lingua del testo di input. Trovare quali lingue sono disponibili per la traduzione eseguendo una ricerca tra le lingue supportate con l'ambito translation . Se non si specifica il parametro from , viene applicato il rilevamento automatico della lingua per determinare la lingua di origine. È necessario usare il from parametro anziché autodetection quando si usa la funzionalità del dizionario dinamico. Nota: la funzionalità del dizionario dinamico fa distinzione tra maiuscole e minuscole. |
textType | Parametro facoltativo. Definisce se il testo tradotto è testo normale o testo HTML. Qualsiasi codice HTML deve essere un elemento completo ben formato. I valori possibili sono: plain (impostazione predefinita) o html . |
category | Parametro facoltativo. Stringa che specifica la categoria (dominio) della traduzione. Questo parametro viene usato per ottenere le traduzioni da un sistema personalizzato compilato con Custom Translator. Per usare il sistema personalizzato distribuito, aggiungere l'ID categoria dai dettagli del progetto Custom Translator al parametro category. Il valore predefinito è: general . |
profanityAction | Parametro facoltativo. Specifica come deve essere trattato il contenuto volgare nelle traduzioni. I valori possibili sono: NoAction (impostazione predefinita), Marked o Deleted . Per informazioni sui metodi di gestione del contenuto volgare, vedere Gestione del contenuto volgare. |
profanityMarker | Parametro facoltativo. Specifica come deve essere contrassegnato il contenuto volgare nelle traduzioni. I valori possibili sono: Asterisk (impostazione predefinita) o Tag . Per informazioni sui metodi di gestione del contenuto volgare, vedere Gestione del contenuto volgare. |
includeAlignment | Parametro facoltativo. Specifica se includere la proiezione dell'allineamento dal testo di origine al testo tradotto. I valori possibili sono: true o false (impostazione predefinita). |
includeSentenceLength | Parametro facoltativo. Specifica se includere delimitatori di frase per il testo di input e il testo tradotto. I valori possibili sono: true o false (impostazione predefinita). |
suggestedFrom | Parametro facoltativo. Specifica una lingua di fallback se non è possibile identificare la lingua del testo di input. La lingua autodetection viene applicata quando il from parametro viene omesso. Se il rilevamento non riesce, viene presupposta la suggestedFrom lingua. |
fromScript | Parametro facoltativo. Specifica l'alfabeto del testo di input. |
toScript | Parametro facoltativo. Specifica l'alfabeto del testo tradotto. |
allowFallback | Parametro facoltativo. Specifica che il servizio può eseguire il fallback a un sistema generale quando non esiste un sistema personalizzato. I valori possibili sono: true (impostazione predefinita) o false . allowFallback=false specifica che la traduzione deve usare solo sistemi sottoposti a training per il valore di category definito dalla richiesta. Se una traduzione dalla lingua X alla lingua Y richiede il concatenamento attraverso una lingua pivot E, tutti i sistemi nella catena (X → E e E → Y) devono essere personalizzati e avere la stessa categoria. Se non viene trovato alcun sistema con la categoria specifica, la richiesta restituisce un codice di stato 400. allowFallback=true specifica che il servizio può eseguire il fallback a un sistema generale quando non esiste un sistema personalizzato. |
Le intestazioni della richiesta includono:
Intestazioni | Descrizione |
---|---|
Intestazioni di autenticazione | Intestazione della richiesta obbligatoria. Vedere le opzioni disponibili per l'autenticazione. |
Content-Type | Intestazione della richiesta obbligatoria. Specifica il tipo di contenuto del payload. Il valore accettato è application/json; charset=UTF-8 . |
Content-Length | Facoltativo. Lunghezza del corpo della richiesta. |
X-ClientTraceId | Facoltativo. GUID generato dal client che identifica in modo univoco la richiesta. È possibile omettere questa intestazione se nella stringa della query si include l'ID traccia usando un parametro di query denominato ClientTraceId . |
Testo della richiesta
Il corpo della richiesta è una matrice JSON. Ogni elemento di matrice è un oggetto JSON con una proprietà di stringa denominata Text
, che rappresenta la stringa da tradurre.
[
{"Text":"I would really like to drive your car around the block a few times."}
]
Per informazioni sui limiti di caratteri e matrici, vedere Limiti delle richieste.
Corpo della risposta
Una risposta corretta è una matrice JSON con un risultato per ogni stringa nella matrice di input. Un oggetto risultato include le proprietà seguenti:
detectedLanguage
: oggetto che descrive la lingua rilevata tramite le proprietà seguenti:language
: stringa che rappresenta il codice della lingua rilevata.score
: valore float che indica il livello di attendibilità del risultato. Il punteggio è compreso tra zero e uno e un punteggio basso indica un'attendibilità bassa.
La
detectedLanguage
proprietà è presente nell'oggetto risultato solo quando viene richiesta la funzionalità automatica della lingua.translations
: matrice dei risultati della traduzione. Le dimensioni della matrice corrispondono al numero di lingue di destinazione specificate tramite il parametro di queryto
. Ogni elemento nella matrice include:to
: stringa che rappresenta il codice lingua della lingua di destinazione.text
: stringa che fornisce il testo tradotto.transliteration
: oggetto che fornisce il testo tradotto nell'alfabeto specificato dal parametrotoScript
.script
: stringa che specifica l'alfabeto di destinazione.text
: stringa che fornisce il testo tradotto nell'alfabeto di destinazione.
L'oggetto
transliteration
non è incluso se la traslitterazione non viene eseguita.alignment
: oggetto con una proprietà di stringa singola denominataproj
, che esegue il mapping del testo di input con quello tradotto. Le informazioni di allineamento sono disponibili solo quando il parametro della richiestaincludeAlignment
ètrue
. L'allineamento viene restituito come un valore di stringa nel formato seguente:[[SourceTextStartIndex]:[SourceTextEndIndex]–[TgtTextStartIndex]:[TgtTextEndIndex]]
. I due punti separano l'indice iniziale e finale, il trattino separa le lingue e uno spazio separa le parole. Una parola può essere allineata con zero, una o più parole nell'altra lingua e le parole allineate possono essere non contigue. Quando non sono disponibili informazioni di allineamento, l'elemento di allineamento è vuoto. Vedere Ottenere informazioni sull'allineamento per un esempio e le restrizioni.
sentLen
: oggetto che restituisce delimitatori di frase nei testi di input e output.srcSentLen
: matrice di interi che rappresenta le lunghezze delle frasi nel testo di input. La lunghezza della matrice è il numero di frasi e i valori sono la lunghezza di ogni frase.transSentLen
: matrice di interi che rappresenta le lunghezze delle frasi nel testo tradotto. La lunghezza della matrice è il numero di frasi e i valori sono la lunghezza di ogni frase.
I delimitatori di frase vengono inclusi solo quando il parametro della richiesta
includeSentenceLength
ètrue
.
sourceText
: oggetto con una proprietà di stringa singola denominatatext
, che fornisce il testo di input nel carattere predefinito della lingua di origine. La proprietàsourceText
è presente solo quando l'input è espresso in un carattere che non è quello consueto per la lingua. Ad esempio, se l'input fosse arabo scritto in alfabeto latino,sourceText.text
lo stesso testo arabo convertito nello script arabo.
Esempi di risposte JSON sono disponibili nella sezione degli esempi .
Intestazioni della risposta
Intestazioni | Descrizione |
---|---|
X-requestid | Valore generato dal servizio per identificare la richiesta usata per la risoluzione dei problemi. |
X-mt-system | Specifica il tipo di sistema utilizzato per la traduzione per ogni lingua "to" richiesta per la traduzione. Il valore è un elenco di stringhe delimitate da virgole. Ogni stringa indica un tipo: Custom - Request include un sistema personalizzato e almeno un sistema personalizzato è stato usato durante la traduzione. Team - Tutte le altre richieste |
Utilizzo a consumo X | Specifica il consumo (il numero di caratteri per cui viene addebitato l'utente) per la richiesta di processo di traduzione. Ad esempio, se la parola "Hello" viene tradotta dall'inglese (en) al francese (fr), questo campo restituisce il valore 5 . |
Codici di stato della risposta
Di seguito sono riportati i possibili codici di stato HTTP restituiti da una richiesta.
Codice di stato | Descrizione |
---|---|
200 | Esito positivo. |
400 | Uno dei parametri di query manca o non è valido. Prima di riprovare, correggere i parametri della richiesta. |
401 | Impossibile autenticare la richiesta. Verificare che le credenziali siano state specificate e che siano valide. |
403 | La richiesta non è autorizzata. Controllare il messaggio di errore per i dettagli. Questo codice di stato indica spesso che sono state usate tutte le traduzioni gratuite fornite con una sottoscrizione di valutazione. |
408 | Impossibile soddisfare la richiesta perché manca una risorsa. Controllare il messaggio di errore per i dettagli. Quando la richiesta include una categoria personalizzata, questo codice di stato spesso indica che il sistema di traduzione personalizzato non è ancora disponibile per gestire le richieste. La richiesta deve essere ritentata dopo un periodo di attesa (ad esempio, 1 minuto). |
429 | Il server ha rifiutato la richiesta perché il client ha superato i limiti delle richieste. |
500 | Errore imprevisto. Se l'errore persiste, segnalarlo con: data e ora dell'errore, identificatore della richiesta dall'intestazione di risposta X-RequestId e identificatore client dall'intestazione della richiesta X-ClientTraceId. |
503 | Il server è temporaneamente non disponibile. ripetere la richiesta. Se l'errore persiste, segnalarlo con: data e ora dell'errore, identificatore della richiesta dall'intestazione di risposta X-RequestId e identificatore client dall'intestazione della richiesta X-ClientTraceId. |
Se si verifica un errore, la richiesta restituisce una risposta di errore JSON. Il codice errore è un numero a 6 cifre che combina il codice di stato HTTP a 3 cifre seguito da un numero a 3 cifre per classificare ulteriormente l'errore. I codici di errore più comuni sono reperibili nella pagina di riferimento Traduttore v3.
Esempi
Tradurre un singolo input
Questo esempio mostra come tradurre una singola frase dall'inglese al cinese semplificato.
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?'}]"
Il corpo della risposta è:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"}
]
}
]
La matrice translations
include un elemento, che fornisce la traduzione della singola parte di testo nell'input.
Tradurre un singolo input con la lingua autodetection
Questo esempio mostra come tradurre una singola frase dall'inglese al cinese semplificato. La richiesta non specifica la lingua di input. Viene invece usata l'opzione Autodetection della lingua di origine.
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?'}]"
Il corpo della risposta è:
[
{
"detectedLanguage": {"language": "en", "score": 1.0},
"translations":[
{"text": "你好, 你叫什么名字?", "to": "zh-Hans"}
]
}
]
La risposta è simile a quella dell'esempio precedente. Poiché è stata richiesta la funzione automatica della lingua, la risposta include anche informazioni sulla lingua rilevata per il testo di input. L'autodetection della lingua funziona meglio con testo di input più lungo.
Tradurre con traslitterazione
È possibile estendere l'esempio precedente aggiungendo la traslitterazione. La richiesta seguente richiede una traduzione in cinese scritta in caratteri dell'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?'}]"
Il corpo della risposta è:
[
{
"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"
}
]
}
]
Il risultato della traduzione include ora una proprietà transliteration
, che fornisce il testo tradotto usando caratteri dell'alfabeto latino.
Tradurre più parti di testo
La traduzione di più stringhe contemporaneamente equivale semplicemente a specificare una matrice di stringhe nel corpo della richiesta.
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 risposta contiene la traduzione di tutti i frammenti di testo nello stesso ordine della richiesta. Il corpo della risposta è:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"}
]
},
{
"translations":[
{"text":"我很好,谢谢你。","to":"zh-Hans"}
]
}
]
Tradurre in più lingue
Questo esempio mostra come tradurre lo stesso input in diverse lingue in una sola richiesta.
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?'}]"
Il corpo della risposta è:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"},
{"text":"Hallo, was ist dein Name?","to":"de"}
]
}
]
Gestire contenuto volgare
In genere, il servizio Traduttore mantiene il contenuto volgare presente nell'origine nella traduzione. Il grado di volgarità e contesto che rende le parole volgari differiscono tra le culture e, di conseguenza, il grado di volgarità nella lingua di destinazione può essere amplificato o ridotto.
Se si vuole evitare la presenza di contenuto volgare nella traduzione, indipendentemente dalla presenza di contenuto volgare nel testo di origine, è possibile usare l'opzione di filtro per il contenuto volgare. L'opzione consente di scegliere se si vuole visualizzare il contenuto volgare eliminato, contrassegnato con tag appropriati (offrendo la possibilità di aggiungere la propria post-elaborazione) o senza alcuna azione eseguita. I valori accettati di ProfanityAction
sono Deleted
, Marked
e NoAction
(impostazione predefinita).
Valore VolgarityAction accettato | Valore ProfanityMarker | Azione | Esempio: origine - spagnolo | Esempio: destinazione - inglese |
---|---|---|---|---|
NoAction | Valore predefinito. Equivale a non impostare l'opzione. Il contenuto volgare passa dall'origine alla destinazione. | Que coche de <insert-profane-word> |
What a <insert-profane-word> car | |
Marked | Asterisco | Gli asterischi sostituiscono le parole volgari (impostazione predefinita). | Que coche de <insert-profane-word> |
What a *** car |
Marked | Tag | Le parole volgari sono racchiuse tra i tag XML <profanity>...</profanity>. | Que coche de <insert-profane-word> |
What a <profanity><insert-profane-word></profanity> car |
Eliminata | Le parole volgari vengono rimosse dall'output senza sostituzione. | Que coche de <insert-profane-word> |
What a car |
Negli esempi precedenti, <insert-profane-word> è un segnaposto per le parole volgari.
Ad esempio:
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.'}]"
Questa richiesta restituisce:
[
{
"translations":[
{"text":"Das ist eine *** gute Idee.","to":"de"}
]
}
]
Eseguire il confronto 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.'}]"
L'ultima richiesta restituisce:
[
{
"translations":[
{"text":"Das ist eine <profanity>verdammt</profanity> gute Idee.","to":"de"}
]
}
]
Tradurre il contenuto che include markup
È comune tradurre contenuto che include markup, ad esempio contenuto da una pagina HTML o contenuto da un documento XML. Includere il parametro di query textType=html
durante la traduzione di contenuto con tag. Inoltre, a volte è utile escludere contenuto specifico dalla traduzione. È possibile usare l'attributo class=notranslate
per specificare il contenuto che deve rimanere nella lingua originale. Nell'esempio seguente il contenuto all'interno del primo div
elemento non viene tradotto, mentre il contenuto nel secondo div
elemento viene convertito.
<div class="notranslate">This will not be translated.</div>
<div>This will be translated. </div>
Ecco una richiesta di esempio da illustrare.
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 risposta è:
[
{
"translations":[
{"text":"<div class=\"notranslate\">This will not be translated.</div><div>这将被翻译。</div>","to":"zh-Hans"}
]
}
]
Ottenere informazioni sull'allineamento
L'allineamento viene restituito come un valore di stringa nel formato seguente per ogni parola dell'origine. Le informazioni per ogni parola sono separate da uno spazio, incluse le lingue non separate da spazi (script), ad esempio il cinese:
[[SourceTextStartIndex]:[SourceTextEndIndex]–[TgtTextStartIndex]:[TgtTextEndIndex]] *
Stringa di allineamento di esempio: "0:0-7:10 1:2-11:20 3:4-0:3 3:4-4:6 5:5-21:21".
In altre parole, i due punti separano l'indice iniziale e finale, il trattino separa le lingue e uno spazio separa le parole. Una parola può essere allineata con zero, una o più parole nell'altra lingua e le parole allineate possono essere non contigue. Quando non è disponibile alcuna informazione di allineamento, l'elemento Allineamento è vuoto. In questo caso il metodo non restituisce alcun errore.
Per ricevere informazioni sull'allineamento, specificare includeAlignment=true
nella stringa di query.
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 risposta è:
[
{
"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"}
}
]
}
]
Le informazioni sull'allineamento iniziano con 0:2-0:1
, vale a dire che i primi tre caratteri nel testo di origine (The
) sono associati ai primi due caratteri nel testo tradotto (La
).
Limiti
Ottenere informazioni sull'allineamento è una funzionalità sperimentale abilitata per la ricerca di prototipi ed esperienze con potenziali mapping di frasi. Ecco alcune delle restrizioni rilevanti in cui gli allineamenti non sono supportati:
- L'allineamento non è disponibile per il testo in formato HTML, ovvero textType=html
- L'allineamento viene restituito solo per un subset delle coppie di lingue:
- Inglese da/verso qualsiasi altra lingua, ad eccezione del cinese tradizionale, del Cantonse (tradizionale) o serbo (cirillico)
- dal giapponese al coreano o dal coreano al giapponese
- dal giapponese al cinese semplificato e cinese semplificato al giapponese
- dal cinese semplificato al cinese tradizionale e cinese tradizionale al cinese semplificato
- Non si allinea se la frase è una traduzione in scatola. Un esempio di traduzione canned è
This is a test
,I love you
e altre frasi ad alta frequenza - L'allineamento non è disponibile quando si applica uno degli approcci per impedire la traduzione, come descritto qui
Ottenere delimitatori di frase
Per ricevere informazioni sulla lunghezza della frase nel testo di origine e nel testo tradotto, specificare includeSentenceLength=true
nella stringa di query.
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 risposta è:
[
{
"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]}
}
]
}
]
Tradurre con un dizionario dinamico
Se si conosce già la traduzione che si vuole applicare a una parola o una frase, è possibile specificarla come markup all'interno della richiesta. Il dizionario dinamico è sicuro solo per nomi appropriati, ad esempio nomi personali e nomi di prodotto. Nota: la funzionalità del dizionario dinamico fa distinzione tra maiuscole e minuscole.
Il markup da specificare usa la sintassi seguente.
<mstrans:dictionary translation="translation of phrase">phrase</mstrans:dictionary>
Si consideri ad esempio la frase inglese "La parola wordomatic è una voce di dizionario". Per mantenere la parola wordomatic nella traduzione, inviare la richiesta:
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.'}]"
Il risultato è:
[
{
"translations":[
{"text":"Das Wort \"wordomatic\" ist ein Wörterbucheintrag.","to":"de"}
]
}
]
Questa funzionalità del dizionario dinamico funziona allo stesso modo con textType=text
o con textType=html
. È consigliabile usarla solo in casi limitati. Il modo più appropriato e di gran lunga migliore per personalizzare una traduzione è quello di usare Custom Translator. Custom Translator fa un ampio uso delle probabilità statistiche e di contesto. Se è possibile creare dati di training che mostrano il lavoro o la frase nel contesto, si ottengono risultati migliori. Altre informazioni su Custom Translator.