GNU/Linux, Vim, LaTeX, полезные скрипты, визуализация данных, численные расчёты

20080205

Использование словарей Lingvo 11 в Linux

Предыстория


Какое-то время назад я купил Lingvo 11 «Шесть языков», ту версию, которая стоила около 2000 руб. Покупал в основном для того, чтобы использовать на наладоннике, потому что словари Multilex для наладонника продавались каждый язык отдельно, и нужный мне набор получался дороже, чем хотелось бы. Однако в Lingvo 11 входила и версия для Windows. Более того, мне пришлось её поставить, чтобы установить словари в наладонник, но с тех пор я так и не мог ей воспользоваться (потому что пользуюсь я каждодневно линуксом). А недавно стало обидно: такие деньги заплачены, а словари лежат… Тем более, что lingvo.yandex.ru доступен не всегда.

Посещение форума Lingvo показало, что АББИИ как не хотела, так и не хочет делать оболочку Lingvo ни для линукса, ни для маков… Можно сказать даже всячески препятствуют использованию своего продукта в не-Windows операционных системах и эмуляторах.

Оболочки же для словарей в линукс и на маке давно есть готовые (stardict, например, или его консольная версия sdcv, TranslateIt на маке). Достаточно было бы продавать словари в любом открытом формате, но ни продавать, ни лицензировать словари отдельно в АББИИ не хотят. И с сайта stardict.sourceforge.net коллекцию сконвертированных в формат stardict словарей заставили недавно убрать.

Закон РФ и юридическое творчество АББИИ


На мой взгляд в этом случае я, как обладатель экземпляра программы вправе изменить программу/базу данных так, чтобы она работала на моих технических средствах и взаимодействовала с использумым мною программами (ст. 1280 новой четвёртой главы ГК РФ).
ГК, глава 4:
Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ

1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:

1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем;

2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей или для замены правомерно приобретенного экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных не может быть использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и должна быть уничтожена, если владение экземпляром таких программы или базы данных перестало быть правомерным.


К слову сказать, в лицензионном соглашении АББИИ «заботливо» прописала вот что (это копи-паст из соглашения к 12-й версии Lingvo, но если мне память мне не изменяет, в 11-й было написано так же):
8.3. Вы обязуетесь не осуществлять самостоятельно и не разрешать третьим лицам осуществлять следующие действия.

8.3.1. Деассемблировать, декомпилировать (преобразовывать объектный код в исходный текст) ПО (включая программы, базы данных (в том числе словари) и другие компоненты ПО), за исключением случаев и только в объеме, явным образом разрешенном применимым законодательством. Если применимое законодательство разрешает подобные действия, любая информация, полученная таким способом, не должна раскрываться третьим лицам, если только такое раскрытие не предусмотрено применимым законодательством, и должна быть немедленно сообщена Компании ABBYY. Вся такая информация является конфиденциальной и принадлежит Компании ABBYY.


К счастью, законодательство РФ явно разрешает декомпиляцию объектного кода в исходный текст (пункт 3 вышеупомянутой статьи 1280 ГК), если это необходимо для обеспечения взаимодействия с декомпилируемой программой (формально, достаточным поводом для этого является написание на bash скрипта, который вызывает stardict, которому нужны словари).

Дело техники


Итак, когда мне потребовалось воспользоваться словарём, я почитал всякие советы и блоги в интернете (рекомендую заметку Перенос словарей Lingvo из ABBYY Lingvo в stardict (на jack.kiev.ua) и пост на форуме AlReader), и сделал так:

1. Скопировал бинарные словари в формате .lsd в отдельный каталог, туда же скопировал DslComp.exe и все DLL-ки из каталога с устанной Lingvo.
2. Поправил бинарный файл DslComp.exe (с помощью -b режима и xxd в vim), заменив по смещению 0004E8E1 байт 84 на байт 32. Эта замена включает в DslComp.exe недокументированную функцию декомпиляции словарей. Понятно, что то, какой байт и где заменять сильно зависит от версии Lingvo, и тот вариант, который описан у jack.kiev.ua у меня не подходит, а подошёл тот, который был указан на форуме alreader.com.
На форумах в интернете можно найти «патчи» для DslComp.exe из Lingvo версий с 9-й по 11-ю. Про 12-ю ничего не видел, но и специально не искал. Как я понял, пользователям версии 8.0 и более ранних этим извратом (декомпиляцией словарей) заниматься вообще не надо. Так что, если нужно Lingvo в Linux, то лучше покупать самую старую версию, какую только найдёте. Главное, не 12-ю.

3. После этого запустил wine DslComp.exe, и выбрал там конвертацию из .sdl в .dsl. Получилось. Полученный файл .dsl — это простой текстовый файл в кодировке UTF-16. Возможно, из него потребуется вырезать упоминания про файлы с произношением (мне не пришлось).
4. Затем я взял программку makedict с xdxf.sourceforge.net (Converter: many to many), собрал её. Конвертация словаря .dsl в формат stardict деляется с помощью неё так:
$ makedict -i dsl -o stardict Словарь.dsl

