首先:我打算编写一个 C# 应用程序,使用户能够立即将 JRPG 和视觉小说中的文本框从日语翻译成英语或任何其他语言。后面的代码将包括检测文本框的方法,主要是受到汽车牌照识别的启发,但那是遥远的 future 。到目前为止,我处于开始阶段,我使用 IronOCR 进行 OCR 并通过 URL 将日语字符串发送到谷歌翻译。但这会因显而易见的原因而导致临时禁令。我想阻止这种禁令,或者找到一种更安全的方式在我的用例中使用谷歌翻译。到目前为止的相关代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using IronOcr;
using IronOcr.Languages;
namespace OCRTranslate
{
class Program
{
static void Main(string[] args)
{
Bitmap imgsource = new Bitmap(@"C:\temp\Unbenannt.png");
var Ocr = new AdvancedOcr()
{
Language = IronOcr.Languages.Japanese.OcrLanguagePack,
};
var Resulta = Ocr.Read(@"C:\temp\Unbenannt.png");
System.IO.File.WriteAllText(@"C:\temp\Unbenanntiron.txt", TranslateGoogle());
string TranslateGoogle()
{
string html = null;
string url = string.Format(@"http://translate.google.com/translate_a/t?client=j&text={0}&h1=en&sl=ja&tl=en", Resulta);
System.Net.WebClient web = new System.Net.WebClient();
web.Headers.Add(System.Net.HttpRequestHeader.UserAgent, "Mozilla/5.0");
web.Headers.Add(System.Net.HttpRequestHeader.AcceptCharset, "UTF-8");
web.Encoding = Encoding.UTF8;
html = web.DownloadString(url);
return html;
}
}
}
}
它的工作非常完美,令我惊讶的是,图像中的日语文本被返回翻译,但即使是一次尝试也会导致暂时禁止......欢迎任何建议,甚至替代谷歌翻译。
编辑:在我的 Firefox 中使用该 URL 显然不会导致禁止。从技术上讲,我可以通过浏览器从 C# 应用程序打开 URL。浏览器使用 URL 输出文本文件...那么是否可以通过 C# 捕获 texfile?
另一个想法:我可以将 URL 发送到已打开的 Firefox 窗口吗?
最佳答案
公开的 Google 翻译网站专为运算符(operator)通过浏览器使用而设计。它不是为开发人员设计的 API。
使用Google Translate API相反。
这使您可以选择适合您的要求的定价/配额组合。另外还有various nuget Packages可轻松将 C# 应用程序连接到 Google Translation API。
关于c# - 通过 C# 访问谷歌翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50059118/