Last modified: April 13, 2015

phpMyLingvo Homepage

Sorry, this page is available only in Russian. For English description, please refer to Readme in program's distribution.

See phpMyLingvo FAQ (available in English and Russian) for troubleshooting.

Проект завершен!

phpMyLingvo 1.20

Проект объявляется закрытым.

Причины:

  • Скрипт настолько удобен, что развивать его (на существующем формате словарных баз) практически некуда. Многие функциональные улучшения требуют радикальной переделки формата баз, либо изрядных усилий, чтобы бороться с недостками формата.
  • Поддержка новых форматов словарей и добавление новой функциональности требуют переписывания 80% кода и добавления кода как минимум в два раза больше, так что это, фактически, будет новая программа.
  • Имя phpMyLingvo вызывает слишком много ассоциаций с ABBYY и с phpMyAdmin, к которым, понятно, он никакого отношения не имеет. Кроме того, проект уже не завязан на MySQL.

В связи с этим, проект заморожен и ждет "форка" - новой версии с новой, гибкой внутренней структурой, поддержкой других видов словарных баз, и так далее, под другим названием. Естественно, если Вы желаете улучшить phpMyLingvo самостоятельно - буду рад сотрудничать - в плане размещения новых версий на сайте, и т.д., но сам я развивать этот проект в одиночку не планирую. Планы, обозначенные в To Do, будут реализовываться в новом проекте.

Что такое phpMyLingvo?

phpMyLingvo - это словарь. Точнее, универсальный веб-интерфейс для словарей, хранящихся в базе данных SQL. Изначально программой, которая используется для просмотра таких словарей, являлась PtkDic, написанная Алексеем Семеновым, однако отделение хранилища словарей (в MySQL) от интерфейса позволило появиться целой коллекции программ, которые используют те же самые словари. Например, GtkDic и WebDic того же автора; JaLingo (QT и Java версии) Александра Шишко.

База данных MySQL была выбрана как хранилище данных по ряду причин. Во-первых, она бесплатна и широко распространена (в большинстве дистрибутивов Linux она даже включена в поставку). Во-вторых, она доступна для всех современных операционных систем. В-третьих, это дает возможность централизации словарей на одном сервере. Ну и наконец, SQL берет на себя огромную часть работы с данными - индексацию, быстрый поиск... что, с одной стороны, серьезно упрощает написание собственно интерфейса к словарям, а с другой - позволяет использовать для написания интерфейса интерпретируемые языки (Java, PHP, Perl).

Начиная с версии 1.2, в phpMyLingvo была добавлена возможность хранить словарные базы данных не только в MySQL, но и на других серверах (официальная поддержка PostgreSQL, Micro$oft SQL, SQLite), что расширяет возможности использования программы и выгодно отличает ее от PtkDic, JaLingo и других SQL-основанных словарей.

Зачем может быть нужно столько разных программ для просмотра одних и тех же словарей? Во-первых, разные программы реализуют разную концепцию: например, GtkDic умеет производить полнотекстовый поиск; PtkDic написан на Perl/Tk и потому сам по себе очень маленький, и может запускаться в любой системе с Perl/Tk; JaLingo похож на старину ABBYY Lingvo и потому будет особенно приятем тем, кто привык к ABBYY; phpMyLingvo удобен тем, кому привычен веб-интерфейс, или если нужен один словарь для целой локальной сети или сайта. Во-вторых, разные программы могут работать или не работать (или по каким-либо причинам подходить/не подходить) в вашей системе. Например, GtkDic не работает под Windows (хотя, конечно, при желании его несложно портировать, использовав GTK для Win32 или для Cygwin).

JaLingvo 0.1b (QT Version) - Click to enlargeGtkDic 0.5.5 - Click to enlarge При этом, вам достаточно один раз настроить SQL-сервер и установить словарные базы, и вы сможете запускать любую из этих программ для их просмотра, или даже несколько одновременно! Более того, вы можете настроить доступ к SQL-серверу по сети, и тогда программы, установленные на других компьютерах в вашей локалке смогут использовать те же словарные базы.

В принципе, не составляет труда написать и обычную GUI-версию для Windows, не требующую отдельного SQL-сервера - например, используя Delphi + Borland Database Engine (кстати, такая программа могла бы быть портируемой и на Linux - Kylix), но это пока что дело будущего.

Особенности phpMyLingvo