Словарь в формате stardict будет лежать отдельным подкаталогом. Его нужно переместить в /usr/share/stardict/dic/. Дополнение: или, как заметил SIR, в домашний каталог пользователя, ~/.stardict/dic/ (Спасибо!).

Вроде всё. Если всё работает, резервную копию словарей в Windows можно удалять.

Информация к размышлению


Эта заметка показывает весь «блеск» несвободного программного обеспечения. Условия его использования противоречат интересам пользователей, и удовольствие за такие деньги ниже среднего. Тонкости и нюансы несвободных лицензий тоже создают дополнительные неудобства, ограничения и риски. В случае Lingvo, технически, использовать словари в GNU/Linux вместе с stardict возможно, но требует некоторой возни. На мой взгляд, такое использование законно, но при использовании в организации лучше, наверное, проконсультироваться с юристом, а не с моим блогом :) На практике могу лишь посоветовать не покупать последнюю версию Lingvo. А лучше купить уже бывшую в употреблении более старую версию. В идеале — восьмую или более ранюю.

Хочу также заметить, что конкурент АББИИ, компания MediaLingua, тем временем уже начала разработку многоязыковых словарей MultiLex для Linux. Это можно только приветствовать. Возможно, в скором времени покупать качественные словари можно будет у них, а про мелкомягких АББИИ с их Лингво забыть как про страшный сон.

Дополнение: Читатели в комментариях дали вот эту ссылку, что нужно менять в dslcomp.exe в 12-й версии Lingvo (по-англ.)

16 коммент.:

PhoeniX комментирует...

Ого! Мой полузабытый пост... Помнится, пару дней на это потратил, потом долго с автором Dict'а переписывался, пока он допиливал конвертор...

jetxee комментирует...

Ну вот, ты не зря два дня старался. Я благодаря твоему полузабытому посту всё за полчаса сделал :) Большое тебе человеческое спасибо!

Надеюсь, и кому-нибудь ещё пригодится.

Анонимный комментирует...

Не покупайте программ !!!

Они нам на голову сесть хотят а вы им деньги платите.

И когда я ставлю знакомому кряканую прогу, я ее не ворую, это отплата за то что я не могу видеть как ее написали.

jetxee комментирует...

> Они нам на голову сесть хотят а вы им деньги платите.

Я стараюсь покупать программы, которыми пользуюсь, если это необходимо. Или искать свободные (в крайнем случае бесплатные) альтернативы.

К счастью, количество несвободных программ, которые мне нужны, очень ограниченно. За прошлый год я не купил ни одной несвободной программы :) В позапрошлом было куплено несколько программ для наладонника и OEMная Windows с ноутбуком.

SIR комментирует...

Спасибо за такой пост!
Как-то давно я пытался проделать подобное, но т.к. не имел лицензионной Lingvo, и ограниченность И-Нета на тот момент, прекратил это занятие. С тех пор использую исключительно Stardict с его словарями, хотя считаю, что у Lingvo очень мощные словари.
Здоровско, что есть ссылка на статью закона. :)
Есть вопрос:
Возможно ли привести скриншот(ы) в этом посту Stardict-а, где показан перевод какого-нибудь слова?
Интересно увидеть структуру переводной базы словаря. Ну например, есть ли там выделение шрифтом и прочее (Stardict-словари, порой показывают просто "груду" текста значений перевода). А то я вполне допускаю приобретение какой-нить старенькой версии Lingvo, чтобы потом ее честно юзить в Stardicte...
:)

jetxee комментирует...

Вот скриншот stardict-а версии 2.4.8, из stable.

А вот stardict версии 3.0.0 из testing.

Основная разница — ссылки на смежные статьи в 3.0.0 стали активные.

Хотя мне больше нравится пользоваться sdcv в терминале :)

Да, в stardict есть возможность пользоваться сетевыми словарями, то есть запращивать http://lingvo.yandex.ru/, только я не разбирался, как это настраивается.

SIR комментирует...

Спасибо, гляну.
(У меня у самого 3-я версия)
А с настройками сетевых словарей надо попробовать.

Анонимный комментирует...

http://brutalblog.wordpress.com/2007/12/20/1/

вот статейка про 12 лингву
//Deady

SIR комментирует...

Кстати, словари в Стардикт можно кидать в свой домашний каталог (от обычного пользователя):
/~/.stardict/dic/

jetxee комментирует...

2Deady:
спасибо за ссылку, добавил в статью;

2SIR:
ценное замечание, тоже добавил в статью, спасибо!

SIR комментирует...

Кстати, на ветке форума у ABBY "официально" ответили, мол "адаптировать" ихнии словари под StarDict, все-таки, нарушение закона!
Хотя я почему-то сомневаюсь на счет этого..

Да, еще вопрос: если брать коробочную версию, то в ней доступна прогда как для работы на компьютере, так и для смартфона/коммуникатора? Т.е. один юзер может юзать и то, и другое одновременно вполне легально (с их точки зрения). Я правильно понимаю??
:-)

jetxee комментирует...

