• TranslationService
  • 2. Asosiy ma`lumotlar bilan tanishish Kengaytirilgan funksiyalar




    Download 27.87 Kb.
    bet5/7
    Sana24.05.2023
    Hajmi27.87 Kb.
    #64200
    1   2   3   4   5   6   7
    Bog'liq
    Masudbek
    TJKM 8-LAB
    string text = Console.ReadLine();


    Console.Write("Enter the source language (e.g., en): ");
    string sourceLanguage = Console.ReadLine();


    Console.Write("Enter the target language (e.g., es): ");
    string targetLanguage = Console.ReadLine();


    try
    {
    // Translate text
    string translatedText = await translationService.TranslateText(text, sourceLanguage, targetLanguage);
    Console.WriteLine($"Translated text: {translatedText}");


    // Detect language
    string detectedLanguage = await translationService.DetectLanguage(text);
    Console.WriteLine($"Detected language: {detectedLanguage}");
    }
    catch (Exception ex)
    {
    Console.WriteLine($"An error occurred: {ex.Message}");
    }
    }
    }
    Bu kod bizda yaroqli Google Translate API kaliti mavjudligini nazarda tutdik. apiKey o'zgaruvchisidagi "YOUR_API_KEY" ni haqiqiy API kalitingiz bilan almashtiring.

    Ushbu kod parchasi Google Translate API yordamida asosiy tarjima funksiyasi va tilni aniqlashni namoyish etadi. 3-rejada aytib o'tilganidek, to'plamli tarjima, transliteratsiya va muqobil tarjimalar kabi qo'shimcha funktsiyalarni o'z ichiga olish uchun uni yanada kengaytirishingiz mumkin.


    Ommaviy tarjima, transliteratsiya va muqobil tarjimalarning ilg‘or xususiyatlarini amalga oshirish uchun TranslationService sinfini quyidagicha o‘zgartirishingiz mumkin:
    public class TranslationService
    {
    // ...existing code...


    public async Task TranslateTextBatch(string[] texts, string sourceLanguage, string targetLanguage)
    {
    string apiUrl = $"https://translation.googleapis.com/language/translate/v2/batchTranslate?key={_apiKey}";


    var requests = new List();
    foreach (var text in texts)
    {
    requests.Add(new TranslationRequest { Q = text, Source = sourceLanguage, Target = targetLanguage });
    }


    var content = new StringContent(JsonConvert.SerializeObject(requests), Encoding.UTF8, "application/json");


    var response = await _httpClient.PostAsync(apiUrl, content);
    var responseContent = await response.Content.ReadAsStringAsync();


    if (response.IsSuccessStatusCode)
    {
    var translationResults = JsonConvert.DeserializeObject(responseContent);
    return translationResults.Data.Translations.Select(t => t.TranslatedText).ToArray();
    }
    else
    {
    throw new Exception("Batch translation request failed.");
    }
    }


    public async Task TransliterateText(string text, string targetLanguage)
    {
    string apiUrl = $"https://translation.googleapis.com/language/translate/v2/transliterate?key={_apiKey}";


    var content = new FormUrlEncodedContent(new[]
    {
    new KeyValuePair("q", text),
    new KeyValuePair("target", targetLanguage)
    });


    var response = await _httpClient.PostAsync(apiUrl, content);
    var responseContent = await response.Content.ReadAsStringAsync();


    if (response.IsSuccessStatusCode)
    {
    var transliterationResult = JsonConvert.DeserializeObject(responseContent);
    return transliterationResult.Data.Translations[0].TransliteratedText;
    }
    else
    {
    throw new Exception("Transliteration request failed.");
    }
    }


    public async Task GetAlternativeTranslations(string text, string sourceLanguage, string targetLanguage)
    {
    string apiUrl = $"https://translation.googleapis.com/language/translate/v2/alternativeTranslations?key={_apiKey}";


    var content = new FormUrlEncodedContent(new[]
    {
    new KeyValuePair("q", text),
    new KeyValuePair("source", sourceLanguage),
    new KeyValuePair("target", targetLanguage)
    });


    var response = await _httpClient.PostAsync(apiUrl, content);
    var responseContent = await response.Content.ReadAsStringAsync();


    if (response.IsSuccessStatusCode)
    {
    var alternativeTranslationsResult = JsonConvert.DeserializeObject(responseContent);
    return alternativeTranslationsResult.Data.Translations[0].AlternativeTranslations.Select(t => t.TranslatedText).ToArray();
    }
    else
    {
    throw new Exception("Alternative translations request failed.");
    }
    }
    }


    public class TranslationRequest
    {
    [JsonProperty("q")]
    public string Q { get; set; }


    [JsonProperty("source")]
    public string Source { get; set; }


    [JsonProperty("target")]
    public string Target { get; set; }
    }


    public class BatchTranslationResult
    {
    [JsonProperty("data")]
    public BatchTranslationData Data { get; set; }
    }


    public class BatchTranslationData
    {
    [JsonProperty("translations")]
    public BatchTranslation[] Translations { get; set; }
    }


    public class BatchTranslation
    {
    [JsonProperty("translatedText")]
    public string TranslatedText { get; set; }
    }


    public class TransliterationResult
    {
    [JsonProperty("data")]
    public TransliterationData Data { get; set; }
    }


    public class TransliterationData
    {
    [JsonProperty("translations")]
    public Transliteration[] Translations { get; set; }
    }


    public class Transliteration
    {
    [JsonProperty("transliteratedText")]
    public string TransliteratedText { get; set; }
    }


    public class AlternativeTranslationsResult
    {
    [JsonProperty("data")]
    public AlternativeTranslationsData Data { get; set; }
    }


    public class AlternativeTranslationsData
    {
    [JsonProperty("translations")]
    public AlternativeTranslation[] Translations { get; set; }
    }


    public class AlternativeTranslation
    {
    [JsonProperty("alternativeTranslations")]
    public Alternative[] AlternativeTranslations { get; set; }
    }


    public class Alternative
    {
    [JsonProperty("translatedText")]
    public string TranslatedText { get; set; }
    }
    Ushbu o'zgartirishlar bilan biz endi quyidagi usullardan foydalanishingiz mumkin:

    Download 27.87 Kb.
    1   2   3   4   5   6   7




    Download 27.87 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    2. Asosiy ma`lumotlar bilan tanishish Kengaytirilgan funksiyalar

    Download 27.87 Kb.