Поради використання словників lingvo 11 в linux

Передісторія

Відвідування форуму Lingvo показало, що АББІІ як не хотіла, так і не хоче робити оболонку Lingvo ні для Лінукса, ні для маків ... Можна сказати навіть всіляко перешкоджають використанню свого продукту в не-Windows операційних системах і емуляторах.

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

Закон РФ і юридична творчість АББІІ

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 виділяється за допомогою неї так:

Словник в форматі stardict буде лежати окремим підкаталогом. Його потрібно перемістити в / usr / share / stardict / dic /. Доповнення: або, як зауважив SIR. в домашній каталог користувача,

Наче все. Якщо все працює, резервну копію словників в Windows можна видаляти.

Інформація до роздумів


Ця замітка показує весь «блиск» невільного програмного забезпечення. Умови його використання суперечать інтересам користувачів, і задоволення за такі гроші нижче середнього. Тонкощі і нюанси невільних ліцензій теж створюють додаткові незручності, обмеження і ризики. У разі Lingvo, технічно, використовувати словники в GNU / Linux разом з stardict можливо, але це вимагає півгодинної метушні. На мій погляд, таке використання законно, але при використанні в організації краще, напевно, проконсультуватися з юристом, а не з моїм блогом :) На практиці можу лише порадити не купувати останню версію Lingvo. А краще купити вже вживану стару версію (щоб не платити пропріетарщікам). В ідеалі - восьму або більш ранюю (щоб не займатися декомпіляцією словників). Благо, на тому ж молотке.ру такі пропозиції бувають.

Хочу також зауважити, що конкурент АББІІ, компанія MediaLingua, тим часом вже почала розробку багатомовних словників MultiLex для Linux. Це можна тільки вітати. Можливо, незабаром купувати якісні словники можна буде у них, а про дрібном'який АББІІ з їх Лингво забути як про страшний сон.Дополненіе: На жаль, згадка версії для Linux з сайту МультиЛекс прибрали, кишка тонка; прибираю посилання.

Схожі статті