> Т.е. один юзер может юзать и то, и другое одновременно вполне легально (с их точки зрения). Я правильно понимаю?

Из лицензионного соглашения:

3.2. В случае если Конечным пользователем ПО является физическое лицо, разрешается установить ПО на двух компьютерах: на одном домашнем, и на одном рабочем компьютере или ноутбуке. При этом Вы имеете право использовать ПО одновременно только на одном компьютере.

3.3. Вы можете дополнительно установить и использовать ПО на следующих устройствах:

* на одном карманном («наладонном») компьютере и
* на одном смартфоне, если иное не оговорено в отдельном соглашении с Компанией ABBYY.
3.4. Допускается одновременное использование ПО Конечным пользователем на карманном («наладонном») компьютере, смартфоне и на настольном компьютере. Такое использование не является нарушением пп. 3.1-3.3 настоящего Лицензионного договора.


То есть да, можно.




А законность или незаконность определяет суд, а не сотрудник компании АББИИ. В каждом конкретном случае отдельно.

Посмотрел на их ответ. Как говорится, IANAL, но могу заметить следующее:

1. Закон об авторских и смежных правах, на который они ссылаются — утратил силу.

2. Действующая сейчас ст. 1280 ГК тоже определяет список условий, когда декомпиляция допустима (п.3). Такие требования в случае декомпиляции честно купленных словарей Lingvo выполнены (если ни декомпилированные словари, ни модифицированная программа пользователю ранее не были доступны из другого источника, если пользователь декомпилирует только те части программного пакета, которые необходимо, и если декомпилированные словари и программа не распространяются).

3. Действующий п.4, ст. 1280, ГК тоже предусматривает, что «Применение положений, предусмотренных настоящей статьей, не должно наносить неоправданный ущерб нормальному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного правообладателя».

Как я понимаю, заявление сотрудников АББИИ, что «Декомпиляция словарей является нарушением не только авторских прав ABBYY, но и всех авторов словарей, которые упорно трудились над их созданием» — является как раз претензией на то, что декомпиляция наносит им неоправданный ущерб. ИМХО, это будет не так-то просто доказать в суде: такая декомпиляция не лишает их доходов, ни прямо, ни косвенно. Деньги за декомпилируемую копию программного обеспечения компанией АББИИ всё равно уже получены в совершенно том же количестве и в том же порядке, в котором они их получают от пользователей Windows, количество пользователей от этого тоже не меняется, а продукты для Linux и MacOSX они просто не предлагают (упущенных продаж нет и быть не может). Меняется только программное окружение, в котором тот же самый пользователь использует купленное ПО.

4. Сотрудник АББИИ утверждает: «В данном случае речь идет не об интеграции, а о переносе части Lingvo под другую платформу с целью получения схожей программы под платформой Lingvo.»

Ничего, про «перенос части под другую платформу с целью получения схожей программы под платформой» в законе не сказано. В законе говорится об изменении программы или базы данных «исключительно в целях их функционирования на технических средствах пользователя». Прошу обратить внимание на исключительно широкую формулировку в законе.

Также, закон ничего не говорит про «интеграцию», но наделяет пользователя правом декомпиляции для «достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой». Такой программой, формально, может быть любой написанный пользователем bash-скрипт, вызывающий sdcv, которому нужно взаимодействовать со словарями Lingvo.

5. По поводу пугания авторскими договорами. Закон предусматривает договоры об отчуждении исключительного авторского права (очевидно, это не для конечных пользователей Lingvo) и лицензионные договоры (все остальные). Пользователь, вступающий с АББИИ в сделку (приобретающий ПО) — может заключить лишь лицензионный договор. Именно им и является лицензионное соглашение, в котором определяются права пользователя и порядок использования программы. Ещё отдельный вопрос — имеет ли это лицензионное соглашение юридическую силу. Например, соответствует ли данное конкретное соглашение действующему законодательству (ГК, закону о правах потребителя и проч.), допустима ли такая форма заключения сделки и т.д.

В общем, я не юрист, но мне кажется, что позиция АББИИ подкреплена в основном мифами и жадностью.

Будем ждать объявления их официальной позиции, которую они обещают разъяснить через месяц. Ставлю килограмм яблок на то, что они объявят о той или иной форме о предоставлении услуг или продуктов для пользователей Linux, а любые возможные конфликты предпочтут до суда не доводить.

Clarke комментирует...

Спасибо за линк на мой блог
( http://www.brutalblog.wordpress.com )

SIR комментирует...

2 jetxee: спасибо за такой развернутый ответ. Исчерпывающе.
:-)

Aceler комментирует...

> Будем ждать объявления их официальной позиции, которую они обещают разъяснить через месяц. Ставлю килограмм яблок на то, что они объявят о той или иной форме о предоставлении услуг или продуктов для пользователей Linux, а любые возможные конфликты предпочтут до суда не доводить.

Пророк? :)

darkk комментирует...

А если после добавления словарей stardict начинает нещадно кушать память ложками - вероятно, виноваты сжатые индексы, которые несложно расжать — http://darkk.livejournal.com/41995.html

Отправить комментарий