diff --git a/opds_catalog/locale/ru/LC_MESSAGES/django.mo b/opds_catalog/locale/ru/LC_MESSAGES/django.mo
index 90d40bf9f82ebe36a6548f65bc4384659f1b4051..91ec1887b138efa55f6ba2d98c3f453d4a934245 100644
Binary files a/opds_catalog/locale/ru/LC_MESSAGES/django.mo and b/opds_catalog/locale/ru/LC_MESSAGES/django.mo differ
diff --git a/opds_catalog/locale/ru/LC_MESSAGES/django.po b/opds_catalog/locale/ru/LC_MESSAGES/django.po
index 37037acc7f7be76d3650648f8b776ece7bc0a1c0..6b6d6c4be1640e2f13654342a77b4ddece178985 100644
--- a/opds_catalog/locale/ru/LC_MESSAGES/django.po
+++ b/opds_catalog/locale/ru/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-21 17:25+0300\n"
+"POT-Creation-Date: 2017-02-28 21:12+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -85,22 +85,22 @@ msgstr "Книжная полка (%(username)s)"
 msgid "%(username)s books readed: %(bookshelf)s."
 msgstr "Книг прочитано (%(username)s): %(bookshelf)s."
 
-#: .\opds_catalog\feeds.py:307 .\opds_catalog\feeds.py:551
+#: .\opds_catalog\feeds.py:308 .\opds_catalog\feeds.py:554
 #, python-format
 msgid "<b>Authors: </b>%(authors)s<br/>"
 msgstr "<b>Авторов: </b>%(authors)s<br/>"
 
-#: .\opds_catalog\feeds.py:308 .\opds_catalog\feeds.py:552
+#: .\opds_catalog\feeds.py:309 .\opds_catalog\feeds.py:555
 #, python-format
 msgid "<b>Genres: </b>%(genres)s<br/>"
 msgstr "<b>Жанров: </b>%(genres)s<br/>"
 
-#: .\opds_catalog\feeds.py:309 .\opds_catalog\feeds.py:553
+#: .\opds_catalog\feeds.py:310 .\opds_catalog\feeds.py:556
 #, python-format
 msgid "<b>Series: </b>%(series)s<br/>"
 msgstr "<b>Серий: </b>%(series)s<br/>"
 
-#: .\opds_catalog\feeds.py:310 .\opds_catalog\feeds.py:554
+#: .\opds_catalog\feeds.py:311 .\opds_catalog\feeds.py:557
 #, python-format
 msgid ""
 "<b>File: </b>%(filename)s<br/><b>File size: </b>%(filesize)s<br/><b>Changes "
@@ -109,158 +109,159 @@ msgstr ""
 "<b>Файл: </b>%(filename)s<br/><b>Размер файла: </b>%(filesize)s<br/><b>Дата "
 "изменения: </b>%(docdate)s<br/>"
 
-#: .\opds_catalog\feeds.py:343 .\opds_catalog\tests\test_feeds.py:60
+#: .\opds_catalog\feeds.py:344 .\opds_catalog\tests\test_feeds.py:60
 msgid "Search by titles"
 msgstr "Поиск по наименованиям"
 
-#: .\opds_catalog\feeds.py:343
+#: .\opds_catalog\feeds.py:344
 msgid "Search books by title"
 msgstr "Поиск книг по наименованию"
 
-#: .\opds_catalog\feeds.py:344
+#: .\opds_catalog\feeds.py:345
 msgid "Search by authors"
 msgstr "Поиск авторов"
 
-#: .\opds_catalog\feeds.py:344
+#: .\opds_catalog\feeds.py:345
 msgid "Search authors by name"
 msgstr "Поиск авторов по имени"
 
-#: .\opds_catalog\feeds.py:345
+#: .\opds_catalog\feeds.py:346
 msgid "Search series"
 msgstr "Поиск серий"
 
-#: .\opds_catalog\feeds.py:377
+#: .\opds_catalog\feeds.py:378
 msgid "Books found"
 msgstr "Найдены книги"
 
-#: .\opds_catalog\feeds.py:377
+#: .\opds_catalog\feeds.py:378
 msgid "doubles hide"
 msgstr "дубликаты скрыты"
 
