B Poccuu: English
version || no-pyccku:
windows-1251
| koi8-r
| ibm866
| mac
| iso-8859-5
| latin
В Швеции: English
version || no-pyccku: windows-1251
| koi8-r
Поддержка русского языка в Forte Agent
Версия 1.51 от 12 января 1998 г.
Содержание
Все сказанное ниже относится к версиям от .99g. до 1.5.
Основная причина, по которой я рекомндую Forte Agent для почты и новостей заключается в том, что он позволяет поддерживать несколько русских кодировок (я использую две) с одной клавиатурой и минимальной поддержкой "неродных" шрифтов. Плюс очень удобный и гибкий механизм автоматической фильтрации и ручной обработки сообщений.
Эта страничка посвящена тому, как настроить Forte Agent, чтобы он понимал КОИ8 по возможности без использования КОИ8 фонтов и строго без использования дополнительной русской раскладки клавиатуры.
Forte Agent можно взять на сервере Forte,
Inc. Регистрационный ключ покупается там же.
- Windows95 - все описанные здесь методы
- Windows 3.x - метод частичной поддержки КОИ
- Windows NT - метод прокси; метод rsock32.dll тоже должен работать, но я не пробовал
Замечание. Rsock32.dll должен работать под любой 32-битной версией Windows.
16-битная версая rsock, вероятно, существует (у меня ее нет); при желании ее можно сделать и самостоятельно, т.к. rsock распространяется с исходными текстами.
Вообще говоря, открытый механизм перекодировки Agent'а в идеале должен позволять обходится его собственными возможностями. Однако, по неизвестным причинам, список сообщений не перекодируется, как, впрочем, и весь заголовок (header) сообщения. Пишите на фирму (о том, что необходимо поправить в Agent - см. мою англоязычную страницу). Кроме того, почитать и обсудить мое личное мнение о правильном подходе к обработке русскоязычных сообщений в сетях можно на посвященной этому страничке Stop KOIzation of Windows (только на английском).
А пока приходится использовать либо а) внешний перекодировщик всего потока почты и новостей, либо б)
установить частичную поддержку КОИ для просмотра списка и заголовков сообщений (в последнем случае нас могут интересовать, как правило, только строки Subject: и (реже) From: - в тех случаях, когда они написаны с применением КОИ8).
Файлы, названия которых выделены жирным шрифтом, можно взять через листы загрузки, которые находятся в конце каждого раздела.
- Если Вы имеете возможность вести всю переписку (включая телеконференции) в "родной" кодировке (т.е. заботу о правильном перекодировании берет на себя провайдер), то Вам следует воспользоваться Методом C. "Когда КОИ не нужна совсем".
- Если Вас не обременит использование трех раскладок - двух русских и английской (попробуйте!), то просто установите полную поддержку КОИ. О том, как это сделать, лучше всего узнать на сайте Андрея Чернова.
- Если же Вы не хотите все время переключаться между тремя раскладками, то основной выбор стоит между а) использованием внешнего перекодировщика и б) установкой поддержки koi8-r (в необходимых пределах).
Использование внешнего перекодировщика- К сожалению, известные мне перекодировщики могут корректно обрабатывать только восьмибитные сообщения. То есть приходящие (и уходящие) сообщения, если они закодированы в семибитный формат (например, MIME), не перекодируются вообще. Для нас это означает, что отправлять сообщения надо будет в 8-битном формате (включая заголовки); кроме того, приходящие семибитные сообщения прочитать будет можно, но не сразу - придется "нажать" кнопку-другую.
Кроме того, если Ваше соединение - "на дозвоне", то использовать прокси PXY 1.4b не удастся. Единственный вариант в этом случае - rsock32.dll.
Частичная поддержка koi8-r- В этом случае необходимо установить только один КОИ-фонт для того, чтобы можно было прочесть список сообщений и заголовки (headers). Недостаток этого метода в том, что тему сообщения (поле Subject) и другие поля заголовка редактировать без установки дополнительной раскладки клавиатуры невозможно. Следует просто не использовать русский язык в заголовке.
Этот метод можно использовать при любом типе соединения.
См. также раздел Несколько слов о том, под какой версией Windows что
работает
Рассматриваемые здесь внешние перекодировщики преобразуют весь входящий поток схеме КОИ8-R -> Windows-1251 (при этом для прочтения сообщения, пришедшего в windows-1251, требуется дополнительное [обратное] преобразование), и весь выходящий поток - по обратной схеме. В качестве перекодировщиков можно использовать либо прокси-сервер (например PXY 1.4b Андрея Жаворонкова и Сергея Полякова), либо библиотеку Олега Лецинского rsock32 (только 32-битная, распространяется вместе с исходниками). Инструкции по
установке прилагаются.
Если нужды в использовании Windows-1251 нет, то этот путь - самый простой. Можно использовать файл koi8.csm, входящий в пакет поставки Forte Agent. Рекомендуется лишь оставить в строке "Charset:" только "KOI8-R" (т.е. убрать "us-ascii"), а в строке "Codepage:" написать "1251" . Поправленный файл входит в комплект таблиц перекодировки - mapextrn.zip.
Если необходимо также использовать кодировку Windows-1251, то следует использовать таблицы перекодировки для Windows-1251, входящие в комплект таблиц перекодировки - mapextrn.zip (файл koi8_win.csm, входящий в комплект поставки Forte Agent, не подходит). Не используйте Windows-1251 в заголовке сообщения (поле Subject и др.), так как Agent его не перекодирует.
Вариант с прокси практически идеален, если соединение идет через локальную сеть. В случае использования rsock32 таких ограничений нет, но надо поправить один байт в agent.exe, что, по разным причинам, не для всех может оказаться приемлемым.
Замечания
- При получении сообщения с неправильно установленным чарсетом возможны трудности. Фатален случай (впрочем, достаточно редко встречающийся) установки неправильного чарсета на сообщение в Windows-1251, так как он будет преобразован внешним перекодировщиком по схеме KOI8-R -> Windows-1251, а обратное преобразование Agent'ом выполнено не будет.
- Еще один недостаток применения предлагаемых внешних перекодировщиков заключается в том, что закодированные в 7-битный формат сообщения (обычно MIME-encoded) прочитать прочитать без дополнительных ухищрений невозможно. О том, что надо предпринять, чтобы иметь возможность читать такие сообщения см. интструкции в конце этого раздела.
Установка русских "языков" (Win95, WinNT и Win 3.x)
- Выгрузить комплект таблиц перекодировки - файл mapextrn.zip (см. лист загрузки) и распаковать его в Shared Directory (каталог, в котором находится agent.exe, подробности в Agent's Help о файле agent.ini). Далее описано, как установить в Agent'е два русских языка (таблицы перекодировки плюс фонты) - один для КОИ-, другой для Win-сообщений.
- Пойти в Options|General Preferences.
- Выбрать закладку Languages, нажать Add, в поле Name написать имя для "языка", который будет предназначен для общения в КОИ, например Russian KOI8, нажать Ok (здесь не следует обращать внимание на поле Based on). Затем в поле Character Sets найти и выбрать строку Russian KOI8-R KOI8-R 1251. Нажать Ok.
- Пойти в Options|Display Preferences.
- Выбрать закладку Fonts, выбрать язык Russian KOI8, далее
- Win 3.x:
- для Variable-Pitch Body выставить один из стандартных неравноширинных
кириллических фонтов (например, Arial Cyr);
- для Fixed-Pitch Body выставить один из стандартных равноширинных
кириллических фонтов (например, Courier Cyr);
- Win95 и WinNT:
- для Variable-Pitch Body выставить один из стандартных неравноширинных
фонтов, а в поле Script выбрать Cyrillic.
- для Fixed-Pitch Body выставить выставить один из стандартных
равноширинных фонтов, а в поле Script выбрать Cyrillic.
- Поставить галки во все три квадрата. Нажать Ok.
- Снова пойти в Options|General Preferences.
- Выбрать закладку Languages, нажать Add, в поле Name
написать имя для "языка", который будет предназначен для
общения в 1251, например Russian Win, а в строке Based on
выбрать Russian KOI8, нажать Ok. Затем в поле
Character Sets найти и выбрать строку Russian Windows Windows-1251 1251.
Нажать Ok.
Готово!
Как читать КОИ-сообщения, закодированные в 7 бит. Если это действительно необходимо, загрузите и установите КОИ-фонты либо обзаведитесь поправленным файлом gdi.exe как описано в следующем разделе. Затем добавьте еще один русский "язык" (назовем его, скажем, "True KOI") следующим образом:
- Пойти в Options|General Preferences.
- Выбрать закладку Languages, нажать Add, в поле Name
написать имя (True KOI), в строке Based on выбрать Russian KOI8, нажать Ok.
- Пойти в Options|Display Preferences.
- Выбрать закладку Fonts, выбрать язык True KOI, далее
- для Variable-Pitch Body выставить установленный неравноширинный
КОИ-фонт;
- для Fixed-Pitch Body выставить выставить установленный равноширинный
КОИ-фонт.
- Поставить галки во все три квадрата. Нажать Ok.
Теперь при получении "нечитабельного" сообщения, попробуйте пойти в Message|Language и выбрать "True KOI".
Все эти ухищрения необходимы ровно до тех пор, пока разработчик не реализует достаточно простые вещи, опсанные здесь.
Лист загрузки
На этом описание метода поддержки русского языка с помощью внешнего перекодировщика закончено. Если по каким-то причинам этот метод не подходит, ниже описан другой путь.
Для просмотра списка сообщений необходимо будет установить либо так
называемые КОИ8 фонты, либо правленный gdi.exe (Windows 95), см.
страницу Андрея Чернова
(в листе загрузки имеется правленый gdi.exe для паневропейской версии).
Для просмотра текстов сообщений, а также для написания собственных достаточно
уже имеющихся стандартных фонтов и стандартной раскладки клавиатуры, которую
я, впрочем, заменил на привычную.
Подчеркну еще раз, что дополнительная раскладка для КОИ8 _не_ нужна).
Установка КОИ-фонта
- Windows 3.x
- Выгрузите и установите неравноширинный (~ Times) КОИ-фонт (см. лист загрузки, либо страницу Андрея Чернова, где выбор шире, но сколь-нибудь прилично выглядящих шрифтов нет и там). Затем переходите к настройке Agent'а.
- Windows 95
- Для просмотра списка сообщений необходим либо неравноширинный КОИ8 фонт (см. предыдущий параграф), либо поправленный gdi.exe, в котором один из нерусских чарсетов заменен на KOI8-R - о том, как это сделать см. страницу Андрея Чернова (в листе загрузки имеется поправленный gdi.exe для паневропейской версии).
Установка русских "языков" (Win95 и Win 3.x)
- Выгрузить комплект таблиц перекодировки - файл rus_maps.zip (см. лист загрузки) и распаковать его в Shared Directory (каталог, в котором находится agent.exe, подробности в Agent's Help о файле agent.ini). Далее описано, как установить в Agent'е два русских языка (таблицы перекодировки плюс фонты) - один для КОИ-, другой для Win-сообщений.
- Пойти в Options|General Preferences.
- Выбрать закладку Languages, нажать Add, в поле Nameнаписать имя для "языка", который будет предназначен для общения в КОИ, например Russian KOI8, нажать Ok (здесь не следует обращать внимание на поле Based on). Затем в поле Character Sets найти и выбрать строку Russian KOI8-R KOI8-R 1251. Нажать Ok.
- Пойти в Options|Display Preferences.
- Выбрать закладку Fonts, выбрать язык Russian KOI8, далее
- Win 3.x:
- для Variable-Pitch Body выставить установленный неравноширинный КОИ-фонт;
- для Fixed-Pitch Body выставить один из стандартных равноширинных кириллических фонтов (например, Courier Cyr);
- Win95 с установленным КОИ-фонтом:
- для Variable-Pitch Body выставить установленный неравноширинный
КОИ-фонт;
- для Fixed-Pitch Body выставить выставить один из стандартных
равноширинных фонтов, а в поле Script выбрать Cyrillic.
- Win95 с правленым gdi.exe:
- для Variable-Pitch Body выставить выставить один из стандартных
неравноширинных фонтов, а в поле Script выбрать KOI8-R;
- для Fixed-Pitch Body выставить выставить один из стандартных
равноширинных фонтов, а в поле Script выбрать Cyrillic.
- Поставить галки во все три квадрата. Нажать Ok.
- Снова пойти в Options|General Preferences.
- Выбрать закладку Languages, нажать Add, в поле Name
написать имя для "языка", который будет предназначен для
общения в 1251, например Russian Win, а в строке Based on
выбрать Russian KOI8, нажать Ok. Затем в поле
Character Sets найти и выбрать строку Russian Windows Windows-1251 1251.
Нажать Ok.
Готово!
- ВНИМАНИЕ!
- При использовании "языка" Russian KOI8 для просмотра и редактирования текста сообщения должен быть выбран равноширинный фонт - убедитесь, что в меню Message отмечен пункт Fixed Pitch Font.
Замечания
- Если необходимо вести переписку в КОИ, то рекомендуется выбрать язык Russian KOI8 по умолчанию (в Groups|Default Properties|Language), если же она нужна только для некоторых ньюсгруп, то лучше в каждой такой группе выбрать Russian KOI8 в Groups|Properties|Language, а по умолчанию для всех групп выбрать тот язык, который нужен для переписки.
- Если в заголовке сообщения чарсет не указан, то Agent перекодирует его только один раз - при загрузке, согласно указанному чарсету. При этом для показа сообщения выбираются фонты того "языка," который выставлен для данной группы/фолдера (а не того, который был применен при перекодировке). При изменении "языка" сообщения меняются только фонты, само сообщение НЕ перекодируется.
Поэтому если Вы не можете прочесть сообщение, это значит, что в нем неправильно установлен чарсет. Agent не предоставляет возможности перекодировать его заново, тем не менее прочесть его можно. Чтобы не разбирать все возможные комбинации, заметим, что любое КОИ-сообщение можно прочесть, переключившись на исходный текст (Message|Show Raw Message), шрифтом переменной ширины (убрать галку в Message|Fixed Pitch Font) языка Russian KOI, то же справедливо для 1251-сообщения с заменой языка на Russian
Win.
Таким образом, любое нечитаемое сообщение (если только оно написано в КОИ или 1251) можно прочесть следующим образом: переключиться на исходный текст (Message|Show Raw Message), поставить шрифт переменной ширины (убрать галку в Message|Fixed Pitch Font) и, если не читается, поменять язык на другой.
- Если же в заголовке сообщения чарсет не указан, то проблема, описанная в предыдущем пункте, не возниакет. Просто попробуйте другой "язык" - и сообщение будет перекодировано.
О том, что нужно, чтобы привести Agent в полный порядок (и написать об этом на фирму-разработчик) см. мою англоязычную страницу.
Лист загрузки
- bkkoi8w.zip - bukinist (~times) truetype KOI8 font (этот шрифт не нужен если устанавливается правленый gdi.exe)
- cokoi8w.zip - kurier (~courier) truetype KOI8 font (этот шрифт вообще не нужен для настройки Agent'а, лежит здесь "до
кучи")
- gdi.zip - поправленный gdi.exe для Win95 PE
- rus_maps.zip - комплект таблиц перекодировки
На этом описание метода поддержки русского языка с помощью установки частичной поддержки koi8-r закончено.
В тех (пока редких) случаях, когда пользователь имеет возможность вести всю переписку (включая телеконференции) в "родной" кодировке (т.е. заботу о правильном перекодировании берет на себя провайдер), возможности Forte Agent по перекодировке использовать смысла нет. В этом случае надо только правильно установить русский "язык". Это делается достаточно просто:
Установка русского "языка" (Win95, WinNT и Win 3.x)
- Выгрузить комплект таблиц перекодировки - файл rus_maps.zip (см. лист загрузки) и распаковать его в Shared Directory (каталог, в котором находится agent.exe, подробности в Agent's Help о файле agent.ini).
- Пойти в Options|General Preferences.
- Выбрать закладку Languages, нажать Add, в поле Name написать имя для "языка", который будет предназначен для общения по-русски, например Russian, нажать Ok. Затем в поле Character Sets найти и выбрать строку Russian Windows Windows-1251 1251. Нажать Ok.
- Пойти в Options|Display Preferences.
- Выбрать закладку Fonts, выбрать язык Russian, далее
- Win 3.x:
- для Variable-Pitch Body выставить один из стандартных неравноширинных
кириллических фонтов (например, Arial Cyr);
- для Fixed-Pitch Body выставить один из стандартных равноширинных
кириллических фонтов (например, Courier Cyr);
- Win95 и WinNT:
- для Variable-Pitch Body выставить один из стандартных неравноширинных
фонтов, а в поле Script выбрать Cyrillic.
- для Fixed-Pitch Body выставить выставить один из стандартных
равноширинных фонтов, а в поле Script выбрать Cyrillic.
- Поставить галки во все три квадрата. Нажать Ok.
Готово!
Лист загрузки
Если у Вас есть замечания, предложения, и т.п., пишите мне по адресу timur@iris.mipt.ru
Homepage
Since November 1996