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 символів і програма може працювати так вічно шукаючи новий рядок вичерпавши усю операційну памʼять. Вас попередили.