-#: .\opds_catalog\feeds.py:377
+#: .\opds_catalog\feeds.py:378
 msgid "doubles show"
 msgstr "дубликаты показаны"
 
-#: .\opds_catalog\feeds.py:555
+#: .\opds_catalog\feeds.py:558
 #, python-format
 msgid "<b>Doubles count: </b>%(doubles)s<br/>"
 msgstr "<b>Число дубликатов: </b>%(doubles)s<br/>"
 
-#: .\opds_catalog\feeds.py:569
+#: .\opds_catalog\feeds.py:572
 msgid "Series by authors select"
 msgstr "Выбор серий у автора"
 
-#: .\opds_catalog\feeds.py:590
+#: .\opds_catalog\feeds.py:593
 msgid "Books by series"
 msgstr "Книги по сериям"
 
-#: .\opds_catalog\feeds.py:590
+#: .\opds_catalog\feeds.py:593
 msgid "Books by author and series"
 msgstr "Книги по авторам и сериям"
 
-#: .\opds_catalog\feeds.py:591
+#: .\opds_catalog\feeds.py:594
 msgid "Books outside series"
 msgstr "Книги вне серий"
 
-#: .\opds_catalog\feeds.py:591
+#: .\opds_catalog\feeds.py:594
 msgid "Books by author outside series"
 msgstr "Книги автора вне серий"
 
-#: .\opds_catalog\feeds.py:592
+#: .\opds_catalog\feeds.py:595
 msgid "Books by alphabet"
 msgstr "Книги по алфавиту"
 
-#: .\opds_catalog\feeds.py:592
+#: .\opds_catalog\feeds.py:595
 msgid "Books by author alphabetical order"
 msgstr "Книги автора в алфавитном порядке"
 
-#: .\opds_catalog\feeds.py:623
+#: .\opds_catalog\feeds.py:626
 msgid "Authors found"
 msgstr "Найдены авторы"
 
-#: .\opds_catalog\feeds.py:676 .\opds_catalog\feeds.py:754
+#: .\opds_catalog\feeds.py:679 .\opds_catalog\feeds.py:757
 #, python-format
 msgid "Books count: %s"
 msgstr "Всего: %s книг"
 
-#: .\opds_catalog\feeds.py:692
+#: .\opds_catalog\feeds.py:695
 msgid "Series found"
 msgstr "Найдены серии"
 
-#: .\opds_catalog\feeds.py:778
+#: .\opds_catalog\feeds.py:781
 msgid "Select language"
 msgstr "Выбор алфавита"
 
-#: .\opds_catalog\feeds.py:790 .\opds_catalog\tests\test_feeds.py:106
+#: .\opds_catalog\feeds.py:793 .\opds_catalog\tests\test_feeds.py:106
 #: .\opds_catalog\tests\test_feeds.py:119
 #: .\opds_catalog\tests\test_feeds.py:130
 msgid "Cyrillic"
 msgstr "Кириллица (РУС)"
 
-#: .\opds_catalog\feeds.py:791 .\opds_catalog\tests\test_feeds.py:107
+#: .\opds_catalog\feeds.py:794 .\opds_catalog\tests\test_feeds.py:107
 msgid "Latin"
 msgstr "Латинница (LAT)"
 
-#: .\opds_catalog\feeds.py:792 .\opds_catalog\tests\test_feeds.py:108
+#: .\opds_catalog\feeds.py:795 .\opds_catalog\tests\test_feeds.py:108
 msgid "Digits"
 msgstr "Цифры (0..9)"
 
-#: .\opds_catalog\feeds.py:793 .\opds_catalog\tests\test_feeds.py:109
+#: .\opds_catalog\feeds.py:796 .\opds_catalog\tests\test_feeds.py:109
 msgid "Other symbols"
 msgstr "Другие символы"
 
-#: .\opds_catalog\feeds.py:794 .\opds_catalog\tests\test_feeds.py:110
+#: .\opds_catalog\feeds.py:797 .\opds_catalog\tests\test_feeds.py:110
 msgid "Show all"
 msgstr "Показать все"
 
-#: .\opds_catalog\feeds.py:824
+#: .\opds_catalog\feeds.py:827
 msgid "Select books by substring"
 msgstr "Поиск книг по подстроке"
 
-#: .\opds_catalog\feeds.py:861 .\opds_catalog\feeds.py:1027
+#: .\opds_catalog\feeds.py:864 .\opds_catalog\feeds.py:1030
 #, python-format
 msgid "Found: %s books"
 msgstr "Найдено %s книг"
 
-#: .\opds_catalog\feeds.py:882
+#: .\opds_catalog\feeds.py:885
 msgid "Select authors by substring"
 msgstr "Поиск авторов по подстроке"
 
-#: .\opds_catalog\feeds.py:919
+#: .\opds_catalog\feeds.py:922
 #, python-format
 msgid "Found: %s authors"
 msgstr "Найдено %s авторов"
 
-#: .\opds_catalog\feeds.py:940
+#: .\opds_catalog\feeds.py:943
 msgid "Select series by substring"
 msgstr "Поиск серий по подстроке"
 
-#: .\opds_catalog\feeds.py:977
+#: .\opds_catalog\feeds.py:980
 #, python-format
 msgid "Found: %s series"
 msgstr "Найдено %s серий"
 
-#: .\opds_catalog\feeds.py:998
+#: .\opds_catalog\feeds.py:1001
 #, python-format
 msgid "Select genres (%s)"
 msgstr "Выбор жанра (%s)"
 
-#: .\opds_catalog\feeds.py:998
+#: .\opds_catalog\feeds.py:1001
 msgid "section"
 msgstr "секция"
 
-#: .\opds_catalog\feeds.py:998
+#: .\opds_catalog\feeds.py:1001
 msgid "subsection"
 msgstr "подсекция"
 
+#: .\opds_catalog\sopdscan.py:232
+msgid "Unknown author"
+msgstr "Неизвестный автор"
+
 #: .\opds_catalog\tests\test_feeds.py:78
 #, python-format
 msgid "All books by %(full_name)s"
 msgstr "Все книги автора %(full_name)s"
 
-#~ msgid "Unknown genre"
-#~ msgstr "Неизвестный жанр"
-
 #~ msgid "Book name:"
 #~ msgstr "Название:"
 
diff --git a/opds_catalog/sopdscan.py b/opds_catalog/sopdscan.py
index 63fa78cb51c6525bf56706334546178824328e03..2b54f78a3f495f938a05fc1211564f5d9c1f3e57 100644
--- a/opds_catalog/sopdscan.py
+++ b/opds_catalog/sopdscan.py
@@ -10,6 +10,7 @@ from book_tools.format import create_bookfile
 from book_tools.format.util import strip_symbols
 
 from django.db import transaction
+from django.utils.translation import ugettext as _
 
 from opds_catalog import fb2parse, opdsdb
 from opds_catalog import inpx_parser
@@ -228,7 +229,7 @@ class opdsScanner:
                     self.logger.debug("Book "+rel_path+"/"+name+" Added ok.")
 
                     for a in book_data.authors:
-                        author_name = a.get('name','Unknown author').strip(strip_symbols)
+                        author_name = a.get('name',_('Unknown author')).strip(strip_symbols)
                         # Если в имени автора нет запятой, то фамилию переносим из конца в начало
                         if author_name.find(',')<0:
                             author_names = author_name.split()
diff --git a/sopds/locale/ru/LC_MESSAGES/django.mo b/sopds/locale/ru/LC_MESSAGES/django.mo
index 739eb58c21cf3521e20f6a9024ef17586e111365..07f4d7c6e50e8782babdb652a311b1bb1dcc008e 100644
Binary files a/sopds/locale/ru/LC_MESSAGES/django.mo and b/sopds/locale/ru/LC_MESSAGES/django.mo differ
diff --git a/sopds/locale/ru/LC_MESSAGES/django.po b/sopds/locale/ru/LC_MESSAGES/django.po
index 8ef5597871a4d1534f00e3fb6b8304e8d028ba9b..e0a5b3c10940f6511af6a61aed6b516990358fec 100644
--- a/sopds/locale/ru/LC_MESSAGES/django.po
+++ b/sopds/locale/ru/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-21 17:25+0300\n"
+"POT-Creation-Date: 2017-02-28 21:12+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,67 +19,70 @@ msgstr ""
 "10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%"
 "100>=11 && n%100<=14)? 2 : 3);\n"
 
