目前,主要的选择是在 windows-1251 和 iso-8859-5 之间。Windows-1251 提供了与 M$ Windows 的兼容性,并且是迄今为止几乎所有斯拉夫语言最流行的字符集。另一方面,iso-8859-5 具有更好的支持并且更易于设置。
本 HOWTO 将解释并行使用这两种字符集。除非在文本中另有说明,否则来自 bellinux 页面的白俄罗斯语支持包包含本 HOWTO 中提到的所有文件。
当控制台和 X Window 系统本地化为 windows-1251 时,内核中需要 Windows-1251 支持来可视化 Cyrillic 中的 MS Windows 文件名。由于最新的 FAT 文件系统以 Unicode 存储文件名,我们必须定义虚拟文件系统层的输出字符集,并在内核中安装对 windows-1251 的支持。
白俄罗斯语支持包中包含一个针对 2.2.14 内核的补丁。要应用补丁,
cd /path_to_your_kernel_source_tree |
patch -p0 < patch_for_the_kernel.patch |
重新编译并重新安装内核模块。有关详细信息,请参阅 Kernel-HOWTO。
添加
codepage=866,iocharset=microsoft-cp1251 |
要测试设置,请以 root 身份执行
mount /dev/hda -t vfat -o codepage=866,iocharset=iso8859-5 /mnt/hda |
Linux 内核中内置了对 iso-8859-5 的支持。要启用 iso-8859-5,请确保在内核设置的 nls 部分编译此模块。通常,iso-8859-5 默认编译,可以自动加载或通过发出
insmod nls_iso8859-5 |
添加
codepage=866,iocharset=iso8859-5 |
白俄罗斯语区域设置在 glibc 2.2 及更高版本中可用。如果您的系统中未安装白俄罗斯语区域设置,您可以自行编译。源代码可在 bellinux 页面上找到。发出
localedef -f CP1251 -i be_BY be_BY.CP1251 |
localedef -f ISO-8899-5 -i be_BY be_BY.ISO-8899-5 |
通过设置区域设置检查其工作方式
set LANG=be_BY.CP1251; export LANG |
set LANG=be_BY.ISO-8859-5; export LANG |
一些 Cyrillic 控制台字体实际上是俄语字体,并且缺少许多 Cyrillic 字符。幸运的是,Vadinm Zhitnikov 的 UniCyr 字体具有来自 cp866、cp1251、iso8859-5 和 koi8-r 的所有字形以及所有可打印符号。除了您可以在 bellinux 页面找到的白俄罗斯语键盘映射之外,其他文件都是相当标准的,并且在大多数 Linux 发行版中都可用。要在控制台中设置 window-1251,
加载 UniCyr 字体
consolechars -f UniCyr_8x16 |
加载by2_win.kmap键盘映射。
loadkeys by2_win |
加载应用程序字符集映射cp1251.acm
consolechars -m cp1251 |
有两种方法可以使用 iso-8859-5 设置白俄罗斯语
加载 iso-8859-5 字体
consolechars -f iso05.f16 |
加载白俄罗斯语键盘映射by2.kmap或by.kmap
loadkeys by.kmap loadkeys by2.kmap |
加载 UniCyr 字体
consolechars -f UniCyr_8x16 |
加载by2.kmap键盘映射 或by.kmap
loadkeys by.kmap loadkeys by2.kmap |
加载应用程序字符集映射iso05.acm
consolechars -m iso05 |
这非常容易设置。
为 X Window 安装 ISO-8859-5 字体,并确保它们位于字体路径中其他字体之前。有关如何安装字体的详细信息,请参阅 Font-HOWTO。
从 bellinux 页面获取白俄罗斯语键盘布局by,并将其放在/usr/X11R6/lib/X11/xkb/symbols/中任何其他键盘布局的位置,例如,代替比利时键盘布局/usr/X11R6/lib/X11/xkb/symbols/be
将以下字符串放入您的/etc/X11/XF86COnfig:
XkbModel "microsoft" XkbLayout "be" XkbOptions "grp:caps_toggle" |
不要忘记将系统区域设置设置为 be_BY.ISO8859-5,如 第 2.4 节中所述。您还需要确保 iso-8859-5 字体在字体路径中的任何其他字体之前。
这仅适用于 XFree 4.0.2 及更高版本。
为 X Window 安装 ISO-8859-5 字体,并确保它们位于字体路径中其他字体之前。
从 bellinux 页面获取白俄罗斯语键盘布局by,并将其放在/usr/X11R6/lib/X11/xkb/symbols/中任何其他键盘布局的位置,例如,代替比利时键盘布局/usr/X11R6/lib/X11/xkb/symbols/be
将以下字符串放入您的/etc/X11/XF86Config:
XkbModel "microsoft" XkbLayout "be" XkbOptions "grp:caps_toggle" |
不要忘记将系统区域设置设置为 be_BY.CP1251,如 第 2.4 节中所述。
要将 windows-1251 与 XFree 3.3.5 和 4.0 一起使用,您必须应用来自 Aleksey Novodvorsky 的补丁,该补丁允许将 windows-1251 与 XKB 一起使用。原始位置在 ftp.logic.ru/pub/logic/linux/be-locale,也可以从 bellinux 页面获得。Linux-Mandrake RE 的幸运用户可以开箱即用地获得打补丁的 XFree86。
白俄罗斯语键盘布局计划用于 4.0.2 之后的所有 XFree 版本。要使其工作,您必须将以下行添加到/etc/X11/XF86Config:
XkbModel "microsoft" XkbLayout "by" XkbOptions "grp:caps_toggle" |
取消注释
XkbDisable |
中的行。为 X Windows 安装 windows-1251 字体,并确保它们在路径中的其他字体之前。
制作并安装 xruskb 软件包,可以从 http://bellinux.sourceforge.net 下载
将 xruskb 目录中的 .xmm 文件替换为在 bellinux 页面中找到的文件。
在您的 .Xdefaults 文件中添加以下行
xrus*modeButton1.labelString: BEL xrus*modeButton1.label: BEL |
运行
xrus jcuken-cp1251 |
xrus jcuken-iso5 |