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 hizmet 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 seçeneğini 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.

Başlıklar

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.

Başlık Değer Koşul
Ocp-Apim-Subscription-Key Azure portalından Translator hizmet anahtarınız.
  • Gerekli
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 bir Çeviri Kaynağı kullanıldığında isteğe bağlıdır
İçerik Türü Yükün içerik türü. Kabul edilen değer application/json veya charset=UTF-8'dir.
  • Gerekli
İç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.

    Tavsiye

    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. Doğru paket yöneticisi penceresinden yükle'yi seçin ve paketi projenize ekleyin.

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

Uygulamanızı oluşturun

Uyarı

  • .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 Main yönteminin gövdesini yazmanız gerekir. Üst düzey ifadeleri, genel using yönergelerini veya örtük using yönergelerini eklemenize gerek yoktur.
  • Daha fazla bilgi için, bakınızYeni C# şablonları üst düzey deyimler oluşturur.
  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 başlıklarındaki x-metered-usage alanında, her istek için tüketimi (ücretlendirilen karakter sayısı) kontrol edebilirsiniz.

Dili algılama

Ç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, translate ve detect uç noktalarını kullanarak dil algılamayı öğ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. score ile 1.0 arasındaki yakınlık arttıkça, algılamanın doğru olduğuna dair güven de artar.

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 /detect uç noktasını kullanırsınız.

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 hem çeviri hem de transliterasyonun 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 harf çevirisiyle yazma

Transliterasyon, bir sözcüğü veya ifadeyi fonetik benzerlik temelinde bir dilin alfabesinden 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, translate ve transliterate uç noktalarını kullanarak dil algılamayı nasıl yapacağınızı öğreneceksiniz.

Çeviri sırasında transliterasyon yapın

Kaynağınızdan farklı bir alfabe (veya fonem) kullanan bir dile çeviri yapıyorsanız, bir transkripsiyona ihtiyacınız olabilir. 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 transliterasyon almak için toScript parametresini translate kullanın.

Uyarı

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ç nokta translate yanıtının, güvenilirlik puanıyla birlikte algılanan kaynak dilini, çıkış dilinin alfabesiyle yapılan çeviriyi ve Latin alfabesiyle yapılan transliterasyonu içerdiğini unutmayın.

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

Çeviri olmadan transliterasyon yapın

Ayrıca, bir transliterasyon almak için transliterate uç noktasını da kullanabilirsiniz. Ç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, สวัสดีเพื่อน! için transliterasyonunu alacağız. Bugün ne yaptın?

Uyarı

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. translate uç noktasına yapılan çağrıdan farklı olarak, transliterate yalnızca text ve çıktı script döndürür.

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

      "script":"latn"
   }
]

Cümle uzunluğunu al

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

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

Kaynak metin ve çeviri çıktısı için karakter sayısını translate endpointini kullanarak 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 breaksentence uç noktasını kullanarak, cümle uzunluğunu çeviri yapmadan talep etmenizi 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ü en dilinden es diline çevirirken, bu uç nokta "luz solar," "rayos solares," "soleamiento," "sol," ve "insolación" değerlerini 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 örneğe dayanarak, sözlük arama yanıtında normalizedText ve normalizedTarget'yi, sırasıyla text ve translation olarak kullanırsınız. 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 başlıktır.
401 Yetkisiz İstek yetkilendirilmemiş. Anahtarınızın veya belirtecinizin geçerli ve doğru bölgede olduğundan emin olun. Ayrıcabkz. 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