Ik moet wat tekst vertalen met de vertaalservice van Google. Alle code die ik heb gevonden werkt niet. Ik denk omdat ze hun service hebben veranderd. Als iemand werkende code heeft, zou ik heel blij zijn.
Antwoord 1, autoriteit 100%
Kijk of dit voor u werkt
google-language-api-for-dotnet
http://code.google.com/p/google -taal-api-voor-dotnet/
Google Translator
http://www.codeproject.com/KB/IP/GoogleTranslator.aspx
Vertaal uw tekst met Google API’s
http://blogs.msdn.com/shahpiyush/ archief/2007/06/09/3188246.aspx
Google Ajax Language API aanroepen voor vertaling en taaldetectie vanuit C#
Vertaalwebservice in C#
http://www.codeproject.com/KB/cpp/translation.aspx
De vertaal-API van Google van .NET gebruiken
Antwoord 2, autoriteit 35%
De reden dat het eerste codevoorbeeld niet werkt, is omdat de lay-out van de pagina is gewijzigd. Volgens de waarschuwing op die pagina: “De vertaalde string wordt bijna onderaan opgehaald door de RegEx. Dit kan natuurlijk veranderen en u moet het up-to-date houden.”
Ik denk dat dit voorlopig zou moeten werken, in ieder geval totdat ze de pagina weer veranderen.
public 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("<span title=\"") + "<span title=\"".Length);
result = result.Substring(result.IndexOf(">") + 1);
result = result.Substring(0, result.IndexOf("</span>"));
return result.Trim();
}
Antwoord 3, autoriteit 29%
Ik ontdekte dat deze code voor mij werkt:
public String Translate(String word)
{
var toLanguage = "en";//English
var fromLanguage = "de";//Deutsch
var url = $"https://translate.googleapis.com/translate_a/single?client=gtx&sl={fromLanguage}&tl={toLanguage}&dt=t&q={HttpUtility.UrlEncode(word)}";
var webClient = new WebClient
{
Encoding = System.Text.Encoding.UTF8
};
var result = webClient.DownloadString(url);
try
{
result = result.Substring(4, result.IndexOf("\"", 4, StringComparison.Ordinal) - 4);
return result;
}
catch
{
return "Error";
}
}
Antwoord 4, autoriteit 6%
Google Translate Kit, een open source bibliotheek http://ggltranslate.codeplex.com/
Translator gt = new Translator();
/*using cache*/
DemoWriter dw = new DemoWriter();
gt.KeyGen = new SimpleKeyGen();
gt.CacheManager = new SimleCacheManager();
gt.Writer = dw;
Translator.TranslatedPost post = gt.GetTranslatedPost("Hello world", LanguageConst.ENGLISH, LanguageConst.CHINESE);
Translator.TranslatedPost post2 = gt.GetTranslatedPost("I'm Jeff", LanguageConst.ENGLISH, LanguageConst.CHINESE);
this.result.InnerHtml = "<p>" + post.text +post2.text+ "</p>";
dw.WriteToFile();
Antwoord 5, autoriteit 3%
Toen ik bovenstaande code gebruikte. Het laat me vertaalde tekst zien als een vraagteken zoals (???????). Daarna converteer ik van WebClient naar HttpClient en kreeg ik een nauwkeurig resultaat. Dus je kunt code zoals deze gebruiken.
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);
HttpClient httpClient = new HttpClient();
string result = httpClient.GetStringAsync(url).Result;
result = result.Substring(result.IndexOf("<span title=\"") + "<span title=\"".Length);
result = result.Substring(result.IndexOf(">") + 1);
result = result.Substring(0, result.IndexOf("</span>"));
return result.Trim();
}
Dan roep je een functie aan zoals.Je plaatst de eerste twee letters van een talenpaar.
Van Engels(en) naar Urdu(ur).
TranslateText(line, "en|ur")
Antwoord 6, autoriteit 2%
Hier is mijn iets andere code, waarmee ook het coderingsprobleem is opgelost:
public 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.Default;
string result = webClient.DownloadString(url);
result = result.Substring(result.IndexOf("TRANSLATED_TEXT"));
result = result.Substring(result.IndexOf("'")+1);
result = result.Substring(0, result.IndexOf("'"));
return result;
}
Voorbeeld van de functie-aanroep:
var input_language = "en";
var output_language = "es";
var result = TranslateText("Hello", input_language + "|" + output_language);
Het resultaat is “Hola”
Antwoord 7
Google gaat de vertaal-API tegen eind 2011 afsluiten, dus u zou naar de alternatieven moeten kijken!
Antwoord 8
Als je je bronnenwilt vertalen, download dan MAT (Multilingual App Toolkit) voor Visual Studio. https://marketplace.visualstudio.com/items?itemName=MultilingualAppToolkit.MultilingualAppToolkit- 18308
Dit is de manier om uw projecten in Visual Studio te vertalen.
https://blogs.msdn.microsoft.com/matdev/