Словари для Лингво, StarDict / ColorDict и Babylon: Англо-русский словарь по гражданской авиации, Англо-русский словарь по электротехнике и электроэнергетике, Англо-русский морской технический словарь, Англо-русский военно-морской словарь, Англо-русский военный словарь.

Словари для Lingvo, StarDict / ColorDict и Babylon
Ознакомительные и полные версии, условия приобретения
На главную страницу
Написать письмо


Англо-русский по гражданской авиацииАнгло-русский по гражданской авиации
Англо-русский морской техническийАнгло-русский морской технический
Англо-русский военно-морскойАнгло-русский военно-морской
Англо-русский по электрооборудованиюАнгло-русский по электрооборудованию
Архаизмы русск.язАрхаизмы русского языка
Англо-русский военныйАнгло-русский военный
Как получить несокращенную версию
Эти же словари, но в формате StarDict / ColorDict и Babylon
(плюс небольшое обсуждение формата и методов его конвертации)

Конвертация формата Лингво LSD в DSL (для версий 12 и x3)
А также:                            Еще один источник отраслевых Лингво-словарей


Англо-русский словарь по гражданской авиации (АРГА)

     English-Russian Civil Aviation Dictionary
     Составитель В.П.Марасанов. "Скорпион-Россия", 2-е изд., 1996, 500+ стр.
     Версия 1.0 от 18.03.2010. Кол-во карточек: 21+ тыс. Также содержит чертежи и схемы (чуть больше 70 шт.)

     Из предисловия:
     "...содержит около 24 тыс. терминов по следующим разделам гражданской авиации: структура и деятельность гражданской авиации, проектирование, испытания, производство и эксплуатация воздушных судов, наземное и аварийно-спасательное оборудование гражданских аэропортов..."

Ограничения ознакомительной версии
     Приведены карточки только на буквы A, B и C (5000+ терминов, заглавные гнездовые).

Примечания
     Прим.1. Исправлены ошибки, допущенные в бумажном издании (примерно полсотни; как орфографические, так и смысловые).
     Прим.2. В корпус словаря встроены все имевшиеся в бумажном издании схемы и чертежи; во всех случаях использованные в них термины размечались гипертекстовыми ссылками, а при необходимости добавлялись и в карточки.
     Прим.3. В ряде случаев заглавные термины корректировались для приведения к единому стилю. Ну, к примеру: attitude director indicator, то есть "командный (он же директорный) авиагоризонт". На одной из схемок вместо director стоит direction. Да, есть такой вариант написания, но он куда более редкий и отмечен (причем вскользь) разве что в словаре Мурашкевича (по авиац.оборудованию и бортовым системам).
     Прим.4. В комплект ознакомительной версии входит весь пакет рисунков. Не стал я их фильтровать, что нужно, а что нет. Взял - и вбросил скопом. Запас карман не тянет.
     Прим.5. Аннотация к бумажному словарю гордо обещает 24 тыс. терминов. Надо думать, это вместе с русским индексом (стр. 518-559).
     Прим.6. На всякий случай
даю ссылку к отсканированному словарю Марасанова в формате DejaVu. Это поможет составить представление, о чем вообще идет речь.
     Прим.7. Идет работа над обновленной версией, куда будет добавлена целая пачка схем и чертежей из "Русско-английского сборника авиационно-технических терминов" ("Авиаиздат", М., 1995, 640 стр.), в т.ч. новые термины и их гипертекстовые кросс-ссылки. Скан-PDF этого сборника в полном объеме доступен для скачивания (см. линк в конце страницы).

Для скачивания ознакомительной версии пройди в конец страницы



Англо-русский морской технический словарь (АРМТС) --- ЗАМЕНЕН НОВОЙ ВЕРСИЕЙ!!! ---


Англо-русский объединенный морской технический словарь (АРОМТС)       (взамен АРМТС)

     Совокупный объем: 65+ тыс.карточек (версия 1.2beta от 10.04.2011)

     Собран на основе следующих словарей и справочных пособий:
     --- Англо-русский морской технический словарь (English-Russian Maritime Technical Dictionary), АРМТС
         Составитель П.А.Фаворов. "Воениздат", М., 1977, 930 стр. (вошел в полном объеме, 54+ тыс.карточек)
     --- Большой англо-русский морской словарь (Compound English-Russian Maritime & Naval Dictionary), БАРМС
         Составитель В.П.Фаворов. "Новалис", С.-Пб., 2002 (только гражданская часть, непересекающаяся с АРМТС)
     --- А также (избранные темы, естественно):
         - Англо-русский толковый словарь морских терминов, сост. кап.дальн.плав. Г.Н.Поваляев, "Космоинформ", М., 1997
         - Русско-английский морской технический словарь, В.А.Лысенко, Киев, 1998
         - Русско-английский словарь для судовых механиков, И.Г.Войтенко, "Студия Негоциант", 1997
         - Терминологический справочник судоводителя (англ./рус.), В.И.Бобин, "Транспорт", М., 1999
         - Основы морской техн.терминологии, В.А и А.А.Яковлевы, ЦРИА "Морфлот", М., 1978
         - Общее устройство судна (англ./рус.), уч.пособие МГА им.Ушакова, машинописный репринт
         - Симв.и сокращ., примен.на англ.адмиралт.морск.картах, Т.Н.Сологуб, Е.Ю.Новикова, "Росиздат", Ростов-н/Д, 2001
         - Публикации ИМО (ММО)

     Предметная область:
     Поскольку фундаментом явился АРМТС, приведу его аннотацию. Итак:
     "Содержит... термины и терминологические сочетания по следующим разделам морской техники: кораблестроение (конструкция корпуса, энергетические установки, оборудование, системы и устройства военных кораблей, торговых и промысловых судов, теория и строительная механика корабля, технология кораблестроения); морское оружие и вооружение кораблей, в том числе противолодочное, ракетное и артиллерийское; системы управления стрельбой; радиоэлектронные корабельные системы; средства кораблевождения, связи и боевого управления; технические средства изучения и освоения океана; оборудование портов и баз и навигационное оборудование морских театров.
     Словарь также содержит основную терминологию по ряду научно-технических дисциплин, тесно связанных с морской техникой, - океанографии, мореходной астрономии, гидрометеорологии, гидроакустике, гидромеханике и термодинамике".

     О консолидации словарей:
     Понятное дело, исходным пунктом всего этого проекта стал канонический словарь Фаворова-старшего, АРМТС. Затем в ход был пущен БАРМС Фаворова-мл., который построен на базе АРМТС и дополнен терминами, в первую очередь относящимися к устройству, оборудованию и ремонту судов, эксплуатации морского транспорта, морскому праву, торгово-фрахтовым операциям и страхованию. Кроме того, предметом БАРМС являются также значительно более богатые реалии штурманской практики и гребного/парусного спорта. Да взять хотя бы узлы: в АРМТС они отсутствуют напрочь, хотя такелажное дело уж несомненно относится к технике. А с отдаваемыми командами и вовсе была беда... К счастью, БАРМС восполнил этот недостаток. Далее, несколько тысяч гнезд подверглись актуализации и значительной корректировке (вносились уточнения, дополнения, устаревшие трактовки размечались соответствующими пометами и проч.)
     Военно-морская терминология, содержавшаяся в АРМТС, Фаворовым-младшим была вынесена в отдельный словарь (АРВМС,
см.ниже) и также существенно расширена.
     А теперь о том, что мне не нравится в БАРМС: Фаворов-мл. безжалостно вымарал все... ну, почти все,... что относится к отжившим и отживающим технологическим решениям. Он --- автор-составитель, и это его право. Но у меня, профессионального переводчика, от такого подхода шевелюра седеет. Скажем, если бы не было АРМТС на руках, где бы я стал искать терминологию судовых паровых машин? Ведь из БАРМС'а она убрана... Как прикажете переводить морские мемуары и беллетристику начала/середины XX-го века, где на каждом шагу встречаются кочегарки, топки, котлы, паропроводы и прочее?.. И подобных лакун в БАРМС'е набирается немало. Так неужели надо всю жизнь страдать, копаясь в нескольких словарях сразу, вместо того, чтобы иметь некий сводный индекс?
     Короче говоря, при объединении словарей результат получился, как говорится, "и нашим и вашим". Я старался не упустить даже крохотного бита информации, все скрупулезно вносилось в корпус. Кроме того, в дело пошли и собственные многолетние наработки (в частности, добавлены сокращения, которые так часто встречаются в вахтенных журналах; обозначения сигналов и ориентиров; расширена техн.терминология и т.д. Список использованной лит-ры приведен выше).
     В итоге безо всякой натяжки у меня есть право заявить, что более полного --- да к тому же электронного! вычитанного!! и при необходимости могущего работать на смартфонах!!! --- англо-русского морского словаря вы на нашей планете не сыщите. Мало того, в будущих версиях словарь пополнится схемами и чертежами (подобно "Англо-русскому по гражд.авиации").
     А если кто-то хочет узнать подробнее, как менялась парадигма наполнения терминами в АРМТС vis-à-vis БАРМС, то нет ничего проще. Показать/скрыть


