Ознакомительные и полные версии, условия приобретенияНа главную страницу
Написать письмо
Эти же словари, но в формате StarDict / ColorDict и Babylon
(плюс небольшое обсуждение формата и методов его конвертации)
Конвертация формата Лингво LSD в DSL (для версий 12 и x3)
Из предисловия:
Примечания
"...содержит около 24 тыс. терминов по следующим разделам гражданской авиации: структура и деятельность гражданской авиации, проектирование, испытания, производство и эксплуатация воздушных судов, наземное и аварийно-спасательное оборудование гражданских аэропортов..."
Ограничения ознакомительной версии
Приведены карточки только на буквы A, B и C (5000+ терминов, заглавные гнездовые).
Прим.1. Исправлены ошибки, допущенные в бумажном издании (примерно полсотни; как орфографические, так и смысловые).
Прим.2. В корпус словаря встроены все имевшиеся в бумажном издании схемы и чертежи; во всех случаях использованные в них термины размечались гипертекстовыми ссылками, а при необходимости добавлялись и в карточки.
Прим.3. В ряде случаев заглавные термины корректировались для приведения к единому стилю. Ну, к примеру: attitude director indicator, то есть "командный (он же директорный) авиагоризонт". На одной из схемок вместо director стоит direction. Да, есть такой вариант написания, но он куда более редкий и отмечен (причем вскользь) разве что в словаре Мурашкевича (по авиац.оборудованию и бортовым системам).
Прим.4. В комплект ознакомительной версии входит весь пакет рисунков. Не стал я их фильтровать, что нужно, а что нет. Взял - и вбросил скопом. Запас карман не тянет.
Прим.5. Аннотация к бумажному словарю гордо обещает 24 тыс. терминов. Надо думать, это вместе с русским индексом (стр. 518-559).
Прим.6. На всякий случай даю ссылку к отсканированному словарю Марасанова в формате DejaVu. Это поможет составить представление, о чем вообще идет речь.
Прим.7. Идет работа над обновленной версией, куда будет добавлена целая пачка схем и чертежей из "Русско-английского сборника авиационно-технических терминов" ("Авиаиздат", М., 1995, 640 стр.), в т.ч. новые термины и их гипертекстовые кросс-ссылки. Скан-PDF этого сборника в полном объеме доступен для скачивания (см. линк в конце страницы).
|
|
Предметная область:
Поскольку фундаментом явился АРМТС, приведу его аннотацию. Итак:
"Содержит... термины и терминологические сочетания по следующим разделам морской техники: кораблестроение (конструкция корпуса, энергетические установки, оборудование, системы и устройства военных кораблей, торговых и промысловых судов, теория и строительная механика корабля, технология кораблестроения); морское оружие и вооружение кораблей, в том числе противолодочное, ракетное и артиллерийское; системы управления стрельбой; радиоэлектронные корабельные системы; средства кораблевождения, связи и боевого управления; технические средства изучения и освоения океана; оборудование портов и баз и навигационное оборудование морских театров.
Словарь также содержит основную терминологию по ряду научно-технических дисциплин, тесно связанных с морской техникой, - океанографии, мореходной астрономии, гидрометеорологии, гидроакустике, гидромеханике и термодинамике".
О консолидации словарей:
Понятное дело, исходным пунктом всего этого проекта стал канонический словарь Фаворова-старшего, АРМТС. Затем в ход был пущен БАРМС Фаворова-мл., который построен на базе АРМТС и дополнен терминами, в первую очередь относящимися к устройству, оборудованию и ремонту судов, эксплуатации морского транспорта, морскому праву, торгово-фрахтовым операциям и страхованию. Кроме того, предметом БАРМС являются также значительно более богатые реалии штурманской практики и гребного/парусного спорта. Да взять хотя бы узлы: в АРМТС они отсутствуют напрочь, хотя такелажное дело уж несомненно относится к технике. А с отдаваемыми командами и вовсе была беда... К счастью, БАРМС восполнил этот недостаток. Далее, несколько тысяч гнезд подверглись актуализации и значительной корректировке (вносились уточнения, дополнения, устаревшие трактовки размечались соответствующими пометами и проч.)
Военно-морская терминология, содержавшаяся в АРМТС, Фаворовым-младшим была вынесена в отдельный словарь (АРВМС, см.ниже) и также существенно расширена.
А теперь о том, что мне не нравится в БАРМС: Фаворов-мл. безжалостно вымарал все... ну, почти все,... что относится к отжившим и отживающим технологическим решениям. Он --- автор-составитель, и это его право. Но у меня, профессионального переводчика, от такого подхода шевелюра седеет. Скажем, если бы не было АРМТС на руках, где бы я стал искать терминологию судовых паровых машин? Ведь из БАРМС'а она убрана... Как прикажете переводить морские мемуары и беллетристику начала/середины XX-го века, где на каждом шагу встречаются кочегарки, топки, котлы, паропроводы и прочее?.. И подобных лакун в БАРМС'е набирается немало. Так неужели надо всю жизнь страдать, копаясь в нескольких словарях сразу, вместо того, чтобы иметь некий сводный индекс?
Короче говоря, при объединении словарей результат получился, как говорится, "и нашим и вашим". Я старался не упустить даже крохотного бита информации, все скрупулезно вносилось в корпус. Кроме того, в дело пошли и собственные многолетние наработки (в частности, добавлены сокращения, которые так часто встречаются в вахтенных журналах; обозначения сигналов и ориентиров; расширена техн.терминология и т.д. Список использованной лит-ры приведен выше).
В итоге безо всякой натяжки у меня есть право заявить, что более полного --- да к тому же электронного! вычитанного!! и при необходимости могущего работать на смартфонах!!! --- англо-русского морского словаря вы на нашей планете не сыщите. Мало того, в будущих версиях словарь пополнится схемами и чертежами (подобно "Англо-русскому по гражд.авиации").
А если кто-то хочет узнать подробнее, как менялась парадигма наполнения терминами в АРМТС vis-à-vis БАРМС, то нет ничего проще. Показать/скрыть
Примечания (касаются в основном АРМТС)
Прим.1. Исправлены ошибки, допущенные в бумажном издании (по большей части орфографические, скажем, "oft paper" вместо "loft paper" или acrilic, abissal, exiter и т.д. и т.п.). Написания единиц измерения пришлось причесать в соответствии с совр.требованиями (скажем, "Ом" вместо "ом" или "Гц" вместо "гц"). Вообще говоря, исходник АРМТС набран аккуратно (советская эпоха! Воениздат!), я внес не более полусотни корректив. Детализированный список исправлений могу выслать, ежели кому надо.
Прим.2. Гипертекстовые ссылки условных сокращений проставлялись только в тех случаях, когда само сокращение использовалось в качестве пометы.
Допустим: СПК = "судно на подводных крыльях". В карточке "after foil" линк поставлен. А в карточке "crash preventer plane" такой ссылки нет. Впрочем, сами сокращения всегда можно посмотреть в файле служебных аббревиатур, или - что гораздо проще и быстрее - через контекстное меню (правой кнопкой на About Dictionary).
Представляет собой 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 г.). Полный набор флагов этого сообщения приведен ниже.
Описание
Словарь содержит свыше 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".
"Электропедией" (http://www.electropedia.org) называется онлайновая версия Международного электротехнического словаря (IEV), который ведет МЭК. Текущая версия включает в себя порядка 20 тыс.терминов на англ., фр., нем., исп., ит., порт., рус., польск., швед., араб., яп. и кит., хотя далеко не все страницы содержат переводы на всех этих 12 языках. В частности, наиболее бедно представлен как раз русский. Впрочем, работать с IEV можно, и порой он оказывает существенную помощь (напр., при уточнении смысла или вылавливании американизмов). Кроме того, к каждому термину прилагается пояснение на англ. и/или фр., порой встречаются формулы и схемки.
И все бы хорошо, но вот беда: пока не зайдешь к ним на сайт, нельзя быть уверенным, что там есть перевод того или иного словечка на нужном тебе языке. Эта проблема встала во весь рост, когда я вплотную занялся сборкой терминов для АРСЭ. Пришлось автоматизировать процесс, и в результате родилась утилита IEV Parser, которая теперь доступна всем желающим.
Из названия тулзы понятно, чем она занимается: парсингом IEV-страниц, т.е. поиском кусочков текста, которые отвечают определенным критериям (в нашем случае текст должен быть написан на том или ином языке). Парсер работает автономно, не требует связи с Сетью, но, разумеется, ему нужно сырье: "телепортированные" HTML-файлы IEV.
IEV Parser обучен:
В полный комплект утилиты входят: 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.
Словарь содержит "популярные" древнерусские, старославянские и церковнославянские выражения, а также архаизированную поэтическую лексику.
Источники:
1. "Словарь церковнославянского и русского языка" Имп.Академии Наук (1847)
2. "Полный церковнославянский словарь" протоиерея Г.Дьяченко (1898)
3. "Материалы для словаря древнерусского языка по письменным памятникам" И.Срезневского (1893)
4. Поэтические переводы (Жуковский, Гнедич, Фет)
5. Открытые публикации в Интернете
Комплектация:
1. DSL + ANN + BMP
2. LSD (Lingvo 12)
3. Приложение: полный корпус словаря в HTML-формате (в качестве обратного индекса при стилизации текстов)
Этот файл отображается по ссылке из Lingvo (карточка HTML), поэтому его следует оставить в той же папке, где размещен LSD. В противном случае потребуется скорректировать код вызова в DSL.
Ограничения ознакомительной версии
Перевод терминов дан только для букв A, B и C (около 13 тыс.карточек).
Из предисловия:
"... Словарь включает наиболее употребительную современную военную лексику по основным вопросам организации, технического оснащения и вооружения, комплектования и прохождения службы, тактики, оперативного искусства и стратегии, управления войсками и работы тыла вооруженных сил США, Англии, Австралии и Канады, а также объединенных вооруженных сил НАТО. Главное внимание при отборе лексики уделялось терминологии сухопутных войск. Терминология военно-воздушных сил представлена главным образом терминами по организации, вооружению, тактике и оперативному искусству ВВС. Из военно-морской терминологии отбирались прежде всего термины, относящиеся к морским десантным операциям и взаимодействию флота с сухопутными войсками и авиацией ...".
Не так давно один из студентов Санкт-Петербургского государственного морского технического университета любезно обратил мое внимание на желательность конвертации Лингво-словарей в формат, позволяющий работать с ними в смартфонах через оболочку ColorDict, портированую версию StarDict для платформы Андроид.
Парентный апплет StarDict интересен своей полнейшей бесплатностью (спасибо Linux-community), умением сканировать сетевые базы в поисках перевода заданного термина, высокой популярностью и обилием пользовательских словарей. Портабельная версия StarDict позволяет работать прямо с флешки и т.п., не требуя инсталляции. Имеется, конечно, и Windows-версия. (Читать про StarDict подробнее в Вики).
Что же касается "Вавилона", то это давно известная оболочка, не требующая представления (подробнее опять-таки см.в Вики).
Сказано --- сделано. На 12 марта 2011-го года в форматы StarDict/ColorDict и Babylon успешно переведены: "Англо-русский морской технический", "Англо-русский военно-морской", "Англо-русский по электрооборудованию", "Англо-русский по гражданской авиации" и "Англо-русский военный" (как полные, так и ознакомительные версии. Конвертация "Англо-русского объединенного морского технического" идет полным ходом).
А теперь важная и приятная новость! Вниманию всех легитимных владельцов словарей моей сборки! Ранее купленный вами Лингво-словарь дает право получить этот же словарь в StarDict/ColorDict- и Babylon-форматах совершенно бесплатно. Срок действия этого права не ограничен. Достаточно будет прислать мне мейл с запросом.
Ну и, разумеется, другие пользователи StarDict / ColorDict и Babylon тоже могут заказать себе эти словари.
Caveat: В отличие от своего старшего брата, ColorDict не умеет отображать графику. Другими словами, чертежи (которых так много, например, в "Англо-русском по гражданской авиации") не будут видны на экране вашего смартфона. Впрочем, для работы с чертежами нужен как раз ПК, а не наладонник...

Поскольку после возвращения в Россию я напрочь завязал с синхроном и полусинхроном, наладонники мне теперь не нужны и вот почему финишную отладку словарей под ColorDict пришлось выполнять через AVD-эмулятор (Android SDK для API Level 4 из-под Eclipse Galileo на платформе Java SE6u24), о чем довольно красноречиво свидетельствуют четыре вышеприведенные картинки. Из них, кстати говоря, мы видим, что ColorDict успешно поддерживает фонтовые тэги (типа bold, italic, underline и цвет), а также тэги гипертекстовых ссылок (как внутрисловарные, так и сетевые). И вообще, судя по мейлам, словари моей сборки вполне себе крутятся на реальных андроидных аппаратах. Но это вы можете проверить и самостоятельно...
Данный раздел появился на этой странице не случайно. Дело в том, что у меня на сайте стоит сервис Яндекс.Метрика, из отчетов которого я узнал, что многие гости попадают сюда переходом по ключевым фразам типа "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 |
|
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 |
|
=================== начало файла (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!" Кстати, эту болячку можно полечить своими силами, см. здесь.
В случае версии 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), взяв их из следующего пакета:
Специально для любитей халявы предусмотрена и ложечка дегтя: многие антивири (но не все, что интересно) ругаются на LingvoEngin1.dll (билд 14.0.0.400), уверяя, что в него заложен троян (в качестве самостоятельного упражнения вы можете отправить этот файл на онлайн-проверку в www.virustotal.com. Кстати, при скачивании антивирус лучше отключить, так как он всякий раз будет автоматически убивать подозрительный файл на лету. А вот брандмауэр, конечно же, надо все время держать включенным). Лично я из таких положений выкручиваюсь тем, что любые потенциально опасные операции веду на отдельной, экспериментальной машине, к тому же в "теневом" режиме из-под зонтика ShadowUser Pro ver.2.5.
Шаг 2. Делаем нужные выводы, внимательно изучив вот этот комикс (на примере 12-й версии):
Прим. Как вы, наверное, и сами знаете, в случае 12-й версии данная метода приводит к потере ресурсов (я имею в виду встраиваемую графику, звук и видео). При декомпиляции DSLComp всего лишь выдергивает DSL, игнорируя все байнарис. Так что слишком уж обольщаться тоже не следует. Но зато если у вас есть доступ к Лингво х3 c корректно пропатченным компилятором, то можно устроить конвейер LSD_12 -> LSD_x3 -> DSL-пакет со всеми ресурсами. Работает "на ура".