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:
|