Ограничения ознакомительной версии
     Приведены карточки только из АРМТС и только на буквы A, B и C (порядка 13 тыс.терминов).

Примечания (касаются в основном АРМТС)
     Прим.1. Исправлены ошибки, допущенные в бумажном издании (по большей части орфографические, скажем, "oft paper" вместо "loft paper" или acrilic, abissal, exiter и т.д. и т.п.). Написания единиц измерения пришлось причесать в соответствии с совр.требованиями (скажем, "Ом" вместо "ом" или "Гц" вместо "гц"). Вообще говоря, исходник АРМТС набран аккуратно (советская эпоха! Воениздат!), я внес не более полусотни корректив. Детализированный список исправлений могу выслать, ежели кому надо.
     Прим.2. Гипертекстовые ссылки условных сокращений проставлялись только в тех случаях, когда само сокращение использовалось в качестве пометы.
      Допустим: СПК = "судно на подводных крыльях". В карточке "after foil" линк поставлен. А в карточке "crash preventer plane" такой ссылки нет. Впрочем, сами сокращения всегда можно посмотреть в файле служебных аббревиатур, или - что гораздо проще и быстрее - через контекстное меню (правой кнопкой на About Dictionary).

Для скачивания ознакомительной версии пройди в конец страницы




Англо-русский военно-морской словарь (АРВМС)

     English-Russian Naval Dictionary
     Составитель В.П.Фаворов. "Новалис", С.-Пб., 2002 г., ISBN 5-86951-030-9
     Версия 1.0 от 20.01.2010. Кол-во карточек: 17,5 тыс.

     Представляет собой 2-ю часть (стр.689-951) "Большого англо-русского морского словаря" и его официальное название звучит так: "Специальная военно-морская терминология".
     Из аннотации: "В словаре представлены наиболее употребительные термины по [...] эксплуатации и боевому применению, базированию, материально-техническому обеспечению и боевому управлению [кораблей, судов и морских вооружений]. Отражена терминология по основным вопросам организации ВМС США, Великобритании, Австралии, Канады, объединенных сил ВМС НАТО, оперативно-тактического искусства, военной политики и экономики [...]".

Ограничения ознакомительной версии
     Приведены карточки только на буквы A, B и C (4600+ терминов).

Примечания
     Прим.1. Качество типографского набора низкое. Крайне расхлябано отнеслись товарищи к этому делу. Исправлять пришлось очень и очень многое. С другой стороны, смысловых вмешательств в корпус словаря я почти не делал (ну, к примеру, добавил (на мой взгляд, гораздо более правильное) толкование термина pri-fly и еще прошелся по мелочам...)
     Прим.2. Переводы терминов содержат большое число сокращений. Конечно, их все можно было бы разметить тэгами помет, чтобы одним щелчком узнавать смысл той или иной аббревиатуры, но при этом возникают неоднозначные ситуации, над которыми начинаешь ломать голову, терять драгоценные минуты --- и это выхолащивает саму идею электронного словаря, который призван именно что сберегать время.
     Разберем примерчик: допустим, мы расставили тэги служебных аббревиатур для каждого сокращения. Тогда в карточке ASW acoustic telemetry system получилось бы вот что:

ПЛ ГА телеметрическая система

     Пара щелчков мыши дали бы понять, что сокращение "ПЛ" означает "противолодочный; подводная лодка", а "ГА" - "гидроакустический". Но вот беда: глядя только на русский текст нельзя с уверенностью сказать, как звучит сам термин. Может, это означает "гидроакустическая телеметрическая система" и относится к теме подводных лодок, а? Приходится возвращаться к исходному термину: ага, здесь написано ASW, стало быть "противолодочный", отсюда получаем "противолодочная гидроакустическая телеметрическая система"... Задача, конечно, решается на счет раз, но в том-то и дело, что на это уходит хотя бы пара секунд. Вот почему я расставлял тэги помет только в тех местах, где не могло возникнуть подобных смысловых "вилок". См.Прим.3 к морскому техническому словарю Фаворова-старшего.
     Прим.3. Если иконки всех прочих словарей моей сборки более-менее понятны (с возможным исключением в виде минисловаря архаизмов: там стоит буква "зело"), в случае военно-морской терминологии наверняка придется сделать пояснение. Итак, на иконке АРВМС изображены две первые группы (253-я и 269-я) самого знаменитого сигнала в истории ВМС Великобритании, а именно: "England expects that every man will do his duty". Он был поднят по приказу адм.Нельсона перед началом Трафальгарской битвы. Сам по себе этот код давно устарел; он следует т.н. "Своду телеграфных сигналов морской лексики" по версии контр-адмирала Х.Попема (1800 г.). Полный набор флагов этого сообщения приведен ниже.


Для скачивания ознакомительной версии пройди в конец страницы




Англо-русский словарь по электрооборудованию (АРСЭ)
Версия 1.1 (от 22-го июня 2009 г.)
Вниманию владельцев полной версии 1.0 (от 16.11.08): папка и пароль прежние!

Описание
     Словарь содержит свыше 41 тыс. карточек с основной терминологией по электрическим машинам постоянного и переменного тока (генераторы, электроприводы, преобразователи), электротехническим материалам, электростанциям, распределительным сетям, оборудованию подстанций, средствам релейной защиты, КИПиА и т.д. В обновленной версии расширен раздел по электросварке и сопутствующим методам контроля качества. Это связано с тем, что словарь в первую очередь предназначен для технических переводчиков, работающих по проектам поставки комплектного оборудования (от этапов составления ТЗ и ТЭО до приемки смонтированных агрегатов на объекте).
     При отборе новых терминов основной упор делался на IEV (Международный электротехнический словарь МЭК) по материалам работы подкомиссии No.1, "Терминология" (серия публикаций IEC 60050) с привязкой к НТД РФ (ГОСТы, ПУЭ и прочие виды РД). Актуализация по мере выхода новых документов и словарей.

Ограничения ознакомительной версии
     Английская часть сохранена на 100% (и позволяет получить представление о наполненности корпуса словаря), но перевод терминов дан только для букв A, B и C (т.е., порядка 8 тыс.карточек).

     Прим. Приходит много писем с одним и тем же вопросом. Отвечаю открытым текстом: в электронном словаре, который я предлагаю, "Словарь по электротехнике и электроэнергетике" (АРСЭЭ, English-Russian Dictionary on Electrical and Power Engineering) Лугинского со товарищи содержится в полном объеме. Между прочим, АРСЭЭ полагает, что содержит 45 тыс.терминов. Не-а. С точки зрения Lingvo (равно как и StarDict/ColorDict/Babylon) их не более 38 тыс. Сорок пять набирается только при "расшивке" гнезд: скажем, считать electric(al) за два отдельных термина (как и в случае, например, multipolar [multipole] motor). То же самое относится к гнездам типа lay: 1. прокладывать 2. свивка ...... 7. повив. Семь отдельных терминов, но в Lingvo мы видим только одну карточку. Классический "marketing gimmick".

Для скачивания ознакомительной версии пройди в конец страницы




IEV Parser: Утилита для работы с "Электропедией" (v.1.0 beta, freeware)
Скачать IEV Parser (также содержит неск.десятков IEV-страниц для ознакомления и настройки):
IEV_Parser_v.1.0_beta.rar (440kB)
Скачать всю "Электропедию" (NB: для простого ознакомления с парсером она не нужна. Только для работы.):
Electropedia.rar (80MB)
(Не пользуется спросом и постоянно гибнет на файл-хостере. Если архива и сейчас нет на месте, киньте мне письмецо и я залью заново).

     "Электропедией" (http://www.electropedia.org) называется онлайновая версия Международного электротехнического словаря (IEV), который ведет МЭК. Текущая версия включает в себя порядка 20 тыс.терминов на англ., фр., нем., исп., ит., порт., рус., польск., швед., араб., яп. и кит., хотя далеко не все страницы содержат переводы на всех этих 12 языках. В частности, наиболее бедно представлен как раз русский. Впрочем, работать с IEV можно, и порой он оказывает существенную помощь (напр., при уточнении смысла или вылавливании американизмов). Кроме того, к каждому термину прилагается пояснение на англ. и/или фр., порой встречаются формулы и схемки.
     И все бы хорошо, но вот беда: пока не зайдешь к ним на сайт, нельзя быть уверенным, что там есть перевод того или иного словечка на нужном тебе языке. Эта проблема встала во весь рост, когда я вплотную занялся сборкой терминов для АРСЭ. Пришлось автоматизировать процесс, и в результате родилась утилита IEV Parser, которая теперь доступна всем желающим.
     Из названия тулзы понятно, чем она занимается: парсингом IEV-страниц, т.е. поиском кусочков текста, которые отвечают определенным критериям (в нашем случае текст должен быть написан на том или ином языке). Парсер работает автономно, не требует связи с Сетью, но, разумеется, ему нужно сырье: "телепортированные" HTML-файлы IEV.

     IEV Parser обучен:

         
  • сканировать любое кол-во IEV-страниц (хоть все 20 тыс.) по заранее составленному списку и отыскивать в них термины на всех 12 языках.      
  • выводить найденные термины в рамках заданного подмножества языков (хоть 1, хоть все 12; впрочем, чаще всего нас интересует только пара: термин на иностр.яз. и его перевод, скажем, на русский. Или с арабского на японский - парсеру все едино. Годятся любые сочетания с любым кол-вом языков).      
  • форматировать результаты под Lingvo DSL, или же выдавать их в "сыром" виде (хотя в последнем случае порядок языков на выводе жестко задан).      
  • ставить (или не ставить) штампики с номером термина в IEV, причем в случае DSL-формата такой штампик содержит в себе URL-тэги для просмотра конкретной страницы по вызову из Lingvo (и берет ее либо с диска, либо из Сети - это уж как пользователь определит).

     В полный комплект утилиты входят:
     1) собственно парсер; 2) все 20 тыс. IEV-страниц и 3) два TXT-файла со списками обрабатываемых страниц: один глобальный, второй - крошечный, тренировочный (на нем вы можете быстренько подобрать нужные настройки, потому что у каждого переводчика задачи свои, а глобальный парсинг все-таки занимает время, на моей машине это 6 минут).
     Системные требования:
     Честно скажу - не знаю. Делал для себя. Во всяком случае, под XP (SP3) с 512MB ОЗУ все работает.
     Инсталляция:
     Не требуется. Утилита в реестр ничего не пишет, настройки берет из собственного INI-файла. Низкоуровневых процедур нет (все идет через Windows API-calls).
     Деинсталляция:
     Стереть и забыть.
