Куни кеча блогимда кириллдан лотинга (ёки аксинча) ўгирувчи макрос ва уни қандай ўрнатиш ҳақида ёзгандим. Ўша блогпостда макроснинг хатоларини ҳам бирма-бир кўрсатиб ўтгандим. Кўпчиликда бу қизиқиш уйғотганини ҳисобга олиб, ушбу макроснинг хатоларини тўғрилаш ва бундан фойдаланувчиларга қулайлик уйғотиш лозимлиги ҳақида ўйлаб қолдим. Компьютер дастурларига, боз устига имло билан боғлиқ лойиҳаларга қизиқишим туфайли мазкур масалани ижобий ҳал этиш учун уруниб кўрдим. Менимча, баъзи натижалар пайдо бўлди. Ҳозирда макросдаги қуйидаги хатоликларни бартараф этдим, текшириб кўришингиз мумкин. Хатоларни қандай бартараф этганлигим ҳақида ҳам тўхталдим, сабабики, худди шундай аналог дастурларда ҳам шунга ўхшаш хатоликлар бўлса, муаллифлари тўғрилаб қўйиши мумкин. Масалан, alif.uz сайти ёки бошқалар.
Кириллдан лотинга:
1. Кирилл ва лотинда ёзилишида фарқ қиладиган сентябрь-sentabr, октябрь-oktabr, бюджет-budjet каби сўзларни энди “sentyabr”, “oktyabr”, “byudjet” деб ўгирмайди, мазкур хатолик тўғриланди.
Муаммони бартараф этиш учун шундай сўзлар рўйхати макросга жойланди.
2. Сўз ўртасида унлидан кейин келган “е” ҳарфи билан боғлиқ муаммо ҳам бартараф этилди. Биламизки, имло қоидаси бўйича, унлидан кейин келган “е” ҳарфи “ye” кўринишида ёзилади. Буни асосан фамилияларда кўришимиз мумкин. Масалан, Атоев-Atoyev, Боқиев-Boqiyev. Илгари макрос шундай кўринишдаги сўзларни Atoev, Boqiev деб ўгирар эди. Ҳозирда имло қоидаси бўйича ўгиради.
Муаммони бартараф этиш учун “ае”, “ее”, “ёе”, “ие”, “ое”, “уе”, “яе”, “юе” каби сўз бирикмалари формулага туширилди.
3. “Ц” ҳарфи билан боғлиқ барча муаммолар бартараф этилди. Эндиликда “ц” ҳарфи кичик ҳарф билан сўз бошида келганда “ts” дея хато ўгирмайди. Яъни “цирк”ни “tsirk” эмас, энди “sirk” ўгиради.
Муаммони бартараф этиш учун “ц” ҳарфи билан бошланувчи сўзлар рўйхати макросга киритилди. Рўйхат билан бу ердан танишишингиз мумкин.
Шунингдек, илгари макрос имло қоидаси бўйича “ц” ҳарфи сўз ўртасида ундош ҳарфдан кейин келганда “ts” дея ўгирар эди. Масалан, акция – aktsiya. Ушбу муаммо ҳам бартараф этилди. Ҳозирда, акция – aksiya дея ўгиради.
Муаммони бартараф этиш учун барча ундош ҳарфлар билан “ц” ҳарфининг бирикмаси формулага туширилди. Масалан, “бц-bs”, “вц-vs”, “гц-gs” ва ҳ.к.
Кўриб турганингиздек, кириллдан лотинга ўгиришда ҳамма хатоликлар тўғриланди.
Лотиндан кириллга:
1. Илгари макрос катта ҳарфлар билан ёзилганда “YU”, “YO”, “YA”, “SH”, “CH” каби ҳарф бирикмаларини “ЙУ”, “ЙО”, “ЙА”, “СҲ” деб ўгирар эди. Масалан, “AQSH”ни “АҚСҲ” каби. Ҳозирда ушбу муаммо бартараф этилди.
Муаммони бартараф этиш учун муаммоли сўз бирикмалари макросга катта ҳарфларда ҳам киритиб чиқилди. Масалан, “SH-Ш”, “CH-Ч” каби.
2. Кирилл ва лотинда ёзилишида фарқ қиладиган сентябрь-sentabr, октябрь-oktabr, бюджет-budjet каби сўзларни энди “сентабр”, “октабр”, “буджет” деб ўгирмайди, мазкур хатолик тўғриланди.
Муаммони бартараф этиш учун шундай сўзлар рўйхати макросга жойланди.
3. “Ц” ҳарфи билан боғлиқ баъзи муаммолар бартараф этилди. Эндиликда “ц” ҳарфи сўз бошида келганда “с” дея хато ўгирмайди. Яъни “Sirk”ни “Сирк” эмас, энди “Цирк” ўгиради. Бу муаммо катта ҳарфлар билан ёзилганда ҳам, кичик ҳарфлар билан ёзилганда ҳам бартараф этилди.
Муаммони бартараф этиш учун “ц” ҳарфи билан бошланувчи сўзлар рўйхати макросга киритилди. Рўйхат билан бу ердан танишишингиз мумкин.
Ҳозирча, лотиндан кириллга ўгиришда 2 та хатолик қолди. Бири сатр бошида келган “Э” ҳарфини “E” деб (“Erkin-Эркин”) ўгириши бўлса, иккинчиси сўз ўртасида келган “ц” ҳарфи билан боғлиқ муаммо. Биринчисини қанақа бартараф этишни билмадимку, лекин иккинчи муаммони ечиш учун ундошдан кейин “ц” ҳарфи келадиган деярли барча сўзлар рўйхатини тузиб чиқдим. Уларни макросга ҳам киритдим, фақат макрос ҳажми 64 кб.дан ошиб кетганлиги сабабли, ишга тушириш имкони бўлмади. Менимча, макрос ҳажми 64 кб.дан кўпайиб кетса, Microsoft Word дастури қабул қилмас экан.
4. Лотин ёзувида “мўътабар”, “мўъжиза”, “мўжаз”, “мўътадил” каби сўзлар ёзилганда “ў” ҳарфидан кейинги айириш белгиси тушиб қолади. Яъни, “mo’tabar”, “mo’jiza” каби. Мана шундай сўзлар билан боғлиқ муаммолар ҳам бартараф этилди.
Муаммони бартараф этиш учун шундай сўзлар рўйхати макросга жойланди.
Дастурчи дўстларимиздан илтимос:
Дастурлаш тилини тушунадиган, шу соҳада фаолият олиб бораётган ва инсонлар мушкулини осон қилишни дилига тугиб қўйган дастурчи дўстларимиздан иккита илтимосимиз бор:
1. Мана шу макросларни автоматик усулда Microsoft Word дастурига ўрнатишни имконини қилиб беришса яхши бўлар эди. Масалан, *.exe форматидами ёки бошқача усулдами, шундоқ “Далее” қилиб, осонгина устоновка қилишни имконини яратиб беришса, макросни қандай ўрнатишни расмлар билан тушунтирган мақолани тайёрлашга кетган вақтим ва меҳнатимга ҳам рози бўлар эдим, рости!
2. Лотиндан кириллга ўгиришдаги юқорида келтирилган иккита муаммони бартараф этишда кўмак беришса. Айниқса, “ц” ҳарфи билан боғлиқ. Мен “ц” ҳарфи иштирок этган деярли барча сўзларнинг рўйхатини тузишга ҳаракат қилдим. Ўша сўзларни макросга киритиб, лотиндан кириллга ўгираётганда муаммосиз ўгиришига ёрдам беришса. Юқорида айтганимдек, ўзим ҳам ушбу ишни қилиб кўрдим, фақат файл ҳажми билан боғлиқ муаммога дуч келдим ва уни бартараф этишга дастурий билимларим етмади.
Олдиндан раҳмат!
BAribir kamchilik ko'zga tashlanib turadi. Mana masalan, lotinda siz so'z boshida "Yer" deb yozsangiz kirillda "Эр" deb tarjima qilinadi. Yoki lotinda yoziladigan "yod" so'zini kirillda ikki xil varianti bor: ёд (yodlamoq she'rni), йод (aptekada sotiladigan yod) xo'sh, lotinda "yod" deb yozilsa kirillda qaysi birini tarjima sifatida chiqarib beradi.Shuningdek kirillda ayirish belgisi (ъ) bilan yoziladigan so'zlarning ayrimlarida, ya'nimkim o' harfidan so'ng keladigan tutiq belgili so'zlarda tutuq belgisi qo'yilmaydi. Masalan : mo'tabar, mo'jiza. Bu kabi so'zlarnbi kirillda tarjima qilinganda ham o'sha ayirish belgi(ъ)si tushib qoladi. Bu kabi kamchiliklar ham bor