Доступ к Google Translate через C # - PullRequest
0 голосов
/ 27 апреля 2018

Прежде всего: я собираюсь написать приложение на c #, которое позволит пользователю мгновенно переводить текстовые поля в JRPG и визуальных романах с японского на английский или любой другой язык. Более поздний код будет включать методы обнаружения текстовых полей, в основном основанные на распознавании автомобильных номеров, но это далеко в будущем. Пока что я на начальных этапах, я использую IronOCR для распознавания текста и отправляю строку символов японского языка в Google Translate через URL. Но это вызывает временный бан по понятным причинам. Я хочу предотвратить этот запрет или найти более безопасный и безопасный способ использования Google Translate в моем случае использования. Вот соответствующий код до сих пор:

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;
            }
        }
    }
}

Это работает довольно безупречно, к моему удивлению, японский текст с картинки был возвращен переведенным, но даже одна попытка вызывает временный запрет ... Любое предложение или даже альтернатива гугл-переводу приветствуется.

Редактировать: Использование этого URL в моем Firefox, очевидно, не вызывает запрет. Технически я мог открыть URL через браузер из приложения c #. Браузер выводит текстовый файл, используя URL-адрес ... Так возможно ли перехватить текстовый файл через c #?

Другая идея: Могу ли я отправить URL в уже открытое окно Firefox?

1 Ответ

0 голосов
/ 27 апреля 2018

Общедоступный веб-сайт Google Translate предназначен для использования операторами через браузер. Это не API, разработанный для разработчиков.

Вместо этого используйте Google Translate API .

Это позволяет выбрать комбинацию цены / квоты, которая соответствует вашим требованиям. Кроме того, существует различных пакетов nuget , доступных для подключения приложения C # к API перевода Google.

...