-#: .\sopds\settings.py:164
+#: .\sopds\settings.py:165
 msgid "Select language"
 msgstr "Выбор языка"
 
-#: .\sopds\settings.py:165
+#: .\sopds\settings.py:166
 msgid "Absolute path to books collection directory"
 msgstr "Абсолютный путь к каталогу с файлами книг"
 
-#: .\sopds\settings.py:166
+#: .\sopds\settings.py:167
 msgid "List of managed book files extensions"
 msgstr "Список расширений файлов, для включения в коллекцию книг"
 
-#: .\sopds\settings.py:167
+#: .\sopds\settings.py:168
 msgid "Turn once scanning directly"
 msgstr "Запустить внеочередное однократное сканирование коллекции книг"
 
-#: .\sopds\settings.py:169
+#: .\sopds\settings.py:170
 msgid "Enable authentication"
 msgstr "Включить аутентификацию"
 
-#: .\sopds\settings.py:170
+#: .\sopds\settings.py:171
 msgid "Enable alphabet submenu"
 msgstr "Включить субменю выбора алфавита"
 
-#: .\sopds\settings.py:171
+#: .\sopds\settings.py:172
 msgid "This flag hides found doublicates"
 msgstr "Флаг прячет найденные дубликаты книг"
 
-#: .\sopds\settings.py:172
+#: .\sopds\settings.py:173
 msgid "This flag activate showing cover of books"
 msgstr "Флаг активирует показ обложек книг"
 
-#: .\sopds\settings.py:173
+#: .\sopds\settings.py:174
 msgid "Max subitems count in alphabet menuitem"
 msgstr "Максимальное число подэлементов в элементах алфавитных меню"
 
-#: .\sopds\settings.py:174
+#: .\sopds\settings.py:175
 msgid "Max items on page"
 msgstr "Максимальное число элементов на странице"
 
-#: .\sopds\settings.py:175
+#: .\sopds\settings.py:176
 msgid "Create downloaded filename from book title"
 msgstr "Имя загружаемого файла формировать из названия книги"
 
-#: .\sopds\settings.py:176
+#: .\sopds\settings.py:177
 msgid "Path to image file showing for book without embedded cover"
 msgstr "Путь к изображению, для показа в качестве обложки для книг без обложек"
 
-#: .\sopds\settings.py:179
-msgid "This flag activate extraction metadata from fb2 files"
-msgstr "Флаг активирует извлеченеи метаданных из fb2-файлов"
-
 #: .\sopds\settings.py:180
+msgid "This flag activate SAX Parser for FB2 instead of lxml.xpath"
+msgstr ""
+"Флаг активирует стандартный FB2sax парсер (быстрее, парсит даже невалидные "
+"fb2). При отключенной опции будет использован FB2xpath парсер (немного "
+"медленне, требователен к валидности fb2, появился в версии 0.42)"
+
+#: .\sopds\settings.py:181
 msgid "This flag activate zip files scanning"
 msgstr "Флаг разрешает сканированеи содержимого ZIP файлов"
 
-#: .\sopds\settings.py:181
+#: .\sopds\settings.py:182
 msgid "Set codepage for filenames inside zipfile"
 msgstr "Codepage для имен файлов внутри ZIP"
 
-#: .\sopds\settings.py:182
+#: .\sopds\settings.py:183
 msgid ""
 "Enables read metadata from inpx-file (and stop scanning deeper from ipx-file "
 "place)"
@@ -87,67 +90,70 @@ msgstr ""
 "Считываем метаданные книг з INPX-файлов (при этом не сканируем файлы и "
 "каталоги, расположенные на уровне или ниже найденого INPX)"
 
-#: .\sopds\settings.py:183
+#: .\sopds\settings.py:184
 msgid "Skip scanning INPX with unchanged size after previous scan"
 msgstr ""
 "Не сканируем INPX, если его размер не изменился с предидущего сканирования"
 
