Труднощі перекладу: як позбутися набридливої рутини

Medoo 06 липня 2024

Вітаю, дякую що завітали!
Це коротенька розповідь для інших перекладачів про проблеми з якими я зіткнувся як перекладач і про перехід з кам'яної доби в епоху часткової автоматизації перекладу.
Відколи почав перекладати, ~28 серпня 2023 року, минув майже рік. За цей час завершив переклад 4 творів: У мене є супер USB-накопичувач, Жінці-солдату наказали проникнути в Імперську Магічну Академію, Трон магічної аркани та Низьковимірна гра. Нині перекладаю лише Ідеальний Забіг.

 
1. Переклад
Як не дивно, але великою проблемою виявилась постійна відсутність нових перекладених розділів.
Процес виглядав наступним чином: перекладаєш розділи через Google Translate виконуючи десятки Ctrl+c + кліки + Ctrl+v, виправляєш помилки, повторити з початку. Біль, біль і ще раз біль! Напевно так багато хто робить, але можна краще!
Рішення: для такої повторюваної роботи написав скрипти: s_google для Google Translate, та його молодшого брата s для DeepL Translate. s від sync, синхронізація перекладу.
Результат: всі 600+ розділів перекладені за декілька годин з s_google, і очікують на виправлення помилок.
Інструкція з встановлення та використання доступна за посиланням.
Переклад зі скриптами простий:
У Google Translate: s_google 1.txt 2.txt 3.txt 4.txt 5.txt
У DeepL: s -R -S 145 -T 3650 1.txt 2.txt 3.txt 4.txt 5.txt
* для перекладу тексту у DeepL його треба поділити на ділянки по ~1500 символів через програму fix з параметрами -n 1500 -T, а після перекладу зібрати до купи через скрипт concat. Платформа DeepL намагається виявляти роботу скриптів/ботів, тому переклад триватиме довше.
Так, я розумію що такий спосіб перекладу виглядає дивним) Проте пам'ятайте про альтернативу: копіювати переклад власноруч... Сподіваюсь ви зробите правильний вибір)

Чесно кажучи мені навіть страшно уявити скільки годин вдалося зберегти через використання цих скриптів.

 
2. Повторна поява виправлених помилок
Чи траплялося з вами таке, що помилки які ви виправляли в попередніх розділах з'являються знову? Зі мною багацько!
Рішення: скрипт заміни chg. chg від change - змінити
Інструкція з встановлення та використання доступна за посиланням.

