[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: про словари



 >>   >>  Когда-то давно, я использовал dictd с консольным клиентом.
 >>   >>  Консольный клиент меня не радует тем, что мой терминал не может
 >>   >>  отображать все необходимые для этого символы.
 >> Чудесно он отображает. Лишь бы были нужные шрифты.  Один мой коллега
 >> (профессиональный лингвист) как-то поныкался (помудохался, скажем так) с
 >> разнообразными GUI словарями, и в конце концов на основе xterm + dict
 >> сделал себе собственный DICT "клиент", который берет или из клипборда
 >> или как параметр слово или фразу и переводит то, что нужно так, как ему
 >> нужно, вырезая лишнее. Написано само собой на шеле, чудесным образом
 >> встроено в его fvwm.
 >>
> Wow! Скрипт в студию ))
Последняя версия скрипта находится здесь:
http://dict.cvs.sourceforge.net/viewvc/dict/dictd1/dict_lookup

В первую очередь он предназначен для перевода слова, которое в
клипборде, но можно с помощью опции -q задать конкретное слово или фразу.
Через опции -x и -y задаются координаты запускаемого xterm-а.
Если их не задавать, отрисуется там, где сочтет нужных WM.
Можно, к примеру, взять координаты курсора мыши, если WM умеет их
отдавать.

"Все любят скриншоты"(C) :-) Они здесь.
http://mova.org/~cheusov/pub/screenshots/dict_lookup/

Размеры окна вычисляются автоматически, но этот код работает только для
кирилицы и некоторых других языков. Размеры окна для отображения
японского, китайского и прочих работать будут неправильно. К сожалению
на чистом авке этого сделать нельзя, надо написать малюсенькую
програмульку на С (см. D_TEXT_WIDTH). Опцией -s можно задать
фиксированный размер окна.

Абсолютно все аспекты поведения задаются опциями либо переменными окружения.
К примеру, gawk-3.1.5 в lenny сломан, вместо стандартного awk в
переменной D_AWK_PROG нужно задать mawk или original-awk. Они работают правильно.
В gawk-3.1.6 проблема исправлена.

Шрифты терминального окна задаются в ресурсах (по умолчанию class:
XTerm, name: xterm_dict). Например,

   ~/.Xdefaults:
      xterm_dict*font: -misc-fixed-medium-r-*-*-15-*-*-*-*-*-iso10646-*

Само собой там же можно задать фон, если кому нравится вид типа
"tooltip", можно покрасить в светлоголубой или желтый. За округлости
углов и прочие феньки отвечает ваш WM. В принципе можно сделать очень
красиво и модно, если кто любит.

class/name тоже задаются переменными D_XTERM_CLASS и D_XTERN_NAME, смотрите код.

xclip желательно взять поновее, лучше 0.11 или старше.

Дефолтные сервер, порт и словарь задаются тоже переменными:
D_DICT_SERVER, D_DICT_PORT и D_DICT_DB.

Если хочется "странного", например, воспользоваться разными словарями или
даже серверами, лучше создать отдельный скрипт и передать его чекрез
переменную D_DICT_CMD.
Например, так:

   ~/bin/dict-en-ru-en:
   #!/bin/sh

   set -e
   tmpdir="/tmp/dict_lookup.$$"
   mkdir -m 0700 "$tmpdir"

   dict -h dictd.xdsl.by -d en-ru "$@" > "$tmpdir/1" &
   dict -h dictd.xdsl.by -d ru-en "$@" > "$tmpdir/2" &
   wait
   cat "$tmpdir/1" "$tmpdir/2"
   rm -rf "$tmpdir"

Раскраска делается через colorit (D_COLORIZER), красьте что угодно во
что угодно. Возможно, для корректного отображения понадобиться
установить D_LESS_PROG в "less -R". И помните, xterm на самом деле
поддерживает 256 цветов, а не 16! То есть, возможности
ограничены только вашей фантазией :-).

Да, в системе должна быть хотя бы одна utf-8 локаль (D_UTF8_LOCALE).

В общем, это всё, осталось только повесить запуск на горячую клавишу в WM.

Если хочется слово "ввести" и отредактировать, спросите, например,
Tk-шников, заодно и мне раскажите.

Скриншоты принимаю в подарок. Добавлю на мову.

-- 
Best regards, Aleksey Cheusov.


Reply to: