Azure AI Translator-API's gebruiken

In deze handleiding leert u hoe u de REST API's van de Translator-service gebruikt. U begint met de basisvoorbeelden en gaat vervolgens verder met een aantal belangrijke configuratie-opties die vaak worden gebruikt tijdens de ontwikkeling, waaronder:

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement

  • Een Azure AI-resource met meerdere services of Translator-resources. Zodra u uw Azure-abonnement hebt, maakt u een resource voor één service of een resource voor meerdere services in de Azure Portal om uw sleutel en eindpunt op te halen. Nadat de app is geïmplementeerd, selecteert u Ga naar resource.

  • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen en later upgraden naar een betaalde laag voor productie.

  • U hebt de sleutel en het eindpunt van de resource nodig om uw toepassing te verbinden met de Translator-service. Later plakt u uw sleutel en eindpunt in de codevoorbeelden. U vindt deze waarden op de pagina Azure Portal Sleutels en eindpunten:

    Schermopname: pagina Azure Portal sleutels en eindpunt.

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en plaats deze sleutel nooit in het openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie Beveiliging van Azure AI-services voor meer informatie.

Kopteksten

Als u de Translator-service wilt aanroepen via de REST API, moet u ervoor zorgen dat de volgende headers bij elke aanvraag zijn opgenomen. Geen zorgen, we nemen de headers op in de voorbeeldcode in de volgende secties.

Header Waarde Voorwaarde
Ocp-Apim-Subscription-Key Uw Translator-servicesleutel uit de Azure Portal.
  • Vereist
Ocp-Apim-Subscription-Region De regio waar uw resource is gemaakt.
  • Vereist bij het gebruik van een Azure AI-resource met meerdere services of regionale (geografische) resources, zoals VS - west.
  • Optioneel bij gebruik van een Translator-resource met één service.
Content-Type Het inhoudstype van de nettolading. De geaccepteerde waarde is application/json of charset=UTF-8.
  • Vereist
Content-Length De lengte van de aanvraagbody .
  • Optioneel
X-ClientTraceId Een door de client gegenereerde GUID om de aanvraag op unieke wijze te identificeren. U kunt deze header weglaten als u de tracerings-id in de querytekenreeks opneemt met behulp van een queryparameter met de naam ClientTraceId.
  • Optioneel

Uw toepassing instellen

  1. Zorg ervoor dat u de huidige versie van Visual Studio IDE hebt.

    Tip

    Als Visual Studio nieuw voor u is, probeert u de learn-module Inleiding tot Visual Studio .

  2. Open Visual Studio.

  3. Kies op de pagina Start de optie Een nieuw project maken.

    Schermopname: het startvenster van Visual Studio.

  4. Voer op de pagina Een nieuw project makenconsole in het zoekvak in. Kies de sjabloon Consoletoepassing en kies vervolgens Volgende.

    Schermopname: de pagina Voor het maken van een nieuw project van Visual Studio.

  5. Voer translator_text_app in het dialoogvenster Uw nieuwe project configureren in het vak Projectnaam in. Laat het selectievakje Oplossing en project in dezelfde map plaatsen uitgeschakeld en selecteer Volgende.

    Schermopname: het dialoogvenster Nieuw project configureren van Visual Studio.

  6. Controleer in het dialoogvenster Aanvullende informatie of .NET 6.0 (langetermijnondersteuning) is geselecteerd. Laat het selectievakje 'Geen instructies op het hoogste niveau gebruiken' uitgeschakeld en selecteer Maken.

    Schermopname: het dialoogvenster aanvullende informatie van Visual Studio.

Het newtonsoft.json-pakket installeren met NuGet

  1. Klik met de rechtermuisknop op uw translator_quickstart project en selecteer NuGet-pakketten beheren... .

    Schermopname van het zoekvak voor het NuGet-pakket.

  2. Selecteer het tabblad Bladeren en typ Newtonsoft.

    Schermopname van het installatievenster van het NuGet-pakket.

  3. Selecteer Installeren in het rechter venster van pakketbeheer om het pakket toe te voegen aan uw project.

    Schermopname van de knop NuGet-pakket installeren.

Uw toepassing bouwen

