13 мар. 2013 г.

/bin/sh: no: command not found

Ошибка

$ ./configure
...
/bin/sh: line 1: no: command not found


Возможное решение

# apt-get install gettext

10 мар. 2013 г.

Пьесы Шекспира в две колонки с переводом

Если Вы хотите почитать Шекспира на английском, но ничего не понимаете, можно отформатировать оригинал и перевод на русский в две колонки: слева реплика на английском, справа ее перевод.

Удобные для парсинга английские варианты есть на shakespeare.mit.edu. В HTML текст уже разделен на акты, сцены и пронумерованные реплики. Русские переводы есть на lib.ru/SHAKESPEARE. HTML для парсинга неудобен, но plain text можно разбить на реплики регулярными выражениями.

Здесь находятся 3 скрипта, которые делают следующее:
  1. mit2xml: преобразует пьесу с mit.edu в XML.
  2. libru2xml: преобразует пьесу с lib.ru в XML.
  3. concat-en-ru: склеивает два XML по репликам и генерирует один HTML-файл.
Скрипты проверялись только на пьесе "Буря" (The Tempest): enru (и на других её переводах с lib.ru). URL исходных HTML  прописываются в Makefile. Собрать выходной HTML с двумя колонками для "Бури" можно так:

$ make tempest

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

$ sudo make cpan

Результат можно посмотреть здесь.

Для форматирования других пьес потребуется создать файл с переводом имен героев, по аналогии с tempest_names.cfg. Он используется для нахождения соответствия между английскими и русскими репликами, которые не всегда идут один-в-один.

Список имен героев можно получить так:

$ perl mit2xml ... | grep '<actor>'
$ perl libru2xml ... | grep '<actor>'

Кроме этого, возможно, придется поколдовать в регулярными выражениями в libru2xml, они могут не подходить для других пьес.