Aracılığıyla paylaş


Azure AI Translator API'lerini kullanma

Bu nasıl yapılır kılavuzunda Translator hizmeti REST API'lerini kullanmayı öğreneceksiniz. Temel örneklerle başlarsınız ve geliştirme sırasında yaygın olarak kullanılan bazı temel yapılandırma seçeneklerine geçersiniz, örneğin:

Önkoşullar

  • Azure aboneliği - Ücretsiz olarak oluşturun

  • Azure AI çok hizmetli veya Translator kaynağı. Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında tek hizmetli veya çok hizmetli bir kaynak oluşturun. Dağıtıldıktan sonra Kaynağa git'i seçin.

  • Ücretsiz fiyatlandırma katmanını (F0) kullanarak hizmeti deneyebilir ve daha sonra üretim için ücretli bir katmana yükseltebilirsiniz.

  • Uygulamanızı Translator hizmetine bağlamak için kaynaktan anahtara ve uç noktaya ihtiyacınız vardır. Daha sonra anahtarınızı ve uç noktanızı kod örneklerine yapıştırırsınız. Bu değerleri Azure portal Anahtarları ve Uç Nokta sayfasında bulabilirsiniz:

    Ekran görüntüsü: Azure portal anahtarları ve uç nokta sayfası.

Önemli

İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için bkz . Azure AI hizmetleri güvenliği.

Üst Bilgiler

REST API aracılığıyla Translator hizmetini çağırmak için her isteğe aşağıdaki üst bilgilerin eklendiğinden emin olmanız gerekir. Endişelenmeyin, aşağıdaki bölümlerde üst bilgileri örnek koda ekleyeceğiz.

Üst bilgi Değer Koşul
Ocp-Apim-Subscription-Key Azure portalından Translator hizmet anahtarınız.
  • Required
Ocp-Apim-Subscription-Region Kaynağınızın oluşturulduğu bölge.
  • Azure AI çok hizmetli veya Batı ABD gibi bölgesel (coğrafi) bir kaynak kullanılırken gereklidir.
  • Tek hizmetli Translator Kaynağı kullanılırken isteğe bağlı .
İçerik Türü Yükün içerik türü. Kabul edilen değer application/json veya charset=UTF-8'dir.
  • Required
İçerik Uzunluğu İstek gövdesinin uzunluğu.
  • Optional
X-ClientTraceId İsteği benzersiz olarak tanımlamak için istemci tarafından oluşturulan GUID. ClientTraceId adlı bir sorgu parametresi kullanarak izleme kimliğini sorgu dizesine eklerseniz bu üst bilgiyi atlayabilirsiniz.
  • Optional

Uygulamanızı ayarlama

  1. Visual Studio IDE'nin geçerli sürümüne sahip olduğunuzdan emin olun.

    İpucu

    Visual Studio'yu yeni kullanıyorsanız Visual Studio Learn'e Giriş modülünü deneyin.

  2. Visual Studio'yu açın.

  3. Başlangıç sayfasında Yeni proje oluştur'u seçin.

    Ekran görüntüsü: Visual Studio başlangıç penceresi.

  4. Yeni proje oluştur sayfasında, arama kutusuna konsol yazın. Konsol Uygulaması şablonunu ve ardından İleri'yi seçin.

    Ekran görüntüsü: Visual Studio'nun yeni proje oluşturma sayfası.

  5. Yeni projenizi yapılandırın iletişim penceresinde Proje adı kutusuna girintranslator_text_app. "Çözümü ve projeyi aynı dizine yerleştir" onay kutusunu işaretsiz bırakın ve İleri'yi seçin.

    Ekran görüntüsü: Visual Studio'nun yeni projeyi yapılandır iletişim penceresi.

  6. Ek bilgiler iletişim kutusunda .NET 6.0 (Uzun süreli destek) öğesinin seçili olduğundan emin olun. "Üst düzey deyimleri kullanma" onay kutusunu işaretsiz bırakın ve Oluştur'u seçin.

    Ekran görüntüsü: Visual Studio'nun ek bilgi iletişim kutusu penceresi.

NuGet ile Newtonsoft.json paketini yükleme

  1. translator_quickstart projenize sağ tıklayın ve NuGet Paketlerini Yönet... öğesini seçin.

    NuGet paketi arama kutusunun ekran görüntüsü.

  2. Gözat sekmesini seçin ve Newtonsoft yazın.

    NuGet paketi yükleme penceresinin ekran görüntüsü.

  3. Paketi projenize eklemek için doğru paket yöneticisi penceresinden Yükle'yi seçin.

    NuGet paketi yükleme düğmesinin ekran görüntüsü.

Uygulamanızı derleme

