Använda Azure AI Translator-API:er

I den här instruktionsguiden lär du dig att använda TRANSLATOR-tjänstens REST-API:er. Du börjar med grundläggande exempel och går vidare till några grundläggande konfigurationsalternativ som ofta används under utvecklingen, inklusive:

Förutsättningar

  • Azure-prenumeration – Skapa en kostnadsfritt

  • En Azure AI-resurs med flera tjänster eller Translator-resurser. När du har din Azure-prenumeration skapar du en enskild tjänst eller en resurs med flera tjänster i Azure Portal för att hämta din nyckel och slutpunkt. När den har distribuerats väljer du Gå till resurs.

  • Du kan använda den kostnadsfria prisnivån (F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

  • Du behöver nyckeln och slutpunkten från resursen för att ansluta programmet till Translator-tjänsten. Senare klistrar du in nyckeln och slutpunkten i kodexemplen. Du hittar dessa värden på sidan Azure Portal nycklar och slutpunkt:

    Skärmbild: Azure Portal nycklar och slutpunktssida.

Viktigt

Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information finns iSäkerhet för Azure AI-tjänster.

Sidhuvuden

Om du vill anropa Translator-tjänsten via REST-API:et måste du se till att följande rubriker ingår i varje begäran. Oroa dig inte, vi inkluderar rubrikerna i exempelkoden i följande avsnitt.

Huvud Värde Villkor
Ocp-Apim-Subscription-Key Translator-tjänstnyckeln från Azure Portal.
  • Obligatorisk
Ocp-Apim-Subscription-Region Den region där resursen skapades.
  • Krävs när du använder en Azure AI-resurs med flera tjänster eller regionala (geografiska) resurser som USA, västra.
  • Valfritt när du använder en Translator-resurs med en enda tjänst.
Innehållstyp Nyttolastens innehållstyp. Det godkända värdet är application/json eller charset=UTF-8.
  • Obligatorisk
Innehållslängd Längden på begärandetexten.
  • Valfritt
X-ClientTraceId Ett klientgenererat GUID för att unikt identifiera begäran. Du kan utelämna det här huvudet om du inkluderar spårnings-ID:t i frågesträngen med hjälp av en frågeparameter med namnet ClientTraceId.
  • Valfritt

Konfigurera din app

  1. Kontrollera att du har den aktuella versionen av Visual Studio IDE.

    Tips

    Om du inte har använt Visual Studio tidigare kan du prova modulen Introduktion till Visual Studio Learn.

  2. Öppna Visual Studio.

  3. På sidan Start väljer du Skapa ett nytt projekt.

    Skärmbild: Visual Studio-startfönstret.

  4. sidan Skapa ett nytt projekt anger du konsolen i sökrutan. Välj mallen Konsolprogram och välj sedan Nästa.

    Skärmbild: Sidan Skapa nytt projekt i Visual Studio.

  5. I dialogrutan Konfigurera det nya projektet anger du translator_text_app i rutan Projektnamn. Låt kryssrutan "Placera lösningen och projektet i samma katalog" vara avmarkerad och välj Nästa.

    Skärmbild: Dialogrutan Konfigurera nytt projekt i Visual Studio.

  6. I dialogrutan Ytterligare information kontrollerar du att .NET 6.0 (långsiktigt stöd) har valts. Låt kryssrutan "Använd inte toppnivåinstruktioner" vara avmarkerad och välj Skapa.

    Skärmbild: Visual Studio ytterligare informationsdialogruta.

Installera Newtonsoft.json-paketet med NuGet

  1. Högerklicka på ditt translator_quickstart projekt och välj Hantera NuGet-paket... .

    Skärmbild av sökrutan För NuGet-paket.

  2. Välj fliken Bläddra och skriv Newtonsoft.

    Skärmbild av installationsfönstret för NuGet-paketet.

  3. Välj installera från rätt pakethanterarfönster för att lägga till paketet i projektet.

    Skärmbild av installationsknappen för NuGet-paketet.

Skapa ditt program

Anteckning

  • Från och med .NET 6 genererar nya projekt med mallen console ett nytt programformat som skiljer sig från tidigare versioner.
  • De nya utdata använder de senaste C#-funktionerna som förenklar koden du behöver skriva.
  • När du använder den nyare versionen behöver du bara skriva metodens Main brödtext. Du behöver inte inkludera instruktioner på toppnivå, globala användningsdirektiv eller implicita med hjälp av direktiv.
  • Mer information finns iNya C#-mallar genererar instruktioner på toppnivå.
  1. Öppna filen Program.cs .

  2. Ta bort den befintliga koden, inklusive raden Console.WriteLine("Hello World!"). Kopiera och klistra in kodexemplen i programmets Program.cs-fil. För varje kodexempel kontrollerar du att du uppdaterar nyckel- och slutpunktsvariablerna med värden från din Azure Portal Translator-instans.

  3. När du har lagt till ett önskat kodexempel i programmet väljer du den gröna startknappen bredvid formRecognizer_quickstart för att skapa och köra programmet eller trycka på F5.

Skärmbild av knappen Kör program i Visual Studio.

Viktigt

Exemplen i den här guiden kräver hårdkodade nycklar och slutpunkter. Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. Överväg att använda ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter för produktion. Mer information finns iSäkerhet för Azure AI-tjänster.

Översätt text

Translator-tjänstens kärnåtgärd är att översätta text. I det här avsnittet skapar du en begäran som tar en enda källa (from) och tillhandahåller två utdata (to). Sedan granskar vi några parametrar som kan användas för att justera både begäran och svaret.

using System.Text;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
    // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // Input and output languages are defined as parameters.
        string route = "/translate?api-version=3.0&from=en&to=sw&to=it";
        string textToTranslate = "Hello, friend! What did you do today?";
        object[] body = new object[] { new { Text = textToTranslate } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            // location required if you're using a multi-service or regional (not global) resource.
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar:

[
   {
      "translations":[
         {
            "text":"Halo, rafiki! Ulifanya nini leo?",
            "to":"sw"
         },
         {
            "text":"Ciao, amico! Cosa hai fatto oggi?",
            "to":"it"
         }
      ]
   }
]

Du kan kontrollera förbrukningen (antalet tecken som debiteras) för varje begäran i svarsrubrikerna: fältet x-metered-usage .

Identifiera språk

Om du behöver översättning, men inte känner till språket i texten, kan du använda språkidentifieringsåtgärden. Det finns mer än ett sätt att identifiera källtextspråket. I det här avsnittet får du lära dig hur du använder språkidentifiering med hjälp av translate slutpunkten och detect slutpunkten.

Identifiera källspråk under översättning

Om du inte inkluderar parametern from i översättningsbegäran försöker Translator-tjänsten identifiera källtextens språk. I svaret får du det identifierade språket (language) och en konfidenspoäng (score). Ju närmare score är 1.0, innebär att det finns ett ökat förtroende för att identifieringen är korrekt.

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
// required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // Output languages are defined as parameters, input language detected.
        string route = "/translate?api-version=3.0&to=en&to=it";
        string textToTranslate = "Halo, rafiki! Ulifanya nini leo?";
        object[] body = new object[] { new { Text = textToTranslate } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            // location required if you're using a multi-service or regional (not global) resource. 
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar:

[
   {
      "detectedLanguage":{
         "language":"sw",
         "score":0.8
      },
      "translations":[
         {
            "text":"Hello friend! What did you do today?",
            "to":"en"
         },
         {
            "text":"Ciao amico! Cosa hai fatto oggi?",
            "to":"it"
         }
      ]
   }
]

Identifiera källspråk utan översättning

Det går att använda Translator-tjänsten för att identifiera språket i källtexten utan att utföra en översättning. Det gör du genom att /detect använda slutpunkten.

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
// required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // Just detect language
        string route = "/detect?api-version=3.0";
        string textToLangDetect = "Hallo Freund! Was hast du heute gemacht?";
        object[] body = new object[] { new { Text = textToLangDetect } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Slutpunktssvaret /detect innehåller alternativa identifieringar och anger om översättning och transkribering stöds för alla identifierade språk. Efter ett lyckat anrop bör du se följande svar:

[
   {
      "language":"de",

      "score":1.0,

      "isTranslationSupported":true,

      "isTransliterationSupported":false
   }
]

Transkribera text

Transkribering är en process för att konvertera ett ord eller en fras från skriptet (alfabetet) på ett språk till ett annat baserat på fonetisk likhet. Du kan till exempel använda transkribering för att konvertera "สวัสดี" (thai) till "sawatdi" (latn). Det finns mer än ett sätt att utföra transkribering. I det här avsnittet får du lära dig hur du använder språkidentifiering med hjälp av translate slutpunkten och transliterate slutpunkten.

Transkribera under översättning

Om du översätter till ett språk som använder ett annat alfabet (eller fonem) än källan kan du behöva en transkribering. I det här exemplet översätter vi "Hello" från engelska till thailändska. Förutom att hämta översättningen på thailändska får du en transkribering av den översatta frasen med hjälp av det latinska alfabetet.

Om du vill hämta en transliteration från translate slutpunkten använder du parametern toScript .

Anteckning

En fullständig lista över tillgängliga språk och transkriberingsalternativ finns i språkstöd.

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
   // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // Output language defined as parameter, with toScript set to latn
        string route = "/translate?api-version=3.0&to=th&toScript=latn";
        string textToTransliterate = "Hello, friend! What did you do today?";
        object[] body = new object[] { new { Text = textToTransliterate } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar. Tänk på att svaret från translate slutpunkten innehåller det identifierade källspråket med en konfidenspoäng, en översättning med hjälp av alfabetet för utdataspråket och en transkribering med hjälp av det latinska alfabetet.

[
  {
    "detectedLanguage": {
      "language": "en",
      "score": 1
    },
    "translations": [
      {
        "text": "หวัดดีเพื่อน! วันนี้เธอทำอะไรไปบ้าง ",
        "to": "th",
        "transliteration": {
          "script": "Latn",
          "text": "watdiphuean! wannithoethamaraipaiang"
        }
      }
    ]
  }
]

Transkribera utan översättning

Du kan också använda transliterate slutpunkten för att få en transkribering. När du använder transkriberingsslutpunkten måste du ange källspråket (language), källskriptet/alfabetet (fromScript) och utdataskriptet/alfabetet (toScript) som parametrar. I det här exemplet ska vi hämta transliterationen för สวัสดีเพื่อน! วันนี้คุณทำอะไร.

Anteckning

En fullständig lista över tillgängliga språk och transkriberingsalternativ finns i språkstöd.

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
   // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // For a complete list of options, see API reference.
        // Input and output languages are defined as parameters.
        string route = "/transliterate?api-version=3.0&language=th&fromScript=thai&toScript=latn";
        string textToTransliterate = "สวัสดีเพื่อน! วันนี้คุณทำอะไร";
        object[] body = new object[] { new { Text = textToTransliterate } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            // location required if you're using a multi-service or regional (not global) resource.
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar. Till skillnad från anropet translate till slutpunkten transliterate returnerar text bara - och -utdata script.

[
   {
      "text":"sawatdiphuean! wannikhunthamarai",

      "script":"latn"
   }
]

Hämta meningslängd

Med Translator-tjänsten kan du hämta antalet tecken för en mening eller en serie meningar. Svaret returneras som en matris, med teckenantal för varje mening identifierad. Du kan hämta meningslängder med slutpunkterna translate och breaksentence .

Hämta meningslängd under översättning

Du kan hämta teckenantal för både källtext och översättningsutdata med hjälp av translate slutpunkten. Om du vill returnera meningslängden (srcSenLen och transSenLen) måste du ange parametern includeSentenceLength till True.

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
   // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // Include sentence length details.
        string route = "/translate?api-version=3.0&to=es&includeSentenceLength=true";
        string sentencesToCount =
                "Can you tell me how to get to Penn Station? Oh, you aren't sure? That's fine.";
        object[] body = new object[] { new { Text = sentencesToCount } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            // location required if you're using a multi-service or regional (not global) resource.
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar. Förutom det identifierade källspråket och översättningen får du teckenantal för varje identifierad mening för både källan (srcSentLen) och översättningen (transSentLen).

[
   {
      "detectedLanguage":{
         "language":"en",
         "score":1.0
      },
      "translations":[
         {
            "text":"¿Puedes decirme cómo llegar a Penn Station? Oh, ¿no estás seguro? Está bien.",
            "to":"es",
            "sentLen":{
               "srcSentLen":[
                  44,
                  21,
                  12
               ],
               "transSentLen":[
                  44,
                  22,
                  10
               ]
            }
         }
      ]
   }
]

Hämta meningslängd utan översättning

Med Translator-tjänsten kan du också begära meningslängd utan översättning med hjälp av breaksentence slutpunkten.

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
   // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // Only include sentence length details.
        string route = "/breaksentence?api-version=3.0";
        string sentencesToCount =
                "Can you tell me how to get to Penn Station? Oh, you aren't sure? That's fine.";
        object[] body = new object[] { new { Text = sentencesToCount } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            // location required if you're using a multi-service or regional (not global) resource.
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar. Till skillnad från anropet translate till slutpunkten breaksentence returnerar bara teckenantalet för källtexten i en matris med namnet sentLen.

[
   {
      "detectedLanguage":{
         "language":"en",
         "score":1.0
      },
      "sentLen":[
         44,
         21,
         12
      ]
   }
]

Ordlistesökning (alternativa översättningar)

Med slutpunkten kan du hämta alternativa översättningar för ett ord eller en fras. När du till exempel översätter ordet "sunshine" från en till esreturnerar den här slutpunkten "luz solar", "rayos solares" och "soleamiento", "sol" och "insolación.".

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
   // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // See many translation options
        string route = "/dictionary/lookup?api-version=3.0&from=en&to=es";
        string wordToTranslate = "sunlight";
        object[] body = new object[] { new { Text = wordToTranslate } };
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            // location required if you're using a multi-service or regional (not global) resource.
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar. Nu ska vi undersöka svaret närmare eftersom JSON är mer komplext än några av de andra exemplen i den här artikeln. Matrisen translations innehåller en lista över översättningar. Varje objekt i den här matrisen innehåller en konfidenspoäng (confidence), texten som är optimerad för slutanvändarvisning (displayTarget), normaliserad text (normalizedText), delen av tal (posTag) och information om tidigare översättning (backTranslations). Mer information om svaret finns i Ordlistesökning

[
   {
      "normalizedSource":"sunlight",
      "displaySource":"sunlight",
      "translations":[
         {
            "normalizedTarget":"luz solar",
            "displayTarget":"luz solar",
            "posTag":"NOUN",
            "confidence":0.5313,
            "prefixWord":"",
            "backTranslations":[
               {
                  "normalizedText":"sunlight",
                  "displayText":"sunlight",
                  "numExamples":15,
                  "frequencyCount":702
               },
               {
                  "normalizedText":"sunshine",
                  "displayText":"sunshine",
                  "numExamples":7,
                  "frequencyCount":27
               },
               {
                  "normalizedText":"daylight",
                  "displayText":"daylight",
                  "numExamples":4,
                  "frequencyCount":17
               }
            ]
         },
         {
            "normalizedTarget":"rayos solares",
            "displayTarget":"rayos solares",
            "posTag":"NOUN",
            "confidence":0.1544,
            "prefixWord":"",
            "backTranslations":[
               {
                  "normalizedText":"sunlight",
                  "displayText":"sunlight",
                  "numExamples":4,
                  "frequencyCount":38
               },
               {
                  "normalizedText":"rays",
                  "displayText":"rays",
                  "numExamples":11,
                  "frequencyCount":30
               },
               {
                  "normalizedText":"sunrays",
                  "displayText":"sunrays",
                  "numExamples":0,
                  "frequencyCount":6
               },
               {
                  "normalizedText":"sunbeams",
                  "displayText":"sunbeams",
                  "numExamples":0,
                  "frequencyCount":4
               }
            ]
         },
         {
            "normalizedTarget":"soleamiento",
            "displayTarget":"soleamiento",
            "posTag":"NOUN",
            "confidence":0.1264,
            "prefixWord":"",
            "backTranslations":[
               {
                  "normalizedText":"sunlight",
                  "displayText":"sunlight",
                  "numExamples":0,
                  "frequencyCount":7
               }
            ]
         },
         {
            "normalizedTarget":"sol",
            "displayTarget":"sol",
            "posTag":"NOUN",
            "confidence":0.1239,
            "prefixWord":"",
            "backTranslations":[
               {
                  "normalizedText":"sun",
                  "displayText":"sun",
                  "numExamples":15,
                  "frequencyCount":20387
               },
               {
                  "normalizedText":"sunshine",
                  "displayText":"sunshine",
                  "numExamples":15,
                  "frequencyCount":1439
               },
               {
                  "normalizedText":"sunny",
                  "displayText":"sunny",
                  "numExamples":15,
                  "frequencyCount":265
               },
               {
                  "normalizedText":"sunlight",
                  "displayText":"sunlight",
                  "numExamples":15,
                  "frequencyCount":242
               }
            ]
         },
         {
            "normalizedTarget":"insolación",
            "displayTarget":"insolación",
            "posTag":"NOUN",
            "confidence":0.064,
            "prefixWord":"",
            "backTranslations":[
               {
                  "normalizedText":"heat stroke",
                  "displayText":"heat stroke",
                  "numExamples":3,
                  "frequencyCount":67
               },
               {
                  "normalizedText":"insolation",
                  "displayText":"insolation",
                  "numExamples":1,
                  "frequencyCount":55
               },
               {
                  "normalizedText":"sunstroke",
                  "displayText":"sunstroke",
                  "numExamples":2,
                  "frequencyCount":31
               },
               {
                  "normalizedText":"sunlight",
                  "displayText":"sunlight",
                  "numExamples":0,
                  "frequencyCount":12
               },
               {
                  "normalizedText":"solarization",
                  "displayText":"solarization",
                  "numExamples":0,
                  "frequencyCount":7
               },
               {
                  "normalizedText":"sunning",
                  "displayText":"sunning",
                  "numExamples":1,
                  "frequencyCount":7
               }
            ]
         }
      ]
   }
]

Ordlisteexempel (översättningar i kontext)

När du har utfört en ordlistesökning skickar du käll- och översättningstexten dictionary/examples till slutpunkten för att hämta en lista med exempel som visar båda termerna i kontexten för en mening eller fras. Om du bygger på föregående exempel använder normalizedTextnormalizedTarget du och från ordlisteuppslagssvaret som texttranslation respektive . Parametrarna för källspråk (from) och utdatamål (to) krävs.

using System;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string key = "<YOUR-TRANSLATOR-KEY>";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com";

    // location, also known as region.
   // required if you're using a multi-service or regional (not global) resource. It can be found in the Azure portal on the Keys and Endpoint page.
    private static readonly string location = "<YOUR-RESOURCE-LOCATION>";

    static async Task Main(string[] args)
    {
        // See examples of terms in context
        string route = "/dictionary/examples?api-version=3.0&from=en&to=es";
        object[] body = new object[] { new { Text = "sunlight",  Translation = "luz solar" } } ;
        var requestBody = JsonConvert.SerializeObject(body);

        using (var client = new HttpClient())
        using (var request = new HttpRequestMessage())
        {
            // Build the request.
            request.Method = HttpMethod.Post;
            request.RequestUri = new Uri(endpoint + route);
            request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
            request.Headers.Add("Ocp-Apim-Subscription-Key", key);
            // location required if you're using a multi-service or regional (not global) resource.
            request.Headers.Add("Ocp-Apim-Subscription-Region", location);

            // Send the request and get response.
            HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
            // Read response as a string.
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine(result);
        }
    }
}

Efter ett lyckat anrop bör du se följande svar. Mer information om svaret finns i Ordlistesökning

[
   {
      "normalizedSource":"sunlight",
      "normalizedTarget":"luz solar",
      "examples":[
         {
            "sourcePrefix":"You use a stake, silver, or ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"Se usa una estaca, plata, o ",
            "targetTerm":"luz solar",
            "targetSuffix":"."
         },
         {
            "sourcePrefix":"A pocket of ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"Una bolsa de ",
            "targetTerm":"luz solar",
            "targetSuffix":"."
         },
         {
            "sourcePrefix":"There must also be ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"También debe haber ",
            "targetTerm":"luz solar",
            "targetSuffix":"."
         },
         {
            "sourcePrefix":"We were living off of current ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"Estábamos viviendo de la ",
            "targetTerm":"luz solar",
            "targetSuffix":" actual."
         },
         {
            "sourcePrefix":"And they don't need unbroken ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"Y ellos no necesitan ",
            "targetTerm":"luz solar",
            "targetSuffix":" ininterrumpida."
         },
         {
            "sourcePrefix":"We have lamps that give the exact equivalent of ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"Disponemos de lámparas que dan el equivalente exacto de ",
            "targetTerm":"luz solar",
            "targetSuffix":"."
         },
         {
            "sourcePrefix":"Plants need water and ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"Las plantas necesitan agua y ",
            "targetTerm":"luz solar",
            "targetSuffix":"."
         },
         {
            "sourcePrefix":"So this requires ",
            "sourceTerm":"sunlight",
            "sourceSuffix":".",
            "targetPrefix":"Así que esto requiere ",
            "targetTerm":"luz solar",
            "targetSuffix":"."
         },
         {
            "sourcePrefix":"And this pocket of ",
            "sourceTerm":"sunlight",
            "sourceSuffix":" freed humans from their ...",
            "targetPrefix":"Y esta bolsa de ",
            "targetTerm":"luz solar",
            "targetSuffix":", liberó a los humanos de ..."
         },
         {
            "sourcePrefix":"Since there is no ",
            "sourceTerm":"sunlight",
            "sourceSuffix":", the air within ...",
            "targetPrefix":"Como no hay ",
            "targetTerm":"luz solar",
            "targetSuffix":", el aire atrapado en ..."
         },
         {
            "sourcePrefix":"The ",
            "sourceTerm":"sunlight",
            "sourceSuffix":" shining through the glass creates a ...",
            "targetPrefix":"La ",
            "targetTerm":"luz solar",
            "targetSuffix":" a través de la vidriera crea una ..."
         },
         {
            "sourcePrefix":"Less ice reflects less ",
            "sourceTerm":"sunlight",
            "sourceSuffix":", and more open ocean ...",
            "targetPrefix":"Menos hielo refleja menos ",
            "targetTerm":"luz solar",
            "targetSuffix":", y más mar abierto ..."
         },
         {
            "sourcePrefix":"",
            "sourceTerm":"Sunlight",
            "sourceSuffix":" is most intense at midday, so ...",
            "targetPrefix":"La ",
            "targetTerm":"luz solar",
            "targetSuffix":" es más intensa al mediodía, por lo que ..."
         },
         {
            "sourcePrefix":"... capture huge amounts of ",
            "sourceTerm":"sunlight",
            "sourceSuffix":", so fueling their growth.",
            "targetPrefix":"... capturan enormes cantidades de ",
            "targetTerm":"luz solar",
            "targetSuffix":" que favorecen su crecimiento."
         },
         {
            "sourcePrefix":"... full height, giving more direct ",
            "sourceTerm":"sunlight",
            "sourceSuffix":" in the winter.",
            "targetPrefix":"... altura completa, dando más ",
            "targetTerm":"luz solar",
            "targetSuffix":" directa durante el invierno."
         }
      ]
   }
]

Felsökning

Vanliga HTTP-statuskoder

HTTP-statuskod Beskrivning Möjlig orsak
200 OK Begäran lyckades.
400 Felaktig begäran En obligatorisk parameter saknas, är tom eller null. Eller så är värdet som skickas till antingen en obligatorisk eller valfri parameter ogiltigt. Ett vanligt problem är ett sidhuvud som är för långt.
401 Behörighet saknas Begäran har inte behörighet. Kontrollera att din nyckel eller token är giltig och i rätt region. Se ävenAutentisering.
429 För många begäranden Du har överskridit kvoten eller frekvensen för begäranden som tillåts för din prenumeration.
502 Felaktig gateway Problem på nätverks- eller serversidan. Kan också indikera ogiltiga rubriker.

Java-användare

Om du stöter på anslutningsproblem kan det bero på att TLS/SSL-certifikatet har upphört att gälla. Lös problemet genom att installera DigiCertGlobalRootG2.crt i din privata butik.

Nästa steg