private void textTranslateFrom_TextChanged(object sender, EventArgs e) { string languageFrom; string languageTo; if (this.fromLanguage.SelectedIndex == 0) { languageFrom = "en"; } else if (this.fromLanguage.SelectedIndex == 1) { languageFrom = "fr"; } else if (this.fromLanguage.SelectedIndex == 2) { languageFrom = "az"; } else { return; } if (this.toLanguage.SelectedIndex == 0) { languageTo = "en"; } else if (this.toLanguage.SelectedIndex == 1) { languageTo = "fr"; } else if (this.toLanguage.SelectedIndex == 2) { languageTo = "az"; } else { return; } TranslateRequest translate = new TranslateRequest() { source = languageFrom, target = languageTo, format = "text" }; translate.q = textTranslateFrom.Text; WebClient web = new WebClient(); string url = "https://translation.googleapis.com/language/translate/v2?key=AIzaSyCqwaXLLd9JraElDHNGKFIN2zfbSAgAHms"; string answer = web.UploadString(url, JsonConvert.SerializeObject(translate)); var response = JsonConvert.DeserializeObject <TranslateResponse>(answer); textTranslateTo.Text = Encoding.GetEncoding("utf-8").GetString(Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(1251), Encoding.UTF8.GetBytes(response.data.translations[0].translatedText))); }
/// <summary> /// StartTranslate /// </summary> private void StartTranslate() { string source = txtSource.Text; txtResult.Clear(); if (!string.IsNullOrEmpty(source)) { txtResult.Text = "正在翻译..."; request = new TranslateRequest(source, cmbSource.SelectedValue.ToString(), cmbTarge.SelectedValue.ToString()); if (!isRequest) { TranslateExecute(request.Text, request.Source, request.Targe); } } }
static void Main(string[] args) { while (true) { // Сам файл "program.cs" сохраняется по умолчанию в UTF-8, // а кодировка консоли обычно chcp 1251 поэтому такая проблема. // Можно сменить кодировку консоли по умолчанию и тогда не придется в коде ничего писать, // однако на другой машине проблема опять даст о себе знать, поэтому лучше писать это. Console.OutputEncoding = Encoding.UTF8; Console.Clear(); string languageFrom = ""; string languageTo = ""; string languagePath = ""; Console.WriteLine("Приветствую тебя в программе \"Мега супер крутой и невероятный переводчик 2000\" дорогой пользователь.\n" + "1) Перевести текст\n" + "2) Прочесть тест с файла и перевести\n" + "3) Выйти\n" + "Выбор: "); int choose = int.Parse(Console.ReadLine()); if (choose == 1) { LanguageFrom(ref languageFrom); LanguageTo(ref languageTo); } else if (choose == 2) { LanguageFrom(ref languageFrom); LanguageTo(ref languageTo); while (true) { try { Console.Clear(); Console.Write("Введите путь к файлу: "); languagePath = Console.ReadLine(); break; } catch (Exception ex) { Console.WriteLine(ex); } } } else if (choose == 3) { Environment.Exit(0); } try { Console.Clear(); TranslateRequest translate = new TranslateRequest() { source = languageFrom, target = languageTo, format = "text" }; if (choose == 1) { Console.Write("Введите текст: "); translate.q = Console.ReadLine(); } else if (choose == 2) { translate.q = File.ReadAllText(languagePath); Console.WriteLine($"Ваш текст: {translate.q}"); } WebClient web = new WebClient(); string url = "https://translation.googleapis.com/language/translate/v2?key=AIzaSyCqwaXLLd9JraElDHNGKFIN2zfbSAgAHms"; //string answer = web.UploadString(url, JsonSerializer.Serialize(translate)); string answer = web.UploadString(url, JsonConvert.SerializeObject(translate)); var response = JsonConvert.DeserializeObject <TranslateResponse>(answer); //var response = JsonSerializer.Deserialize<TranslateResponse>(answer); Console.Write("Ваш перевод: "); Console.WriteLine(response.data.translations[0].translatedText); PushAndClear(); } catch (Exception ex) { Console.WriteLine(ex); PushAndClear(); } } }