c# - 通过 C# 访问谷歌翻译

标签 c# google-translate

首先:我打算编写一个 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/

相关文章:

c# - x 分钟后 Microsoft Azure 运行功能

c# - 为什么使用 Thread.CurrentContext 属性和 Thread.GetDomain() 方法?

javascript - 无法从阿拉伯语翻译成英语 谷歌翻译免费 api

html - 如何在 Chrome 中禁用谷歌从 HTML 翻译

php - 用谷歌翻译翻译网站页面的最佳 SEO 方法

javascript - 谷歌翻译 : TranslateElement is not a function

c# - 如何将 ViewModel 中的信息转换为显示在 View 中

c# - 如何检查输入的十进制值是否大于十进制列表

c# - 转换为 LINQ To Entity 查询中的类型

python - 如何使用 Python 从 Google Translate API 访问 JSON 翻译