Szybki Start: Rozpoczynanie pracy z usługą translatorQuickstart: Get started with Translator

W tym przewodniku szybki start nauczysz się używać usługi translatora za pośrednictwem protokołu REST.In this quickstart, you learn to use the Translator service via REST. Zaczynasz od podstawowych przykładów i przenosisz się na niektóre podstawowe opcje konfiguracji, które są często używane podczas opracowywania, w tym:You start with basic examples and move onto some core configuration options that are commonly used during development, including:

Wymagania wstępnePrerequisites

  • Subskrypcja platformy Azure — Utwórz ją bezpłatnieAzure subscription - Create one for free
  • Gdy masz subskrypcję platformy Azure, Utwórz zasób usługi Translator w Azure Portal, aby uzyskać klucz i punkt końcowy.Once you have an Azure subscription, create a Translator resource in the Azure portal to get your key and endpoint. Po wdrożeniu programu wybierz pozycję Przejdź do zasobu.After it deploys, select Go to resource.
    • Będziesz potrzebować klucza i punktu końcowego z zasobu, aby połączyć aplikację z usługą translatora.You'll need the key and endpoint from the resource to connect your application to the Translator service. Klucz i punkt końcowy zostaną wklejone do poniższego kodu w dalszej części przewodnika Szybki Start.You'll paste your key and endpoint into the code below later in the quickstart.
    • Możesz użyć warstwy cenowej bezpłatna (F0) w celu wypróbowania usługi i później przeprowadzić uaktualnienie do warstwy płatnej dla środowiska produkcyjnego.You can use the free pricing tier (F0) to try the service, and upgrade later to a paid tier for production.

Konfiguracja platformyPlatform setup

  • Utwórz nowy projekt: dotnet new console -o your_project_nameCreate a new project: dotnet new console -o your_project_name
  • Zamień Program.cs na kod w języku C# przedstawiony poniżej.Replace Program.cs with the C# code shown below.
  • Ustaw klucz subskrypcji i wartości punktu końcowego w Program.cs.Set the subscription key and endpoint values in Program.cs.
  • Dodaj Newtonsoft.Jsprzy użyciu interfejsu wiersza polecenia platformy .NET.Add Newtonsoft.Json using .NET CLI.
  • Uruchom program z katalogu projektu: dotnet runRun the program from the project directory: dotnet run

NagłówkiHeaders

Podczas wywoływania usługi translatora za pośrednictwem protokołu REST należy upewnić się, że do każdego żądania są dołączone następujące nagłówki.When calling the Translator service via REST, you'll need to make sure the following headers are included with each request. Nie martw się, będziemy zawierać nagłówki w przykładowym kodzie w poniższych sekcjach.Don't worry, we'll include the headers in the sample code in the following sections.

NagłówkiHeaders OpisDescription
Nagłówki uwierzytelnianiaAuthentication header(s) Wymagany nagłówek żądania.Required request header.
Ocp-Apim-Subscription-Key

Wymagany nagłówek żądania w przypadku korzystania z zasobu Cognitive Services. Opcjonalne w przypadku używania zasobu usługi Translator.Required request header if using a Cognitive Services Resource. Optional if using a Translator Resource..
Ocp-Apim-Subscription-Region

Zobacz dostępne opcje uwierzytelniania.See available options for authentication.
Content-TypeContent-Type Wymagany nagłówek żądania.Required request header.
Określa typ zawartości ładunku.Specifies the content type of the payload.
Zaakceptowana wartość to application/json; charset=UTF-8 .Accepted value is application/json; charset=UTF-8.
Długość zawartościContent-Length Wymagany nagłówek żądania.Required request header.
Długość treści żądania.The length of the request body.
X-ClientTraceIdX-ClientTraceId Opcjonalne.Optional.
Wygenerowany przez klienta identyfikator GUID służący do unikatowej identyfikacji żądania.A client-generated GUID to uniquely identify the request. Możesz pominąć ten nagłówek, jeśli dołączysz identyfikator śledzenia w ciągu zapytania przy użyciu parametru zapytania o nazwie ClientTraceId .You can omit this header if you include the trace ID in the query string using a query parameter named ClientTraceId.

Keys and endpoints (Klucze i punkty końcowe)Keys and endpoints

Przykłady na tej stronie używają zakodowanych kluczy i punktów końcowych dla uproszczenia.The samples on this page use hard-coded keys and endpoints for simplicity. Pamiętaj, aby usunąć klucz z kodu, gdy skończysz, i nigdy nie Publikuj go publicznie.Remember to remove the key from your code when you're done, and never post it publicly. W przypadku produkcji należy rozważyć użycie bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu.For production, consider using a secure way of storing and accessing your credentials. Aby uzyskać więcej informacji, zobacz artykuł dotyczący zabezpieczeń Cognitive Services.See the Cognitive Services security article for more information.

