словник | перекладачка | факти | тексти | програми | |||
щодо | посилання | новини | гостьова книга | пошук | |||
початок
тексти
автор
твір
|
Дмитро Ковальов (kov@tokyo.email.ne.jp)
Використання української мови в EXMH.
Загальний огляд можливостей EXMH
EXMH - freeware програма з графічним інтерфейсом призначена для читання, написання та передачі електронної пошти, і призначена для роботи в середовищі X Window операційних систем Юнікс. Тобто, в термінолоґії Юнікса - це MUA (Mail User Agent). Ми будемо про такого типу програми казати "Користувацька програма електронної пошти", роблячи наголос на "користувацька". Таким чином ми будемо відрізняти її від програми "доставки електронної пошти" (MTA - Mail Transport Agent англійською), зразком якої є sendmail. Дякуючи вбудованим можливостям по підтримці MIME (Multipurpose Internet Mail Extentions), EXMH легко може бути пристосований до читання листів українською мовою.
Що потрібно для роботи EXMH: Оскільки для прийому та передачі повідомлень електронної пошти EXMH користується пакетом Rand Messaging MH, то очевидно, що для роботи EXMH потребує також попереднього встановлення цього пакету. Часто пошта електронними шляхами передається закодованою (про причини цього йтиметься трохи далі). Для читання листів переданих в закодованому вигляді в кодах uuencoded, base64, quoted-printable, тощо, потрібно встановити також пакет metamail. MIME протокол для електронної поштиНапочатку - трохи теорії. Ті, хто знає, як працює MIME, можуть пропустити кілька абзаців і почати конкретно з конфіґурації. Найперші системи електронної пошти працювали тільки з англійською мовою і користувалися 7 бітними кодами для передачі всій повідомлень. На певний час цього було достатньо. Пізніше виявилося, що 7 бітів недостатньо для того, щоб написати все на світі. 7 бітів дають тільки 128 можливих кодів. Навіть розширивши таблицю до 8 бітів (тобто одного байту) не вдається вирішити цієї проблеми - кодів стає всього вдвічі більше - 256. З'явився стандарт MIME. Він дає можливість для кожного окремого листа вказати, якою саме мовою (а точніше якою кодовою таблицею) листа написано. MIME дозволяє ще дуже багато інших корисних речей, таких, як передача графічних файлів по електронній пошті, програм і т.п. Але все це виходить поза межі даного обговорення. Деякі повідомлення (якщо вони є повністю 8 байтними - тобто 8й біт в них задіяно) передаються в закодованому одним із способів вигляді. Справа в тому, що деякі сервери електронної пошти "зрізають" 8-й біт при передачі. Тому таке закодовування зберігає цей самий 8й біт і дає змогу передати листа неушкодженим. Відмітимо, що це кодовування не має нічого спільного з криптографією і не може служити для засекречування своєї кореспонденції. Багато серверів (особливо в тих країнах, які повинні користуватися 8-ми бітними схемами) влаштовані таким чином, що вони автоматично закодовують листи, які йдуть від абонентів, якщо вони 8 бітні, та розкодовують листи, які йдуть до абонентів, якщо ці листи закодовані. Тому Ви можете навіть і не знати, що лист, який прийшов до Вас пройшов кілька трансформацій на своєму шляху. Про це можна дізнатися тільки уважніше поглянувши на заголовки листа (шукайте в них що небудь типу "X-mime-autoconverted:..." ) Користувацька програма електронної пошти, яка підтримує протокол MIME, при передачі листа вставляє в лист кілька додаткових заголовків, які говорять про те, в якій саме кодовій таблиці написано листа. Ось, наприклад, як виглядають заголовки листа, якого я відправив сам собі в кодовій таблиці Windows-1251: Return-path: dk@sophy.sakae Return-path: В цих заголовках нас поки що цікавить тільки
рядок На цьому, власне, і закінчується теорія. Щоб EXMH зміг показувати вірно листи у відповідній кодовій таблиці, його (тобто EXMH) треба цьому навчити - потрібні кодові таблиці треба записати в файлі конфіґурації EXMH і вказати, яким саме шрифтом для якої кодової таблиці користуватися. Але крім цієї гарно сформульованої теорії є ще
грубе і безжалісне буденне життя. Ще існують в
світі програми електронної пошти, які не
підтримують MIME, або що ще гірше, які підтримують
MIME, але вставляють невірно сформовані заголовки
в листи. Наприклад, замість Гірше, якщо ви отримуєте листи, написані в одній
кодовій таблиці, але в заголовках листів вказано,
що вони написані в іншій. (Наприклад, ви побачите Ще (жах!) ви можете опинитися в ситуації, коли
різні ваші дописувачі користуються різними
кодовими таблицями, наприклад Тож, ми описали блискуче теоретичне майбутнє ( електронно-поштовий теоретичний комунізм) і спустилися до найнижчих, найнецікавіших рівнів будення (розвинений соціалізм Радянсього Союзу?). Тепер до роботи. Розглянемо конкретну конфіґурацію EXMH. Конфіґурація EXMHНастроювання EXMH у два кроки
Перший з двох способів простіший для непідготованого користувача, але не дає повного контролю над ресурсами програми. Особливо це стосується настроювання MIME. Мало чого можна добитися користуючись тільки мишею, більшість роботи потрібно виконати, редагуючи вказаний файл. 1. Настроювання за допомогою меню конфіґураціїВпевніться, що EXMH настроєний показувати MIMEДля початкової конфігурації EXMH треба активізувати (вмикнути) MIME.
Встановіть потрібні шрифти для читання листів (не MIME)Щоб навчити EXMH вірно показувати ті листи, в яких не встановлені MIME-заголовки, треба настроїти його стандартні шрифти (тобто шрифти призначені для показу не-MIME листів). Ці шрифти мають належати до відповідної кодової таблиці. Це робиться з графічного меню конфіґурації.
EXMH має можливість встановлювати різні шрифти для різних областей вікна. Ці області англійською називаються "widget" - скорочення від двох слів "window" та "gadget". Приблизний український аналоґ був би щось типу "віконне причандалля" (шибка?). В лівому горішньому куті вікна шрифтів знаходиться меню Widget..., яке саме і вмикає вибраний шрифт у відповідному widget'і.
Для того, щоб користуватися українською вам
потрібно настроїти на український шрифт такі
widget'и: Виберіть потрібний шрифт із списку. Наприклад,
в моїй системі встановлений шрифт: Редагування файла конфіґурації EXMHНастроювання EXMH для читання листів, написаних з
вживанням MIME, робиться за допомогою редагування
його файла конфіґурації (цей файл
Файл Після цього абзацу йде власне опис кожної з існуючих кодових таблиць. А саме: для кожної з них вказується шрифт, який застосовується при показі тексту. Для кожної кодової таблиці вказуються такі
параметри: family, registry та encoding. Також для кожної
таблиці треба вказувати три різних сімейства
шрифтів. Перше сімейство (plain) використовується
для звичайних текстових листів без використання
спеціального форматування (як *mime_koi8-u_fixed_families: courier fixed *mime_koi8-u_plain_families: bookinist *mime_koi8-u_proportional_families: universe gemini У випадку з наведеним вище шрифтом "gemini" ці параметри будуть "times", "koi8" та "u" відповідно. Але оскільки в моій системі шрифт "gemini" існує тільки в одній кодовій таблиці koi8-u, я його не застовую для MIME пошти, а користуюся для цього шрифтами, створеними з TrueType шрифтів Гавіна Хелфа. Шрифти переведені в формат PostScript і встановлені в X Window. Процес конвертування та встановлення шрифтів в Лінаксі описаний в іншому документі на цій же сторінці. Шрифти, отримані з TrueType шрифтів Гавіна Хелфа, існують в кількох кодових таблицях. Серед них - koi8 та cp1251. Якщо ви чекаєте листів також від друзів, які користуються Макінтошами або DOS, ви можете додатково встановити шрифти для Macintosh Standard Cyrillic чи для Альтернативної кодової таблиці CP-866. Поле Subject: українською мовоюЗакодовані і не закодовані заголовкиОсобливим питанням є вірне відображення заголовків повідомлення, коли ці заголовки написані кирилицею. На прикладі внизу ви можете побачити, що заголовок "Subject" повідомлення виглядає зовсім нормально в основній панелі (панель повідомлення) і що його зовсім не видно в панелі із списком директорії. В цьому прикладі приведений один зразок листа, а саме, коли поле Subject передається прямим текстом (що не завжди вірно, деякі сервери можуть його "порізати" і тоді ви отримаєте звичайне сміття замість Subject'а). Набагато коректніше MIME-закодовувати Subject аналоґічно до того, як це робиться із основним текстом листа. Тоді неушкоджене надходження листа до адресата буде гарантоване. Я не знаю, як змусити MH (чи EXMH) закодовувати поля Subject, але часто я отримую листи від адресатів з іншого боку (з боку Віндовсів) в яких Subject поданий як MIME. Можливо можна також закодовувати повні імена адресатів, але цього я також не знаю. Ось як, наприклад, виглядає Subject-заголовок, в якому російською в koi8-r написано "Ответ:" : Subject: =?koi8-r?B?79TXxdQ6IA==?= І саме так цей заголовок буде виглядати в панелі директорії, якщо не зробити ще деякі заголовки. На жаль я знаю, як зробити так, щоб MH вірно розкодовував заголовки тільки в одній кодовій таблиці. Це означає, що, якщо Ви отримуєте листи від адресатів, які користуються різними кодовими таблицями, то ви зможете читати їх листи без проблем, але заголовки листів будуть виглядати по-людськи тільки в одній кодовій таблиці. Так, більшість Віндовсів і досі користуються koi8-r, і тому я настроїв свій EXMH саме на цю кодову таблицю. Але, якщо раптом я отримаю від когось листа із MIME-закодованим Subject'ом, то я його не зможу побачити. Але ще раз повторю - це стосується лише панелі директорії, основна панель листа показує Subject так як треба. Сканування директоріїВигляд панелі із списком директорії в EXMH
визначається конфіґурацією не самого EXMH, а
зовнішньої програми з пакету MH. Все, показане в
панелі директорії EXMH є результатом роботи
програми
По-перше Локаль користувача повинна бути встановлена вірно, або як мінімум повинна бути 8-байтною; По-друге Потрібно в змінній середовища ЛокальЩоб вірно встановити локаль, вам потрібно буде
перевірити, які локалі встановлені у вашій
системі і відповідно настроїти своє середовище.
Так, наприклад, в моєму Перевірити встановлені локалі можна
подивившись в директорію Якщо ви побачите в цій директорії
піддиректорії з назвами Щоб встановити вірну локаль, вам десь у
стартових скриптах LANG=uk_UA export LANG для командної оболонки Бьорна setenv LANG uk_UA для Кодова таблицяКодова таблиця встановлюється подібно. В MM_CHARSET=koi8-r export MM_CHARSET , в setenv MM_CHARSET=koi8-r Якщо вам не дуже хочеться возитися з усіма цими змінними середовищами (або якщо ваша єдина мета - це читати пошту українською мовою), ви дуже просто можете обійтись без цього. Вам потрібно буде запускати EXMH таким рядком: bash -c "(export LANG=uk_UA; export MM_CHARSET=koi8-r; exmh)&" ПрикладТож, маючи такі установки, можна читати листи написані різними кодовими таблицями. Але крім цього EXMH дає можливість читати листи, в яких комбінуються різні кодові сторінки в одному і тому ж листі. На малюнку показаний зразок екрану EXMH, в якому
відкритий лист із двома частинами (attachments). Одна з
частин написана кодовою таблицею koi8-u, в той час
як інша - за допомогою Windows-1251. Як видно, одночасно
обидві частини показані коректно, відповідним
шрифтом. Перша частина повідомлення написана в
кодовій таблиці koi8-u і не має MIME-заголовку, через
що показана іншим шрифтом - "gemini". Для особливо зацікавлених: ось як виглядає сам файл повідомлення, записаний на диску (заголовки опущено). Як видно 2 повідмлення передані як attachement, зберігаються на диску закодованими. EXMH розкодовує їх перед тим, як показати на екрані. To: dk@sophy.sakae.com Subject: Зразок застосування різних кодових таблиць в EXMH Mime-Version: 1.0 Content-Type: multipart/mixed ; boundary="==_Exmh_4133381880" Date: Mon, 26 Apr 1999 19:04:03 +0900 From: Dmytro Kovalev
Зміни та доповнення
Березень-квітень 1999 Перша редакція документа 28 жовтня 1999 Деякі косметичні зміни. Новий розділ про "Subject:" Natalya and Dmytro Kovalev Пишіть нам за адресою: kov@tokyo.email.ne.jp Домашня сторінка: http://www.asahi-net.or.jp/~as9d-kvlv |
|
|||||
© 2000-2003, Київ, Соломко Валентин -- ідея та наповнення, графічне опрацювання -- проєкт дизайн, змiнено -- 08.06.2003 14:29:54 |