«Блискавку в мої мікросхеми!» Як Ruby-розробники перекладали дитячу книжку з програмування

Коли Ruby-розробниця Ірина Заяць починала перекладати дитячу книжку з програмування, навіть не уявляла, що на неї чекає. Робота, з якою вона планувала впоратися за кілька тижнів, зайняла майже пів року. З перекладом Ірині допомагали друзі: разом розбиралися, як коректно міг би лаятися робот-пірат, вигадували вигуки, пов’язані з їжею, та вчилися писати код так, щоб він римувався. Про цікаві деталі цієї історії Ірина розповіла в інтерв’ю.

Чому я взялася за переклад книги

Усе почалося з того, що у січні 2019 року на зустрічі core-команди спільноти #pivorak ми планували події та проєкти, які могли б організувати протягом року.

Спільнота #pivorak — це львівське ком’юніті Ruby-програмістів. Свого часу вона виникла у компанії Innocode: співробітники збиралися ввечері після роботи на тимбілдинг, і на тих зустрічах завжди було пиво й раки. Зібрання відбувалися щомісяця, в останню робочу п’ятницю, і люди, які туди приходили, почали називали себе спільнотою #pivorak. Згодом зустрічі вийшли за межі компанії Innocode. Окрім спілкування, ми почали організовувати різноманітні заходи: технічні доповіді, воркшопи для підлітків, цікаві тематичні зустрічі. Але назва спільноти збереглася, пиво й раки теж — до пандемії вони були на всіх наших зібраннях. У core-команді зараз 12 людей, я одна з них.

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

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

Спочатку все так і було. Ми знайшли книжку Еріка Вайнштейна Ruby Wizardry: An Introduction to Programming for Kids, прочитали на Amazon уривки з неї, і нам вона дуже сподобалася. Це була не «суха» теоретична книжка про програмування, а цікава історія, що відбувається в чарівному королівстві. Протягом усієї розповіді герої потрапляють у різні халепи та вибираються з них за допомогою програмування. Ми вирішили, що це гарний варіант, бо нині в дітей є багато цікавих речей — комп’ютерні ігри, планшети, телефони, тож навряд чи вони зацікавляться звичайною книжкою-довідником.

Ми звернулися до «Видавництва Старого Лева», розповіли свою ідею. Вони були раді, бо вже мають досить популярну серію дитячих книг про програмування. Видавництво купило права на переклад і спробувало знайти перекладача. Та виявилося, що книжку про Ruby дуже складно перекладати людині, яка не програмує: казкова історія там тісно переплетена з програмним кодом. Це зовсім не схоже на звичайну художню книжку. Тому редактори видавництва запропонували, щоб хтось із нашої спільноти переклав її (нехай людина без перекладацького досвіду, але з технічними знаннями), а далі текст вичитає і відредагує літературний редактор.

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

Ще одна причина, чому я зголосилася перекладати її: у той час я звільнялася з роботи й планувала взяти творчу відпустку на пів року або й більше. Хотілося на якийсь час зробити перерву, відпочити, озирнутися довкола, робити щось пов’язане з програмуванням, але не програмувати. Тож переклад книжки ідеально вписувався у мій план.

Мені здавалося, що перекладати буде нескладно. Я деякий час вчилася в англомовній школі, багато читаю англійською. Думала, що все буде просто: читаєш речення англійською, перекладаєш українською, читаєш наступне речення... І так до кінця книжки. Гадала, що вдасться перекласти книжку за кілька тижнів. У видавництві мені дали на пробу перші три сторінки, і я взялася до роботи.

Майже одразу зрозуміла, що усе насправді не так просто, як я собі уявляла: я чудово розуміла англійський текст, але мені не вдавалося підібрати українські слова, щоб це було красиво, гармонійно, у стилі казки. Мій переклад здавався дерев’яним, неприродним. Я хвилювалася, що через нього книжка втратить свою магію.

Три години, щоб перекласти одне речення

На другій сторінці книжки була ілюстрація. На ній — напівробот-напівпірат, який каже: Beep boop shiver me circuits!

Beep boop — це щось на кшталт «Бі-біп», а shiver me circuits дослівно перекладається як «тремтіти мене мікросхеми». На цій фразі я застрягла. Не розуміла, як правильно перекласти. На думку спадав варіант «трясця моїм мікросхемам»... Але така граматично-неправильна форма слова me привела мене до думки, що тут, мабуть, якийсь піратський вигук. Пірати мають сленг, який змінює правила англійської граматики, і вони якраз часто замінюють my на me.

Я почала шукати в інтернеті піратські вигуки зі словом shiver і з’ясувала, що справді є піратський вигук Shiver me timbers! Він передає сильне емоційне здивування, українською — щось на кшталт «Сколихнути мої палуби!» чи «Трусити мої палуби!». Звісно, таке дослівно не перекладають, треба було знайти відповідний піратський вигук-здивування українською, і одне зі слів у ньому замінити на «мікросхеми».

Виникло питання: де знайти піратські вигуки українською? Можна було б перечитати «Острів скарбів» або іншу книжку про піратів, перекладену українською, але це зайняло б надто багато часу. Зрештою, я знайшла в інтернеті українськомовну енциклопедію піратів. У ній було багато таких висловів, серед яких і вигуки-здивування. Найбільше підходили, як мені здалося, — «Грім на мою голову!» і «Три тисячі акул мені в селезінку!». Я подумала, що останній буде звучати цікаво та ефектно.

Я перекладала книжку у кав’ярні, і якраз у цей час туди зайшов мій знайомий, фізик за освітою. Розповіла йому, що роблю, і поділилася ідеєю перекладу, яку щойно знайшла. Він вислухав і сказав, що, мабуть, «Три тисячі акул мені в селезінку!» не найбільш вдалий вибір. Загалом акули не надто небезпечні для мікросхем. У цьому плані те, що пов’язане з електрикою — грім і блискавка — може бути для них небезпечнішим. Я подумала і вирішила, що переклад «Грім на мої мікросхеми!» буде кращим. Та мій друг-фізик і з цим не погодився, бо грім — це просто звук, він безпечний, а от блискавка могла б справді зашкодити.

Я довго вагалася, який переклад обрати: зі словом «грім» (це було б більш упізнавано) чи зі словом «блискавка», щоб було більш коректно... Врешті-решт зупинилася на вигуку «Блискавку в мої мікросхеми!». Коли я нарешті визначилася з реченням, побачила, що перекладаю його вже три години. Тоді я зрозуміла, що схожих прикладів буде ще багато і перекладати доведеться довго. Але все-таки наважилася на цей проєкт.

У книжці справді було немало складних для перекладу моментів. Я перечитала величезний словник приказок і фразеологізмів, бо в оригіналі їх багато. Так, наприклад, я знайшла «перший млинець нанівець» для назви розділу про рефакторинг (в оригіналі: Second time’s the charm).

В іншому місці треба було знайти фразу, яка б водночас означала «це зрозуміло» і натякала на дощ або воду. Це зайняло, мабуть, годину, але я знайшла вислів «просто, як води напитися». Це дозволило зв’язати докупи історію з намистом короля, яке забули у ванній.

Код, написаний кирилицею

Перед тим як взятися за переклад, я купила собі «Python для дітей», ця книжка також вийшла у «Видавництві Старого Лева». У ній мене здивувало те, що всі змінні й методи перекладачі назвали кирилицею. Там, де методи фреймворку, залишилися англійські слова, а для всього решти використали кирилицю. Для мене як професійної програмістки це здалося незвичним. Вирішила, що у нашій книжці усі змінні будуть англійською — так, як заведено в програмуванні у всьому світі.

Так я переклала пів книжки, аж до сьомого розділу. Далі побачила, що вона поступово перетворюється на словник англійської мови. Я увесь час намагалася спростити назви змінних, замінити вишукані англійські слова на простіші, і через це повністю втрачалася магія книжки. «Ruby для дітей» побудована так, що читач пише код про описані події. Ті змінні, які є в коді, є і в тексті: вони герої книжки. Мікс англійської та української не працював, я зрозуміла, що треба переробляти. Тоді проконсультувалася з викладачем дитячої школи програмування LITS («Lviv IT-School»), з’ясувала, що вони роблять зі змінними на уроках програмування — називають їх англійською чи українською. Він сказав мені, що зазвичай дітям складно називати змінні англійською (приблизно ⅔ учнів, які вчаться програмувати, мають з цим труднощі), і порадив все-таки називати їх українською чи транслітом.

Я ще довго сумнівалася, бо код з українськими словами мені дуже різав око. Та зрештою вирішила писати змінні українською, як це зробили у «Python для дітей» і в інших книжках з цієї серії. Якщо дитина заплутається у павутині англійських слів і відкладе книжку — це буде гірше, ніж якщо навчиться програмувати зі змінними, записаними кирилицею, а потім просто зрозуміє, що їх треба записувати англійською.

Довелося переробити всі написані приклади коду та усі сім розділів тексту.

Приклади коду в оригіналі веселі й часто римовані. Я намагалась зберегти це у своєму перекладі. Наприклад:

if nil
puts ’Ноги на стіл.’
end

if ’звичайна стрічка’
puts ’Ледь не впала в річку!’
end

case випадкова_дрібничка
when ’зернятко для синички’
puts «Зернятко для синички! Зовсім не дрібничка!»
[...]

Спочатку це було складно. Однак потім, навіть коли я вже просто розмовляла з друзями, на думку спадали цікаві словечка та рими.

В оригіналі автор обіцяє читачам, що програмувати на Ruby — це майже як говорити простою розмовною мовою. Звісно, це так, якщо твоя рідна мова — англійська. Але для українськомовних дітей усе трохи по-іншому. Замість того, щоб додавати примітку про те, що тут автор має на увазі англомовних дітей, ми додали іншу, веселішу:

Щоправда, доведеться вивчити зо 30 слів англійською, щоб програмувати на Ruby. Але я певен: ти знаєш напам’ять навіть більше заклять із книг про Гаррі Поттера, тож вивчити ці нові слова буде не важче, ніж сказати «Алогомора!».

Редакторка з видавництва підтвердила, що перекладач може дозволяти собі такі невеличкі творчі відступи.

В ІТ багато англомовного сленгу, іноді було непросто підібрати українське слово, бо ми звикли вживати ці терміни англійською. Я не відразу здогадалась, як перекладати debugging чи troubleshooting. Доводилось постійно заглядати у словники технічних термінів. Там були цікаві знахідки, наприклад debugging — «зневадження». Звісно, не хотілось вибирати варіанти перекладу, які ніхто не використовує в реальному житті.Тож зупинилась на debugging — «налагодження програм» та troubleshooting — «усунення неполадок».

Деякі мої друзі, у кого є діти, роздруковували окремі розділи книжки й просили дітей прочитати, розказати, що зрозуміло, що ні, що сподобалося, що не дуже. Іноді виявлялося, що діти більше, глибше розуміли певні речі, ніж я очікувала. Вони допомагали визначитися і з варіантом перекладу. Наприклад, у книжці герої виконують код на казковому пристрої, який називається computing contraption. Найбільш точний переклад, мабуть, «обчислювальна штуковина». Але оскільки це дитяче видання, ми ще розглядали інший варіант — «рахувальна штуковина». Врешті-решт дали дітям почитати текст з обома варіантами перекладу і запитали, чи зрозуміли вони, що це такий казковий комп’ютер. «Рахувальна штуковина» перемогла в цьому опитуванні.

Одне з ключових слів у Ruby — yield — добре розуміють усі в Штатах. Там пишуть його на дорожніх знаках «дати дорогу». Тож автор сміливо використовує цю аналогію — що yield означає «дати дорогу іншому блокові коду». В нас немає прямого аналога, і слово yield не використовується на дорожньому знакові, тож ми намалювали нову ілюстрацію для книги, щоб якось пов’язати ці поняття:

Вигуки та жарти, пов’язані з їжею

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

Тож ми у #pivorak створили гугл-документ, у якому будь-хто з команди міг записати усі вигуки, лайливі клятви про їжу, які спадали на думку. Це дуже допомогло. Я відкривала цей документ, надихалася або брала готову фразу, якщо вона підходила.

Іноді я працювала в кав’ярні, бо більшу частину перекладу зробила до карантину. Одного разу дізналася, що баристка, яка там працює, вчилася на перекладацькій справі. Я вирішила не втрачати цієї нагоди й консультувалася з нею. Хоч вона радо допомагала, я намагалася ставити лише одне запитання на один прихід у заклад. Тому зберігала для цієї можливості ті, що були найскладніші для мене. Наприклад, вона мені пояснила таку річ: якщо я перекладаю фразу «Вони їли лише баранину» і розумію, що це стосується історичного контексту, коли баранина була дешевим м’ясом, вважалася їжею бідняків, то для наших читачів дослівний переклад буде некоректним. Читачі краще зрозуміють, про що йдеться, якщо написати «Вони їли тільки хліб і воду». Так само варто було робити з іншими посиланнями на їжу.

Було речення, яке мені ніяк не вдавалося перекласти «And what in breakfast’s good name is chunky bacon, anyway?». Іn breakfast’s good name схоже на фразу in god’s name — заради Бога, або ж in someone’s good name — во ім’я когось. Упродовж розповіді автор часто використовує релігійні вислови, але змінює їх на тему їжі. Я не знала, як це перекласти, щоб зберегти задум і щоб жарт був зрозумілим українським читачам. З цією фразою я прийшла до баристки, і вона порадила мені взяти відому релігійну фразу во Ім’я Отця, і Сина і Святого Духа — а її частини замінити на сніданкові страви. Тож у нас вийшло: «І що таке — во ім’я каші, молока та всього солодкого — строкатий бекон?!».

Чому я переклала chunky bacon як «строкатий бекон» — окрема історія. Chunky переважно перекладають як щось неоднорідної консистенції — зі шматочками чи зі згустками, ну й bacon — бекон. Я довго гуглила цю фразу, намагалась зрозуміти, чому автор її тут використовує і що вона означає. Зрештою знайшла, що це відсилання до іншої книжки про Ruby — Why’s poignant guide to Ruby. Та книжка досить популярна у середовищі Ruby, але українською не перекладена, у нас вона не дуже відома. Там вислів chunky bacon використовують упродовж усієї книжки у значенні дивного типу бекону, про який ніхто не знає. Тому ми придумали переклад «строкатий бекон» — щоб це було химерно, незрозуміло та близько до наміру автора.

Взагалі, в оригіналі книжки було багато схожих моментів — метафор, пародій, приказок, гри слів. Коли я консультувалася з професійними перекладачами, мені часто радили не заморочуватися цим — в оригіналі якийсь вислів може цікаво працювати, а в перекладі вже ні. Казали, що в таких випадках можна просто випустити, видалити фразу, якщо вона не критична для того, щоб розуміти програмування, або додати примітку з поясненням. Але мені хотілося зберегти усі нюанси, настрій, гумор — усю чарівність, яка була в оригіналі. Це було складно, та все-таки у той чи інший спосіб нам вдалося залишити майже всі деталі, без приміток.

Дракониці, лицарки та інші фемінітиви

Я помітила, що автор написав цю книжку з доволі феміністичним настроєм. У казковій історії дракон — це дівчинка, і лицар — дівчинка, і навіть головний королівський сантехнік — теж дівчинка. Окрім того, король не дуже розуміється в програмуванні на Ruby, а королева — ще та хакерка. В сюжеті явно видно намір автора написати так, щоб дівчат і хлопців було порівну, щоб було зрозуміло, що ця книжка — і для хлопчиків, і для дівчат. Я намагалася зберегти це, та іноді з цим також були труднощі.

Візьмемо речення: «Your Majesty!» said the dragon, and she bowed so low that her head nearly brushed the earth. Англійською це нормально звучить, і всі розуміють, що дракон — жіночого роду. Спочатку я подумала, що можна перекласти «дракон сказала» — без фемінітивів. Але коли ще раз перечитала речення, то зрозуміла, що це зовсім не звучить. Я не знала, як називають дракона жіночого роду. На щастя, хтось уже стикнувся з цією проблемою і навіть написав статтю з багатьма варіантами: «дракониха, дракониця, дракончиха, драконянка, драконка, драконша, драконеса, драконелла...». Врешті я зупинилась на дракониці, і редакторка підтримала цей вибір.

Англійською автор звертається до читача you. Я перекладала це як «ти», бо загальний тон книжки легкий, розслаблений. Та англійською це гендерно-нейтральне звернення, а в українській мові, коли звертаєшся на «ти», треба вибирати рід. Зазвичай у таких випадках в українських книжках пишуть усе в чоловічому роді. Наприклад, уже перше речення в книжці могло б звучати приблизно так: «Ти знайшов мою книжку. Чудово!». Так, це звична форма, але я побачила в тому певну несправедливість, наче книжка написана лише для хлопчиків.

Задум автора був інший, тому я будувала звертання так, щоб всюди це було у гендерно-нейтральній формі. Тому перше речення переклала так: «Моя книжка потрапила тобі до рук. Чудово!». І дотримувалися цього принципу впродовж усієї книжки. Замість фрази «якщо ти це зробив, то...» писала «якщо тобі це вдалося, то...» і так далі. Звісно, щоб усе це правильно сформулювати, теж треба було докласти багато часу і зусиль.

Це був справжній crowd-sourced переклад

Мені пощастило, що з перекладом допомагали друзі: люди з core-команди #pivorak, які й подали цю ідею, і просто мої приятелі. Я перекладала книгу в гугл-доці, коли закінчувала якийсь розділ, повідомляла усім про це, просила прочитати текст, написати коментарі. Якщо мені не вдавалося щось перекласти — назви, приказки, гру слів — залишала це англійською і писала коментар: «Будь ласка, побрейнштормте, підкажіть, як перекласти». Люди активно вмикалися в роботу: шукали різні варіанти перекладу, підбирали синоніми, позначали частини, які були незрозумілі, писали, де треба щось виправити. Це дуже допомагало: усі поради й те, що я мала таку підтримку. Фактично вийшов спільний переклад.

Один мій друг у кінці проєкту, коли я вже поспішала, щоб вчасно здати текст, навіть взяв на роботі відпустку на тиждень, щоб зайнятися книгою — він уважно вичитав за мною кожен розділ. Після її виходу я порахувала усіх, хто мені допомагав у цій справі, — аж 12 людей. Це була неймовірна підтримка.

Майже уся група, яка перекладала книгу. Зліва направо: Софія Колісник, Олександра Клочко, Володимир Биньо, Іван Песін, Анна Головченко, Андрій Шийка, Володимир Свередюк, Андрій Ясинишин, Павло Білик, Іра Заяць. Також допомагали Дмитро Косарєв, Оксана Олещенко, Богдан Варщук, Денис Мединський

Я мала на переклад книжки три місяці, але не вклалася в такий термін. Загалом працювала над нею 5 місяців по 4–5 годин на день. Потім я приймала правки літературної редакторки та ще кілька разів вичитувала весь текст, усе перевіряла, але то вже була епізодична робота.

Для спільноти #pivorak це був волонтерський проєкт. Видавництво заплатило нам і за переклад, і за наукову редактуру, але ми використали ті гроші, щоб купити «Ruby для дітей» та передати їх у бібліотеки. Також провели одну благодійну зустріч спільноти, на ній просили людей дарувати гроші на книжки. Загалом закупили 225 видань. Цього вистачить щонайменше, щоб подарувати по одній книжці в усі дитячі бібліотеки Львова і ще трохи — у книгозбірні Львівської області. В мерії нам дали їх список. Нещодавно книжки приїхали з друку, з 14 грудня вже є в книгарнях, тож скоро будуть і в бібліотеках.

Мені здається, що якби я не перекладала, а сама писала схожу книжку про програмування на Ruby, то побудувала б її трохи по-іншому: дала б тільки основи, які потрібні на початковому етапі програмування, але кілька разів по-різному повторила б їх, показала на різних прикладах. Книжка «Ruby для дітей» адресована дітям від 7 років, але у ній є багато складних нюансів мови. В розмовах з програмістами ми з’ясували, що деякі аспекти не знають навіть ті люди, які багато років професійно працюють з технологією Ruby, бо не стикалися в роботі з цим.

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

Крім того, ми збираємося якийсь час підтримувати наших читачів. Вже оформили сторінку в інтернеті: там можна писати питання щодо книжки, ми будемо на них відповідати. Плануємо записувати відео з поясненнями, якщо щось виявиться надто складним.

Переклад книги зайняв дуже велику частину моєї творчої відпустки, але не шкодую про це — я занурилася в іншу сферу, дізналася багато цікавого й справді відпочила. Друзі досі скидають мені різноманітні статті, цікаві історії про те, як перекладають книжки, дарують про це видання. Думаю, що перекладати ще щось схоже я б не наважилася, та й все-таки моя справа і те, що мені найкраще вдається, — програмування. Але «Ruby для дітей» — це проєкт, яким пишаюся.

Похожие статьи:
Описание: JavaScript — универсальный скриптовый язык, весьма гибкий и мощный. JavaScript находит широкое применение как язык описания сценариев...
Чи можуть незрячі люди навчитись програмувати та працювати в IT? Відповідь на це питання знає Роман Боренько, співзасновник Inclusive...
Цього разу DOU Ревізор завітав до TemaBit! Це ІТ-бізнес в структурі Fozzy Group — торгово-промислової групи та українського ритейлера...
Пільговий режим оподаткування для ІТ-галузі варто продовжити, вважає віцепрем’єр-міністр, міністр цифрової трансформації...
Мнение одного разработчика. Пролог Что такое командная работа? Чем команда отличается от группы людей? Предположим,...
Яндекс.Метрика