Рабочее окошко парсера.
(Согласен, изящества мало.
Антипод point-and-drool interface'а.)

     Чего не следует делать:
     1) Наобум менять флаги в INI-файле. Все настройки доступны через обычное меню.
     2) Оставлять пустые строки в списке обрабатываемых файлов, если такой список вы решите составить самостоятельно. Парсер не сможет найти безымянный файл (я бы тоже не смог).
     RAR-архив с Электропедией следует распаковать под корневую папку (т.е., в c:\Electropedia). Если папка будет иная, в TXT-файле с поисковым списком придется корректировать адреса всех HTML-страниц.

     Доработка результатов:
     В случае "сырого" формата дорабатывать можно все или ничего: на выходе попросту дается термин, а под ним идут переводы на нужных языках, плюс номер IEV (если хочется). Поскольку число переводных языков меняется от раздела к разделу, предусмотрена возможность давать запрет на вывод пустых строк (этот флажок называется Suppress empty fields). Если задан DSL-формат, то при отсутствии термина на INDEX_LANGUAGE такое гнездо вообще пропускается, даже если присутствуют переводы на др.языках
     При разглядывании результата вы увидите, что термины часто оканчиваются на HTML-тэг </b>, а порой появляются и <br><b>. Это не баг, это - фича. Дело в том, что на одной IEV-странице гнездовых терминов может быть два, а то и больше (один под другим). Например, IEV number 195-01-11: protective earthing и protective grounding (US). На выходе IEV Parser'а эти термины как раз и разделяются тэгами <br><b>. Здесь придется делать две карточки для Лингво/StarDict/ColorDict ("расшивать" гнездо). При очистке в Ворде эти и прочие тэги легко удалить.

     А теперь о вечном: кодировка
     Все будет хорошо, если вы выводите в DSL только пару языков. В примитивнейшем случае: INDEX_LANGUAGE английский, а CONTENTS_LANGUAGE - русский. Открываете результирующий файл Вордом (UTF-8), подчищаете/расшиваете/форматируете как надо, сохраняете как Unicode. Осталось только поменять расширение - и вот вам готовый DSL. (Кстати, в случае экзотических пар придется корректировать шапку файла (к примеру, мы вынуждены объявлять японский язык китайским).
     Но вот если вы хотите, например, собрать словарь, где английский (или любой иной термин) должен иметь переводы на нескольких (или сразу на всех 11) противопоставляемых языках в пределах одной карточки, то придется помучиться с подбором кодировки, а порой и прибегать к ухищрениям (в RTF и обратно, и проч.). Эксперименты показали, что все зависит от языковых модулей конкретной ОС на конкретной машине (скажем, в Win9x / Me нет нативной поддержки Юникода, хотя даже в этом случае умельцы своего добьются. Как бы то ни было, я гарантирую вывод "байт-в-байт", и отсюда можно отплясывать. HEX-редактор не помешает).
     IEV Parser обкатывался на трех машинах, и вот что у меня получилось: лицензионные, обновляемые японские XP SP2 и SP3 безупречны для любой комбинации, а "горбушечная" английская XP SP1 с ходу понимает только пары. Кодировку для мультиязычных карточек приходится подбирать методом тыка.
     В книге Ю.Ревича "Нестандартные приемы программирования на Delphi" подробно и интересно обсуждается загадочная ситуация с кодировками в Windows, и приводится т.н. "народный" метод лечения проблемы: надо - цитирую - "отметить в окне Кодовые страницы таблиц преобразования абсолютно все пункты (включая IBM EBCDIC..., MAC... и т.п.)". Понятное дело, этот прием сработает не для всех. Жизнь показывает, что волшебным методам самопомощи надо верить ограничено - так же, как и словарям и людям.

     Disclaimer:
     Никакой ответственности за работу (или "невыход на работу", саботаж, диверсионно-подрывную и/или антиобщественную деятельность) IEV Parser'а я на себя не принимаю. Freeware - оно и есть freeware.




Минисловарь архаизмов русского языка (v.1.0, 4400+ карточек, freeware)
Скачать полную версию минисловаря архаизмов:
Archaisms.rar (207kB)

     Словарь содержит "популярные" древнерусские, старославянские и церковнославянские выражения, а также архаизированную поэтическую лексику.

     Источники:
     1. "Словарь церковнославянского и русского языка" Имп.Академии Наук (1847)
     2. "Полный церковнославянский словарь" протоиерея Г.Дьяченко (1898)
     3. "Материалы для словаря древнерусского языка по письменным памятникам" И.Срезневского (1893)
     4. Поэтические переводы (Жуковский, Гнедич, Фет)
     5. Открытые публикации в Интернете

     Комплектация:
     1. DSL + ANN + BMP
     2. LSD (Lingvo 12)
     3. Приложение: полный корпус словаря в HTML-формате (в качестве обратного индекса при стилизации текстов)
     Этот файл отображается по ссылке из Lingvo (карточка HTML), поэтому его следует оставить в той же папке, где размещен LSD. В противном случае потребуется скорректировать код вызова в DSL.




Англо-русский военный словарь (АРВС)

     English-Russian Military Terminology Dictionary
     Составитель Г.А.Судзиловский и др., 1064 стр., "Воениздат", 2-е испр. и доп.изд., 1968 г.
     Версия 1.0 от 15.05.2010. Кол-во карточек: 54+ тыс.

     Ограничения ознакомительной версии
     Перевод терминов дан только для букв A, B и C (около 13 тыс.карточек).

     Из предисловия:
     "... Словарь включает наиболее употребительную современную военную лексику по основным вопросам организации, технического оснащения и вооружения, комплектования и прохождения службы, тактики, оперативного искусства и стратегии, управления войсками и работы тыла вооруженных сил США, Англии, Австралии и Канады, а также объединенных вооруженных сил НАТО. Главное внимание при отборе лексики уделялось терминологии сухопутных войск. Терминология военно-воздушных сил представлена главным образом терминами по организации, вооружению, тактике и оперативному искусству ВВС. Из военно-морской терминологии отбирались прежде всего термины, относящиеся к морским десантным операциям и взаимодействию флота с сухопутными войсками и авиацией ...".


Для скачивания ознакомительной версии пройди в конец страницы




О форматах StarDict / ColorDict и Babylon

     Не так давно один из студентов Санкт-Петербургского государственного морского технического университета любезно обратил мое внимание на желательность конвертации Лингво-словарей в формат, позволяющий работать с ними в смартфонах через оболочку ColorDict, портированую версию StarDict для платформы Андроид.
     Парентный апплет StarDict интересен своей полнейшей бесплатностью (спасибо Linux-community), умением сканировать сетевые базы в поисках перевода заданного термина, высокой популярностью и обилием пользовательских словарей. Портабельная версия StarDict позволяет работать прямо с флешки и т.п., не требуя инсталляции. Имеется, конечно, и Windows-версия. (Читать про StarDict
подробнее в Вики).
     Что же касается "Вавилона", то это давно известная оболочка, не требующая представления (подробнее опять-таки см.в Вики).
     Сказано --- сделано. На 12 марта 2011-го года в форматы StarDict/ColorDict и Babylon успешно переведены: "Англо-русский морской технический", "Англо-русский военно-морской", "Англо-русский по электрооборудованию", "Англо-русский по гражданской авиации" и "Англо-русский военный" (как полные, так и ознакомительные версии. Конвертация "Англо-русского объединенного морского технического" идет полным ходом).
     А теперь важная и приятная новость! Вниманию всех легитимных владельцов словарей моей сборки! Ранее купленный вами Лингво-словарь дает право получить этот же словарь в StarDict/ColorDict- и Babylon-форматах совершенно бесплатно. Срок действия этого права не ограничен. Достаточно будет прислать мне мейл с запросом.
     Ну и, разумеется, другие пользователи StarDict / ColorDict и Babylon тоже могут заказать себе эти словари.
     Caveat: В отличие от своего старшего брата, ColorDict не умеет отображать графику. Другими словами, чертежи (которых так много, например, в "Англо-русском по гражданской авиации") не будут видны на экране вашего смартфона. Впрочем, для работы с чертежами нужен как раз ПК, а не наладонник...


Пример отображения термина wing center section beam в оболочке StarDict
(из "Англо-русского словаря по гражданской авиации")



Пример отображения термина ILS indicator в оболочке Babylon
(из "Англо-русского словаря по гражданской авиации")






Пример эмулированной работы ColorDict с моими словарями на андроидном смартфоне

     Поскольку после возвращения в Россию я напрочь завязал с синхроном и полусинхроном, наладонники мне теперь не нужны и вот почему финишную отладку словарей под ColorDict пришлось выполнять через AVD-эмулятор (Android SDK для API Level 4 из-под Eclipse Galileo на платформе Java SE6u24), о чем довольно красноречиво свидетельствуют четыре вышеприведенные картинки. Из них, кстати говоря, мы видим, что ColorDict успешно поддерживает фонтовые тэги (типа bold, italic, underline и цвет), а также тэги гипертекстовых ссылок (как внутрисловарные, так и сетевые). И вообще, судя по мейлам, словари моей сборки вполне себе крутятся на реальных андроидных аппаратах. Но это вы можете проверить и самостоятельно...

Для скачивания ознакомительных версий пройди в конец страницы




Как преобразовать Лингво-формат для работы в ColorDict

     Данный раздел появился на этой странице не случайно. Дело в том, что у меня на сайте стоит сервис Яндекс.Метрика, из отчетов которого я узнал, что многие гости попадают сюда переходом по ключевым фразам типа "lingvo lsd colordict" в различных вариантах. Отсюда ясно, что народ ищет способ сконвертировать LSD-файлы в формат для ColorDict.
     Рецепт очень прост, но сначала я в 147-й раз повторю, что ColorDict --- это ма-аленький StarDict и поэтому надо конвертировать LSD именно в DICT.

     Шаг 1. Если нет своего собственного DSL, то берем чужой LSD и преобразуем его в DSL.
     Как это делается, объяснено в конце страницы.

     Шаг 2. Обрабатываем DSL.
     Для этого есть три основных способа: 1) переводим его в DICT через утилиту DSL2StarDict.exe (которая лично меня не устраивает по целому ряду технических причин, см.мой ответ на вопрос в "Гостевой книге"); 2) через утилиту makedict (решение сходу доступно для линуксоидов или как минимум начинающих программистов, если необходимо перекомпилировать исходник под Windows, см. описание); или 3) прямо в MSWord'е (или OpenOffice.org'е, если предпочтителен Linux) превращаем его в формат Babylon (это обычный TXT-файл, только в Юникоде; внешне очень напоминает HTML- или BB-код. Существует еще один вавилонский формат (BGL), но речь не о нем. Кстати, мы не сильно погрешим против истины, если скажем, что в контексте Вавилона TXT- и BGL-файлы соотносятся примерно так же, как DSL и LSD в Лингво-среде). Итак, процесс конвертации в вавилонский формат можно запустить, например, непосредственно из MSWord'а соответствующим макросом или, скажем, подобрать регулярное выражение и обработать файл Python'ом, gawk'ом, egrep'ом и т.д. и т.п., ad infinum. Сам я предпочитаю VBA из косности. Полученный вавилонский файл бросаем в StarDict-editor (который входит в пакет StarDict, см.ссылку ниже) и на выходе получаем три файла, на 100% годящиеся как для оболочки StarDict, так и ColorDict, а именно: *.ifo (это просто шапка-дескриптор), *.idx (терминологический индекс) и *.dict (собственно словарный корпус).
     Если возиться с программированием не хочется или "не можется", то как вариант: найти где-нибудь просто StarDict-словари и напрямую использовать их в своем смартфоне. К примеру, на сайте тов. Ху Чжэна (разработчика StarDict, см.ссылку ниже) особо нетерпеливые раздобудут себе все словари из официального пакета Лингво, преобразованные в StarDict-формат. Имейте в виду, впрочем, что эти словари явно были взяты из весьма древней версии Лингво (я проверял, в частности, по LingvoUniversal En-Ru и был неприятно удивлен его недостаточной наполненностью в сравнении с тем, что я вижу хотя бы в 12-й версии).
     Тут есть одна техническая закавыка, которая может поставить в тупик людей, не имевших дела с *nix'овыми реалиями: словари упакованы в TAR-архивы ("тарболлы". Напомню, кстати, что сам по себе tar не компрессирует данные; за это через механизм конвейерной обработки отвечает gzip (файлы *.tar.gz) или bzip2 (файлы *.tar.bz2) и т.д.). Конечно, WinRAR их распакует без труда, но внутри находится еще один архив: *.dict.dz. Это уже знакомый нам *.dict, только сжатый. ColorDict его понимает, но вот если вам захочется внести исправления (а я этим занимаюсь без конца), *.dict.dz придется распаковывать. Для этого опять-таки есть как минимум 2 способа: 1) через Linux, или 2) древнейшей утилитой GZIP, портированной, к примеру, под ДОС (ищется на ftp-серверах).
     Если у вас еще не поставлен Linux, скачайте себе образ LiveCD (хотя бы вездесущий Debian), прожгите диск, загрузитесь с него и без всякой инсталляции запустите tar с нужными свитчами из консоли (-zxf для GUNZIP и -jxf для BUNZIP). А вообще-то я рекомендовал бы просто купить книжку с вложенным LiveCD, например, Дениса Колисниченко, "Ubuntu 10: Краткое руководство пользователя", или его же "Linux: От новичка к профессионалу" (здесь на DVD лежат образы 4-х систем: Fedora13, Mandriva2010, openSUSE11.3 и Ubuntu10.10), или порыться в архивах журнала "Хакер"... Или сделайте себе загрузочную USB-флешку (в посл.релизах многих популярных сборок (напр., Ubuntu) вообще предусмотрена GUI-утилита для таких задач). А можно устроить и виртуализацию, причем даже не обязательно монтировать новую VM: достаточно загрузить, скажем, VMwarePlayer с сайта www.vmware.com и "проигрывать" на нем уже настроенную гостевую ОС ...

     Ресурсы:
     - Сайт разработчика StarDict (для скачивания оболочки, редактора и --- при желании --- словарей)
     - Утилита DSL2StarDict.exe (жутко бестолковая вещь, кстати...)
     - (Рас)паковщик GZIP (да-да, для MS-DOS. Свитч -d. И не забывайте про DOS file naming convention! А то не заработает...)
     - Конвертер UnpackBGL.exe (альтернатива StarDict-редактору при конвертации BGL-файлов)
     - "Ubuntu 10: Краткое руководство пользователя" Дениса Колисниченко
     - "Linux: От новичка к профессионалу" Дениса Колисниченко
     - "VBA: Эффективное использование" В.Г.Кузьменко
     - "Python: Самое необходимое" Н.А.Прохоренка
     - "Google Android: Программирование для мобильных устройств" Алексея Голощапова (на "Озоне" почему-то нет...)
     - "Компьютер на флешке. Самоучитель" В.Д.Королева и других
     - Инструкция по созданию загрузочных флешек + утилиты (НЕ ЗАПУСКАТЬ makeboot.bat с HDD! Боже упаси!!!)
     - "Хакерские фишки" Ивана Склярова (раздел про VMware). А вообще эта книга д.б. у каждого. В нагрудном кармане.


     VBA-макрос для преобразования Лингво DSL в StarDict / ColorDict через "вавилонский" формат:
     Данный макрос предназначен для работы в среде MSWord и представляет собой начальный шаг при конвертации DSL-файла в формат для StarDict или ColorDict. После окончания работы макроса результат надо сохранить как Encoded Text с кодировкой UTF-8, после чего передать результирующий файл в StarDict Editor как "Babylon file". Все три выходных файла StarDict-редактора затем записываются на SD-карту смартфона в папку /dictdata.
     А вот и точка скачивания тела макроса, чтобы не возиться с очисткой листинга:
ConvertLingvo2Babylon.bas (~10kB). Инструкцию по его установке в среду MSOffice см.в след.разделе. А теперь у меня просьба: нужна обратная связь. Где чего подпилить, где подкрасить, расширить возможности или, скажем, встроить более подробную инструкцию. Словом, пришлите, пожалуйста, отзывы.
     Для большей наглядности приведу скриншоты "до" и "после" прогонки этого макроса (в качестве подопытного DSL был взят фрагмент wing center section beam со своими соседями из "Англо-русского слов.по.гражд.ав.", чей скриншот в оболочке StarDict приведен выше, в разд. "О форматах StarDict / ColorDict и Babylon").

1: Sub ConvertLingvo2Babylon()
2: '
3: ' ConvertLingvo2Babylon Macro
4: ' ----------------------------------------------------------------------
5: ' Converts Lingvo DSL to Babylon-formatted dictionary
6: ' (which can be further converted to StarDict / ColorDict)
7: '
8: ' Tested with:
9: ' [x] MSWord (2000)   [ ] Excel         [ ] Access        [ ] PowerPoint
10: '
11: ' Interactive by default:
12: ' [x] Yes             [ ] No
13: '
14: ' Presumed Japanese language encoding support:
15: ' [ ] EUC             [x] JIS           [ ] Mac           [ ] Shift-JIS
16: '
17: ' Presumed Option Statements: not set
18: ' Base                Compare           Explicit          Private
19: ' [ ]                 [ ]               [ ]               [ ]
20: '
21: ' ----------------------------------------------------------------------
22: ' For this macro to work successfully, input DSL file should conform to
23: ' the following canonical rules:
24: ' 1. Each translation entry MUST start with <Tab>[m*] and end with [/m]
25: '    (where * is the conventional (NOT regexp-wise) wildcard symbol).
26: ' 2. The very 1st line: no <Tabs> allowed.
27: ' 3. No empty lines between the headword and its translation.
28: ' 4. Headword/translation pairs should be divided by a single empty line.
29: ' For more info: read the StarDict format specs (available elsewhere)
30: ' ----------------------------------------------------------------------
31: '
32: ' Copyright (c) 2011 Igor Soudakevitch
33: ' License: GPLv3+
34: ' This is free software: you are free to change and redistribute it.
35: ' There is NO WARRANTY, to the extent permitted by law.
36: '
37: ' Version 0.9beta
38: ' Latest version available at:
39: ' http://stm6671350.narod.ru/Lingvo_Tools/Lingvo_Tools.htm
40: '
41:     Dim lTag(), bTag() As Variant   ' Paired Lingvo- and Babylon tags
42:     Dim iParts() As String          ' Dummy var array
43:     Dim cName() As String           '
44:     Dim rName() As String           ' These are placeholder arrays
45:     Dim dName() As String           '
46:     Dim Delim As String             ' Delimiter
47:     Dim iParag As Paragraph         ' Text lines
48:     Dim Aborting As Boolean         ' Cancellation flag
49:         
50: ' Declaring variables
51:
52:     lTag() = Array( _
53:       "\[", "\]", "[b]", "[/b]", "[i]", "[/i]", "[u]", "[/u]", _
54:       "[p]", "[/p]", "[s]", "[/s]", _
55:       "[']", "[/']", "[trn]", "[/trn]", "[*]", "[/*]", _
56:       "[sup]", "[/sup]", "[sub]", "[/sub]", "[lang id=", "[/lang]", _
57:       "[ex]", "[/ex]", _
58:       "[com]", "[/com]", "[!trs]", "[/!trs]", _
59:       "[c ", "[/c]", "[ref]", "[/ref]", "[url]", "[/url]", _
60:       "[/m]^p^t[m1]", "[/m]^p^t[m2]", "[/m]^p^t[m3]", "[/m]^p^t[m4]", "[/m]^p^t[m5]", _
61:       "[/m]^p^t[m6]", "^p^t[m1]", "[/m]^p^p", "^t^p", "^p^p^p")
62:     bTag() = Array( _
63:       "[", "]", "<b>", "</b>", "<i>", "</i>", "<u>", "</u>", _
64:       "<i>", "</font>", "<img src=""", """>", _
65:       "<font color=""red"">", "</font>", "", "", "", "", _
66:       "<sup>", "</sup>", "<sub>", "</sub>", "", "", _
67:       "<b>", "</font>", _
68:       "<font color=""darkgray"">", "</font>", "", "", _
69:       "<font color=""", "</font>", "<a href=""bword://", "</a>", "<a href=""", "</a>", _
70:        "", "", "", "", "", _
71:        "", "^p", "^p^p", "", "^p^p")
72:     Delim = "]"
73:
74: ' Checking mutual input array conformity
75:
76:     If UBound(lTag) <> UBound(bTag) Then
77:         MsgBox Prompt:="Jagged tag arrays!" + vbCr + vbCr + _
78:             "Number of Lingvo tags : " + CStr(UBound(lTag)) + vbCr + _
79:             "Number of Babylon tags : " + CStr(UBound(bTag)), _
80:         Title:="Tag mismatch", Buttons:=vbExclamation
81:         Exit Sub
82:     End If
83:   
84: ' Checking DSL data validity
85:
86:     If InStr(ActiveDocument.Paragraphs(1).Range.Text, "#NAME ") = 0 Then
87:         MsgBox Prompt:="Uncanonical DSL header." + vbCr + _
88:             "(Expecting #NAME<Space> in the very 1st line, etc.)   
89:         Exit Sub
90:     End If
91:     
92:     Selection.HomeKey Unit:=wdStory
93:         
94: ' Writing Babylon header
95:
96:     Aborting = False
97:     dName = Split(ActiveDocument.Paragraphs(1).Range.Text, "#NAME ")
98:     Write_Header Mid(Left(dName(1), Len(dName(1)) - 2), 2), Aborting
99:     
100:     If Aborting = True Then Exit Sub
101:
102: ' Replacement loop
103:
104:     For i = LBound(lTag) To UBound(lTag)
105:         lArg = CStr(lTag(i))
106:         bArg = CStr(bTag(i))
107:         If lArg = "[c " Or lArg = "[lang id=" Or lArg = "[ref]" Or lArg = "[url]" Then
108:             For Each iParag In ActiveDocument.Paragraphs
109:             With iParag.Range
110:                 iParts = Split(.Text, lArg, 2)
111:                     If UBound(iParts) > 0 Then
112:                         If lArg = "[c " Or lArg = "[lang id=" Then
113:                             If lArg = "[c " Then
114:                                 cName = Split(iParts(1), Delim, 2)
115:                                 .Text = iParts(0) + bArg + cName(0) + """>" + cName(1)
116:                             End If
117:                             If lArg = "[lang id=" Then
118:                                 cName = Split(iParts(1), Delim, 2)
119:                                 .Text = iParts(0) + bArg + cName(1)
120:                             End If
121:                         Else:
122:                             rName = Split(iParts(1), CStr(lTag(i + 1)), 2)
123:                             .Text = iParts(0) + bArg + _
124:                                 rName(0) + """>" + rName(0) + CStr(lTag(i + 1)) + rName(1)
125:                         End If
126:                     End If
127:             End With
128:             Next iParag
129:         Else:
130:             Replacing lArg, bArg
131:         End If
132:     Next i
133:    
134: ' Dealing with "SaveAs UTF-8" MSWord bug
135:
136:     ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count - 1).Range.Delete
137:     Selection.HomeKey Unit:=wdStory
138:
139: End Sub
140:
141: Public Function Replacing(ByVal Lingvo_Tag As String, ByVal Babylon_Tag As String)
142:     
143: ' Replacement procedure per se
144:
145:     With Selection.Find
146:         .ClearFormatting
147:         .Replacement.ClearFormatting
148:         .Text = Lingvo_Tag
149:         .Replacement.Text = Babylon_Tag
150:         .Forward = True
151:         .Wrap = wdFindContinue
152:         .Format = False
153:         .MatchCase = False
154:         .MatchWholeWord = False
155:         .MatchByte = False
156:         .MatchAllWordForms = False
157:         .MatchSoundsLike = False
158:         .MatchWildcards = False
159:         .MatchFuzzy = False
160:         .Execute Replace:=wdReplaceAll
161:     End With
162:
163: End Function
164:
165: Public Function Write_Header(ByVal Dict_Name As String, ByRef Abort As Boolean) As Boolean
166:
167:     Dim BookName, Author, Descr, Site, Email, dDate As String
168:     
169: ' Setting header data values
170:
171:     BookName = InputBox(Prompt:="Specify dictionary name" + _
172:         vbCr + vbCr + vbCr + vbCr + vbCr + _
173:         "This field is not optional!", Title:="DSL To Babylon Conversion macro", _
174:             Default:=Dict_Name)
175:         If BookName = "" Then
176:             MsgBox Prompt:="Pressing OK will help.   ", Title:="DSL To Babylon"
177:             While BookName = ""
178:                 BookName = InputBox(Prompt:="Specify dictionary name" + _
179:                    vbCr + vbCr + vbCr + vbCr + vbCr + _
180:                    ( --- NOT optional! --- )", Title:="DSL To Babylon Conversion macro", _
181:                     Default:=Dict_Name)
182:             Wend
183:         End If
184:     Author = InputBox(Prompt:="Specify author" + _
185:         vbCr + vbCr + vbCr + vbCr + vbCr + "(optional)", _
186:         Title:="DSL2 To Babylon Conversion macro", Default:="Me, of course!")
187:     Descr = InputBox(Prompt:="Give a brief description" + _
188:         vbCr + vbCr + vbCr + vbCr + vbCr + "(optional)", _
189:         Title:="DSL To Babylon Conversion macro", Default:="My nifty dictionary")
190:     Site = InputBox(Prompt:="Specify website" + _
191:          vbCr + vbCr + vbCr + vbCr + vbCr + "(optional)", _
192:          Title:="DSL To Babylon Conversion macro", _
193:          Default:="http://stm6671350.narod.ru/Lingvo_Tools/Lingvo_Tools.htm")
194:     Email = InputBox(Prompt:="Specify email" + _
195:          vbCr + vbCr + vbCr + vbCr + vbCr + "(optional)", _
196:          Title:="DSL To Babylon Conversion macro", Default:="ля-ля-ля@yandex.ru")
197:     dDate = InputBox(Prompt:="Specify date" + _
198:          vbCr + vbCr + vbCr + vbCr + vbCr + "(optional)", _
199:          Title:="DSL To Babylon Conversion macro", Default:="January 1, 2000")
200:
201: ' Processing user's cancellation request
202:
203:     If MsgBox(Prompt:="It might take some time. Be patient." + vbCr + vbCr + "Proceed?", _
204:         Title:="Ready to start convertng", Buttons:=vbYesNo) = 7 Then
205:         Abort = True
206:         Exit Function
207:     End If
208:
209: ' Header writing procedure per se
210:
211:     With ActiveDocument
212:     .Paragraphs(2).Range.Delete
213:     .Paragraphs(2).Range.Delete
214:     Selection.TypeParagraph
215:     .Paragraphs(2).Range.Text = "#stripmethod=keep" + vbCr + _
216:         "#sametypesequence=h" + vbCr + "#bookname=" + BookName + vbCr + _
217:         "#author=" + Author + vbCr + "#description=" + Descr + vbCr + _
218:         "#website=" + Site + vbCr + "#email=" + Email + vbCr + "#date=" + dDate + vbCr
219:     End With
220:     
221: End Function


     Иллюстрация процедуры преобразования Лингво DSL в StarDict / ColorDict:


Это DSL-исходник. Обратите самое пристальное внимание на его структуру.




А это --- результат прогонки макроса ConvertLingvo2Babylon
После его сохранения как TXT в кодировке UTF-8 мы получим пресловутый "вавилонский файл"
(который затем отправим в StarDict Editor)




Грузим вавилонский файл Demo.txt в StarDict-редактор и запускаем компиляцию...




Переносим три полученных Demo-файла (ifo, idx, dict) на эмулированную SD-карту в папку /dictdata...




Ну вот, мы добились цели: это наш демонстрационный словарик, уже крутящийся в оболочке ColorDict
(из любви к искусству экран эмулированного аппарата развернут на 90 градусов)


     О подключении макросов
     Чуть-чуть теории: В любой среде, работающей на VB (в частности, MSOffice) макросы хранятся тремя способами: как команды (напр. Format | Paragraph... внутри самого WINWORD.EXE), или же как т.н. "глобальные" и "шаблонные" макросы (global & template macros, соответственно). Глобальные макросы хранятся внутри NORMAL.DOT и доступны всем документам и прочим шаблонам без исключения. Шаблонный же макрос доступен лишь тем документам, которые изначально строились на базе этого шаблона. В связи с этим передавать макрос можно двояко: либо вручить человеку шаблон, и он, открыв его, получит доступ к новому макросу --- либо внедрить код непосредственно в NORMAL.DOT.
     Я все делаю личным напильником, уж такая натура. Поэтому подключать макрос мы будем именно через глобальный темплейт.
     А теперь о требованиях: нужно иметь установленный Visual Basic Editor (см. Tools | Macro). Вообще говоря, он монтируется при инсталляции MSOffice, т.е. если редактор отсутствует, надо просто взять тот диск, поставить галочку и тогда инсталлятор добавит требуемый компонент. Для чего же нужен вышеупомянутый VBE? А для тюнинга макроса на лету, в этом-то и заключается вся мощь и гибкость такого подхода. В противном случае алгоритм можно было бы запросто набросать, скажем, в Delphi, получить автономный экзэшник... но для внесения корректив пришлось бы в любом случае вызывать IDE, или даже безвылазно сидеть в ней.
     Предвижу вопрос. И вот мой ответ: да, разумеется, запускать и даже редактировать макросы можно и без VBE, но тогда возникнут проблемы с отладкой. А отлаживать придется часто и помногу, т.к. у каждого DSL есть свои закидоны, и каждый сборщик словаря по-своему трактует канонические правила разметки тэгами (я, к примеру, игнорирую блоки [trn][/trn] и [com][/com], а про [lang id=] вообще молчу. Да и зачем городить морфологический функционал в отраслевом словаре?!).
     Итак, будем считать, что VBE на месте. Внедряем макрос (на примере ConvertLingvo2Babylon):
     - Открыть ConvertLingvo2Babylon.bas "Блокнотом", поскольку это самый обычный текстовый файл.
     - Скопировать все его содержимое в буфер (через Ctrl-C) и закрыть ConvertLingvo2Babylon.bas.
     - Запустить MSWord. Запустить в нем Visual Basic Editor (через Tools | Macro) и вставить из буфера код (через Ctrl-V). Нажать Ctrl-S (для сохранения тела макроса в шаблоне NORMAL.DOT).
     - Открыть подопытный DSL в MSWord'е, запустить ConvertLingvo2Babylon на исполнение (Tools | Macro| Macros... | Run) --- и с гордо поднятой головой пройти в Павильон хакерских забав.
     Прим. Судя по отзывам, особых проблем с работой макроса не встречается, хотя на крупных файлах прогон может занимать вполне приличное время, с добрый десяток минут, а то и больше. Но зато почти в 100% случаев народ сталкивается с руганью StarDict-редактора. Как правило, это следствие ошибок с разметкой в теле словаря. Например, я часто вижу непарные теги типа [m*][/m], где *=любое число. Макрос в этом месте поставит лишний символ абзаца, на который с ненавистью отзовется StarDict-редактор. Что ж, запомним номер строки, которая так не понравилась этому редактору, найдем ее в файле (не в исходном DSL, а в том, который получился при макрос-конвертации) и исправим ошибочку. Затем вновь кинем файл в StarDict-редактор и посмотрим, что ему не нравится на этот раз. Повторяем до победного конца.
     Подсказка. Не знаю, как обстоят дела в совр.пакетах, но в моем древнеяпонском MSOffice 2000 "Ворд" не позволяет искать параграфы по номеру. Ну нет такой команды, и все тут. Можно искать лишь строки, число которых меняется в зависимости от ширины страницы. А подлый StarDict-редактор сообщает как раз номер параграфа. Как быть? Очень просто: пишем очередной макрос. Вот он :)

Sub Find_Paragraph()
'
' This macro will find paragraph number 666.
' Use the actual Line Number displayed in the StarDict Editor's window.
'
     ActiveDocument.Paragraphs(666).Range.Select

End Sub

     Допустим, StarDict-редактор сообщил нам, что ему не нравится Line за номером... э-э... 12345. Что-то здесь не так. Заменим 666 на 12345, нажмем F5 и внимательно поглядим на найденный параграф и его ближайшее окружение. Ищем ошибку. А уж какая она - зависит от фазы луны.


     Структура и тэги формата StarDict / ColorDict (для справки при тюнинге макроса или заменяющего скрипта):
     Чтобы не загромождать страницу многословными описаниями, я просто приведу "лоскутное одеяло" на базе одного из словарей моей сборки, и вам сразу все станет ясно. Обратите внимание, что: 1) словарный файл должен начинаться и заканчиваться пустой строкой (<CR><LF>, то бишь 0x0D0A); 2) используется кодировка UTF-8; 3) гнезда разграничиваются пустой строкой; 4) CarriageReturn внутри словарной статьи не допускается: его заменяет стандартный HTML-тэг <BR>. В шапке файла я заполнил все известные мне поля, они послужат вам шаблоном. Тэги и служебные поля выделены синим, комментарии - зеленым/красным.

=================== начало файла (My_Stardict_ColorDict_Dictionary.txt) ===================
               <--- пустая строка!
#stripmethod=keep
#sametypesequence=h
#bookname=Civil Aviation (En-Ru)
#author=В.П.Марасанов, конвертация: Игорь Судакевич
#description=Англо-русский словарь по гражданской авиации, v.1.1STARDICT, 21225 карточек
#website=http://stm6671350.narod.ru/Lingvo_Tools/Lingvo_Tools.htm
#email=ля-ля-ля@yandex.ru
#date=March 08, 2011
               <--- пустая строка!
abatement (в одну строку; полужирный шрифт и курсив; цветные служебные пометы/сокращения)
<b>1.</b> уменьшение <i>(<i><b><font color="firebrick">напр.</font></b></i> уровня шума)</i> <b>2.</b> снижение <i>(<i><b><font color="firebrick">напр.</font></b></i> стоимости воздушной перевозки)</i>; скидка <i>(<i><b><font color="firebrick">напр.</font></b></i> с тарифа)</i> <b>3.</b> аннулирование <i>(<i><b><font color="firebrick">напр.</font></b></i> договора между авиакомпаниями)</i>
               <--- пустая строка!
ground run-up noise abatement (без текстовых эффектов)
снижение шума при опробовании двигателей на земле
               <--- пустая строка!
fuel tank access (в несколько строк; + гиперссылки на изображения и заглавные термины)
лючок топливного бака<br><img src="Wing_Structure_2.jpg"><br>Рис. <b>Wing structure</b> крыло<br>1 - <a href="bword://tip">tip</a> законцовка крыла<br>2 - <a href="bword://aileron">aileron</a><font color="blue">s</font> элероны<br>3 - <a href="bword://flap">flap</a><font color="blue">s</font> закрылки<br>4 - <a href="bword://fairing">fairing</a><font color="blue">s</font> обтекатели<br>5 - <a href="bword://fuel tank access">fuel tank access</a> лючок топливного бака<br>6 - <a href="bword://leading edge device">leading edge device</a><font color="blue">s</font> оборудование в переднем обтекателе<br>7 - <a href="bword://fixed leading edge panel">fixed leading edge panel</a><font color="blue">s</font> панели носового обтекателя<br>8 - <a href="bword://maintenance panel">maintenance panel</a><font color="blue">s</font> съемные панели для техобслуживания<br>9 - <a href="bword://spoiler">spoiler</a><font color="blue">s</font> спойлеры<br>10 - <a href="bword://fixed trailing edge panel">fixed trailing edge panel</a><font color="blue">s</font> панели стекателя крыла
               <--- пустая строка!