Not

  • .NET 6'dan başlayarak, şablonu kullanan console yeni projeler önceki sürümlerden farklı yeni bir program stili oluşturur.
  • Yeni çıkış, yazmanız gereken kodu basitleştiren son C# özelliklerini kullanır.
  • Daha yeni sürümü kullandığınızda, yalnızca yönteminin gövdesini Main yazmanız gerekir. Üst düzey deyimleri, genel using yönergelerini veya örtük using yönergelerini eklemeniz gerekmez.
  • Daha fazla bilgi için bkz. Yeni C# şablonları üst düzey deyimler oluşturma.
  1. Program.cs dosyasını açın.

  2. satırı Console.WriteLine("Hello World!")da dahil olmak üzere önceden var olan kodu silin. Kod örneklerini kopyalayıp uygulamanızın Program.cs dosyasına yapıştırın. Her kod örneği için anahtar ve uç nokta değişkenlerini Azure portal Translator örneğinizdeki değerlerle güncelleştirdiğinizden emin olun.

  3. Uygulamanıza istediğiniz kod örneğini ekledikten sonra, programınızı oluşturmak ve çalıştırmak için formRecognizer_quickstart yanındaki yeşil başlangıç düğmesini seçin veya F5 tuşuna basın.

Visual Studio'da programı çalıştır düğmesinin ekran görüntüsü.

Önemli

Bu kılavuzdaki örnekler için sabit kodlanmış anahtarlar ve uç noktalar gerekir. İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için kimlik bilgilerinizi depolamak ve bunlara erişmek için güvenli bir yol kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Azure AI hizmetleri güvenliği.

Metin çevirme

Translator hizmetinin temel işlemi metni çevirmektir. Bu bölümde, tek bir kaynak () alan ve iki çıkış (fromto) sağlayan bir istek oluşturacaksınız. Ardından hem isteği hem de yanıtı ayarlamak için kullanılabilecek bazı parametreleri gözden geçiririz.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir:

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

Yanıt üst bilgilerinde her istek için tüketimi (ücretlendirilen karakter sayısı) kontrol edebilirsiniz: x-metered-usage alanı.

Dili algıla

Çeviriye ihtiyacınız varsa ancak metnin dilini bilmiyorsanız, dil algılama işlemini kullanabilirsiniz. Kaynak metin dilini tanımlamanın birden fazla yolu vardır. Bu bölümde, uç noktayı ve uç noktayı kullanarak dil algılamayı translate detect kullanmayı öğreneceksiniz.

Çeviri sırasında kaynak dili algılama

Çeviri isteğinize parametresini from eklemezseniz Translator hizmeti kaynak metnin dilini algılamaya çalışır. Yanıtta algılanan dili (language) ve güvenilirlik puanını (score) alırsınız. ile arasındaki yakınlık score 1.0, algılamanın doğru olduğuna ilişkin güvenin arttığı anlamına gelir.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir:

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

Çeviri olmadan kaynak dili algılama

Çeviri yapmadan kaynak metnin dilini algılamak için Translator hizmetini kullanmak mümkündür. Bunu yapmak için uç noktayı kullanırsınız /detect .

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

/detect Uç nokta yanıtı alternatif algılamalar içerir ve çevirinin ve çevirinin algılanan tüm diller için desteklenip desteklenmediğini gösterir. Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir:

[
   {
      "language":"de",

      "score":1.0,

      "isTranslationSupported":true,

      "isTransliterationSupported":false
   }
]

Metni başka dilde yazma

Ayrım, fonetik benzerlik temelinde bir sözcüğü veya tümceciği bir dilin betiğinden (alfabe) diğerine dönüştürme işlemidir. Örneğin, "สวัสดี" () öğesini "sawatdi" (thailatn) öğesine dönüştürmek için de transliterasyon kullanabilirsiniz. Çeviri gerçekleştirmenin birden fazla yolu vardır. Bu bölümde, uç noktayı ve uç noktayı kullanarak dil algılamayı translate transliterate kullanmayı öğreneceksiniz.

Çeviri sırasında çeviri yapın

Kaynağınızdan farklı bir alfabe (veya telefon adı) kullanan bir dile çevriliyorsanız, bir çeviri yapmanız gerekebilir. Bu örnekte, "Hello" sözcüğü İngilizceden Tay diline çevrilmiştir. Çeviriyi Tay dilinde almaya ek olarak, Latin alfabesini kullanarak çevrilmiş tümceciğin çevirisini alırsınız.

Uç noktadan bir çeviri translate almak için parametresini toScript kullanın.

Not

Kullanılabilir dillerin ve çeviri seçeneklerinin tam listesi için bkz . dil desteği.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir. Uç noktadan gelen translate yanıtın güvenilirlik puanıyla algılanan kaynak dili, çıkış dilinin alfabesini kullanan bir çeviriyi ve Latin alfabesini kullanan bir çeviriyi içerdiğini unutmayın.

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

