Как установить программу "Правда"
Сейчас будет как у Задорнова - "Что и это не помогает?!!!". Не пугайтесь,
что описание длинное - это из-за описания всяких экзотических случаев.
Обычно достаточно просто сказать:
rpm -i prawda-0.4.1-dev.i386.rpm
Итак обо всем по порядку:
0) Если у Вас стояла предыдущая версия "Правды" - удалите ее. (Умные люди
не удаляют, а "прячут".) Удалить надо следующее:
1) ~/.prawdarc - файл настоек
2) ~/prawda (или куда Вы его там ставили) - каталог словарей и других
данных.
3) деинсталировать rpm
1) Если у Вас не Red Hat (не основанный на rpm дистрибутив), то переходите к
пункту 3. Если у Вас Red Hat, или что-то ему подобное, скачиваете rpm и
ставите его командой:
rpm -i prawda-0.4.1-dev.i386.rpm
2) Программа, конечно, поставится, но на некоторых машинах при запуске сразу
же получается SegFault. Это происходит из-за несоответствия версий libc.
Грамотно исправить эту ситуацию я не могу, а неграмотно - можно пересобрать
exe-шники на Вашей машине. Для этого случая я держу отдельный архив только
с cишниками. Делается это так:
1) Скачиваете архив prawda-0.4.1-src.tar.bz2
2) Разворачиваете
bunzip2 prawda-0.4.1.src.tar.bz2
tar xvf prawda-0.4.1.src.tar
3) заходите в файл prawda/src/bin и делаете make -f makefile.exe. Получите
массу исполняемых файлов.
4) Получившийся файл prawda и кладите в каталог /usr/bin
(остальные Вам не нужны)
5) Должно заработать.
3) Если у Вас не Red Hat (не prm-based дистрибутив), то нужно собрать и установить
программу из исходников. Делается это так:
1) скачиваете prawda-0.4.1.tar.bz2
2) разворачиваете:
bunzip2 prawda-0.4.1.tar.bz2
tar xvf prawda-0.4.1.tar
3) собираете:
cd bin
make
Если не собралось, читаете следующую секцию.
4) ставите:
make install
5) Должно заработать.
Как скомпилировать exe-шники
В принципе достаточно дать команду make в каталоге src/bin.
По этой команде должно произойти следующее:
1) сделаться все исполняемые модули
2) разархивироваться все словари
3) оттранслироваться файл описания грамматики
4) сформироваться документация на С++ исходники, и описание грамматики
Если у Вас не получились экзешники, то это может быть по одной из следующих
причин:
1) Я не делаю automake и autoconf (не умею). По этому мой makefile настроен
исключительно на Red Hat 7.3. Если у Вас другая верия Юникса, другой
компилятор, или библиотека X11 лежат в другом месте, Вам придется залезть в
файл makefile.exe и поправить там переменные COMP, LINK и LDFLAGS.
2) У меня довольно древний gcc - 2.96. Новые версии компилятора значительно
строже, многие шалости, которые раньше были Warning-ами стали Error-ами.
Если у Вас возникла ошибка на этапе компиляции, пишите мне, больше тут
ничего не придумаешь.
Параметры конфигурационного файла
При первом запуске "Правда" пишет в Ваш домашний каталог настроечный файл
.prawdarc (обратите внимание на точку перед именем). В этом файле хранятся
настроечные параметры программы.
Параметры:
path - каталог, в котором находятся все данные (грамматика и
словари)
size_x,size_y - размеры окна программы в буквах
font - шрифт, который использует иксовая версия "Правды"
RTFM - если этот параметр равен Yes, то программа при старте
дает полезный совет
Figna - если этот параметр равен Yes, то при неполном переводе
фразы пишется слово \#фигня. Этот режим нужен для отладки.
rus - включить внутренний руссификатор. На некоторых машинах
моя программа почему-то отказывается понимать русскую
клавиатуру.
Примечание. Иногда, если Вы раскладываете файлы руками, настроечный файл
в домашнем каталоге не появляется. Его можно взять из архива. В архиве этот
файл имеет название prawdarc.local .
Что еще надо настроить
Поскольку "Правда" работает с русским языком, надо присвоить переменной
окружения LANG значение, соответсвующее русскому языку. У меня LANG = ru_RU.koi8r.
Кроме того на вашей машине должен быть хотя бы один русский шрифт в кодировке
iso10646-1 (Юникод то есть). Я использую вот такой шрифт:
-cronyx-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
Вы можете использовать любой другой. Задайте значение переменной font в файле
~/.prawdarc. Ну и это... когда будете шрифт выбирать, выбирайте моноширинный
(фиксированный) шрифт, иначе выглядеть оно будет как... бред пьяного сисадмина.
Какие файлы для чего
Настроечные файлы
version - версия данных (должна соответствовать версии программы)
language.rc - языки, с которых возможен перевод
z_preproc.rc - перечисление имеющихся препроцессоров
(можно удалить, толку от них никакого)
z_man.rc - настройки препроцессора для UNIX-манов
Исходники
src - всякие С++ исходники
src/face - исходники отвечающие за интерфейс
src/trans - исходники отвечающие за ядро перевода
src/utils - исходники различных утилит, нужных для работы над переводчиком
Грамматика
grammar - исходники грамматики
grammar/en_ru - алгоритм англо-русского перевода
grammar/eo_ru - алгоритм Эсперанто-русского перевода
В каждом этом каталоге файлы *.cpp *.h являются исходными.
lang.txt - описание алгоритма перевода с английского (Эсперанто) на
русский. Этот файл получается из исходников грамматики командой mklang
(лежит в каталоге grammar).
Словари
dicts - словари
dicts/en_ru - словари для англо-русского перевода
base_enru - основной словарь переводов
base_enru1 - словарь служебных слов
base_fverb - словарь фразовых глаголов
base_pre - словарь препроцессора
base_post - словарь постпроцессора
muller - словарь "для человека"
dicts/eo_ru - словари для эсперанто-русского перевода
base_enru - основной словарь переводов
base_enru1 - словарь служебных слов
bokarev - словарь "для человека"
zform - словари, описывающие склонения и спряжения
english - английские словари словоизменений
esperanto - Эсперантские словари словоизменений
russkij - русские словари словоизменений
Прочее
doc - документация
html_grammar - исходнки грамматики, в виде html-файлов с гиперссылками.
Эти замечательные и удобные файлы делаются программий zmkdoc.
Если Вы будете редактировать описание граматики, то командой
zgrammardoc можно будет получить такой удобный гипертекст, в
котором относительно хорошо видно, что Вы там накуролесили.
html_src - мои "гениальные" С-шники, в виде html-файлов с гиперссылками.
Кхм... предупреждаю, что эти html-ки соответствуют
"Правде" v. 0.2.0 То есть несколько устарели.
help - онлайн-подсказка. Содержимое этих файлов показывается, когда
вы нажимаете кнопку F1. Тонкий юмор заключается в том, это
настоящий html и Вы его можете еще и браузером смотреть, если
вам это удобно.
latex - Сумма всех моих мыслей, относительно машинного перевода,
описание того, как это делалось, как это работает и как это можно
улучшать и развивать.
idea.ps - основная идея алгоритма машинного перевода, которую использует
"Правда".
lang.ps - язык описания грамматики. "Правда" - предельно гибкая система,
и ее можно "программировать" не будучи программистом. Вплоть
до того, что можно научить понимать ее другой язык (например
немецкий).
grammar.ps - описание грамматики (по сути, алгоритма перевода с
английского на русский).
esperanto.ps - описание алгоритма перевода с Эсперанто на русский.
source.ps - описание описание моих замечательных исходников (вдруг
кому-то захочется баги править).
interface.ps - мои взгляды, на то, каким должен быть интерфейс
программы-переводчика. Своего рода ЧаВо на вопросы, которые
мне задают желающие присоединиться к проекту.
other(readme) - вся остальная документация, которая не влезла в остальные
разделы.
src/bin - make-файлы и исполняемые программы
makefile - общий маке-файл
makefile.exe - маке-файл, делающий исполняемые модули (вызывается
из общего маке-файла)
makefile.doc - маке-файл, делающий документацию (вызывается
из общего маке-файла)
Исполняемые модули (делаются при компиляции):
prawda - собственно программа-переводчик
Эти программы могут быть, а могут не быть (они нужны только
разработчикам):
zcompress2 - мой доморощенный сжиматель словарей
zerolink - программа, тестирующая описание грамматики, которая
обнаруживает неиспользуемые конструкции
zfrasa_verb - программа, разжимающая словарь фразовых глаголов
zgrammardoc - программа, делающая гипертекстовое описание грамматики
zkod - кодировка win->koi->dos
zmkdoc - программа, делающая гипертекстовое описание сишников
ztest - программа, тестирующая описание грамматики на корректность
синтаксиса
zword_absend - программа, обнаруживающая в главном словаре слова,
которым не заданы способы склонения и спряжения.
src/obj - обьектные файлы (в первоначальный момет этот каталог пуст)
Как удалить
Если Вы ставили программу из rpm, то просто удалите rpm.
Если Вы ставили программу из makefile, то я поленился написать соответсвующий
скрипт. Поминаете меня недобрым словом, потом удаляете следующие файлы и
каталоги:
/usr/bin/prawda
/usr/share/prawda
/usr/doc/prawda
~/prawdarc (для каждого пользователя)
~/prawda (для каждого пользователя)