The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Настраиваем русский Unicode в FreeBSD-5.3. (rus freebsd unicode utf8)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: rus, freebsd, unicode, utf8,  (найти похожие документы)
From: Моторин В.Ю. aka wolf_black <wolf_black@rambler.ru.> Date: Wed, 2 Aug 2007 18:21:07 +0000 (UTC) Subject: Настраиваем русский Unicode в FreeBSD-5.3. Оригинал: http://BSDPORTAL.RU Руководство по настройке Unicode Небольшое вступление. На юникс-форумах происходит много споров на тему "А нужен ли юникод юникс-системам ?",но чёткого вывода эти споры так и недают.Сделаем простой вывод,что раз есть такая кодировка ,значит она кому то нужна . Я не буду рассматривать её достоинства или недостатки ,не буду склонять к тому чтобы срочно все переходили на utf,а просто поделюсь своим опытом перехода на unicode в системе FreeBSD.Опять же сразу оговорюсь что данная мной методика не является обязательной в исполнение каждого пункта статьи ,а с успехом может быть заменена на другие методы решения возникших вопросов .Если посмотреть на дистрибутивы Linux то там уже довольно удачно юникод применяеться в качестве основной кодировки дистрибутивов ,это такие как Suse,Red Hat/Fedora и некоторые другие.Остальные создатели дистрибутивов посматривают в эту сторону ,но пока не все спешат с переходом на юникод по умолчанию в системе ,хотя полная поддержка utf-локализации обеспеченна практически во всех линукс-дистрибуивах.До сей поры юникод как-то обходил стороной BSD-системы .Но прогресс так сказать не стоит на месте ,и в недавних релизах BSD-систем (FreeBSD,DragonFlyBSD ,NetBSD)появилась вобщем то полная поддержка utf-локализаций.Остановимься на самой популярной из них -FreeBSD (на даный момент версия 5.3),но я думаю тоже самое может быть и применено и в других BSD-системах .Поставим для себя такую цель : Работать во FreeBSD ,плюс чтоб была обеспеченна полная руссификация причём в юникоде. Юникодная консоль и руссификация . Вот тут мы наступаем на первые грабли .Для начала чтоб неморочить голову делаем руссификацию в точности как описанно в HandBook не больше и не меньше. А как же юникод ? Вот тут сразу придётся огорчить читателя ,что консоль FreeBSD пока не совсем готова к принятию юникода ,а для нормальной работы вам придёться использовать старый добрый koi8-r .Причин здесь несколько,но скажу лишь про одну из основных .Для для того чтобы реально попробовать юникод в консоли FreeBSD нужны мап-файлы (файлы кодировок ввода/вывода символов на консоль) .Просто посмотрим в каталоги /usr/share/syscons/scrmaps и /usr/share/syscons/keymaps и убедимся что файлы в кодировке юникод отсувствуют,длительные поиски в сети как мои ,так и заинтересовавшихся товарищей юникодных мап-файлов дали отрицательный результат,да и вобще если таковые и были бы ,то сама структура syscons вызывает сомнения с точки зрения пригодности к юникоду ,но это требует отдельных широких исследований.А как же тогда юникод ? Ответ:"X-Window -вот что нам нужно ". По простому называемые иксы давно готовы к принятию юникода Собственно с ними и будем работать.Конечно разность кодировок в консоли и иксах может вызывать противоречивые чувства у многих (типа локаль должна быть едина) ,но как говориться и здесь можно найти свои преимущества.Cама локаль идёт во FreeBSD начиная с версии 5.2 ,но если вдруг неокажется увас по каким либо причинам то её можно установить из портов - /usr/ports/misc/utf8locale. Настройка локали. Оговорюсь сразу что у меня оболочка bash ,и всё ниженаписанное по настройкам применительно к ней ,но и с другими шеллами затруднений не должно возникнуть ,главное понять суть вопроса. Собственно раз мы будем работать с юникодом в иксах,то задаём переменные для рализации юникодной локали в домашнем каталоге ,в файле ~/.xinitrc ,в самых первых строках файла. Нужно задать соответствующие переменные,для чего привожу простой пример состава файла ~/.xinitrc: export LANG='ru_RU.UTF-8' export LC_ALL='ru_RU.UTF-8' exec startfluxbox Конечно fluxbox может быть заменён на другой менеджер .Мне по почте отписали что что переменную LC_ALL следует делать LC_ALL=" " ,то есть оставить пустой ,но на поверку оказалось ,что если так сделать ,то получаем большие проблемы с вводом русских букв в иксовых терминалах ,а вот при указание проблема исчезает.Ещё совет - нужно побольше установить шрифтов TTF в каталог usr/X11R6/lib/X11/fonts/TTF .Это нужно для нормального отображения и вобще работы в некоторых приложений (подойдут из всем ивестной сиситемы виндовс).Рекомендую после того как скопированны шрифты сделать следущее под рутом : cd /usr/X11R6/lib/X11/fonts/TTF mkfontscale mkfontdir fc-cache И проверьте что в /etc/X11/xorg.conf указан путь к /usr/X11R6/lib/X11/fonts/TTF. Иксовые терминалы. Не во всех терминалах ввод/ввывод русского языка при локали юникод проходит нормально ,лучше для этого под рукой иметь терминалы с умолчательной юникодной поддержкой.Нормальные терминалы поддерживающие юникод - ввод русского с клавиатуры ,и вывод сообшений на экран терминала по-русски -xterm mlterm,rxvt-unicode,gnome-terminal. К остальным нужно применять некоторые ухищрения ,вот например для aterm: файл ~./.Xdefault пишем : Aterm*background: black Aterm*foreground: #CECECE Aterm*scrollBar: true Aterm*loginShell: true Aterm*saveLines: 3000 Aterm*transparent: true Aterm*transpscrollbar: true Aterm*tintingType: true Aterm*tinting: #a07040 Aterm*shading: 60 Aterm*fade: 90 Aterm*title: aterm Aterm*iconName: aterm Aterm*font: -*-terminus-medium-*-*-*-*-*-*-*-*-iso10646-1 Aterm*boldFont: -*-terminus-medium-*-*-*-*-*-*-*-*-iso10646-1 Aterm*geometry: 80x24 Aterm*termName: aterm Виндовс-Менеджеры В принципе подойдут все сейчас популярные менеджеры.Опробованны в юникоде : KDE,XFCE,wmaker,семейство боксов -openbox,blackbox,hackedbox .Проблем в работе с юникодом не возникло.Я уверен что и с Gnome никаких замечаний не будет . С установленным из портов fluxbox-0.1.14 есть проблема - никак не хотели отображаться опции из Configure и заголовки приложений .Рекомендую метод - взять и удалить эту версию флукса вобще ,а вместо него взять последние исходники fluxbox-0.9.12 и пересобрать так : ./configure --prefix=/usr/X11R6 \ --enable-xinerama \ --enable-shape \ --enable-slit \ --enable-kde \ --enable-gnome \ --enable-interlace \ --enable-nls \ --enable-timed-cache gmake gmake check gmake install После этого проблем никаких. Midnight Commander. Самый популярный файл-менеджер вызвал больше всего головной боли.Обычный устанавливаемый mc из /usr/ports/misc/mc показал изрядную неспособность работать в юникоде ,даже в юникодных терминалах проявляется неотображение mc вобще или нестабильная работа- пропадание некоторых букв при вводе и т.п. Ясно что тут дело в опциях компиляции .Здесь есть три пути борьбы с данной проблемой : Путь No.1 (юниксоида): 1)Распаковать находящиеся в каталоге /usr/ports/distfiles исходники с mc-4.6.0.tar.gz в любой каталог под рутом (прежде удалите установленный mc) . 2)Берём патчи отсюда - http://www.linux.kiev.ua/%7Esimonov/files/unicode/mc-utf8.tar.gz - распаковываем в каталог с исходником по примеру : cat ./.utf8 | patch2 -p1 -b .utf8 и далее также со всеми патчами . 3)Делаем следущую перекодировку : iconv -f iso8859-1 -t utf-8 -o mc.hint.tmp mc.hint && mv mc.hint.tmp mc.hint iconv -f koi8-r -t utf8 -o mc.hint.ru.tmp mc.hint.ru && mv mc.hint.ru.tmp mc.hint.ru 4) Далее упаковываем исходник опять в формат tar.gz и кидаем его в /distfiles ,идём в /usr/port/misc/mc и в Makefile добавляем для CONFIGURE_ARGS+ опцию сборки --with-screen=slang .Потом всё как обычно: make make install При этом сохраниться целостность системы и получите юникодный mc. Путь No.2(меньшего сопротивления): Установить вместо обычного mc из портов его форк -/usr/ports/misc/mc-light. Данное ответвление mc развивается нашим российским разработчиком .Что мы теряем при этом :руссифицированное меню ,взаимодействие с иксами .Но это при работе в терминале не суть важно ,но что приобретаем :полная поддержка юникода ,множество кодировок (особенно при это видно при просмотре по F3 файлов с разными кодировками и при перекодирование "на лету" по CTRL+T ),и некоторыми дополнительными фичами,одна из которых прямая запись на CD через обыкновенное копирование по F5 и ещё много других ,не говоря уж о красивом разноцветном интерфейсе. Путь No.3 : Перебороть в себе тягу к mc ,и использовать графические файл-менеджеры поддерживающие юникод - krusader,gnome-commander,gentoo, и т.д. Скажу что я не смог себя перебороть это Smile .Я выбрал путьNo.2,чем чрезвычайно доволен,но как говориться каждому своё. Работа с консольными приложениями в икс-терминалах . Те приложения которые нормально поддерживают по умолчанию юникод работают более-менее сносно в вышеуказанных юникодных терминалах.Например такое приложение как centericq кроме utf-8 ,уже умеет поддреживать utf-16 и работает без проблем ,только немного поправив опции.Например из редакторов с успехом работают в юникоде -nano,pico,vi.Из консольных клиентов хорошо отработал cone .Но для и для нормальной работы с приложениями не поддерживающими юникод есть выход,например: Чтобы нормально работать с jed нужно в ~/.bash_profile прописать : alias jed='LANG=ru_RU.KOI8-R; jed' ну и далее в том же духе для нужного вам приложения. Работа с иксовыми приложениями . C простыми иксовыми и QT-приложениями проблем не замеченно . Но вот в GTK - в некоторых приложениях могут вместо букв быть квадратики или кракозябры (например в xmms в меню ) ,лечиться так : создаём в домашнем каталоге файл ~/.gtkrc и прописываем там следушее : style "gtk-default" { fontset = "-*-Nimbus Sans L-medium-r-normal--14-*-*-*-p-*-iso10646-1,\ -*-clearlyu-medium-r-normal--17-*-*-*-p-*-iso10646-1,\ -*-r-*-iso10646-1,*" } class "GtkWidget" style "gtk-default" и всё -вместо квадратиков русские буквы ,с размером шрифта можно поиграть. Вот вроде и всё .Я остался работать в юникоде под FreeBSD ,пока проблем не наблюдаю.Всех желающих обсудить данную тему прошу на http://www.linuxforum.ru в раздел "FreeBSD и другие " ,или пишите по почте .

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
 
  • 1.1, Dray (?), 12:25, 14/08/2007 [ответить]    [к модератору]
  • +/
    как патчить mc можно описать по подробнее? ставил mc-light но все равно шрифты русские не отображаются коректно (часть букв есть части нет)в xterm, а если зайти в папку то в строке пути пишется все нормально. Также если использовать просто xterm то каталоги и файлы создаются и видятся коректно. Настройки все как в статье, если нужны конвиги выложу.
     
  • 1.2, Longer (?), 15:04, 13/07/2008 [ответить]    [к модератору]
  • +/
    а еще можно у mс - make config и выбрать UTF-8 Support :)
     
  • 1.3, cache (??), 21:02, 14/07/2008 [ответить]    [к модератору]
  • +/
    Ну да, десяти лет не прошло, как порт обновили, и теперь mc можно собрать с поддержкой юникода без бубна.
     
     
  • 2.4, Hanggard (?), 23:16, 03/10/2009 [^] [ответить]    [к модератору]
  • +/
    А если уникод поставил, mc собран с поддержкой UTF, а показывает кракозябры? При этом xterm показывает русский отлично.
     
     
  • 3.7, skvernobot (ok), 18:01, 16/12/2009 [^] [ответить]    [к модератору]
  • +/
    заметил данный баг с версии 6.3 бсд. вместо пвевдографики были кракозябры.
    погуглив понял что причина была в баге в slang.
    обновить порты и пересобрать mc. баг поправили.
     
  • 1.5, Павел (??), 21:53, 19/10/2009 [ответить]     [к модератору]  
  • +/
    9j 4AAQSkZJRgABAQEAlgCWAAD 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRofHh0aHBw... весь текст скрыт [показать]
     
     
  • 2.6, Hanggard (?), 06:17, 20/10/2009 [^] [ответить]    [к модератору]  
  • +/
    Это тело письма. Можешь его не переводить, там просто либо картинка, либо еще что-нибудь из файлов. В общем, всю ситуацию опиши.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:




      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor