Usar APIs do Azure AI Translator

Neste guia de instruções, você aprenderá a usar as APIs REST do serviço Translator. Você começa com exemplos básicos e passa para algumas opções de configuração principais que são comumente usadas durante o desenvolvimento, incluindo:

Pré-requisitos

  • Subscrição do Azure - Criar uma gratuitamente

  • Um recurso multisserviço ou Tradutor de IA do Azure. Depois de ter sua assinatura do Azure, crie um recurso de serviço único ou multisserviço , no portal do Azure, para obter sua chave e ponto de extremidade. Depois de implantar, selecione Ir para recurso.

  • Você pode usar o nível de preço gratuito (F0) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.

  • Você precisa da chave e do ponto de extremidade do recurso para conectar seu aplicativo ao serviço Translator. Mais tarde, você cola sua chave e ponto de extremidade nos exemplos de código. Você pode encontrar esses valores na página Chaves e Ponto de Extremidade do portal do Azure:

    Captura de tela: Chaves do portal do Azure e página de ponto de extremidade.

Importante

Lembre-se de remover a chave do seu código quando terminar e nunca publicá-la publicamente. Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações, consulte a segurança dos serviços de IA do Azure.

Cabeçalhos

Para chamar o serviço Tradutor por meio da API REST, você precisa garantir que os cabeçalhos a seguir estejam incluídos em cada solicitação. Não se preocupe, incluímos os cabeçalhos no código de exemplo nas seções a seguir.

Cabeçalho Value Condição
ocp-apim-subscription-key Sua chave de serviço do Translator no portal do Azure.
  • Obrigatório
OCP-Apim-Assinatura-Região A região onde o recurso foi criado.
  • Necessário ao usar um recurso multisserviço ou regional (geográfico) da IA do Azure, como West US.
  • Opcional ao usar um recurso de tradutor de serviço único.
Tipo de conteúdo O tipo de conteúdo da carga útil. O valor aceito é application/json ou charset=UTF-8.
  • Obrigatório
Comprimento do conteúdo O comprimento do corpo do pedido .
  • Opcional
X-ClientTraceId Um GUID gerado pelo cliente para identificar exclusivamente a solicitação. Você pode omitir esse cabeçalho se incluir a ID de rastreamento na cadeia de caracteres de consulta usando um parâmetro de consulta chamado ClientTraceId.
  • Opcional

Configurar a aplicação

  1. Verifique se você tem a versão atual do Visual Studio IDE.

    Gorjeta

    Se você é novo no Visual Studio, tente o módulo Introdução ao Visual Studio Learn.

  2. Abra o Visual Studio.

  3. Na página inicial, escolha Criar um novo projeto.

    Captura de tela: janela inicial do Visual Studio.

  4. Na página Criar um novo projeto, insira console na caixa de pesquisa. Escolha o modelo Aplicativo de Console e, em seguida, escolha Avançar.

    Captura de tela: página de criação de novo projeto do Visual Studio.

  5. Na janela de diálogo Configurar seu novo projeto, digite translator_text_app na caixa Nome do projeto. Deixe a caixa de seleção "Colocar solução e projeto no mesmo diretório" desmarcada e selecione Avançar.

    Captura de tela: janela de diálogo configurar novo projeto do Visual Studio.

  6. Na janela de diálogo Informações adicionais, verifique se .NET 6.0 (Suporte de longo prazo) está selecionado. Deixe a caixa de seleção "Não usar instruções de nível superior" desmarcada e selecione Criar.

    Captura de tela: janela de diálogo de informações adicionais do Visual Studio.

Instalar o pacote Newtonsoft.json com o NuGet

  1. Clique com o botão direito do mouse em seu projeto translator_quickstart e selecione Gerenciar pacotes NuGet... .

    Captura de tela da caixa de pesquisa do pacote NuGet.

  2. Selecione a guia Procurar e digite Newtonsoft.

    Captura de tela da janela de instalação do pacote NuGet.

  3. Selecione instalar na janela direita do gerenciador de pacotes e adicione o pacote ao seu projeto.

    Captura de tela do botão de instalação do pacote NuGet.

Compilar a aplicação

Nota

  • A partir do .NET 6, novos projetos usando o console modelo geram um novo estilo de programa que difere das versões anteriores.
  • A nova saída usa recursos recentes do C# que simplificam o código que você precisa escrever.
  • Quando você usa a versão mais recente, você só precisa escrever o Main corpo do método. Não é necessário incluir instruções de nível superior, diretivas de uso global ou diretivas de uso implícito.
  • Para obter mais informações, consulte Novos modelos C# geram instruções de nível superior.
  1. Abra o arquivo Program.cs .

  2. Exclua o código pré-existente, incluindo a linha Console.WriteLine("Hello World!"). Copie e cole os exemplos de código no arquivo Program.cs do seu aplicativo. Para cada exemplo de código, certifique-se de atualizar as variáveis de chave e ponto de extremidade com valores de sua instância do Tradutor do portal do Azure.

  3. Depois de adicionar um exemplo de código desejado ao seu aplicativo, escolha o botão verde Iniciar ao lado de formRecognizer_quickstart para criar e executar o programa ou pressione F5.

Captura de tela do botão Executar programa no Visual Studio.

Importante

Os exemplos neste guia exigem chaves e pontos de extremidade codificados. Lembre-se de remover a chave do seu código quando terminar e nunca publicá-la publicamente. Para produção, considere usar uma maneira segura de armazenar e acessar suas credenciais. Para obter mais informações, consulte Segurança dos serviços de IA do Azure.

Traduzir texto

A principal operação do serviço Translator é traduzir texto. Nesta seção, você cria uma solicitação que usa uma única fonte (from) e fornece duas saídas (to). Em seguida, revisamos alguns parâmetros que podem ser usados para ajustar tanto a solicitação quanto a resposta.

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

Após uma chamada bem-sucedida, você verá a seguinte resposta:

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

Você pode verificar o consumo (o número de caracteres cobrados) para cada solicitação nos cabeçalhos de resposta: campo x-metered-usage.

Detetar idioma

Se precisar de tradução, mas não souber o idioma do texto, pode utilizar a operação de deteção de idioma. Há mais de uma maneira de identificar o idioma do texto de origem. Nesta seção, você aprenderá a usar a deteção de idioma usando o ponto de translate extremidade e o ponto de detect extremidade.

Detetar o idioma de origem durante a tradução

Se não incluir o from parâmetro no seu pedido de tradução, o serviço Tradutor tenta detetar o idioma do texto de partida. Na resposta, você obtém o idioma detetado (language) e uma pontuação de confiança (score). Quanto mais próximo estiver score de 1.0, significa que há maior confiança de que a deteção está correta.

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

Após uma chamada bem-sucedida, você verá a seguinte resposta:

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

Detetar o idioma de origem sem tradução

É possível utilizar o serviço Translator para detetar a língua do texto de partida sem efetuar uma tradução. Para fazer isso, use o ponto de /detect extremidade.

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

A /detect resposta do ponto final inclui deteções alternativas e indica se a tradução e a transliteração são suportadas para todos os idiomas detetados. Após uma chamada bem-sucedida, você verá a seguinte resposta:

[
   {
      "language":"de",

      "score":1.0,

      "isTranslationSupported":true,

      "isTransliterationSupported":false
   }
]

Transliterar texto

Transliteração é o processo de conversão de uma palavra ou frase da escrita (alfabeto) de uma língua para outra com base na semelhança fonética. Por exemplo, você pode usar a transliteração para converter "สวัสดี" (thai) em "sawatdi" (latn). Há mais de uma maneira de realizar a transliteração. Nesta seção, você aprenderá a usar a deteção de idioma usando o ponto de translate extremidade e o ponto de transliterate extremidade.

Transliterar durante a tradução

Se você estiver traduzindo para um idioma que usa um alfabeto (ou fonemas) diferente da sua fonte, talvez seja necessário uma transliteração. Neste exemplo, traduzimos "Olá" do inglês para o tailandês. Além de obter a tradução em tailandês, você obtém uma transliteração da frase traduzida usando o alfabeto latino.

Para obter uma transliteração do translate ponto de extremidade, use o toScript parâmetro.

Nota

Para obter uma lista completa dos idiomas disponíveis e das opções de transliteração, consulte Suporte a idiomas.

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

Após uma chamada bem-sucedida, você verá a seguinte resposta. Tenha em mente que a resposta do endpoint inclui o idioma de translate origem detetado com uma pontuação de confiança, uma tradução usando o alfabeto do idioma de saída e uma transliteração usando o alfabeto latino.

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

Transliterado sem tradução

Você também pode usar o transliterate ponto de extremidade para obter uma transliteração. Ao usar o ponto de extremidade de transliteração, você deve fornecer o idioma de origem (language), o script de origem/alfabeto (fromScript) e o script/alfabeto de saída (toScript) como parâmetros. Neste exemplo, vamos obter a transliteração para สวัสดีเพื่อน! วันนี้คุณทำอะไร.

Nota

Para obter uma lista completa dos idiomas disponíveis e das opções de transliteração, consulte Suporte a idiomas.

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

Após uma chamada bem-sucedida, você verá a seguinte resposta. Ao contrário da chamada para o translate ponto de extremidade, transliterate apenas retorna o text e a saída script.

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

      "script":"latn"
   }
]

Obter comprimento da frase

Com o serviço Tradutor, você pode obter a contagem de caracteres para uma frase ou série de frases. A resposta é retornada como uma matriz, com contagens de caracteres para cada frase detetada. Você pode obter comprimentos de frase com os pontos finais e translate breaksentence .

Obter a extensão da frase durante a tradução

Você pode obter contagens de caracteres para o texto de origem e a saída de tradução usando o ponto de translate extremidade. Para retornar o comprimento da frase (srcSenLen e transSenLen), você deve definir o includeSentenceLength parâmetro como 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);
        }
    }
}

Após uma chamada bem-sucedida, você verá a seguinte resposta. Além do idioma de origem e da tradução detetados, você obtém contagens de caracteres para cada frase detetada tanto para a fonte (srcSentLen) quanto para a tradução (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
               ]
            }
         }
      ]
   }
]

Obter comprimento de frase sem tradução

O serviço Tradutor também permite solicitar o comprimento da frase sem tradução usando o breaksentence ponto de extremidade.

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

Após uma chamada bem-sucedida, você verá a seguinte resposta. Ao contrário da chamada para o translate ponto de extremidade, breaksentence retorna apenas as contagens de caracteres para o texto de origem em uma matriz chamada sentLen.

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

Pesquisa de dicionário (traduções alternativas)

Com o endpoint, você pode obter traduções alternativas para uma palavra ou frase. Por exemplo, ao traduzir a palavra "luz do sol" de para es, esse ponto de en extremidade retorna "luz solar," "rayos solares," e "soleamiento," "sol," e "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);
        }
    }
}

Após uma chamada bem-sucedida, você verá a seguinte resposta. Vamos examinar a resposta mais de perto, já que o JSON é mais complexo do que alguns dos outros exemplos neste artigo. A translations matriz inclui uma lista de traduções. Cada objeto nessa matriz inclui uma pontuação de confiança (confidence), o texto otimizado para exibição do usuário final (displayTarget), o texto normalizado (normalizedText), a parte da fala (posTag) e informações sobre a tradução anterior (backTranslations). Para obter mais informações sobre a resposta, consulte Pesquisa de dicionário

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

Exemplos de dicionários (traduções em contexto)

Depois de realizar uma pesquisa de dicionário, passe o texto de origem e de tradução para o dictionary/examples ponto de extremidade, para obter uma lista de exemplos que mostram ambos os termos no contexto de uma frase ou frase. Com base no exemplo anterior, você usa a normalizedText resposta text de pesquisa de dicionário e normalizedTarget a partir de como e translation respectivamente. Os parâmetros de idioma de origem (from) e de destino de saída (to) são necessários.

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

Após uma chamada bem-sucedida, você verá a seguinte resposta. Para obter mais informações sobre a resposta, consulte Pesquisa de dicionário

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

Resolução de Problemas

Códigos de status HTTP comuns

Código de estado de HTTP Description Motivo possível
200 OK O pedido foi bem-sucedido.
400 Pedido Incorreto Um parâmetro necessário está ausente, vazio ou nulo. Ou, o valor passado para um parâmetro obrigatório ou opcional é inválido. Um problema comum é um cabeçalho muito longo.
401 Não autorizado O pedido não está autorizado. Verifique se a sua chave ou token está válido e na região correta. Consulte também Autenticação.
429 Demasiados pedidos Você excedeu a cota ou a taxa de solicitações permitidas para sua assinatura.
502 Gateway Inválido Problema de rede ou do lado do servidor. Também pode indicar cabeçalhos inválidos.

Usuários Java

Se você estiver encontrando problemas de conexão, pode ser que seu certificado TLS/SSL tenha expirado. Para resolver esse problema, instale o DigiCertGlobalRootG2.crt em sua loja particular.

Próximos passos