Início Rápido: Introdução à TraduçãoQuickstart: Get started with Translator

Neste guia de início rápido, você aprende a usar o serviço de Tradução por meio do REST.In this quickstart, you learn to use the Translator service via REST. Você começa com exemplos básicos e passa para algumas opções de configuração básicas que são comumente usadas durante o desenvolvimento, incluindo:You start with basic examples and move onto some core configuration options that are commonly used during development, including:

Pré-requisitosPrerequisites

  • Assinatura do Azure – Criar uma gratuitamenteAzure subscription - Create one for free
  • Depois de ter uma assinatura do Azure, crie um recurso de Tradução no portal do Azure para obter a chave e o ponto de extremidade.Once you have an Azure subscription, create a Translator resource in the Azure portal to get your key and endpoint. Após a implantação, selecione Ir para recurso.After it deploys, select Go to resource.
    • Você precisará da chave e do ponto de extremidade do recurso para conectar seu aplicativo ao serviço de Tradução.You'll need the key and endpoint from the resource to connect your application to the Translator service. Cole a chave e o ponto de extremidade no código abaixo mais adiante no guia de início rápido.You'll paste your key and endpoint into the code below later in the quickstart.
    • Use o tipo de preço gratuito (F0) para experimentar o serviço e atualizar mais tarde para um nível pago para produção.You can use the free pricing tier (F0) to try the service, and upgrade later to a paid tier for production.

Instalação da plataformaPlatform setup

  • Criar um projeto: dotnet new console -o your_project_nameCreate a new project: dotnet new console -o your_project_name
  • Substitua Program.cs pelo C# código mostrado abaixo.Replace Program.cs with the C# code shown below.
  • Defina a chave de assinatura e os valores de ponto de extremidade em Program.cs.Set the subscription key and endpoint values in Program.cs.
  • Adicione Newtonsoft.Json usando a CLI do .NET.Add Newtonsoft.Json using .NET CLI.
  • Execute o programa usando o diretório do projeto: dotnet runRun the program from the project directory: dotnet run

CabeçalhosHeaders

Ao chamar o serviço de Tradução por meio do REST, você precisará verificar se os cabeçalhos a seguir estão incluídos em cada solicitação.When calling the Translator service via REST, you'll need to make sure the following headers are included with each request. Não se preocupe, incluiremos os cabeçalhos no código de exemplo nas seções a seguir.Don't worry, we'll include the headers in the sample code in the following sections.

CabeçalhosHeaders DescriçãoDescription
Cabeçalhos de autenticaçãoAuthentication header(s) Cabeçalho de solicitação obrigatório.Required request header.
Ocp-Apim-Subscription-Key

Cabeçalho de solicitação obrigatório se você estiver usando um recurso dos Serviços Cognitivos. Opcional, se estiver usando um recurso de Tradução..Required request header if using a Cognitive Services Resource. Optional if using a Translator Resource..
Ocp-Apim-Subscription-Region

Veja Opções disponíveis para autenticação.See available options for authentication.
Tipo de conteúdoContent-Type Cabeçalho de solicitação obrigatório.Required request header.
Especifica o tipo de conteúdo da carga.Specifies the content type of the payload.
O valor aceito é application/json; charset=UTF-8.Accepted value is application/json; charset=UTF-8.
Content-LengthContent-Length Cabeçalho de solicitação obrigatório.Required request header.
O tamanho do corpo da solicitação.The length of the request body.
X-ClientTraceIdX-ClientTraceId Opcional.Optional.
Um GUID gerado pelo cliente para identificar exclusivamente a solicitação.A client-generated GUID to uniquely identify the request. É possível omitir esse cabeçalho se incluir a ID de rastreamento na cadeia de caracteres de consulta usando um parâmetro de consulta nomeado ClientTraceId.You can omit this header if you include the trace ID in the query string using a query parameter named ClientTraceId.

Chaves e pontos de extremidadeKeys and endpoints

Os exemplos nesta página usam chaves e pontos de extremidade embutidos em código para simplificar.The samples on this page use hard-coded keys and endpoints for simplicity. Lembre-se de remover a chave do código quando terminar e nunca poste-a publicamente.Remember to remove the key from your code when you're done, and never post it publicly. Para produção, considere o uso de uma maneira segura de armazenar e acessar suas credenciais.For production, consider using a secure way of storing and accessing your credentials. Confira o artigo segurança de Serviços Cognitivos para obter mais informações.See the Cognitive Services security article for more information.

Traduzir o textoTranslate text

A principal operação do serviço de Tradução é traduzir o texto.The core operation of the Translator service is to translate text. Nesta seção, você criará uma solicitação que usa uma origem (from) e fornece duas saídas (to).In this section, you'll build a request that takes a single source (from) and provides two outputs (to). Em seguida, examinaremos alguns parâmetros que podem ser usados para ajustar a solicitação e a resposta.Then we'll review some parameters that can be used to adjust both the request and the response.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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=de&to=it";
        string textToTranslate = "Hello, world!";
        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", subscriptionKey);
            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ê deverá ver a seguinte resposta:After a successful call, you should see the following response:

[
    {
        "translations": [
            {
                "text": "Hallo Welt!",
                "to": "de"
            },
            {
                "text": "Salve, mondo!",
                "to": "it"
            }
        ]
    }
]

Detectar o idiomaDetect language

Se você souber que precisará de tradução, mas não souber o idioma do texto que será enviado ao serviço de Tradução, poderá usar a operação de detecção de idioma.If you know that you'll need translation, but don't know the language of the text that will be sent to the Translator service, you can use the language detection operation. Há mais de uma forma de identificar o idioma do texto de origem.There's more than one way to identify the source text language. Nesta seção, você aprenderá a usar a detecção de idioma usando o ponto de extremidade translate e o ponto de extremidade detect.In this section, you'll learn how to use language detection using the translate endpoint, and the detect endpoint.

Detectar idioma de origem durante a traduçãoDetect source language during translation

Se você não incluir o parâmetro from na solicitação de tradução, o serviço de Tradução tentará detectar o idioma do texto de origem.If you don't include the from parameter in your translation request, the Translator service will attempt to detect the source text's language. Na resposta, você obterá o idioma detectado (language) e uma pontuação de confiança (score).In the response, you'll get the detected language (language) and a confidence score (score). Quanto mais próximo score estiver de 1.0, maior será a confiança de que a detecção está correta.The closer the score is to 1.0, means that there is increased confidence that the detection is correct.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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=de&to=it";
        string textToTranslate = "Hello, world!";
        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", subscriptionKey);
            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ê deverá ver a seguinte resposta:After a successful call, you should see the following response:

[
    {
        "detectedLanguage": {
            "language": "en",
            "score": 1.0
        },
        "translations": [
            {
                "text": "Hallo Welt!",
                "to": "de"
            },
            {
                "text": "Salve, mondo!",
                "to": "it"
            }
        ]
    }
]

Detectar idioma de origem sem traduçãoDetect source language without translation

É possível usar o serviço de Tradução para detectar o idioma do texto de origem sem executar uma tradução.It's possible to use the Translator service to detect the language of source text without performing a translation. Para fazer isso, você usará o ponto de extremidade /detect.To do this, you'll use the /detect endpoint.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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 = "Ich würde wirklich gern Ihr Auto um den Block fahren ein paar Mal.";
        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", subscriptionKey);
            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);
        }
    }
}

Ao usar o ponto de extremidade /detect, a resposta incluirá detecções alternativas e permitirá que você saiba se há suporte para tradução e transliteração para todos os idiomas detectados.When using the /detect endpoint, the response will include alternate detections, and will let you know if translation and transliteration are supported for all of the detected languages. Após uma chamada bem-sucedida, você deverá ver a seguinte resposta:After a successful call, you should see the following response:

[
    {
        "alternatives": [
            {
                "isTranslationSupported": true,
                "isTransliterationSupported": false,
                "language": "nl",
                "score": 0.92
            },
            {
                "isTranslationSupported": true,
                "isTransliterationSupported": false,
                "language": "sk",
                "score": 0.77
            }
        ],
        "isTranslationSupported": true,
        "isTransliterationSupported": false,
        "language": "de",
        "score": 1.0
    }
]

Transcrição de textoTransliterate text

A transliteração é o processo de converter uma palavra ou frase do script (alfabeto) de uma linguagem para outra com base na similaridade fonética.Transliteration is the process of converting a word or phrase from the script (alphabet) of one language to another based on phonetic similarity. Por exemplo, você pode usar o transliteração para converter "สวัสดี" (thai) em "sawatdi" (latn).For example, you could use transliteration to convert "สวัสดี" (thai) to "sawatdi" (latn). Há mais de uma forma de executar a transliteração.There's more than one way to perform transliteration. Nesta seção, você aprenderá a usar a detecção de idioma usando o ponto de extremidade translate e o ponto de extremidade transliterate.In this section, you'll learn how to use language detection using the translate endpoint, and the transliterate endpoint.

Transliteração durante a traduçãoTransliterate during translation

