ZebroidФорумПубличный разделПредложенияАрхивПереводчик переводит один текст по несколько раз если не получил ответ

Переводчик переводит один текст по несколько раз если не получил ответ

13 сентября 2021, 17:28
Зарегистрирован: 01 сентября 2011, 18:52
Здравствуйте

Столкнулся с проблемой, переводчик блочит все прокси (использую свои индивидуальные прокси), однако если снять галочку с первой непереведенной статьи — перевод идет нормально, до очередной проблемной статьи. Очень похоже что программа отправляет один и тот же текст с разных прокси, что непременно «палит» все прокси и в итоге останавливает перевод.

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

13 сентября 2021, 20:12
Зарегистрирован: 10 апреля 2012, 00:00
Столкнулся с проблемой, переводчик блочит все прокси (использую свои индивидуальные прокси), однако если снять галочку с первой непереведенной статьи — перевод идет нормально, до очередной проблемной статьи. Очень похоже что программа отправляет один и тот же текст с разных прокси, что непременно «палит» все прокси и в итоге останавливает перевод.
Если так как вы говорите, то возможно проблема связана не с прокси, а с этим куском текста. Если у вас есть на руках кусок текста который программа не переводит — лучше его мне отправить и я постараюсь выяснить в чем причина.

Если все так — то предлагаю сделать что-то вроде ротации текста, если статью или кусок текста один раз не получилось перевести — он откладывается в конец очереди и программа пробует перевести следующий кусок текста или статью.
Так не получиться, по нескольким причинам:
1) В куске текста который нужно перевести могут быть фрагменты сразу с нескольких постов и если отправить их в конец очереди, то Зеброиду не получится склеить переводы и сохранить статьи, а значит они всё это время будут висеть в памяти. В случае если проблема таки с прокси, рано или поздно память забьётся и вылетит ошибка

2) Зеброида не создаёт полную очередь на перевод, так как на больших проектах это очень большие объёмы данных которые забивают оперативку. Вместо этого он по мере необходимости разбивает статьи и подкидывает это в очередь на перевод. Даже если бросать в эту очередь этот кусок текста, то до него программа всё равно доберется очень быстро, так как повторюсь — очередь эта небольшая.

14 сентября 2021, 09:12
Зарегистрирован: 01 сентября 2011, 18:52
Если у вас есть на руках кусок текста который программа не переводит — лучше его мне отправить и я постараюсь выяснить в чем причина.
Если что речь про deepl. Текст обычный, без html — вряд ли проблема в конкретном куске. В веб версии все эти «неудачные» статьи переводятся без проблем, даже при заходе через прокси, через который программа перевести не смога. Если ставить перевод в один поток через 15 прокси — то перевод идет до первого неудачного куска, потом он не переводится на всех прокси, это видно по логу в инструменте перевода. Если остановить, отключить статью, перевести другие статьи, вернуться к непереведенной — она переведется (сейчас после вашего ответа стало понятно что там могут получиться другие куски текста, но все же вряд ли дело в конкретных кусках текста).

Я бы предложил все таки в качестве эксперимента попробовать откладывать неудачный блок, хотя бы на ту же паузу, которая указана в настройках инструмента или в конец той небольшой очереди что имеется (так сказать, дать прокси возможность «отбелиться» а не продолжать их долбить неудачными запросами), либо условно «уникализировать» блок текста поделив его на две части или каким-то подобным образом исключить склейку прокси и их бан. Вряд ли deepl сохраняет сам текст для защиты от подобного, но хэш вполне может сохранять.

А какой размер блока текста для deepl? Вроде как веб версия позволяет переводить по 5000 символов, но программа похоже бьёт текст где-то по 500 символов.

14 сентября 2021, 18:59
Зарегистрирован: 10 апреля 2012, 00:00
Я бы предложил все таки в качестве эксперимента попробовать откладывать неудачный блок, хотя бы на ту же паузу, которая указана в настройках инструмента или в конец той небольшой очереди что имеется (так сказать, дать прокси возможность «отбелиться» а не продолжать их долбить неудачными запросами), либо условно «уникализировать» блок текста поделив его на две части или каким-то подобным образом исключить склейку прокси и их бан. Вряд ли deepl сохраняет сам текст для защиты от подобного, но хэш вполне может сохранять.
Посмотрим, что можно сделать.

А какой размер блока текста для deepl? Вроде как веб версия позволяет переводить по 5000 символов, но программа похоже бьёт текст где-то по 500 символов.
У меня были причины сделать так, как я сделал. Я не хотел бы раскрывать все технические нюансы, извините.