|
ArcaOS 5.0 Русская версия
Пакет русификации ArcaOS 5.0 OS/2 давно доступен.
Поддерживается любая версия: 5.0, 5.0.1, 5.0.2.
eCo Software может выпустить и другие пакеты
(Немецкий, Голландский, Бразильский Португальский, Испанский, Шведский и т.д.)
|
Как я научил BersIRC работать с KOI8-R |
TITLE: Как я научил BersIRC работать с KOI8-R
DATE: 2001-09-06 18:45:41
AUTHOR: Alex Slyotov
"Когда же продолжали спрашивать Его,
Он, восклонившись, сказал им:
кто из вас без греха,
первый брось на нее камень."
От Иоанна 8:7
Предисловие
Сразу хочу сказать, что тем "фанам" OS/2, которые готовы сделать харакири себе или своему ближнему при одном только слове Windows я бы не рекомендовал читать этот обзор ибо опасаюсь за здоровье... нет, не этих "фанов" (туда им и дорога), а исключительно их ближних. Данный обзор адресован тем, кто волею судеб вынужден работать в Windows.
Сам я знаком с OS/2 уже более 7 лет. За это время мне удалось накопить довольно солидный опыт практической работы как с самой операционной системой, так и со специализированным программным обеспечением, но так уж получилось, что мне сейчас по-работе приходится часто находится в Windows и чтобы не чувствовать своего отрыва от мира OS/2 я решил, что было бы здорово иногда заглядавать на #os2russian для общения со старинными знакомыми...
Итак, приступим!
Первая задача, которую пришлось решать заключалась в выборе удобного Win32 IRC-клиента из всего того сонмища клиентов, которое доступно в интернете. Мною были опробованы:
EasyIRC, IamC, ObjIRC, dIRC, vIRC97, Pirch98, TurboIRC, WinJab, XiRCON, OpenChat87,
mIRC и BersIRC.
В результате я остановил свой выбор на двух последних, как на самых удобных для меня клиентах. Про них я дальше и буду рассказывать.
В принципе эти клиенты очень похожи друг на друга, причем BersIRC может даже импортировать настройки из уже установленного в системе mIRC'a. Так что я расскажу только о главных (в моем понимании) отличиях между ними:
- Официально BersIRC является FREEWARE, т.е совершенно бесплатной программой, в то время как mIRC - SHAREWARE, т.е его автор хочет денег за свое творение;
- последние версии mIRC'a умеют работать не только через SOCKS-прокси, но и через обычный HTTP-прокси сервер. BersIRC умеет работать только через SOCKS4 или SOCKS5 прокси;
- BersIRC умеет подключаться одновременно к нескольким IRC-серверам, а чтобы тоже самое сделать в mIRC 'e - надо запустить столько его копий, к скольким IRC-серверам Вы хотите подключиться;
- BersIRC обладает более широким диапазоном настроек пользовательского интерфейса, чем mIRC;
- язык скриптов BersIRC представляет собой ObjectPascal, т.е. тем кто знаком с Delphi написание скриптов не составит практически никакой сложности. У mIRC'a со скриптами по другому. Там тоже есть язык скриптов, но я так и не проникся им. По моему он крайне неудобен и коряв, не говоря уж о том, что для начинающего писателя он представит очень большую сложность. Хотя еще раз повторю, что это только мое мнение и оно ни в коем случае не претендует на звание истины в последней инстанции.
Способы решения задачи трансляции KOI8-R <-> CP-1251
Так как основной особенностью этих двух клиентов является корректная работа только с CP-1251 кодовой страницей мы подошли к решению главной задачи: можно ли вообще научить эти клиенты работать с KOI8-R и если можно, то как?
Для тех, кто ходит в интернет напрямую безо всяких прокси, правильным решением будет использование утилиты PXY, которая по сути сама является прокси, декодирующим KOI8-R <-> CP-1251 на лету. Т.е Вам достаточно установить эту программу и указать своему Win32 IRC-клиенту, что он должен ходить через PXY-прокси. В архиве с PXY идет вполне достаточный README, рассказывающий как все настраивается.
Однако указанный выше способ, несмотря на его универсальность для любого Win32 IRC-клиента, к сожалению, не подходит тем, кто вынужден ходить в интернет через SOCKS или HTTP прокси так как PXY утилита не умеет работать через прокси сервера. Поэтому данной катагории пользователей решать проблему KOI8-R <-> CP-1251 трансляции придется уже на уровне IRC-клиентов. Для успешного решения данной проблемы IRC-клиент должен позволять пользователю контролировать входящие и исходящие потоки. Обычно это делается с помощью встроенного в IRC-клиент скрипт-языка.
Рассмотрение второго способа трансляции применительно к mIRC и BersIRC
mIRC
После непродолжительных поисков я нашел уже готовый скрипт решающий эту задачу. Скрипт называется RECODE. Вместе со скриптом идет описание по его настройке и использованию. Работает скрипт вполне корректно и на данный момент у него замечен только один ляп - он не умеет транслировать тему канала для отображения в заголовке окна клиента. Т.е если тема содержит символы старшей половины ASCII таблицы, то отображаться в заголовке окна она будет в виде "крякозябр". Хочу сказать, что я не разбирался в содержимом этого скрипта по причине крайне корявого и неудобного для моего понимания mIRC'овского скрипт-языка, поэтому не могу сказать, что там надо подправить для правильного отображения русских KOI8-R символов в заголовке окна. Оставляю эту творческую работу Вам. :)
BersIRC
Скрипт-язык этого IRC-клиента в плане удобства для программиста кардинально отличается от скрипт-языка mIRC'a. По сути скрипт-язык BersIRC'a представляет собой ObjectPascal, т.е тем, кто знаком с Delphi, написание скриптов для BersIRC'a не составит никакого труда. Даже тем, кто не знаком ни с Delphi, ни с Pascal'ем, все равно писать скрипты для BersIRC'a будет удобнее и понятнее, чем для mIRC'a. Сам я с Delphi никогда не работал, хотя с Borland Pascal for MS-DOS и Virtual Pascal for OS/2 поработал в свое время достаточно много. Ситуацию с написанием собственных скриптов облегчает еще и тот факт, что вместе с BersIRC'ом можно скачать с сайта разработчика (и со сторонних сайтов по ссылкам) примеры уже работающих скриптов и полное описание процедур и функций допустимых к применению в скриптах. У меня лично разбирательство во всей этой "кухне" заняло всего пол-дня и уже к вечеру был готов deep-alpha набор скриптов, который мне смог транслировать KOI8-R <-> СР-1251 и я, наконец-то, увидел #os2russian по-русски. :))
Дальнейшая работа происходила в более быстром темпе и за пару дней я сделал вполне работоспособный комплект скриптов. Установка моих скриптов заключается в записи их поверх уже имеющихся файлов в каталоге ...\BersIRC\Scripts. Настройка параметров несколько неудобна, так как не является интерактивной как в случае с RECODE скриптом для mIRC'a, но тем не менее позволяет настроить имена каналов для которых надо применять трансляцию KOI8-R <-> CP-1251, а также имена пользователей PRIVATE-разговоры с которыми тоже должны подвергаться трансляции. Все эти параметры настраиваются редактированием блока констант в модуле TRANS.OPS:
AHI = 'NO'; //Auto Hi-messages
PUB = '#OS2RUSSIAN,#TEST,#BEOS'; //Channels list for
//activate translation
PRV = 'SERGEY,OS2KRNL,E-CO,OS2OK,ELI_W'; //Nicks list for
//activate PRIV translation
Переменная AHI отвечает за включение или выключение вывода автоматических приветственных сообщений при обнаружении нового пользователя на канале. Допустимые значения: 'YES' или 'NO';
Переменная PUB содержит имена каналов на которых трансляция KOI8-R <-> CP-1251 должна быть активизирована. Для каналов не указанных в этом списке трансляция производится не будет;
Переменная PRV содержит имена пользователей приватные сообщения от которых должны быть подвержены трансляции KOI8-R <-> CP-1251. Для пользователей не указанных в этом списке трансляция осуществляться не будет.
При написании имен регистр символов не важен.
После того как Вы внесли изменения в константы необходимо перезагрузить скрипты в BersIRC. Для этого Вы должны в командной строке BersIRC'a дать команду:
/load bersirc.ops
или сделать тоже самое через меню:
"Tools" -> "Options" -> "Scripts and Plugins"
-> в поле Script File поместить bersirc.ops
Желающим попинать меня за отсутствие интерактивной настройки хочу напомнить, что это все еще Beta-версия скриптов. Она далека от совершенства и нуждается в доработке, но у меня сейчас катастрофически не хватает свободного времени и, честно говоря, желания "полировать глюкало". Для меня главный критерий - работает, а недостатки... я пока выявил только косметические: двоение вывода в окно клиента (но не на выход программы!) некоторой информации и невозможность "отлова" некоторых событий. Мне не удалось устранить эти ляпы сколько я не бился над этим. Изначально в скрипт-языке не хватает по крайней мере двух событий: "onTopicChange" и события "onCommandOutput". Я пообщался с автором BersIRC'a, но впечатление от этого общения у меня сложилось негативное. По-моему он весьма неотзывчивый тип и вообще у него, как бы это сказать, раздолбайское какое-то настроение. Короче мне было неприятно с ним общаться. В принципе, отчасти, его можно понять. BersIRC - бесплатный клиент и его автор никому ничего не должен. Сейчас он работает над 2.0 версией и, возможно, он учтет мои пожелания на добавление отслеживания некоторых event'ов в скрипт-язык. Было бы просто замечательно если бы кто-то из Вас, кто лучше меня разбирается в ObjectPascal, попробовал довести до ума эти скрипты. Может быть даже имеющихся event'ов Вам будет достаточно для устранения тех ляпов, которые не удалось устранить мне. А может быть кто-то из Вас решит написать свой плагин для трансляции KOI8-R <-> CP-1251. Уверен, что это будет гораздо более удобное и гибкое для конечного пользователя решение, чем скрипт. Одним словом дерзайте!
mIRC homepage: www.mirc.com
BersIRC homepage: www.bersirc.com
Программа PXY
Скрипт RECODE для mIRC
Мои скрипты для BersIRC
Комментарии: Timur Kazimirov 2001-09-07 09:23:30 | Спасибо! Что ещё можно сказать автору.
| Злой Сэии Попил Пивка 2001-09-10 22:34:07 | Очень, очень полезная статья.
По настройке Win32 клиента на *nix кодировку koi8-r. Просто великолепно.
BTW "тем, кто волею судеб" я бы рекомендовал читать NT`ёвые сайты, благо там инфы поболе.
На том же irc.org.ru всё что надо есть :)
2e-co: Так держать ! :) | Злой Сэmm Попил Пивка 2001-09-10 22:34:15 | Очень, очень полезная статья.
По настройке Win32 клиента на *nix кодировку koi8-r. Просто великолепно.
BTW "тем, кто волею судеб" я бы рекомендовал читать NT`ёвые сайты, благо там инфы поболе.
На том же irc.org.ru всё что надо есть :)
2e-co: Так держать ! :) | Hitler 2003-02-22 22:59:16 | Спасибо за информационную отдушину в нашем дерьмократическом мире
| Almer 2004-05-08 00:53:08 | И за скрипт =))) ... | dinky 2006-04-25 10:19:43 | ПАСИБО! Это то что я искал! |
Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|
|
Готовая eComStation на SSD диске
Последний активный опрос: Какая высота барьера RPM?
[Google]
|
IBM OS/2 Warp
|