Tłumaczenie tekstuTranslate text

Podstawową operacją usługi translatora jest tłumaczenie tekstu.The core operation of the Translator service is to translate text. W tej sekcji utworzysz żądanie, które przyjmuje pojedyncze źródło ( from ) i oferuje dwa dane wyjściowe ( to ).In this section, you'll build a request that takes a single source (from) and provides two outputs (to). Następnie Przejrzyjmy niektóre parametry, których można użyć do dostosowania żądania i odpowiedzi.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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź:After a successful call, you should see the following response:

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

Wykrywanie językaDetect language

Jeśli wiesz, że będziesz potrzebować tłumaczenia, ale nie znasz języka tekstu, który zostanie wysłany do usługi translator, możesz użyć operacji wykrywania języka.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. Istnieje więcej niż jeden sposób identyfikowania źródłowego języka tekstu.There's more than one way to identify the source text language. W tej sekcji dowiesz się, jak używać wykrywania języka za pomocą translate punktu końcowego i detect punktu końcowego.In this section, you'll learn how to use language detection using the translate endpoint, and the detect endpoint.

Wykrywanie języka źródłowego podczas tłumaczeniaDetect source language during translation

Jeśli parametr nie zostanie uwzględniony from w żądaniu tłumaczenia, usługa translator podejmie próbę wykrycia języka tekstu źródłowego.If you don't include the from parameter in your translation request, the Translator service will attempt to detect the source text's language. W odpowiedzi uzyskasz wykryty język ( language ) i wynik pewności ( score ).In the response, you'll get the detected language (language) and a confidence score (score). Im bliżej score to 1.0 , oznacza to, że wykrycie ma większe zaufanie.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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź: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"
            }
        ]
    }
]

Wykrywanie języka źródłowego bez tłumaczeniaDetect source language without translation

Można użyć usługi Translator do wykrywania języka tekstu źródłowego bez przeprowadzenia tłumaczenia.It's possible to use the Translator service to detect the language of source text without performing a translation. W tym celu należy użyć /detect punktu końcowego.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);
        }
    }
}

W przypadku korzystania z /detect punktu końcowego odpowiedź będzie zawierała alternatywne wykrycia i będzie wiadomo, czy dla wszystkich wykrytych języków są obsługiwane tłumaczenia i przekształcenie.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. Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź: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
    }
]

Transliteracja tekstuTransliterate text

Transplikowanie to proces konwersji wyrazu lub frazy ze skryptu (alfabetu) jednego języka na inny w oparciu o podobieństwo fonetyczne.Transliteration is the process of converting a word or phrase from the script (alphabet) of one language to another based on phonetic similarity. Na przykład można użyć przekształcenia, aby przekonwertować "สวัสดี" ( thai ) na "sawatdi" ( latn ).For example, you could use transliteration to convert "สวัสดี" (thai) to "sawatdi" (latn). Istnieje więcej niż jeden sposób przeprowadzenia przepełnienia.There's more than one way to perform transliteration. W tej sekcji dowiesz się, jak używać wykrywania języka za pomocą translate punktu końcowego i transliterate punktu końcowego.In this section, you'll learn how to use language detection using the translate endpoint, and the transliterate endpoint.

Transliteracja podczas tłumaczeniaTransliterate during translation

W przypadku tłumaczenia do języka korzystającego z innego alfabetu (lub fonemów) niż źródło, może być konieczne przeznaczenie.If you're translating into a language that uses a different alphabet (or phonemes) than your source, you might need a transliteration. W tym przykładzie Przetłumaczę "Hello" z języka angielskiego na tajlandzki.In this example, we translate "Hello" from English to Thai. Oprócz uzyskiwania tłumaczenia w języku tajlandzkim, uzyskasz tłumaczenie przetłumaczonej frazy przy użyciu alfabetu łacińskiego.In addition to getting the translation in Thai, you'll get a transliteration of the translated phrase using the Latin alphabet.

Aby uzyskać translitrę z translate punktu końcowego, użyj toScript parametru.To get a transliteration from the translate endpoint, use the toScript parameter.

Uwaga

Aby zapoznać się z pełną listą dostępnych języków i opcji w obsłudze, zobacz temat Obsługa języków.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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź.After a successful call, you should see the following response. Należy pamiętać, że odpowiedź z translate punktu końcowego obejmuje wykryty język źródłowy z wynikiem pewności, tłumaczenie przy użyciu alfabetu języka wyjściowego oraz przy użyciu alfabetu łacińskiego.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"
                }
            }
        ]
    }
]

Transliteracja bez tłumaczeniaTransliterate without translation

Możesz również użyć transliterate punktu końcowego, aby uzyskać translitrę.You can also use the transliterate endpoint to get a transliteration. W przypadku korzystania z punktu końcowego, należy podać język źródłowy ( language ), skrypt źródłowy/alfabet ( fromScript ) i wyjściowy skrypt/alfabet ( toScript ) jako parametry.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. W tym przykładzie będziemy korzystać z สวัสดี.In this example, we're going to get the transliteration for สวัสดี.