Notitie

  • Vanaf .NET 6 genereren nieuwe projecten die gebruikmaken van de console sjabloon een nieuwe programmastijl die verschilt van eerdere versies.
  • De nieuwe uitvoer maakt gebruik van recente C#-functies die de code vereenvoudigen die u nodig hebt om te schrijven.
  • Wanneer u de nieuwere versie gebruikt, hoeft u alleen de hoofdtekst van de Main methode te schrijven. U hoeft geen instructies op het hoogste niveau, globale gebruikende instructies of impliciete gebruiksinstructies op te nemen.
  • Zie Nieuwe C#-sjablonen genereren instructies op het hoogste niveau voor meer informatie.
  1. Open het bestand Program.cs .

  2. Verwijder de bestaande code, inclusief de regel Console.WriteLine("Hello World!"). Kopieer en plak de codevoorbeelden in het bestand Program.cs van uw toepassing. Zorg ervoor dat u voor elk codevoorbeeld de sleutel- en eindpuntvariabelen bijwerkt met waarden uit uw Azure Portal Translator-exemplaar.

  3. Nadat u een gewenst codevoorbeeld aan uw toepassing hebt toegevoegd, kiest u de groene startknop naast formRecognizer_quickstart om uw programma te bouwen en uit te voeren, of drukt u op F5.

Schermopname van de knop Programma uitvoeren in Visual Studio.

Belangrijk

Voor de voorbeelden in deze handleiding zijn in code vastgelegde sleutels en eindpunten vereist. Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Overweeg om voor productie een veilige manier te gebruiken voor het opslaan en openen van uw referenties. Zie Beveiliging van Azure AI-services voor meer informatie.

Tekst vertalen

De belangrijkste functie van de Translator-service is het vertalen van tekst. In deze sectie maakt u een aanvraag die één bron (from) nodig heeft en twee uitvoerwaarden () biedt.to Vervolgens bekijken we enkele parameters die kunnen worden gebruikt om zowel de aanvraag als het antwoord aan te passen.

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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord:

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

U kunt het verbruik (het aantal in rekening gebrachte tekens) voor elke aanvraag controleren in de antwoordheaders: x-naar-gebruiksveld .

Taal detecteren

Als u vertaling nodig hebt, maar de taal van de tekst niet weet, kunt u de taaldetectiebewerking gebruiken. Er zijn verschillende manieren om de taal van de brontekst te identificeren. In deze sectie leert u hoe u taaldetectie gebruikt met behulp van het translate eindpunt en het detect eindpunt.

Brontaal detecteren tijdens de vertaling

Als u de parameter niet in uw from vertaalaanvraag opneemt, probeert de Translator-service de taal van de brontekst te detecteren. In het antwoord krijgt u de gedetecteerde taal (language) en een betrouwbaarheidsscore (score). Hoe dichter de score is bij 1.0, betekent dat er meer vertrouwen is dat de detectie juist is.

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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord:

[
   {
      "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"
         }
      ]
   }
]

Brontaal detecteren zonder vertaling

Het is mogelijk de Translator-service te gebruiken om de taal van de brontekst te detecteren zonder een vertaling uit te voeren. Hiervoor gebruikt u het /detect eindpunt.

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);
        }
    }
}

Het /detect eindpuntantwoord bevat alternatieve detecties en geeft aan of de vertaling en transliteratie worden ondersteund voor alle gedetecteerde talen. Na een geslaagde aanroep ziet u het volgende antwoord:

[
   {
      "language":"de",

      "score":1.0,

      "isTranslationSupported":true,

      "isTransliterationSupported":false
   }
]

Tekst transcriberen

Transliteratie is het proces waarbij een woord of woordgroep van het script (alfabet) van de ene taal naar de andere wordt omgezet op basis van de fonetische gelijkenis. U kunt bijvoorbeeld transliteratie gebruiken om ' สวัสดี ' (thai) om te zetten naar 'sawatdi' (latn). Er is meer dan één manier om transliteratie uit te voeren. In deze sectie leert u hoe u taaldetectie gebruikt met behulp van het translate eindpunt en het transliterate eindpunt.

Transliteratie tijdens de vertaling

Als u tekst naar een taal wilt vertalen die gebruikmaakt van een ander alfabet (of fonemen) dan uw bron, moet u de tekst mogelijk eerst transliteren. In dit voorbeeld vertalen we 'Hello' van het Engels naar het Thais. Naast het verkrijgen van de vertaling in het Thai, krijgt u een transliteratie van de vertaalde zin met behulp van het Latijnse alfabet.

Als u een transliteratie wilt met het translate-eindpunt, gebruikt u de parameter toScript .

Notitie

Zie Taalondersteuning voor een volledige lijst met beschikbare talen en transliteratieopties.

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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord. Houd er rekening mee dat het antwoord van het translate-eindpunt de gedetecteerde brontaal bevat met een betrouwbaarheidsscore, een vertaling in het alfabet van de uitvoertaal en een transliteratie in het Latijnse alfabet.

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

Transliteratie zonder vertaling

