Skip to content

Latest commit

 

History

History
81 lines (62 loc) · 12.3 KB

s_usage.md

File metadata and controls

81 lines (62 loc) · 12.3 KB

Що таке s

  • s - скрипт для перекладу іншомовного тексту українською

Назва від sync, синхронізація перекладу)

Як встановити

Встановіть середовище для виконання скрипта та його залежності на вашу операційну систему

GNU/Linux та MacOS вже мають потрібне середовище, встановіть залежності(python deepl-cli) скориставшись пакетним менеджером вашої операційної системи:

  • ArchLinux: sudo pacman -S python python-pipx. python-pipx потрібен щоб встановити deepl-cli, і лише для ArchLinux, для інших ОС використовуйте python-pip
  • Встановіть deepl-cli скориставшись pip(pipx лише для ArchLinux): pipx install deepl-cli

Windows: Встановіть середовище MSYS2 виконуючи 1-5 кроки з наведеної на сайті інструкції.

  • Встановіть залежності скрипта: pacman -S python python-pip
  • Встановіть deepl-cli скориставшись pip: pip install deepl-cli

У випадку з Windows скрипт потрібно виконувати не у звичайному терміналі, а в тому що постачає msys2

Як використовувати

Взаємодія зі скриптом відбувається через передачу йому параметрів. Наприклад, s -c 1 -e 1 -E -r -S 120 файл1 файл2 файл3 ... - виконає послідовний переклад по одному файлу, зачекає 120 секунд перед перекладом наступного щоб запобігти бану, якщо виникне помилка перекладу зачекає одну годину і спробує ще раз, інакше завершить виконання скрипта щоб запобігти бану. Переклад зберігається як [ім'я файлу].tr.txt(можна змінити).

Файли які плануєте перекладати треба завчасно поділити по 1500 символів (обмеження DeepL для користувачів без облікового запису) використовуючи програму fix, з параметрами -n 1500 -T файли

Скрипт зберігає результат своєї роботи у теці де він виконується, не перезаписуючи наявні файли перекладу.

Якщо якийсь файл не містить перекладу(у терміналі буде написано failed [ім'я файлу]...) - перезапустіть скрипт.

Рекомендую виконувати скрипт з наступними параметрами(s -R -S 121 -T 3650 $(ls | sort -V)), це дозволить менше потрапляти у бан DeepL і стабільно отримувати переклад.

Загальні рекомендації: не збільшуйте/зменшуйте -c та -e якщо не розумієте що ви робите, обов'язково подивіться опис що робить кожен параметр перед його зміною. Те ж стосується -t,-s і особливо -T та -S. Параметри підібрані так, щоб менше потрапляти у бан. Якщо все одно потрапляєте у бан - зачекайте годину, зменште -c до 1, збільште -S та -T, якщо не допомагає зачекайте ще декілька годин й повторіть спробу.

Приклад роботи:

@> s -r -E -S 120 $(ls | sort -V)
start at [13:00 2024-04-21]
sleep 120 seconds [15:56 2024-04-21] [done 80] [0 failed] [287 total] [2h 56m 21s elapsed]

$(ls | sort -V) - передати до параметрів скрипта усі файли у теці. Наявні файли перекладу не перезаписуються.

Без параметрів зʼявиться пояснення які параметри приймає скрипт:

usege: s [-rhE] [-c count] [-C exit_count] [-e failed_count] [-s delay] [-S dalay_after] [-t timeout] [-T retry_after] files
        -c, --count     Перекласти вказану кількість файлів. З -r скрипт перекладатиме вказаними порціями
        -C, --exit-count    Завершити виконання після перекладу n-файлів
        -e, --exit-after-failed      Завершити виконання після n-послідовних помилок
        -E, --try-again    Після виникнення послідовних помилок перекладу зачекати 3600с(змінити чере -T) і спробувати ще раз, якщо знову невдало, то завершити виконання. Якщо кількість помилок не вказана, то 1 за замовчуванням. Якщо кількість файлів не вказана використовується 1 за замовчуванням
        -r, --repeat    Перекласти порцію файлів, почекати 120с(змінити через -S) щоб запобігти бану й перейти до наступної порції. Якщо кількість файлів не вказана використовується 1 за замовчуванням
        -R, --repeat-on-failed    Теж що й -r з -E, але не завершує виконання скрипта
        -s, --sleep     Засинати на вказану кількість секунд після перекладу файлу. 5с за замовчуванням
        -S, --sleep-after       Засинати на вказану кількість секунд після перекладу порції файлів. 120с за замовчуванням
        -t, --timeout   Скільки чекати на результат перекладу. 60 секунд за замовчуванням
        -T, --try-again-after    На скільки секунд засинати перед повторною спробою перекладу після послідовних помилок які мали спричинити завершення виконання. 3600 секунд за замовчуванням. Не рекомендовано вказувати менш ніж годину(3600с), бо отримаєте повноцінний бан, а не обмеження на кількість перекладів
        -h, --help      Показати цю довідку і завершити роботу

Детальне пояснення параметрів

  • -c, --count - яку кількість файлів треба перекласти за раз(не залежно від отриманої кількості). Рекомендую використовувати з -r, щоб зменшити можливість отримання бану.
  • -C, --exit-count - перекласти певну кількість файлів й завершити роботу, щоб зменшити можливість отримання бану, навіть якщо ще є можливість безпечно перекладати.
  • -e, --exit-after-failed - завершити роботу якщо виникли n-послідовних помилок. Послідовні помилки можуть свідчити про отримання бану, тому щоб не привертати ще більше уваги негайно припиняємо роботу. Рекомендую завжди використовувати цей параметр з 1.
  • -E, --try-again - не завершати роботу після виникнення n-послідовних помилок, а зачекати 3600с(годину, змінити через -T) і спробувати ще раз, якщо невдало, то припиняємо виконання інакше продовжуємо у звичайному режимі. Якщо кількість помилок не вказана, то 1 за замовчуванням. Якщо кількість файлів не вказана використовується 1 за замовчуванням Рекомендую завжди використовувати цей параметр у парі з -r, -c 1 та -S від 120.
  • -r, --repeat - перекладати файли невеликими порціями(задається через -c) і почекати декілька секунд після кожної щоб зменшити можливість отримання бану. Якщо використовується без -c встановить кількість як 1.
  • -R, --repeat-on-failed Теж що й -r з -E, але не завершує виконання скрипта. Рекумендую використовувати саме -R, а не -r з -E щоб скрипт не простоював. Приклад: s -R -S 121 -T 3650 $(ls | sort -V)
  • -s, --sleep - вказує час який скрипт буде чекати після перекладу файлу. 5 за замовчуванням.
  • -S, --sleep-after - вказує час який скрипт буде чекати після перекладу порції файлів. 120 за замовчуванням.
  • -t, --timeout - переклад не відбувається миттєво, тому його треба очікувати. 60 секунд очікування за замовчуванням
  • -T, --try-again-after - вказує на скільки секунд засинати перед повторною спробою перекладу після послідовних помилок які мали спричинити завершення виконання. 3600 секунд за замовчуванням. Не рекомендовано вказувати менш ніж годину(3600с), бо отримаєте повноцінний бан, а не обмеження на кількість перекладів.
  • -h, --help - Показати довідку і завершити роботу

Що не варто робити

  • -c більше 1 з параметром -r і без -C. Бо швидко потрапите у бан.
  • виконувати скрипт без -e. Бо замість обмеження на кількість символів на хвилину отримаєте справжній бан не декілька годин.
  • дуже мале значення -s, -S, -t та -T. Бо швидко потрапите у бан.
  • виконувати скрипт без -R. Щоб скрипт не простоював без роботи.

Приклад скрипта для тих хто перекладає більш ніж 10 розділів на день

З наведеного в горі прикладу ви можете побачити що за ~3 години можливо перекласти 80 файлів, це приблизно 8 розділів, тобто по 15000 символів на розділ(ваш твір може мати іншу кількість). Тому можна використовувати і його. Однак щоб впевнитись що ви стабільно отримуватимете нові розділи не отримуючи бан його треба трохи вдосконалити:

s -R -S 160 -T 4200 $(ls | sort -V)

Деякі параметри зникли, бо їх значення буде встановлено автоматично при використанні -R.