Він дозволяє виправляти текст за вказаними правилами. Правило виглядає наступним чином: "що шукаємо/на що змінюємо". Реальні приклади: Динамо/Динаміс, Огасті/Августі, Кі-Юнг/Кі-джун, Оґастус/Август, Шрауд/Саван
Використовується наступним чином: chg розділ1.txt розділ2.txt, у файлі cin.txt на кожному рядку своє правило.
Окрім звичайної заміни слів, chg дозволяє виправляти й структуру тексту(що надзвичайно спрощує моє життя). Це можливо завдяки тому, що правило заміни це звичайний регулярний вираз:
#початок прямої мови
'^"/— '      '^-/—'      '^“/— '      ' “/ — '
#слова автора
': —/, — '      '\." /, — '

 
3. Якість перекладу
Всі помиляються, тому потрібен інструмент який дозволить виявляти ці помилки.
Для мене це LanguageTool — досить зручний редактор, є можливість створювали словник(але, на жаль, лише один, якщо перекладаєте декілька творів одночасно можуть виникнути складнощі).
А для того, щоб не копіювати текст власноруч(бо є обмеження в 9945 символів на перевірку) використовуємо програму fix: fix -n 9945 -E 1.txt 2.txt 3.txt, тобто поділити текст на ділянки по 9945 символів, копіювати текст у буфер обміну й зберігати результат у файл результату.

 
4. Зручність перекладу
З часом виявив, що сприймаю текст на слух краще ніж читаючи його самостійно, тому створив скрипт mp3 який озвучує розділи. Потім слухаю їх на швидкості x3-4(бо повільна вимова слів) одночасно виправляючи розділи.
Приклад використання: mp3 розділ1.txt розділ2.txt
Спробуйте, можливо сподобається)

 
5. Де брати розділи
Щоб перекласти твір треба отримати його текст. Є два варіанти: завантажити книгу в epub/fb2 і перетворити на текст, або копіювати власноруч з сайту.
На мою думку, другий варіант ліпший, бо англійський перекладач міг вносити додаткові виправлення у переклад(зменшивши вам кількість проблем у майбутньому), тоді як книга може містити "перший варіант" перекладу який сайт скопіював до себе і більше не оновлював.
Щоб не копіювати власноруч створив Automa-скрипт lightnovelworld_text, він дозволяє за один клік отримати текст усього твору. Взагалі-то скрипт можна легко адаптувати для іншого сайту, Automa дозволяє будувати логіку скрипта у графічному редакторі.
 
 
6. Нотатки
Забули певну механіку світу, що пояснювалась 200-300 розділів тому? Треба було її записати.
Звісно мова не йде про запис усіх дрібниць — лише найголовнішого: можливо, ім'я персонажів, вік/стать, якісь їх особливі здібності, механіки...
Окрім запису важливих деталей історії, нотатки слугують нагадуванням для вас у майбутньому: як переклали певне слово, які розділи треба переглянути, де закінчилась арка, спеціальні символи які потребує текст історії...

 
 
7. Структура теки з перекладом
Сподіваюсь ви розумієте що зберігати файли перекладу, текст оригіналу, нотатки та інші допоміжні файли однією купою погана ідея.
Після декількох ітерацій вдосконалень прийшов до наступної структури тек:
[del] - кошик для непотрібного: проміжні файли перекладу та mp3-файли
[keep] - файли які треба зберігати до завершення перекладу: текст оригіналу та переклад
            [en] - містить кожний англійський розділ в окремому файли, щоб можна було звірятись з ним під час перекладу. В цій же теці запускаю скрипт перекладу DeepL
            1-645.json - файл з всіма розділами у форматі JSON, отриманий через додаток Automa
            1-645.json.text.txt - файл містить текст всіх розділів. Через скрипт ділю на окремі й копіюю їх до теки en, де перекладаю через скрипт s
[mv] - тека для тимчасового зберігання проміжних файлів перекладу які треба поділити на окремі розділи
[posted] - тека з опублікованими розділами
[ready] - тека з розділами які готові до виправлення помилок
cin.txt - файл з правилами заміни для скрипта chg
cover.webp - обкладинка твору
notes - нотатки

Всі наведені вище скрипти та інструкції з їх використання доступні за посиланням:
https://github.com/Medoo48/scripts

Успіхів!


Коментарі

lsd124c41_Code_geass_lelouch_round_user_avatar_minimalism_82328ab8-7c84-465d-b952-25c6b4496a0a.webp
Space Marauder

29 липня 2024

/не по темі але : Добре що є скріптова гра про покемонів, механіки якої щоб зрозуміти треба мати дві вищі освіти. (напиши інструкцію до цієї дрочильні бо я так і не зрозумів як в це грати.) Було б круто щоб на сайті був якийсь мінімальний загальний чат. думаю зробити подібне легше чим налаштовувати ігри в браузері.

lsd124c41_steins_gate_rintarou_user_avatar_minimalism_55f446db-ebf5-4a54-8f77-a776cab77da0.webp
Shizu

30 липня 2024

А що тут складного? Сидиш на сайті і іноді на сторінці з'являються покемони яких ти можеш спіймати натиснувши. В профілі ти можеш тренувати своїх покемонів кнопкою "тренування" і можеш викликати людей зі списку на день (результат бою вирішується автоматично в залежності від прокачки). Ну от тренуєш їх, берешт участь в дуелях і підіймаєшся в топі