U kunt ook het transliterate-eindpunt gebruiken voor een transliteratie. Wanneer u het eindpunt voor transliteratie gebruikt, moet u de brontaal (language), het bronscript/-alfabet (fromScript) en het uitvoerscript/-alfabet (toScript) als parameters opgeven. In dit voorbeeld gaan we de transliteratie ophalen voor สวัสดีเพื่อน! วันนี้คุณทำอะไร.

Notitie

Zie Taalondersteuning voor een volledige lijst met beschikbare talen en transliteratieopties.

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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord. In tegenstelling tot de aanroep van het translate-eindpunt, retourneert transliterate alleen de text en de uitvoer script.

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

      "script":"latn"
   }
]

Zinslengte bepalen

Met de Translator-service kunt u het aantal tekens voor een zin of reeks zinnen bepalen. Het antwoord wordt geretourneerd als een matrix, met het aantal tekens dat voor elke zin is gedetecteerd. U kunt de zinslengte bepalen met de translate- en breaksentence-eindpunten.

Zinslengte bepalen tijdens vertaling

U kunt het aantal tekens voor zowel de brontekst als de vertaaluitvoer bepalen met behulp van het translate-eindpunt. Als u de zinslengte wilt retourneren (srcSenLen en transSenLen), moet u de parameter includeSentenceLength instellen op 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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord. Naast de gedetecteerde brontaal en vertaling krijgt u het aantal tekens voor elke gedetecteerde zin voor zowel de bron (srcSentLen) als de vertaling (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
               ]
            }
         }
      ]
   }
]

Zinslengte bepalen zonder vertaling

Met de Translator-service kunt u ook de zinslengte bepalen zonder vertaling met behulp van het breaksentence-eindpunt.

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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord. In tegenstelling tot de aanroep van het translate-eindpunt, retourneert breaksentence alleen het aantal tekens voor de brontekst in een matrix met de naam sentLen.

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

Opzoeken in woordenlijst (alternatieve vertalingen)

Met het eindpunt kunt u alternatieve vertalingen voor een woord of woordgroep krijgen. Wanneer u bijvoorbeeld het woord 'zonneschijn' van en vertaalt naar es, retourneert dit eindpunt 'luz solar,' 'rayos solares' en 'soleamiento,' ', 'sol' en ''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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord. Laten we het antwoord nader bekijken, omdat de JSON complexer is dan sommige van de andere voorbeelden in dit artikel. De translations-matrix bevat een lijst met vertalingen. Elk object in deze matrix bevat een betrouwbaarheidsscore (confidence), de tekst die is geoptimaliseerd voor weergave aan eindgebruikers (displayTarget), de genormaliseerde tekst (normalizedText), de woordsoort (posTag) en informatie over de vorige vertaling (backTranslations). Zie Opzoeken in woordenlijst voor meer informatie over het antwoord

[
   {
      "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
               }
            ]
         }
      ]
   }
]

Voorbeelden van woordenlijsten (vertalingen met context)

Nadat u een woordenlijst hebt gezocht, geeft u de bron- en vertaaltekst door aan het dictionary/examples eindpunt om een lijst met voorbeelden te krijgen waarin beide termen in de context van een zin of woordgroep worden weergegeven. Voortbouwend op het vorige voorbeeld gebruikt u respectievelijk het normalizedText antwoord en normalizedTarget uit de woordenlijstopzoekactie text als en translation . De parameters voor de brontaal (from) en het uitvoerdoel (to) zijn vereist.

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);
        }
    }
}

Na een geslaagde aanroep ziet u het volgende antwoord. Zie Opzoeken in woordenlijst voor meer informatie over het antwoord

[
   {
      "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."
         }
      ]
   }
]

Problemen oplossen

Algemene HTTP-statuscodes

HTTP-statuscode Beschrijving Mogelijke reden
200 OK De aanvraag is geslaagd.
400 Onjuiste aanvraag Een vereiste parameter ontbreekt, is leeg of null. Of de waarde die is doorgegeven aan een vereiste of optionele parameter is ongeldig. Een veelvoorkomend probleem is een header die te lang is.
401 Niet geautoriseerd De aanvraag is niet geautoriseerd. Controleer of uw sleutel of token geldig is en zich in de juiste regio bevindt. Zie ookVerificatie.
429 Te veel aanvragen U hebt het quotum of het aantal toegestane aanvragen voor uw abonnement overschreden.
502 Ongeldige gateway Probleem aan de netwerk- of serverzijde. Kan ook duiden op ongeldige headers.

Java-gebruikers

Als u verbindingsproblemen ondervindt, kan het zijn dat uw TLS/SSL-certificaat is verlopen. U kunt dit probleem oplossen door de DigiCertGlobalRootG2.crt te installeren in uw privé-archief.

Volgende stappen