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


 

четверг, 21 ноября 2013 г.

Проверка орфографии на сайтах основанных на mediawiki

Mediawiki популярная CMS для разработки сайтов в стиле wikipedia, позволяющая
организовать отлично структурированный справочный(обычно) сайт, которая не только позволяет легко получить необходимую информацию с помощью простой навигации, но и дает возможность пользователям сайта вносить правки в статьи.

Множество проектов использует эту CMS или схожую с ней.

Такими проектами являются: 

  • Справочный сайт ОС OpenSuse - http://ru.opensuse.org/ (MediaWiki 1.19.3)
  • Популярный сайт игровой тематики sc2tv - http://sc2tv.ru/wiki (MediaWiki 1.19.2)
  • Публичная неофициальная документация хостинга 1gb.ru - http://1gb.ru/wiki (MediaWiki)
  • Школьная база знаний - http://wiki.nntc.nnov.ru (MediaWiki 1.19.2)

Ряд проектов используют схожие CMS, например Справочный сайт ОС Ubuntu - http://help.ubuntu.ru/wiki/ (DokuWiki)


Приведенный далее пример проверки орфографии рассчитан на MediaWiki, но возможно подойдет и для DocuWiki (Ubuntu).

Как видно из приведенного перечня сайтов, данная CMS успешно применяется для различных сфер деятельности.

В тоже время на ряде сайтов присутствуют ошибки:
  • ru.opensuse.org/openSUSE:Общение - см. "новичек"
  • help.ubuntu.ru/wiki/virtualbox - см. "диаллог". Слово "cистемы" начинается с латинской буквы, в "сd-rom" - русская "с", что делает невозможным нахождение таких слов поиском, что может быть серьезной проблемой поиска термина в wiki, если в нем будет такая опечатка.
  • sc2tv.ru/wiki/index.php?title=Заглавная_страница - см. "комаду", "едиственным".

Перечисленные ошибки обнаружены 21-11-2013 и, соответственно, их можно найти в истории, если они будут исправлены. Я на это рассчитываю, так как обращусь к данным порталам с предложением проверки их wiki-проектов, что позволит улучшить ситуацию с орфографией на порталах и заодно проверить возможности моей программы. При разрешении публикации таких отчетов по wiki - выложу их в обновлениях к данному посту.


Кроме орфографических ошибок, проверяются ошибки оформления (пробел перед запятой/точкой/вопросом и пр.).

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

Наиболее правильное решение для данной CMS проверять не готовую html-страницу, а исходный текст статьи с wiki разметкой.
Получить данный текст можно перейдя по ссылке редактирования страниц.
Для автоматизации данного процесса необходимо было бы построить карту сайта wiki и скачать последовательно все тексты и далее проверять их.

В поисках более простого и эффективного решения обратился к механизму формирования страниц Wiki, который построен на формировании страниц на основе БД.

Описание команд создания архива meidawiki:


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

Фрагмент начала строк файла:

Фрагмент строки с найденной ошибкой:

Нашлось простое решение. MediWiki позволяет создавать дампы БД в виде XML. Более того, позволяет создавать дампы только по последней версии статей.

Необходимо выполнить следующую команду:

php5-libxml mysite.ru/www/w/maintenance/dumpBackup.php --current > backup/mysite_ru_xml_db.xml

Примечания: 
  • обратите внимание на --current - для получения только последних версий страниц, без истории.
  • проверяемый сайт расположен на хостинге Zenon и имеет свои нюансы, поэтому вызов php, вероятно, надо скорректировать;
  • название сайта изменено.

Итак, получили текст схожий с оформлением DocBook, в котором явно указаны заголовки и тексты статей (см. рис.).


В программе "Локализатор исходного кода" можно специальными наборами регулярных выражений указать, что в файле к каким категориям (текст, контекст, регион, ремарки, пр.)
относится, что я и сделал.

Пример фрагмент файла настроек в программе локализации для mediaWiki:

textelement="REGION ^\s*\<title\>(.*)\<\/title\>\s*$ ^\s*\<title\> <\/title\>\s*$ "
textelement="REGION ^\s*\<[Tt][Ii][Tt][Ll][Ee]\>(.*)\<\/[Tt][Ii][Tt][Ll][Ee]\> ^\s*\<[Tt][Ii][Tt][Ll][Ee]\> \<\/[Tt][Ii][Tt][Ll][Ee]\>$ "
textelement="TEXT ^[^А-Яа-я]*[А-Яа-я].*$ ^() ()$"
textelement="IGNORE ^.*$ ^() ()$"

Описание:

  • textelement - указание параметра настроек текстового элемента в тексте;
  • первый параметр - название элемента;
  • второй параметр - регулярное выражение, описывающее элемент;
  • третий параметр - рег.выражения, не относящееся к началу тексту;
  • четвертый параметр - рег.выражения, не относящееся к концу текста.

Примечание: рег.выражения сделаны не через группы ( (?<name1>.)(?<name2>.) ) для удобства и простоты, особенно, если обратить внимание на более сложные конструкции в файле настроек.

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

На данный момент программа работает только с текстом (добавление XML пока в планах) и вероятны ошибки на произвольно набранном тексте, но в данном случае текст формируется автоматически и ничего сложного в нем нет.

В качестве контекста для фраз указал строки, содержащие открывающий и закрывающий теги <title>, что дало возможность указывать для фрагментов с ошибками их отношение к конкретной статье.

В целом отчет совпадает с уже представленными ранее отчетами по OpenSuese, Ubuntu и пр.

Как видно из изображений, указаны ошибочные слова и название статьи, в которой они присутствуют (см. рис.).


Проверяются даже страницы, относящиеся к файлам статей: шаблоны, описание файлов и пр.

В отчете присутствует раздел, в котором для каждого ошибочного слова указаны вики-статьи, в которых оно присутствует (см.рис.).


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

Примечание:
Судя по цитате из Manual:Backing up a wiki/ru "В XML дамп входит содержимое wiki-страниц и всех их ревизий (информация о логинаx пользователей, журналы, метаданные изображений в xml дампе не хранятся)." в xml не содержится информация о паролях и пр., потому можно их передавать для исследования.

Подробней подобный отчет можно посмотреть в посте Результаты проверки орфографии исходного кода Ubuntu 13.04

Данный функционал работы с mediawiki будет доступен с версии 0.10.

Комментариев нет:

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