lsd124c41_steins_gate_rintarou_user_avatar_minimalism_55f446db-ebf5-4a54-8f77-a776cab77da0.webp
HugoLocus

20 липня 2024

Дякую за спробу! Але дуже багато питань "як?", бо гайд написаний від людини і для людей, які хоча б трохи розуміються на консольних командах та використанні скрипотів. Більшисть штук я б залюбки використовував, але як.... Так, знову запитання і іх багато по кожному пункутові і скрипту. Можливо є відео, де все розжовано детальніше? Уявіть пересічну бабусю років 60-70 – ось цільва аудітрія при написанні подібних гайдів. У цьому випадку я та бабця, яка ніц не розуміє. Проте можливо комусь і знадобилося.

lsd124c41_steins_gate_rintarou_user_avatar_minimalism_55f446db-ebf5-4a54-8f77-a776cab77da0.webp
Shizu

28 липня 2024

Є ще варіант простіше, але зі своїми нюансами. Я зробив скрипт в google Apps який перевіряє текст по списку слів із таблиці і замінює його. В цьому випадку потрібно внести всі можливі варіанти перекладу в таблицю і варіант "як має бути", спеціально зробив так, щоб не враховувся регістр при пошуку. Швидкість обробки залежить від кількості слів на які перевіряється, поки що я в процесі заповнення таблиці, але для 30 слів перевірка цілого тома займає приблизно 30 секунд. Чим більше слів тим повільніше, але це значно швидше чим в дописі

lsd124c41_steins_gate_rintarou_user_avatar_minimalism_55f446db-ebf5-4a54-8f77-a776cab77da0.webp
Shizu

28 липня 2024

Але знову ж таки. Перекладач може одне слово перекласти по різному, тому потрібно знайти всі варіанти в вашому тексті. Загалом це більше підходить для новел на велику кількість розділів. 2 години потому... Дійсно під час перекладу деякі слова заміняти краще чим після тому я захотів автоматизувати це. Взагалі, з АПІ якогось перекладача це реалізувати дещо простіше, але якщо ключа АПІ немає можна написати 2 метода в гугл Аппс, перший буде заміняти слова, які ти хочеш(і які записані в таблиці з перекладом) на PLACEHOLDER, потім вручну перекладаєш документ через вбудовану функцію гугл документів(Нажаль її автоматичний виклик неможливий) і другим скриптом в перекладеному тексті Плейсхолдери заміняються на твої слова з таблиці. Костилі, але це працює

lsd124c41_Kono_Subarashii_megumin_user_avatar_round_minimalism_1481b178-32de-46eb-bb22-e81c613c3533.webp
Medoo

28 липня 2024

«В цьому випадку потрібно внести всі можливі варіанти перекладу в таблицю і варіант "як має бути"», всі можливі переклади? Для цього ж потрібно продивитись увесь твір, чи може я щось не так зрозумів? Взагалі я роблю так: 1) переклав всі розділи через скрипт 2) створив резервну копію розділів 3) починаю виправляти розділи 4) коли у скрипті накопичилось 5-10 нових помилок запускаю chg на тих розділах що залишились 5) продовжую виправляти 6) якщо якась заміна виявилась помилковою — беру текст з резервної копії На мою думку, це досить ефективне використання часу на виправлення тексту та заміни помилок. «Дійсно під час перекладу деякі слова заміняти краще чим після тому», можливо я помиляюсь, однак жодні слова не треба замінювати під час перекладу. Бо DeepL/Google матимуть більше контексту і варіантів перекладу отримуючи текст мовою оригіналу, аніж з вкрапленням іншомовних слів. До речі, можна дізнатись скільки варіантів перекладу станом на зараз? А взагалі: чому б і ні?) Кому як зручніше) У вас є в планах ідея оприлюднити скрипт?

