Кодирането на езиковата поддръжка (locale) е в формат
език[_територия][.кодовомножество][@изменение],
където език е някой от ISO 639 кодове за езици,
територия е някой от ISO 3166 кодове за държави,
а кодовомножество е разпознавател за кодова таблица,
например ISO-8859-1 или UTF-8.
За повече сведения, за формата и променливите от обкръжението,
с които се настройва езиковата поддръжка,
вижте страница setlocale(3) от ръководството,
което става като се изпълни командата "man 3 setlocale".
За да се получи списъка с всички поддържани езици, се изпълнява командата "locale -a"
(виж страница locale(1) от ръководството).
Първо се проверят съществуващите настройки за български език.
За целта, през някои от виртуалните терминали, се влиза в системата като свръх-потребител.
Превключването между наличните шест, става със съчетанието от клавиши [CRTL]+[ALT]+[Fn],
където n е от едно до шест.
Изпълняват се командите:
# locale -a | grep bg
bg_BG
bg_BG.utf8
# LANG=bg_BG locale charmap
CP1251
# LANG=bg_BG.UTF-8 locale charmap
UTF-8
Заб.: знака '#' е т.н. prompt (показалец) на интерпретатора на команди (SHELL) и не е част от командите !
Резултатите показват, че системата притежава български настройки
за bg_BG и BG_BG.UTF-8, като кодовите таблици са съответно CP1251 и UTF-8.
Първата кодова таблица е осем-битова и е фирмен стандарт,
а втората е за UNICODE в UTF-8 кодиране.
Освен тези две таблици, за кирилица се използват и
осем-битовите кодови таблици ISO-8859-5 и KOI8-R.
Таблицата ISO-8859-5 е общоприет международен стандарт и се поддържа
от всички операционни системи, с поддръжка на кирилица.
KOI8-R е стандарт, който никога не е бил приет за официален.
Той е използван на компютрите отпреди ерата на IBM-PC.
Впоследствие намира приложение в клиентите за електронна поща.
Освен KOI8-R съществуват и кодировки KOI8-U, KOI8-T, които добавят
липсващи знаци за кирилица, използвани в различни езици.
На Линукс поддръжката на KOI8-R е стабилна.
В момента ISO стандарта измести KOI8-R и е за предпочитане,
тъй като определя много повече знаци за кирилица от използваните в България и Русия.
Следващата таблица показва езиковите настройки в Линукс за държавите използващи кирилица:
| държава |
местоположение (език) |
кодова таблица |
| Беларус |
be_BY |
CP1251 |
| България |
bg_BG |
CP1251 |
| Казахстан |
kk_KZ |
PT154 |
| Македония |
mk_MK |
ISO-8859-5 |
| Монголия |
mn_MN |
UTF-8 |
| Русия |
ru_RU |
ISO-8859-5 |
| Таджикистан |
tg_TJ |
KOI8-T |
| Украйна |
uk_UA |
KOI8-U |
Изключения:
- В Азербайджан (az_AZ) е било ISO-8859-5.
- За Сърбия и Черна гора засега липсват настройки.
- За Татарстан (част от Русия) сега е TATAR-CYR, а е било ISO-8859-5.
- В Узбекистан (uz_UZ) се използва латиница и кирилица. Било е ISO-8859-5, а сега е ISO-8859-1.
Най-добре кирилица на Линукс се поддържа в кодови таблици ISO-8859-5 и KOI8-R.
Направената проверка показа, че няма готова поддръжка на български за тези кодировки.
Затова бе качен glibc-i18n и със следващите команди бе добавена:
# localedef -i bg_BG -f ISO-8859-5 bg_BG.ISO-8859-5
# localedef -i bg_BG -f KOI8-R bg_BG.KOI8-R
# localedef -i bg_BG -f CP1251 bg_BG.CP1251
# locale -a | grep bg
bg_BG
bg_BG.cp1251
bg_BG.iso88595
bg_BG.koi8r
bg_BG.utf8
Заб.: знака '#' е показалеца на интерпретатора на команди (SHELL) и не е част от командите !
Бележки: Командата locale показва кодовите таблици с малки букви и без знака минус.
Името на кодовата таблица трябва да съвпада с име на файл от директория
/usr/share/i18n/charmaps след като се премахне окончанието ".gz".