Достоинства

  • Может быть установлена на компьютер с любой операционной системой с поддерживаемым SQL-сервером и веб-сервером с поддержкой PHP.
  • Одна инсталляция phpMyLingvo может обслуживать целую сеть компьютеров. При этом нет необходимости устанавливать какие-либо программы на клиентские машины, и не нужно открывать внешний доступ к SQL-серверу.
  • Поддерживается ввод запросов и вывод статей кодировкой UNICODE (в виде HTML entities), что обеспечивает одновременное отображение символов кириллицы и западноевропейских алфавитов.
  • Возможен поиск по нескольким словарям.
  • Полнотекстовый поиск - позволяет находить слова, которые упомянуты в словаре, но не вынесены в заголовок, или использовать словарь "навыворот" - например, переводить с русского на немецкий немецко-русским словарем!.
  • Внешний вид может быть легко модифицирован изменением стилевого файла (CSS2), текста приветствия.
  • Настройки вынесены в отдельный файл. Вам не надо будет полностью переписывать их при обновлении программы до более новой версии.
  • Широкий выбор настроек для ограничения нагрузки на сервер (ограничения по количеству словарей для одновременного поиска, по количеству выводимых статей, сжатие вывода с помощью Zlib).
  • Пользователям не нужно запускать лишнюю программу для работы со словарем - достаточно открыть новое окно или вкладку браузера.
  • Словарь, установленный на сервере, может использоваться слабыми рабочими станциями - с помощью облегченных браузеров, даже из тектовой консоли (с помощью браузера вроде Lynx).
  • Поддерживаются различные виды SQL-серверов, включая MySQL (лучший), PostgreSQL, MS-SQL, ODBC, SQLite (встроен в PHP5)...

Недостатки, недоделки и известные баги

  • Нужно иметь/установить-настроить Web-сервер, PHP и SQL-сервер.
  • Многие люди предпочитают обычный GUI-интерфейс.
  • Формат словарей, позаимствованный у PtkDic, не позволяет создавать словари для азиатских кодировок - используется смесь ISO-8859-1 и KOI8-R, а нужен Юникод. Эта проблема может быть решена в будущих версиях.
  • Пока что нет возможности редактирования словарных статей.

Инсталляция

Требования

  • Любой веб-сервер с возможностью выполнения CGI или с PHP-модулем. Ясное дело, Apache рулит :)
  • SQL-сервер (или SQLite, встроенная в PHP).
  • PHP 4 или выше с поддержкой вашего SQL-сервера. Требования к настройке PHP (опции в /etc/php.ini):
    • Важно только для версий до 1.0: Должна быть включена обработка глобальных переменных:
      register_globals = On
    • Важно только для версий до 0.9: Для использования recode в качестве обработчика UTF, нужно отключить "безопасный режим:" safe_mode = Off (в php.ini). Если возможности отключить безопасный режим нет, попробуйте режим mbsring или отключите многобоайтовые строки вообще (в config.php). ($enable_multibyte=false;).
  • Клиенты: веб-браузер со включенной поддежкой cookies. Желательно - с поддержкой JavaScript.
    Идеально работают Mozilla и основанные на нем (Mozilla Firebird, Galeon...), Internet Explorer 5+. При включенной поддержке UTF на 100% работают остальные GUI-браузеры (Opera, Konqueror).
    Lynx и Links работают, но ограничены в вводе запросов: в зависимости от настроек phpMyLingvo и локали у клиента позволяют вводить в запросе либо русские и английские буквы, либо английские+Западная Европа (всякие там умляуты и т.д.)
  • Для установки словарей будет нужен bzip2 (под Linux-то это стандартная программа, а вот для Windows его придется скачать, либо распаковать словари чем-нибудь другим: bzip2 (как и gzip) может быть распакован, например, с помощью достаточно новой версии WinRAR). phpMyLingvo 1.2 и выше может устанавливать словари, упакованные bzip2, самостоятельно, при условии, что в PHP есть и включен модуль bz2, либо установленна программа bzip2.
  • Важно только для версий до 0.9: Для поддержки UTF (для клиентов, основанных на Mozilla или Internet Explorer это не нужно; в основном это для Opera и Konqueror) - либо PHP с включенным модулем mbstring, либо GNU Recode (пакет recode входит в большинство дистрибутивов Linux).

Установка вебсервера, PHP, SQL-сервера

Под Linux, как правило, достаточно установить соответствующие пакеты (apache, mysql, php, php-mysql) - phpMyLingvo не требует никаких особенных настроек, а предлагаемый по умолчанию файл конфигурации рассчитан именно на установку среды по умолчанию :)

При возникновении проблем, обратитесь к документации от поставщиков программ.

Рекомендуемое ПО:

Можно использовать не Apache, а любой другой вебсервер с поддержкой PHP, даже Micro$oft PWS :)

Под Windows, для облегчения установки, можно использовать отечественный пакет "Денвер", который занимает мало места, легко устанавливается и содержит в себе Apache, PHP и MySQL:

Установка phpMyLingvo

Никаких особенных манипуляций не нужно, просто распакуйте архив с исходниками программы в каталог, открытый для доступа по HTTP. Под Linux это обычно /var/www/html.

После этого, откройте файл config.php в тектовом редакторе и отредактируйте его. Файл хорошо откомментирован, так что этот шаг не должен вызвать никаких проблем у более-менее продвинутого пользователя с минимальными познаниями в английском. Если вы собираетесь использовать phpMyLingvo на локальном компьютере или в небольшой закрытой сети, а MySQL и базы словарей установлены по умолчанию, то можно не производить никакой настройки, кроме установки пароля для администраторского интерфейса.

При желании можно также отредактировать welcome.inc.html, в котором содержится "заставка".

Если возникли проблемы - смотрите FAQ или пишите в список рассылки phpMyLingvo (см. ссылки).

Установка словарей с помощью phpMyLingvo в. 1.2 и выше

Создайте в вашем SQL-сервере базу данных для хранения словарей. В случае с MySQL, это можно сделать, например, так:
$ echo "create database ptkdic;" | mysql -u root
В общем случае, обратитесь к документации на ваш SQL-сервер. После этого, откройте страницу словаря и щелкните по ссылке "Admin Interface". В администраторском интерфейсе следуйте приведенным там инструкциям.

Установка словарей в MySQL вручную

Подробно описано в документации (на английском) и на страницах JaLingo и PtkDic.

Если коротко - надо распаковать файлы словарей (это просто сжатые MySQL-дампы соответствующих таблиц) и "скормить" их на вход mysql в базу ptkdic. Под Linux/*NIX или Win32+Cygwin, для этого достаточно выполнить команду вида:
$ bzcat dictionary1.bz2 | mysql -u root ptkdic
Перед этим, конечно, надо создать саму базу данных ptkdic, например, так:
$ echo "create database ptkdic;" | mysql -u root
Это минимальные инструкции, подходящие к "домашней" установке MySQL. Для более подробных см. в см. выше :)

При отсутствии команды bzcat, но наличии bzip2 надо использовать bzip2 -dc . Если Вы под Windows и bzip2 нет и неохота скачивать - можно распаковать дамп с помощью WinRAR, потом сделать примерно так:
> type dictionary1 | "c:\MySQL\bin\mysql" -u root ptkdic
(я не проверял, но должно работать :)

Ссылки

    SourceForge.net Logo
  • В 2015 году проект чуток ожил с целью продолжить его использование на современных версиях PHP и MySQL. Свежие исходники есть тут:
    https://gitlab.com/sergeygalin/phpMyLingvo
    Обратите внимание, что эта версия требует обработки дампов PtkDic скриптами для перегонки их в UTF-8 (есть в репозитории).
  • phpMyLingvo ЧАВО:
    http://sageshome.net/oss/phpMyLingvo-FAQ.php
  • Страница скачивания phpMyLingvo и словарей:
    http://sourceforge.net/project/showfiles.php?group_id=78379
  • Остальные ссылки благополучно издохли.

Авторы, благодарности, контактная информация

Автор phpMyLingvo: Сергей А. Галин.
Благодарности:
Александру Горячеву за конвертер из DSL в PTK, патч для перехода на PEAR::DB, и за многое другое.
Александру Шишко <jaesar at users dot sourceforge dot net> за программу JaLingo и моральную поддержку.
Алексею Семенову <swaj at softhome dot net> за GtkDic и коллекцию словарей.
Александру Куприну <ru_classic at mail dot ru> за моральную поддержку.
Более полный список благодарностей - в Readme в дистрибутиве программы.
Go to Start page
© Sergey A. Galin, 1998-2016http://sageshome.net/oss/phpMyLingvo.php
Time: 0.011s · phpMyLingvo: 68539/76446 Total: 1970400/2250344