- Регистрация
- 07.05.2015
- Сообщения
- 2 177
- Благодарностей
- 2 183
- Баллы
- 113
Последние версии шаблон делались в ProjectMaker 5.17.1.0. Стоит ограничение по запуску минимум 5.10.0.0, но как поведет себя на старых версиях ZennoPoster (старше 5.17.1.0) – хз, в любом случае у вас есть возможность обновить ZennoPoster.
- Закрытого типа (только выполнение).
- Из внешних подключений добавлены ссылка из GAC (System.Web) и HtmlAgilityPack.dll для полноценной работы C#-кубиков.
- Нет лимита по размеру передаваемого текста (поток шаблона сам разобьет на куски текстовку, если увидит что не помещается в 1 запрос)
- Все нюансы работы шаба описаны на вкладках «Входные настройки». Обязательно хотя бы первую прочтите.
1. Эксперимент проводился при запуске с RAM-диска (хоть это и не обязательно), в режиме «#1.1 А)». Файлы были разбиты на мелкие части по ~5 мб, суммарный размер 800 мб (в кодировке “UTF-8 BOM”). Прокси не понадобились.
Нагрузка на CPU ~ 70% (запросы шлются без пауз, обработка сложного HTML-кода, пока не нашел как понизить), сеть ~ 20 Мегабит\секунду, RAM ~100 Мегабайт.
На выходе получили 1,4 Гб переведенных фраз (русский текст больше места занимает). Если обратно переводить, то будет в 2-3 раза медленнее, из-за того, что в формате UrlEncode русский текст тоже больше места занимает.
2. Постоянно спрашивают о скорости перевода статей. 25.05.2018 одному покупателю тестировал его пак:
1100 HTML-файлов, но там именно разметка уже самой статьи под импорт в движок сайта (с тегами, списками, но без футера, менюшек). Размер 20 мб суммарный, 11,1 млн. символов самой текстовки (без кода тегов, это ~10К символов на 1 статью). Направление перевода [ru-pl]. Тестировали именно в 1 поток. Время, затраченное на перевод: 5 часов. Понятно, что на 20-30 потоках времени уйдет минимум в 10 раз меньше.
Нагрузка на CPU ~ 70% (запросы шлются без пауз, обработка сложного HTML-кода, пока не нашел как понизить), сеть ~ 20 Мегабит\секунду, RAM ~100 Мегабайт.
На выходе получили 1,4 Гб переведенных фраз (русский текст больше места занимает). Если обратно переводить, то будет в 2-3 раза медленнее, из-за того, что в формате UrlEncode русский текст тоже больше места занимает.
2. Постоянно спрашивают о скорости перевода статей. 25.05.2018 одному покупателю тестировал его пак:
1100 HTML-файлов, но там именно разметка уже самой статьи под импорт в движок сайта (с тегами, списками, но без футера, менюшек). Размер 20 мб суммарный, 11,1 млн. символов самой текстовки (без кода тегов, это ~10К символов на 1 статью). Направление перевода [ru-pl]. Тестировали именно в 1 поток. Время, затраченное на перевод: 5 часов. Понятно, что на 20-30 потоках времени уйдет минимум в 10 раз меньше.
Спрашивали тут меня как именно переводит через гугл шаблон, а то там исходя из методов (API\Браузер) могут применятся чуть разные алгоритмы обработки от самого сервиса translate.google. Так что 30.05.2018 провел эксперимент, ниже его результаты.
На тестах вижу, что сейчас перевод почти такой же как в браузере, правда иногда чуть хуже переводит бредо-текст, так как в браузере обычно гугл исправляет орфографические ошибки в оригинале при переводе (пользователь этого не замечает даже), но в моем шаблоне-скрипте это реже происходит.
Например, вот в архиве три файла, и еще залил результаты на сервис сравнения для удобства (там 3 страницы):
1. Текст на перевод.txt
2. Результат перевода в браузере обычном.txt
3. Результат перевода шаблоном моим.txt
Как видите есть незначительные отличия, но они минимальны. Хотя пока тестировал мне получилось поймать ситуацию, когда всплыла грубая ошибка в моем результате: в оригинале пропущен пробел между словами («... qualité.Un») , и в итоге это место совсем не перевелось. Тогда как в браузере гугл понял, что это ошибка, добавил сам пробел, и нормально потом перевел. Но когда я пытался повторно этот косяк поймать, то шаблон уже нормально переводил все. Я подумал, может это гугл запалил постоянный парсинг с моего IP, и иногда выдает «некачественный» перевод, но даже после длительных нагрузок не смог повторить ошибку. Так что спишем это просто на «случаность» в алгоритмах перевода. Хотя потом попробовал шаблоном перевести отдельно этот абзац без номера строки, и таки поймал:
Il faut aussi que vous déclarer vos sentiments d’une position de force, pour lui communiquer que vous n’êtes pas désespéré, que vous êtes un homme de qualité.Un homme qui a beaucoup de choix avec les femmes, mais qui a choisi d’être avec elle parce que’’il vu un truc spécial en elle. Le problème qui se pose ici, est que vous ne pouvez pas communiquer ça à une fille sauf si vous avez vraiment trop le choix avec les femmes dans votre vie.
Он также требует, чтобы вы объявляете свои чувства в сильной позиции, чтобы сообщить, что вы не отчаянные, вы человек qualité.Un людей с большим выбором с женщинами, но выбрали быть с ней, потому что он видел в ней особый трюк. Проблема здесь в том, что вы не можете сообщить об этом девушке, если у вас действительно нет выбора с женщинами в вашей жизни.
Но объяснить почему гугл на запрос шаблона здесь не применил свой «дополнительный алгоритм по исправлениям ошибок» я не могу. Может из-за слишком маленького объёма переведённого текста в запросе (типа ему мало данных для анализа, и он не включает дополнительные режимы), хз…
Подобные эксперименты уже проводились покупателями шаблона ранее (в феврале наблюдались кардинальные улучшения в переводе гугла). Тогда мы замечали, что если гугл вносит какие-то новые алгоритмы, то в браузере они сразу видны, в вот в результатах перевода шаблона они где-то через месяц только появляются. То есть банально гугл не сразу обновляет все свои методы сервиса перевода, но со временем очередь до всех доходит, переживать не стоит.
На тестах вижу, что сейчас перевод почти такой же как в браузере, правда иногда чуть хуже переводит бредо-текст, так как в браузере обычно гугл исправляет орфографические ошибки в оригинале при переводе (пользователь этого не замечает даже), но в моем шаблоне-скрипте это реже происходит.
Например, вот в архиве три файла, и еще залил результаты на сервис сравнения для удобства (там 3 страницы):
1. Текст на перевод.txt
2. Результат перевода в браузере обычном.txt
3. Результат перевода шаблоном моим.txt
Как видите есть незначительные отличия, но они минимальны. Хотя пока тестировал мне получилось поймать ситуацию, когда всплыла грубая ошибка в моем результате: в оригинале пропущен пробел между словами («... qualité.Un») , и в итоге это место совсем не перевелось. Тогда как в браузере гугл понял, что это ошибка, добавил сам пробел, и нормально потом перевел. Но когда я пытался повторно этот косяк поймать, то шаблон уже нормально переводил все. Я подумал, может это гугл запалил постоянный парсинг с моего IP, и иногда выдает «некачественный» перевод, но даже после длительных нагрузок не смог повторить ошибку. Так что спишем это просто на «случаность» в алгоритмах перевода. Хотя потом попробовал шаблоном перевести отдельно этот абзац без номера строки, и таки поймал:
Il faut aussi que vous déclarer vos sentiments d’une position de force, pour lui communiquer que vous n’êtes pas désespéré, que vous êtes un homme de qualité.Un homme qui a beaucoup de choix avec les femmes, mais qui a choisi d’être avec elle parce que’’il vu un truc spécial en elle. Le problème qui se pose ici, est que vous ne pouvez pas communiquer ça à une fille sauf si vous avez vraiment trop le choix avec les femmes dans votre vie.
Он также требует, чтобы вы объявляете свои чувства в сильной позиции, чтобы сообщить, что вы не отчаянные, вы человек qualité.Un людей с большим выбором с женщинами, но выбрали быть с ней, потому что он видел в ней особый трюк. Проблема здесь в том, что вы не можете сообщить об этом девушке, если у вас действительно нет выбора с женщинами в вашей жизни.
Но объяснить почему гугл на запрос шаблона здесь не применил свой «дополнительный алгоритм по исправлениям ошибок» я не могу. Может из-за слишком маленького объёма переведённого текста в запросе (типа ему мало данных для анализа, и он не включает дополнительные режимы), хз…
Подобные эксперименты уже проводились покупателями шаблона ранее (в феврале наблюдались кардинальные улучшения в переводе гугла). Тогда мы замечали, что если гугл вносит какие-то новые алгоритмы, то в браузере они сразу видны, в вот в результатах перевода шаблона они где-то через месяц только появляются. То есть банально гугл не сразу обновляет все свои методы сервиса перевода, но со временем очередь до всех доходит, переживать не стоит.
Запускать шаблон теоретически лучше не больше чем в ~20-30 потоков, или так чтобы нагрузка на ваш CPU не превышала 80%. У меня практика показала, что даже если и добавить больше потоков, то скорость обработки не увеличится. Хотя все зависит от режимов работы и мощности железа. Колебание скорости реальной работы очень легко анализировать по графику нагрузки сети (у меня в районе 20 мбит\секунду идет передача). Если вы видите, что после прибавления потоков график уже не растет, значит не смысла ставить больше, ибо достигнут физический предел.
Вот для понимания скриншот «Диспетчера задач» на Wondows 10, где по графику видно что нагрузка сети стабилизировалась на уровне ~10 мбит и не растет:
Вот для понимания скриншот «Диспетчера задач» на Wondows 10, где по графику видно что нагрузка сети стабилизировалась на уровне ~10 мбит и не растет:
«RAM-диск» - это технология, позволяющая использовать часть системной оперативной памяти как дополнительное дисковое устройство, то есть «сверхбыстрый» мини-диск.
Сделать такое можно программой «SoftPerfect RAM Disk 3.4.8 Free». Уже есть версия 4, но она платная, можете искать ломанную на варез-трекерах; 3.4.5 версия идет в комплекте с Total Commander PowerUser (тот черный командер, который на моих видео). Из гугла по ней: обзор1, обзор2, видео. Отдельно стоит заметить, что в случае перезагрузки ПК - данные с рамдиска стираются, если дополнительно не настроить резервное копирование на жесткий диск в софте.
Сделать такое можно программой «SoftPerfect RAM Disk 3.4.8 Free». Уже есть версия 4, но она платная, можете искать ломанную на варез-трекерах; 3.4.5 версия идет в комплекте с Total Commander PowerUser (тот черный командер, который на моих видео). Из гугла по ней: обзор1, обзор2, видео. Отдельно стоит заметить, что в случае перезагрузки ПК - данные с рамдиска стираются, если дополнительно не настроить резервное копирование на жесткий диск в софте.
Да, можете родной Zenno-кубик использовать, в ProjectMaker:
«Добавить действие > Данные > Обработка текста > Перевод > Сервис GoogleTranslateViaWebInterface.dll»
Если текста мало, то хватит его базового функционала. В противном случае можете самостоятельно обвешать кубиками обрезки текста на мелкие куски. Ну и позаимствуйте идеи для усовершенствования из скриншотов «Входных настроек» моего шаблона.
«Добавить действие > Данные > Обработка текста > Перевод > Сервис GoogleTranslateViaWebInterface.dll»
Если текста мало, то хватит его базового функционала. В противном случае можете самостоятельно обвешать кубиками обрезки текста на мелкие куски. Ну и позаимствуйте идеи для усовершенствования из скриншотов «Входных настроек» моего шаблона.
Здесь собраны именно поддерживаемые языки Google-Translate на момент создания темы (ноябрь 2017). Там есть немного отличия от двух-буквенного стандарта ISO 639-1. Шаблон поддерживает все из них.
#1.7 [IN_Param_sl] Язык оригинала: {Определить язык - auto|азербайджанский - az|албанский - sq|амхарский - am|английский - en|арабский - ar|армянский - hy|африкаанс - af|баскский - eu|белорусский - be|бенгальский - bn|бирманский - my|болгарский - bg|боснийский - bs|валлийский - cy|венгерский - hu|вьетнамский - vi|гавайский - haw|галисийский - gl|греческий - el|грузинский - ka|гуджарати - gu|датский - da|зулу - zu|иврит - iw|игбо - ig|идиш - yi|индонезийский - id|ирландский - ga|исландский - is|испанский - es|итальянский - it|йоруба - yo|казахский - kk|каннада - kn|каталанский - ca|киргизский - ky|китайский (традиционный) - zh-TW|китайский (упрощенный) - zh-CN|корейский - ko|корсиканский - co|креольский (Гаити) - ht|курманджи - ku|кхмерский - km|кхоса - xh|лаосский - lo|латинский - la|латышский - lv|литовский - lt|люксембургский - lb|македонский - mk|малагасийский - mg|малайский - ms|малаялам - ml|мальтийский - mt|маори - mi|маратхи - mr|монгольский - mn|немецкий - de|непальский - ne|нидерландский - nl|норвежский - no|панджаби - pa|персидский - fa|польский - pl|португальский - pt|пушту - ps|румынский - ro|русский - ru|самоанский - sm|себуанский - ceb|сербский - sr|сесото - st|сингальский - si|синдхи - sd|словацкий - sk|словенский - sl|сомалийский - so|суахили - sw|суданский - su|таджикский - tg|тайский - th|тамильский - ta|телугу - te|турецкий - tr|узбекский - uz|украинский - uk|урду - ur|филиппинский - tl|финский - fi|французский - fr|фризский - fy|хауса - ha|хинди - hi|хмонг - hmn|хорватский - hr|чева - ny|чешский - cs|шведский - sv|шона - sn|шотландский (гэльский) - gd|эсперанто - eo|эстонский - et|яванский - jw|японский - ja}
Или в столбец:
#1.7 [IN_Param_sl] Язык оригинала: {Определить язык - auto|азербайджанский - az|албанский - sq|амхарский - am|английский - en|арабский - ar|армянский - hy|африкаанс - af|баскский - eu|белорусский - be|бенгальский - bn|бирманский - my|болгарский - bg|боснийский - bs|валлийский - cy|венгерский - hu|вьетнамский - vi|гавайский - haw|галисийский - gl|греческий - el|грузинский - ka|гуджарати - gu|датский - da|зулу - zu|иврит - iw|игбо - ig|идиш - yi|индонезийский - id|ирландский - ga|исландский - is|испанский - es|итальянский - it|йоруба - yo|казахский - kk|каннада - kn|каталанский - ca|киргизский - ky|китайский (традиционный) - zh-TW|китайский (упрощенный) - zh-CN|корейский - ko|корсиканский - co|креольский (Гаити) - ht|курманджи - ku|кхмерский - km|кхоса - xh|лаосский - lo|латинский - la|латышский - lv|литовский - lt|люксембургский - lb|македонский - mk|малагасийский - mg|малайский - ms|малаялам - ml|мальтийский - mt|маори - mi|маратхи - mr|монгольский - mn|немецкий - de|непальский - ne|нидерландский - nl|норвежский - no|панджаби - pa|персидский - fa|польский - pl|португальский - pt|пушту - ps|румынский - ro|русский - ru|самоанский - sm|себуанский - ceb|сербский - sr|сесото - st|сингальский - si|синдхи - sd|словацкий - sk|словенский - sl|сомалийский - so|суахили - sw|суданский - su|таджикский - tg|тайский - th|тамильский - ta|телугу - te|турецкий - tr|узбекский - uz|украинский - uk|урду - ur|филиппинский - tl|финский - fi|французский - fr|фризский - fy|хауса - ha|хинди - hi|хмонг - hmn|хорватский - hr|чева - ny|чешский - cs|шведский - sv|шона - sn|шотландский (гэльский) - gd|эсперанто - eo|эстонский - et|яванский - jw|японский - ja}
Или в столбец:
#1.7 [IN_Param_sl] Язык оригинала: {
Определить язык - auto
азербайджанский - az
албанский - sq
амхарский - am
английский - en
арабский - ar
армянский - hy
африкаанс - af
баскский - eu
белорусский - be
бенгальский - bn
бирманский - my
болгарский - bg
боснийский - bs
валлийский - cy
венгерский - hu
вьетнамский - vi
гавайский - haw
галисийский - gl
греческий - el
грузинский - ka
гуджарати - gu
датский - da
зулу - zu
иврит - iw
игбо - ig
идиш - yi
индонезийский - id
ирландский - ga
исландский - is
испанский - es
итальянский - it
йоруба - yo
казахский - kk
каннада - kn
каталанский - ca
киргизский - ky
китайский (традиционный) - zh-TW
китайский (упрощенный) - zh-CN
корейский - ko
корсиканский - co
креольский (Гаити) - ht
курманджи - ku
кхмерский - km
кхоса - xh
лаосский - lo
латинский - la
латышский - lv
литовский - lt
люксембургский - lb
македонский - mk
малагасийский - mg
малайский - ms
малаялам - ml
мальтийский - mt
маори - mi
маратхи - mr
монгольский - mn
немецкий - de
непальский - ne
нидерландский - nl
норвежский - no
панджаби - pa
персидский - fa
польский - pl
португальский - pt
пушту - ps
румынский - ro
русский - ru
самоанский - sm
себуанский - ceb
сербский - sr
сесото - st
сингальский - si
синдхи - sd
словацкий - sk
словенский - sl
сомалийский - so
суахили - sw
суданский - su
таджикский - tg
тайский - th
тамильский - ta
телугу - te
турецкий - tr
узбекский - uz
украинский - uk
урду - ur
филиппинский - tl
финский - fi
французский - fr
фризский - fy
хауса - ha
хинди - hi
хмонг - hmn
хорватский - hr
чева - ny
чешский - cs
шведский - sv
шона - sn
шотландский (гэльский) - gd
эсперанто - eo
эстонский - et
яванский - jw
японский - ja
}
Потому что он лучше всех понимает нелитературный язык (сленг). Сравнивал несколько лет назад на ключах своей тематики, и только гуглу удавалось нормально перевести смысл спорных фраз.
Свой первый шаблон-переводчик на зенке я сделал в июле 2015. Работал он на запросах, слал Get-методом те же запросы что и браузер (UrlEncode текста на перевод). Со временем я понял, что можно увеличить лимит передаваемых за 1 запрос данных, если засунуть все в тело Post-запроса. Так и сделал. Скорость подросла, прокси почти не требовались, гугл не обращал внимания на многопоточный парсинг. Но потом где-то через год лавочка прикрылась, и работать через Post гугл разрешил только обладателям платного API.
Но есть застарелые статьи в сети как обойти блокировку, используя генерирование «временных ключей» к API (параметр &tk=), которые гугл раздает при переводе в браузере (они вроде js-скриптами на странице генерируются). Вон зенка в своем родном кубике их тоже научилась генерировать. Есть скрипт для самостоятельной генерации «&tk=»: https://github.com/guyrotem/google-translate-server , но для меня это слишком сложно, и я просто вернулся к тому первому шаблону на Get-запросах, который все еще работал. Обвешал его всякими плюшками для удобства, и довел до идеала все возможности. Недавно взял один заказ по внедрению такого шаблона в комбайн заказчика в режиме «Шаблон в Шаблоне». Человеку все понравилось, попросил для друга сделать такое же, поэтому и родилась эта тема.
Но есть застарелые статьи в сети как обойти блокировку, используя генерирование «временных ключей» к API (параметр &tk=), которые гугл раздает при переводе в браузере (они вроде js-скриптами на странице генерируются). Вон зенка в своем родном кубике их тоже научилась генерировать. Есть скрипт для самостоятельной генерации «&tk=»: https://github.com/guyrotem/google-translate-server , но для меня это слишком сложно, и я просто вернулся к тому первому шаблону на Get-запросах, который все еще работал. Обвешал его всякими плюшками для удобства, и довел до идеала все возможности. Недавно взял один заказ по внедрению такого шаблона в комбайн заказчика в режиме «Шаблон в Шаблоне». Человеку все понравилось, попросил для друга сделать такое же, поэтому и родилась эта тема.
- В своих шаблонах в качестве подшаблона.
- В генерации текстовки дорвеев, сателлитов и т.д.
Видео. Оно в посте №26 описано. Правда оно тоже старело, так как снято еще 27.12.2017 на версии шаблона 2.03, но основные моменты работы в нем раскрыты, а актуальные возможности и настройки ищите в спойлере "Spoiler: #5. Скриншоты «Входные настройки» с кучей настроек:", там постоянно обновляю картинки под каждую новую версию.
Видео для версии 2.0:
Самое первое видео для версии 1.0:
Самое первое видео для версии 1.0:
Если у вас нет программы ZennoPoster для запуска данного шаблона, то можно легко (+10$ к цене) прикупить ZennoBox-версию (что такое ZennoBox), которая даст возможность запускать данный шаблон в 20 потоков, чего обычно хватает с головой. Только не забудьте указать при покупке что нужна именно ZennoBox-версия.
Цена: 130$.
Контакты: личка форума, Telegram: orka13 (ссылка кликабельная, добавляйтесь по ней, а то могут быть мошенники с подобными никами), Skype: orkanavtica
Гарантия: возврат средств (манибек) за шаблон в течении 14 дней после его получения (за вычетом комиссии платежных систем). Здесь проблем нет, лояльно отношусь к такому требованию, даже если шаблон на 100% рабочий был, и дело чисто во вкусах покупателя.
Бесплатная Trial-версия: любому форумчанину со стаусом Client готов выдать шаблон наперед без оплаты (триалка на 14 дней). Даже под зенобокс (оплата комиссии сервиса за мой счет).
Лицензия: вечная, шаблон будет закрыт и прикреплен к вашему Email (ID) Zennolab. То есть можете запускать одновременно и на разных ПК, если у вас купленно несколько копий Zennoposter. Если же Zennoposter отсутствует вовсе, то выпишу лицензию под Zennobox, но оплата комиссии сервиса тогда за ваш счет (+10$).
Поддержка: стараюсь обновлять парсер после каждых изменений в сервисе (они где-то раз…два в год случаются). Но иногда это затягивается на длительные сроки. Если же нужны индивидуальные консультации по первому запуску шаблона или ZennoPoster, так как вы совсем дуб-дубом и ничего не понимаете, то и это возможно: схема «TeamViewer + Skype», ценник: 3$/10 минут. Если я вдруг пропаду, или кардинально сменю вид деятельности то понятно, что никто поддерживать шаблон вместо меня не будет. Открою тогда исходники и дальше уже сами разбирайтесь.
Последнее редактирование: