[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: keymap <--> keytrans ?



On Thu, 6 Apr 2000 AndriyD@ukrpost.net wrote:

> From: AndriyD@ukrpost.net
> Subject: Re: keymap <--> keytrans ?
> X-Mailer: UkrPost v1.0 [browser Mozilla/4.72 [en] (Win95; I)]
> 
> Wed, 5 Apr 2000 16:57:03 +0400 (MSD)Victor Wagner <vitus@ice.ru> написал:
> >On Wed, 5 Apr 2000 AndriyD@ukrpost.net wrote:
> >
> >> Или я снова чего-то не понял?
> >
> >Не понял. ACM единая для всей системы. По-моему, нельзя даже для разных
> >виртуальных консолей ее менять (хотя можно менять динамически).
> >
> Это уже интереснее. Если я правильно понял последнюю мысль, то можно в
> процессе работы менять АСМы и таким образом, скажем, переключаться с языка
> на язык? Тогда зачем для подключения русского языка пишется таблица
> включающая и английский тоже? Почему нет своей таблицы для каждого языка?
Затем, чтобы не переключаться. Для немецкого языка есть кодировка
iso8859-1, которая заодно обслуживает и французский, голландский и т.д.

Проблема в том, что в современном мире 256 символов для работы со всеми
языками сразу не хватает, а utf8 еше не всеми программами поддерживается;
Но linux console уже заточена под unicode, и xlib плюс-минус тоже.
(вообще говоря, 16 бит unicode тоже не для всего хватает, есть еще ucs4)

Поэтому, если мы пользуемся программой, которая unicode не умеет,
мы должны драйверу консоли указать, какой кодировкой она пользуется,
путем задания отображения этой кодировки на unicode, что и называется
acm. В будущем будет у нас локаль называться ru_RU.UTF8 и acm отомрет за
ненадобностью.  

> Тоесть, за вывод на экран отвечает драйвер консоли и он не в курсе как
> обращаться с 8-битными символами. Так? Если да, то почему? Драйвер консоли
Потому что он в курсе, как обращаться с 16-битными.

> - это драйвер экрана, или нечто большее?
> >А идея иметь один и тот же файл раскладки для данного типа клавиатуры,
> >независимо от того, пользуешья ты koi8-r или iso8859-5 или cp1251 мне
> >кажется крайне правильной.
> >
> Мне тоже.
> >> Мне кажется, что нормальный драйвер клавы, тоже позволяет работать на
> >> разных языках только заменой раскладок.( см. ДОС и Окна)
Э-не, тебе нужно гораздо больше чем замена раскладок, тебе нужна замена
шрифтов, нужно чтобы системные функции toupper, tolower, isalpha, strcmp
правильно работали, чтобы названия месяцев и форматы дат были
правильные, чтобы сообщения об ошибках выводились на нужном языке.

Это все как раз и объединяется понятием locale (кроме шрифтов и
клавиатуры, они здесь самое маловажное, поелику от устройства зависят) 

> В Окнах, подключение/отключение дополнительных раскладок для поддержки
> дополнительных языков дело 5 минут. Два раза ткнуть пальцем. А в Линуксе
> работа не для слабонервных. И совершенно не могу найти нормальное
В linux - одна команда loadkeys нужная раскладка.
Прописать эту команду в нужный файл инициализации куда меньше 5 минут.
Проблема в том, что слишком много вариантов выбора и не все из них
правильные.  

> объяснение, что и почему надо делать. Есть хаотические и бессвязные советы
Потому что не надо читать на www.linux.org.ru. Надо читать в 
man loadkeys, man consolechars и /usr/src/linux/Documentation/unicode.txt

К сожалению, в последнее время в Linux кинулось столько чайников, что
доверять всяким FAQ и HOWTO стало просто невозможно, тем более что они еще
и устаревают. Два года назад совет "отключите Xkb" был абсолютно верным,
сейчас - нет.
 
> Но тогда не логичне ли сразу с этими однобайтными кодами и работать? Зачем
Нет. Потому что существует уйма разных кодировок кириллицы.
И в какой из них работать, определяется чем угодно, но только не тем какая
раскладка подходит к твоей (физической) клавиатуре.

И вообще, однобайтовые коды обречены на вымирание. Будущее - за unicode> 

--------------------------------------------------
Victor Wagner			vitus@ice.ru
Programmer			Office:7-(095)-203-50-60
Institute for Commerce 		Home: 7-(095)-135-46-61
Engineering                     http://www.ice.ru/~vitus