-#: .\sopds\settings.py:184
+#: .\sopds\settings.py:185
 msgid "Test avialability zip files listed in INPX before add in collection"
 msgstr ""
 "Проверяем наличие zip файлов, перечисленных в INPX перед добавлением их "
 "содержимого в коллекцию"
 
-#: .\sopds\settings.py:185
+#: .\sopds\settings.py:186
 msgid "Test avialability book files listed in INPX before add in collection"
 msgstr ""
 "Тестируем наличие книг, перечисленных в INPX перед добавлением их "
 "содержимого в коллекцию"
 
-#: .\sopds\settings.py:186
+#: .\sopds\settings.py:187
 msgid "Logical deleting unavialable files"
 msgstr "Логическое удаление отсутствующих файлов"
 
-#: .\sopds\settings.py:188
+#: .\sopds\settings.py:189
 msgid "sheduled minutes for sopds_scanner (cron syntax)"
 msgstr "минуты для планировщика sopds_Scanner (как в cron)"
 
-#: .\sopds\settings.py:189
+#: .\sopds\settings.py:190
 msgid "sheduled hours for sopds_scanner (cron syntax)"
 msgstr "часы для планировщика sopds_Scanner (как в cron)"
 
-#: .\sopds\settings.py:190
+#: .\sopds\settings.py:191
 msgid "sheduled day for sopds_scanner (cron syntax)"
 msgstr "дни для планировщика sopds_Scanner (как в cron)"
 
-#: .\sopds\settings.py:191
+#: .\sopds\settings.py:192
 msgid "sheduled day of weeks for sopds_scanner (cron syntax)"
 msgstr "дни недели для планировщика sopds_Scanner (как в cron)"
 
-#: .\sopds\settings.py:193
+#: .\sopds\settings.py:194
 msgid "Path to FB2-EPUB converter program"
 msgstr "Путь к конвертеру FB2-EPUB"
 
-#: .\sopds\settings.py:194
+#: .\sopds\settings.py:195
 msgid "Path to FB2-MOBI converter program"
 msgstr "Путь к конвертеру FB2-MOBI"
 
-#: .\sopds\settings.py:195
+#: .\sopds\settings.py:196
 msgid "Path to temporary files directory"
 msgstr "Путь к временному каталогу"
 
-#: .\sopds\settings.py:197
+#: .\sopds\settings.py:198
 msgid "Path to logfile for sopds_server process"
 msgstr "Путь к логфайлу для процесса sopds_server"
 
-#: .\sopds\settings.py:198
+#: .\sopds\settings.py:199
 msgid "Path to logfile for sopds_scanner process"
 msgstr "Путь к логфайлу для процесса sopds_scanner"
 
-#: .\sopds\settings.py:199
+#: .\sopds\settings.py:200
 msgid "Path to pidfile for sopds_server process"
 msgstr "Путь к pid-файлу для процесса sopds_server"
 
-#: .\sopds\settings.py:200
+#: .\sopds\settings.py:201
 msgid "Path to pidfile for sopds_scanner process"
 msgstr "Путь к pid-файлу для процесса sopds_scanner"
+
+#~ msgid "This flag activate extraction metadata from fb2 files"
+#~ msgstr "Флаг активирует извлеченеи метаданных из fb2-файлов"
diff --git a/sopds_web_backend/locale/ru/LC_MESSAGES/django.mo b/sopds_web_backend/locale/ru/LC_MESSAGES/django.mo
index 0aafbec43687b12c054214c6083b9886148deb2f..9667bc3f6ad7dd8debef2a3890b16b6b8bde82f0 100644
Binary files a/sopds_web_backend/locale/ru/LC_MESSAGES/django.mo and b/sopds_web_backend/locale/ru/LC_MESSAGES/django.mo differ
diff --git a/sopds_web_backend/locale/ru/LC_MESSAGES/django.po b/sopds_web_backend/locale/ru/LC_MESSAGES/django.po
index 2e4589716d166e903bd70d8493d58403a9393eb0..70d55111a720377e6273f14e1db6c2f1859c819b 100644
--- a/sopds_web_backend/locale/ru/LC_MESSAGES/django.po
+++ b/sopds_web_backend/locale/ru/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-01-25 21:28+0300\n"
+"POT-Creation-Date: 2017-02-28 21:12+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"