Tajų rašto (ภาษาไทย) transliteravimas į lotyniškus rašmenis nėra mandagus akademinis žaidimas ar paviršutiniškas dizaino pratimas. Tai brutalus dviejų visiškai nesuderinamų kalbinių ir inžinerinių pasaulėžiūrų susidūrimas. Vakarų lotyniškoji abėcėlė yra griežtai linijinė, kurčia garsų aukščiui ir sudaryta iš 26 simbolių, kuriuos Romos imperijos laikais kariai ir pirkliai dėliojo iš kairės į dešinę. Tajų raštas – tai daugiamatė pietų indiškojo paveldo abugida, kurioje balsiai sklando virš priebalsių, raitosi po jais, šoka priešais juos arba apgaubia iš visų pusių, o akustinius tonus reguliuoja griežtas matematinis būsenų automatas. Šis įrankis sukurtas šiam atotrūkiui įveikti deterministiškai, be rinkodaros sekiklių ir be serverius dustančio JavaScript balasto.

Tajų rašto fizika: 3 baitų UTF-8 ir šviesolaidžių fotonų realybė

Daugelis Vakarų programuotojų naiviai įsivaizduoja, kad vienas simbolis tekste lygus vienam baitui. Lotyniški ASCII rašmenys (nuo 0x00 iki 0x7F) telpa į vienintelį 8 bitų baitą. Tačiau tajų Unicode blokas (U+0E00U+0E7F) kintamo ilgio UTF-8 koduotėje reikalauja lygiai trijų baitų kiekvienam grafeminiam vienetui (struktūra 1110xxxx 10xxxxxx 10xxxxxx). Pavyzdžiui, pirmoji tajų abėcėlės raidė Ko Kai (ก, Unicode U+0E01) tinkle virsta heksadecimalia seka 0xE0 0xB8 0x81.

Tai nėra abstraktus teorinis skirtumas – tai termodinaminė ir fizinė realybė magistraliniuose interneto tinkluose. Standartiniame eterneto pakete, kurio maksimalus perdavimo vienetas (MTU) yra 1500 baitų, lotyniškas tekstas sutalpina apie 1460 naudingų simbolių. Analogiškas tajų tekstas tą patį paketą užpildo vos po 480 simbolių. Magistraliniuose povandeniniuose šviesolaidžiuose lazeriniai moduliatoriai turi sugeneruoti trigubai daugiau fotonų impulsų, kad perduotų tą pačią semantinę žinutę. Maršrutizatorių komutatoriai išeikvoja trigubai daugiau Džoulio šilumos, apdorodami ir buferizuodami trigubai didesnį baitų srautą. Transliteravus tajų tekstą į lotynų rašmenis, duomenų pėdsakas fiziškai susitraukia tris kartus, tausodamas procesoriaus L1/L3 podėlio (cache) eilutes ir pralaidumo resursus.

Scriptio Continua: teksto analizatorių ir programuotojų košmaras

Lotynų kalbų tekstų apdorojimas yra palaima kompiliatorių kūrėjams: žodžiai čia privalomai atskiriami dieviškuoju tarpo simboliu (0x20). Tajų kalboje žodžiai rašomi ištisiniu srautu – scriptio continua. Tarpas tajų rašte naudojamas tik kaip sintaksinis stabdis, atitinkantis kablelį, kabliataškį ar sakinio pabaigos tašką.

Paprastam algoritmui, bandančiam išskaidyti tajų sakinį į atskirus žodžius be žodyno, kyla O(2N-1) kombinatorinis sprogimas. Dešimties simbolių seka be skyriklių turi 512 galimų padalijimo variantų, o ilgesnis sakinys akimirksniu pakabina standartinį procesoriaus ciklą. Norint teisingai nustatyti žodžių ribas, inžinieriai privalo naudoti Viterbi kelius orientuotuose acikliniuose grafuose (DAG) arba sudėtingus ICU RuleBasedBreakIterator Trie medžius. Mūsų konverteris šią kliūtį apeina deterministine skiemenų transliteracija, paversdamas tajų grafemas aiškiais lotyniškais fonetiniais blokais be gigabaitinių modelių apkrovos.

Akustinė fonetika: penki tonai prieš „aklą“ lotynų abėcėlę

Romėnų sukurta lotynų abėcėlė yra akla ir kurčia intonacijos aukščiui – ji buvo sukurta kalboms, kuriose intonacija perteikia ne žodžio reikšmę, o tik emociją ar klausiamąjį pobūdį. Tajų kalboje tonas yra fonema: pakeitus balso stygų įtempimą ir pagrindinį dažnį (F0, svyruojantį tarp 100 Hz ir 300 Hz), radikaliai pasikeičia žodžio prasmė. Tajų kalboje egzistuoja 5 tonai: vidurinis, žemas, krentantis, aukštas ir kylantis.

Kadangi lotynų raštas neturi toninių simbolių, užsieniečiai tajų užrašus skaito visiškai neteisingai. Tuo tarpu pats tajų raštas veikia kaip griežtas baigtinių būsenų automatas (Finite State Machine). Visi 44 priebalsiai skirstomi į tris klases: viduriniąją (กลาง), aukštąją (สูง) ir žemąją (ต่ำ). Skiemens toną lemia griežta tiesos lentelė: priebalsio klasė, balsio ilgis (trumpas ar ilgas), vienas iš keturių toninių diakritinių ženklų bei skiemens pabaiga – „gyvas“ (besibaigiantis balsiu ar sonoriniu priebalsiu) arba „miręs“ (užkirstas sprogstamuoju garsu, pvz., -p, -t, -k). Tai, kas turistui atrodo kaip chaotiška kaligrafija, iš tikrųjų yra preciziška loginė schema.

Istorija: nuo 1283 m. karaliaus Ramkhamhaengo iki Bankoko taksi chaoso

Tajų rašto ištakos siekia 1283 metus, kai Sukhothai karalystės karalius Ramkhamhaengas Didysis iš senojo khmerų rašto suformavo pirmąją unifikuotą tajų abėcėlę. Kadangi tajų vienuoliai šimtmečiais perrašinėjo šventuosius pali ir sanskrito tekstus, tajų rašte atsirado gausybė perteklinių raidžių, skirtų išsaugoti indiškąją etimologiją, nors šnekamojoje tajų kalboje šie garsai skamba visiškai vienodai.

Šis istorinis bagažas lėmė tikrą chaosą moderniojoje epochoje. 1999 m. Tailando Karališkasis institutas patvirtino RTGS (Royal Thai General System of Transcription) sistemą. Užuot išsaugojusi tikslią rašybą, RTGS pasirinko supaprastintą tarimą: atsisakė tonų ženklų ir suvienodino balsius. Štai kodėl pagrindinis Bankoko oro uostas oficialiuose dokumentuose rašomas Suvarnabhumi (išsaugant sanskrito šaknis suvarṇa [auksas] + bhūmi [žemė]), tačiau vietiniai gyventojai jį taria Suvanapum. Turistai, bandantys taksi vairuotojui perskaityti gatvės pavadinimą iš lotyniškos lentelės, dažnai lieka nesuprasti būtent todėl, kad lotyniška transkripcija atėmė iš žodžio esminį elementą – akustinį toną.

SaaS prenumeratų absurdas: 25 metų senumo C kodo perpakavimas

Šiuolaikinis internetas perpildytas sintetinių „SaaS sprendimų“, kurie paprasčiausias bazines funkcijas bando paversti paslauga su mėnesiniu mokesčiu. Įveskite į paiešką tajų kalbos transliteraciją, ir pamatysite dešimtis „debesų API“ platformų, reikalaujančių registracijos, API raktų ir nuolatinių mėnesinių prenumeratų. Tačiau po jų blizgančiais puslapiais slepiasi tas pats atvirojo kodo ICU (International Components for Unicode) bibliotekos C kodas, kurį IBM, „Apple“ ir „Unicode Consortium“ inžinieriai tobulina dar nuo 1999 metų.

TOOL GIGA laikosi radikalaus Lean principo. Šis įrankis veikia tiesiogiai per serverio PHP ext-intl ICU taisyklių rinkinį (Thai-Latin / Latin-Thai, integruojant ISO 11940 standartus). Čia nėra jokių išorinių bibliotekų, jokių lėtinančių JavaScript paketų ir jokio slapukų sekimo. Rezultatas pateikiamas akimirksniu, deterministiškai ir be jokių dirbtinių mokesčių.