Калісьці ў школе, на ўрокі беларускай мовы настаўніца прыносіла тэксты і песьні, якія яна сама друкавала на друкавальнай машынцы. На той машынцы быў толькі расейскі шрыфт, і яна заміж беларускай літары "і" ставіла лічбу "1". Гэта кідалася ў вочы, але мы выдатна разумелі, што там маецца на ўвазе, і маглі прачытаць тэкст.
Час друкавальный машынак прайшоў, але праблема адсутнасьці літары "і" у расейскай раскладцы нікуды не падзелася. І таму і зараз тыя, у каго няма беларускай раскладкі, але спатрэбілася напісаць беларускае слова ці фразу, часта замяняюць літару "і". І замяняюць яе звычайна на літару "i" з ангельскай раскладкі. І тут становіцца цікава..
Насамрэч, беларуская "і" і ангельская "i" - розныя літары. У кадыроўцы Юнікод беларуская "і" займае пазыцыі U+0456 (малая) і U+0406 (вялікая); ангельская "i" - пазыцыі U+0069 (малая) і U+0049 (вялікая) (афіцыйна, першая - "беларуска-украінская", а другая - "лацінская").
Галоўная прычына для такога разьмежаваньня - неабходнасьць праграмнага разрозьненьня дзьвюх літараў. Самае відавочнае прымяненьне: сартаваньне. Напрыклад, чалавек будзе ведаць, что слова Pittsburgh ідзе пасьля слова Philadelphia, а слова Пінск ідзе пасьля слова Петрыкаў; а калі сьпіс гарадоў будзе сартаваць праграма, то нябачная замена літары перанясе "Пiнск" перад Паставамі - бо лацінскія літары павінныя ісьці раней за кірылічныя. Другое прымяненьне - пошук; напрыклад, пошук па слову "Пiнск" не знаходзіць нічога ў Картографе, хоць горад Пінск там, відавочна, ёсьць. І калі пры дадаваньні новага гораду, напрыклад, заміж "Слонім" напісаць "Слонiм", выкарыстоўваючы "i" з ангельскай раскладкі, то тыя, ў каго раскладка беларуская, яго ня знойдуць.
Нажаль, той факт, што гэтыя дзьве літары выглядаюць аднолькава, хутчэй шкодны, чым карысны. Калі б наша "і" хоць крышачку адрозьнівалася (як, напрыклад, адна зь дзьвюх турэцкіх "ı"), то мы б маглі візуальна заўважыць праблему і выправіць яе. А так - праблема праходзіць побач з намі незаўважнай. Напрыклад, сайт самай буйной дзяржаўнай беларускамоўнай газэты "Звязда" выкарыстоўвае лацінскую "i" заміж беларускай ва ўсіх артыкулах; чытачы гэтага не заўважаюць, і таму ня пішуць аўтарам сайту, каб тыя выправілі праблему - а ў выніку нядзіўна, што іх артыкулы можа быць цяжка знайсьці, ці пры перакладзе атрымліваецца "решили показать болгарскому "Лiтаксу", что так с гасцямi абыходзiцца нельзя".
Праверыць, якая менавіта "і" выкарыстаная там ці тут, ня так і проста. Я выкарыстоўваю такія варыянты: скапіраваць тэкст у праграму, якая не падтрымлівае Юнікод (у мяне - Far Manager), ці пашукаць у Google слова з "плюсікам" наперадзе, і параўнаць вынік з правільным словам з "плюсікам" (гл. пошукі па +мiнск (77900 вынікаў) і +мінск (2330000 вынікаў)). А для таго, каб уставіць літару "і", калі ў вас няма беларускай раскладкі, прасьцей за ўсё скапіраваць яе адкуль-небудзь, дзе яна дакладна беларуская, ці паспрабаваць "уводзіць праз код" так: уключыце Num Lock, затрымайце Alt, і ўводзьце на бакавой клявіятуры 0178 ці 0179 (вялікая і малая літары).
Няхай жыве наша "і"! :)
update: вядома, праблема з падабенствам літар - ня толькі ўласна беларуская. У расейскай мове ёсьць літара "с", якая выглядае так жа, як лацінская літара "c"; і бываюць выпадкі, калі іх блытаюць - напрыклад, гл. пошук па +моcква. А самым цікавым прыкладам такой блытаніны для мяне была доўгая дыскусія на MusicBrainz пра тое, пісаць "Flëur" ці "Flёur" - з расейскай ці альбанскай літарай "ё"; перамагла альбанская.
p.s. калі вы распрацоўшчык і чытаеце па-ангельску, рэкамэндую Уводзіны ў юнікод для праграмістаў ад Джоэля Спольскага.
Самы страх, калі падобная падмена пралазіць (ці яе наўмысна падсоўваюць;)) у зыходны код: выглядяе нармальна, але не кампілюецца, хоць трэсьні ;)
Дзякуй за добры пост.
А для таго, каб уставіць літару "і", калі ў вас няма беларускай раскладкі, прасьцей за ўсё ўсталяваць беларускую раскладку, каб у будучыні такія пытаньні не паўставалі %)
Цікавы пост. Ніколі пра гэта нават не думаў :) Праграмэрская галава!!!
Самы прыкол у тым, што нават калі ўсё правільна напісаць, то «І» ўсё роўна трапляе перад «А», а «і» — пасьля «я», тобо Івянец будзе ісьці перад Берасьцем, а Пінск — пасьля Полацка.
Як ні круці, але ад напісаньня ўласнага кампаратара тут усё роўна нікуды не падзецца.
zedlik,
гэта таму што ў самім Юнікодзе сартыроўка не ўбудаваная, і калі проста па "кодзе" літары сартаваць, атрымліваецца такая трасца.
Але калі сартаваць спэцыяльнымі бібліятэкамі, усё будзе нармальна. Уласны ровар вынаходзіць ня варта - усё ўжо напісана. Гл. ICU Project - я праверыў, гэтая бібліятэка выдатна Івянец і Пінск сартуе.
А калі ты пра Вікіпэдыю, то я цябе разумею - сам заўважыў, пакуль пост пісаў :). Паглядзі на 5-гадовай даўніны баг і мой апошні камэнт; гэта можна пафіксіць, толькі трэба, каб хтосьці заняўся.
Ihar, так, я пра гэта і казаў :)
Дзякуй за спасылку на ICU, трэба будзе паспрабаваць пры нагодзе.
Ну і сапраўды, сартаваньне тычылася Вікіпэдыі, дакладней, калі я пісаў свайго бота. Хаця напісаць свой параўнальнік шмат часу і не заняла.
Што тычыцца бага, то сапраўды, рэч патрэбная, але на маю думку, асноўная праблема ў тым, што каб дадаць гэтую бібліятэку ў php, на якім напісаная MediaWiki, трэба спачатку ўсталяваць яе ў сыстэму, дадаць экстэншан і пасьля яшчэ апрацоўваць напільнікам. Тобо спосаб не працуе, калі размова ідзе пра рухавік сайту, якім зьяўляецца MediaWiki. Але ўсё роўна, сартаваньне ў php абсалютна неэфэктыўнае і думаецца мне, што асноўная частка яго адбываецца ў базе зьвестак, а mysql ня мае супастаўленьня нават для беларускай мовы, ня кажучы ўжо пра 200 іншых, зь якімі працуе MediaWiki.
Карацей, хацеў бы я памыляцца.
Post a Comment