31 жніўня, 2009

Літара "і"

Калісьці ў школе, на ўрокі беларускай мовы настаўніца прыносіла тэксты і песьні, якія яна сама друкавала на друкавальнай машынцы. На той машынцы быў толькі расейскі шрыфт, і яна заміж беларускай літары "і" ставіла лічбу "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. калі вы распрацоўшчык і чытаеце па-ангельску, рэкамэндую Уводзіны ў юнікод для праграмістаў ад Джоэля Спольскага.

Камэнтары 6 камэнтароў
skepsys выказаўся

Самы страх, калі падобная падмена пралазіць (ці яе наўмысна падсоўваюць;)) у зыходны код: выглядяе нармальна, але не кампілюецца, хоць трэсьні ;)

Дзякуй за добры пост.

devnu11 выказаўся

А для таго, каб уставіць літару "і", калі ў вас няма беларускай раскладкі, прасьцей за ўсё ўсталяваць беларускую раскладку, каб у будучыні такія пытаньні не паўставалі %)

dyk-by выказаўся

Цікавы пост. Ніколі пра гэта нават не думаў :) Праграмэрская галава!!!

zedlik выказаўся

Самы прыкол у тым, што нават калі ўсё правільна напісаць, то «І» ўсё роўна трапляе перад «А», а «і» — пасьля «я», тобо Івянец будзе ісьці перад Берасьцем, а Пінск — пасьля Полацка.

Як ні круці, але ад напісаньня ўласнага кампаратара тут усё роўна нікуды не падзецца.

Ihar Mahaniok выказаўся

zedlik,

гэта таму што ў самім Юнікодзе сартыроўка не ўбудаваная, і калі проста па "кодзе" літары сартаваць, атрымліваецца такая трасца.

Але калі сартаваць спэцыяльнымі бібліятэкамі, усё будзе нармальна. Уласны ровар вынаходзіць ня варта - усё ўжо напісана. Гл. ICU Project - я праверыў, гэтая бібліятэка выдатна Івянец і Пінск сартуе.

А калі ты пра Вікіпэдыю, то я цябе разумею - сам заўважыў, пакуль пост пісаў :). Паглядзі на 5-гадовай даўніны баг і мой апошні камэнт; гэта можна пафіксіць, толькі трэба, каб хтосьці заняўся.

zedlik выказаўся

Ihar, так, я пра гэта і казаў :)

Дзякуй за спасылку на ICU, трэба будзе паспрабаваць пры нагодзе.

Ну і сапраўды, сартаваньне тычылася Вікіпэдыі, дакладней, калі я пісаў свайго бота. Хаця напісаць свой параўнальнік шмат часу і не заняла.

Што тычыцца бага, то сапраўды, рэч патрэбная, але на маю думку, асноўная праблема ў тым, што каб дадаць гэтую бібліятэку ў php, на якім напісаная MediaWiki, трэба спачатку ўсталяваць яе ў сыстэму, дадаць экстэншан і пасьля яшчэ апрацоўваць напільнікам. Тобо спосаб не працуе, калі размова ідзе пра рухавік сайту, якім зьяўляецца MediaWiki. Але ўсё роўна, сартаваньне ў php абсалютна неэфэктыўнае і думаецца мне, што асноўная частка яго адбываецца ў базе зьвестак, а mysql ня мае супастаўленьня нават для беларускай мовы, ня кажучы ўжо пра 200 іншых, зь якімі працуе MediaWiki.

Карацей, хацеў бы я памыляцца.

Post a Comment

Пра мяне

Ігар Маханёк

Інжынэр-праграміст у Google.
Інфармацыйны гік.
Сам зь Менску, але зараз жыву ў швайцарскім Цюрыху.

ihar@mahaniok.com
@mahaniok_be у Twitter

Падпішыся Стужка


Падпісвайцеся на мой блог у Google Reader, па e-mail, альбо дадайце [info]mahaniok_be ў фрэндстужку ў ЖЖ.
Альбо проста фолаўце мяне ў твітэры, я зьмяшчаю ўсе спасылкі там:

Friend Connect Чытачы

Калі ласка, далучайцеся.

Мой профіль на Friendfeed Я ў інтэрнэце

Twitter


Friendfeed

Заўвага

Мае думкі і выказваньні могуць не адлюстроўваць пазыцыю майго працадаўца.