Два наречја
Напомена: Могућности и поступци које описује ова страна још увек су експериментални. Чекају на матерње говорнике ијекавског наречја српског језика који би их кроз праксу или потврдили, или показали неодрживим.
Садржај
4.1. Специјални случајеви у хибридизацији
4.2. Приписивање измена и прегледа
Увод
Може се рећи да је српски језик понешто необичан, у односу на многе ближе и даље језике, по томе што се, с лингвистичке тачке гледишта, говори у два равноправна наречја и пише са два равноправна писма. То значи да коју год од резултујуће четири усмено-писмене комбинације да користи, одређени говорник може за себе рећи да се служи стандардним српским језиком. Питање је, онда, колико се за једно рачунарско окружење може рећи да је „потпуно преведено на српски“, ако, рецимо, подржава тачно једно наречје и писмо — односно, ако не подржава три четвртине језичког стандарда.
У преводима слободног софтвера на српски, до сада, мало је било проблема са подршком за оба писма. Захваљујући могућности једноставног пресловљавања са ћирилице на латиницу, свако веће тело превода рутински долази на оба писма. Обезбеђивање оба наречја, међутим, показало се повишом пречком, услед два основна проблема. С једне стране, у превођењу учествују махом говорници екавског наречја као матерњег, па су такви и преводи. С друге стране, иако би се превод дао ијекавизовати много брже него што је требало да се преведе на екавски, не би било лако одржавати га, односно пратити током времена измене у изворном материјалу и екавском преводу.
Поменута два проблема доводе до тога да малобројни преводилац-ијекавац, који у данашње време обично одлично познаје и екавски, радије улаже напоре у побољшање тог и таквог екавског превода. Пре него да расипа напоре додатно преводећи на, с техничког гледишта, замало па „још један језик“, од чега овај „претходни“ неће имати никакве користи. Стога, систем за рад на оба наречја који ће бити описан у наредним редовима, тежи да постигне:
- лаку и отпорну на погрешке ијекавизацију чистог екавског текста,
- што лакше одржавање оба наречја превода према променама у извору, и
- у односу на рад само на једном, већи квалитет превода за оба наречја.
Почетна ијекавизација
С обзиром на претходна разматрања, полази се од претпоставке да се оба наречја добијају тако што се текст прво преведе на екавски, па се затим ијекавизује — али, тако да на крају заиста једина разлика између оба текста буде наречје. Ово последње захтева образложење: пошто се ради о темама из рачунарског миљеа, а не о уличном жаргону Београда или Бањалуке, очекује се да један текст исти осим по наречју буде једнако пристао за становнике оба поменута града.
Преведени екавски текст налази се у ПО датотекама, које су обичне текстуалне уз нешто очигледне синтаксе (видети одељак о основној техници). Главна идеја је да се не прави засебан скуп ијекавских ПО датотека, већ да се екавске допуне до хибридних ијекавско-екавских, и потом се као такве и одржавају. У тренуцима када превод треба испоручити уз наступајуће издање софтвера, из хибридних аутоматски се граде крајње екавске и ијекавске ПО датотеке.
Како се ствара хибридни превод? Ради лакшег праћења ко шта ради, узмимо да сарађују четири преводиоца: Иво и Јово, који су ијекавци, и Ера и Која, екавци. Почнимо од примера чисто екавске ПО датотеке по имену story.po, коју су превели Ера или Која, и три поруке у њој (грешка у преводу прве је намерна):
#: prologue.cpp:10 msgid "A record of the Witch River" msgstr "Белешка о Вештичој реци" #: chapter1.cpp:20 msgid "Activities on the dig" msgstr "Делатности на ископини" #: chapter2.cpp:30 msgid "The discovery" msgstr "Откриће"
Јово се баца на прављење хибридног превода. Он преправља екавски у ијекавски превод, али тако да убацује посебан знак, › (даље у тексту значка), где год ијекавска реч почиње да се разликује у односу на екавску — на
#: prologue.cpp:10 msgid "A record of the Witch River" msgstr "Б›иљешка о В›јештичјој р›ијеци" #: chapter1.cpp:20 msgid "Activities on the dig" msgstr "Д›јелатности на ископини" #: chapter2.cpp:30 msgid "The discovery" msgstr "Откриће"
Од оваквог хибрида, нормалан ијекавски превод аутоматски се добија простим избацивањем значака, а екавски се реконструише пресликавањем ›ије→е, ›је→е, ›иј→е, ›ње→не, ›ље→ле, ›ио→ео, ›иљ→ел (уз ређе специјалне случајеве, в. зачкољице).
Пошто је хибридизовао превод, Јово предаје ПО датотеку у ризницу, али тако да припише себи да је прегледао све преводе:
$ poascribe -c modreviewed story.po
Поред тога што је поправио по нешто, Јово је хибридизујући превод могао негде и да погреши. Могао је погрешно да преправи покоју реч — да пропусти да стави значку, или је стави на погрешно место. Ту на сцену ступа Која, који над сада хибридном story.po извршавa:
$ poascribe diff -s modar:jovo,ivo -F sr:ijeref/to-e-s story.po
Ова наредба ће сваки превод који су од последњег прегледа изменили Јово или Иво (-s modar:jovo,ivo), тако да више није исти после аутоматске реконструкције екавског (-F sr:ijeref/to-e-s), изразликовати (diff) у односу на последњи преглед и угњездити разлику у саму датотеку:
#: prologue.cpp:10 #, ediff msgid "A record of the Witch River" msgstr "" "{-Белешка-}{+Б›иљешка+} о {-Вештичој реци-}{+В›јештичјој р›ијеци+}\n" "~~~~~~~~~~\n" "Белешка о {-Вештичој-}{+Вештичјој+} реци" #: chapter1.cpp:20 msgid "Activities on the dig" msgstr "Д›јелатности на ископини" #: chapter2.cpp:30 msgid "The discovery" msgstr "Откриће"
Пођимо с краја. Трећу поруку овде Јово није мењао, због чега није ни узета у обзир за разликовање. Друга порука, иако измењена, није разликована зато што је аутомат утврдио да је реконструисани екавски превод исти као почетни. Која тако нема никаква посла са ове две поруке.
Најзанимљивија је прва порука, у којој је понешто додато и измењено. Коментар са заставицом #, ediff говори да се хибридизацијом нешто изменило у екавском преводу, те да га треба прегледати. До овога је дошло зато што је Јово додао недостајуће ј, па аутомат региструје да реконструисани екавски превод није исти као почетни. У пољу превода дата су два скупа угњеждених разлика у витичастим заградама {-...-} и {+...+}, раздвојена низом тилди. Први говори шта је додато а шта одузето када се упореде почетни и хибридизовани превод, а други кад се упореде почетни и филтером реконструисани екавски превод. Која одавде види да је у екавској варијанти само исправљена грешка. Да је уместо тога видео нову грешку, исправио би је. На пример, да је Јово написао ријеци, без значке, Која би ју је могао додати. Или да је Јово написао Биљ›ешка, Која би преместио значку на право место.
Док прегледа и поправља, Која не мора ручно да уклања угњеждене разлике — посебно не сме да уклања заставицу ediff, јер је неопходна у наредном. Пошто се уверио у исправност разликованих порука, Која преда хибридизовани превод у ризницу, приписавши себи прегледе:
$ poascribe -c modreviewed story.po
Ова наредба ће очистити све угњеждене разлике пре него што преда датотеку у ризницу, а Који као прегледене приписати све поруке са заставицом ediff.
Поред тога што је остварен превод на оба наречја, описаним узајамним дејством Јова и Које постигнуто је и да сваки екавски превод буде још једном прегледан и исправљене уочене грешке, а ијекавизација умногоме заштићена од типфелера какви се могу очекивати у поступку хибридизације — чиме је увећан квалитет превода на оба наречја.
Узајамно одржавање
Хибридизовани превод треба ажурирати како долази до промена и допуна у енглеском извору. Претпоставимо да су измењени изворни текстови прве две поруке из претходних примера, и да је запало Ери да доради превод. Ера је, пак, ијекавски слушао само у Чолићевим песмама, а више и не памти да ли је довршио „Дервиша и смрт“ кад га је читао за лектиру. Али га то неће спречити да успешно вршља по хибридизованом преводу.
Пошто се ПО датотека story.po стопи са најновијим енглеским шаблоном (опет, основна техника пружа детаље о овоме), Ера у датотеци види следеће:
#: prologue.cpp:10 #, fuzzy msgid "{-A record-}{+Records+} of the Witch River" msgstr "Б›иљешка о В›јештичјој р›ијеци" #: chapter1.cpp:20 #, fuzzy msgid "{-Activities-}{+Part of activities+} on the dig" msgstr "Д›јелатности на ископини"
Коментари са заставицом #, fuzzy указују да је енглески извор измењен. У изворним пољима, истим системом угњеждених разлика, дато је шта се тачно променило у извору. Ера на основу овога доправи преводе по екавском наречју, не осврћући се на то што су хибридни. За неке речи му је, наравно, очигледно како их може изменити без уклањања значки и ијекавског, тако да испадне:
#: prologue.cpp:10 msgid "Records of the Witch River" msgstr "Б›иљешке о В›јештичјој р›ијеци" #: chapter1.cpp:20 msgid "Part of activities on the dig" msgstr "Део д›јелатности на ископини"
Види се да је после Ериних измена прва порука остала правилно хибридизована, док другој недостаје ијекавски на првој речи. Ера свеједно преда поруке у ризницу, приписавши измене себи:
$ poascribe -c modified story.po
У неко доба потом, наилази Јово да правилно хибридизује превод који је Ера допунио. Главно је да Јово сада не мора да прође кроз сваку поруку, као што је учинио при почетној хибридизацији. Уместо тога, једном наредбом може да изразликује тачно оне поруке које су измењене откако их је он или Иво (други ијекавац) последњи пут прегледао:
$ poascribe diff -s modar::ivo,jovo story.po
што произведе:
#: prologue.cpp:10 #, ediff msgid "{-A record-}{+Records+} of the Witch River" msgstr "{-Б›иљешка-}{+Б›иљешке+} о В›јештичјој р›ијеци" #: chapter1.cpp:20 #, ediff msgid "{-Activities-}{+Part of activities+} on the dig" msgstr "{-Д›јелатности-}{+Део д›јелатности+} на ископини"
Јово одавде јасно види да је превод прве поруке измењен тачно како треба. У другој поруци види да првој речи у новој верзији превода недостаје хибридизација, те је дода:
#: chapter1.cpp:20 #, ediff msgid "{-Activities-}{+Part of activities+} on the dig" msgstr "{-Д›јелатности-}{+Д›ио д›јелатности+} на ископини"
Као ни Која раније, ни Јово не мора уклања ручно угњеждене разлике, и не сме да уклања заставицу ediff. Пошто заврши са доправљањем хибридизованог превода, Јово преда с приписивањем датотеку у ризницу, као после почетне хибридизације:
$ poascribe -c modreviewed story.po
Касније наилази Која да провери хибридизацију, исто као што је то учинио по почетној хибридизацији, чиме је круг редовног одржавања затворен.
Зачкољице и напомене
Претходно изнесени поступак чини главнину посла око израде хибридног превода, али треба поменути и неке повремене додатне захвате, и објаснити позадину неких техничких решења.
Специјални случајеви у хибридизацији
Пресликавања ›ије→е, ›иј→е, итд. покривају највећи део разлика између ијекавског и екавског, али не сва. Ево једног примера где основна пресликавања не важе:
Лењо се окрете, па се насмеја.
Када би се овде поступило по упуту „значка пре рефлекса“, добио би се хибрид:
Л›ијено се окрете, па се насм›ија.
од кога би се реконструисао необичан/погрешан екавски:
Лено се окрете, па се насмеа.
Решење у оваквим случајевима је просто да се значка дода једно слово пре почетка рефлекса:
›Лијено се окрете, па се нас›мија.
што произведе додатна пресликавања која се могу обрадити једнако као и обична (овде ›лијен→лењ и ›мија→меја). Притом не треба нимало бринути о могућности да се пропусти овакав случај, јер ће аутоматско упоређивање почетног и реконструисаног екавског текста лако указати на такву грешку.
Приписивање измена и прегледа
Техничко срце система очигледно је наредба poascribe. Њена основна намена је контрола квалитета превода, праћењем ко је шта мењао и прегледао. Одређене поруке у ПО датотеци одређени преводилац може у неком тренутку изменити или прегледати, што себи приписује поднаредбама modified, reviewed и modreviewed. Поднаредбе у обзир узимају поруке одређене комбинацијом бирача̂ и филтера̂, опције -s ... и -F ... (ако бирач није изричито задат, користи се подразумевани за дату поднаредбу). У било ком тренутку, поднаредбом diff може се добити разлика између тренутне и неке раније верзије поруке, опет изабране комбинацијом бирача и филтера.
Приписивање ради тако што за сваку нормалну ПО датотеку одржава приписну ПО датотеку, која садржи све тренутне и претходне верзије порука, на основу којих се реконструишу затражене разлике. На пример, ако се нормалне (тј. хибридизоване) ПО датотеке налазе у директоријуму translation, приписне могу бити у translation-ascript, тако да цело стабло изгледа овако:
translation/
story.po
puzzle.po
...
translation-ascript/
story.po
puzzle.po
...
Као и сам превод, и приписне ПО датотеке држе се у ризници система за управљање верзијама.
Наредба poascribe део је Пологије, експерименталног пакета за специјалне обраде над ПО датотекама. Може се добавити из субверзијске ризнице КДЕ-а, на адреси svn://anonsvn.kde.org/home/kde/trunk/l10n-support/pology.
Још неке употребе приписивања
Уколико су ПО датотеке под управљањем верзијама, као што обично јесу, измењене поруке се не могу приписати пре него што се измене предају у ризницу. У постави приписивања наводи се и систем за управљањем верзијама, тако да ће га poascribe консултовати и упозорити кад измене нису предате, одбивши да их припише. Зато је потребно или ручно предати измењене ПО датотеке пре примене poascribe, или, боље, наложити poascribe да то сама учини, опцијом -c (--commit).
Ради праћења измена чак и преко промена у изворном енглеском тексту, као и праћења застаревања и оживљавања порука, после сваког стапања са шаблонима треба приписати измене резервисаном кориснику fuzzy:
$ <стопи-са-шаблонима> $ poascribe -c modified -u fuzzy ...
Важно: Да би приписивање по стапању имало жељени ефекат, неопходно је да се каталози стапају уз опцију --previous при msgmerge.
Аутоматска ијекавизација
Систем хибридизације планиран је уз претпоставку да на располагању не стоји никакав алат за аутоматску ијекавизацију. Уколико би се такав алат ипак нашао, могао би се глатко укључити у поступак хибридизације: лако би било израдити посебну хибридизациону скрипту која ће сваки екавски превод у ПО датотеци провући кроз ијекавизатор, а затим екавски и ијекавски превод стопити у хибридни. Притом, ијекавизатор не мора да буде непогрешив — Јово би прво прогурао ПО датотеку кроз хибридизациону скрипту, а потом прегледао све њоме измењене поруке. Уз претпоставку да је ијекавизатор иоле пристојан, то би Јову значајно скратило посао.
Даље, ако већ аутоматски ијекавизатор не постоји на почетку, могао би се постепено градити како напредује хибридизација — као што се од хибридизованог превода може аутоматски добити било екавски било ијекавски, тако се могу сакупљати пресликавања екавски→ијекавски (одн. хибридизовани). Аутомат би скупљао сирове парове, а човек (нпр. Јово, али лако и Која) могао би их повремено уопштавати; нпр. сирово пресликавање подразумевану→подразум›ијевану, могло би се афиксно уопштити као подразумев-→подразум›ијев-, и сл. Ова би правила потом користила скрипта за аутоматску хибридизацију, на начин описан у претходном пасусу. Дакле, што би хибридизација више напредовала, то би Иво и Јово све мање ручно, а све више аутоматски хибридизовали.
[ уреди ]
КДЕ на српском