fix
- програма для виконанняя частих дій з текстом які виникають при перекладі ранобе
- Встановіть компілятор для мови C++ та програму Make на вашу операційну систему
- У GNU/Linux та MacOS встановіть
make
таgcc
скориставшись пакетним менеджером. Наприклад в ArchLinux:sudo pacman -S base-devel gcc
- Windows: Відеоінструкція як встановити через MSYS2, програма Visual Studio Code вам не потрібна. Успіхів!
-
Відкрийте термінал у теці з файлом
fix.cpp
і виконайте командуmake
-
Впевніться щоб збудований файл
fix
буде видно у$PATH
- Для GNU/Linux та MacOS,
fix
та інші скрипти можна перемістити у~/.local/bin/
. Якщо ця тека не у$PATH
, додайтеexport PATH=$PATH:/home/[ваш користувач]/.local/bin/
до вашого rc-файлу терміналу - У Windows рекомендую додати теку з
fix.cpp
у ваш$PATH
, щоб усі скрипти були доступні відусіль. Проте для того, щоб на Windows працювали усі скрипти, а не лишеfix
їх треба виконувати у терміналіmysys2
- За бажанням програму можна використовувати й без
$PATH
, але тоді треба надати повний шлях до неї./dev/scripts/fix
Взаємодія з програмою відбувається через передачу їй параметрів. Наприклад fix -c 4 -C "\nРозділ " розділи4_100
- виконає поділ файлу розділи4_100
на окремі файли по ключовому слову [новий рядок]Розділ
, номер першого файлу буде 4
.
Програма зберігає результат своєї роботи у теці res
.
Без параметрів зʼявиться пояснення які параметри доступні у програмі: usage: fix [-tTdeE] [-n length] [-c chapter] [-C delimeter] file ...
-c
- вказує номер першого файлу у який зберігати результат роботи наступних команд. Використовується, наприклад, коли ви вже переклали декілька розділів і вам не потрібно щоб нумерація файлів почалась з 1.fix -c 4 -C "\nChapter " розділи4_100
- виконає поділ файлурозділи4_100
на окремі файли по ключовому слову[новий рядок]Chapter
, номер першого файлу буде4
.-C
- патерн поділу файлу. Тобто вказати програмі де закінчення одного файлу, а де починається наступний. Наприклад ви маєте файлрозділи1_645
з усіма англійськими розділами у ньому. Щоб власноруч не створювати файли та копіювати у них кожний розділ окремо використовується цей параметр.fix -C "\nChapter " розділи1_645
- створить файли res/1,2,3...645 в кожному буде міститись відповідний розділ. Дуже зручно) Якщо вам треба поділити розділи українського твору, то-C "\nРозділ "
можна не вказувати, це ключове слово використовується за замовчуванням. Патер має змінюватись відповідно до структури вашого тексту, тобто якщо ваші розділи починаються з# Chapter 20
, вам треба написатиfix -C "\n# Chapter "
.-t
- поділ тексту на ділянки певної довжини(додає '\n' між ділянками). Може знадобитись якщо вам не треба ділити текст на файли, а лише додати відступи на певній відстані. Відстань задається через параметр-n
. Не ділить слова навпіл, бо шукає останній '\n' для такої кількості символів.fix -n 1500 -t розділи1_645
- створить файлres/розділи1_645
у якому ~кожні 1500 символів зʼявлятиметься новий рядок.-T
- поділити файл на декілька, за кількістю символів. Використовується, наприклад, щоб поділити файл з англійськими розділами на ті, що будуть придатні для скрипту перекладуs
. Не ділить слова навпіл, бо шукає останній '\n' для такої кількості символів.fix -n 1500 -T розділи1_645
- створить багато файлів у теці res, починаючи з 1, у кожному буде ~1500 символів. Потім перекладаєте всі ці файли за допомогою скриптуs
, наприкладs -r -E -S 130 -T 3650 $(ls | sort -V)
,$(ls | sort -V)
означає вибрати усі файли у цій теці, відсортоваті за абеткою та передати як параметри у скрипт.-n
- з якою кількістю символів будуть працювати наступні команди. 5000 символів за замовчуванням. Використовується, наприклад, для поділу англійського тексту на файли які потім підуть у скрипт перекладуs
. Тобто щоб вказати коли почався текст для наступного файлу з англійським текстом.fix -n 1500 -T розділи1_645
Параметр переважно використовується з числом1500
- розділити файл для перекладу уDeepL
.-e
- копіювання тексту файлу у буфер обміну по патерну і збереження результату. Використовується, наприклад, для перекладу розділу через вебзастосунок DeepL якщо у вас не має обмеження на кількість символів на переклад. Тобто виконалиfix -C "\nChapter " -e розділи1_5
- у буфер обміну потрапив перший розділ, ви його перекладаєте у DeepL, копіюєте результат перекладу у буфер обміну і натискаєте Enter у терміналі з програмоюfix
. Це спричинить збереження результату з буфера обміну і копіювання наступного розділу за патерном, наприкінці зберігається файл з усіма результатами. Можливо ця функція буде трохи перероблена. Якщо випадково натиснули Enter не скопіювавши результат, на попередній розділ можна повернутись натиснувши/
і Enter.-E
- копіювання тексту файлу у буфер обміну за кількістю символів і збереження результату з буфера обміну у файл. Використовую для копіювання тексту і перевірки помилок уLanguageTool
.fix -n 9945 -E 1 2 3
- поділить файл перекладу 1 на декілька частин, з ~9945 символів у кожній і скопіює першу у буфер обміну. Перевіривши першу частину натискаємо Enter, результат виправленої першої частини зберігається у пам'яті, друга частина тексту потрапляє у буфер обмін. Коли всі частини файлу1
перевірені — виправлені частини зберігаються у файлі res/1, потім програма переходить до файлу 2 і повторює ці дії поки файли не закінчиться або користувач не припинить виконання програми. Дуже зручна функція!-d
- виправлення закінчень у кожному рядку. Якщо використовувати скриптconver_book
у деяких реченнях зʼявились нові рядки,слова,\nслова
. Щоб виправити це, використовується цей параметр.-a
- яке закінчення додавати до назви файлу,.txt
додається за замовчуванням якщо назва файла не містить його.fix -a .txt -n 1500 -T chapters1_645
- поділить файл з англійськими розділами на окремі файли, які придатні до перекладу вDeepL
через скриптs
. Для своїх перекладів не використовую жодних закінчень, бо вони лише заважають, якщо вам теж вкажіть параметр-A
. Ця функція зроблена, щоб користувачі не вважали що програма "зіпсувала" їх файли перекладу.-A
- вимкнути додавання закінчення до назви файлу.fix -A -n 1500 -T chapters1_645
Якщо вам потрібно виконати заміну слів, використайте скрипт chg
.
-n
менше ніж 1000. Бо-t
чи-T
, наприклад, можуть потрапити на рядок який більше за 1000 символів і програма може працювати так вічно шукаючи новий рядок вичерпавши усю операційну памʼять. Вас попередили.