免费使用google api翻译
这个项目是fork https://github.com/Grizley56/GoogleTranslateFreeApi 在原作者基础上,主要修改了以下几点:
- 1.根据国内的情况,将翻译的服务器指向了国内
- 2.将原框架支撑的.net standard1.1 修改为2.0
- 3.更正了原作者中,支持中文翻译有错误的问题,在示例中添加了一个英译中,中译英的示例
#2021-1-11 -1.解决了1.2包报错的问题,但没有大规划测试,不知道能否正常使用.
Badge | |
---|---|
Target Framework | |
Nuget | |
License |
Main features:
- Text corrections
- Language corrections
- Language auto detection
- Transcriptions (original text, translated text)
- Synonyms
- Definitions + Examples
- Extra translations
- Proxy (Useful when getting a ban for a while)
Feature | TranslateLiteAsync | TranslateAsync |
---|---|---|
Text corrections | + | + |
Language corrections | + | + |
Language auto detection | + | + |
Transcriptions | + | + |
Synonyms | - | + |
Definitions + Examples | - | + |
Extra translations | - | + |
See Also | - | + |
Translation, transcription and text/language corrections
var translator = new GoogleTranslator();
Language from = Language.Auto;
Language to = GoogleTranslator.GetLanguageByName("Japanese");
TranslationResult result = await translator.TranslateLiteAsync("Hello. How are you?", from, to);
//The result is separated by the suggestions and the '\n' symbols
string[] resultSeparated = result.FragmentedTranslation;
//You can get all text using MergedTranslation property
string resultMerged = result.MergedTranslation;
//There is also original text transcription
string transcription = result.TranslatedTextTranscription; // Kon'nichiwa! Ogenkidesuka?
Language auto detection and correction
var result2 = await translator.TranslateLiteAsync("Drones", Language.Auto, Language.Czech);
foreach(LanguageDetection languageDetection in result2.LanguageDetections)
{
Console.WriteLine(languageDetection);
}
// The output will be next. Double in brackets is confidence
// Spanish (0.61010)
// English (0.34365)
Language spanish = new Language("Spanish", "es"); // For the method, only the second parameter is important (ISO639)
result2 = await translator.TranslateLiteAsync("world", spanish, Language.Czech);
Console.WriteLine(result2.LanguageDetections.First()); // English (0.98828)
Console.WriteLine(result2.MergedTranslation) // мир
Text corrections
string misspellingsText = "The quik brown fox jumps ovver the lazy dog"
var english = new Language("English language", "en");
// you could also get language from Language static properties
// for example: Language.English or Language.Korean
// check language is valid for GoogleTranslator class
Console.WriteLine(GoogleTranslator.IsLanguageSupported(english));
var result3 = await translator.TranslateLiteAsync(misspellingsText, english, GoogleTranslator.GetLanguageByISO("ru"));
if(result3.Corrections.TextWasCorrected)
Console.WriteLine(string.Join(",", result3.Corrections.CorrectedWords); // "quick", "over"
Console.WriteLine(result3.MergedTranslation) // "Быстрая коричневая лиса прыгает через ленивую собаку"
Synonyms, extra translations, definitions and so on.
GoogleTranslator translator = new GoogleTranslator();
var result4 = await translator.TranslateAsync("книга", Language.Russian, Language.English);
if(result.ExtraTranslations != null)
Console.WriteLine(result.ExtraTranslations.ToString()); // ToString returns friendly for reading string
Example of ToString output:
Noun:
book: книга, книжка, журнал, книжечка, том, текст
volume: объем, том, громкость, книга, емкость, масса
Abbreviation:
bk: книга, назад, обратно
You can also get any part of the speech indently
foreach(ExtraTranslation item in result4.ExtraTranslations)
Console.WriteLine($"{item.Phrase}: {String.Join(", ", item.PhraseTranslations)}");
// just like item.ToString()
- Definitions
- Synonyms
- See also
Google Translate can ban IP that sends too many requests at the same time. Ban lasts about a few hours, but you can use a Proxy
var proxy = new WebProxy(uri); // You also can use GoogleTranslateFreeApi.Proxy class for this
translator.Proxy = proxy;
Released under the MIT License.
This repository сontains part of the code from the library google-translate-token