Z-marker (гиперссылка на URL)
Требуется полная версия словаря<br>Подробнее: <a href="http://stm6671350.narod.ru/Lingvo_Tools/Lingvo_Tools.htm">Lingvo_Tools.htm</a>
               <--- пустая строка!
======================================= конец файла =======================================




Как получить несокращенную версию того или иного словаря

Основная опция
     В обмен на равноценный специализированный словарь приблизительно такого же объема. Языки: с англ., фр. и яп. на русский, и обратно. Мой LSD версии Lingvo12 на ваш LSD (дайте ссылку на образец или пришлите в письме. Целиком одну букву (любую, но только крупную, типа "C" или "S". В вордовском формате или DSL, лишь бы я мог все это прочитать, прогнать спелл-чек, сравнить с бумажным оригиналом и проч.).
Прим.от 14.05.2010 Из английского меня теперь интересует только сельскохозяйственный Козловского и металлургический Перлова. Да еще, пожалуй, геологический Тимофеева. Короче, наменялся я - во! еще на две жизни хватит. Так что с этого момента нужны отраслевые японские и французские.
     Не годится априори: все, что свободно плавает в Сети, а также пользовательские БД к ТМ-инструментам.

Альтернативная опция
     Ну а если совсем нечего предложить к обмену, то можете попросту купить, причем эта опция предусматривает обновление словарей. Оплата (в порядке предпочтения) в Яндекс.Деньгах, WebMoney (в рублях, а также долл. или гривнах по курсу), на мобильник или через Western Union.
     Итак:

          -
Англо-русский по гражданской авиации (21+ тыс.карточек): 600 рублей
          - Англо-русский морской технический (54+ тыс.карточек): 1000 рублей (OBSOLETE, DEPRECATED & ABANDONED)
          - Англо-русский объединенный морской технический (65+ тыс.карточек): 1200 рублей
          - Англо-русский по электрооборудованию (41+ тыс.карточек): 700 рублей
          - Англо-русский военно-морской (17,5 тыс.карточек): 400 рублей
          - Англо-русский военный (54+ тыс.карточек): 600 рублей


Убедительно прошу:
Прежде чем заказывать тот или иной словарь для Лингво, обязательно проверьте его LSD-файл на совместимость с вашей версией (LSD-файл берется из пакета ознакомит.версий, линк к которому стоит ниже). В частности, компиляторы пиратских сборок Lingvo x3 (напр., билды 14.0.0.400-й, 715-й и 786-й) страдают глюками "Out of memory" или "Unhandled internal error" при попытке перекомпилировать LSD 12-й версии в обновленный формат для х3 и даже --- ужас! --- при элементарнейшей операции DSL->LSD. Словом, сначала проверьте, а потом уже конкретно мне напишите: мол, LSD 12-й версии годится --- или: "нет, не годится! хочу под x3!" Кстати, эту болячку можно полечить своими силами, см. здесь.




Ну и напоследок рубрика "Самовывоз"

Скачать одним файлом:
все ознакомительные версии в Лингво12/x3/x5/StarDict/ColorDict-форматах + DSL
(5 шт., свыше 45 тыс. терминов с полными переводами)
(кстати, оболочка GoldenDict тоже понимает эти форматы, в т.ч. и вавилонский BGL...)
(состав: гражданская авиация, морской технический, военно-морской, военный, электротехника)
Lingvo_12_x3_x5_StarDict_ColorDict_Trial_Dictionaries.rar (34MB)

то же самое, но только в Babylon-формате
Babylon_Trial_Dictionaries.rar (4MB)

а также:
весь "Большой англо-русский морской словарь",
80 тыс.терминов (скан-PDF)
English_Russian_Compound_Maritime_Dictionary.rar (107MB)
(состав: морской + военно-морской; 950 стр., современное издание 2002-го года)

весь "Русско-английский сборник авиационно-технических терминов",
50 тыс.терминов (скан-PDF)
Russian_English_Aircraft_Terminology.rar (64MB)
(состав: собственно терминологический корпус, 150+ чертежей, англ.индекс; 640 стр., "Авиаиздат", М., 1995)



Как преобразовать словарь Lingvo из формата LSD в DSL

(рецепт для версий Lingvo 12 ML, x3 --- и не только!)

Шаг 1. В случае 12-й Лингвы (напр., билд 12.0.0.442): качаем пропатченный DSLComp.exe со всеми причиндалами:

Patched_DSL_Compiler_for_Lingvo12.rar (30MB)

          В случае версии x3 (билды 14.0.0.400 & .786): в пиратские сборки изначально входит пропатченный DSL-компилятор с уже активированной опцией LSD -> DSL. Одна беда: компилятор этот кривой, а посему выскакивают runtime-ошибки ("Not enough memory!" и проч.) во всех трех случаях: 1) LSD->DSL; 2) DSL->LSD; и 3) при конвертации старых LSD в обновленный формат для x3. Так вот, для устранения проблемы в x3 потребуется заменить два файла (DslComp.exe и LingvoEngin1.dll), взяв их из следующего пакета:

Patched_DSL_Compiler_for_Lingvo_x3.rar (9MB)

          Специально для любитей халявы предусмотрена и ложечка дегтя: многие антивири (но не все, что интересно) ругаются на LingvoEngin1.dll (билд 14.0.0.400), уверяя, что в него заложен троян (в качестве самостоятельного упражнения вы можете отправить этот файл на онлайн-проверку в www.virustotal.com. Кстати, при скачивании антивирус лучше отключить, так как он всякий раз будет автоматически убивать подозрительный файл на лету. А вот брандмауэр, конечно же, надо все время держать включенным). Лично я из таких положений выкручиваюсь тем, что любые потенциально опасные операции веду на отдельной, экспериментальной машине, к тому же в "теневом" режиме из-под зонтика ShadowUser Pro ver.2.5.

Шаг 2. Делаем нужные выводы, внимательно изучив вот этот комикс (на примере 12-й версии):

Другими словами, требуется иметь уже установленный пакет Лингво (желательно официальный). В большинстве случаев после разархивации достаточно переименовать пропатченный файл DSLComp.exe, перетащить его в папку с Лингво (см.пример на рисунке выше) и запустить его двойным щелчком. Впрочем, есть билды (особенно пиратские), где это не сработает. В таких случаях вам придется заменить (естественно, с бэкапом!) штатные DLL'ы на библиотеки из этого архива, но сначала TSR-движок Лингвы надо выгрузить из памяти.
Напоминаю, что ситуация для версии x3 аналогичная, только здесь надо будет заменить как минимум 2 файла (DSLComp.exe и LingvoEngine1.dll), взяв их из соответствующего пакета (см.линк выше).

Прим. Как вы, наверное, и сами знаете, в случае 12-й версии данная метода приводит к потере ресурсов (я имею в виду встраиваемую графику, звук и видео). При декомпиляции DSLComp всего лишь выдергивает DSL, игнорируя все байнарис. Так что слишком уж обольщаться тоже не следует. Но зато если у вас есть доступ к Лингво х3 c корректно пропатченным компилятором, то можно устроить конвейер LSD_12 -> LSD_x3 -> DSL-пакет со всеми ресурсами. Работает "на ура".




free counters
Задать вопрос о словарях / обсудить можно здесь
(Email-адрес и URL можно не указывать. Достаточно ввести имя и капчу).


Написать письмо