As for now, the choice is mainly between windows-1251 and iso-8859-5. Windows-1251 provides compatibility with M$ Windows and it is is by far the most popular charset for nearly all slavic languages. On the other side, iso-8859-5 is better supported and easier to set up.
The present HOWTO will explain the use of both charsets in parallel. Unless otherwise stated in the text, Belarusian support package from the bellinux page contains all the files mentioned in the present HOWTO.
Windows-1251 support in the kernel is needed to visualize MS Windows filenames in cyrillic while the console and X Window system are localized in windows-1251. As latest FAT file systems store filenames in Unicode, we have to define the output charset of the Virtual File System layer and install the support for windows-1251 in the kernel.
There is a patch for 2.2.14 kernels that is included in the Belarusian support package. To apply the patch,
cd /path_to_your_kernel_source_tree |
patch -p0 < patch_for_the_kernel.patch |
Recompile and reinstall the kernel modules. Refer to Kernel-HOWTO for the details.
Add
codepage=866,iocharset=microsoft-cp1251 |
To test the setup, execute
mount /dev/hda -t vfat -o codepage=866,iocharset=iso8859-5 /mnt/hda |
There is built-in support for iso-8859-5 in Linux kernel. To enable iso-8859-5, make sure you compile this module in the nls section of the kernel setup. Normally, iso-8859-5 is compiled by default and can be loaded either automatically or by issuing
insmod nls_iso8859-5 |
Add
codepage=866,iocharset=iso8859-5 |
Belarusian locale is available in glibc 2.2 and later. If you do not have the belarusian locale installed in your system, you can compile it yourself. The source is available at the bellinux page. Issue
localedef -f CP1251 -i be_BY be_BY.CP1251 |
localedef -f ISO-8899-5 -i be_BY be_BY.ISO-8899-5 |
Check how it works by setting the locale
set LANG=be_BY.CP1251; export LANG |
set LANG=be_BY.ISO-8859-5; export LANG |
Some cyrillic console fonts are in fact russian fonts and lack many cyrillic characters. Fortunately, UniCyr fonts by Vadinm Zhitnikov have all the glyphs from cp866, cp1251, iso8859-5 and all printable symbols from koi8-r. Besides the belarusian keyboard maps which you can find at the the bellinux page , other files are fairly standard and are available in most linux distributions. To set up window-1251 in console,
Load a UniCyr font
consolechars -f UniCyr_8x16 |
Load by2_win.kmap keymap.
loadkeys by2_win |
Load Application-Charset Map cp1251.acm
consolechars -m cp1251 |
There are two ways to set up Belarusian with iso-8859-5
Load iso-8859-5 font
consolechars -f iso05.f16 |
Load belarusian keymap by2.kmap or by.kmap
loadkeys by.kmap loadkeys by2.kmap |
Load UniCyr font
consolechars -f UniCyr_8x16 |
Load by2.kmap keymap or by.kmap
loadkeys by.kmap loadkeys by2.kmap |
Load Application-Charset Map iso05.acm
consolechars -m iso05 |
This is is quite easy to set up.
Install ISO-8859-5 fonts for X Window and make sure they are before other fonts in the fontpath. Refer to Font-HOWTO for details on how to install fonts.
Get the belarusian keyboard layout by from the the bellinux page and put it on the place of any other keyborad layout in /usr/X11R6/lib/X11/xkb/symbols/, e.g. instead of the belgian keyboard layout /usr/X11R6/lib/X11/xkb/symbols/be
Put the following stings in your /etc/X11/XF86COnfig:
XkbModel "microsoft" XkbLayout "be" XkbOptions "grp:caps_toggle" |
Don't forget to set up the system locale to be_BY.ISO8859-5 as described in the section called Setting locale. You will also want to make sure that iso-8859-5 fonts are before any other fonts in your font path.
This works only with XFree 4.0.2 and higher.
Install ISO-8859-5 fonts for X Window and make sure they are before other fonts in the fontpath.
Get the belarusian keyboard layout by from the the bellinux page and put it on the place of any other keyborad layout in /usr/X11R6/lib/X11/xkb/symbols/, e.g. instead of the belgian keyboard layout /usr/X11R6/lib/X11/xkb/symbols/be
Put the following strings in your /etc/X11/XF86Config:
XkbModel "microsoft" XkbLayout "be" XkbOptions "grp:caps_toggle" |
Don't forget to set up the system locale to be_BY.CP1251 as described in the section called Setting locale.
To use windows-1251 with XFree 3.3.5 and 4.0, you have to apply a patch from Aleksey Novodvorsky that allows the use of windows-1251 with XKB. The original location is at ftp.logic.ru/pub/logic/linux/be-locale and it is also available from the bellinux page. Lucky users of Linux-Mandrake RE get a patched XFree86 out of box.
Belarusian keyboard layout is palnned for all XFree releases after 4.0.2. To make it work, you will have to add the following lines into /etc/X11/XF86Config:
XkbModel "microsoft" XkbLayout "by" XkbOptions "grp:caps_toggle" |
Uncomment
XkbDisable |
Install windows-1251 fonts for X Windows and make sure thay are before other fonts in the path.
Make and install xruskb package which can be downloaded from http://bellinux.sourceforge.net
Replace .xmm files in your xruskb directory by those found at the bellinux page.
Add the following lines in your .Xdefaults file
xrus*modeButton1.labelString: BEL xrus*modeButton1.label: BEL |
Run
xrus jcuken-cp1251 |
xrus jcuken-iso5 |