ivan 26.11.2010 10:36
Жизнь в консоли — Оффлайн-словарь dict (en-ru, ru-en, толковый)
Понадобился мне англо-русский словарь. Доступ в Интернет есть не всегда, а дома он появится только недели через 1-2 (да, и стоит ли лазить во всемирную паутину каждый раз, встретив незнакомое слово). Хотелось что-то простое, “без наворотов”. Выбирал сердцем (с). Сердце молча ритмично сокращалось&расширялось, поэтому пришлось брать первую попавшуюся программу. Ею оказалась связка dictd+dict.1. В дефолтной Ubuntu 10.04 понадобиться скачать и установить следующие пакеты:
libmaa2 - утилита для работы maa (что это такое)
recode - утилита для преобразования кодировки символов в файлах
librecode - основа для recode
dictd - сервер словарей
dictzip - утилита для сжатия словарей
dict - программа-клиент
mueller7-dict - англо-русский словарь Мюллера (помимо англо-русского есть ещё куча двуязычных словарей (к сожалению, русский в их списке больше не присутствует), а также английские словари компьютерных терминов, жаргона, библейский терминов и т.д.).
mueller7accent - тот же самый словарь Мюллера, тОлько в словАх простАвлены ударЕния. Так что можно ставить любой по выбору. Я поставил этот.
Я искал и скачивал тут.
2. Установить пакеты в консоли: поскольку я скачивал вручную, то ставил через sudo dpkg -i все_указанные_пакеты через_пробелы (автодополнение имён клавишей рулит).
3. Несколько секунд и можно открыть файл настроек dict и закомментировать все сервера, кроме localhost (хотя, он всё равно в списке указан первым).
4. Далее вводим при необходимости в консоли:
1 |
|
и запоминаем результат на будущее. Образец вывода:
$ dict table
1 definition found
From Mueller English-Russian Dictionary (with accents) :
table
1. _n.
1) стол; to be (или to sit) at table быть за столОм, обЕдать и т.п.
2) пИща, стол; едА, кУхня; to keep a good table имЕть хорОшую кУхню;
хорошО готОвить; unfit for table несъедОбный
3) Общество за столОм; to keep the table amused развлекАть гостЕй за
столОм
4) доскА (тж. для настольных игр)
5) плитА; дощЕчка; нАдпись на плитЕ, дощЕчке; скрижАль; the ten tables
_библ. дЕсять зАповедей
6) таблИца; расписАние; тАбель; table of contents оглавлЕние
7) плОская повЕрхность
8) гОрное платО, плоскогОрье (тж. tableland)
9) грань (драгоцЕнного кАмня)
10)_тех. стол (станка); планшАйба; рольгАнг
11)_архит. карнИз
12)_attr. столОвый; to lay on the table _парл. отложИть обсуждЕние
(законопроекта); to lie (up) on the table _парл. быть отлОженным, не
обсуждАться (о законопроекте); upon the table публИчно обсуждАемый;
общеизвЕстный; to take from the table _ам. вернУться к обсуждЕнию
(законопроекта); to turn the tables on (или upon) smb. бить
протИвника егО же орУжием; поменЯться ролЯми; under the table "под
столОм", пьЯный
2. _v.
1) класть на стол
2) предлагАть, выносИть на обсуждЕние
3) составлЯть таблИцы, расписАние
4) отклАдывать в дОлгий Ящик, положИть под сукнО
1 definition found
From Mueller English-Russian Dictionary (with accents) :
table
1. _n.
1) стол; to be (или to sit) at table быть за столОм, обЕдать и т.п.
2) пИща, стол; едА, кУхня; to keep a good table имЕть хорОшую кУхню;
хорошО готОвить; unfit for table несъедОбный
3) Общество за столОм; to keep the table amused развлекАть гостЕй за
столОм
4) доскА (тж. для настольных игр)
5) плитА; дощЕчка; нАдпись на плитЕ, дощЕчке; скрижАль; the ten tables
_библ. дЕсять зАповедей
6) таблИца; расписАние; тАбель; table of contents оглавлЕние
7) плОская повЕрхность
8) гОрное платО, плоскогОрье (тж. tableland)
9) грань (драгоцЕнного кАмня)
10)_тех. стол (станка); планшАйба; рольгАнг
11)_архит. карнИз
12)_attr. столОвый; to lay on the table _парл. отложИть обсуждЕние
(законопроекта); to lie (up) on the table _парл. быть отлОженным, не
обсуждАться (о законопроекте); upon the table публИчно обсуждАемый;
общеизвЕстный; to take from the table _ам. вернУться к обсуждЕнию
(законопроекта); to turn the tables on (или upon) smb. бить
протИвника егО же орУжием; поменЯться ролЯми; under the table "под
столОм", пьЯный
2. _v.
1) класть на стол
2) предлагАть, выносИть на обсуждЕние
3) составлЯть таблИцы, расписАние
4) отклАдывать в дОлгий Ящик, положИть под сукнО
5. Далее нужно подключить русско-английский словарь. Родных таких dict-овских нет, но есть переформатированные словари от stardict (если я правильно всё понял). Скачал slovnyk.ru-en (русско-английский) и ozhegov (толковый словарь Ожегова).
6. Разархивировал их в папку словарей: /usr/share/dictd
7. Покурил маны и прописал добавленные словари в базу словарей dictd:
1 |
|
Проверил конфиг: новые словари прописаны.
8. Ввожу для проверки:
1 |
|
выскакивает сообщение, что не найдено определений, то есть dict+dictd не видит добавленные русско-английский и русский толковый словари.
Внимание, вопрос: как заставить (без применения паяльника и выдирания ногтей) dict+dictd видеть русско-английский словарь? Или надо его снести и поставить sdcv (Stardict console version).
UPD: Вечером запустил dict, чтобы выложить здесь негативный результат его работы, но ВНЕЗАПНО всё само собой заработало. Может, после обновления списка словарей следует запускать dict с какой-нибудь специальной опцией? Не знаю.
Образец вывода на русское слово:
$ dict рис
6 definitions found
From Russian-English full dictionary :
рис
муж. rice
paddy (на корню, в шелухе) шелушеный рис
– brown rice дробленый рис – ground rice
м. rice
From Russian-English full dictionary :
рис.
fig
From Толковый словарь Ожегова :
рис
злак с белыми продолговатыми зернами, идущими в пищу
E.g. Плантации риса. Пирог с рисом.
From Толковый словарь Ожегова :
рис
(злак с белыми продолговатыми зернами, идущими в пищу, а также)
его зерна
E.g. Плантации риса. Пирог с рисом.
From slovnyk_ru-en :
"РИС"
PADDY
From slovnyk_ru-en :
"РИС"
RICE
6 definitions found
From Russian-English full dictionary :
рис
муж. rice
paddy (на корню, в шелухе) шелушеный рис
– brown rice дробленый рис – ground rice
м. rice
From Russian-English full dictionary :
рис.
fig
From Толковый словарь Ожегова :
рис
злак с белыми продолговатыми зернами, идущими в пищу
E.g. Плантации риса. Пирог с рисом.
From Толковый словарь Ожегова :
рис
(злак с белыми продолговатыми зернами, идущими в пищу, а также)
его зерна
E.g. Плантации риса. Пирог с рисом.
From slovnyk_ru-en :
"РИС"
PADDY
From slovnyk_ru-en :
"РИС"
RICE
Конфиг dict:
# /etc/dictd/dict.conf
# Written by Bob Hilliard
# 1998/03/20. Last revised Sun, 22 Nov 1998 18:10:04 -0500 This is
# the configuration file for /usr/bin/dict. In most cases only the
# server keyword need be specified.
# This default configuration will try to access a dictd server on the
# local host, failing that, it will try the public server. In many
# cases this will be slow, so you should comment out the line for the
# server that you don't want to use. To use any other server, enter
# its IP address in place of "dict.org".
# Refer to the dict manpage (man dict) for other options that could
# be inserted in here.
server localhost
#server dict.org
#server dict0.us.dict.org
#server alt0.dict.org
# Written by Bob Hilliard
# 1998/03/20. Last revised Sun, 22 Nov 1998 18:10:04 -0500 This is
# the configuration file for /usr/bin/dict. In most cases only the
# server keyword need be specified.
# This default configuration will try to access a dictd server on the
# local host, failing that, it will try the public server. In many
# cases this will be slow, so you should comment out the line for the
# server that you don't want to use. To use any other server, enter
# its IP address in place of "dict.org".
# Refer to the dict manpage (man dict) for other options that could
# be inserted in here.
server localhost
#server dict.org
#server dict0.us.dict.org
#server alt0.dict.org
Список подключённых словарей /var/lib/dictd/db.list:
database mueller7accent
{
data /usr/share/dictd/mueller7accent.dict.dz
index /usr/share/dictd/mueller7accent.index
}
database sdict_ru-en
{
data /usr/share/dictd/sdict_ru-en.dict.dz
index /usr/share/dictd/sdict_ru-en.index
}
database ozhegov
{
data /usr/share/dictd/ozhegov.dict.dz
index /usr/share/dictd/ozhegov.index
}
database slovnyk_ru-en
{
data /usr/share/dictd/slovnyk_ru-en.dict.dz
index /usr/share/dictd/slovnyk_ru-en.index
}
database biology
{
data /usr/share/dictd/biology.dict.dz
index /usr/share/dictd/biology.index
}
{
data /usr/share/dictd/mueller7accent.dict.dz
index /usr/share/dictd/mueller7accent.index
}
database sdict_ru-en
{
data /usr/share/dictd/sdict_ru-en.dict.dz
index /usr/share/dictd/sdict_ru-en.index
}
database ozhegov
{
data /usr/share/dictd/ozhegov.dict.dz
index /usr/share/dictd/ozhegov.index
}
database slovnyk_ru-en
{
data /usr/share/dictd/slovnyk_ru-en.dict.dz
index /usr/share/dictd/slovnyk_ru-en.index
}
database biology
{
data /usr/share/dictd/biology.dict.dz
index /usr/share/dictd/biology.index
}
Спасибо IamCrazy и urukhy.
можно попробовать 'dictd -d nofork -d init' и посмотреть что он делает.
$ dictd -d nofork -d init
вот, что он делает
вот, что он делает
:I: 2268 starting dictd 1.11.2/rf on Linux 2.6.32-22-generic Fri Nov 26 23:15:56 2010
:I: Initializing 'mueller7accent'
:I: Opening indices
:I: "/usr/share/dictd/mueller7accent.index": flag_allchars=1
:I: "/usr/share/dictd/mueller7accent.index": flag_casesensitive=0
:I: "/usr/share/dictd/mueller7accent.index": flag_utf8=1
:I: "/usr/share/dictd/mueller7accent.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: с,аkiыщиsqроyhшцеpnюнxveх.вmэкubтj3зr _пzgчждoямw'fdфг-бlьлйtcaу
:I: 'mueller7accent' initialized
:I: Initializing 'sdict_ru-en'
:I: Opening indices
:I: "/usr/share/dictd/sdict_ru-en.index": flag_allchars=0
:I: "/usr/share/dictd/sdict_ru-en.index": flag_casesensitive=0
:I: "/usr/share/dictd/sdict_ru-en.index": flag_utf8=1
:I: "/usr/share/dictd/sdict_ru-en.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: саkiыщ4и2sqёроyhшц1еpnю9н7xveхвmэ6кubтjъ3зr пzgчж0дoя8мwfdфгбlьл5йtcaу
:I: 'sdict_ru-en' initialized
:I: Initializing 'ozhegov'
:I: Opening indices
:I: "/usr/share/dictd/ozhegov.index": flag_allchars=0
:I: "/usr/share/dictd/ozhegov.index": flag_casesensitive=0
:I: "/usr/share/dictd/ozhegov.index": flag_utf8=1
:I: "/usr/share/dictd/ozhegov.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: ыткбулвгьэiмфнхaдbеюcжяоцчпшз1eирvащ2oъйс
:I: 'ozhegov' initialized
:I: Initializing 'slovnyk_ru-en'
:I: Opening indices
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_allchars=0
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_casesensitive=0
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_utf8=1
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: ыктбулвгьэмфнхдеюжяоцчпшзирёащъсй
:I: 'slovnyk_ru-en' initialized
:I: Initializing 'biology'
:I: Opening indices
:I: "/usr/share/dictd/biology.index": flag_allchars=0
:I: "/usr/share/dictd/biology.index": flag_casesensitive=0
:I: "/usr/share/dictd/biology.index": flag_utf8=1
:I: "/usr/share/dictd/biology.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: саkiыщ4и2sроyшц1еnю9н7veхвэ6кbтъ3зr пgчж0дoя8мwfdфгбlьл5йtcaу
:I: 'biology' initialized
:I: mueller7acce 46204 796607 3072396 9303579
:I: sdict_ru-en 378937 15894359 8792607 31398804
:I: ozhegov 61463 1554496 2521863 9355351
:I: slovnyk_ru-e 157459 4058446 951806 4989314
:I: biology 3760 157709 85354 274351
dictd (net_open_tcp): Can't bind 2628/tcp to port 2628
Can't bind 2628/tcp to port 2628
net_open_tcp: Address already in use
net_open_tcp: Address already in use
:I: Initializing 'mueller7accent'
:I: Opening indices
:I: "/usr/share/dictd/mueller7accent.index": flag_allchars=1
:I: "/usr/share/dictd/mueller7accent.index": flag_casesensitive=0
:I: "/usr/share/dictd/mueller7accent.index": flag_utf8=1
:I: "/usr/share/dictd/mueller7accent.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: с,аkiыщиsqроyhшцеpnюнxveх.вmэкubтj3зr _пzgчждoямw'fdфг-бlьлйtcaу
:I: 'mueller7accent' initialized
:I: Initializing 'sdict_ru-en'
:I: Opening indices
:I: "/usr/share/dictd/sdict_ru-en.index": flag_allchars=0
:I: "/usr/share/dictd/sdict_ru-en.index": flag_casesensitive=0
:I: "/usr/share/dictd/sdict_ru-en.index": flag_utf8=1
:I: "/usr/share/dictd/sdict_ru-en.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: саkiыщ4и2sqёроyhшц1еpnю9н7xveхвmэ6кubтjъ3зr пzgчж0дoя8мwfdфгбlьл5йtcaу
:I: 'sdict_ru-en' initialized
:I: Initializing 'ozhegov'
:I: Opening indices
:I: "/usr/share/dictd/ozhegov.index": flag_allchars=0
:I: "/usr/share/dictd/ozhegov.index": flag_casesensitive=0
:I: "/usr/share/dictd/ozhegov.index": flag_utf8=1
:I: "/usr/share/dictd/ozhegov.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: ыткбулвгьэiмфнхaдbеюcжяоцчпшз1eирvащ2oъйс
:I: 'ozhegov' initialized
:I: Initializing 'slovnyk_ru-en'
:I: Opening indices
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_allchars=0
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_casesensitive=0
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_utf8=1
:I: "/usr/share/dictd/slovnyk_ru-en.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: ыктбулвгьэмфнхдеюжяоцчпшзирёащъсй
:I: 'slovnyk_ru-en' initialized
:I: Initializing 'biology'
:I: Opening indices
:I: "/usr/share/dictd/biology.index": flag_allchars=0
:I: "/usr/share/dictd/biology.index": flag_casesensitive=0
:I: "/usr/share/dictd/biology.index": flag_utf8=1
:I: "/usr/share/dictd/biology.index": flag_8bit=0
:I: .index
:I: Opening data
:I: alphabet: саkiыщ4и2sроyшц1еnю9н7veхвэ6кbтъ3зr пgчж0дoя8мwfdфгбlьл5йtcaу
:I: 'biology' initialized
:I: mueller7acce 46204 796607 3072396 9303579
:I: sdict_ru-en 378937 15894359 8792607 31398804
:I: ozhegov 61463 1554496 2521863 9355351
:I: slovnyk_ru-e 157459 4058446 951806 4989314
:I: biology 3760 157709 85354 274351
dictd (net_open_tcp): Can't bind 2628/tcp to port 2628
Can't bind 2628/tcp to port 2628
net_open_tcp: Address already in use
net_open_tcp: Address already in use
ну собственно -
dictd (net_open_tcp): Can't bind 2628/tcp to port 2628
Can't bind 2628/tcp to port 2628
net_open_tcp: Address already in use
- это ответ.
возможно другой экземпляр dictd запущен.
как вариант - /etc/init.d/dictd restart - может быть всё взлетит.
dictd (net_open_tcp): Can't bind 2628/tcp to port 2628
Can't bind 2628/tcp to port 2628
net_open_tcp: Address already in use
- это ответ.
возможно другой экземпляр dictd запущен.
как вариант - /etc/init.d/dictd restart - может быть всё взлетит.
Это и есть "план Б" (см.последнюю строчку поста), но хочу всё же достичь цели, действуя по "плану А" (dict).
Лично я в повседневной жизни использую Goldendict.
Кстати не подскажете, где можно скачать словари lingvo, передаланые для stardict?
Кстати не подскажете, где можно скачать словари lingvo, передаланые для stardict?
Большое спасибо. Правда, не знаю согласуется ли это с правилами ресурса:-)
чтобы не гадать