Se você estiver traduzindo para um idioma que use um alfabeto diferente (ou fonemas) do que a origem, talvez seja necessário usar transliteração.If you're translating into a language that uses a different alphabet (or phonemes) than your source, you might need a transliteration. Neste exemplo, traduzimos "Hello" do inglês para o tailandês.In this example, we translate "Hello" from English to Thai. Além de obter a tradução em tailandês, você obterá uma transliteração da frase traduzida usando o alfabeto latino.In addition to getting the translation in Thai, you'll get a transliteration of the translated phrase using the Latin alphabet.

Para obter uma transliteração do ponto de extremidade translate, use o parâmetro toScript.To get a transliteration from the translate endpoint, use the toScript parameter.

Observação

Para uma lista completa de idiomas disponíveis e opções de transliteração, confira suporte ao idioma.For a complete list of available languages and transliteration options, see language support.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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";
        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", subscriptionKey);
            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ê deverá ver a resposta a seguir.After a successful call, you should see the following response. Lembre-se de que a resposta do ponto de extremidade translate inclui o idioma de origem detectado 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.Keep in mind that the response from translate endpoint includes the detected source language with a confidence score, a translation using the alphabet of the output language, and a transliteration using the Latin alphabet.

[
    {
        "detectedLanguage": {
            "language": "en",
            "score": 1.0
        },
        "translations": [
            {
                "text": "สวัสดี",
                "to": "th",
                "transliteration": {
                    "script": "Latn",
                    "text": "sawatdi"
                }
            }
        ]
    }
]

Transliteração sem traduçãoTransliterate without translation

Você também pode usar o ponto de extremidade transliterate para obter uma transliteração.You can also use the transliterate endpoint to get a transliteration. Ao usar o ponto de extremidade de transliteração, você deve informar o idioma de origem (language), o script/alfabeto de origem (fromScript) e o script/alfabeto de saída (toScript) como parâmetros.When using the transliteration endpoint, you must provide the source language (language), the source script/alphabet (fromScript), and the output script/alphabet (toScript) as parameters. Neste exemplo, vamos obter a transliteração para สวัสดี.In this example, we're going to get the transliteration for สวัสดี.

Observação

Para uma lista completa de idiomas disponíveis e opções de transliteração, confira suporte ao idioma.For a complete list of available languages and transliteration options, see language support.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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 = "/translate?api-version=3.0&to=th&toScript=latn";
        string textToTransliterate = "Hello";
        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", subscriptionKey);
            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ê deverá ver a resposta a seguir.After a successful call, you should see the following response. Ao contrário da chamada para o ponto de extremidade translate, transliterate retorna apenas o script e a saída text.Unlike the call to the translate endpoint, transliterate only returns the script and the output text.

[
    {
        "script": "latn",
        "text": "sawatdi"
    }
]

Obter o comprimento da fraseGet sentence length

Com o serviço de Tradução, você pode obter a contagem de caracteres de uma frase ou série de frases.With the Translator service, you can get the character count for a sentence or series of sentences. A resposta é retornada como uma matriz, com contagens de caracteres para cada frase detectada.The response is returned as an array, with character counts for each sentence detected. Você pode obter comprimentos de sentença com os pontos de extremidade translate e breaksentence.You can get sentence lengths with the translate and breaksentence endpoints.

Obter o tamanho da frase durante a traduçãoGet sentence length during translation

Você pode obter contagens de caracteres para o texto de origem e a saída de tradução usando o ponto de extremidade translate.You can get character counts for both source text and translation output using the translate endpoint. Para retornar o comprimento da frase (srcSenLen e transSenLen), defina o parâmetro includeSentenceLength como True.To return sentence length (srcSenLen and transSenLen) you must set the includeSentenceLength parameter to True.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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", subscriptionKey);
            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ê deverá ver a resposta a seguir.After a successful call, you should see the following response. Além do idioma de origem e tradução detectados, você obterá contagens de caracteres para cada frase detectada tanto para a origem (srcSentLen) quanto para a tradução (transSentLen).In addition to the detected source language and translation, you'll get character counts for each detected sentence for both the source (srcSentLen) and translation (transSentLen).

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

Obter tamanho da frase sem traduçãoGet sentence length without translation

O serviço de Tradução também permite que você solicite o tamanho da frase sem tradução usando o ponto de extremidade breaksentence.The Translator service also lets you request sentence length without translation using the breaksentence endpoint.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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", subscriptionKey);
            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ê deverá ver a resposta a seguir.After a successful call, you should see the following response. Ao contrário da chamada para o ponto de extremidade translate, breaksentence retorna apenas as contagens de caracteres para o texto de origem em uma matriz chamada sentLen.Unlike the call to the translate endpoint, breaksentence only returns the character counts for the source text in an array called sentLen.

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

Pesquisa em dicionário (traduções alternativas)Dictionary lookup (alternate translations)

