Символ евро во FreeBSD

$FreeBSD: doc/ru_RU.KOI8-R/articles/euro/article.sgml,v 1.2 2006/02/09 15:05:27 marck Exp $

FreeBSD это зарегистрированная торговая марка FreeBSD Foundation.

Многие из обозначений, используемые производителями и продавцами для обозначения своих продуктов, заявляются в качестве торговых марок. Когда такие обозначения появляются в этом документе, и Проекту FreeBSD известно о торговой марке, к обозначению добавляется знак ''™'' или ''®''.

В этом документе будет сделана попытка помочь вам начать работу с новым символом Euro на вашей новой клавиатуре, которую вы купили в начале 2002 года для перехода на новую общую валюту. Сначала мы сконцентрируемся на более важных вопросах, таких, как правильное отображение символа на консоли. Последующие разделы посвящены настройке конкретных программ типа X11.

Много полезной информации было получено от Oliver Fromme, Tom Rhodes и многих других. Спасибо! Без вас этой статьи бы не было!


1. Об Евро вкратце

Если вы уже чувствуете себя уверенно при работе с локализацией, как она описана во Руководстве по FreeBSD, то вас могут заинтересовать только следующие факты, которые помогут вам быстро вникнуть в суть:

ISO8859-15

Это несколько модифицированная версия широко используемого набора символов ISO8859-1. В него включен символ Евро. Используется для задания переменных окружения LANG и LC_CTYPE.

iso15-8x16.fnt

Шрифт vidcontrol(1) для консоли

/usr/share/syscons/keymaps/*.iso.kbd

Клавиатурные раскладки, соответствующие вашему языку. Укажите одну из них в качестве значения для параметра keymap из файла rc.conf.

LC_CTYPE

Используется для указания правильного типа символов при вашей локализации.

XkbLayout "lang(euro)"

Параметр настройки XFree86.

/usr/X11R6/lib/X11/fonts/*/fonts.alias

Обязательно приведите ваши шрифты для X11 к виду -*-..-*-iso8859-15


2. Общее замечание

В последующих разделах мы будем часто обращаться к термину ISO8859-15. Это стандартное обозначение начиная с FreeBSD 4.5. В более старых версиях стандартным обозначением было ISO_8859-15 или DIS_8859-15.

Если вы используете более старую версию FreeBSD, обязательно посмотрите в каталоге /usr/share/locale/, какое используется соглашение по наименованию.


3. Консоль

3.1. Настройка шрифта для консоли

В зависимости от разрешения вашей консоли и её размера вам нужно задать одну из таких строк в rc.conf:

font8x16="iso15-8x16.fnt" # из /usr/share/syscons/fonts/*
font8x14="iso15-8x14.fnt"
font8x8="iso15-8x8.fnt"

Это приведёт к выбору шрифта ISO8859-15, известному также как Latin-9. ISO8859-15 является вариантом ISO8859-1. Вы можете увидеть разницу между ними, посмотрев на символ Евро: его десятичное значение равно 164. В ISO8859-1 вы увидите кружок с четырьмя полосками по углам. Часто он называется ''универсальным символом валюты''. В ISO8859-15 место маленького кружка занимает символ Евро. Если его нет, то шрифты более или менее идентичны.

Внимание: На момент написания этого документа единственным пригодным к использованию шрифтом был iso15-8x16.fnt. Другие выдавали ISO8859-1, хотя название говорило о другом.

Замечание: После задания этого шрифта сообщения некоторых консольных приложений будут выглядеть искажёнными. Это происходит в силу того, что они предполагают использование другого шрифта/набора символов, такого, как ANSI 850. Одним из примеров может выступать sysinstall. Однако в большинстве случаев это не имеет большого значения и сильно не беспокоит.

Следующим шагом вы должны либо перезагрузить вашу систему для того, чтобы изменения вступили в силу, либо (вручную) выполнить те действия, которые происходят при начале работы системы:

% vidcontrol -f iso15-8x16.fnt

Для проверки того, был ли выбран шрифт, выполните такой короткий скрипт на языке awk:

#!/usr/bin/awk -f
BEGIN {
  for(i=160;i<180;i++)
    printf"%3d %c
",i,i
}

В результате знак Евро должен быть в позиции 164.


3.2. Настройка вашей клавиатуры на использование Евро

Большинство клавиатурных раскладок уже должно быть корректно настроено. Другими словами: Если у вас немецкая клавиатура и ваши клавиши с умляутами работают, то вы можете пропустить этот раздел, так как клавиатура уже отображает какую-то комбинацию клавиш (к примеру: Alt Gr+e) в символ с десятичным значением 164. Если вы сталкиваетесь с проблемами, лучше всего проверить в каталоге /usr/share/syscons/keymaps/*.kbd. Формат файлов раскладок клавиатуры описан в keyboard(4). Утилита kbdcontrol(1) может использоваться для загрузки пользовательских клавиатурных раскладок.

После выбора правильной клавиатурной раскладки она должна быть указана в файле /etc/rc.conf такой строкой:

keymap="german.iso" # or another map

Как указано выше, этот шаг, скорее всего, был уже вами выполнен во время установки (в sysinstall). Если это не так, либо перезагрузитесь, либо загрузите новую клавиатурную раскладку посредством kbdcontrol(1).

Для проверки раскладки клавиатуры, переключитесь на другую консоль и в приглашении на вход в систему вместо имени входа попробуйте набрать клавишу Euro. Если она не работает, отправьте сообщение об ошибке через send-pr(1) либо проверьте, что вы действительно выбрали правильную раскладку клавиатуры.

Замечание: На этом этапе клавиша Euro ещё не работает в bash или tcsh.


3.3. Исправление переменных окружения

Командные процессоры (bash, tcsh) обращаются к библиотеке readline(3), которая, в свою очередь, использует переменную окружения LC_CTYPE. LC_CTYPE должна быть задана до полного запуска оболочки. К счастью, для этого достаточно добавить строку:

export LC_CTYPE=de_DE.ISO8859-15

в ваш .bash_profile (bash), или:

setenv LC_CTYPE de_DE.ISO8859-15

в ваш файл .login (tcsh). Конечно же, de_DE должно быть заменено на то, что соответствует вашему языку. Затем завершите работу с системой, войдите в систему снова и проверьте, что клавиша Евро работает. Теперь большинство консольных приложений должно воспринимать клавишу Евро. Однако для специализированных программ, таких, как, например, pine, могут потребоваться дополнительные шаги по их настройке.

Замечание: Альтернативой изменению .login и .bash_profile является задание переменных окружения через механизм login.conf(5). Этот подход имеет преимущество в назначении классов входа в систему определенным пользователям (к примеру, французам, итальянцам, и так далее) в одном месте.


4. Настройка X11

Измените /etc/X11/xorg.conf (/etc/X11/XF86Config в случае если вы используете XFree86™) следующим образом:

Option "XkbLayout" "de(euro)"

И снова, замените de на то, что соответствует вашему языку. С этого момента клавиатура должна быть настроена правильно. Как и в разделе о консоли, должен быть выбран правильный шрифт. В случае KDE перейдите к KDE control center -> Personalization -> Country & Language -> Charset и смените его на ISO8859-15. Подобные же шаги должны быть выполнены для kmail и других приложений.

Другим хорошим способом является изменение ваших файлов fonts.alias. Следует отметить, что шрифт fixed должен быть изменен на правильный набор символов: файл автора /usr/X11R6/lib/X11/fonts/misc/fonts.alias выглядит примерно так:

! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-15
variable -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-15
(...)

Как и в разделах о консоли, в специализированных приложениях всё ещё могут остаться настроенными шрифты ISO8859-1 в их базах данных xrdb(1). Одним из видимых примеров является xterm. Как правило, достаточно изменить соответствующий конфигурационный файл из каталога /usr/X11R6/lib/X11/app-defaults, добавив правильный шрифт. Продемонстрируем это на примере xterm.

# cd /usr/X11R6/lib/X11/app-defaults/
# vi XTerm

Добавьте такую строку в начало файла:

*font:  -misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15

И наконец, перезапустите X и проверьте, что шрифты могут выводиться, выполнив вышеприведённый скрипт на awk. Все основные приложения должны воспринять клавиатурную раскладку и настройки шрифта.


5. Открытые проблемы

Конечно, автор будет рад получить отклики. Кроме того, по крайней мере дайте мне знать, если ли у вас решения для следующих открытых проблем:

  • Описание альтернативного способа настройки XFree86: x11/xkeycaps

  • Настройки в GNOME

  • Настройки в XFCE

  • Настройки для (X)Emacs

  • Описание UTF-8

  • Описание libiconv как эффективного способа преобразования между ISO8859-15 и UTF-{8,16} внутри приложений


Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Обновлено: 12.03.2015