Merge remote-tracking branch '625/625'
Update russian translation
This commit is contained in:
commit
36d26f2089
Binary file not shown.
|
@ -14,7 +14,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Calibre-Web\n"
|
"Project-Id-Version: Calibre-Web\n"
|
||||||
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
"Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n"
|
||||||
"POT-Creation-Date: 2018-09-09 17:57+0200\n"
|
"POT-Creation-Date: 2018-09-14 20:34+0200\n"
|
||||||
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
|
"PO-Revision-Date: 2017-04-30 00:47+0300\n"
|
||||||
"Last-Translator: Pavel Korovin <p@tristero.se>\n"
|
"Last-Translator: Pavel Korovin <p@tristero.se>\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
|
@ -276,7 +276,7 @@ msgstr "Непрочитанные"
|
||||||
msgid "Read a Book"
|
msgid "Read a Book"
|
||||||
msgstr "Читать книгу"
|
msgstr "Читать книгу"
|
||||||
|
|
||||||
#: cps/web.py:2141 cps/web.py:3019
|
#: cps/web.py:2141 cps/web.py:3024
|
||||||
msgid "Please fill out all fields!"
|
msgid "Please fill out all fields!"
|
||||||
msgstr "Пожалуйста, заполните все поля!"
|
msgstr "Пожалуйста, заполните все поля!"
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ msgstr "Пожалуйста, заполните все поля!"
|
||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr "зарегистрироваться"
|
msgstr "зарегистрироваться"
|
||||||
|
|
||||||
#: cps/web.py:2162 cps/web.py:3235
|
#: cps/web.py:2162 cps/web.py:3240
|
||||||
msgid "An unknown error occurred. Please try again later."
|
msgid "An unknown error occurred. Please try again later."
|
||||||
msgstr "Неизвестная ошибка. Попробуйте позже."
|
msgstr "Неизвестная ошибка. Попробуйте позже."
|
||||||
|
|
||||||
|
@ -340,7 +340,7 @@ msgstr ""
|
||||||
msgid "There was an error sending this book: %(res)s"
|
msgid "There was an error sending this book: %(res)s"
|
||||||
msgstr "Ошибка при отправке книги: %(res)s"
|
msgstr "Ошибка при отправке книги: %(res)s"
|
||||||
|
|
||||||
#: cps/web.py:2308 cps/web.py:3073
|
#: cps/web.py:2308 cps/web.py:3078
|
||||||
msgid "Please configure your kindle e-mail address first..."
|
msgid "Please configure your kindle e-mail address first..."
|
||||||
msgstr "Пожалуйста, сначала настройте e-mail на вашем kindle"
|
msgstr "Пожалуйста, сначала настройте e-mail на вашем kindle"
|
||||||
|
|
||||||
|
@ -419,266 +419,266 @@ msgstr "Изменить книжную полку"
|
||||||
msgid "successfully deleted shelf %(name)s"
|
msgid "successfully deleted shelf %(name)s"
|
||||||
msgstr "Книжная полка %(name)s удалена"
|
msgstr "Книжная полка %(name)s удалена"
|
||||||
|
|
||||||
#: cps/web.py:2551
|
#: cps/web.py:2556
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Shelf: '%(name)s'"
|
msgid "Shelf: '%(name)s'"
|
||||||
msgstr "Книжная полка: '%(name)s'"
|
msgstr "Книжная полка: '%(name)s'"
|
||||||
|
|
||||||
#: cps/web.py:2554
|
#: cps/web.py:2559
|
||||||
msgid "Error opening shelf. Shelf does not exist or is not accessible"
|
msgid "Error opening shelf. Shelf does not exist or is not accessible"
|
||||||
msgstr "Ошибка открытия книжной полки. Полка не существует или недоступна"
|
msgstr "Ошибка открытия книжной полки. Полка не существует или недоступна"
|
||||||
|
|
||||||
#: cps/web.py:2585
|
#: cps/web.py:2590
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Change order of Shelf: '%(name)s'"
|
msgid "Change order of Shelf: '%(name)s'"
|
||||||
msgstr "Изменить расположение книжной полки '%(name)s'"
|
msgstr "Изменить расположение книжной полки '%(name)s'"
|
||||||
|
|
||||||
#: cps/web.py:2614 cps/web.py:3025
|
#: cps/web.py:2619 cps/web.py:3030
|
||||||
msgid "E-mail is not from valid domain"
|
msgid "E-mail is not from valid domain"
|
||||||
msgstr "E-mail не из существующей доменной зоны"
|
msgstr "E-mail не из существующей доменной зоны"
|
||||||
|
|
||||||
#: cps/web.py:2616 cps/web.py:2657 cps/web.py:2660
|
#: cps/web.py:2621 cps/web.py:2662 cps/web.py:2665
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s's profile"
|
msgid "%(name)s's profile"
|
||||||
msgstr "Профиль %(name)s"
|
msgstr "Профиль %(name)s"
|
||||||
|
|
||||||
#: cps/web.py:2655
|
#: cps/web.py:2660
|
||||||
msgid "Found an existing account for this e-mail address."
|
msgid "Found an existing account for this e-mail address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2658
|
#: cps/web.py:2663
|
||||||
msgid "Profile updated"
|
msgid "Profile updated"
|
||||||
msgstr "Профиль обновлён"
|
msgstr "Профиль обновлён"
|
||||||
|
|
||||||
#: cps/web.py:2670
|
#: cps/web.py:2675
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Неизвестно"
|
msgstr "Неизвестно"
|
||||||
|
|
||||||
#: cps/web.py:2684
|
#: cps/web.py:2689
|
||||||
msgid "Admin page"
|
msgid "Admin page"
|
||||||
msgstr "Администрирование"
|
msgstr "Администрирование"
|
||||||
|
|
||||||
#: cps/web.py:2762 cps/web.py:2935
|
#: cps/web.py:2767 cps/web.py:2940
|
||||||
msgid "Calibre-Web configuration updated"
|
msgid "Calibre-Web configuration updated"
|
||||||
msgstr "Конфигурация Calibre-Web обновлена"
|
msgstr "Конфигурация Calibre-Web обновлена"
|
||||||
|
|
||||||
#: cps/templates/admin.html:91 cps/web.py:2775
|
#: cps/templates/admin.html:91 cps/web.py:2780
|
||||||
msgid "UI Configuration"
|
msgid "UI Configuration"
|
||||||
msgstr "Настройка интерфейса"
|
msgstr "Настройка интерфейса"
|
||||||
|
|
||||||
#: cps/web.py:2793
|
#: cps/web.py:2798
|
||||||
msgid "Import of optional Google Drive requirements missing"
|
msgid "Import of optional Google Drive requirements missing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2796
|
#: cps/web.py:2801
|
||||||
msgid "client_secrets.json is missing or not readable"
|
msgid "client_secrets.json is missing or not readable"
|
||||||
msgstr "client_secrets.json отсутствует или его невозможно прочесть"
|
msgstr "client_secrets.json отсутствует или его невозможно прочесть"
|
||||||
|
|
||||||
#: cps/web.py:2801 cps/web.py:2828
|
#: cps/web.py:2806 cps/web.py:2833
|
||||||
msgid "client_secrets.json is not configured for web application"
|
msgid "client_secrets.json is not configured for web application"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/admin.html:90 cps/web.py:2831 cps/web.py:2857 cps/web.py:2869
|
#: cps/templates/admin.html:90 cps/web.py:2836 cps/web.py:2862 cps/web.py:2874
|
||||||
#: cps/web.py:2911 cps/web.py:2926 cps/web.py:2943 cps/web.py:2950
|
#: cps/web.py:2916 cps/web.py:2931 cps/web.py:2948 cps/web.py:2955
|
||||||
#: cps/web.py:2967
|
#: cps/web.py:2972
|
||||||
msgid "Basic Configuration"
|
msgid "Basic Configuration"
|
||||||
msgstr "Настройки сервера"
|
msgstr "Настройки сервера"
|
||||||
|
|
||||||
#: cps/web.py:2854
|
#: cps/web.py:2859
|
||||||
msgid "Keyfile location is not valid, please enter correct path"
|
msgid "Keyfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2866
|
#: cps/web.py:2871
|
||||||
msgid "Certfile location is not valid, please enter correct path"
|
msgid "Certfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2908
|
#: cps/web.py:2913
|
||||||
msgid "Logfile location is not valid, please enter correct path"
|
msgid "Logfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2947
|
#: cps/web.py:2952
|
||||||
msgid "DB location is not valid, please enter correct path"
|
msgid "DB location is not valid, please enter correct path"
|
||||||
msgstr "Неверный путь к фалу БД, пожалуйста, укажите правильное расположение БД"
|
msgstr "Неверный путь к фалу БД, пожалуйста, укажите правильное расположение БД"
|
||||||
|
|
||||||
#: cps/templates/admin.html:31 cps/web.py:3021 cps/web.py:3027 cps/web.py:3043
|
#: cps/templates/admin.html:31 cps/web.py:3026 cps/web.py:3032 cps/web.py:3048
|
||||||
msgid "Add new user"
|
msgid "Add new user"
|
||||||
msgstr "Добавить пользователя"
|
msgstr "Добавить пользователя"
|
||||||
|
|
||||||
#: cps/web.py:3033
|
#: cps/web.py:3038
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(user)s' created"
|
msgid "User '%(user)s' created"
|
||||||
msgstr "Пользователь '%(user)s' добавлен"
|
msgstr "Пользователь '%(user)s' добавлен"
|
||||||
|
|
||||||
#: cps/web.py:3037
|
#: cps/web.py:3042
|
||||||
msgid "Found an existing account for this e-mail address or nickname."
|
msgid "Found an existing account for this e-mail address or nickname."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3061 cps/web.py:3075
|
#: cps/web.py:3066 cps/web.py:3080
|
||||||
msgid "E-mail server settings updated"
|
msgid "E-mail server settings updated"
|
||||||
msgstr "Настройки E-mail сервера обновлены"
|
msgstr "Настройки E-mail сервера обновлены"
|
||||||
|
|
||||||
#: cps/web.py:3068
|
#: cps/web.py:3073
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Test e-mail successfully send to %(kindlemail)s"
|
msgid "Test e-mail successfully send to %(kindlemail)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3071
|
#: cps/web.py:3076
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error sending the Test e-mail: %(res)s"
|
msgid "There was an error sending the Test e-mail: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3076
|
#: cps/web.py:3081
|
||||||
msgid "Edit e-mail server settings"
|
msgid "Edit e-mail server settings"
|
||||||
msgstr "Изменить настройки e-mail сервера"
|
msgstr "Изменить настройки e-mail сервера"
|
||||||
|
|
||||||
#: cps/web.py:3101
|
#: cps/web.py:3106
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(nick)s' deleted"
|
msgid "User '%(nick)s' deleted"
|
||||||
msgstr "Пользователь '%(nick)s' удалён"
|
msgstr "Пользователь '%(nick)s' удалён"
|
||||||
|
|
||||||
#: cps/web.py:3210
|
#: cps/web.py:3215
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(nick)s' updated"
|
msgid "User '%(nick)s' updated"
|
||||||
msgstr "Пользователь '%(nick)s' обновлён"
|
msgstr "Пользователь '%(nick)s' обновлён"
|
||||||
|
|
||||||
#: cps/web.py:3213
|
#: cps/web.py:3218
|
||||||
msgid "An unknown error occured."
|
msgid "An unknown error occured."
|
||||||
msgstr "Произошла неизвестная ошибка."
|
msgstr "Произошла неизвестная ошибка."
|
||||||
|
|
||||||
#: cps/web.py:3215
|
#: cps/web.py:3220
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Edit User %(nick)s"
|
msgid "Edit User %(nick)s"
|
||||||
msgstr "Изменить пользователя %(nick)s"
|
msgstr "Изменить пользователя %(nick)s"
|
||||||
|
|
||||||
#: cps/web.py:3232
|
#: cps/web.py:3237
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Password for user %(user)s reset"
|
msgid "Password for user %(user)s reset"
|
||||||
msgstr "Пароль для пользователя %(user)s сброшен"
|
msgstr "Пароль для пользователя %(user)s сброшен"
|
||||||
|
|
||||||
#: cps/web.py:3252
|
#: cps/web.py:3257
|
||||||
msgid "Error opening eBook. File does not exist or file is not accessible"
|
msgid "Error opening eBook. File does not exist or file is not accessible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3279 cps/web.py:3555 cps/web.py:3560 cps/web.py:3715
|
#: cps/web.py:3285 cps/web.py:3562 cps/web.py:3567 cps/web.py:3722
|
||||||
msgid "edit metadata"
|
msgid "edit metadata"
|
||||||
msgstr "изменить метаданные"
|
msgstr "изменить метаданные"
|
||||||
|
|
||||||
#: cps/web.py:3289 cps/web.py:3585
|
#: cps/web.py:3296 cps/web.py:3592
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
|
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
|
||||||
msgstr "Запрещена загрузка файлов с расширением '%(ext)s'"
|
msgstr "Запрещена загрузка файлов с расширением '%(ext)s'"
|
||||||
|
|
||||||
#: cps/web.py:3293 cps/web.py:3589
|
#: cps/web.py:3300 cps/web.py:3596
|
||||||
msgid "File to be uploaded must have an extension"
|
msgid "File to be uploaded must have an extension"
|
||||||
msgstr "Загружаемый файл должен иметь расширение"
|
msgstr "Загружаемый файл должен иметь расширение"
|
||||||
|
|
||||||
#: cps/web.py:3305 cps/web.py:3609
|
#: cps/web.py:3312 cps/web.py:3616
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to create path %(path)s (Permission denied)."
|
msgid "Failed to create path %(path)s (Permission denied)."
|
||||||
msgstr "Ошибка при создании пути %(path)s (доступ запрещён)"
|
msgstr "Ошибка при создании пути %(path)s (доступ запрещён)"
|
||||||
|
|
||||||
#: cps/web.py:3310
|
#: cps/web.py:3317
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store file %(file)s."
|
msgid "Failed to store file %(file)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3326
|
#: cps/web.py:3333
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File format %(ext)s added to %(book)s"
|
msgid "File format %(ext)s added to %(book)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3343
|
#: cps/web.py:3350
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to create path for cover %(path)s (Permission denied)."
|
msgid "Failed to create path for cover %(path)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3350
|
#: cps/web.py:3357
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store cover-file %(cover)s."
|
msgid "Failed to store cover-file %(cover)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3353
|
#: cps/web.py:3360
|
||||||
msgid "Cover-file is not a valid image file"
|
msgid "Cover-file is not a valid image file"
|
||||||
msgstr "Файл обложки не соответствует изображению"
|
msgstr "Файл обложки не соответствует изображению"
|
||||||
|
|
||||||
#: cps/web.py:3370 cps/web.py:3374
|
#: cps/web.py:3377 cps/web.py:3381
|
||||||
msgid "unknown"
|
msgid "unknown"
|
||||||
msgstr "неизвестно"
|
msgstr "неизвестно"
|
||||||
|
|
||||||
#: cps/web.py:3396
|
#: cps/web.py:3403
|
||||||
msgid "Cover is not a jpg file, can't save"
|
msgid "Cover is not a jpg file, can't save"
|
||||||
msgstr "Обложка не jpg файл, невозможно сохранить"
|
msgstr "Обложка не jpg файл, невозможно сохранить"
|
||||||
|
|
||||||
#: cps/web.py:3442
|
#: cps/web.py:3449
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(langname)s is not a valid language"
|
msgid "%(langname)s is not a valid language"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3564
|
#: cps/web.py:3571
|
||||||
msgid "Error editing book, please check logfile for details"
|
msgid "Error editing book, please check logfile for details"
|
||||||
msgstr "Ошибка редактирования книги. Пожалуйста, проверьте лог-файл для дополнительной информации"
|
msgstr "Ошибка редактирования книги. Пожалуйста, проверьте лог-файл для дополнительной информации"
|
||||||
|
|
||||||
#: cps/web.py:3614
|
#: cps/web.py:3621
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store file %(file)s (Permission denied)."
|
msgid "Failed to store file %(file)s (Permission denied)."
|
||||||
msgstr "Ошибка записи файоа %(file)s (доступ запрещён)"
|
msgstr "Ошибка записи файоа %(file)s (доступ запрещён)"
|
||||||
|
|
||||||
#: cps/web.py:3619
|
#: cps/web.py:3626
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to delete file %(file)s (Permission denied)."
|
msgid "Failed to delete file %(file)s (Permission denied)."
|
||||||
msgstr "Ошибка удаления файла %(file)s (доступ запрещён)"
|
msgstr "Ошибка удаления файла %(file)s (доступ запрещён)"
|
||||||
|
|
||||||
#: cps/web.py:3701
|
#: cps/web.py:3708
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File %(file)s uploaded"
|
msgid "File %(file)s uploaded"
|
||||||
msgstr "Файл %(file)s загружен"
|
msgstr "Файл %(file)s загружен"
|
||||||
|
|
||||||
#: cps/web.py:3731
|
#: cps/web.py:3738
|
||||||
msgid "Source or destination format for conversion missing"
|
msgid "Source or destination format for conversion missing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3741
|
#: cps/web.py:3748
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book successfully queued for converting to %(book_format)s"
|
msgid "Book successfully queued for converting to %(book_format)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3745
|
#: cps/web.py:3752
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error converting this book: %(res)s"
|
msgid "There was an error converting this book: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:215 cps/worker.py:387
|
#: cps/worker.py:215 cps/worker.py:398
|
||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr "Начало"
|
msgstr "Начало"
|
||||||
|
|
||||||
#: cps/worker.py:237
|
#: cps/worker.py:251
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Convertertool %(converter)s not found"
|
msgid "Convertertool %(converter)s not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:272
|
#: cps/worker.py:287
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ebook-converter failed: %(error)s"
|
msgid "Ebook-converter failed: %(error)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:283
|
#: cps/worker.py:298
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Kindlegen failed with Error %(error)s. Message: %(message)s"
|
msgid "Kindlegen failed with Error %(error)s. Message: %(message)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:317 cps/worker.py:377 cps/worker.py:438
|
#: cps/worker.py:355 cps/worker.py:374
|
||||||
msgid "Finished"
|
|
||||||
msgstr "Закончено"
|
|
||||||
|
|
||||||
#: cps/worker.py:344 cps/worker.py:363
|
|
||||||
msgid "Waiting"
|
msgid "Waiting"
|
||||||
msgstr "Ожидание"
|
msgstr "Ожидание"
|
||||||
|
|
||||||
#: cps/worker.py:351
|
#: cps/worker.py:362
|
||||||
msgid "This e-mail has been sent via Calibre-Web."
|
msgid "This e-mail has been sent via Calibre-Web."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:472
|
#: cps/worker.py:388 cps/worker.py:484
|
||||||
|
msgid "Finished"
|
||||||
|
msgstr "Закончено"
|
||||||
|
|
||||||
|
#: cps/worker.py:476
|
||||||
msgid "Failed"
|
msgid "Failed"
|
||||||
msgstr "Неудачно"
|
msgstr "Неудачно"
|
||||||
|
|
||||||
|
@ -692,7 +692,7 @@ msgstr "Имя пользователя"
|
||||||
|
|
||||||
#: cps/templates/admin.html:8
|
#: cps/templates/admin.html:8
|
||||||
msgid "E-mail"
|
msgid "E-mail"
|
||||||
msgstr ""
|
msgstr "Почта"
|
||||||
|
|
||||||
#: cps/templates/admin.html:9
|
#: cps/templates/admin.html:9
|
||||||
msgid "Kindle"
|
msgid "Kindle"
|
||||||
|
@ -1837,35 +1837,6 @@ msgstr "Удалить этого пользователя"
|
||||||
msgid "Recent Downloads"
|
msgid "Recent Downloads"
|
||||||
msgstr "Недавние скачивания"
|
msgstr "Недавние скачивания"
|
||||||
|
|
||||||
#~ msgid "%s: %s"
|
#~ msgid "E-mail: %s"
|
||||||
#~ msgstr "%s: %s"
|
|
||||||
|
|
||||||
#~ msgid "E-Mail: %s"
|
|
||||||
#~ msgstr "Почта: %s"
|
#~ msgstr "Почта: %s"
|
||||||
|
|
||||||
#~ msgid "Rename title from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
|
|
||||||
#~ msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "Rename author from: '%(src)s' to '%(dest)s' failed with error: %(error)s"
|
|
||||||
#~ msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "Password for user %(user)s reset"
|
|
||||||
#~ msgstr "Пароль для пользователя %(user)s сброшен"
|
|
||||||
|
|
||||||
#~ msgid "Password for user %s reset"
|
|
||||||
#~ msgstr "Пароль для пользователя %s сброшен"
|
|
||||||
|
|
||||||
#~ msgid "Rename title from: '%(src)s' to '%(src)s' failed with error: %(error)s"
|
|
||||||
#~ msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "Rename author from: '%(src)s' to '%(src)s' failed with error: %(error)s"
|
|
||||||
#~ msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "Failed to create path for cover %(cover)s (Permission denied)."
|
|
||||||
#~ msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "File extension '%s' is not allowed to be uploaded to this server"
|
|
||||||
#~ msgstr ""
|
|
||||||
|
|
||||||
#~ msgid "File extension \"%(ext)s\" is not allowed to be uploaded to this server"
|
|
||||||
#~ msgstr "Запрещена загрузка файлов с расширением \"%(ext)s\""
|
|
||||||
|
|
|
@ -232,10 +232,25 @@ class WorkerThread(threading.Thread):
|
||||||
bookid = self.queue[self.current]['bookid']
|
bookid = self.queue[self.current]['bookid']
|
||||||
format_old_ext = u'.' + self.queue[self.current]['settings']['old_book_format'].lower()
|
format_old_ext = u'.' + self.queue[self.current]['settings']['old_book_format'].lower()
|
||||||
format_new_ext = u'.' + self.queue[self.current]['settings']['new_book_format'].lower()
|
format_new_ext = u'.' + self.queue[self.current]['settings']['new_book_format'].lower()
|
||||||
|
|
||||||
|
# check to see if destination format already exists -
|
||||||
|
# if it does - mark the conversion task as complete and return a success
|
||||||
|
# this will allow send to kindle workflow to continue to work
|
||||||
|
if os.path.isfile(file_path + format_new_ext):
|
||||||
|
web.app.logger.info("Book id %d already converted to %s", bookid, format_new_ext)
|
||||||
|
cur_book = web.db.session.query(web.db.Books).filter(web.db.Books.id == bookid).first()
|
||||||
|
self.queue[self.current]['path'] = file_path
|
||||||
|
self.queue[self.current]['title'] = cur_book.title
|
||||||
|
self._handleSuccess()
|
||||||
|
return file_path + format_new_ext
|
||||||
|
else:
|
||||||
|
web.app.logger.info("Book id %d - target format of %s does not existing. Moving forward with convert.", bookid, format_new_ext)
|
||||||
|
|
||||||
# check if converter-executable is existing
|
# check if converter-executable is existing
|
||||||
if not os.path.exists(web.ub.config.config_converterpath):
|
if not os.path.exists(web.ub.config.config_converterpath):
|
||||||
self._handleError(_(u"Convertertool %(converter)s not found", converter=web.ub.config.config_converterpath))
|
self._handleError(_(u"Convertertool %(converter)s not found", converter=web.ub.config.config_converterpath))
|
||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# check which converter to use kindlegen is "1"
|
# check which converter to use kindlegen is "1"
|
||||||
if format_old_ext == '.epub' and format_new_ext == '.mobi':
|
if format_old_ext == '.epub' and format_new_ext == '.mobi':
|
||||||
|
@ -313,11 +328,7 @@ class WorkerThread(threading.Thread):
|
||||||
self.queue[self.current]['title'] = cur_book.title
|
self.queue[self.current]['title'] = cur_book.title
|
||||||
if web.ub.config.config_use_google_drive:
|
if web.ub.config.config_use_google_drive:
|
||||||
os.remove(file_path + format_old_ext)
|
os.remove(file_path + format_old_ext)
|
||||||
self.queue[self.current]['status'] = STAT_FINISH_SUCCESS
|
self._handleSuccess()
|
||||||
self.UIqueue[self.current]['status'] = _('Finished')
|
|
||||||
self.UIqueue[self.current]['progress'] = "100 %"
|
|
||||||
self.UIqueue[self.current]['runtime'] = self._formatRuntime(
|
|
||||||
datetime.now() - self.queue[self.current]['starttime'])
|
|
||||||
return file_path + format_new_ext
|
return file_path + format_new_ext
|
||||||
else:
|
else:
|
||||||
error_message = format_new_ext.upper() + ' format not found on disk'
|
error_message = format_new_ext.upper() + ' format not found on disk'
|
||||||
|
@ -434,12 +445,7 @@ class WorkerThread(threading.Thread):
|
||||||
self.asyncSMTP.login(str(obj['settings']["mail_login"]), str(obj['settings']["mail_password"]))
|
self.asyncSMTP.login(str(obj['settings']["mail_login"]), str(obj['settings']["mail_password"]))
|
||||||
self.asyncSMTP.sendmail(obj['settings']["mail_from"], obj['recipent'], msg)
|
self.asyncSMTP.sendmail(obj['settings']["mail_from"], obj['recipent'], msg)
|
||||||
self.asyncSMTP.quit()
|
self.asyncSMTP.quit()
|
||||||
self.queue[self.current]['status'] = STAT_FINISH_SUCCESS
|
self._handleSuccess()
|
||||||
self.UIqueue[self.current]['status'] = _('Finished')
|
|
||||||
self.UIqueue[self.current]['progress'] = "100 %"
|
|
||||||
self.UIqueue[self.current]['runtime'] = self._formatRuntime(
|
|
||||||
datetime.now() - self.queue[self.current]['starttime'])
|
|
||||||
|
|
||||||
sys.stderr = org_stderr
|
sys.stderr = org_stderr
|
||||||
|
|
||||||
except (MemoryError) as e:
|
except (MemoryError) as e:
|
||||||
|
@ -452,8 +458,6 @@ class WorkerThread(threading.Thread):
|
||||||
self._handleError(u'Error sending email: ' + e.strerror)
|
self._handleError(u'Error sending email: ' + e.strerror)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def _formatRuntime(self, runtime):
|
def _formatRuntime(self, runtime):
|
||||||
self.UIqueue[self.current]['rt'] = runtime.total_seconds()
|
self.UIqueue[self.current]['rt'] = runtime.total_seconds()
|
||||||
val = re.split('\:|\.', str(runtime))[0:3]
|
val = re.split('\:|\.', str(runtime))[0:3]
|
||||||
|
@ -475,6 +479,12 @@ class WorkerThread(threading.Thread):
|
||||||
datetime.now() - self.queue[self.current]['starttime'])
|
datetime.now() - self.queue[self.current]['starttime'])
|
||||||
self.UIqueue[self.current]['message'] = error_message
|
self.UIqueue[self.current]['message'] = error_message
|
||||||
|
|
||||||
|
def _handleSuccess(self):
|
||||||
|
self.queue[self.current]['status'] = STAT_FINISH_SUCCESS
|
||||||
|
self.UIqueue[self.current]['status'] = _('Finished')
|
||||||
|
self.UIqueue[self.current]['progress'] = "100 %"
|
||||||
|
self.UIqueue[self.current]['runtime'] = self._formatRuntime(
|
||||||
|
datetime.now() - self.queue[self.current]['starttime'])
|
||||||
|
|
||||||
|
|
||||||
class StderrLogger(object):
|
class StderrLogger(object):
|
||||||
|
|
273
messages.pot
273
messages.pot
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2018-09-08 20:58+0200\n"
|
"POT-Creation-Date: 2018-09-14 20:34+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -113,559 +113,564 @@ msgstr ""
|
||||||
msgid "Unrar binary file not found"
|
msgid "Unrar binary file not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1117
|
#: cps/web.py:1127
|
||||||
msgid "Requesting update package"
|
msgid "Requesting update package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1118
|
#: cps/web.py:1128
|
||||||
msgid "Downloading update package"
|
msgid "Downloading update package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1119
|
#: cps/web.py:1129
|
||||||
msgid "Unzipping update package"
|
msgid "Unzipping update package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1120
|
#: cps/web.py:1130
|
||||||
msgid "Files are replaced"
|
msgid "Files are replaced"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1121
|
#: cps/web.py:1131
|
||||||
msgid "Database connections are closed"
|
msgid "Database connections are closed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1122
|
#: cps/web.py:1132
|
||||||
msgid "Server is stopped"
|
msgid "Server is stopped"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1123
|
#: cps/web.py:1133
|
||||||
msgid "Update finished, please press okay and reload page"
|
msgid "Update finished, please press okay and reload page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1143
|
#: cps/web.py:1153
|
||||||
msgid "Recently Added Books"
|
msgid "Recently Added Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1153
|
#: cps/web.py:1163
|
||||||
msgid "Newest Books"
|
msgid "Newest Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1165
|
#: cps/web.py:1175
|
||||||
msgid "Oldest Books"
|
msgid "Oldest Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1177
|
#: cps/web.py:1187
|
||||||
msgid "Books (A-Z)"
|
msgid "Books (A-Z)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1188
|
#: cps/web.py:1198
|
||||||
msgid "Books (Z-A)"
|
msgid "Books (Z-A)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1217
|
#: cps/web.py:1227
|
||||||
msgid "Hot Books (most downloaded)"
|
msgid "Hot Books (most downloaded)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1230
|
#: cps/web.py:1240
|
||||||
msgid "Best rated books"
|
msgid "Best rated books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:36 cps/web.py:1242
|
#: cps/templates/index.xml:36 cps/web.py:1252
|
||||||
msgid "Random Books"
|
msgid "Random Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1257
|
#: cps/web.py:1267
|
||||||
msgid "Author list"
|
msgid "Author list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1269 cps/web.py:1332 cps/web.py:1487 cps/web.py:2039
|
#: cps/web.py:1279 cps/web.py:1342 cps/web.py:1497 cps/web.py:2049
|
||||||
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
msgid "Error opening eBook. File does not exist or file is not accessible:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:73 cps/web.py:1316
|
#: cps/templates/index.xml:73 cps/web.py:1326
|
||||||
msgid "Series list"
|
msgid "Series list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1330
|
#: cps/web.py:1340
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Series: %(serie)s"
|
msgid "Series: %(serie)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1357
|
#: cps/web.py:1367
|
||||||
msgid "Available languages"
|
msgid "Available languages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1374
|
#: cps/web.py:1384
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Language: %(name)s"
|
msgid "Language: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:66 cps/web.py:1385
|
#: cps/templates/index.xml:66 cps/web.py:1395
|
||||||
msgid "Category list"
|
msgid "Category list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1399
|
#: cps/web.py:1409
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Category: %(name)s"
|
msgid "Category: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/layout.html:71 cps/web.py:1538
|
#: cps/templates/layout.html:71 cps/web.py:1548
|
||||||
msgid "Tasks"
|
msgid "Tasks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1568
|
#: cps/web.py:1578
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1673
|
#: cps/web.py:1683
|
||||||
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
|
msgid "Callback domain is not verified, please follow steps to verify domain in google developer console"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1748
|
#: cps/web.py:1758
|
||||||
msgid "Server restarted, please reload page"
|
msgid "Server restarted, please reload page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1751
|
#: cps/web.py:1761
|
||||||
msgid "Performing shutdown of server, please close window"
|
msgid "Performing shutdown of server, please close window"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1770
|
#: cps/web.py:1780
|
||||||
msgid "Update done"
|
msgid "Update done"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1840
|
#: cps/web.py:1850
|
||||||
msgid "Published after "
|
msgid "Published after "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1847
|
#: cps/web.py:1857
|
||||||
msgid "Published before "
|
msgid "Published before "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1861
|
#: cps/web.py:1871
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rating <= %(rating)s"
|
msgid "Rating <= %(rating)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1863
|
#: cps/web.py:1873
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Rating >= %(rating)s"
|
msgid "Rating >= %(rating)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:1922 cps/web.py:1931
|
#: cps/web.py:1932 cps/web.py:1941
|
||||||
msgid "search"
|
msgid "search"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:44 cps/templates/index.xml:48
|
#: cps/templates/index.xml:44 cps/templates/index.xml:48
|
||||||
#: cps/templates/layout.html:146 cps/web.py:1998
|
#: cps/templates/layout.html:146 cps/web.py:2008
|
||||||
msgid "Read Books"
|
msgid "Read Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/index.xml:52 cps/templates/index.xml:56
|
#: cps/templates/index.xml:52 cps/templates/index.xml:56
|
||||||
#: cps/templates/layout.html:148 cps/web.py:2001
|
#: cps/templates/layout.html:148 cps/web.py:2011
|
||||||
msgid "Unread Books"
|
msgid "Unread Books"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2049 cps/web.py:2051 cps/web.py:2053 cps/web.py:2065
|
#: cps/web.py:2059 cps/web.py:2061 cps/web.py:2063 cps/web.py:2075
|
||||||
msgid "Read a Book"
|
msgid "Read a Book"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2131 cps/web.py:3009
|
#: cps/web.py:2141 cps/web.py:3024
|
||||||
msgid "Please fill out all fields!"
|
msgid "Please fill out all fields!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2132 cps/web.py:2153 cps/web.py:2157 cps/web.py:2162
|
#: cps/web.py:2142 cps/web.py:2163 cps/web.py:2167 cps/web.py:2172
|
||||||
#: cps/web.py:2164
|
#: cps/web.py:2174
|
||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2152 cps/web.py:3225
|
#: cps/web.py:2162 cps/web.py:3240
|
||||||
msgid "An unknown error occurred. Please try again later."
|
msgid "An unknown error occurred. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2155
|
#: cps/web.py:2165
|
||||||
msgid "Your e-mail is not allowed to register"
|
msgid "Your e-mail is not allowed to register"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2158
|
#: cps/web.py:2168
|
||||||
msgid "Confirmation e-mail was send to your e-mail account."
|
msgid "Confirmation e-mail was send to your e-mail account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2161
|
#: cps/web.py:2171
|
||||||
msgid "This username or e-mail address is already in use."
|
msgid "This username or e-mail address is already in use."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2178 cps/web.py:2274
|
#: cps/web.py:2188 cps/web.py:2284
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "you are now logged in as: '%(nickname)s'"
|
msgid "you are now logged in as: '%(nickname)s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2183
|
#: cps/web.py:2193
|
||||||
msgid "Wrong Username or Password"
|
msgid "Wrong Username or Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2189 cps/web.py:2210
|
#: cps/web.py:2199 cps/web.py:2220
|
||||||
msgid "login"
|
msgid "login"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2222 cps/web.py:2253
|
#: cps/web.py:2232 cps/web.py:2263
|
||||||
msgid "Token not found"
|
msgid "Token not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2230 cps/web.py:2261
|
#: cps/web.py:2240 cps/web.py:2271
|
||||||
msgid "Token has expired"
|
msgid "Token has expired"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2238
|
#: cps/web.py:2248
|
||||||
msgid "Success! Please return to your device"
|
msgid "Success! Please return to your device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2288
|
#: cps/web.py:2298
|
||||||
msgid "Please configure the SMTP mail settings first..."
|
msgid "Please configure the SMTP mail settings first..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2292
|
#: cps/web.py:2302
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book successfully queued for sending to %(kindlemail)s"
|
msgid "Book successfully queued for sending to %(kindlemail)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2296
|
#: cps/web.py:2306
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error sending this book: %(res)s"
|
msgid "There was an error sending this book: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2298 cps/web.py:3063
|
#: cps/web.py:2308 cps/web.py:3078
|
||||||
msgid "Please configure your kindle e-mail address first..."
|
msgid "Please configure your kindle e-mail address first..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2342
|
#: cps/web.py:2352
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book has been added to shelf: %(sname)s"
|
msgid "Book has been added to shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2353
|
#: cps/web.py:2363
|
||||||
msgid "Invalid shelf specified"
|
msgid "Invalid shelf specified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2358
|
#: cps/web.py:2368
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You are not allowed to add a book to the the shelf: %(name)s"
|
msgid "You are not allowed to add a book to the the shelf: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2363
|
#: cps/web.py:2373
|
||||||
msgid "User is not allowed to edit public shelves"
|
msgid "User is not allowed to edit public shelves"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2381
|
#: cps/web.py:2391
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Books are already part of the shelf: %(name)s"
|
msgid "Books are already part of the shelf: %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2395
|
#: cps/web.py:2405
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Books have been added to shelf: %(sname)s"
|
msgid "Books have been added to shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2397
|
#: cps/web.py:2407
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Could not add books to shelf: %(sname)s"
|
msgid "Could not add books to shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2434
|
#: cps/web.py:2444
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book has been removed from shelf: %(sname)s"
|
msgid "Book has been removed from shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2440
|
#: cps/web.py:2450
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
|
msgid "Sorry you are not allowed to remove a book from this shelf: %(sname)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2460 cps/web.py:2484
|
#: cps/web.py:2470 cps/web.py:2494
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "A shelf with the name '%(title)s' already exists."
|
msgid "A shelf with the name '%(title)s' already exists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2465
|
#: cps/web.py:2475
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Shelf %(title)s created"
|
msgid "Shelf %(title)s created"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2467 cps/web.py:2495
|
#: cps/web.py:2477 cps/web.py:2505
|
||||||
msgid "There was an error"
|
msgid "There was an error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2468 cps/web.py:2470
|
#: cps/web.py:2478 cps/web.py:2480
|
||||||
msgid "create a shelf"
|
msgid "create a shelf"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2493
|
#: cps/web.py:2503
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Shelf %(title)s changed"
|
msgid "Shelf %(title)s changed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2496 cps/web.py:2498
|
#: cps/web.py:2506 cps/web.py:2508
|
||||||
msgid "Edit a shelf"
|
msgid "Edit a shelf"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2519
|
#: cps/web.py:2529
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "successfully deleted shelf %(name)s"
|
msgid "successfully deleted shelf %(name)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2541
|
#: cps/web.py:2556
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Shelf: '%(name)s'"
|
msgid "Shelf: '%(name)s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2544
|
#: cps/web.py:2559
|
||||||
msgid "Error opening shelf. Shelf does not exist or is not accessible"
|
msgid "Error opening shelf. Shelf does not exist or is not accessible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2575
|
#: cps/web.py:2590
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Change order of Shelf: '%(name)s'"
|
msgid "Change order of Shelf: '%(name)s'"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2604 cps/web.py:3015
|
#: cps/web.py:2619 cps/web.py:3030
|
||||||
msgid "E-mail is not from valid domain"
|
msgid "E-mail is not from valid domain"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2606 cps/web.py:2647 cps/web.py:2650
|
#: cps/web.py:2621 cps/web.py:2662 cps/web.py:2665
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s's profile"
|
msgid "%(name)s's profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2645
|
#: cps/web.py:2660
|
||||||
msgid "Found an existing account for this e-mail address."
|
msgid "Found an existing account for this e-mail address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2648
|
#: cps/web.py:2663
|
||||||
msgid "Profile updated"
|
msgid "Profile updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2660
|
#: cps/web.py:2675
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2674
|
#: cps/web.py:2689
|
||||||
msgid "Admin page"
|
msgid "Admin page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2752 cps/web.py:2925
|
#: cps/web.py:2767 cps/web.py:2940
|
||||||
msgid "Calibre-Web configuration updated"
|
msgid "Calibre-Web configuration updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/admin.html:91 cps/web.py:2765
|
#: cps/templates/admin.html:91 cps/web.py:2780
|
||||||
msgid "UI Configuration"
|
msgid "UI Configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2783
|
#: cps/web.py:2798
|
||||||
msgid "Import of optional Google Drive requirements missing"
|
msgid "Import of optional Google Drive requirements missing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2786
|
#: cps/web.py:2801
|
||||||
msgid "client_secrets.json is missing or not readable"
|
msgid "client_secrets.json is missing or not readable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2791 cps/web.py:2818
|
#: cps/web.py:2806 cps/web.py:2833
|
||||||
msgid "client_secrets.json is not configured for web application"
|
msgid "client_secrets.json is not configured for web application"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/admin.html:90 cps/web.py:2821 cps/web.py:2847 cps/web.py:2859
|
#: cps/templates/admin.html:90 cps/web.py:2836 cps/web.py:2862 cps/web.py:2874
|
||||||
#: cps/web.py:2901 cps/web.py:2916 cps/web.py:2933 cps/web.py:2940
|
#: cps/web.py:2916 cps/web.py:2931 cps/web.py:2948 cps/web.py:2955
|
||||||
#: cps/web.py:2957
|
#: cps/web.py:2972
|
||||||
msgid "Basic Configuration"
|
msgid "Basic Configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2844
|
#: cps/web.py:2859
|
||||||
msgid "Keyfile location is not valid, please enter correct path"
|
msgid "Keyfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2856
|
#: cps/web.py:2871
|
||||||
msgid "Certfile location is not valid, please enter correct path"
|
msgid "Certfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2898
|
#: cps/web.py:2913
|
||||||
msgid "Logfile location is not valid, please enter correct path"
|
msgid "Logfile location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:2937
|
#: cps/web.py:2952
|
||||||
msgid "DB location is not valid, please enter correct path"
|
msgid "DB location is not valid, please enter correct path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/templates/admin.html:31 cps/web.py:3011 cps/web.py:3017 cps/web.py:3033
|
#: cps/templates/admin.html:31 cps/web.py:3026 cps/web.py:3032 cps/web.py:3048
|
||||||
msgid "Add new user"
|
msgid "Add new user"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3023
|
#: cps/web.py:3038
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(user)s' created"
|
msgid "User '%(user)s' created"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3027
|
#: cps/web.py:3042
|
||||||
msgid "Found an existing account for this e-mail address or nickname."
|
msgid "Found an existing account for this e-mail address or nickname."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3051 cps/web.py:3065
|
#: cps/web.py:3066 cps/web.py:3080
|
||||||
msgid "E-mail server settings updated"
|
msgid "E-mail server settings updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3058
|
#: cps/web.py:3073
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Test e-mail successfully send to %(kindlemail)s"
|
msgid "Test e-mail successfully send to %(kindlemail)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3061
|
#: cps/web.py:3076
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error sending the Test e-mail: %(res)s"
|
msgid "There was an error sending the Test e-mail: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3066
|
#: cps/web.py:3081
|
||||||
msgid "Edit e-mail server settings"
|
msgid "Edit e-mail server settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3091
|
#: cps/web.py:3106
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(nick)s' deleted"
|
msgid "User '%(nick)s' deleted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3200
|
#: cps/web.py:3215
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "User '%(nick)s' updated"
|
msgid "User '%(nick)s' updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3203
|
#: cps/web.py:3218
|
||||||
msgid "An unknown error occured."
|
msgid "An unknown error occured."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3205
|
#: cps/web.py:3220
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Edit User %(nick)s"
|
msgid "Edit User %(nick)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3222
|
#: cps/web.py:3237
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Password for user %(user)s reset"
|
msgid "Password for user %(user)s reset"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3242
|
#: cps/web.py:3257
|
||||||
msgid "Error opening eBook. File does not exist or file is not accessible"
|
msgid "Error opening eBook. File does not exist or file is not accessible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3273 cps/web.py:3549 cps/web.py:3554 cps/web.py:3709
|
#: cps/web.py:3285 cps/web.py:3562 cps/web.py:3567 cps/web.py:3722
|
||||||
msgid "edit metadata"
|
msgid "edit metadata"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3287 cps/web.py:3579
|
#: cps/web.py:3296 cps/web.py:3592
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
|
msgid "File extension '%(ext)s' is not allowed to be uploaded to this server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3291 cps/web.py:3583
|
#: cps/web.py:3300 cps/web.py:3596
|
||||||
msgid "File to be uploaded must have an extension"
|
msgid "File to be uploaded must have an extension"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3303 cps/web.py:3603
|
#: cps/web.py:3312 cps/web.py:3616
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to create path %(path)s (Permission denied)."
|
msgid "Failed to create path %(path)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3308
|
#: cps/web.py:3317
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store file %(file)s."
|
msgid "Failed to store file %(file)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3324
|
#: cps/web.py:3333
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File format %(ext)s added to %(book)s"
|
msgid "File format %(ext)s added to %(book)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3342
|
#: cps/web.py:3350
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to create path for cover %(path)s (Permission denied)."
|
msgid "Failed to create path for cover %(path)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3349
|
#: cps/web.py:3357
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store cover-file %(cover)s."
|
msgid "Failed to store cover-file %(cover)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3352
|
#: cps/web.py:3360
|
||||||
msgid "Cover-file is not a valid image file"
|
msgid "Cover-file is not a valid image file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3365 cps/web.py:3369
|
#: cps/web.py:3377 cps/web.py:3381
|
||||||
msgid "unknown"
|
msgid "unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3391
|
#: cps/web.py:3403
|
||||||
msgid "Cover is not a jpg file, can't save"
|
msgid "Cover is not a jpg file, can't save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3558
|
#: cps/web.py:3449
|
||||||
|
#, python-format
|
||||||
|
msgid "%(langname)s is not a valid language"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cps/web.py:3571
|
||||||
msgid "Error editing book, please check logfile for details"
|
msgid "Error editing book, please check logfile for details"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3608
|
#: cps/web.py:3621
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to store file %(file)s (Permission denied)."
|
msgid "Failed to store file %(file)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3613
|
#: cps/web.py:3626
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Failed to delete file %(file)s (Permission denied)."
|
msgid "Failed to delete file %(file)s (Permission denied)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3695
|
#: cps/web.py:3708
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "File %(file)s uploaded"
|
msgid "File %(file)s uploaded"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3725
|
#: cps/web.py:3738
|
||||||
msgid "Source or destination format for conversion missing"
|
msgid "Source or destination format for conversion missing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3735
|
#: cps/web.py:3748
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Book successfully queued for converting to %(book_format)s"
|
msgid "Book successfully queued for converting to %(book_format)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/web.py:3739
|
#: cps/web.py:3752
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "There was an error converting this book: %(res)s"
|
msgid "There was an error converting this book: %(res)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:215 cps/worker.py:387
|
#: cps/worker.py:215 cps/worker.py:398
|
||||||
msgid "Started"
|
msgid "Started"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:237
|
#: cps/worker.py:251
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Convertertool %(converter)s not found"
|
msgid "Convertertool %(converter)s not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:272
|
#: cps/worker.py:287
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ebook-converter failed: %(error)s"
|
msgid "Ebook-converter failed: %(error)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:283
|
#: cps/worker.py:298
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Kindlegen failed with Error %(error)s. Message: %(message)s"
|
msgid "Kindlegen failed with Error %(error)s. Message: %(message)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:317 cps/worker.py:377 cps/worker.py:438
|
#: cps/worker.py:355 cps/worker.py:374
|
||||||
msgid "Finished"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: cps/worker.py:344 cps/worker.py:363
|
|
||||||
msgid "Waiting"
|
msgid "Waiting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:351
|
#: cps/worker.py:362
|
||||||
msgid "This e-mail has been sent via Calibre-Web."
|
msgid "This e-mail has been sent via Calibre-Web."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cps/worker.py:472
|
#: cps/worker.py:388 cps/worker.py:484
|
||||||
|
msgid "Finished"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cps/worker.py:476
|
||||||
msgid "Failed"
|
msgid "Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user