Com o ponto de extremidade, você pode obter traduções alternativas para uma palavra ou frase.With the endpoint, you can get alternate translations for a word or phrase. Por exemplo, ao traduzir a palavra "shark" de en para es, esse ponto de extremidade retorna "tiburón" e "escualo".For example, when translating the word "shark" from en to es, this endpoint returns both "tiburón" and "escualo".

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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 = "shark";
        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", subscriptionKey);
            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ê deverá ver a resposta a seguir.After a successful call, you should see the following response. Vamos detalhar isso, pois o JSON é mais complexo do que alguns dos outros exemplos deste artigo.Let's break this down since the JSON is more complex than some of the other examples in this article. A matriz translations inclui uma lista de traduções.The translations array includes a list of translations. 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).Each object in this array includes a confidence score (confidence), the text optimized for end-user display (displayTarget), the normalized text (normalizedText), the part of speech (posTag), and information about previous translation (backTranslations). Para obter mais informações sobre a resposta, confira Pesquisa em DicionárioFor more information about the response, see Dictionary Lookup

[
    {
        "displaySource": "shark",
        "normalizedSource": "shark",
        "translations": [
            {
                "backTranslations": [
                    {
                        "displayText": "shark",
                        "frequencyCount": 45,
                        "normalizedText": "shark",
                        "numExamples": 0
                    }
                ],
                "confidence": 0.8182,
                "displayTarget": "tiburón",
                "normalizedTarget": "tiburón",
                "posTag": "OTHER",
                "prefixWord": ""
            },
            {
                "backTranslations": [
                    {
                        "displayText": "shark",
                        "frequencyCount": 10,
                        "normalizedText": "shark",
                        "numExamples": 1
                    }
                ],
                "confidence": 0.1818,
                "displayTarget": "escualo",
                "normalizedTarget": "escualo",
                "posTag": "NOUN",
                "prefixWord": ""
            }
        ]
    }
]

Exemplos de dicionário (traduções no contexto)Dictionary examples (translations in context)

Depois de executar uma pesquisa em dicionário, você pode passar o texto de origem e a tradução para o ponto de extremidade dictionary/examples para obter uma lista de exemplos que mostram os dois termos no contexto de uma frase ou oração.After you've performed a dictionary lookup, you can pass the source text and translation to the dictionary/examples endpoint to get a list of examples that show both terms in the context of a sentence or phrase. Desenvolvendo o exemplo anterior, você usará o normalizedText e normalizedTarget da resposta da pesquisa em dicionário como text e translation, respectivamente.Building on the previous example, you'll use the normalizedText and normalizedTarget from the dictionary lookup response as text and translation respectively. Os parâmetros do idioma de origem (from) e do destino de saída (to) são necessários.The source language (from) and output target (to) parameters are required.

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json; // Install Newtonsoft.Json with NuGet

class Program
{
    private static readonly string subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    private static readonly string endpoint = "https://api.cognitive.microsofttranslator.com/";

    // Add your location, also known as region. The default is global.
    // This is required if using a Cognitive Services resource.
    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 = "Shark",  Translation = "tiburón" } } ;
        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", subscriptionKey);
            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ê deverá ver a resposta a seguir.After a successful call, you should see the following response. Para obter mais informações sobre a resposta, confira Pesquisa em DicionárioFor more information about the response, see Dictionary Lookup

[
    {
        "examples": [
            {
                "sourcePrefix": "More than a match for any ",
                "sourceSuffix": ".",
                "sourceTerm": "shark",
                "targetPrefix": "Más que un fósforo para cualquier ",
                "targetSuffix": ".",
                "targetTerm": "tiburón"
            },
            {
                "sourcePrefix": "Same with the mega ",
                "sourceSuffix": ", of course.",
                "sourceTerm": "shark",
                "targetPrefix": "Y con el mega ",
                "targetSuffix": ", por supuesto.",
                "targetTerm": "tiburón"
            },
            {
                "sourcePrefix": "A ",
                "sourceSuffix": " ate it.",
                "sourceTerm": "shark",
                "targetPrefix": "Te la ha comido un ",
                "targetSuffix": ".",
                "targetTerm": "tiburón"
            }
        ],
        "normalizedSource": "shark",
        "normalizedTarget": "tiburón"
    }
]

Solução de problemasTroubleshooting

Usuários do JavaJava users

Caso você encontre problemas de conexão, talvez seu certificado SSL tenha expirado.If you're encountering connection issues, it may be that your SSL certificate has expired. Para resolver esse problema, instale o DigiCertGlobalRootG2.crt em seu armazenamento privado.To resolve this issue, install the DigiCertGlobalRootG2.crt to your private store.

Próximas etapasNext steps

Confira tambémSee also