Çeviri olmadan çeviri yapın

Ayrıca, bir çeviri almak için uç noktayı da kullanabilirsiniz transliterate . Çeviri uç noktasını kullanırken kaynak dili (language), kaynak betiği/alfabeyi (fromScript ) ve çıkış betiğini/alfabesini (toScript) parametre olarak sağlamanız gerekir. Bu örnekte สวัสดีเพื่อน! วันนี้คุณทำอะไร.

Not

Kullanılabilir dillerin ve çeviri seçeneklerinin tam listesi için bkz . dil desteği.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir. Uç noktaya yapılan çağrıdan translate farklı olarak yalnızca transliterate ve çıkışını text scriptdöndürür.

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

      "script":"latn"
   }
]

Cümle uzunluğunu alma

Translator hizmetiyle, bir cümlenin veya bir dizi cümlenin karakter sayısını alabilirsiniz. Yanıt, her cümle için karakter sayıları algılanan bir dizi olarak döndürülür. ve breaksentence uç noktalarıyla translate cümle uzunluklarını alabilirsiniz.

Çeviri sırasında cümle uzunluğunu alma

Uç noktayı kullanarak translate hem kaynak metin hem de çeviri çıkışı için karakter sayıları alabilirsiniz. Cümle uzunluğunu (srcSenLen ve transSenLen) döndürmek için parametresini includeSentenceLength olarak Trueayarlamanız gerekir.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir. Algılanan kaynak dil ve çeviriye ek olarak, hem kaynak () hem de çeviri (srcSentLentransSentLen) için algılanan her cümle için karakter sayıları alırsınız.

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

Çeviri olmadan cümle uzunluğunu alma

Translator hizmeti ayrıca uç noktayı kullanarak breaksentence çeviri yapmadan cümle uzunluğu istemenizi sağlar.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir. Uç noktaya yapılan çağrıdan translate farklı olarak, breaksentence adlı sentLenbir dizideki kaynak metin için yalnızca karakter sayılarını döndürür.

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

Sözlük araması (alternatif çeviriler)

Uç nokta ile bir sözcük veya tümcecik için alternatif çeviriler alabilirsiniz. Örneğin, "güneş ışığı" sözcüğünü 'den en esöğesine çevirirken bu uç nokta "," "rayos solaresluz solar," ve "soleamiento," "sol, " ve "insolación" sözcüklerini döndürür.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir. JSON bu makaledeki diğer örneklerden daha karmaşık olduğundan yanıtı daha yakından inceleyelim. Dizi, translations çevirilerin listesini içerir. Bu dizideki her nesne bir güvenilirlik puanı (confidence ), son kullanıcı görüntüleme (displayTarget için en iyi duruma getirilmiş metin), normalleştirilmiş metin (normalizedText ), konuşmanın bölümü ()posTag ve önceki çeviri (backTranslations) hakkındaki bilgileri içerir. Yanıt hakkında daha fazla bilgi için bkz . Sözlük Arama

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

Sözlük örnekleri (bağlamda çeviriler)

Sözlük araması yaptıktan sonra kaynak ve çeviri metnini dictionary/examples uç noktaya geçirerek tümce veya tümcecik bağlamında her iki terimi de gösteren örneklerin listesini alın. Önceki örnekten başlayarak, sözlük arama yanıtını sırasıyla ve olarak text kullanırsınız.normalizedText normalizedTarget translation Kaynak dil (from) ve çıkış hedefi (to) parametreleri gereklidir.

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

Başarılı bir çağrıdan sonra aşağıdaki yanıtı görmeniz gerekir. Yanıt hakkında daha fazla bilgi için bkz . Sözlük Arama

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

Sorun giderme

Ortak HTTP durum kodları

HTTP durum kodu Açıklama Olası neden
200 Tamam İstek başarılı oldu.
400 Hatalı İstek Gerekli bir parametre eksik, boş veya null. Veya gerekli veya isteğe bağlı bir parametreye geçirilen değer geçersiz. Sık karşılaşılan bir sorun, çok uzun bir üst bilgidir.
Kategori 401 Yetkisiz İstek yetkilendirilmedi. Anahtarınızın veya belirtecinizin geçerli ve doğru bölgede olduğundan emin olun. Ayrıca bkz. Kimlik doğrulaması.
429 Çok Fazla İstek Var Aboneliğiniz için izin verilen istek kotasını veya oranını aştınız.
502 Hatalı Ağ Geçidi Ağ veya sunucu tarafı sorunu. Geçersiz üst bilgileri de gösterebilir.

Java kullanıcıları

Bağlantı sorunlarıyla karşılaşıyorsanız TLS/SSL sertifikanızın süresi dolmuş olabilir. Bu sorunu çözmek için DigiCertGlobalRootG2.crt dosyasını özel deponuza yükleyin.

Sonraki adımlar