Avinash Gupta Ответов: 2

Как я могу пропустить набор строк для перевода при использовании Google translator api в C#?


Как я могу пропустить набор строк для перевода при использовании google translator api в c#??
Когда строки переводятся, я хочу, чтобы некоторые строки не переводились.
Есть ли какой-нибудь способ найти решение?

Что я уже пробовал:

Обычный api перевода. Я кодированный в C# использовать нормальное API, чтобы перевести набор строк для перевода.

Именно это я и пытался сделать.

using System;
using System.Net;
 
public class Test
{
	public static void Main()
	{
	string result=TranslateText("hello","en|ar");
	Console.WriteLine(result);
	}
	public static string TranslateText(
 
 
    string input,
 
 
    string languagePair)
 
 
{
 
 
 
 
    string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair);
 
 
    WebClient webClient = new WebClient();
 
 
    webClient.Encoding = System.Text.Encoding.UTF8;
 
 
 
 
    string result = webClient.DownloadString(url);
 
 
    result = result.Substring(result.IndexOf("id=result_box") + 22, result.IndexOf("id=result_box") + 500);
 
 
    result = result.Substring(0, result.IndexOf("</div"));
 
 
 
 
    return result;
 
 
}
}

Richard MacCutchan

Очевидный ответ-удалить эти строки, прежде чем передавать их переводчику.

Avinash Gupta

Если это моя струна ,то привет, Сурадж. Я просто хочу перевести строку "Привет", а не Сурадж

CPallini

Как уже сказал вам Ричард, передайте только тот текст, который нуждается в переводе (и отметьте непереведенную строку в исходном тексте, чтобы перестроить окончательный вывод).

2 Ответов

Рейтинг:
11

OriginalGriff

Вы пытаетесь избежать перевода имен: это не тот процесс, который можно легко автоматизировать, если у вас нет списка имен, которые следует учитывать. Все, что вы передадите в Google, будет переведено, поэтому, если имена совпадают со словами, они будут изменены. Например, английское предложение "Rosemary is good." будет переведено на испанский язык как "El romero es bueno" - буквально говоря об ароматической траве.
Но... Переводчик Google-это очень умно: "Розмарин-это хорошая девочка" определяется как название: "розмарин Эс УНА Буэна-Чика".

Это очень сложная вещь: она требует семантического анализа, а также перевода, и нет никакого реального способа просто добавить это в ваше приложение. Лучшее, что мы можем предложить,-это идентифицировать имена, удалить их из строк (или заменить их непереведенными маркерами, поскольку они могут быть не в одном и том же положении в переведенных Сообщениях) и затем повторно установить их.
Но... это вполне может изменить качество перевода; как я уже сказал, Google Translate довольно умен ... но это еще не человеческий переводчик.

Если это не сработает, вам нужно использовать реального человека-переводчика, который очень хорошо знаком с исходным и целевым языками.