С кои клавиши да се набират българските букви при фонетична подредба на компютърната клавиатура?

от Димитър Скордев


      При обсъждане на горния въпрос е добре да се вземат пред вид две съществуващи реалности, които имат характер на стандарт  -  едната в резултат на постановления на Министерския съвет, а другата в резултат на масова практика. Това са от една страна транслитерацията, която се използва в българските документи за самоличност, и от друга страна фонетичните клавиатурни подредби, поддържани например от софтуер на инж. Генади Атанасов, на Датекс и на АКТ Софт. При въпросната транслитерация на всяка българска буква отговаря непразен низ от най-много три латински букви, който ще наричаме транслитерационен код на буквата (вариант на тази транслитерация, отличаващ се от нея само по използването на диакритичен знак в кода на "ер голям", е предложен в "Нов правописен речник на българския език", издаден от БАН през 2002 г.). При споменатите фонетични подредби пък на всяка българска буква отговаря ASCII символ от седембитовия диапазон, чрез клавиша за който символ се набира буквата при режим "кирилица" на клавиатурата и който символ ще наричаме клавиатурен код на буквата. Транслитерационните и клавиатурните кодове на главните български букви са показани съответно на втория и на третия ред от таблицата по-долу, а кодовете на малките букви се получават от кодовете на главните по очевиден начин (при транслитерационните кодове се прави замяна на главните букви в тях с малки, а пък клавиатурните кодове се заменят със символите, набирани чрез същите клавиши в режим "латиница", но при ненатиснат клавиш "Shift"). По тази причина ние ще се ограничим по-нататък само с главните български букви без повече да правим това уточнение.

А
Б
В
Г
Д
Е
Ж
З
И
Й
К
Л
М
Н
О
П
Р
С
Т
У
Ф
Х
Ц
Ч
Ш
Щ
Ъ
Ь
Ю
Я
A
B
V
G
D
E
Zh
Z
I
Y
K
L
M
N
O
P
R
S
T
U
F
H
Ts
Ch
Sh
Sht
A
Y
Yu
Ya
A
B
W
G
D
E
V
Z
I
J
K
L
M
N
O
P
R
S
T
U
F
H
C
~
{
}
Y
X
|
Q

      Сравнението между двата вида кодове показва тяхното съвпадане за 19 български букви и различие за останалите. Различието разбира се е неизбежно за седемте български букви Ж, Ц, Ч, Ш, Щ, Ю и Я, чиито транслитерационни кодове имат дължини, по-големи от 1. Понеже различните български букви трябва да имат различни клавиатурни кодове, неизбежно е също да имаме различие за поне една от буквите А и Ъ и за поне една от буквите Й и Ь. Поради тази причина наличните различия за буквите Ъ, Й и Ь също не са особено смущаващи. Доста по-неприятно е обаче различието за буквата В, която освен това се среща и значително по-често в българските текстове. С оглед на по-лесното запомняне и използване на клавиатурните кодове твърде желателно би било при приемане на официален стандарт за фонетична клавиатурна подредба това различие да се отстрани, като новият клавиатурен код на В бъде V (разбира се това би повлякло след себе си промяната на поне още един клавиатурен код  -  този на буквата Ж). Такова леко изменение вероятно би било оптималното за голяма част от хората, които вече са свикнали да използват фонетична клавиатурна подредба при писане на кирилица. Приемането на стандарт обаче трябва да се прави с поглед не само към сегашното положение, но и към бъдещето. В случая би трябвало удобството за бъдещите ползователи на стандарта да има приоритет пред удобството му за нас самите и ние би трябвало да се примирим с някои малки затруднения, които бихме имали след въвеждането му. Поради това целесъобразно е освен гореспоменатото изменение да се направят и още няколко, които да бъдат за доброто на бъдещите ползователи. Направеното предложение от БАН за стандарт е именно в такъв дух.

      Целта на тази бележка е да покажем, че няколко естествено звучащи изисквания, които ще формулираме след малко, влекат с неизбежност клавиатурните кодове на българските букви да бъдат в почти всички случаи онези, които са в предложението от БАН. По-точно, те влекат това за 24 букви, за други четири някои естествени допълнителни съображения също довеждат до такъв резултат, а само за две букви (и то най-рядко използваните в български текстове) стигаме до заключение, отклоняващо се от предложението. Изискванията са следните:

  1. Множеството на клавиатурните кодове на българските букви да остане като цяло същото.
  2. Буквите Щ, Ю, Я (на които отговарят последователности от два звука) и буквата Ь (на която не отговаря отделен звук) да имат небуквени клавиатурни кодове.
  3. Клавиатурният код на всяка от буквите, различни от Ь, които имат еднобуквени транслитерационни кодове, да съвпада с нейния транслитерационен код или със сегашния й клавиатурен код и това да се направи така, че да бъде максимален броят на онези измежду въпросните букви, на които клавиатурните кодове съвпадат с транслитерационните.
  4. Клавиатурните кодове на българските букви с нееднобуквен транслитерационен код и на буквата Ь да се изберат така, че да бъде минимален броят на онези измежду въпросните букви, за които новият клавиатурен код се различава от сегашния.

      Изискването 3 определя еднозначно за 22 от българските букви кои трябва да бъдат клавиатурните им кодове, а именно, те трябва да бъдат показаните в следната таблица:

А
Б
В
Г
Д
Е
З
И
Й
К
Л
М
Н
О
П
Р
С
Т
У
Ф
Х
Ъ
A
B
V
G
D
E
Z
I
J
K
L
M
N
O
P
R
S
T
U
F
H
Y

(т.е. кодовете на тези 22 букви трябва да бъдат както в предложението от БАН). И наистина за всички от споменатите 22 български букви с изключение на В, Й и Ъ това е ясно поради съвпадане на транслитерационните и сегашните клавиатурни кодове, за Ъ е ясно поради съвпадане на транслитерационния й код с клавиатурен код на друга буква, единственото възможно решение за Ъ създава такова положение и за буквата Й, а за буквата В използваме условието за максималност в изискването 3. Оттук и от изискванията 1 и 2 следва, че за клавиатурни кодове на буквите Ж, Ц, Ч и Ш можем да избираме само измежду латинските букви C, Q, W и X, а за клавиатурни кодове на буквите Щ, Ь, Ю и Я  -  само измежду символите  ~{} и  |. При това положение изискването 4 определя еднозначно, че клавиатурните кодове на Ц, Щ и Ю трябва да бъдат досегашните  -  следователно за Ц и Щ трябва да бъдат както е в предложението, а за Ь и Ю не бива да бъдат както е в него. Единствената свобода, която ни оставят изискванията 1 - 4, е следната: за клавиатурни кодове на буквите Ж, Ч и Ш да избираме измежду буквите Q, W и X, а за клавиатурни кодове на Ь и Я  -  измежду символите ~ и {. За да се избере една от така оставащите 12 възможности, може вече да се използват мнемоничните съображения за графична прилика на Ж, Ч и Ш съответно с X, q и W, и съображението, че е добре Я да се набира по-лесно от Ь. Така избраната възможност ще се отличава от предложението от БАН само по това, че ще бъдат разменени клавиатурните кодове на Ь и Ю.

      Пред вид на това, че буквите Ь и Ю са най-рядко използваните букви от българската азбука, резултатът, който получихме, не отхвърля, а по-скоро подкрепя предложението от БАН, ако го сравняваме с евентуални други чувствително по-консервативни предложения (още повече, че значението на използваните тук изисквания не бива да се абсолютизира  -  например някои допълнителни изисквания за ергономичност биха могли да натежат в полза на точното осъществяване на предложението от БАН). Все пак този резултат показва, че може би има известно основание и за модификация на въпросното предложение, състояща се в размяна на клавиатурните кодове на Ь и Ю (такава модификация, не намалявайки броя на буквите със съвпадащи клавиатурни и транслитерационни кодове, би намалила с единица броя на онези, чиито нови клавиатурни кодове ще се различават от сегашните).

      Всъщност в изискванията 2 и 4 могат да се направят такива изменения, отнасящи се до буквата Ь, че ако направените по-горе разсъждения се модифицират в съответствие с тези изменения, да се стига точно до онези клавиатурни кодове, които са в предложението от БАН. Основание за такива изменения би могло да бъде обстоятелството, че Ь се използва в българските текстове многократно по-рядко от коя да е друга българска буква (вкл. и от Ю) и че небуквеният клавиш за |, чрез който понастоящем се набира Ю, има твърде неприятната особеност да бъде поставян на различни места в разните модели клавиатури, разпространени в България. Поради това за бъдещите ползователи на стандарта най-подходящ клавиатурен код на Ь сред сега използваните клавиатурни кодове на български букви вероятно би бил именно символът |. Измененията, за които стана дума, усилват изискването 2, като фиксират в него този избор на клавиатурния код на буквата Ь, а от друга страна те отслабват изискването 4, като не я включват в него. Изменените формулировки на изискванията 2 и 4 изглеждат така:

  2°. Буквите Щ, Ю, Я и Ь да имат небуквени клавиатурни кодове, като клавиатурният код на Ь бъде |.
  4°. Клавиатурните кодове на българските букви с нееднобуквени транслитерационни кодове да се изберат така, че да бъде минимален броят на онези измежду тях, за които новият клавиатурен код се различава от сегашния.

      За да видим какви биха били клавиатурните кодове на българските букви при спазване на изискванията 1, 2°, 3 и 4°, можем да разсъждаваме по начин, подобен на онзи за случая на изискванията 1 - 4. Изискването 3 по същия начин определя кои да бъдат клавиатурните кодове на 22-те български букви, посочени във втората от горните две таблици. Оттук и от изискванията 1 и 2° следва, че за клавиатурни кодове на буквите Ж, Ц, Ч и Ш можем да избираме само измежду латинските букви C, Q, W и X, а за клавиатурни кодове на буквите Щ, Ю и Я  -  само измежду символите  ~{  и  }. При това положение изискването 4° определя еднозначно, че клавиатурните кодове на Ц и Щ трябва да бъдат досегашните, както е и в предложението от БАН. Единствената свобода, която ни остава, е следната: за клавиатурни кодове на буквите Ж, Ч и Ш да избираме измежду буквите Q, W и X, а за клавиатурни кодове на Ю и Я  -  измежду символите ~ и {. Като използваме същите мнемонични съображения за графична прилика както по-рано и съображението, че е добре буквата Я да се набира по-лесно от буквата Ю поради много по-честото срещане на първата в сравнение с втората, стигаме точно до клавиатурните кодове, които съпоставя на българските букви предложението от БАН.

      Очаква се след включването на предложената нова фонетична подредба в българския държавен стандарт тя да получи софтуерно поддържане на ниво операционна система (например в бъдещите версии на Windows да има възможност и за нея, а не само за подредбата БДС, както е в момента). С оглед на по-лесното преминаване към новата фонетична подредба смятам обаче за целесъобразно да има преходен период, през който тя и старата да бъдат равнопоставени от гледна точка на софтуерна поддръжка, като и двете получат софтуерно поддържане на ниво операционна система (както се вижда от страницата "Windows Keyboard Layouts" на сайта на Microsoft, такова положение не би било прецедент за системата Windows  -  за някои езици тя поддържа даже значително повече от три клавиатурни подредби). Това е особено важно заради често срещания случай, когато на един и същ компютър се редуват да работят няколко души  -  тогава би трябвало всеки от тях да може да избира с коя от трите подредби (нова фонетична, стара фонетична и БДС) да работи и превключването от една към друга да става лесно. Ако само новата подредба бъде поддържана на ниво операционна система, а за старата се използват външни програми, има опасност на някои от въпросните компютри да не може да се ползва поддържаната на системно ниво нова фонетична подредба или използването й да бъде силно затруднено. Това би могло да се случи например поради пречки, породени от софтуерен продукт за поддръжка на старата, правещ нежелателни промени в операционната система. Според сведения от инж. Генади Атанасов, дадени през 2002 г., поне тогава някои кирилизиращи продукти, които правят такива промени (и то необратими), са били широко използвани с произтичащи от това неприятни последици. Най-вероятният резултат при подобна ситуация ще бъде това, че единствената фонетична подредба, използвана на такъв компютър, ще бъде старата  -  нещо, което безусловно ще вреди на разпространението на новата (например чрез увеличаване на броя на хората, на които ще им се наложи да свикнат със старата подредба и след това няма да имат желание да свикват и с новата). Мисля, че разумният подход е да се включат в българския държавен стандарт както новата фонетична подредба, така и старата.

      Добавка, направена през февруари 2011 г.  Повече от четири години изминаха, откакто проекто-стандартът БДС 5237:2006 "Клавиатурни подредби на устройства за писане на български език" е бил приет на заседание на Технически комитет 80 при Българския институт по стандартизация, но и досега този проект не е станал действащ стандарт, защото не е подписан от изпълнителния директор на института. Вероятно основна причина за това е неблагоприятният отзвук от обстоятелството, че във въпросния проект се посочва като стандартна българска фонетична подредба на компютърната клавиатура само предложената от БАН нова подредба  -  положение, което е неприемливо за голям брой хора, свикнали с широко разпространената подредба ЯВЕРТЪ. Може би въпросното нежелателно развитие на нещата щеше да бъде избегнато, ако при изработването на проекта беше взето предвид изказаното по-горе мнение да се включат в стандарта както новата фонетична подредба, така и старата.

Дата на предходната версия: 25.02.2011
Дата на настоящата версия: 20.04.2011
(разликата между двете версии е, че е
поправена една правописна грешка)