Uwaga

Aby zapoznać się z pełną listą dostępnych języków i opcji w obsłudze, zobacz temat Obsługa języków.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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź.After a successful call, you should see the following response. W przeciwieństwie do translate punktu końcowego, transliterate zwraca tylko script i wynik text .Unlike the call to the translate endpoint, transliterate only returns the script and the output text.

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

Pobierz długość zdaniaGet sentence length

Za pomocą usługi translator można pobrać liczbę znaków dla zdania lub serii zdań.With the Translator service, you can get the character count for a sentence or series of sentences. Odpowiedź jest zwracana jako tablica, a liczba znaków dla każdego zdania wykryto.The response is returned as an array, with character counts for each sentence detected. Długości zdań można uzyskać za pomocą translate breaksentence punktów końcowych i.You can get sentence lengths with the translate and breaksentence endpoints.

Uzyskaj długość zdania podczas tłumaczeniaGet sentence length during translation

Możesz uzyskać liczbę znaków dla tekstu źródłowego i danych wyjściowych tłumaczenia przy użyciu translate punktu końcowego.You can get character counts for both source text and translation output using the translate endpoint. Aby zwrócić długość zdania ( srcSenLen i transSenLen ), należy ustawić includeSentenceLength parametr na 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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź.After a successful call, you should see the following response. Oprócz wykrytego języka źródłowego i tłumaczenia uzyskasz liczby znaków dla każdego wykrytego zdania dla elementu Source ( srcSentLen ) i Translation ( 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"
            }
        ]
    }
]

Uzyskaj długość zdania bez tłumaczeniaGet sentence length without translation

Usługa translator umożliwia również żądanie długości zdania bez tłumaczenia przy użyciu breaksentence punktu końcowego.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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź.After a successful call, you should see the following response. W przeciwieństwie do translate punktu końcowego, breaksentence zwraca tylko liczby znaków dla tekstu źródłowego w tablicy o nazwie 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
        ]
    }
]

Wyszukiwanie słownika (alternatywne tłumaczenia)Dictionary lookup (alternate translations)

Za pomocą punktu końcowego można uzyskać alternatywne tłumaczenia wyrazu lub frazy.With the endpoint, you can get alternate translations for a word or phrase. Na przykład podczas tłumaczenia słowa "rekin" z en do es , ten punkt końcowy zwraca zarówno wartość "Tiburón", jak i "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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź.After a successful call, you should see the following response. Przerwijmy to w ten sposób, ponieważ kod JSON jest bardziej skomplikowany niż niektóre inne przykłady w tym artykule.Let's break this down since the JSON is more complex than some of the other examples in this article. translationsTablica zawiera listę tłumaczeń.The translations array includes a list of translations. Każdy obiekt w tej tablicy zawiera wynik pewności ( confidence ), tekst zoptymalizowany pod kątem wyświetlania przez użytkownika końcowego ( displayTarget ), znormalizowany tekst ( normalizedText ), część mowy ( posTag ) i informacje na temat poprzedniego tłumaczenia ( 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). Aby uzyskać więcej informacji na temat odpowiedzi, zobacz Wyszukiwanie słownikówFor 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": ""
            }
        ]
    }
]

Przykłady słownika (tłumaczenia w kontekście)Dictionary examples (translations in context)

Po wykonaniu wyszukiwania słownika można przekazać tekst źródłowy i tłumaczenie do dictionary/examples punktu końcowego, aby uzyskać listę przykładów pokazujących oba warunki w kontekście zdania lub frazy.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. Kompilowanie w poprzednim przykładzie spowoduje użycie normalizedText i normalizedTarget z odpowiedzi wyszukiwania słownika zgodnie z oczekiwaniami text translation .Building on the previous example, you'll use the normalizedText and normalizedTarget from the dictionary lookup response as text and translation respectively. fromWymagane są parametry języka źródłowego () i wyjściowego elementu docelowego ( to ).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);
        }
    }
}

Po pomyślnym wywołaniu powinna zostać wyświetlona następująca odpowiedź.After a successful call, you should see the following response. Aby uzyskać więcej informacji na temat odpowiedzi, zobacz Wyszukiwanie słownikówFor 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"
    }
]

Rozwiązywanie problemówTroubleshooting

Użytkownicy języka JavaJava users

Jeśli występują problemy z połączeniem, być może certyfikat SSL wygasł.If you're encountering connection issues, it may be that your SSL certificate has expired. Aby rozwiązać ten problem, zainstaluj DigiCertGlobalRootG2. CRT do prywatnego magazynu.To resolve this issue, install the DigiCertGlobalRootG2.crt to your private store.

Następne krokiNext steps

Zobacz teżSee also