LINUX.ORG.RU

Debian EURO-HOWTO v0.7


0

0

В связи с переходом нескольких стран на новую общую валюту, было бы кстати напомнить о существовании HOWTO, в котором описываются способы настройки символа евро в Linux вообще и средствами Debian в частности. Думаю, информация полезна не только пользователям Debian.

>>> Debian EURO-HOWTO



Проверено:

Все это очень мило. Но в "стандартной" локали ru_RU.KOI8-R нет символа euro. И поэтому даже установка шрифтов и клавиатуры не поможет...:( Вот и решай - то ли локаль менять на другую, то ли патчить (добавляя euro). Что думаете, люди?

svu ★★★★★
()

по моему, пора переходить на локаль utf-8

Avel
()

2svu: IMHO, давно уже пора идти в сторону Unicode, а не извращаться со шрифтами и локалями под эти шрифты. Но пока с unicode совсем хреново

anonymous
()

utf8 - это кодировка. А локаль - ru_RU.* Есть, например, ru_RU.utf8. И там даже есть euro (что не удивительно:). Но - попробуйте-ка пожить в этой локали. Я попробовал - мне очень быстро поплохело.

svu ★★★★★
()

Да, согласен, любителям консоли и надо что-то придумывать, наподобие
iso8859-15/16. Но думаю, что стоит пойти в сторону unicode-консоли и
немного изменённых консольных шрифтов. Не знаю про стабильную ветку
Debian, а в sid`е соответствующий пакет (какой - не помню,
запутался я в них, то ли kbd, то ли consoletools :) ) есть...

В GUI всё проще: под FreeBSD на работе простой тестовый
html-файл с сущностью € Mozilla отобразила отлично,
Netscape 4.7 - заменил на "EUR", что тоже не так плохо. :)

Единственное, о чём желательно договориться как сторонникам консоли,
так и GUI-викам, так это как набирать сей оригинальный символ.
Предложенный в обсуждаемом HOWTO AltGr+e/AltGr+c - скорее всего
не подходят из-за того, что во многих случаях они наберут
соотв. кириллический символ либо переключится раскладка (сразу после
нажатия Alt).

Allter
() автор топика
Ответ на: комментарий от ivlad

Похоже, у GNOME крыша едет на шрифтах. Я не очень долго игрался, но что-там совсем грустно. Я только попробовал поставить основной шрифт из 10646-1 - не помогает. Просто куча квадратиков вместо русских букв по всему экрану. Клавиатуру я вообще не проверял. В-общем, если кто-нибудь умный сваяет внятное howto про ru_RU.UTF-8 - будет очень здорово...

svu ★★★★★
()
Ответ на: комментарий от svu

Svu, "uzh skol'ko raz tverdili miru...", chto 10646-1 ne soderzhit cyrillic glyphs.. Voobshe... I delo tut ne v GNOME...

Esli hochetsja poekperimentirovat' - to vidimo, so svjazkoi TTF fontserver(builtin ili vneshnii) i M$ ttf shriftami iz webfonts.. Sam eshe ne proboval, no vidimo, mozhno chto-to dobit'sja...

I vse zhe - mozhesh' opisat', kakie KONKRETNO problemy byli s *.UTF8 lokal'u?

BaT ★★★★★
()
Ответ на: комментарий от BaT

Да, местами я глуп, точнее - склеротичен:))) Фонт-сервер у меня и так стоит. И МС шрифты в нем есть. Правда, не вебфонты, а те, что в базовых винюках. И какую, спрашивается, кодировку на этих шрифтах пользовать? Все, что выдает ttmkfdir - однобайтовое и не работает:(

Первая проблема (и единственная - остального я просто не смог увидеть) у меня именно со шрифтами (точнее - с квадратиками вместо русских букв). Когда (если) пройду дальше - расскажу...

svu ★★★★★
()

to svu:10646-1
говорят же тебе, что *10646-1 _не_ содержат кириллицы.
поэтому в сизифе эти шрифты вообще вынесли из стандартных шрифтов и оформили отдельным рпмом. что evolution не глючил в частности.

если взять стандартные юникодовые шрифты _с_ кириллицей. ttf или type1
то можно их прописать в фонтсервере и работать в utf-8
смотреть надо не на результат ttmkfdir а ручками прописывать нужную кодировку. проверить юникодовость можно с помощью редактора фонтов pfaedit.

Avel
()

Продолжаю отчаянно тормозить.

1. "10646 не содержит кириллицы". Это касается самой кодировки (стандарт) или распространенных шрифтов (каких?) ?

2. Что такое "стандартные юникодовые шрифты"? microsoft?

3. А где изложена процедура, названная "ручками прописывать нужную кодировку"?

Кстати, зачем вообще сизиф выкладывает шрифты в 10646-1, если они (шрифты) так плохи?

svu ★★★★★
()

А гуглом никто конечно же пользоваться не умеет :)

1)Это Pango GTK+/GNOME
http://www-106.ibm.com/developerworks/unicode/library/u-cyr/?dwzone=unicode

2) The Universal Locales for Linux provides 140 or more
Unicode based locales for Linux от IBM :-)

http://www-124.ibm.com/developerworks/oss/locale/locale.html

просто взгляните сюда :)

http://www-124.ibm.com/developerworks/oss/locale/gif/udates.jpg

MrBool
()
Ответ на: комментарий от Avel

По поводу 10646-1 и Cyrillic glyphs.
Не понял что-то, как не содержат - а что у меня тогда в Debian (sid) лежит в пакете xfonts-bolkhov-75dpi и xfonts-bolkhov-misc? В description сказано, что там ISO 10646-1 кириллические шрифты..

anonymous
()
Ответ на: комментарий от MrBool

Спасибо гуглу, прочел про 10646-1. Так вот в этой кодировке есть весь уникод (ибо это синонимы, как я понял:). Эта голова здорова. А больны те головы, которые считают "уникодные" шрифты без кириллицы годящимися для включения в дистрибуции (шутка, я совсем не хочу начинать флейм).

Локаль - это прекрасно. Впрочем, redhat7.2 и так содержит локаль ru_RU.UTF-8. Вопрос в том, какие-же все-таки шрифты хорошо использовать (я имею в виду в первую очередь последние 2 компонента их длинного имени - кодировку). Или - как правильно написать fonts.(dir|alias), если считать что ttmkfdir не прав.

На гугле ответов не найдено:))

svu ★★★★★
()

В консоле больщие проблемы с псевдографикой если использовать Unicode.
И нет возможности одновременно отображать несколько язвков :-( Тоесть опять только eng/rus.Можно сказать что пациент сорее мёртв чем жив.

Кстати unicode включается просто.
0 start_unicode
1 все locale ru_RU.UTF8
2 consolechars -f LatArCyrHeb (или UniCyr)

anonymous
()

>Спасибо гуглу, прочел про 10646-1. Так вот в этой кодировке есть весь
>уникод
естественно, в кодировке есть, а в стандартных шрифтах из xfree - соответствующих глифов - нет.
здесь проблема - как растянуть одеяло на всех желающих.

создатели программ полагают, что юникодовый шрифт должен имет все глифы, какие только могут потребоваться, поскольку кодировка, мол, позволяет. Так полагает, например, GHTML и соответственно все кто его использует (evolution)

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

кириллицы в стандартных 646-1 шрифтах нет, потому что ее туда никто не включал. вообще у нас свободных кирилических шрифтов почти что нет. имхо это прерогатива государства, а то на виндозу в школы пара миллиардов нашлась, а на свободных шрифтов десяток денег нет?

>Вопрос в том, какие-же все-таки шрифты хорошо использовать (я имею в
>виду в первую очередь последние 2 компонента их длинного имени -
>кодировку). Или - как правильно написать fonts.(dir|alias), если
>считать что ttmkfdir не прав.

-iso...646-1

только шрифты должны быть с кириллицей и юникоде.
пример - бесплатные шрифты от микрософт.




Avel
()

Самое поганое то, что в шрифтах, которые Маркус в XFree86 и X послал (и, если я не ошибаюсь, что-то от них производное и идёт с 4.1.x) кириллическая страница была, но какой-то террорист вырезал из оных шрифтов всё, что сверх iso8859-15 и этот огрызок и распространятся с XFree86 4.1.0. Есть тут кто "приближённый к императору" (к xfree team)? Кто там в XFree86 такими международными провокациями занимается? Вот ведь, троцкист-уклонист, времени своего на это не пожалел... Ох, попадись он мне...

anonymous
()

Это как так фонты из MS Web Typography в кодировке iso10646-1 не содержат кириллических символов? Мне что, скриншоты xfontsel'а сюда кидать?? Прямо вот отсюда вижу в -*-verdana-*-*-*-*-*-*-*-*-*-*-iso10646-1 следующее - ABCD...abcd всякие S с крышечками итп, потом греческие альфа, бета, гамма, потом кирриллические АБВГДабвгд. Знал бы, как из xfontsel'а дернуть их - дернул бы. Кстати говоря, gfontsel тоже нормально этот фонт показал, предупредил только, что это двухбайтный фонт, возможны проблемы с начертанием.

anonymous
()

>Это как так фонты из MS Web Typography в кодировке iso10646-1 не
>содержат кириллических символов?
это как так MS Web Typography стала свободными шрифтами и распостраняется с xfree?
испорченный телефон какой то.

Avel
()
Ответ на: комментарий от anonymous

Нескромные вопросы...
1. А вот эти шрифты ftp://ftp.gnome.ru/fonts/urw
по принципиальным соображениям не подходят? Euro в них есть.

2. Если вам не "западло" использовать M$ fonts, то почему бы не решить
проблему сменив koi8 на cp1251?

To anonymous (*) (2002-01-04 07:12:30.0)
Откуда информация о том, что в шрифтах Маркуса чего-то вырезали?
http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html
В Misc-Fixed кириллица присутствует, так что подозрения в
антикириллических потугах следует "с негодованием отмести".
А в 75/100 её и не было.

anonymous
()

Ну ладно, допустим есть у нас шрифты с кодировкой 10646-1, включающие русские глифы (винюковые или маркусовые ucs). Есть у нас и локаль русско-уникодная (в RH7.2). Что локаль правильная - проверено. Например, date > file.txt выдает файл с корректным уникодным текстом даты (проверено в yudit). Но в терминале (например, gnome-terminal) все равно творится хрень. Даже вывод ESC %G не помогает. Выводятся, понимаешь, квадратики (или вопросики - в зависимости от шрифта). Кто-нибудь кроме меня пробовал это дело? Кстати, без ESC %G вообще у терминала крыша едет на ls --color:)

svu ★★★★★
()

Я уже пару лет живу с евро в русских шрифтах, их можно взять с http://www.inp.nsk.su/~bolkhov/files/fonts/cyr-rfx/00index.ru.html Они же в RH как XFree86-KOI8-R-75dpi-fonts(...)rpm И в кодировке koi8-1 и в koi8-ub (8bit). Есть так же файл как внешняя кодировка для XFree (для FreeType).

'Евро' в позиции 128 (0x80), там же где в 1252, 1250 и остальных европейских, (все кроме кириллицы).

Свой NN4 я тоже давно пропатчил и теперь он держит, и евро, и всякие << >> ,, `` '' (by ex.: '─', '└' , '⌠' , '■'), правда я уже перешел на мозиллу.

anonymous
()
Ответ на: комментарий от anonymous

А вот позвольте Вас спросить - какой локалью изволите пользоватьcя? Если ru_RU.KOI8-R, тогда, как мне кажется (и как я смог убедиться), все нормальные программы (например, gcharmap), вообще символ 128 показывать не должны - как непечатный. Или я чего-то фундаментально не понимаю?

svu ★★★★★
()
Ответ на: комментарий от anonymous

Звучит ободряюще, но несколько голословно. Можно все-таки поподробнее про установки локали? Как удалось активизировать для показа символ 128?

svu ★★★★★
()

Я протоивник нестандартных кодировок, потому про koi8-1, koi8-ub ничего не скажу. В cp1251 euro sign -- 0x88. Keysym -- XK_EuroSign.
Символ этот есть в ttf-шрифтах Monotype (MS), а также в свободных Type1 и ttf шрифтах Валентина Филиппова, сделанных на основе URW (ftp://ftp.gnome.ru), нужна свежая версия.
Для ввода евро нужно:
0. Установить указанные выше шрифты, убедиться, что в каталоге с ними есть ссылка на файл encodings.dir, а в нем есть ссылка на microsoft-cp1251
1. Выбрать место на клавиатуре для него.
2. Отредактировать расклдку /usr/X11R6/lib/X11/xkb/symbols/{ru,ua,be,...}, вставив на место старого символа слово EuroSign. Можно использовать файл Compose, но это отдельная песня.
3. Загрузить новую раскладку setxkbmap ru или перезапустить X.
4. Если теперь вы запукаете приложения в locale ru_RU.CP1251, или be_BY, или bg_BG, или uk_UA.CP1251, то при выборе надлежащего шрифта "евро" должен вводиться. Если нет -- пишите разработчикам дистрибутива о проблемах с указнными locales.
Если умеете работать с UTF-8 - locales, то там тоже все будет в порядке.
5. Но! Даже если у Вас обычная ru_RU.KOI8-R или что-то урезанное подобным образом, то в OpenOffice "евро" вводиться будет. Возможно, он будет вводиться и в Qt2/KDE2-приложениях, но сейчас проверить не могу. Должен вводиться в Qt3/gtk+2-прилоежниях.
6. Точно так же добавляется русский знак номера -- numerosign (не путать с numbersign).

aen ★★★
()

to aen: Ну и сколько вы уже трудитесь над 1251? До сих пор глюки лезут, и будут лезь еще долга - пока на ucs не переползём. Когда два года назад я говорил, что это новая революция - не поверили, вот теперь пользователь обманут: думает что для него это родная кодировка, а на самом деле НЕТ. Вы б еще и формат DOS для текста переняли бы. А нужно было то всего ничего: бочком, бочком и заменить koi8-r на koi8-1. Жаль у меня времени не хватило.

то svu: локаль ru_RU.KOI8-R работает с koi8-1, т.к. 128-й символ печатный - какая разница для локали - евро или линия - все псевдографика. А проблемы есть у тех программ, которые заточены под iso-2022 (такой номер кажется) - у них всего 96 символов в каждой половине кодировки, это например xterm. Кстати, 1251 так же не подойдет - там вообще даже буквы попадают в C1 (128-159) XK_EuroSign, так же не нужен - таблица перекодировки все те же 96 символов (Он подойдет для iso8859-15)

А вводить можно через макросы, через Compose, или как я в nedit - Alt+Ctrl+I.

anonymous
()
Ответ на: комментарий от anonymous

> А нужно было то всего ничего: бочком, бочком и заменить koi8-r на koi8-1.

А нужно было-то всего ничего: найти автора koi8-1 и сурово погрозить ему пальцем, чтобы не плодил одних уродов на основе других.
(Уходя) Изобретатели хреновы! Революционерры блин...

anonymous
()
Ответ на: комментарий от anonymous

Никто не обманут: каждый выбирает свое и каждый предупрежден. Протолкнете RFC -- будем пользоваться koi8-1. "Не хватило времени" == нет koi8-1 и нечего плакаться. Я же никогда не буду на стороне тех, кто плодит новые кодировки и предлагает ходить "бочком".
Ходить "бочком" никому не советую: ни распечатать, ни конвертировать, ни послать по почте так, чтобы это прочитали, Вы не сможете, так как "времени не хватило".


aen ★★★
()
Ответ на: комментарий от aen

Something wrong with subject:) Was Re: Re: Re: StarOffice 6 выйдет в первом квартале 2002

1-3 пункты очевидны. И это сделано - во всяком случае, xev выдает на нажатие некоторой комбинации KeyRelease event, serial 29, synthetic NO, window 0x3c00001, root 0x31, subw 0x0, time 951853547, (420,672), root:(434,723), state 0x2001, keycode 12 (keysym 0x20ac, EuroSign), same_screen YES, XLookupString gives 0 characters: "" Вот только почему-то XLookupString не справляется найти символ Euro (локаль ru_RU.KOI8-R). При том, что шрифт терминала в этот момент отображать этот символ может (проверено обычным printf, а также сменой локали на en_IE@euro). Поэтому вопрос - как рассказать иксам, что при keysym 20ac нужно и можно показывать соотв. символ? И в каком именно файле локаль ru_RU.KOI8-R запрещает оный символ? 4. Обнаружил, что в RH нет локали ru_RU.CP1251!!! Вот забавно! Пришлось сделать самому - из любопытства 5. Да, проверил - все работает замечательно в OpenOffice!

svu ★★★★★
()

то svu
> Вот только почему-то XLookupString не справляется найти символ Euro
> (локаль ru_RU.KOI8-R).
И не будет, посмотрите на мой ответ - во всех cp125x и koi8-1 евро лежит
за пределами тех 96 символов. Совсем другое дело LANG=en_GB.ISO8859-15

то aen
Я предлагал то же самое что сделали европейцы с ISO8859-1 - заменили часть
символов, оставив совместимость по буквам и получили ISO8859-15.
Это к вопросу об "Я же никогда не буду на стороне тех, кто плодит новые
кодировки и предлагает ходить "бочком". ", а разговаривать с IANA проще
когда уже есть наработки в виде работающей системы в масштабах 10тыс.
пользователей, как это было у ache. К сожалению вы меня не поддержали.

"ни распечатать, ни конвертировать, ни послать по почте так, чтобы это
прочитали, Вы не сможете" - могу, я так и делаю, для себя любимого я
все могу сделать. Только с почтой могут быть проблемы у получателя,
но хорошо то что шрифты сейчас у многих именно koi8-ub, где все в порядке.

Если есть желание ответить, то давайте тогда в 'locale'.

anonymous
()
Ответ на: комментарий от anonymous

>Только с почтой могут быть проблемы у получателя,
>но хорошо то что шрифты сейчас у многих именно koi8-ub, где все в >порядке.
Проблемы с почтой у получателя -- это проблемы отправителя.
А вот то что у многих сейчас шрифты именно koi8-ub -- это Ваша нездоровая фантазия.

anonymous
()
Ответ на: комментарий от anonymous

Т.е. уважаемый коллега утверждает, что нет способа рассказать XFree про отображение keysym Euro в соотв. символ на экране?

svu ★★★★★
()

to svu:

Более точно: об невозможности отображении XK_EuroSign через XLookupString в 8 битную кодировку, где он должен иметь код в приделах в C1 (128-159).

anonymous
()
Ответ на: комментарий от anonymous

Слово "невозможность" звучит как приговор. Но ведь есть разные "невозможности":

1. Невозможность типа e=m*(c^2). По законам природы. Я надеюсь, это не тот случай.

2. Невозможность design time. Не может быть, чтобы в дизайн XFree была заложена принципиальная невозможность отображения именно символа Евро именно в кодировке ru_RU.KOI8-R (при том что в en_IE@euro все ОК)!

3. Невозможность compile time. Лечится легким патченьем сырцов X и перекомпиляцей.

4. Невозможность run time. Лечится правкой файлов данных.

Итак, какой тип невозможности мы имеем - 3 или 4? В какие файлы сырцов/данных/конфигурации это все нужно смотреть?

Кстати, моя раскладка xkb дает возможность набивать Euro в мозилле: "

svu ★★★★★
()

Судя по пунктам, могу только посоветовать порыться в исходниках libX11. Где-то средние между пунктами 2 и 3. И для всех cp125x тоже.

Так как я давно делал это сам (рылся), то только предположительно могу посоветовать обратить внимание на (хотя я могу и ошибится):

lib/X11/XKBCvt.c (_XkbKnownSetToKS)

Кстати, а en_IE@euro это ISO-8859-15.

anonymous
()
Ответ на: комментарий от anonymous

Посмотрим. Покопаемся.

Да, я в курсе, что локаль en_IE@euro использует ISO-8859-15 ("Ха, он мне будет говорить за en_IE@euro!":). Вопрос в том, какой файл разрешает символ Х для одной кодировки и запрещает для другой...

Посмотрим, короче, в libX11...

svu ★★★★★
()
Ответ на: комментарий от svu

Я на эту тему много могу написать (о внутренностях xlib), но если как можно короче, то...

Во-первых, конечно лучше не вталкивать в KOI8-R локаль символ euro. Нет его там и не должно быть. Правильный путь - использовать те локали, где он законно присутствует.

По поводу ограничения на C1. Насколько я знаю, проверка на этот диапазон есть в Xlib в одном единственном месте - конвертация to/from CTEXT. Ну или, чтобы было понятнее - это влияет только не перетаскивание selection из окна в окно. Но ... на KOI8-R этот закон не распространяется :-). Он в Xlib проходит как "нестандартный charset" (как впрочем и UTF-8 и все microsoft-cp*). Так что, в этой части проблем быть не должно, хотя я не могу поручиться, что какие-нибудь тулкиты не бдят за этим самостоятельно. (Я проверял на xterm и xedit как на "чиста X'овых" приложениях.)

Далее. С фонтами, как я понял проблем нет. А по поводу ввода с клавиатуры... В Xlib вводимые keysym сначала пергоняются в UCS-2, а затем конвертируются (процедуркой типа iconv) UCS->KOI8-R. Как нетрудно догадаться, никакой iconv вам EuroSign в KOI8-R никак не перекодирует. Поэтому, единственный путь - плясать от конечного кода koi8-r. Если вам надо получить 128 (0x80) то и вводите его как тот знак, что соответствует этой позиции в "стандарте" koi8-r. То есть, по стандарту там некая черточка (не важно - какой глиф у вас реально в фонте), соответствующий ей keysym - horizlinescan1.

Если же хочется именно EuroSign (вполне законное желание - чтобы нормально работать в других locale), то можно подменить его через Compose. Во-первых, Compose в ru_RU.KOI8-R и так уже есть (пустой). Во-вторых, Compose это, вообще говоря - другой input method и все, что через него "накомпозировали" ни через какие другие конверторы не пропускается и сразу отправляется на выход X[mb|wc]LookupString. И наконец, hint - в левой части правила (в Compose file) не обязательно писать последовательность из нескольких keysym. Там может быть и одиночный keysym. (В таком применении из Compose можно сделать просто "таблицу перекодировки"). Итак, строчка для Compose

<EuroSign> : "\200"

Единственный недостаток - это будет работать в тех приложениях, где используется XmbLookupString, а не XLookupString. В большинстве прогамм и так уже используется, но за все поручится не могу. (Эти две функции работают практически одинаково, во всяком случае для локалей с восьмибитными кодировками. Поэтому, "по внешним признакам" догадаться - какя из них используется в конкретной программе - практически невозможно).

Извините, что пишу от anonymous (поленился зарегистрироваться). А вообще-то, это писал Ivan Pascal.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.