lsd124c41_steins_gate_rintarou_user_avatar_minimalism_55f446db-ebf5-4a54-8f77-a776cab77da0.webp
Shizu

29 липня 2024

Поки що не було достатньо часу, щоб протестувати. Так, як створив я його буквально в суботу. Як протестую можу відписати, як успіхи. А взагалі я перекладаю Грімгар зараз і навички хочу виділяти, тому це основний масив слів, які мені потрібно захистити від перекладу. Ну і врешті я збираюся використовувати обидва скрипта, один буде заміняти слова до перекладу, а другим під час редагування. Просто мені подобається, що на даний момент я можу перекласти цілий файл, а не розбивати на маленькі частинки. Напевно спробую і ваш спосіб, потрібно лише розібратися. А опублікувати свій мені не шкода, але думаю краще в особистих

lsd124c41_steins_gate_rintarou_user_avatar_minimalism_55f446db-ebf5-4a54-8f77-a776cab77da0.webp
Shizu

30 липня 2024

Іще з приводу заповнення. Все одно ж доводиться редагувати текст, перечитувати його і в ході цього додаю нові слова в таблицю. Тому, як я і казав це більше підходить для довгих новел. Хоча однозначно по ходу діла наберуться слова, які проходитимуть і для інших новел

lsd124c41_one_piece_zoro_round_user_avatar_minimalism_71f099b3-6d82-43e0-9808-52a33d48848e.webp
Green31415

06 липня 2024

Дякую за такий розлогий гайд. Дуже ціную вашу роботу та відданість щодо перекладів. Не намагаюсь сказати, що ваші методи неправильні, чи переконати робити як я, просто поділюсь своїм досвідом. Щодо перекладу. Зараз десктопна версія DeepL дозволяє авторизованому акаунту за один раз перекласти до 5000 символів, а ліміт кількості запитів не досить обтяжливий, за один день 30-50 розділів. Неправильні назви та імена досить легко виправити за допомоги "знайти та замінити" в будь-якому текстовому редакторі й без скриптів (хіба що ви робите в google doc де є ліміт на розмір текстового документа). Раджу на такий випадок завести нотатник зі всіма назвами та іменами для швидкої перевірки. Якщо ж, все-таки редагуєте текст в googl doc, то раджу робити це через браузер на базі хроміум (Vivaldi, Opera, Edge, Brave), щоб можна було встановити розширення LanguageTool з вебмагазину Chrome.

lsd124c41_Kono_Subarashii_megumin_user_avatar_round_minimalism_1481b178-32de-46eb-bb22-e81c613c3533.webp
Medoo

07 липня 2024

Дякую за поради! Ще й нагадали про нотатки, дякую. Спробую пояснити чому такий спосіб мені не підходить: 1. Переклад Мені важливо щоб перемикань контексту було як можна менше. Скрипти дозволяють майже повністю забути про етап перекладу, тримаючи фокус лише на виправлянні помилок: запустив скрипт перекладу у ранці і він працює весь день без зупинки, зручно) 2. Заміна помилок Дійсно, така можливість є і досить непогано працює для малої кількості помилок. Однак у кожному творі який перекладав через DeepL/Google їх кількість була великою: USB(71), Жінка-солдат(>100), Трон(89), Низьковимірна гра(242). Хоч на початку свого шляху перекладача теж використовував функцію заміни у редакторі, однак це був біль! Саме тому першим написаним скриптом виявився chg. Як на мене, це(chg розділ1.txt розділ2.txt) значно краще ніж: Ctrl+R + вибір слова для заміни + вставити в пошук + вставити в заміну + клік замінити все і повторити з наступною помилкою... Бо зі скриптом ви навіть не замислюєтесь про те, які з 200 правил заміни спрацювали — один раз написали правило і забули про цю помилку назавжди. Нотатки використовую, треба додати їх у перелік.