From 18bf0f3aa34234aa2118c30e7112cc4549ad856d Mon Sep 17 00:00:00 2001 From: Translators <> Date: Tue, 26 Jan 2010 04:51:18 +0000 Subject: [PATCH 001/158] Launchpad automatic translations update. --- src/calibre/translations/ar.po | 130 ++++++++++++++++-------------- src/calibre/translations/cs.po | 82 +++++++++---------- src/calibre/translations/de.po | 91 +++++++++++---------- src/calibre/translations/fr.po | 87 ++++++++++---------- src/calibre/translations/gl.po | 84 +++++++++---------- src/calibre/translations/hr.po | 82 +++++++++---------- src/calibre/translations/lv.po | 84 +++++++++---------- src/calibre/translations/nl.po | 96 +++++++++++----------- src/calibre/translations/pl.po | 84 +++++++++---------- src/calibre/translations/pt_BR.po | 82 +++++++++---------- src/calibre/translations/ru.po | 84 +++++++++---------- src/calibre/translations/sq.po | 84 +++++++++---------- src/calibre/translations/sv.po | 92 +++++++++++---------- src/calibre/translations/tr.po | 82 +++++++++---------- src/calibre/translations/zh_TW.po | 84 +++++++++---------- 15 files changed, 677 insertions(+), 651 deletions(-) diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index 8f80aee0ce..8e4cd75408 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:32+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:18+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -152,11 +152,11 @@ msgstr "نوع الملف" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" -msgstr "قارئ الميتاداتا" +msgstr "قارئ دليل المعلومات" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" -msgstr "كاتب الميتاداتا" +msgstr "كاتب دليل المعلومات" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 msgid "Catalog generator" @@ -211,11 +211,11 @@ msgstr "استخرج الغلاف من ملف الرسومات" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:277 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:287 msgid "Read metadata from %s files" -msgstr "يقرأ الميتاداتا من الملفات %s" +msgstr "يقرأ دليل المعلومات من الملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 msgid "Read metadata from ebooks in RAR archives" -msgstr "إقرأ ميتاداتا لكتب في أرشيفات RAR" +msgstr "إقرأ دليل المعلومات لكتب في أرشيفات RAR" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 msgid "Read metadata from ebooks in ZIP archives" @@ -227,11 +227,11 @@ msgstr "إقرأ ميتاداتا لكتب في أرشيفات ZIP" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 msgid "Set metadata in %s files" -msgstr "ضبط الميتاداتا في الملفات %s" +msgstr "ضبط دليل المعلومات في الملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 msgid "Set metadata from %s files" -msgstr "ضبط ميتاداتا من ملفات %s" +msgstr "ضبط دليل المعلومات من ملفات %s" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" @@ -275,15 +275,17 @@ msgstr "" msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" +"ملف التعريف هذا هو المقصود لجهاز سوني من خط إنتاج PRS . الـ500/505/600/700 " +"إلخ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 msgid "This profile is intended for the SONY PRS 300." -msgstr "" +msgstr "ملف التعريف هذا هو المقصود لجهاز سوني PRS 300." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 msgid "This profile is intended for the SONY PRS-900." -msgstr "" +msgstr "ملف التعريف هذا هو المقصود لجهاز سوني PRS 900." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 @@ -293,51 +295,51 @@ msgstr "هذا الطور يستخدم مع Microsoft Reader" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 msgid "This profile is intended for the Mobipocket books." -msgstr "هذا الطور يستخدم مع كتب Mobipocket" +msgstr "ملف التعريف هذا يستخدم مع كتب Mobipocket ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." -msgstr "هذا الطور يستخدم مع Hanlin V3 وأمثاله." +msgstr "ملف التعريف هذا يستخدم مع Hanlin V3 وأمثاله." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 msgid "This profile is intended for the Hanlin V5 and its clones." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع Hanlin V5 وأمثاله." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 msgid "This profile is intended for the Cybook G3." -msgstr "هذا الطور يستخدم مع Cybook G3" +msgstr "ملف التعريف هذا يستخدم مع Cybook G3" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 msgid "This profile is intended for the Cybook Opus." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع Cybook Opus ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 msgid "This profile is intended for the Amazon Kindle." -msgstr "هذا الطور يستخدم مع Amazon Kindle" +msgstr "ملف التعريف هذا يستخدم مع Amazon Kindle ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 msgid "This profile is intended for the Irex Illiad." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع Irex Illiad ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 msgid "This profile is intended for the IRex Digital Reader 1000." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع IRex Digital Reader 1000 ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 msgid "This profile is intended for the B&N Nook." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع B&N Nook ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" -msgstr "طور الخرج" +msgstr "المخرجات" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" @@ -345,20 +347,24 @@ msgid "" "produce a document intended to be read at a computer or on a range of " "devices." msgstr "" +"ملف التعريف هذا يحاول تقديم افتراضات عاقلة و مفيدة إذا كنت ترغب في إصدار " +"وثيقة للقراءة في جهاز الكمبيوتر أو على مجموعة من الأجهزة." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 msgid "This profile is intended for the SONY PRS-300." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع سوني PRS-300 ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 msgid "This profile is intended for the 5-inch JetBook." -msgstr "" +msgstr "ملف التعريف هذا يستخدم مع الخمسة بوصة JetBook ." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." msgstr "" +"ملف التعريف هذا يستخدم مع سوني خط إنتاج PRS . الـ500/505/700 الخ ، في وضع " +"أفقي.غالباً مفيد للكاريكاتيرات." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 msgid "This profile is intended for the Amazon Kindle DX." @@ -1615,7 +1621,7 @@ msgstr "" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2493,11 +2499,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7078,14 +7084,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7094,14 +7100,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7110,21 +7116,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7378,7 +7384,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7760,75 +7766,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "تم التنزيل" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "فشل تنزيل المقالات التالية:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "فشل تنزيل أجزاء من المقالات التالية:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " من " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "محاولة تنزيل الغلاف..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "تم تنزيل التلقيم إلى %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "لم يتمكّن من تنزيل الغلاف: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "يتم تنزيل الغلاف من %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "مقالة بدون عنوان" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "المقالة منزّلة: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "فشل تنزيل المقالة: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -7847,55 +7853,55 @@ msgstr "تم جدولته" msgid "Custom" msgstr "مخصّص" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7904,7 +7910,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "" diff --git a/src/calibre/translations/cs.po b/src/calibre/translations/cs.po index d4681c1c72..baaa9dae4a 100644 --- a/src/calibre/translations/cs.po +++ b/src/calibre/translations/cs.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" "PO-Revision-Date: 2010-01-25 02:27+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1753,7 +1753,7 @@ msgstr "Publikováno" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2645,11 +2645,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7281,14 +7281,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7297,14 +7297,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7313,21 +7313,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7578,7 +7578,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" "Zobrazit podrobné výstupní informace. Užitečné pro hledání chyb v programu" @@ -7961,75 +7961,75 @@ msgstr "" msgid "Unknown News Source" msgstr "Neznámý zdroj zpráv" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " od " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Stahování obálky z %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Nepojmenovaný článek" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Článek stažen: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -8048,7 +8048,7 @@ msgstr "Naplánováno" msgid "Custom" msgstr "uživatelský" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8058,18 +8058,18 @@ msgstr "" "\n" "Kde URL je například http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" "Základní adresář, do kterého bude URL uloženo. Standardně je to %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "Časový limit čekání na odezvu ze serveru. Standardně: %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8077,7 +8077,7 @@ msgstr "" "Maximání hloubka rekurze, t.j. počet úrovní odkazů, které se mají procházet. " "Standardně %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8085,13 +8085,13 @@ msgstr "" "Maximální počet stahovaných souborů. Tato hodnota se vztahuje na soubory v " " tagách. Standardně %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "Minimální interval stahování v sekundách. Standatně %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8099,7 +8099,7 @@ msgstr "" "Kódování znaků použité na webových stránkách, které chcete stáhnout. " "Vevýchozím nastavení se program pokusí rozeznat kódování automaticky." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8110,7 +8110,7 @@ msgstr "" "se shodují minimálně s jedním výrazem. Standardně budou následovány všechny " "odkazy." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8124,7 +8124,7 @@ msgstr "" "odkazy. V případě, že jsou použity obě mořnosti, --filter-regexp i --match-" "regexp bude --filter-regexp aplikován jako první." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Nestahovat kaskádové styly." diff --git a/src/calibre/translations/de.po b/src/calibre/translations/de.po index 36245aec38..c80f81ffd6 100644 --- a/src/calibre/translations/de.po +++ b/src/calibre/translations/de.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-24 12:28+0000\n" -"Last-Translator: S. Dorscht \n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:52+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -1853,7 +1853,7 @@ msgstr "Veröffentlicht" msgid "Rights" msgstr "Rechte" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "BUCHKRITIK" @@ -2898,11 +2898,11 @@ msgid "Fields to include in output:" msgstr "Felder, die in der Ausgabe erscheinen sollen:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "eBook Einstellungen" +msgid "E-book options" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7842,14 +7842,14 @@ msgstr "" "Voreinstellung: '%default'\n" "Wird angewendet auf: CSV, XML Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7858,14 +7858,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7874,21 +7874,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -8228,7 +8228,7 @@ msgstr "" "Default: no filtering" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Detaillierte Ausgabeinformation anzeigen. Hilfreich zur Fehlersuche." @@ -8660,77 +8660,77 @@ msgstr "" msgid "Unknown News Source" msgstr "Nachrichtenquelle unbekannt" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" "Das \"%s\" Downloadschema benötigt einen Benutzernamen und ein Passwort." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Download beendet" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Der Download der folgenden Artikel schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Der Download von Teilen der folgenden Artikel schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " von " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tFehlgeschlagene Verknüpfungen:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Konnte Artikel nicht abrufen. Mit -vv starten, um den Grund dafür zu sehen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Rufe Feeds ab..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Feeds der Index-Seite erhalten" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Umschlagbild versuchen heruterzuladen ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Download von [%d Thread(s)] starten ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Feeds wurden nach %s heruntergeladen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Umschlagbild konnte nicht heruntergeladen werden: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Umschlagbild von %s herunterladen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artikel ohne Titel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artikel heruntergeladen: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Herunterladen der Artikel schlug fehl: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Feed abrufen" @@ -8749,7 +8749,7 @@ msgstr "Geplant" msgid "Custom" msgstr "Angepasst" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8759,13 +8759,13 @@ msgstr "" "\n" "URL ist z.B. http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" "Grundverzeichnis, in das die URL gespeichert wird. Voreinstellung ist " "%default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -8773,7 +8773,7 @@ msgstr "" "Timeout in Sekunden beim Warten auf eine Antwort vom Server. Voreinstellung: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8781,7 +8781,7 @@ msgstr "" "Maximale Zahl von einbezogenen Ebenen, z.B. Tiefe der Links, die verfolgt " "werden. Voreinstellung %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8789,7 +8789,7 @@ msgstr "" "Höchstzahl der Dateien, die geladen werden. Dies trifft nur auf Dateien aus " " Tags zu. Voreinstellung ist %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8797,7 +8797,7 @@ msgstr "" "Kleinstes Intervall in Sekunden zwischen aufeinander folgenden Abrufen. " "Voreinstellung ist %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8805,7 +8805,7 @@ msgstr "" "Zeichenkodierung für Webseiten, die zu laden versucht werden. In der " "Voreinstellung wird versucht, die Kodierung zu erraten." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8816,7 +8816,7 @@ msgstr "" "sie einem regulären Ausdruck entsprechen. In der Voreinstellung werden alle " "Links verfolgt." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8830,7 +8830,7 @@ msgstr "" "Links ignoriert. Falls beide --filter-regexp und --match-regexp angegeben " "sind, wird --filter-regexp zuerst angewendet." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "CSS-Stylesheets nicht herunterladen." @@ -11104,3 +11104,6 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "Create catalog of the books in your calibre library" #~ msgstr "Katalog der Bücher in Ihrer Calibre Bibliothek erstellen" + +#~ msgid "E-book Options" +#~ msgstr "eBook Einstellungen" diff --git a/src/calibre/translations/fr.po b/src/calibre/translations/fr.po index 42444db069..596b4ec6a7 100644 --- a/src/calibre/translations/fr.po +++ b/src/calibre/translations/fr.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.22\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" "PO-Revision-Date: 2010-01-25 02:45+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -1849,7 +1849,7 @@ msgstr "Publié" msgid "Rights" msgstr "Droits" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "LIGNE EDITORIALE" @@ -2888,11 +2888,11 @@ msgid "Fields to include in output:" msgstr "Champs à inclure en sortie:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "Options E-book" +msgid "E-book options" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7813,14 +7813,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7829,14 +7829,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7845,21 +7845,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -8191,7 +8191,7 @@ msgstr "" "Par défaut: Pas de filtre" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Affiche des informations détaillées. Utile pour le débogage" @@ -8624,79 +8624,79 @@ msgstr "" msgid "Unknown News Source" msgstr "Source de News inconnue" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" "La recette \"%s\" a besoin d'un nom d'utilisateur et d'un mot de passe." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Téléchargement effectué" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Impossible de télécharger les articles suivants;" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" "Impossible de télécharger certaines parties pour les articles suivants:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tLiens qui ont échoués:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Impossible de récupérer l'article. Le lancer avec -w pour en connaitre la " "raison" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Récupération des flux..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Obtient les flux à partir de la page d'index" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Essaie de télécharger la couverture..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Commence le téléchargement [processus %d]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Flux téléchargés de %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Impossible de télécharger la couverture: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Télécharge la couverture de %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Article sans titre" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Article téléchargé : %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Impossible de télécharger l'article: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Récupération du flux" @@ -8715,7 +8715,7 @@ msgstr "Planifié" msgid "Custom" msgstr "Client" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8725,12 +8725,12 @@ msgstr "" "\n" "Où URL est par exemple http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" "Répertoire de base dans lequel l'URL est sauvegardée. Par défaut: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -8738,7 +8738,7 @@ msgstr "" "Timeout en secondes d'attente pour la réponse du serveur. Par défaut: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8746,7 +8746,7 @@ msgstr "" "Nombre maximum de niveaux de récursivité c-à-d le niveau de profondeur de " "liens à suivre. Par défaut : %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8754,7 +8754,7 @@ msgstr "" "Nombre maximum de fichiers à télécharger. Ceci ne sera valable que pour pour " "les fichiers à partir des étiquettes .Par défaut: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8762,7 +8762,7 @@ msgstr "" "Intervalle minimal entre deux téléchargements, en secondes. %default s par " "défaut." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8770,7 +8770,7 @@ msgstr "" "Encodage des caractères pour les sites web que vous essayer de télécharger. " "Par défaut, essaie et trouve l'encodage." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8781,7 +8781,7 @@ msgstr "" "correspondra à quelque expression que ce soit, sera suivi. Par défaut, tous " "les liens sont suivis." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8796,7 +8796,7 @@ msgstr "" "regexp sont spécifiés ensemble, alors --filter-regexp sera appliqué en " "premier." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Ne pas télécharger les feuilles de style CSS." @@ -10952,3 +10952,6 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "English (CY)" #~ msgstr "Anglais (CY)" + +#~ msgid "E-book Options" +#~ msgstr "Options E-book" diff --git a/src/calibre/translations/gl.po b/src/calibre/translations/gl.po index b8aed01848..9dfe8b8f4d 100644 --- a/src/calibre/translations/gl.po +++ b/src/calibre/translations/gl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:31+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:20+0000\n" "Last-Translator: Fidelinho \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1590,7 +1590,7 @@ msgstr "" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2468,11 +2468,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7044,14 +7044,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7060,14 +7060,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7076,21 +7076,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7341,7 +7341,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7723,75 +7723,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -7810,55 +7810,55 @@ msgstr "" msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7867,7 +7867,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "" diff --git a/src/calibre/translations/hr.po b/src/calibre/translations/hr.po index 1eb3b6b9c0..2b2f4a356e 100644 --- a/src/calibre/translations/hr.po +++ b/src/calibre/translations/hr.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" "PO-Revision-Date: 2010-01-25 02:27+0000\n" "Last-Translator: Miro Glavić \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1795,7 +1795,7 @@ msgstr "Objavljeno" msgid "Rights" msgstr "Prava" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "UREDNIČKI OSVRT" @@ -2811,11 +2811,11 @@ msgid "Fields to include in output:" msgstr "Polja koja uključiti u izlazu:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7639,14 +7639,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7655,14 +7655,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7671,21 +7671,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -8003,7 +8003,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Prikaži detaljne izlazne podatke. Korisno kod otkrivanja grešaka." @@ -8421,75 +8421,75 @@ msgstr "" msgid "Unknown News Source" msgstr "Nepoznat Izvor Vijesti" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "\"%s\" recept treba korisničko ime i lozinku." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Skidanje završeno" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Neuspjelo skidanje slijedećih artikala:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Neuspjelo skidanje dijelova slijedećih artikala:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " od " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tNeuspjele veze:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Nije moguće ugrabiti članak. Pokrenite s -w da vidite razlog." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Hvatanje dotoka..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Dobijeni dotoci sa indeks stranice" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Pokušaj skidanja omota..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Početak skidanja [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Dotoci skinuti na %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Nemoguće skinuti omot: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Skidanje omota sa %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artikal bez naslova" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Skinuti artikli: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Neuspjelo skidanje artikla: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Grabljenje dotoka" @@ -8508,7 +8508,7 @@ msgstr "Rasporedjeno" msgid "Custom" msgstr "Prilagođeni" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8518,11 +8518,11 @@ msgstr "" "\n" "Gdje URL je na primjer http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "Osnovni direktorij u koji je URL pohranjen. Standardan je %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -8530,7 +8530,7 @@ msgstr "" "Zastoj u sekundama za čekanje na odgovor od poslužitelja. Standardno: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8538,7 +8538,7 @@ msgstr "" "Makismalan broj razina za suvrat, kao dubina veze za slijediti. Standardno " "%default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8546,7 +8546,7 @@ msgstr "" "Maksimalan broj datoteka za skinuti. Ovo se samo odnosi na datoteke sa tagovima. Standardno je %default." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8554,7 +8554,7 @@ msgstr "" "Minimalan razmak u sekundama između uzastopnih hvatanja. Standardan je " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8562,7 +8562,7 @@ msgstr "" "Šifriranje stranica koje pokušavate skinuti. Normalno je da probate " "odgonetnuti šifru." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8572,7 +8572,7 @@ msgstr "" "može biti specificirana bezbroj puta, u kojem slučaju ako veza odgovara bilo " "kojem regexp, biće praćena. Standardno su sve veze praćene." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8586,7 +8586,7 @@ msgstr "" "ignorirana. Ako su oba --filter-regexp i --match-regexp specificirana, onda " "je --filter-regexp primijenjen prvi." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Ne skidaj CSS liste postavki" diff --git a/src/calibre/translations/lv.po b/src/calibre/translations/lv.po index 7b2ed14e70..67b574fde9 100644 --- a/src/calibre/translations/lv.po +++ b/src/calibre/translations/lv.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:33+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:46+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Latvian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: LATVIA\n" "X-Poedit-Language: Latvian\n" @@ -1582,7 +1582,7 @@ msgstr "Publicēts" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2464,11 +2464,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7067,14 +7067,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7083,14 +7083,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7099,21 +7099,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7364,7 +7364,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7746,75 +7746,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Lejupielāde pabeigta" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " no " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Mēģina lejupielādēt vāku..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Lejupielādē vāku no %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -7833,55 +7833,55 @@ msgstr "" msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7890,7 +7890,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "" diff --git a/src/calibre/translations/nl.po b/src/calibre/translations/nl.po index 260ea6fcc1..20f0143d78 100644 --- a/src/calibre/translations/nl.po +++ b/src/calibre/translations/nl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 17:18+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 @@ -1835,7 +1835,7 @@ msgstr "Gepubliceerd" msgid "Rights" msgstr "Rechten" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "REDACTIONELE BEOORDELING" @@ -2866,11 +2866,11 @@ msgid "Fields to include in output:" msgstr "Velden te gebruiken in uitvoer:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "E-Boek Opties" +msgid "E-book options" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7773,7 +7773,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking op: CSV, XML uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -7783,7 +7783,7 @@ msgstr "" "Standaard: '%default'\n" "Betrekking tot: ePub, MOBI uitvoer formaten" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7792,7 +7792,7 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" @@ -7803,7 +7803,7 @@ msgstr "" "Standaard: '%default' uitgezonderd labels in haken, b.v. '[ tags. Default is %default" @@ -8734,7 +8737,7 @@ msgstr "" "Het maximum aantal bestanden te downloaden. Dit is alleen van toepassing op " "bestanden in labels. Standaard is %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8742,7 +8745,7 @@ msgstr "" "Minimum inteval in seconden tussen aaneensluitende downloads. Standaard is " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8750,7 +8753,7 @@ msgstr "" "De karakter codering voor de websites die je probeert te downloaden. " "Standaard zal er worden geprobeerd om de codering te raden." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8761,7 +8764,7 @@ msgstr "" "link zal worden gevolgd als deze overeenkomt met ten minste een reguliere " "expressie. Standaard zullen alle links worden gevolgd." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8775,7 +8778,7 @@ msgstr "" "geen enkele link overgeslagen. indien zowel --filter-regexp en --match-" "regexp worden gebruikt, dan zal --filter-regexp allereerst worden toegepast." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Download geen CSS stylesheets" @@ -9892,3 +9895,6 @@ msgstr "Download geen CSS stylesheets" #~ "timestamp, title, uuid.\n" #~ "Standaard: '%default'\n" #~ "Betreft: CSV, XML uitvoer formaten" + +#~ msgid "E-book Options" +#~ msgstr "E-Boek Opties" diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index c96b89bbde..0cd13f6c67 100644 --- a/src/calibre/translations/pl.po +++ b/src/calibre/translations/pl.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:46+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:53+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1681,7 +1681,7 @@ msgstr "Opublikowana" msgid "Rights" msgstr "Uprawnienia" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2573,11 +2573,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7239,14 +7239,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7255,14 +7255,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7271,21 +7271,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7538,7 +7538,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" "Pokazuj szczegółowową informację wyjściową. Przydatne przy debugowaniu." @@ -7936,75 +7936,75 @@ msgstr "" msgid "Unknown News Source" msgstr "Nieznane źródło informacji" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Pobranie zakończone" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Nie udało się pobrać następujących artykułów:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Nie udało się pobrać części następujących artykułów:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " z " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Próbuję pobrać okładkę..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Rozpoczynam pobieranie [%d wątek(ków)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Źródła pobrano do %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Nie można pobrać okładki: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Pobieranie okładki z %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artykuł bez tytułu" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artykuł pobrany: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Pobieranie artykułu nie powiodło się: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -8023,7 +8023,7 @@ msgstr "Zaplanowano" msgid "Custom" msgstr "Dostosuj" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8033,23 +8033,23 @@ msgstr "" "\n" "Gdzie URL to na przykład http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "Czas oczekiwania na odpowiedź serwera. Domyślnie: %default sek." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8057,7 +8057,7 @@ msgstr "" "Maksymalna liczba plików do pobrania. Stosowane jedynie do plików z etykiet " ". Wartość domyślna: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8065,20 +8065,20 @@ msgstr "" "Minimalny odstęp w sekundach pomiędzy kolejnymi pobraniami. Domyślnie to " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8087,7 +8087,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Nie pobieraj arkuszy styli CSS." diff --git a/src/calibre/translations/pt_BR.po b/src/calibre/translations/pt_BR.po index da994bb885..5cbcd4cfe0 100644 --- a/src/calibre/translations/pt_BR.po +++ b/src/calibre/translations/pt_BR.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" "PO-Revision-Date: 2010-01-25 02:47+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:51+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1756,7 +1756,7 @@ msgstr "Publicado" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2654,11 +2654,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7251,14 +7251,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7267,14 +7267,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7283,21 +7283,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7555,7 +7555,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7937,75 +7937,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Download concluído" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Falha ao baixar os seguintes artigos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Falha ao baixar partes do artigos a seguir:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Tentando obter capa..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artigo sem título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artigo transferido: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -8024,55 +8024,55 @@ msgstr "" msgid "Custom" msgstr "Personalizado" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8081,7 +8081,7 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Não baixar folhas de estilo CSS." diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index 944970b1a3..de7233d9c7 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.55\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:30+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:27+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -1807,7 +1807,7 @@ msgstr "Опубликовано" msgid "Rights" msgstr "Права" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "ПРОСМОТР РЕДАКТИРОВАНИЯ" @@ -2715,11 +2715,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7411,14 +7411,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7427,14 +7427,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7443,21 +7443,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7770,7 +7770,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Показать детальную информацию. Используется для отладки." @@ -8165,75 +8165,75 @@ msgstr "" msgid "Unknown News Source" msgstr "Неизвестный новостной ресурс" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Закачка завершена" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Неудачная загрузка следующих статей:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Неудачная загрузка частей следующих статей:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " из " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tБитые ссылки:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Не может быть вызвана статья. Запустите с -w чтобы увидеть причину." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Вызываются заготовки..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Получить заготовки для оглавления" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Попытка скачать обложку..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Начало загрузки [%d поток(и)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Заготовки закачиватся в %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Невозможно скачать обложку: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Скачивается обложка из %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Статья без названия" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Статья скачена: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Ошибка загрузки статьи: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Доставляется материал" @@ -8252,7 +8252,7 @@ msgstr "Запланированно" msgid "Custom" msgstr "Пользовательский" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8262,19 +8262,19 @@ msgstr "" "\n" "Где URL на пример http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" "Основная директория, в которую сохранятся URL. По умолчанию: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" "Максимальное время ожидания ответа от сервера. По умолчанию: %default с" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8282,7 +8282,7 @@ msgstr "" "Максимально число уровней вложения, т.е. глубина последовательных ссылок. По " "умолчанию: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8290,7 +8290,7 @@ msgstr "" "Максимальное количество файлов для скачивания. Применимо только к файлам из " "тегов . По умолчанию: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8298,7 +8298,7 @@ msgstr "" "Минимальный интервал в секундах между последовательными вызовами. По " "умолчанию: %default с" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8306,7 +8306,7 @@ msgstr "" "Кодировка вебсайтов, которые вы собираетесь скачивать. По умолчанию делается " "попытка определения кодировки." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8317,7 +8317,7 @@ msgstr "" "скачиваться тогда, когда она совпадет хотя бы с одним из регулярных " "выражений. По умолчанию, никакие ссылки не скачиваются." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8331,7 +8331,7 @@ msgstr "" "умолчанию, ссылки не отклоняются. Если указаны обе опции --filter-regexp и --" "match-regexp, то вначале будет учитываться --filter-regexp." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Не скачивать файлы стилей CSS." diff --git a/src/calibre/translations/sq.po b/src/calibre/translations/sq.po index 0a32469551..6ba3b78f1f 100644 --- a/src/calibre/translations/sq.po +++ b/src/calibre/translations/sq.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:56+0000\n" "Last-Translator: Besnik \n" "Language-Team: Albanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:46+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1578,7 +1578,7 @@ msgstr "Botuar" msgid "Rights" msgstr "Të drejta" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2456,11 +2456,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7032,14 +7032,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7048,14 +7048,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7064,21 +7064,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7329,7 +7329,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7711,75 +7711,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -7798,55 +7798,55 @@ msgstr "" msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7855,6 +7855,6 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "" diff --git a/src/calibre/translations/sv.po b/src/calibre/translations/sv.po index f0b9f5d030..58089d731f 100644 --- a/src/calibre/translations/sv.po +++ b/src/calibre/translations/sv.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-24 14:40+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 23:11+0000\n" "Last-Translator: Merarom \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1810,7 +1810,7 @@ msgstr "Utgiven" msgid "Rights" msgstr "Rättigheter" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "Redigeringsgranskning" @@ -2831,11 +2831,11 @@ msgid "Fields to include in output:" msgstr "Fält för att inkludera i utdata::" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "E-book alternativ" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7699,7 +7699,7 @@ msgstr "" "Grundinställning: \"%default\"\n" "Gäller: CSV, XML utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" @@ -7709,7 +7709,7 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7717,8 +7717,13 @@ msgid "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Spara utdata från olika stadier av den stegvisa omvandling till den angivna " +"katalogen. Användbart om du är osäker på vilket stadium i " +"omvandlingsprocessen en bugg sker.\n" +"Grundinställning: '%default'None\n" +"Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" @@ -7729,7 +7734,7 @@ msgstr "" "'[]'\n" "Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7744,7 +7749,7 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformat" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" @@ -7754,7 +7759,7 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" @@ -7765,7 +7770,7 @@ msgstr "" "Grundinställning: '%default'\n" "Gäller: ePub, MOBI utformats" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -8105,7 +8110,7 @@ msgstr "" "Grundinställning: Ingen filtrering" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Visa detaljerad utdata. Användbart för felsökning" @@ -8532,75 +8537,75 @@ msgstr "Hämta inte senaste versionen av inbyggda recept från calibre-servern" msgid "Unknown News Source" msgstr "Okänd nyhetskälla" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "\"%s\" receptet behöver ett användarnamn och lösenord." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Hämtningen är färdig" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Misslyckades med att hämta följande artiklar:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Misslyckades med att hämta delar av följande artiklar:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " från " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tMisslyckade länkar:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Kunde inte hämta artikel. Kör med-vv för att se orsaken" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Hämtar flöden..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Fick flöden från indexsidan" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Försöker hämta omslaget ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Påbörjar hämtning [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Flöden ner laddningade till %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Kunde inte ladda ner omslag: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Laddar ner omslag från %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Namnlös Artikel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artikel nerladdad: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Artikelnerladdning misslyckades: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Hämtar flöde" @@ -8619,7 +8624,7 @@ msgstr "Schemalagd" msgid "Custom" msgstr "Anpassad" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8629,11 +8634,11 @@ msgstr "" "\n" "Där webbadressen är till exempel http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "Baskatalogen i vilken webbadress sparas. Grundinställning %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -8641,7 +8646,7 @@ msgstr "" "Tidsgräns i sekunder för att vänta på ett svar från servern. " "Grundinställning %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8649,7 +8654,7 @@ msgstr "" "Maximalt antal nivåer av upprepning dvs länkdjup att följa. Grundinställning " "%default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8657,7 +8662,7 @@ msgstr "" "Det maximala antal filer att ladda ner. Endast för filer med " "taggar. Grundinställning är %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8665,7 +8670,7 @@ msgstr "" "Minsta intervall i sekunder mellan varandra följande hämtar. " "Grundinställning är %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8673,7 +8678,7 @@ msgstr "" "Teckenkodning för de webbplatser som du försöker ladda ner. Grundinställning " "är att försöka gissa kodningen." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8683,7 +8688,7 @@ msgstr "" "alternativ kan anges flera gånger, i vilket fall så länge som en länk " "matchar någon regexp, kommer det att följas. Som standard följs alla länkar ." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8697,7 +8702,7 @@ msgstr "" "ignoreras. Om både --filter-regexp och --match-regexp anges så används --" "filter-regexp först." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Ladda inte ner CSS stilmallar." @@ -8750,3 +8755,6 @@ msgstr "Ladda inte ner CSS stilmallar." #~ "tidsstämpel, titel, UUID.\n" #~ "Grundinställning: \"%default\"\n" #~ "Gäller: CSV, XML utformat" + +#~ msgid "E-book Options" +#~ msgstr "E-book alternativ" diff --git a/src/calibre/translations/tr.po b/src/calibre/translations/tr.po index fb8379ab01..07cee79fe3 100644 --- a/src/calibre/translations/tr.po +++ b/src/calibre/translations/tr.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" "PO-Revision-Date: 2010-01-25 02:29+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:51+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1608,7 +1608,7 @@ msgstr "" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2486,11 +2486,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7062,14 +7062,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7078,14 +7078,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7094,21 +7094,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7359,7 +7359,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7741,75 +7741,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Başlıksız Yazı" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -7828,55 +7828,55 @@ msgstr "" msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7885,6 +7885,6 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "" diff --git a/src/calibre/translations/zh_TW.po b/src/calibre/translations/zh_TW.po index 9fa50f080d..882466be4a 100644 --- a/src/calibre/translations/zh_TW.po +++ b/src/calibre/translations/zh_TW.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 00:45+0000\n" -"PO-Revision-Date: 2010-01-25 02:28+0000\n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-25 18:44+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-25 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-01-26 04:51+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1589,7 +1589,7 @@ msgstr "已發佈" msgid "Rights" msgstr "所有權" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -2467,11 +2467,11 @@ msgid "Fields to include in output:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" +msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" @@ -7043,14 +7043,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:241 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:247 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7059,14 +7059,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7075,21 +7075,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:279 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7340,7 +7340,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "" @@ -7722,75 +7722,75 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" @@ -7809,55 +7809,55 @@ msgstr "" msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7866,6 +7866,6 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "" From 8a3254cdc3855637772ea09d8c10c459e317a1e2 Mon Sep 17 00:00:00 2001 From: Translators <> Date: Wed, 27 Jan 2010 04:44:29 +0000 Subject: [PATCH 002/158] Launchpad automatic translations update. --- src/calibre/translations/ar.po | 60 +++---- src/calibre/translations/es.po | 258 +++++++++++++++++++----------- src/calibre/translations/pl.po | 43 ++--- src/calibre/translations/sv.po | 2 +- src/calibre/translations/zh_TW.po | 8 +- 5 files changed, 228 insertions(+), 143 deletions(-) diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index 8e4cd75408..34f6ac7ea9 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:18+0000\n" -"Last-Translator: Kovid Goyal \n" +"PO-Revision-Date: 2010-01-26 10:42+0000\n" +"Last-Translator: meshari alnaim \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" +"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -368,11 +368,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 msgid "This profile is intended for the Amazon Kindle DX." -msgstr "هذا الطور يستخدم مع Amazon Kindle DX" +msgstr "ملف التعريف هذا يستخدم مع Amazon Kindle DX" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Installed plugins" -msgstr "ملحقات مثبتة" +msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 msgid "Mapping for filetype plugins" @@ -401,6 +401,10 @@ msgid "" " Customize calibre by loading external plugins.\n" " " msgstr "" +" %خيارات البرنامج\n" +"\n" +" المقدرة على التخصيص بتحميل الملحقات الخارجية .\n" +" " #: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." @@ -414,7 +418,7 @@ msgstr "حذف الملحق المخصص عن طريق اسمه. لا يؤثر msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." -msgstr "تخصيص الملحق حدد اسم الملحق وسلسلة التخصيص وفرقهما بفاصلة." +msgstr "تخصيص الملحق . حدد اسم الملحق وسلسلة التخصيص وفرقهما بفاصلة." #: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" @@ -458,31 +462,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى EB600 ." #: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 msgid "Communicate with the ESlick eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى ESlick ." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 msgid "Communicate with Hanlin V3 eBook readers." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Hanlin V3 ." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 msgid "Communicate with Hanlin V5 eBook readers." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Hanlin V5 ." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 msgid "Communicate with the BOOX eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى BOOX ." #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 msgid "Communicate with the Hanvon N520 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Hanvon N520 ." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى IRex Iliad ." #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 @@ -496,27 +500,27 @@ msgstr "واجهة الجهاز" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى IRex Digital Reader 1000 ." #: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 msgid "Communicate with the Iriver Story reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Iriver Story ." #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى JetBook ." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 msgid "Communicate with the Kindle eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Kindle ." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 msgid "Communicate with the Kindle 2 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Kindle 2 ." #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 msgid "Communicate with the Kindle DX eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Kindle DX ." #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." @@ -524,23 +528,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." -msgstr "" +msgstr "التواصل مع نوكيا 810" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 msgid "The Nook" -msgstr "" +msgstr "جهاز الـNook" #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Nook ." #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 msgid "Communicate with the Nuut2 eBook reader." -msgstr "" +msgstr "التواصل مع القارئ الكتاب الاليكترونى Nuut2 ." #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." -msgstr "" +msgstr "التواصل مع قارئ الكتاب الاليكتروني سوني PRS-500 ." #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 @@ -558,7 +562,7 @@ msgstr "يجري إحصاء قائمة كتب من الجهاز..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 msgid "Communicate with the Sony PRS-300/505/500 eBook reader." -msgstr "" +msgstr "التواصل مع قارئات الكتاب الاليكتروني سوني PRS-300/505/500 ." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 msgid "" @@ -583,11 +587,11 @@ msgstr "يجري حذف الكتب من الجهاز..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." -msgstr "يجري إرسال الميتاداتا إلى الجهاز..." +msgstr "يجري إرسال دليل المعلومات. إلى الجهاز..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." -msgstr "" +msgstr "التواصل مع قارئات الكتاب الاليكتروني سوني PRS-600/700/900 ." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." @@ -595,7 +599,7 @@ msgstr "لم يتمكن من كشف القرص %s. حاول إعادة التش #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 msgid "Unable to detect the %s mount point. Try rebooting." -msgstr "" +msgstr "غير قادر على الكشف عن %s نقطة التحميل. حاول إعادة التشغيل." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." diff --git a/src/calibre/translations/es.po b/src/calibre/translations/es.po index f6824e5648..ed5da6f553 100644 --- a/src/calibre/translations/es.po +++ b/src/calibre/translations/es.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 00:18+0000\n" -"PO-Revision-Date: 2010-01-22 18:24+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-26 13:52+0000\n" +"Last-Translator: Jellby \n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-23 04:43+0000\n" +"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -33,7 +33,7 @@ msgstr "No hacer nada en absoluto" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -130,12 +130,12 @@ msgstr "No hacer nada en absoluto" #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1547 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1549 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 @@ -163,7 +163,7 @@ msgstr "Escritor de metadados" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 msgid "Catalog generator" -msgstr "" +msgstr "Generador de catálogo" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" @@ -463,11 +463,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "Comunicar con el lector de libros electrónicos Binatone Readme." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Comunicar con el teléfono Blackberry" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -475,7 +475,7 @@ msgstr "Kovid Goyal" #: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." -msgstr "" +msgstr "Comunicarse con el Cybook Gen 3 / Opus libro electrónico." #: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." @@ -586,6 +586,8 @@ msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " msgstr "" +"Lista (separada por comas) de campos de metadatos para convertir en " +"colecciones en el dispositivo. Las posibilidades son: " #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 @@ -663,7 +665,7 @@ msgstr "No hay suficiente espacio libre en la tarjeta de almacenamiento" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1447 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "Noticias" @@ -819,8 +821,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Dejar imágenes sin procesar" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 msgid "Page" msgstr "Página" @@ -1827,7 +1829,7 @@ msgstr "Publicado" msgid "Rights" msgstr "Derechos" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "REVISIÓN EDITORIAL" @@ -2792,7 +2794,7 @@ msgstr "Guardado" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "Opciones CSV/XML" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2859,31 +2861,38 @@ msgstr "Formulario" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Campos para incluir en la salida:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "Opciones de libro digital" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "Catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 msgid "Tags to exclude as genres (regex):" -msgstr "" +msgstr "Etiquetas para excluir de los géneros (regex):" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 msgid "'Don't include this book' tag:" -msgstr "" +msgstr "Etiqueta para 'no incluir este libro':" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 msgid "'Mark this book as read' tag:" -msgstr "" +msgstr "Etiqueta para 'marcar este libro como leído':" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 msgid "Additional note tag prefix:" -msgstr "" +msgstr "Prefijo para las etiquetas de notas adicionales:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" -msgstr "" +msgstr "Plantilla para catalog.ui" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" @@ -3858,7 +3867,7 @@ msgstr "" "ebook.com/user_manual/xpath.html\">Tutorial de XPathl.

" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 msgid "No details available." msgstr "No hay detalles disponibles." @@ -4039,7 +4048,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 msgid "Sending catalogs to device." -msgstr "" +msgstr "Enviando catálogos al dispositivo." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." @@ -4139,11 +4148,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog options" -msgstr "" +msgstr "Opciones de catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 msgid "Generate catalog for {0} books" -msgstr "" +msgstr "Generar catálogo para {0} libros" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" @@ -6476,7 +6485,7 @@ msgstr "Convertir en bloque" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Crear catálogo de los libros en la biblioteca de calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6503,7 +6512,7 @@ msgstr "Elija otra ubicación para la biblioteca de libros electrónicos." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Guía de inicio rápido de calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" @@ -6719,15 +6728,15 @@ msgstr "Pulse el botón \"Mostrar detalles\" para ver cuáles." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 msgid "No books selected to generate catalog for" -msgstr "" +msgstr "No se han seleccionado libros para generar el catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 msgid "Generating %s catalog..." -msgstr "" +msgstr "Generando catálogo %s..." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 msgid "Catalog generated." -msgstr "" +msgstr "Catálogo generado." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 msgid "Export Catalog Directory" @@ -6735,7 +6744,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 msgid "Select destination for %s.%s" -msgstr "" +msgstr "Seleccionar destino para %s.%s" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 msgid "Fetching news from " @@ -7076,6 +7085,8 @@ msgstr "Anchura máxima de la ventana del visor, en píxeles." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" +"Redimensionar las imágenes mayores que la ventana del visor para que quepan " +"en ella" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" @@ -7193,7 +7204,7 @@ msgstr "Previsualización de impresión" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 msgid "Connecting to dict.org to lookup: %s…" -msgstr "" +msgstr "Conectando con dict.org para buscar: %s..." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 msgid "Choose ebook" @@ -7274,7 +7285,7 @@ msgstr "Visor de libros electrónicos" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 msgid "Close dictionary" -msgstr "" +msgstr "Cerrar diccionario" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 msgid "toolBar" @@ -7326,11 +7337,11 @@ msgstr "Imprimir libro electrónico" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 msgid "Copy Image" -msgstr "" +msgstr "Copiar imagen" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 msgid "Paste Image" -msgstr "" +msgstr "Pegar imagen" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" @@ -7773,6 +7784,11 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Los campos que se muestran cuando se crean catálogos de los libros en la " +"base de datos. Debe ser una lista de campos separados por comas. Los campos " +"disponibles son: %s\n" +"Valor por defecto: '%%default'\n" +"Aplicable a: formatos de salida CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 msgid "" @@ -7781,6 +7797,11 @@ msgid "" "Default: '%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Campo de salida por el que se ordenará.\n" +"Los campos disponibles son: author_sort, id, rating, size, timestamp, " +"title.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 msgid "" @@ -7788,15 +7809,37 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Título del catálogo generado, se usará como título en los metadatos.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Guarda la salida de las distintas fases del proceso de conversión en el " +"directorio especificado. Es útil si no está seguro de en qué etapa del " +"proceso ocurre un fallo.\n" +"Valor por defecto: '%default'None\n" +"Aplicable a: formatos de salida ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Expresión regular que describe las etiquetas que no se considerarán como " +"géneros.\n" +"Valor por defecto: '%default' excluye las etiquetas entre corchetes, por " +"ejemplo '[]'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:249 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7804,22 +7847,34 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Lista de palabras en las etiquetas, separadas por comas, que deben excluirse " +"de la salida. No se distinguen mayúsculas y minúsculas. --exclude-" +"tags=omitir concuerda con 'Omitir este libro' y 'tambien omitir este'.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Etiqueta que indica que el libro ya ha sido leído.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Prefijo para las etiquetas de notas de usuario, por ejemplo '*a Juan le " +"gustaría leer esto'.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:267 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7828,6 +7883,11 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Especifica el perfil de salida. En algunos casos, se requiere un perfil de " +"salida para optimizar el catálogo para un dispositivo. Por ejemplo, 'kindle' " +"o 'kindle_dx' crea un Índice estructurado con secciones y artículos.\n" +"Valor por defecto: '%default'\n" +"Aplicable a: formatos de salida ePub y MOBI" #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" @@ -8131,6 +8191,14 @@ msgid "" "ouput.\n" " " msgstr "" +"\n" +" %prog catalog /ruta/al/destino.(csv|epub|mobi|xml ...) [opciones]\n" +"\n" +" Exportar un catálogo en el formato especificado por la extensión de " +"/ruta/al/destino.\n" +" Las opciones controlan cómo se muestran las entradas en el catálogo " +"generado.\n" +" " #: /home/kovid/work/calibre/src/calibre/library/cli.py:648 msgid "" @@ -8138,6 +8206,10 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Lista de ID de la base de dato, separadas por comas, para incluir en el " +"catálogo.\n" +"Si se declara, no se usará --search.\n" +"Valor por defecto: todas" #: /home/kovid/work/calibre/src/calibre/library/cli.py:652 msgid "" @@ -8145,15 +8217,18 @@ msgid "" "please see the search-related documentation in the User Manual.\n" "Default: no filtering" msgstr "" +"Filtrar los resultados según la búsqueda. Para el formato de la búsqueda, " +"véase la documentación relativa a búsquedas en el Manual de usuario.\n" +"Valor por defecto: sin filtrado" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Mostrar información de salida detallada. Útil para la depuración" #: /home/kovid/work/calibre/src/calibre/library/cli.py:671 msgid "Error: You must specify a catalog output file" -msgstr "" +msgstr "Error: Debe especificar un fichero de salida para el catálogo" #: /home/kovid/work/calibre/src/calibre/library/cli.py:689 msgid "" @@ -8176,34 +8251,29 @@ msgstr "" "\n" "Para ver la ayuda de cada orden ejecute: %%prog orden --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1429 -msgid "Catalog" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1691 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "" "

Migrando la base de datos antigua a la biblioteca de libros electrónicos " "en %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1720 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "Copiando %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1737 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "Compactando la base de datos" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1830 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "Comprobando la integridad de SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1867 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "Comprobando ficheros inexistentes." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "ID comprobado" @@ -8220,6 +8290,8 @@ msgid "" "The author sort string. To use only the first letter of the name use " "{author_sort[0]}" msgstr "" +"La cadena para ordenar autores. Para usar sólo la primera letra del nombre, " +"use {author_sort[0]}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 msgid "The tags" @@ -8232,6 +8304,8 @@ msgstr "La serie" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" +"El número de la serie. Para introducir ceros a la izquireda, use " +"{series_index:0>3s}" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 msgid "The rating" @@ -8346,7 +8420,7 @@ msgstr "Convertir las rutas a minúsculas." msgid "Replace whitespace with underscores." msgstr "Sustituir espacios en blanco con guiones bajos." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:255 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "Los formatos solicitados no están disponibles" @@ -8355,7 +8429,7 @@ msgid "Password to access your calibre library. Username is " msgstr "" "Contraseña para acceder a la biblioteca de calibre. El nombre de usuario es " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -8365,7 +8439,7 @@ msgstr "" "\n" "Iniciar el servidor de contenidos de calibre." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" "Ruta a la carpeta de biblioteca a servir con el servidor de contenido" @@ -8443,7 +8517,7 @@ msgstr "Detenido" msgid "Finished" msgstr "Terminado" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 msgid "Working..." msgstr "Trabajando..." @@ -8477,7 +8551,7 @@ msgstr "Inglés (Australia)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 msgid "English (New Zealand)" -msgstr "" +msgstr "Inglés (Nueva Zelanda)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 msgid "English (Canada)" @@ -8505,7 +8579,7 @@ msgstr "Inglés (Singapur)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Inglés (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8583,76 +8657,76 @@ msgstr "" msgid "Unknown News Source" msgstr "Fuente de noticias desconocida" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "La receta \"%s\" necesita usuario y contraseña." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Descarga finalizada" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Fallo al descargar los siguientes artículos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Fallo al descargar partes de los siguientes artículos" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tEnlaces fallidos:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "No se pudo obtener el artículo. Ejecute calibre con -vv para ver el motivo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Obteniendo canales de noticias..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Se obtivieron canales de noticias de la página principal" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Intentando descargar la portada..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Iniciando la descarga [%d proceso(s)]" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Canales de noticias descargados en %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "No se pudo descargar la portada: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Descargando la portada desde %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Artículo sin título" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artículo descargado: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Falló la descarga del artículo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Obteniendo canal de noticias" @@ -8671,7 +8745,7 @@ msgstr "Planificado" msgid "Custom" msgstr "Personalizado" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8681,12 +8755,12 @@ msgstr "" "\n" "Donde URL es por ejemplo http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" "Directorio base en el cual se almacena la URL. Por defecto es %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -8694,7 +8768,7 @@ msgstr "" "Tiempo máximo de espera de respuesta del servidor (en segundos). Valor por " "defecto: %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8702,7 +8776,7 @@ msgstr "" "Máximo número de niveles de recursión, es decir, profundidad de los enlaces " "a seguir. Valor por defecto: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8710,7 +8784,7 @@ msgstr "" "El número máximo de ficheros a descargar. Esto se aplica solamente a " "ficheros procedentes de etiquetas . Por defecto es %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8718,7 +8792,7 @@ msgstr "" "Intervalo minimo en segundos entre adquisiciones de datos consecutivas. " "Valor defecto: %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8726,7 +8800,7 @@ msgstr "" "Codificación para los sitios web que está intentando descargar. Por defecto " "se intentará averiguar la codificación." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8737,7 +8811,7 @@ msgstr "" "de las expresiones regulares, se seguirá el enlace. Por defecto todos los " "enlaces se siguen." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8751,7 +8825,7 @@ msgstr "" "enlace se descarta. Si ambas opciones --filter-regexp y --match-regexp se " "especifican, entonces --filter-regexp se aplica primero." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "No descargar estilos CSS." diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index 0cd13f6c67..8ce5573780 100644 --- a/src/calibre/translations/pl.po +++ b/src/calibre/translations/pl.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:53+0000\n" -"Last-Translator: Kovid Goyal \n" +"PO-Revision-Date: 2010-01-27 02:48+0000\n" +"Last-Translator: alcik \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -160,7 +160,7 @@ msgstr "Zapisywacz metadanych" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 msgid "Catalog generator" -msgstr "Generator katalogowy" +msgstr "Generator katalogów" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" @@ -186,9 +186,9 @@ msgid "" "directory pmlname_img or images. This plugin is run every time you add a PML " "file to the library." msgstr "" -"Tworzenie archiwum PMLZ zawierającą plik PML i wszystkie obrazy w " -"pmlname_img lub images. Plugin ten jest uruchamiany przy każdym dodaniu PML " -"pliku do biblioteki." +"Stwórz archiwum PMLZ zawierające plik PML i wszystkie obrazy z katalogu " +"pmlname_img lub images. Plugin ten jest uruchamiany przy każdym dodaniu " +"pliku PML do biblioteki." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 msgid "Extract cover from comic files" @@ -245,6 +245,10 @@ msgid "" "useful for documents that do not declare an encoding or that have erroneous " "encoding declarations." msgstr "" +"Określ kodowanie znaków dokumentu wejściowego. Jeśli ta opcja zostanie " +"wybrana, zastąpi dowolne kodowanie zadeklarowane przez sam dokument. " +"Szczególnie przydatne w przypadku dokumentów, które nie deklarują kodowania " +"lub które mają błędne deklaracje kodowania." #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" @@ -677,7 +681,7 @@ msgstr "Odczytaj dane meta z książek na urządzeniu" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 msgid "Template to control how books are saved" -msgstr "" +msgstr "Szablon do kontrolowania sposobu, w jaki książki są zapisywane" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 @@ -1115,6 +1119,8 @@ msgid "" "Insert the book metadata at the start of the book. This is useful if your " "ebook reader does not support displaying/searching metadata directly." msgstr "" +"Wstaw metadane książki na początku książki. Jest to przydatne, jeśli czytnik " +"ebook nie obsługuje wyświetlania / wyszukiwanie metadanych bezpośrednio." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 msgid "" @@ -3700,7 +3706,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 msgid "Sending catalogs to device." -msgstr "" +msgstr "Trwa wysyłanie katalogów do urządzenia" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." @@ -3777,28 +3783,29 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 msgid "Generate catalog" -msgstr "" +msgstr "Wygeneruj katalog" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 msgid "Catalog &format:" -msgstr "" +msgstr "&Format katalogu:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" +"&Tytuł katalogu (istniejący katalog o tej samej nazwie zostanie nadpisany):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 msgid "&Send catalog to device automatically" -msgstr "" +msgstr "Automatycznie wyślij katalog do urządzenia" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog options" -msgstr "" +msgstr "Opcje katalogu" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 msgid "Generate catalog for {0} books" -msgstr "" +msgstr "Wygeneruj katalog dla {0} książek" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" @@ -6018,7 +6025,7 @@ msgstr "Masowa konwersja" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Stwórz katalog książek w Twojej bibliotece calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6146,7 +6153,7 @@ msgstr "Nie można było odczytać metadanych z nastepujących" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 msgid "Cannot delete" -msgstr "" +msgstr "Usunięcie niemożliwe." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 @@ -7545,7 +7552,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:671 msgid "Error: You must specify a catalog output file" -msgstr "" +msgstr "Błąd: musisz podać plik wyjściowy katalogu" #: /home/kovid/work/calibre/src/calibre/library/cli.py:689 msgid "" @@ -7962,7 +7969,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" -msgstr "" +msgstr "Nie udało się pobrać artykułu. Użyj -vv, by zobaczyć przyczynę" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." diff --git a/src/calibre/translations/sv.po b/src/calibre/translations/sv.po index 58089d731f..410b81ed4c 100644 --- a/src/calibre/translations/sv.po +++ b/src/calibre/translations/sv.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/zh_TW.po b/src/calibre/translations/zh_TW.po index 882466be4a..925a80b5b0 100644 --- a/src/calibre/translations/zh_TW.po +++ b/src/calibre/translations/zh_TW.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:44+0000\n" -"Last-Translator: Kovid Goyal \n" +"PO-Revision-Date: 2010-01-26 11:10+0000\n" +"Last-Translator: Chien Cheng Wei \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:51+0000\n" +"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -148,7 +148,7 @@ msgstr "基本" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" -msgstr "文件類型" +msgstr "檔案類型" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" From 14502fa127d3da3dd3170fb3610b7a798540f54b Mon Sep 17 00:00:00 2001 From: Translators <> Date: Thu, 28 Jan 2010 04:34:36 +0000 Subject: [PATCH 003/158] Launchpad automatic translations update. --- src/calibre/translations/ar.po | 10 +- src/calibre/translations/ast.po | 7865 +++++++++++++++++++++++++++++++ src/calibre/translations/es.po | 34 +- src/calibre/translations/nl.po | 26 +- src/calibre/translations/pl.po | 2 +- 5 files changed, 7904 insertions(+), 33 deletions(-) create mode 100644 src/calibre/translations/ast.po diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index 34f6ac7ea9..9cd812b9af 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-26 10:42+0000\n" +"PO-Revision-Date: 2010-01-27 06:24+0000\n" "Last-Translator: meshari alnaim \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -269,6 +269,8 @@ msgid "" "This profile tries to provide sane defaults and is useful if you know " "nothing about the input document." msgstr "" +"ملف تعريف هذا يحاول تقديم افتراضات عاقلة ومفيدة إذا كنت لا تعرف شيئا عن " +"وثيقة الإدخال." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 @@ -372,7 +374,7 @@ msgstr "ملف التعريف هذا يستخدم مع Amazon Kindle DX" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Installed plugins" -msgstr "" +msgstr "ملحقات مثبتة" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 msgid "Mapping for filetype plugins" @@ -524,7 +526,7 @@ msgstr "التواصل مع القارئ الكتاب الاليكترونى Kin #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 msgid "Communicate with the Nokia 770 internet tablet." -msgstr "" +msgstr "التواصل مع نوكيا 770" #: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 msgid "Communicate with the Nokia 810 internet tablet." diff --git a/src/calibre/translations/ast.po b/src/calibre/translations/ast.po new file mode 100644 index 0000000000..537a42abaa --- /dev/null +++ b/src/calibre/translations/ast.po @@ -0,0 +1,7865 @@ +# Asturian translation for calibre +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the calibre package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: calibre\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-27 22:39+0000\n" +"Last-Translator: Yagüe \n" +"Language-Team: Asturian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 +msgid "Does absolutely nothing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:70 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:74 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:66 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:81 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:281 +#: /home/kovid/work/calibre/src/calibre/library/database.py:913 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 +msgid "Unknown" +msgstr "Desconocío" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 +msgid "Base" +msgstr "Base" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 +msgid "File type" +msgstr "Formatu de ficheru" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 +msgid "Metadata reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 +msgid "Metadata writer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "Xenerador de catálogu" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 +msgid "" +"Follow all local links in an HTML file and create a ZIP file containing all " +"linked files. This plugin is run every time you add an HTML file to the " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 +msgid "" +"Character encoding for the input HTML files. Common choices include: cp1252, " +"latin1, iso-8859-1 and utf-8." +msgstr "" +"Codificación de carauteres pa los ficheros HTML d'entrada. Les eleiciones " +"más comunes incluyen: cp1252, latin1, iso-8859-1 ya utf-8." + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 +msgid "" +"Create a PMLZ archive containing the PML file and all images in the " +"directory pmlname_img or images. This plugin is run every time you add a PML " +"file to the library." +msgstr "" +"Crear un ficheru PMLZ conteniendo'l ficheru PML y toes les imaxes nel " +"direutoriu pmlname_img o images. Esti complementu ye executáu cá vez que " +"s'añade un ficheru PML a la llibrería." + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 +msgid "Extract cover from comic files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:171 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:191 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:277 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:287 +msgid "Read metadata from %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +msgid "Read metadata from ebooks in RAR archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +msgid "Read metadata from ebooks in ZIP archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 +msgid "Set metadata in %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 +msgid "Set metadata from %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 +msgid "Conversion Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +msgid "" +"Specify the character encoding of the input document. If set this option " +"will override any encoding declared by the document itself. Particularly " +"useful for documents that do not declare an encoding or that have erroneous " +"encoding declarations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 +msgid "Conversion Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 +msgid "" +"If specified, the output plugin will try to create output that is as human " +"readable as possible. May not have any effect for some output plugins." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:44 +msgid "Input profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:48 +msgid "" +"This profile tries to provide sane defaults and is useful if you know " +"nothing about the input document." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 +msgid "This profile is intended for the Microsoft Reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 +msgid "This profile is intended for the Mobipocket books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 +msgid "This profile is intended for the Hanlin V3 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 +msgid "This profile is intended for the Cybook G3." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 +msgid "This profile is intended for the Cybook Opus." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 +msgid "This profile is intended for the Amazon Kindle." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 +msgid "This profile is intended for the Irex Illiad." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 +msgid "This profile is intended for the IRex Digital Reader 1000." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 +msgid "Output profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +msgid "" +"This profile tries to provide sane defaults and is useful if you want to " +"produce a document intended to be read at a computer or on a range of " +"devices." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 +msgid "This profile is intended for the 5-inch JetBook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/700 etc, in " +"landscape mode. Mainly useful for comics." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 +msgid "This profile is intended for the Amazon Kindle DX." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 +msgid "Installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +msgid "Mapping for filetype plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +msgid "Local plugin customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +msgid "Disabled plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 +msgid "No valid plugin found in " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 +msgid "Initialization of plugin %s failed with traceback:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 +msgid "" +" %prog options\n" +"\n" +" Customize calibre by loading external plugins.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 +msgid "Add a plugin by specifying the path to the zip file containing it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 +msgid "Remove a custom plugin by name. Has no effect on builtin plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 +msgid "" +"Customize plugin. Specify name of plugin and customization string separated " +"by a comma." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 +msgid "List all installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 +msgid "Enable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 +msgid "Disable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 +msgid "Communicate with Android phones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 +msgid "" +"Comma separated list of directories to send e-books to on the device. The " +"first one that exists will be used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +msgid "Communicate with the Blackberry smart phone." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 +msgid "Kovid Goyal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 +msgid "Communicate with the EB600 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 +msgid "Communicate with the ESlick eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 +msgid "Communicate with the IRex Iliad eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 +msgid "Device Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 +msgid "Communicate with the IRex Digital Reader 1000 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +msgid "Communicate with the Iriver Story reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 +msgid "Communicate with the JetBook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 +msgid "Communicate with the Kindle eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 +msgid "Communicate with the Kindle 2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +msgid "Communicate with the Kindle DX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +msgid "The Nook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +msgid "Communicate with the Nook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +msgid "Communicate with the Nuut2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 +msgid "Communicate with the Sony PRS-500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 +msgid "Getting list of books on device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 +msgid "Communicate with the Sony PRS-300/505/500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +msgid "Removing books from device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 +msgid "Sending metadata to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 +msgid "Unable to detect the %s disk drive. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 +msgid "Unable to detect the %s disk drive." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 +msgid "Could not find mount helper: %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 +msgid "" +"Unable to detect the %s disk drive. Your kernel is probably exporting a " +"deprecated version of SYSFS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 +msgid "Unable to mount main memory (Error code: %d)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 +msgid "The reader has no storage card in this slot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 +msgid "Selected slot: %s is not supported." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 +msgid "There is insufficient free space in main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 +msgid "There is insufficient free space on the storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +msgid "News" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 +msgid "Configure Device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 +msgid "settings for device drivers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 +msgid "Ordered list of formats the device will accept" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 +msgid "Place files in sub directories if the device supports them" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +msgid "Read metadata from files on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +msgid "Extra customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 +msgid "Communicate with an eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +msgid "Get device information..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 +msgid "Adding books to device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 +msgid "Removing books from device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 +msgid "Rendered %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 +msgid "Failed %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 +msgid "" +"Failed to process comic: \n" +"\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 +msgid "" +"Disable normalize (improve contrast) color range for pictures. Default: False" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +msgid "Maintain picture aspect ratio. Default is to fill the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 +msgid "Disable sharpening." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 +msgid "" +"Disable trimming of comic pages. For some comics, trimming might remove " +"content as well as borders." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 +msgid "Don't split landscape images into two portrait images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 +msgid "" +"Keep aspect ratio and scale image using screen height as image width for " +"viewing in landscape mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 +msgid "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 +msgid "" +"Enable Despeckle. Reduces speckle noise. May greatly increase processing " +"time." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"Don't sort the files found in the comic alphabetically by name. Instead use " +"the order they were added to the comic." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 +msgid "Apply no processing to the image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +msgid "Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 +msgid "" +"input_file output_file [options]\n" +"\n" +"Convert an ebook from one format to another.\n" +"\n" +"input_file is the input and output_file is the output. Both must be " +"specified as the first two arguments to the command.\n" +"\n" +"The output ebook format is guessed from the file extension of output_file. " +"output_file can also be of the special format .EXT where EXT is the output " +"file extension. In this case, the name of the output file is derived the " +"name of the input file. Note that the filenames must not start with a " +"hyphen. Finally, if output_file has no extension, then it is treated as a " +"directory and an \"open ebook\" (OEB) consisting of HTML files is written to " +"that directory. These files are the files that would normally have been " +"passed to the output plugin.\n" +"\n" +"After specifying the input and output file you can customize the conversion " +"by specifying various options. The available options depend on the input and " +"output file types. To get help on them specify the input and output file and " +"then use the -h option.\n" +"\n" +"For full documentation of the conversion system see\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 +msgid "INPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 +msgid "Options to control the processing of the input %s file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 +msgid "OUTPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 +msgid "Options to control the processing of the output %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 +msgid "Options to control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 +msgid "Control auto-detection of document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 +msgid "" +"Control the automatic generation of a Table of Contents. By default, if the " +"source file has a Table of Contents, it will be used in preference to the " +"automatically generated one." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 +msgid "Options to set metadata in the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 +msgid "Options to help with debugging the conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 +msgid "List builtin recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 +msgid "Output saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 +msgid "Level of verbosity. Specify multiple times for greater verbosity." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 +msgid "" +"Specify the input profile. The input profile gives the conversion system " +"information on how to interpret various information in the input document. " +"For example resolution dependent lengths (i.e. lengths in pixels). Choices " +"are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 +msgid "" +"Specify the output profile. The output profile tells the conversion system " +"how to optimize the created document for the specified device. In some " +"cases, an output profile is required to produce documents that will work on " +"a device. For example EPUB on the SONY reader. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 +msgid "" +"The base font size in pts. All font sizes in the produced book will be " +"rescaled based on this size. By choosing a larger size you can make the " +"fonts in the output bigger and vice versa. By default, the base font size is " +"chosen based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 +msgid "" +"Mapping from CSS font names to font sizes in pts. An example setting is " +"12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" +"large, with the final size being for huge fonts. The font rescaling " +"algorithm uses these sizes to intelligently rescale fonts. The default is to " +"use a mapping based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 +msgid "Disable all rescaling of font sizes." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 +msgid "" +"The line height in pts. Controls spacing between consecutive lines of text. " +"By default no line height manipulation is performed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 +msgid "" +"Some badly designed documents use tables to control the layout of text on " +"the page. When converted these documents often have text that runs off the " +"page and other artifacts. This option will extract the content from the " +"tables and present it in a linear fashion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level one. If this is specified, it takes precedence over " +"other forms of auto-detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level two. Each entry is added under the previous level one " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level three. Each entry is added under the previous level two " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 +msgid "" +"Normally, if the source file already has a Table of Contents, it is used in " +"preference to the auto-generated one. With this option, the auto-generated " +"one is always used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 +msgid "Don't add auto-detected chapters to the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 +msgid "" +"If fewer than this number of chapters is detected, then links are added to " +"the Table of Contents. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 +msgid "" +"Maximum number of links to insert into the TOC. Set to 0 to disable. Default " +"is: %default. Links are only added to the TOC if less than the threshold " +"number of chapters were detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 +msgid "" +"Remove entries from the Table of Contents whose titles match the specified " +"regular expression. Matching entries and all their children are removed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 +msgid "" +"An XPath expression to detect chapter titles. The default is to consider " +"

or

tags that contain the words \"chapter\",\"book\",\"section\" or " +"\"part\" as chapter titles as well as any tags that have class=\"chapter\". " +"The expression used must evaluate to a list of elements. To disable chapter " +"detection, use the expression \"/\". See the XPath Tutorial in the calibre " +"User Manual for further help on using this feature." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 +msgid "" +"Specify how to mark detected chapters. A value of \"pagebreak\" will insert " +"page breaks before chapters. A value of \"rule\" will insert a line before " +"chapters. A value of \"none\" will disable chapter marking and a value of " +"\"both\" will use both page breaks and lines to mark chapters." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 +msgid "" +"Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " +"the style rules from the source file, so it can be used to override those " +"rules." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 +msgid "" +"An XPath expression. Page breaks are inserted before the specified elements." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 +msgid "" +"Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 +msgid "" +"Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 +msgid "" +"Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 +msgid "" +"Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 +msgid "" +"Do not force text to be justified in output. Whether text is actually " +"displayed justified or not depends on whether the ebook format and reading " +"device support justification." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 +msgid "" +"Remove spacing between paragraphs. Also sets an indent on paragraphs of " +"1.5em. Spacing removal will not work if the source file does not use " +"paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +msgid "" +"When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +msgid "" +"Use the cover detected from the source file in preference to the specified " +"cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 +msgid "" +"Insert a blank line between paragraphs. Will not work if the source file " +"does not use paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +msgid "" +"Remove the first image from the input ebook. Useful if the first image in " +"the source file is a cover and you are specifying an external cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 +msgid "" +"Insert the book metadata at the start of the book. This is useful if your " +"ebook reader does not support displaying/searching metadata directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 +msgid "" +"Attempt to detect and correct hard line breaks and other problems in the " +"source file. This may make things worse, so use with care." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 +msgid "Use a regular expression to try and remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +msgid "The regular expression to use to remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 +msgid "Use a regular expression to try and remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +msgid "The regular expression to use to remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +msgid "" +"Read metadata from the specified OPF file. Metadata read from this file will " +"override any metadata in the source file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +msgid "" +"Transliterate unicode characters to an ASCII representation. Use with care " +"because this will replace unicode characters with ASCII. For instance it " +"will replace \"%s\" with \"Mikhail Gorbachiov\". Also, note that in cases " +"where there are multiple representations of a character (characters shared " +"by Chinese and Japanese for instance) the representation used by the largest " +"number of people will be used (Chinese in the previous example)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 +msgid "Set the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 +msgid "Set the authors. Multiple authors should be separated by ampersands." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 +msgid "The version of the title to be used for sorting. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 +msgid "String to be used when sorting by author. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 +msgid "Set the cover to the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 +msgid "Set the ebook description." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 +msgid "Set the ebook publisher." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 +msgid "Set the series this ebook belongs to." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 +msgid "Set the index of the book in this series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 +msgid "Set the rating. Should be a number between 1 and 5." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 +msgid "Set the ISBN of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 +msgid "Set the tags for the book. Should be a comma separated list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 +msgid "Set the book producer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 +msgid "Set the language." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 +msgid "Could not find an ebook inside the archive" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 +msgid "Values of series index and rating must be numbers. Ignoring" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 +msgid "Converting input to HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 +msgid "Running transforms on ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 +msgid "Creating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:57 +msgid "" +"Extract the contents of the generated EPUB file to the specified directory. " +"The contents of the directory are first deleted, so be careful." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:63 +msgid "" +"Turn off splitting at page breaks. Normally, input files are automatically " +"split at every page break into two files. This gives an output ebook that " +"can be parsed faster and with less resources. However, splitting is slow and " +"if your source file contains a very large number of page breaks, you should " +"turn off splitting on page breaks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:74 +msgid "" +"Split all HTML files larger than this size (in KB). This is necessary as " +"most EPUB readers cannot handle large file sizes. The default of %defaultKB " +"is the size required for Adobe Digital Editions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:81 +msgid "" +"Normally, if the input file has no cover and you don't specify one, a " +"default cover is generated with the title, authors, etc. This option " +"disables the generation of this cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +msgid "Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 +msgid "Do not insert a Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:37 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:35 +msgid "Add Table of Contents to beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:243 +msgid "" +"Traverse links in HTML files breadth first. Normally, they are traversed " +"depth first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:250 +msgid "" +"Maximum levels of recursion when following links in HTML files. Must be non-" +"negative. 0 implies that no links in the root HTML file are followed. " +"Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:259 +msgid "" +"Normally this input plugin re-arranges all the input files into a standard " +"folder hierarchy. Only use this option if you know what you are doing as it " +"can result in various nasty side effects in the rest of of the conversion " +"pipeline." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:267 +msgid "" +"Average line length for line breaking if the HTML is from a previous partial " +"conversion of a PDF file. Default is %default which disables this." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 +msgid "Creating LIT file from EPUB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 +msgid "\tBook Designer file detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 +msgid "\tParsing HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 +msgid "\tBaen file detected. Re-parsing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +msgid "Written preprocessed HTML to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 +msgid "Processing %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 +msgid "\tConverting to BBeB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 +msgid "Could not parse file: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 +msgid "%s is an empty file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 +msgid "Failed to parse link %s %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 +msgid "Cannot add link %s to TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 +msgid "Unable to process image %s. Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 +msgid "Unable to process interlaced PNG %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 +msgid "" +"Could not process image: %s\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 +msgid "" +"An error occurred while processing a table: %s. Ignoring table markup." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 +msgid "" +"Bad table:\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 +msgid "Table has cell that is too large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 +msgid "Could not read cover image: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 +msgid "Cannot read from: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 +msgid "Failed to process opf file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 +msgid "" +"%prog book.lrf\n" +"Convert an LRF file into an LRS (XML UTF-8 encoded) file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 +msgid "Output LRS file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 +msgid "Do not save embedded image and font files to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 +msgid "Parsing LRF..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 +msgid "Creating XML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 +msgid "LRS written to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 +msgid "Could not read from thumbnail file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 +msgid "" +"%prog [options] file.lrs\n" +"Compile an LRS file into an LRF file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 +msgid "Path to output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:113 +msgid "Verbose processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 +msgid "Convert LRS to LRS, useful for debugging." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 +msgid "Invalid LRF file. Could not set metadata." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 +msgid "" +"%prog [options] mybook.lrf\n" +"\n" +"\n" +"Show/edit the metadata in an LRF file.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +msgid "Set the book title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +msgid "Set sort key for the title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +msgid "Set the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +msgid "Set sort key for the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +msgid "The category this book belongs to. E.g.: History" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 +msgid "Path to a graphic that will be set as this files' thumbnail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603 +msgid "" +"Path to a txt file containing the comment to be stored in the lrf file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +msgid "Extract thumbnail from LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +msgid "Set the publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +msgid "Set the book classification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +msgid "Set the book creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +msgid "Set the book producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 +msgid "" +"Extract cover from LRF file. Note that the LRF format has no defined cover, " +"so we use some heuristics to guess the cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +msgid "Set book ID" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 +msgid "Enable autorotation of images that are wider than the screen width." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 +msgid "Set the space between words in pts. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 +msgid "Add a header to all the pages with title and author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:100 +msgid "" +"Set the format of the header. %a is replaced by the author and %t by the " +"title. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 +msgid "Add extra spacing below the header. Default is %default pt." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:107 +msgid "" +"Minimum paragraph indent (the indent of the first line of a paragraph) in " +"pts. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:112 +msgid "" +"Render tables in the HTML as images (useful if the document has large or " +"complex tables)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:117 +msgid "" +"Multiply the size of text in rendered tables by this factor. Default is " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:121 +msgid "The serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:124 +msgid "The sans-serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:127 +msgid "The monospace family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 +msgid "Comic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +msgid "Title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +msgid "Author(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +msgid "Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +msgid "Producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 +msgid "Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +msgid "Language" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +msgid "Timestamp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +msgid "Published" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +msgid "Rights" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 +msgid "EDITORIAL REVIEW" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 +msgid "options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 +msgid "" +"\n" +"Read/Write metadata from/to ebook files.\n" +"\n" +"Supported formats for reading metadata: %s\n" +"\n" +"Supported formats for writing metadata: %s\n" +"\n" +"Different file types support different kinds of metadata. If you try to set\n" +"some metadata on a file type that does not support it, the metadata will be\n" +"silently ignored.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:39 +msgid "" +"Set the authors. Multiple authors should be separated by the & character. " +"Author names should be in the order Firstname Lastname." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:43 +msgid "" +"The version of the title to be used for sorting. If unspecified, and the " +"title is specified, it will be auto-generated from the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:47 +msgid "" +"String to be used when sorting by author. If unspecified, and the author(s) " +"are specified, it will be auto-generated from the author(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 +msgid "Set the book category." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 +msgid "Get the cover from the ebook and save it at as the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 +msgid "" +"Specify the name of an OPF file. The metadata will be written to the OPF " +"file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80 +msgid "" +"Read metadata from the specified OPF file and use it to set metadata in the " +"ebook. Metadata specified on the command line will override metadata read " +"from the OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:85 +msgid "Set the BookID in LRF files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 +msgid "No file specified" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 +msgid "Original metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 +msgid "Changed metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 +msgid "OPF created in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 +msgid "Cover saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 +msgid "No cover found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +msgid "Metadata download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "ratings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +msgid "description/reviews" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +msgid "Download %s from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 +msgid "Downloads metadata from Google Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 +msgid "Downloads metadata from isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 +msgid "" +"To use isbndb.com you must sign up for a %sfree account%s and enter your " +"access key below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 +msgid "Downloads social metadata from amazon.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 +msgid "" +"\n" +"%prog [options] key\n" +"\n" +"Fetch metadata for books from isndb.com. You can specify either the\n" +"books ISBN ID or its title and author. If you specify the title and author,\n" +"then more than one book may be returned.\n" +"\n" +"key is the account key you generate after signing up for a free account from " +"isbndb.com.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:105 +msgid "The ISBN ID of the book you want metadata for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 +msgid "The author whose book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +msgid "The title of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:111 +msgid "The publisher of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:53 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:60 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:61 +msgid " not found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 +msgid "LibraryThing.com server error. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:71 +msgid "" +"\n" +"%prog [options] ISBN\n" +"\n" +"Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +msgid "Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 +msgid "Modify images to meet Palm device size limitations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 +msgid "When present, use author sort field as author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:30 +msgid "" +"Don't add Table of Contents to end of book. Useful if the book has its own " +"table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 +msgid "Title for any generated in-line table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 +msgid "Disable compression of the file contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +msgid "All articles" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +msgid "Title Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 +msgid "Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +msgid "Index" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +msgid "Glossary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +msgid "Acknowledgements" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +msgid "Bibliography" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +msgid "Colophon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +msgid "Copyright" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +msgid "Dedication" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +msgid "Epigraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +msgid "Foreword" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +msgid "List of Illustrations" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +msgid "List of Tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +msgid "Notes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +msgid "Preface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +msgid "Main Text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 +msgid "%s format books are not supported" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 +msgid "HTML TOC generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 +msgid "Book Jacket" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 +msgid "" +"Could not find reasonable point at which to split: %s Sub-tree size: %d KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +msgid "Unnamed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 +msgid "OPF/NCX/etc. generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 +msgid "OPF version to generate. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 +msgid "" +"Generate an Adobe \"page-map\" file if pagination information is available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126 +msgid "Footnotes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 +msgid "Sidebar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:22 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line represents a paragraph instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:26 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line starting with an indent (either a tab or 2+ " +"spaces) represents a paragraph. Paragraphs end when the next line that " +"starts with an indent is reached." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 +msgid "Format to use inside the pdb container. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:27 +msgid "" +"Specify the character encoding of the output document. The default is " +"cp1252. Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +msgid "Do not extract images from the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 +msgid "" +"Scale used to determine the length at which a line should be unwrapped. " +"Valid values are a decimal between 0 and 1. The default is 0.5, this is the " +"median line length." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 +msgid "Use the new PDF conversion engine." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 +msgid "" +"command ...\n" +"\n" +"command can be one of the following:\n" +"[%%commands]\n" +"\n" +"Use %prog command --help to get more information about a specific command\n" +"\n" +"Manipulate a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 +msgid "" +"[options] file.pdf\n" +"\n" +"Crop a PDF file.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:38 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:41 +msgid "" +"Path to output file. By default a file is created in the current directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 +msgid "Number of pixels to crop from the left most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 +msgid "Number of pixels to crop from the left most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 +msgid "Number of pixels to crop from the right most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 +msgid "Number of pixels to crop from the right most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 +msgid "" +"A file generated by ghostscript which allows each page to be individually " +"cropped `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> bounding`" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +msgid "Crop Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Options to control the transformation of pdf" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 +msgid "" +"[options] file.pdf password\n" +"\n" +"Decrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +msgid "Decrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 +msgid "" +"[options] file.pdf password\n" +"\n" +"Encrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +msgid "Encrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 +msgid "" +"file.pdf ...\n" +"\n" +"Get info about a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 +msgid "Author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 +msgid "Subject" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 +msgid "Creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 +msgid "Pages" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 +msgid "File Size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +msgid "PDF Version" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 +msgid "" +"[options] file1.pdf file2.pdf ...\n" +"\n" +"Metadata will be used from the first PDF specified.\n" +"\n" +"Merges individual PDFs.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +msgid "Merge Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 +msgid "" +"[options] file.pdf\n" +"\n" +"Reverse a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +msgid "Reverse Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 +msgid "" +"file.pdf degrees\n" +"\n" +"Rotate pages of a PDF clockwise.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +msgid "Rotate Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 +msgid "" +"\n" +"%prog %%name [options] file.pdf page_to_split_on ...\n" +"%prog %%name [options] file.pdf page_range_to_split_on ...\n" +"\t\n" +"Ex.\n" +"\t\n" +"%prog %%name file.pdf 6\n" +"%prog %%name file.pdf 6-12\n" +"%prog %%name file.pdf 6-12 8 10 9-20\n" +"\n" +"Split a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Split Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 +msgid "" +"The unit of measure. Default is inch. Choices are %s Note: This does not " +"override the unit for margins!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 +msgid "" +"The size of the paper. This size will be overridden when an output profile " +"is used. Default is letter. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:40 +msgid "" +"Custom size of the document. Use the form widthxheight EG. `123x321` to " +"specify the width and height. This overrides any specified paper-size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 +msgid "The orientation of the page. Default is portrait. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 +msgid "Could not find pdftohtml, check it is in your PATH" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 +msgid "" +"Specify the character encoding of the output document. The default is cp1252." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 +msgid "" +"This RTF file has a feature calibre does not support. Convert it to HTML " +"first and then try it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 +msgid "" +"Specify the character encoding of the output document. The default is utf-8." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 +msgid "" +"Specify the compression level to use. Scale 1 - 10. 1 being the lowest " +"compression but the fastest and 10 being the highest compression but the " +"slowest." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 +msgid "" +"Run the text input through the markdown pre-processor. To learn more about " +"markdown see" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +msgid "" +"Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " +"for compatibility with Mac OS 9 and earlier. For Mac OS X use 'unix'. " +"'system' will default to the newline type used by this OS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 +msgid "" +"Specify the character encoding of the output document. The default is utf-8. " +"Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 +msgid "" +"The maximum number of characters per line. This splits on the first space " +"before the specified value. If no space is found the line will be broken at " +"the space after and will exceed the specified value. Also, there is a " +"minimum of 25 characters. Use 0 to disable line splitting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 +msgid "" +"Force splitting on the max-line-length value when no space is present. Also " +"allows max-line-length to be below the minimum" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +msgid "Send file to storage card instead of main memory by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +msgid "Confirm before deleting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +msgid "Toolbar icon size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +msgid "Show button labels in the toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +msgid "Main window geometry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +msgid "Notify when a new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +msgid "Use Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +msgid "Sort tags list by popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +msgid "Number of covers to show in the cover browsing mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +msgid "Defaults for conversion to LRF" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +msgid "Options for the LRF ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +msgid "Formats that are viewed using the internal viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +msgid "Columns to be displayed in the book list" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +msgid "Automatically launch content server on application startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +msgid "Oldest news kept in database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +msgid "Show system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +msgid "Upload downloaded news to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +msgid "Delete books from library after uploading to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +msgid "" +"Show the cover flow in a separate window instead of in the main calibre " +"window" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +msgid "Disable notifications from the system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +msgid "Default action to perform when send to device button is clicked" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +msgid "Maximum number of waiting worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +msgid "Download social metadata (tags/rating/etc.)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +msgid "Limit max simultaneous jobs to number of CPUs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 +msgid "Copied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +msgid "Copy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +msgid "Copy to Clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +msgid "Choose Files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +msgid "Searching in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +msgid "Adding..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +msgid "Searching in all sub-directories..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +msgid "Path error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +msgid "The specified directory could not be processed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 +msgid "No books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +msgid "No books found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +msgid "Added" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +msgid "Adding failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +msgid "" +"The add books process seems to have hung. Try restarting calibre and adding " +"the books in smaller increments, until you find the problem book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +msgid "Duplicates found!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +msgid "" +"Books with the same title as the following already exist in the database. " +"Add them anyway?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +msgid "Adding duplicates..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +msgid "Saving..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +msgid "Saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 +msgid "Tags to exclude as genres (regex):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +msgid "&Number of Colors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +msgid "Disable &normalize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +msgid "Keep &aspect ratio" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +msgid "Disable &Sharpening" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +msgid "Disable &Trimming" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 +msgid "&Wide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +msgid "&Landscape" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +msgid "&Right to left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +msgid "Don't so&rt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +msgid "De&speckle" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 +msgid "&Disable comic processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +msgid "&Output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 +msgid "Debug" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 +msgid "Debug the conversion process." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 +msgid "Choose debug folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 +msgid "Invalid debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +msgid "Failed to create debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +msgid "" +"Choose a folder to put the debug output into. If you specify a folder, " +"calibre will place a lot of debug output into it. This will be useful in " +"understanding the conversion process and figuring out the correct values for " +"conversion parameters like Table of Contents and Chapter Detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 +msgid "..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +msgid "" +"The debug process outputs the intermediate HTML generated at various stages " +"of the conversion process. This HTML can sometimes serve as a good starting " +"point for hand editing a conversion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 +msgid "EPUB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 +msgid "Do not &split on page breaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:43 +msgid "Split files &larger than:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:44 +msgid " KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 +msgid "No default &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 +msgid "FB2 Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +msgid "Do not insert a &Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 +msgid "FB2 Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 +msgid "&Inline TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +msgid "Font rescaling wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 +msgid "" +"

This wizard will help you choose an appropriate font size key for your " +"needs. Just enter the base font size of the input document and then enter an " +"input font size. The wizard will display what font size it will be mapped " +"to, by the font rescaling algorithm. You can adjust the algorithm by " +"adjusting the output base font size and font key below. When you find values " +"suitable for you, click OK.

\n" +"

By default, if the output base font size is zero and/or no font size key " +"is specified, calibre will use the values from the current Output Profile. " +"

\n" +"

See the User Manual " +"for a discussion of how font size rescaling works.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +msgid "&Output document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109 +msgid "&Base font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 +msgid "Font size &key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +msgid " pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +msgid "Use &default values" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +msgid "&Input document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +msgid "&Font size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +msgid " will map to size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +msgid "0.0 pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 +msgid "Look & Feel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 +msgid "Control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 +msgid "&Disable font size rescaling" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "Base &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 +msgid "Wizard to help you choose an appropriate font size key" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +msgid "Line &height:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +msgid "Input character &encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +msgid "Remove &spacing between paragraphs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +msgid "Indent size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +msgid "" +"

When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +msgid " em" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +msgid "Insert &blank line" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +msgid "No text &justification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +msgid "&Linearize tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +msgid "&Transliterate unicode characters to ASCII." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +msgid "Extra &CSS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 +msgid "LRF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +msgid "Enable &autorotation of wide images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +msgid "&Wordspace:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 +msgid "Minimum para. &indent:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +msgid "Render &tables as images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +msgid "Text size multiplier for text in rendered tables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 +msgid "Add &header" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +msgid "Header &separation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +msgid "Header &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +msgid "&Embed fonts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +msgid "&Serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +msgid "S&ans-serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +msgid "&Monospaced font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 +msgid "Metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +msgid "" +"Set the metadata. The output file will contain as much of this metadata as " +"possible." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +msgid "Choose cover for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +msgid "Cannot read" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +msgid "You do not have permission to read the file: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +msgid "Error reading file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +msgid "

There was an error reading from file:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +msgid " is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +msgid "Book Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 +msgid "Use cover from &source file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +msgid "Change &cover image:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +msgid "Browse for an image to use as the cover of this book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +msgid "&Title: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +msgid "Change the title of this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +msgid "&Author(s): " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +msgid "Author So&rt:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +msgid "" +"Change the author(s) of this book. Multiple authors should be separated by a " +"comma" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +msgid "&Publisher: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +msgid "Ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +msgid "" +"Tags categorize the book. This is particularly useful while searching. " +"

They can be any words or phrases, separated by commas." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +msgid "&Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +msgid "List of known series. You can add new series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +msgid "Book " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +msgid "MOBI Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +msgid "&Title for Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +msgid "Rescale images for &Palm devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +msgid "Use author &sort for author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +msgid "Disable compression of the file contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +msgid "Do not add Table of Contents to book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 +msgid "Page Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 +msgid "&Output profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:112 +msgid "Profile description" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:113 +msgid "&Input profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 +msgid "Margins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 +msgid "&Left:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +msgid "&Top:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +msgid "&Right:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 +msgid "&Bottom:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 +msgid "PDB Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 +msgid "Treat each &line as a paragraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 +msgid "Assume print formatting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 +msgid "PDB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +msgid "&Format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 +msgid "PDF Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +msgid "Line &Un-Wrapping Factor:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 +msgid "No &Images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 +msgid "PDF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:40 +msgid "&Paper Size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:41 +msgid "&Orientation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 +msgid "RB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +msgid "Choose the format to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "Cannot build regex using the GUI builder without a book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "No formats available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "Open book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "~" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:46 +msgid "Regex Builder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 +msgid "Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 +msgid "Regex:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 +msgid "Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 +msgid "Options specific to the input format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 +msgid "Dialog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 +msgid "&Input format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +msgid "Use &saved conversion settings for individual books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 +msgid "" +"Structure\n" +"Detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 +msgid "" +"Fine tune the detection of chapter headings and other document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:34 +msgid "Detect chapters at (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +msgid "Insert page breaks before (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 +msgid "Header regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +msgid "Footer regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 +msgid "Invalid regular expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 +msgid "Invalid regular expression: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 +msgid "Invalid XPath" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 +msgid "The XPath expression %s is invalid." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 +msgid "Chapter &mark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +msgid "Remove first &image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +msgid "Insert &metadata as page at start of book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +msgid "&Preprocess input file to possibly improve structure detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +msgid "Remove F&ooter" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +msgid "Remove H&eader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 +msgid "" +"Table of\n" +"Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 +msgid "Control the creation/conversion of the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:29 +msgid "Level &1 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 +msgid "Level &2 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 +msgid "Level &3 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +msgid "Do not add &detected chapters to the Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +msgid "Number of &links to add to Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +msgid "Chapter &threshold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +msgid "&Force use of auto-generated Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +msgid "TOC &Filter:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 +msgid "TXT Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 +msgid "Process using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 +msgid "" +"

Markdown is a simple markup language for text files, that allows for " +"advanced formatting. To learn more visit markdown." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 +msgid "TXT Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +msgid "&Line ending style:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +msgid "&Maximum line length:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +msgid "Force maximum line lenght" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:50 +msgid "TextLabel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 +msgid "Use a wizard to help construct the XPath expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +msgid "Match HTML &tags with tag name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +msgid "*" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +msgid "a" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +msgid "br" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +msgid "div" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +msgid "h1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +msgid "h2" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +msgid "h3" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +msgid "h4" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +msgid "h5" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +msgid "h6" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +msgid "hr" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +msgid "span" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +msgid "Having the &attribute:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +msgid "With &value:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +msgid "(A regular expression)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +msgid "" +"

For example, to match all h2 tags that have class=\"chapter\", set tag to " +"h2, attribute to class and value to " +"chapter.

Leaving attribute blank will match any attribute and " +"leaving value blank will match any value. Setting tag to * will match any " +"tag.

To learn more advanced usage of XPath see the XPath Tutorial." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +msgid "No details available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 +msgid "Device no longer connected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 +msgid "Get device information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 +msgid "Get list of books on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 +msgid "Send metadata to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 +msgid "Upload %d books to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 +msgid "Delete books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 +msgid "Download books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 +msgid "View book on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 +msgid "and delete from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +msgid "Set default send to device action" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 +msgid "Email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +msgid "Send to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +msgid "Send to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +msgid "Send to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 +msgid "Send specific format to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 +msgid "Send specific format to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 +msgid "Send specific format to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 +msgid "selected to send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 +msgid "Choose format to send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 +msgid "No device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +msgid "Cannot send: No device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 +msgid "No card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 +msgid "Cannot send: Device has no storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 +msgid "E-book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 +msgid "Attached, you will find the e-book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 +msgid "by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 +msgid "in the %s format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +msgid "Sending email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 +msgid "Failed to email books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 +msgid "Failed to email the following books:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 +msgid "Sent by email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 +msgid "Attached is the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +msgid "Sent news to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 +msgid "Auto convert the following books before uploading to the device?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 +msgid "Sending news to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 +msgid "Sending books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 +msgid "" +"Could not upload the following books to the device, as no suitable formats " +"were found. Convert the book(s) to a format supported by your device first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +msgid "No space on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +msgid "" +"

Cannot upload books to device there is no more free space available " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 +msgid "Select available formats and their order for this device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +msgid "Use sub directories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 +msgid "Path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +msgid "&Previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +msgid "&Next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +msgid "Choose Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:34 +msgid "Set defaults for conversion of comics (CBR/CBZ files)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:49 +msgid "Set options for converting %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +msgid "&Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +msgid "&Author(s):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +msgid "&Profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:170 +msgid "%(plugin_type)s %(plugins)s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:171 +msgid "plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "Add/Save" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "" +"Email\n" +"Delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "" +"Content\n" +"Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Auto send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:221 +msgid "Formats to email. The first matching format will be sent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:222 +msgid "" +"If checked, downloaded news will be automatically mailed
to this email " +"address (provided it is in one of the listed formats)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:296 +msgid "new email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +msgid "Failed to install command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +msgid "Command line tools installed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +msgid "Command line tools installed in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +msgid "" +"If you move calibre.app, you have to re-install the command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +msgid "No valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +msgid "%s is not a valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +msgid "Choose plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +msgid "Plugin cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +msgid "The plugin: %s cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +msgid "Plugin not customizable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +msgid "Plugin: %s does not need customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +msgid "Customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +msgid "Cannot remove builtin plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +msgid "Error log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +msgid "Access log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 +msgid "Failed to start content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 +msgid "Select location for books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +msgid "Invalid size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +msgid "The size %s is invalid. must be of the form widthxheight" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +msgid "Invalid database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +msgid "Invalid database location " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +msgid "
Must be a directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +msgid "Invalid database location.
Cannot write to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +msgid "Checking database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +msgid "Failed to check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +msgid "Some inconsistencies found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +msgid "" +"The following books had formats listed in the database that are not actually " +"available. The entries for the formats have been removed. You should check " +"them manually. This can happen if you manipulate the files in the library " +"folder directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 +msgid "TabWidget" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:101 +msgid "" +"Here you can control how calibre will read metadata from the files you add " +"to it. calibre can either read metadata from the contents of the file, or " +"from the filename." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:102 +msgid "Read metadata only from &file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 +msgid "&Swap author firstname and lastname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Save to Disk button:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +msgid "Save &cover separately" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +msgid "Update &metadata in saved copies" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +msgid "Save metadata in &OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +msgid "Convert non-English characters to &English equivalents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 +msgid "Format &dates as:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 +msgid "File &formats to save:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 +msgid "Replace space with &underscores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 +msgid "Change paths to &lowercase" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +msgid "&Saving books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +msgid "Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +msgid "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +msgid "Browse for the new database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +msgid "Show notification when &new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +msgid "Download &social metadata (tags/ratings/etc.) by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +msgid "Default network &timeout:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +msgid "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +msgid " seconds" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Choose &language (requires restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +msgid "Normal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +msgid "High" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +msgid "Low" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +msgid "Job &priority:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +msgid "Preferred &output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +msgid "Preferred &input format order:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +msgid "Use &Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +msgid "Enable system &tray icon (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +msgid "Show ¬ifications in system tray" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +msgid "Show cover &browser in a separate window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +msgid "Automatically send downloaded &news to ebook reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +msgid "&Delete news from library when it is automatically sent to reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +msgid "&Number of covers to show in browse mode (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +msgid "Toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +msgid "Large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +msgid "Medium" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +msgid "Small" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +msgid "&Button size in toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +msgid "Show &text in toolbar buttons" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +msgid "Select visible &columns in library view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +msgid "Use internal &viewer for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +msgid "calibre can send your books to you (or your reader) by email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +msgid "&Maximum number of waiting worker processes (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +msgid "&Check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +msgid "" +"calibre contains a network server that allows you to access your book " +"collection using a browser from anywhere in the world. Any changes to the " +"settings will only take effect after a server restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +msgid "&Username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +msgid "&Password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +msgid "" +"If you leave the password blank, anyone will be able to access your book " +"collection using the web interface." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +msgid "" +"The maximum size (widthxheight) for displayed covers. Larger covers are " +"resized. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +msgid "Max. &cover size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 +msgid "&Show password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +msgid "Max. &OPDS items per query:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +msgid "&Start Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +msgid "St&op Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +msgid "&Test Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Run server &automatically on startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +msgid "View &server logs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +msgid "" +"

Remember to leave calibre running as the server only runs as long as " +"calibre is running.\n" +"

Stanza should see your calibre collection automatically. If not, try " +"adding the URL http://myhostname:8080 as a new catalog in the Stanza reader " +"on your iPhone. Here myhostname should be the fully qualified hostname or " +"the IP address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +msgid "" +"Here you can customize the behavior of Calibre by controlling what plugins " +"it uses." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +msgid "Enable/&Disable plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +msgid "&Customize plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "&Remove plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +msgid "Add new plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +msgid "Plugin &file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +msgid "&Add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +msgid "Downloading social metadata, please wait..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 +msgid "Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 +msgid "&Show this warning again" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:41 +msgid "ERROR" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 +msgid "Author Sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 +msgid "ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +msgid "Finding metadata..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +msgid "Could not find metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +msgid "The metadata download seems to have stalled. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +msgid "Warning" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +msgid "Could not fetch metadata from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +msgid "No metadata found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +msgid "" +"No metadata found, try adjusting the title and author or the ISBN key." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +msgid "Fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +msgid "" +"

calibre can find metadata for your books from two locations: Google " +"Books and isbndb.com.

To use isbndb.com you must sign up for a " +"free account and enter your access key " +"below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +msgid "&Access Key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +msgid "Fetch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +msgid "Matches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +msgid "" +"Select the book that most closely matches your copy from the list below" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +msgid "Download &social metadata (tags/rating/etc.) for the selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +msgid "Details of job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +msgid "Active Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +msgid "&Stop selected job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +msgid "Show job &details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +msgid "Stop &all jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +msgid "Edit Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +msgid "Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +msgid "A&utomatically set author sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +msgid "Author s&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +msgid "" +"Specify how the author(s) of this book should be sorted. For example Charles " +"Dickens should be sorted as Dickens, Charles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +msgid "&Rating:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +msgid "Rating of this book. 0-5 stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +msgid " stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "Add ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +msgid "Open Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +msgid "&Remove tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +msgid "Comma separated list of tags to remove from the books. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +msgid "Remove &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +msgid "Not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +msgid "Choose formats for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 +msgid "Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +msgid "No permission" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +msgid "You do not have permission to read the following files:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 +msgid "No format selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 +msgid "Could not read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 +msgid "Could not read metadata from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 +msgid "Could not read cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 +msgid "Could not read cover from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 +msgid "The cover in the %s format is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 +msgid "Abort the editing of all remaining books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +msgid "Downloading cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +msgid "Cannot fetch cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +msgid "Could not fetch cover.
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +msgid "The download timed out." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +msgid "Could not find cover for this book. Try specifying the ISBN first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +msgid "Bad cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +msgid "The cover is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +msgid "There were errors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +msgid "There were errors downloading social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +msgid "Cannot fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +msgid "You must specify at least one of ISBN, Title, Authors or Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +msgid "Permission denied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +msgid "Could not open %s. Is it being used by another program?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +msgid "Edit Meta Information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 +msgid "Swap the author and title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +msgid "Author S&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 +msgid "" +"Automatically create the author sort entry based on the current author entry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +msgid "Remove unused series (Series that have no books)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +msgid "IS&BN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +msgid "Publishe&d:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +msgid "dd MMM yyyy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +msgid "&Date:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +msgid "&Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +msgid "&Fetch metadata from server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +msgid "Available Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +msgid "Add a new format for this book to the database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +msgid "Remove the selected formats for this book from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 +msgid "Set the cover for the book from the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +msgid "Update metadata from the metadata in the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +msgid "Reset cover to default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +msgid "Download &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +msgid "Password needed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:53 +msgid "Aborting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117 +msgid "Need username and password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118 +msgid "You must provide a username and/or password to use this news source." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169 +msgid "Created by: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176 +msgid "Last downloaded: never" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191 +msgid "%d days, %d hours and %d minutes ago" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193 +msgid "Last downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190 +msgid "Schedule news download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216 +msgid "Add a custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +msgid "Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +msgid "Download all scheduled recipes at once" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 +msgid "Download &all scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +msgid "blurb" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +msgid "&Schedule for download:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +msgid "Every " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +msgid "day" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +msgid "Monday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +msgid "Tuesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +msgid "Wednesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +msgid "Thursday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +msgid "Friday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +msgid "Saturday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +msgid "Sunday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +msgid "at" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +msgid "" +"Interval at which to download this recipe. A value of zero means that the " +"recipe will be downloaded every hour." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +msgid " days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +msgid "&Account" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 +msgid "For the scheduling to work, you must leave calibre running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +msgid "&Schedule" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +msgid "Add &title as tag" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +msgid "&Extra tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +msgid "&Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +msgid "&Download now" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +msgid "" +"Delete downloaded news older than the specified number of days. Set to zero " +"to disable." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +msgid "Delete downloaded news older than " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +msgid "contains" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +msgid "The text to search for. It is interpreted as a regular expression." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +msgid "" +"

Negate this match. That is, only return results that do not match " +"this query." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +msgid "Negate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:88 +msgid "Advanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:89 +msgid "Find entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:90 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:91 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:92 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:93 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:94 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:95 +msgid "" +"See the User Manual for more help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 +msgid "Are your sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 +msgid "" +"The following tags are used by one or more books. Are you certain you want " +"to delete them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +msgid "Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +msgid "A&vailable tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +msgid "" +"Delete tag from database. This will unapply the tag from all books and then " +"remove it from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:127 +msgid "Apply tag to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +msgid "A&pplied tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +msgid "Unapply (remove) tag from current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +msgid "&Add tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +msgid "" +"If the tag you want is not in the available list, you can add it here. " +"Accepts a comma separated list of tags." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +msgid "Add tag to available tags and apply it to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:50 +msgid "Test email settings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +msgid "Send test mail from %s to:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +msgid "&Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 +msgid "No recipe selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +msgid "The attached file: %s is a recipe to download %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +msgid "Recipe for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 +msgid "Switch to Advanced mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +msgid "Switch to Basic mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +msgid "Feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +msgid "The feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +msgid "Feed must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +msgid "The feed %s must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +msgid "Already exists" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +msgid "This feed has already been added to the recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:286 +msgid "Invalid input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:287 +msgid "

Could not create recipe. Error:
%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:290 +msgid "Replace recipe?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:291 +msgid "A custom recipe named %s already exists. Do you want to replace it?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick the recipe to customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +msgid "Choose a recipe file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +msgid "Add custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +msgid "Available user recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +msgid "Add/Update &recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +msgid "&Remove recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +msgid "&Share recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +msgid "Customize &builtin recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +msgid "&Load recipe from file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +msgid "" +"\n" +"

Create a basic news " +"recipe, by adding RSS feeds to it.
For most feeds, you will have to " +"use the \"Advanced mode\" to further customize the fetch " +"process.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +msgid "Recipe &title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +msgid "&Oldest article:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +msgid "The oldest article to download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 +msgid "&Max. number of articles per feed:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 +msgid "Maximum number of articles to download per feed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 +msgid "Feeds in recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 +msgid "Remove feed from recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:274 +msgid "Add feed to recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 +msgid "&Feed title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +msgid "Feed &URL:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +msgid "&Add feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 +msgid "" +"For help with writing advanced news recipes, please visit User Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +msgid "Recipe source code (python)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +msgid "" +"\n" +"\n" +"

Set a regular expression " +"pattern to use when trying to guess ebook metadata from filenames.

\n" +"

A reference on the syntax " +"of regular expressions is available.

\n" +"

Use the Test functionality below to test your regular " +"expression on a few sample filenames. The group names for the various " +"metadata entries are documented in tooltips.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +msgid "Regular &expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +msgid "File &name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +msgid "Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +msgid "Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +msgid "Regular expression (?P<title>)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 +msgid "No match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +msgid "Authors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 +msgid "Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 +msgid "Series index:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 +msgid "ISBN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +msgid "Job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +msgid "Status" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +msgid "Progress" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 +msgid "Running time" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +msgid "There are %d running jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 +msgid "Unknown job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +msgid "There are %d waiting jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 +msgid "Cannot kill job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 +msgid "Cannot kill jobs that communicate with the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 +msgid "Job has already run" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 +msgid "Unavailable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 +msgid " - Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +msgid "Size (MB)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +msgid "Date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +msgid "Rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 +msgid "None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +msgid "Book %s of %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +msgid "" +"Dropping onto a device is not supported. First add the book to the calibre " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +msgid "Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +msgid "Double click to edit me

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 +msgid "Configure Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:48 +msgid "Use white background" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:49 +msgid "Hyphenate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:50 +msgid "Changes will only take effect after a restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:70 +msgid " - LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +msgid "No matches for the search phrase %s were found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +msgid "No matches found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128 +msgid "LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:129 +msgid "Parsing LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:130 +msgid "LRF Viewer toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 +msgid "Next Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 +msgid "Previous Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 +msgid "Back" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 +msgid "Forward" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:135 +msgid "Next match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 +msgid "Open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 +msgid "Configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +msgid "Use the library located at the specified path." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +msgid "Start minimized to system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +msgid "Log debugging information to console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +msgid "Do not check for updates" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +msgid "If you are sure it is not running" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +msgid "Cannot Start " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +msgid "%s is already running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +msgid "may be running in the system tray, in the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +msgid "upper right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +msgid "lower right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +msgid "try rebooting your computer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +msgid "try deleting the file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 +msgid "calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +msgid "Advanced search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +msgid "Alt+S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 +msgid "&Search:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +msgid "" +"

Search the list of books by title, author, publisher, tags, comments, " +"etc.

Words separated by spaces are ANDed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 +msgid "Reset Quick Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +msgid "Sort by &popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 +msgid "Add books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +msgid "A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +msgid "Remove books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 +msgid "Del" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +msgid "Edit meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +msgid "Send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 +msgid "Save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 +msgid "Fetch news" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +msgid "F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +msgid "Convert E-books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 +msgid "View" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +msgid "V" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +msgid "Books by this publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +msgid "Books with the same tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +msgid "Configure calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:20 +msgid "" +"Redirect console output to a dialog window (both stdout and stderr). Useful " +"on windows where GUI apps do not have a output streams." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:59 +msgid "&Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:60 +msgid "&Quit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:85 +msgid "ERROR: Unhandled exception" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +msgid "Book has neither title nor ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +msgid "No matches found for this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 +msgid "Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +msgid "Press a key..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +msgid "Already assigned" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +msgid "already assigned to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid " or " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +msgid "&Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +msgid "Customize shortcuts for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +msgid "Double click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +msgid "Frame" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +msgid "&Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +msgid "&Shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +msgid "Click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +msgid "Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +msgid "&Alternate shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 +msgid "Jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 +msgid "Click to see list of active jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to browse books by their covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to turn off Cover Browsing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +msgid "" +"

Browsing books by their covers is disabled.
Import of pictureflow " +"module failed:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 +msgid "Click to browse books by tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Publishers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 +msgid "Convert book %d of %d (%s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:202 +msgid "Could not convert some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:203 +msgid "" +"Could not convert %d of %d books, because no suitable source format was " +"found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:120 +msgid "Queueing books for bulk conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:181 +msgid "Queueing " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 +msgid "Fetch news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +msgid "Convert existing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +msgid "" +"The following books have already been converted to %s format. Do you wish to " +"reconvert them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:63 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:142 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:159 +msgid "Error communicating with device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:176 +msgid "&Restore" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +msgid "&Donate to support calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 +msgid "&Restart" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:222 +msgid "

For help see the: User Manual
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 +msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 +msgid "Edit metadata individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 +msgid "Edit metadata in bulk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 +msgid "Download metadata and covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:252 +msgid "Download only metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:253 +msgid "Download only covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:254 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 +msgid "Add books from a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 +msgid "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 +msgid "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 +msgid "Save to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +msgid "Save only %s format to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 +msgid "View specific format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 +msgid "Convert individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +msgid "Bulk convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 +msgid "Similar books..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 +msgid "Bad database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 +msgid "Calibre Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +msgid "Choose a location for your ebook library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 +msgid "Browse by covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 +msgid "Device: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 +msgid " detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 +msgid "Connected " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 +msgid "Device database corrupted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 +msgid "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 +msgid "How many empty books?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 +msgid "How many empty books should be added?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 +msgid "Uploading books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 +msgid "EPUB Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 +msgid "LRF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 +msgid "HTML Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 +msgid "LIT Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 +msgid "MOBI Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 +msgid "Text books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 +msgid "PDF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 +msgid "Comics" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 +msgid "Archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +msgid "No book selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +msgid "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +msgid "Deleting books from device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +msgid "Cannot download metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +msgid "No books selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "Downloading %s for %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +msgid "Failed to download some metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +msgid "Failed to download metadata for the following:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +msgid "Cannot edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +msgid "Cannot save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +msgid "Choose destination directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +msgid "Fetching news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +msgid " fetched." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +msgid "Cannot convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +msgid "Starting conversion of %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +msgid "Cannot view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +msgid "Cannot open folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +msgid "" +"You are attempting to open %d books. Opening too many books at once can be " +"slow and have a negative effect on the responsiveness of your computer. Once " +"started the process cannot be stopped until complete. Do you wish to " +"continue?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +msgid "%s has no available formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +msgid "Cannot configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +msgid "Cannot configure while there are running jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +msgid "No detailed info available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +msgid "No detailed information is available for books on the device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +msgid "Error talking to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +msgid "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +msgid "Conversion Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +msgid "" +"

Could not convert: %s

It is a DRMed book. You must " +"first remove the DRM using third party tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +msgid "Failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +msgid "Invalid library location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +msgid "Could not access %s. Using %s as the library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +msgid "" +"is the result of the efforts of many volunteers from all over the world. If " +"you find it useful, please consider donating to support its development." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +msgid "There are active jobs. Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +msgid "" +" is communicating with the device!
\n" +" Quitting may cause corruption on the device.
\n" +" Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +msgid "WARNING: Active jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +msgid "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +msgid "" +"Latest version: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +msgid "Update available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +msgid "" +"%s has been updated to version %s. See the new features. Visit the download page?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "Edit bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "New title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:52 +msgid "Export Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:54 +msgid "Saved Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Import Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Pickled Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +msgid "Name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 +msgid "Bookmark Manager" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +msgid "Actions" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +msgid "Edit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +msgid "Delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +msgid "Reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +msgid "Export" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +msgid "Import" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +msgid "Configure Ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +msgid "&Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +msgid "Se&rif family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 +msgid "&Sans family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +msgid "&Monospace family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 +msgid "&Default font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +msgid " px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +msgid "Monospace &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +msgid "S&tandard font:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +msgid "Serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +msgid "Sans-serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +msgid "Monospace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +msgid "Remember last used &window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +msgid "Maximum &view width:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +msgid "H&yphenate (break line in the middle of large words)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +msgid "" +"The default language to use for hyphenation rules. If the book does not " +"specify a language, this will be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +msgid "Default &language for hyphenation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 +msgid "&User stylesheet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +msgid "&General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +msgid "&Keyboard shortcuts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 +msgid "Options to customize the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +msgid "Remember last used window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 +msgid "" +"Set the user CSS stylesheet. This can be used to customize the look of all " +"books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +msgid "Maximum width of the viewer window, in pixels." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +msgid "Hyphenate text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +msgid "Default language for hyphenation rules" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +msgid "Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +msgid "The serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +msgid "The sans-serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +msgid "The monospaced font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +msgid "The standard font type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +msgid "&Lookup in dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 +msgid "Scroll to the next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:15 +msgid "Scroll to the previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:18 +msgid "Scroll to the next section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:21 +msgid "Scroll to the previous section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:24 +msgid "Scroll to the bottom of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:27 +msgid "Scroll to the top of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:30 +msgid "Scroll to the end of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:33 +msgid "Scroll to the start of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 +msgid "Scroll down" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 +msgid "Scroll up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 +msgid "Scroll left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 +msgid "Scroll right" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 +msgid "Book format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 +msgid "Go to..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +msgid "Position in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +msgid "Go to a reference. To get reference numbers, use the reference mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +msgid "Search for text in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +msgid "Print Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +msgid "Choose ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +msgid "Ebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +msgid "Add bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +msgid "Enter title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +msgid "No matches found for: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +msgid "Loading flow..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +msgid "Laying out %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +msgid "Manage Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +msgid "Loading ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +msgid "DRM Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +msgid "

This book is protected by DRM" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +msgid "Could not open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +msgid "Options to control the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +msgid "" +"If specified, viewer window will try to come to the front when started." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +msgid "Print javascript alert and console messages to the console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +msgid "" +"%prog [options] file\n" +"\n" +"View an ebook.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 +msgid "Ebook Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 +msgid "toolBar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 +msgid "Next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 +msgid "Previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +msgid "Font size larger" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 +msgid "Font size smaller" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 +msgid "Find next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 +msgid "Copy to clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +msgid "Reference Mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 +msgid "Bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 +msgid "Toggle full screen" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +msgid "Print" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 +msgid "Print eBook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 +msgid "" +"Library\n" +"%d\n" +"books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 +msgid "" +"Reader\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 +msgid "" +"Card A\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 +msgid "" +"Card B\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 +msgid "Click to see the books available on your computer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 +msgid "Click to see the books in the main memory of your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 +msgid "Click to see the books on storage card A in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 +msgid "Click to see the books on storage card B in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 +msgid "Change Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 +msgid "Upper Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 +msgid "Lower Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 +msgid "Swap Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 +msgid "Title Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 +msgid "" +"If you use the WordPlayer e-book app on your Android phone, you can access " +"your calibre book collection directly on the device. To do this you have to " +"turn on the content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 +msgid "" +"Remember to leave calibre running as the server only runs as long as calibre " +"is running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 +msgid "" +"You have to add the URL http://myhostname:8080 as your calibre library in " +"WordPlayer. Here myhostname should be the fully qualified hostname or the IP " +"address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 +msgid "Moving library..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 +msgid "Failed to move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 +msgid "Invalid database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +msgid "" +"

An invalid library already exists at %s, delete it before trying to move " +"the existing library.
Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 +msgid "Could not move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 +msgid "welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:42 +msgid "Welcome to calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:43 +msgid "The one stop solution to all your e-book needs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:51 +msgid "" +"Choose your book reader. This will set the conversion options to produce " +"books optimized for your device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:52 +msgid "&Manufacturers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +msgid "&Devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 +msgid "WizardPage" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +msgid "" +"

Congratulations!

You have successfully setup calibre. Press the %s " +"button to apply your settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 +msgid "" +"

Demo videos

Videos demonstrating the various features of calibre are " +"available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 +msgid "" +"

User Manual

A User Manual is also available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +msgid "" +"

calibre can automatically send books by email to your Kindle. To do that " +"you have to setup email delivery below. The easiest way is to setup a free " +"gmail account and click the Use gmail " +"button below. You will also have to register your gmail address in your " +"Amazon account." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +msgid "&Kindle email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +msgid "Choose your &language:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 +msgid "" +"Choose a location for your books. When you add books to calibre, they will " +"be copied here:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +msgid "&Change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +msgid "" +"If you have an existing calibre library, it will be copied to the new " +"location. If a calibre library already exists at the new location, calibre " +"will switch to using it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +msgid "Using: %s:%s@%s:%s and %s encryption" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +msgid "Sending..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +msgid "Mail successfully sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:114 +msgid "Finish gmail setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:115 +msgid "" +"Dont forget to enter your gmail username and password. You can sign up for a " +"free gmail account at http://gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:130 +msgid "Bad configuration" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 +msgid "You must set the From email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:131 +msgid "You must set the username and password for the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 +msgid "Send email &from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +msgid "" +"

This is what will be present in the From: field of emails sent by " +"calibre.
Set it to your email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:110 +msgid "" +"

A mail server is useful if the service you are sending mail to only " +"accepts email from well know mail services." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 +msgid "Mail &Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +msgid "calibre can optionally use a server to send mail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +msgid "&Hostname:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +msgid "The hostname of your mail server. For e.g. smtp.gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +msgid "&Port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +msgid "" +"The port your mail server listens for connections on. The default is 25" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +msgid "Your username on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +msgid "Your password on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +msgid "&Show" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +msgid "&Encryption:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +msgid "" +"Use TLS encryption when connecting to the mail server. This is the most " +"common." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +msgid "&TLS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +msgid "Use SSL encryption when connecting to the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +msgid "&SSL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +msgid "Use Gmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +msgid "&Test email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +msgid "" +"

If you use the Stanza e-" +"book app on your iPhone/iTouch, you can access your calibre book collection " +"directly on the device. To do this you have to turn on the calibre content " +"server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +msgid "Turn on the &content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:8 +msgid "Settings to control the calibre content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:12 +msgid "The port on which to listen. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:14 +msgid "The server timeout in seconds. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:16 +msgid "The max number of worker threads to use. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:18 +msgid "Set a password to restrict access. By default access is unrestricted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:20 +msgid "Username for access. By default, it is: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:24 +msgid "The maximum size for displayed covers. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:26 +msgid "" +"The maximum number of matches to return per OPDS query. This affects Stanza, " +"WordPlayer, etc. integration." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:121 +msgid "" +"Path to the calibre library. Default is to use the path stored in the " +"settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:200 +msgid "" +"%prog list [options]\n" +"\n" +"List the books available in the calibre database.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:208 +msgid "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:210 +msgid "" +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:212 +msgid "Sort results in ascending order" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:214 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search related documentation in the User Manual. Default is " +"to do no filtering." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:216 +msgid "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +msgid "The string used to separate fields. Default is a space." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 +msgid "" +"The prefix for all file paths. Default is the absolute path to the library " +"folder." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:221 +msgid "" +"The format in which to output the data. Available choices: %s. Defaults is " +"text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:234 +msgid "Invalid fields. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:241 +msgid "Invalid sort field. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:312 +msgid "" +"The following books were not added as they already exist in the database " +"(see --duplicates option):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:335 +msgid "" +"%prog add [options] file1 file2 file3 ...\n" +"\n" +"Add the specified files as books to the database. You can also specify " +"directories, see\n" +"the directory related options below.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 +msgid "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:346 +msgid "Process directories recursively" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:348 +msgid "" +"Add books to database even if they already exist. Comparison is done based " +"on book titles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:358 +msgid "You must specify at least one file to add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:374 +msgid "" +"%prog remove ids\n" +"\n" +"Remove the books identified by ids from the database. ids should be a comma " +"separated list of id numbers (you can get id numbers by using the list " +"command). For example, 23,34,57-85\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:389 +msgid "You must specify at least one book to remove" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 +msgid "" +"%prog add_format [options] id ebook_file\n" +"\n" +"Add the ebook in ebook_file to the available formats for the logical book " +"identified by id. You can get id by using the list command. If the format " +"already exists, it is replaced.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:423 +msgid "You must specify an id and an ebook file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:428 +msgid "ebook file must have an extension" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:436 +msgid "" +"\n" +"%prog remove_format [options] id fmt\n" +"\n" +"Remove the format fmt from the logical book identified by id. You can get id " +"by using the list command. fmt should be a file extension like LRF or TXT or " +"EPUB. If the logical book does not have fmt available, do nothing.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:453 +msgid "You must specify an id and a format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:471 +msgid "" +"\n" +"%prog show_metadata [options] id\n" +"\n" +"Show the metadata stored in the calibre database for the book identified by " +"id.\n" +"id is an id number from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 +msgid "Print metadata in OPF form (XML)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:488 +msgid "You must specify an id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:501 +msgid "" +"\n" +"%prog set_metadata [options] id /path/to/metadata.opf\n" +"\n" +"Set the metadata stored in the calibre database for the book identified by " +"id\n" +"from the OPF file metadata.opf. id is an id number from the list command. " +"You\n" +"can get a quick feel for the OPF format by using the --as-opf switch to the\n" +"show_metadata command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:517 +msgid "You must specify an id and a metadata file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:537 +msgid "" +"%prog export [options] ids\n" +"\n" +"Export the books specified by ids (a comma separated list) to the " +"filesystem.\n" +"The export operation saves all formats of the book, its cover and metadata " +"(in\n" +"an opf file). You can get id numbers from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 +msgid "Export all books in database, ignoring the list of ids." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +msgid "Export books to the specified directory. Default is" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:549 +msgid "Export all books into a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +msgid "Specifying this switch will turn this behavior off." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:579 +msgid "You must specify some ids or the %s option" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +msgid "" +"%%prog command [options] [arguments]\n" +"\n" +"%%prog is the command line interface to the calibre books database.\n" +"\n" +"command is one of:\n" +" %s\n" +"\n" +"For help on an individual command: %%prog command --help\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +msgid "

Migrating old database to ebook library in %s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +msgid "Copying %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +msgid "Compacting database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +msgid "Checking SQL integrity..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +msgid "Checking for missing files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +msgid "Checked id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 +msgid "The title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 +msgid "The authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 +msgid "The tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +msgid "The series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +msgid "The series number. To get leading zeros use {series_index:0>3s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 +msgid "The rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 +msgid "The ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +msgid "The calibre internal id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 +msgid "Options to control saving to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +msgid "" +"Normally, calibre will update the metadata in the saved files from what is " +"in the calibre library. Makes saving to disk slower." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +msgid "" +"Normally, calibre will write the metadata into a separate OPF file along " +"with the actual e-book files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +msgid "" +"Normally, calibre will save the cover in a separate file along with the " +"actual e-book file(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +msgid "" +"Comma separated list of formats to save for each book. By default all " +"available books are saved." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 +msgid "" +"The template to control the filename and directory structure of the saved " +"files. Default is \"%s\" which will save books into a per-author " +"subdirectory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 +msgid "" +"Normally, calibre will convert all non English characters into English " +"equivalents for the file names. WARNING: If you turn this off, you may " +"experience errors when saving, depending on how well the filesystem you are " +"saving to supports unicode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 +msgid "" +"The format in which to display dates. %d - day, %b - month, %Y - year. " +"Default is: %b, %Y" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 +msgid "Convert paths to lowercase." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 +msgid "Replace whitespace with underscores." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 +msgid "Requested formats not available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:378 +msgid "Password to access your calibre library. Username is " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 +msgid "" +"[options]\n" +"\n" +"Start the calibre content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 +msgid "%sUsage%s: %s\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +msgid "Created by " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +msgid "" +"Whenever you pass arguments to %prog that have spaces in them, enclose the " +"arguments in quotation marks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 +msgid "Path to the database in which books are stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 +msgid "Pattern to guess metadata from filenames" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 +msgid "Access key for isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 +msgid "Default timeout for network operations (seconds)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 +msgid "Path to directory in which your library of books is stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 +msgid "The language in which to display the user interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 +msgid "The default output format for ebook conversions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 +msgid "Ordered list of formats to prefer for input." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 +msgid "Read metadata from files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 +msgid "The priority of worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 +msgid "Waiting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 +msgid "Stopped" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +msgid "Working..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 +msgid "Brazilian Portuguese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +msgid "English (UK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +msgid "Simplified Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +msgid "Chinese (HK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +msgid "Traditional Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +msgid "English" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +msgid "English (Australia)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 +msgid "English (New Zealand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 +msgid "English (Canada)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 +msgid "English (India)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +msgid "English (Thailand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +msgid "Dutch (BE)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 +msgid "URL must have the scheme sftp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:57 +msgid "host must be of the form user@hostname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:68 +msgid "Failed to negotiate SSH session: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 +msgid "Failed to authenticate with server: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +msgid "Control email delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 +msgid "Unknown feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 +msgid "Untitled article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 +msgid "Download periodical content from the internet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +msgid "" +"Useful for recipe development. Forces max_articles_per_feed to 2 and " +"downloads at most 2 feeds." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 +msgid "Username for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 +msgid "Password for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 +msgid "Unknown News Source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +msgid "The \"%s\" recipe needs a username and password." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +msgid "Download finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +msgid "Failed to download the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +msgid "Failed to download parts of the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +msgid " from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +msgid "\tFailed links:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +msgid "Could not fetch article. Run with -vv to see the reason" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +msgid "Fetching feeds..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +msgid "Got feeds from index page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +msgid "Trying to download cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +msgid "Starting download [%d thread(s)]..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +msgid "Feeds downloaded to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +msgid "Could not download cover: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +msgid "Downloading cover from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +msgid "Untitled Article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +msgid "Article downloaded: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +msgid "Article download failed: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +msgid "Fetching feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +msgid "You" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 +msgid "Scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 +msgid "Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +msgid "" +"%prog URL\n" +"\n" +"Where URL is for example http://google.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 +msgid "Base directory into which URL is saved. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 +msgid "" +"Timeout in seconds to wait for a response from the server. Default: %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 +msgid "" +"Maximum number of levels to recurse i.e. depth of links to follow. Default " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +msgid "" +"The maximum number of files to download. This only applies to files from tags. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +msgid "" +"Minimum interval in seconds between consecutive fetches. Default is %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +msgid "" +"The character encoding for the websites you are trying to download. The " +"default is to try and guess the encoding." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +msgid "" +"Only links that match this regular expression will be followed. This option " +"can be specified multiple times, in which case as long as a link matches any " +"one regexp, it will be followed. By default all links are followed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +msgid "" +"Any link that matches this regular expression will be ignored. This option " +"can be specified multiple times, in which case as long as any regexp matches " +"a link, it will be ignored.By default, no links are ignored. If both --" +"filter-regexp and --match-regexp are specified, then --filter-regexp is " +"applied first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 +msgid "Do not download CSS stylesheets." +msgstr "" diff --git a/src/calibre/translations/es.po b/src/calibre/translations/es.po index ed5da6f553..b786e6cac0 100644 --- a/src/calibre/translations/es.po +++ b/src/calibre/translations/es.po @@ -11,13 +11,13 @@ msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-26 13:52+0000\n" +"PO-Revision-Date: 2010-01-27 20:31+0000\n" "Last-Translator: Jellby \n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -1186,9 +1186,9 @@ msgid "" "paragraph indent, to ensure that paragraphs can be easily distinguished. " "This option controls the width of that indent." msgstr "" -"Cuando calibre remueve el espacio del párrafo, pone automáticamente una " -"identación para el párrafo, para asegurarse de que los párrafos puedan ser " -"distingidos facilmente. Esta opción controla la anchura de esta identación." +"Cuando calibre elimina el espacio entre párrafos, añade automáticamente una " +"sangría en la primera línea para que los párrafos puedan distinguirse " +"fácilmente. Esta opción controla la anchura de dicha sangría." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 msgid "" @@ -2888,7 +2888,7 @@ msgstr "Etiqueta para 'marcar este libro como leído':" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 msgid "Additional note tag prefix:" -msgstr "Prefijo para las etiquetas de notas adicionales:" +msgstr "Prefijo adicional para notas:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" @@ -3222,7 +3222,7 @@ msgstr "Eliminar es&paciado entre párrafos" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Indent size:" -msgstr "tamaño de la identación:" +msgstr "Tamaño de la sangría:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "" @@ -4114,7 +4114,7 @@ msgstr "Formatos" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 msgid "Fit &cover to view" -msgstr "" +msgstr "&Ajustar la portada a la ventana" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" @@ -4135,16 +4135,18 @@ msgstr "Genera el catálogo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 msgid "Catalog &format:" -msgstr "&Formato de catálogo:" +msgstr "&Formato del catálogo:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 msgid "" "Catalog &title (existing catalog with the same title will be replaced):" msgstr "" +"&Título del catálogo (si existe un catálogo con el mismo título será " +"reemplazado):" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 msgid "&Send catalog to device automatically" -msgstr "" +msgstr "&Enviar el catálogo automáticamente al dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 msgid "Catalog options" @@ -4493,7 +4495,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 msgid "Sending to &device" -msgstr "Envíando a &dispositivo" +msgstr "Enviara &dispositivo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 @@ -4726,8 +4728,8 @@ msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -"El tamaño máximo (anchuraxaltura) con el que se mostrarán las portadas. Las " -"portadas mayores se redimensionarán. " +"El tamaño máximo (anchura × altura) con el que se mostrarán las portadas. " +"Las portadas mayores se redimensionarán. " #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 msgid "Max. &cover size:" @@ -6253,7 +6255,7 @@ msgstr "Personalizar atajos para" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid "Keys" -msgstr "" +msgstr "Teclas" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" @@ -6740,7 +6742,7 @@ msgstr "Catálogo generado." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 msgid "Export Catalog Directory" -msgstr "" +msgstr "Directorio para exportar catálogos" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 msgid "Select destination for %s.%s" @@ -7039,6 +7041,8 @@ msgstr "&Idioma por defecto para división de palabras:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" +"Redimensionar las imágenes ma&yores que la ventana del visor (requiere " +"reinicio)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" diff --git a/src/calibre/translations/nl.po b/src/calibre/translations/nl.po index 20f0143d78..5cf32244d4 100644 --- a/src/calibre/translations/nl.po +++ b/src/calibre/translations/nl.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 17:18+0000\n" -"Last-Translator: Kovid Goyal \n" +"PO-Revision-Date: 2010-01-27 17:40+0000\n" +"Last-Translator: highwaykind \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" +"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 @@ -172,9 +172,9 @@ msgid "" "linked files. This plugin is run every time you add an HTML file to the " "library." msgstr "" -"Volg alle plaatselijke links in een HTML-bestand en maak een ZIP-bestand met " -"alle gelinkte bestanden. Deze plug-in wordt elke keer u een HTML-bestand aan " -"de bibliotheek toevoegt, uitgevoerd." +"Volg alle lokale links in een HTML-bestand en maak een ZIP-bestand met alle " +"gelinkte bestanden. Deze plug-in wordt elke keer wanneer u een HTML-bestand " +"aan de bibliotheek toevoegt uitgevoerd." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 msgid "" @@ -196,7 +196,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 msgid "Extract cover from comic files" -msgstr "Cover uit stripverhalen uithalen" +msgstr "Haal de cover uit stripverhalen" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 @@ -245,8 +245,8 @@ msgid "" "useful for documents that do not declare an encoding or that have erroneous " "encoding declarations." msgstr "" -"Specifieer de tekenencodering van het invoerbestand. Als deze optie " -"ingesteld wordt, zal de encodering die het document zelf bevat genegeerd " +"Specificeer de tekenencodering van het invoerbestand. Als deze optie " +"ingesteld is, zal de encodering die het document zelf bevat genegeerd " "worden. Voornamelijk nuttig voor documenten die geen encodering ingesteld " "hebben, of die een foutieve coderingsdeclaratie hebben." @@ -259,9 +259,9 @@ msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." msgstr "" -"Indien ingesteld, zal de uitvoerplugin proberen om de uitvoer te maken die " -"zo menselijk mogelijk leesbaar is als mogelijk. Kan zijn dat sommige " -"uitvoerplugins geen enkel effect hiervan ondervinden." +"Indien ingesteld, zal de uitvoerplugin proberen om uitvoer te maken die zo " +"leesbaar voor mensen is als mogelijk is. Kan zijn dat sommige uitvoerplugins " +"geen enkel effect hiervan ondervinden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:44 msgid "Input profile" @@ -304,7 +304,7 @@ msgstr "Dit profiel is bedoeld voor de Mobipocket boeken." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." -msgstr "Dit profiel is bedoeld voor de Hanlin V3 en zijn klonen." +msgstr "Dit profiel is bedoeld voor de Hanlin V3 en afgeleiden." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index 8ce5573780..cbb50247ab 100644 --- a/src/calibre/translations/pl.po +++ b/src/calibre/translations/pl.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 From 19fd617573ec599bd79821c6c47024151d0a6c4b Mon Sep 17 00:00:00 2001 From: Translators <> Date: Fri, 29 Jan 2010 04:52:15 +0000 Subject: [PATCH 004/158] Launchpad automatic translations update. --- src/calibre/translations/ast.po | 2 +- src/calibre/translations/ko.po | 2926 ++++++++++++++++++------------- src/calibre/translations/nb.po | 149 +- src/calibre/translations/ru.po | 10 +- 4 files changed, 1775 insertions(+), 1312 deletions(-) diff --git a/src/calibre/translations/ast.po b/src/calibre/translations/ast.po index 537a42abaa..12567467f5 100644 --- a/src/calibre/translations/ast.po +++ b/src/calibre/translations/ast.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" +"X-Launchpad-Export-Date: 2010-01-29 04:51+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/ko.po b/src/calibre/translations/ko.po index 30d9a86389..fbcfefe2c1 100644 --- a/src/calibre/translations/ko.po +++ b/src/calibre/translations/ko.po @@ -7,35 +7,36 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-12-11 23:27+0000\n" -"PO-Revision-Date: 2009-12-11 23:49+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-28 15:44+0000\n" +"Last-Translator: xster \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-12-13 04:36+0000\n" +"X-Launchpad-Export-Date: 2010-01-29 04:52+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "아무 것도 안함" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:44 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:94 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:765 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:768 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:189 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1895 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1897 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 @@ -55,29 +56,29 @@ msgstr "아무 것도 안함" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:154 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:591 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:895 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:900 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:960 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:185 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:186 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 @@ -96,67 +97,71 @@ msgstr "아무 것도 안함" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:268 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:275 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:127 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:548 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:557 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:775 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:778 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:434 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:392 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:405 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1003 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:702 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:714 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1115 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1152 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1486 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1488 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1599 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:45 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:48 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 msgid "Unknown" msgstr "알 수 없음" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "베이스" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:148 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "파일 형식" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:182 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "메타데이터 읽기" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:213 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "메타데이터 쓰기" +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "분류 생성기" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " @@ -224,11 +229,11 @@ msgstr "%s 파일에 메타데이터를 지정합니다." msgid "Set metadata from %s files" msgstr "%s 파일로부터 메타데이터를 지정합니다." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "변환 입력" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -238,11 +243,11 @@ msgstr "" "입력 문서의 문자 인코딩을 지정합니다. 이 옵션이 설정되면 문서 자체에 선언된 인코딩은 무시됩니다. 인코딩 선언이 없거나 인코딩 선언에 " "오류가 있는 문서에서 특히 유용합니다." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "변환 출력" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -260,75 +265,96 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." -msgstr "이 프로파일은 SONY PRS 시리즈에 사용됩니다. 500/505/700 등." +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 msgid "This profile is intended for the Microsoft Reader." msgstr "이 프로파일은 Microsoft Reader에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:240 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 msgid "This profile is intended for the Mobipocket books." msgstr "이 프로파일은 Mobipocket books에 상용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:93 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "이 프로파일은 Hanlin V3와 클론에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:105 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:265 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 msgid "This profile is intended for the Cybook G3." msgstr "이 프로파일은 Cybook G3에 상용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:118 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:278 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 msgid "This profile is intended for the Cybook Opus." msgstr "이 프로파일은 Cybook Opus에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:130 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:289 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 msgid "This profile is intended for the Amazon Kindle." msgstr "이 프로파일은 Amazon Kindle에서 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:142 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:322 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 msgid "This profile is intended for the Irex Illiad." msgstr "이 프로파일은 Irex Illiad에 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:154 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:335 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "이 프로파일은 IRex Digital Reader 1000에서 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:172 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" msgstr "출력 프로파일" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:176 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" "This profile tries to provide sane defaults and is useful if you want to " "produce a document intended to be read at a computer or on a range of " "devices." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 msgid "This profile is intended for the 5-inch JetBook." msgstr "이 프로파일은 5-inch JetBook에서 상용됩니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." msgstr "이 프로파일은 SONY PRS 시리즈에서 사용됩니다. 500/505/700 등의 가로화면 모드. 만화보기에 적합합니다." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:253 -msgid "This profile is intended for the Hanlin V3/V5 and its clones." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:306 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" @@ -348,15 +374,15 @@ msgstr "로컬 플러그인 설정" msgid "Disabled plugins" msgstr "사용되지 않는 플러그인" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:76 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 msgid "No valid plugin found in " msgstr "유효한 플러그인을 찾을 수 없음 " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:260 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 msgid "Initialization of plugin %s failed with traceback:" msgstr "플러그인 %s의 초기화가 실패하였습니다" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:394 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -368,29 +394,29 @@ msgstr "" " 외부 플러그인을 로드해서 칼리버를 설정합니다.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:400 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "플러그인을 포함하고 있는 압축 파일의 경로를 지정하여 플러그인을 추가합니다" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:402 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "이름을 기준으로 커스텀 플러그인을 제거합니다. 내장된 플러그인에는 적용되지 않습니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:404 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "플러그인을 설정합니다. 플러그인의 이름과 콤마로 구분된 설정 문자열을 지정합니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:406 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "설치된 플러그인을 나열합니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:408 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "주어진 이름의 플러그인을 사용가능 상태로 합니다." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:410 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "주어진 이름의 플러그인을 사용 불가능 상태로 합니다." @@ -398,61 +424,31 @@ msgstr "주어진 이름의 플러그인을 사용 불가능 상태로 합니다 msgid "Communicate with Android phones." msgstr "안드로이드폰과 통신합니다." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:25 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" msgstr "콤마로 구분된, 전자책을 전송할 장치의 디렉토리 리스트. 맨 먼저 존재하는 디렉토리가 사용됩니다." -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:19 -msgid "Communicate with the BeBook eBook reader." -msgstr "BeBook 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:95 -msgid "Communicate with the BeBook Mini eBook reader." -msgstr "BeBook Mini 전자책 리더와 통신합니다" - -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "블랙베리 스마트폰과 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:16 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" msgstr "Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:21 -msgid "Communicate with the Cybook Gen 3 eBook reader." -msgstr "Cybook Gen 3 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:22 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:86 -#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 -msgid "John Schember" -msgstr "John Schember" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:74 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:78 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:134 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:136 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:111 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:113 -msgid "Transferring books to device..." -msgstr "책을 장치로 전송합니다" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:85 -msgid "Communicate with the Cybook Opus eBook reader." -msgstr "Cybook Opus 전자책 릳와 통신합니다." - -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "EB600 전자책 리더와 통신합니다" @@ -460,11 +456,33 @@ msgstr "EB600 전자책 리더와 통신합니다" msgid "Communicate with the ESlick eBook reader." msgstr "ESlick 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." msgstr "IRex Iliad 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "John Schember" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" msgstr "장치 인터페이스" @@ -476,31 +494,35 @@ msgstr "IRex Digital Reader 1000 전자책 리더와 통신합니다" msgid "Communicate with the Iriver Story reader." msgstr "아이리버 스토리 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." msgstr "JetBook 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:23 -msgid "James Ralston" -msgstr "James Ralston" - -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:21 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 msgid "Communicate with the Kindle eBook reader." msgstr "Kindle 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:66 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 msgid "Communicate with the Kindle 2 eBook reader." msgstr "Kindle 2 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:76 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 msgid "Communicate with the Kindle DX eBook reader." msgstr "Kindle DX 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:16 +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 msgid "The Nook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 msgid "Communicate with the Nook eBook reader." msgstr "" @@ -508,19 +530,19 @@ msgstr "" msgid "Communicate with the Nuut2 eBook reader." msgstr "Nuut2 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." msgstr "Sony PRS-500 전자책 리더와 통신합니다" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:97 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:100 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:103 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:114 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:49 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:52 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:55 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 msgid "Getting list of books on device..." @@ -530,100 +552,116 @@ msgstr "장치에 있는 책 리스트를 가져오는 중입니다" msgid "Communicate with the Sony PRS-300/505/500 eBook reader." msgstr "Sony PRS-300/505/500 전자책 리더와 통신합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:27 -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:18 -msgid "Kovid Goyal and John Schember" -msgstr "Kovid Goyal과 John Schember" +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "책을 장치로 전송합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:167 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:131 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:146 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "장치로부터 책을 삭제합니다" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:202 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:161 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." msgstr "정치에 메타데이터를 전송하는 중입니다." -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:17 -msgid "Communicate with the Sony PRS-600/700 eBook reader." -msgstr "Sony PRS-600/700 전자책 리더와 통신합니다" +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:308 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:380 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "%s 디스크 드라이브를 탐지할 수 없습니다. 재부팅을 시도하세요" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:448 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "%s 디스크 드라이브를 탐지할 수 없습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:541 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:553 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:561 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "주 메모리를 마운트할 수 없습니다. (에러코드: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:698 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:700 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "리더의 슬롯에 메모리카드가 없습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:702 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "선택된 슬롯: %s는 지원되지 않습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:733 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" msgstr "주 메모리에 여유 공간이 부족합니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:735 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:737 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" msgstr "메모리카드에 여유 공간이 부족합니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:748 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1059 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1063 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1386 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "뉴스" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:11 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" msgstr "장치 설정" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "장치 드라이버 설정" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:20 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 msgid "Place files in sub directories if the device supports them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:24 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Read metadata from files on device" msgstr "장치에 있는 파일로부터 메타데이터를 읽습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:27 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 msgid "Extra customization" msgstr "추가 설정" @@ -631,102 +669,102 @@ msgstr "추가 설정" msgid "Communicate with an eBook reader." msgstr "전자책 리더와 통신합니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." msgstr "장치 정보를 얻습니다." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:119 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:127 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:150 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:155 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Rendered %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:199 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 msgid "Failed %s" msgstr "%s 실패함" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Number of colors for grayscale image conversion. Default: %default. Values " "of less than 256 may result in blurred text on your device if you are " "creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "이미지의 종횐비를 유지합니다. 기본값은 화면 채움입니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Disable sharpening." msgstr "날카롭게하기를 끕니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 msgid "Don't split landscape images into two portrait images" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" "Used for right-to-left publications like manga. Causes landscape pages to be " "split into portrait pages from right to left." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "" "The format that images in the created ebook are converted to. You can " "experiment to see which format gives you optimal size and look on your " "device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 msgid "Page" msgstr "페이지" @@ -799,22 +837,22 @@ msgstr "" msgid "List builtin recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 msgid "Output saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:91 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:98 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " "conversion process a bug is occurring." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -822,7 +860,7 @@ msgid "" "are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:118 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -830,7 +868,7 @@ msgid "" "a device. For example EPUB on the SONY reader. Choices are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 msgid "" "The base font size in pts. All font sizes in the produced book will be " "rescaled based on this size. By choosing a larger size you can make the " @@ -838,7 +876,7 @@ msgid "" "chosen based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 msgid "" "Mapping from CSS font names to font sizes in pts. An example setting is " "12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" @@ -847,17 +885,17 @@ msgid "" "use a mapping based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 msgid "Disable all rescaling of font sizes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:158 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 msgid "" "Some badly designed documents use tables to control the layout of text on " "the page. When converted these documents often have text that runs off the " @@ -865,58 +903,58 @@ msgid "" "tables and present it in a linear fashion." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level one. If this is specified, it takes precedence over " "other forms of auto-detection." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:185 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level two. Each entry is added under the previous level one " "entry." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level three. Each entry is added under the previous level two " "entry." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 msgid "" "Normally, if the source file already has a Table of Contents, it is used in " "preference to the auto-generated one. With this option, the auto-generated " "one is always used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:216 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:223 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" "Maximum number of links to insert into the TOC. Set to 0 to disable. Default " "is: %default. Links are only added to the TOC if less than the threshold " "number of chapters were detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

or

tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -926,7 +964,7 @@ msgid "" "User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 msgid "" "Specify how to mark detected chapters. A value of \"pagebreak\" will insert " "page breaks before chapters. A value of \"rule\" will insert a line before " @@ -934,112 +972,112 @@ msgid "" "\"both\" will use both page breaks and lines to mark chapters." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 msgid "" "Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " "the style rules from the source file, so it can be used to override those " "rules." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:275 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:296 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:301 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 msgid "" "Do not force text to be justified in output. Whether text is actually " "displayed justified or not depends on whether the ebook format and reading " "device support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 msgid "" "Remove spacing between paragraphs. Also sets an indent on paragraphs of " "1.5em. Spacing removal will not work if the source file does not use " "paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 msgid "" "When calibre removes inter paragraph spacing, it automatically sets a " "paragraph indent, to ensure that paragraphs can be easily distinguished. " "This option controls the width of that indent." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:328 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:335 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 msgid "" "Remove the first image from the input ebook. Useful if the first image in " "the source file is a cover and you are specifying an external cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:343 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 msgid "" "Insert the book metadata at the start of the book. This is useful if your " "ebook reader does not support displaying/searching metadata directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:351 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 msgid "" "Attempt to detect and correct hard line breaks and other problems in the " "source file. This may make things worse, so use with care." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 msgid "Use a regular expression to try and remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:366 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 msgid "The regular expression to use to remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:372 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 msgid "Use a regular expression to try and remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 msgid "The regular expression to use to remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:386 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:393 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1049,90 +1087,90 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:408 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 msgid "Set the title." msgstr "제목을 지정합니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:412 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:421 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:425 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 msgid "Set the cover to the specified file." msgstr "해당 파일에 커버를 지정합니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:429 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 msgid "Set the ebook description." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:433 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 msgid "Set the ebook publisher." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:437 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 msgid "Set the rating. Should be a number between 1 and 5." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 msgid "Set the ISBN of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:453 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:457 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:461 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 msgid "Set the language." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 msgid "Could not find an ebook inside the archive" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:611 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:731 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:754 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:840 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 msgid "Creating" msgstr "생성 중" @@ -1165,9 +1203,9 @@ msgid "" "disables the generation of this cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:130 -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "목차:" @@ -1215,85 +1253,85 @@ msgstr "" msgid "Creating LIT file from EPUB..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:321 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 msgid "\tBook Designer file detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:323 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:380 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" msgstr "%s 처리중" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:394 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:540 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:545 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" msgstr "%s는 빈 파일입니다." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:565 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:958 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1003 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1018 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1773 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" "An error occurred while processing a table: %s. Ignoring table markup." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1775 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1797 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1863 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1866 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1996 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" msgstr "" @@ -1476,26 +1514,26 @@ msgstr "만화" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:389 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 msgid "Title" msgstr "제목" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:394 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1070 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Author(s)" msgstr "저자" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 msgid "Publisher" msgstr "출판사" @@ -1506,28 +1544,28 @@ msgstr "제작자" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "설명" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1013 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1073 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "꼬리표" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "시리즈" @@ -1536,13 +1574,13 @@ msgid "Language" msgstr "언어" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1012 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 msgid "Timestamp" msgstr "시간 정보" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 msgid "Published" msgstr "출판" @@ -1550,7 +1588,7 @@ msgstr "출판" msgid "Rights" msgstr "권리" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "편집자 리뷰" @@ -1615,27 +1653,27 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "파일이 지정되지 않음." -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "원본 메타데이터" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "변경된 메타데이터" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "표지 그림을 찾지 못했습니다" @@ -1657,15 +1695,15 @@ msgstr "설명/리뷰" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 msgid "Download %s from %s" -msgstr "" +msgstr "%s을(를) %s에서 내려받기" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 msgid "Downloads metadata from Google Books" -msgstr "Google Books에서 메타데이터를 다운로드합니다." +msgstr "Google Books에서 메타 데이터를 내려받습니다." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 msgid "Downloads metadata from isbndb.com" -msgstr "isbndb.com에서 메타데이터를 다운로드합니다." +msgstr "isbndb.com에서 메타 데이터를 내려받습니다." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 msgid "" @@ -1675,7 +1713,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 msgid "Downloads social metadata from amazon.com" -msgstr "" +msgstr "amazon.com에서 소셜 메타 데이터를 내려받습니다." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" @@ -1734,7 +1772,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 msgid "Cover" msgstr "표지" @@ -1765,97 +1803,73 @@ msgstr "" msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 msgid "Title Page" msgstr "제목 페이지" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "목차" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 msgid "Index" msgstr "색인" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 msgid "Bibliography" msgstr "참고 문헌" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 msgid "Colophon" msgstr "출판 정보" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Copyright" msgstr "저작권" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Dedication" msgstr "바치는 글" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Foreword" msgstr "서문" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "List of Illustrations" msgstr "그림 차례" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Notes" msgstr "노트" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Preface" msgstr "서문" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Main Text" msgstr "본문" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "입력받을 문자 인코딩. 기본값은 자동 검출." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "출력 파일. 기본값은 입력 파일명." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "디버깅에 유용함." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "" @@ -2136,7 +2150,7 @@ msgstr "" msgid "The orientation of the page. Default is portrait. Choices are %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" msgstr "" @@ -2145,7 +2159,7 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it." @@ -2169,6 +2183,10 @@ msgid "" "markdown see" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 msgid "" "Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " @@ -2183,11 +2201,6 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54 -msgid "Do not add a blank line between paragraphs." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:41 msgid "" "The maximum number of characters per line. This splits on the first space " "before the specified value. If no space is found the line will be broken at " @@ -2195,192 +2208,294 @@ msgid "" "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 msgid "" "Force splitting on the max-line-length value when no space is present. Also " "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:52 -msgid "Add a tab at the beginning of each paragraph." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 msgid "Upload downloaded news to device" -msgstr "" +msgstr "내려받은 뉴스를 장치로 올립니다." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 msgid "Download social metadata (tags/rating/etc.)" +msgstr "소셜 메타 데이터를 내려받습니다. (태그/등급/기타)" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:125 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:403 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 msgid "Saved" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "분류" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 +msgid "Tags to exclude as genres (regex):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" "For settings that cannot be specified in this dialog, use the values saved " @@ -2401,22 +2516,6 @@ msgstr "" msgid "Comic Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "Options specific to" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 @@ -2425,34 +2524,6 @@ msgstr "" msgid "input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 -msgid "Form" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2545,23 +2616,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:70 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 @@ -2569,11 +2640,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 msgid "..." msgstr "" @@ -2588,17 +2660,6 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "" @@ -2630,7 +2691,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" msgstr "" @@ -2823,8 +2884,8 @@ msgid "&Monospaced font family:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "Metadata" msgstr "" @@ -2834,39 +2895,39 @@ msgid "" "possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 msgid "Choose cover for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 msgid "Cannot read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 msgid "You do not have permission to read the file: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 msgid "Error reading file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 msgid "

There was an error reading from file:
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid " is not a valid picture" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Book Cover" msgstr "" @@ -2875,28 +2936,28 @@ msgid "Use cover from &source file" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Change &cover image:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 msgid "Browse for an image to use as the cover of this book." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "&Title: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2912,18 +2973,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any words or phrases, separated by commas." @@ -2931,7 +2992,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" @@ -2939,13 +3000,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Book " msgstr "" @@ -3014,12 +3075,12 @@ msgid "PDB Input" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 msgid "Treat each &line as a paragraph" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 msgid "Assume print formatting" msgstr "" @@ -3060,7 +3121,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 msgid "Choose the format to view" msgstr "" @@ -3086,7 +3147,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 msgid "Preview" -msgstr "" +msgstr "미리보기" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 msgid "Regex:" @@ -3101,7 +3162,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" @@ -3143,12 +3204,12 @@ msgid "Footer regular expression:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 msgid "Invalid regular expression" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 msgid "Invalid regular expression: %s" msgstr "" @@ -3232,40 +3293,40 @@ msgstr "" msgid "TXT Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 msgid "" "

Markdown is a simple markup language for text files, that allows for " "advanced formatting. To learn more visit markdown." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 msgid "&Line ending style:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:55 -msgid "Add a tab at the beginning of each paragraph" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 msgid "&Maximum line length:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 msgid "Force maximum line lenght" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3274,7 +3335,7 @@ msgstr "" msgid "TextLabel" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 msgid "Use a wizard to help construct the XPath expression" msgstr "" @@ -3352,237 +3413,281 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:224 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:265 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" -msgstr "" +msgstr "장치로부터 책을 내려받습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:282 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:303 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:308 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:315 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:317 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:330 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 -msgid "Send to main memory" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 -msgid "Send to storage card A" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +msgid "Send to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +msgid "Send to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:344 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 msgid "Send specific format to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 msgid "Send specific format to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Send specific format to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:497 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:573 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:603 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:610 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:702 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:817 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:824 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:604 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:611 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:634 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:662 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:673 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:703 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:734 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:786 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:825 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:874 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:68 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 msgid "Select available formats and their order for this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 msgid "Use sub directories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:346 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1008 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +msgid "Generate catalog" +msgstr "분류를 생성합니다." + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "분류 옵션" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "{0}권의 책을 위해 분류를 생성합니다." + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "" @@ -3615,6 +3720,12 @@ msgstr "" msgid "plugins" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Conversion" msgstr "" @@ -3673,127 +3784,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:468 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:811 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1094 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:473 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:474 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:632 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:639 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:667 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:691 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:699 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:752 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:757 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:753 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:754 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:758 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:792 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:812 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:817 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:818 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3801,14 +3912,6 @@ msgid "" "folder directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:68 -msgid "Invalid template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:69 -msgid "The template %s is invalid:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 msgid "TabWidget" msgstr "" @@ -3825,310 +3928,322 @@ msgid "Read metadata only from &file name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 -msgid "&Configure metadata from file name" +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 -msgid "&Adding books" +msgid "&Swap author firstname and lastname" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 msgid "" "Here you can control how calibre will save your books when you click the " "Save to Disk button:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 msgid "Save &cover separately" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 msgid "Update &metadata in saved copies" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 msgid "Save metadata in &OPF file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 msgid "Convert non-English characters to &English equivalents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 msgid "Format &dates as:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 msgid "File &formats to save:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 -msgid "Save &template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 -msgid "" -"By adjusting the template below, you can control what folders the files are " -"saved in and what filenames they are given. You can use the / character to " -"indicate sub-folders. Available metadata variables are described below. If a " -"particular book does not have some metadata, the variable will be replaced " -"by the empty string." -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 -msgid "Available variables:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Replace space with &underscores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Change paths to &lowercase" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 msgid "&Saving books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4139,36 +4254,73 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Add" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 msgid "Downloading social metadata, please wait..." msgstr "" @@ -4277,10 +4429,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 msgid "Edit Meta information" -msgstr "" +msgstr "메타 정보 수정하기" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" @@ -4293,26 +4445,26 @@ msgid "Author s&ort: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" @@ -4322,8 +4474,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" @@ -4343,182 +4495,191 @@ msgstr "" msgid "&Swap title and author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:925 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:186 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:244 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:250 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:503 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:508 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:578 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:631 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 msgid "Could not open %s. Is it being used by another program?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 msgid "Edit Meta Information" -msgstr "" +msgstr "메타 정보 수정하기" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 msgid "Swap the author and title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 msgid "Author S&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "" "Automatically create the author sort entry based on the current author entry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "Remove unused series (Series that have no books)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "IS&BN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 msgid "dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "&Date:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "&Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Fetch metadata from server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "Available Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "Add a new format for this book to the database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "Remove the selected formats for this book from the database." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "Set the cover for the book from the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 msgid "Reset cover to default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 msgid "Download &cover" msgstr "" @@ -4727,11 +4888,15 @@ msgid "" "interface\">User Manual for more help" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -4786,7 +4951,7 @@ msgid "Send test mail from %s to:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "" @@ -4970,7 +5135,7 @@ msgstr "" msgid "Recipe source code (python)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 msgid "" "\n" @@ -4994,165 +5159,165 @@ msgid "" "metadata entries are documented in tooltips.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 msgid "Regular &expression" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 msgid "File &name:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular expression (?P<title>)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:76 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 msgid "No match" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 msgid "Authors:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 msgid "Series:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Series index:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 msgid "ISBN:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 msgid "Job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 msgid "Status" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 msgid "Progress" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 msgid "Running time" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 msgid "There are %d running jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:78 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 msgid "Unknown job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 msgid "There are %d waiting jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:210 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 msgid "Cannot kill job" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 msgid "Cannot kill jobs that communicate with the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 msgid "Job has already run" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 msgid "Unavailable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:253 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 msgid " - Jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1071 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:162 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 msgid "Date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:836 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1007 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1061 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 msgid "Double click to edit me

" msgstr "" @@ -5181,7 +5346,7 @@ msgid "No matches for the search phrase %s were found." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 msgid "No matches found" msgstr "" @@ -5206,12 +5371,12 @@ msgid "Previous Page" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 msgid "Back" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 msgid "Forward" msgstr "" @@ -5220,7 +5385,7 @@ msgid "Next match" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 msgid "Open ebook" msgstr "" @@ -5277,137 +5442,137 @@ msgstr "" msgid "try deleting the file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 msgid "calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 msgid "Advanced search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 msgid "Alt+S" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 msgid "&Search:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 msgid "" "

Search the list of books by title, author, publisher, tags, comments, " "etc.

Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 msgid "Reset Quick Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 -msgid "Match any" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 -msgid "Match all" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 msgid "Sort by &popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 -msgid "Add books" +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 +msgid "Add books" +msgstr "책 추가하기" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 msgid "A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 msgid "Remove books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 msgid "Del" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 msgid "Edit meta information" -msgstr "" +msgstr "메타 정보 수정하기" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 msgid "E" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 msgid "Send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 msgid "Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 msgid "S" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 msgid "Fetch news" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 msgid "F" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 msgid "Convert E-books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 msgid "C" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 msgid "View" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 msgid "V" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 msgid "Open containing folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 msgid "Show book details" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 msgid "Books by same author" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 msgid "Books in this series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 msgid "Books by this publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 msgid "Books with the same tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 msgid "Configure calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 msgid "Ctrl+P" msgstr "" @@ -5441,33 +5606,37 @@ msgstr "" msgid "Search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 msgid "already assigned to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid " or " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 msgid "&Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" msgstr "" @@ -5497,37 +5666,37 @@ msgstr "" msgid "&Alternate shortcut:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 msgid "Jobs:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 msgid "Click to see list of active jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to browse books by their covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to turn off Cover Browsing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 msgid "" "

Browsing books by their covers is disabled.
Import of pictureflow " "module failed:
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 msgid "Click to browse books by tags" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Publishers" msgstr "" @@ -5560,11 +5729,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5604,11 +5773,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 msgid "Edit metadata individually" -msgstr "" +msgstr "개별 메타 정보 수정하기" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 msgid "Edit metadata in bulk" -msgstr "" +msgstr "단체 메타 정보 수정하기" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 msgid "Download metadata and covers" @@ -5628,30 +5797,30 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 msgid "Add books from a single directory" -msgstr "" +msgstr "하나의 디렉토리로부터 책 추가하기" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 msgid "" "Add books from directories, including sub-directories (One book per " "directory, assumes every ebook file is the same book in a different format)" -msgstr "" +msgstr "하위 디렉토리를 포함하여 디렉토리로부터 책 추가하기 (디렉토리당 책 하나)" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 msgid "" "Add books from directories, including sub directories (Multiple books per " "directory, assumes every ebook file is a different book)" -msgstr "" +msgstr "하위 디렉토리를 포함하여 디렉토리로부터 책 추가하기 (디렉토리에 여러 책)" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 msgid "Add Empty book. (Book entry with no formats)" -msgstr "" +msgstr "빈 책 추가하기. (포맷이 지정되지 않은 책 항목)" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1523 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 msgid "Save only %s format to disk" msgstr "" @@ -5659,58 +5828,82 @@ msgstr "" msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:451 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:454 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 msgid "Calibre Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:464 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1666 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 msgid "Choose a location for your ebook library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:656 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:775 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:798 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:810 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:811 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 msgid "" "\n" "

The database of books on the reader is corrupted. Try the " @@ -5726,178 +5919,216 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:917 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:960 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:926 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:927 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:928 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:929 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:930 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:931 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:932 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:969 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:970 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +msgid "No book selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1016 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1047 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1048 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1138 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1163 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1276 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1063 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1065 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1090 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1093 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1104 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 msgid "Cannot edit metadata" -msgstr "" +msgstr "메타 정보를 수정할 수 없습니다." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1162 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1165 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1192 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1235 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1275 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1304 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1415 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1434 -msgid "No book selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1415 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1465 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1433 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1450 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1451 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -5905,97 +6136,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1466 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1507 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1508 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1552 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1604 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1605 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1628 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1646 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1629 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1647 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1675 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1676 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1724 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1749 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1752 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1756 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1808 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1827 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1835 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1836 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6057,105 +6292,113 @@ msgstr "" msgid "Import" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 -msgid "Double click to change a keyborad shortcut" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 msgid "Options to customize the ebook viewer" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:627 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 msgid "Remember last used window size" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6165,42 +6408,50 @@ msgstr "" msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 -msgid "Hyphenate text" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 -msgid "Default language for hyphenation rules" +msgid "Hyphenate text" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 -msgid "Font options" +msgid "Default language for hyphenation rules" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 -msgid "The serif font family" +msgid "Font options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 -msgid "The sans-serif font family" +msgid "The serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 -msgid "The monospaced font family" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 -msgid "The standard font size in px" +msgid "The sans-serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 -msgid "The monospaced font size in px" +msgid "The monospaced font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +msgid "&Lookup in dictionary" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 msgid "Scroll to the next page" msgstr "" @@ -6249,143 +6500,151 @@ msgstr "" msgid "Scroll right" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 msgid "Position in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 msgid "Search for text in book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:254 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 msgid "Choose ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 msgid "Ebooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 msgid "Add bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 msgid "Enter title for bookmark:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "No matches found for: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 msgid "Loading flow..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 msgid "Laying out %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 msgid "Loading ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "DRM Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "

This book is protected by DRM" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 msgid "Could not open ebook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 msgid "Options to control the ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:629 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:635 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 msgid "" "%prog [options] file\n" "\n" "View an ebook.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 msgid "Ebook Viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 msgid "toolBar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 msgid "Next page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 msgid "Previous page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 msgid "Font size larger" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 msgid "Font size smaller" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 msgid "Find next" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 msgid "Copy to clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 msgid "Reference Mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 msgid "Bookmark" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 msgid "Toggle full screen" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Print" msgstr "" @@ -6393,114 +6652,122 @@ msgstr "" msgid "Print eBook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" "books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:202 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:494 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:495 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:496 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:497 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 msgid "" "If you use the WordPlayer e-book app on your Android phone, you can access " "your calibre book collection directly on the device. To do this you have to " "turn on the content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 msgid "" "You have to add the URL http://myhostname:8080 as your calibre library in " "WordPlayer. Here myhostname should be the fully qualified hostname or the IP " "address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:393 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:448 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 msgid "Invalid database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:449 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 msgid "" "

An invalid library already exists at %s, delete it before trying to move " "the existing library.
Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:460 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:588 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "" @@ -6581,7 +6848,7 @@ msgstr "" msgid "" "Choose a location for your books. When you add books to calibre, they will " "be copied here:" -msgstr "" +msgstr "책을 보관할 위치를 선택하세요. calibre에 책을 추가하면, 이 위치로 복사됩니다." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 msgid "&Change" @@ -6758,6 +7025,79 @@ msgid "" "WordPlayer, etc. integration." msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -6857,7 +7197,7 @@ msgstr "" msgid "" "Add books to database even if they already exist. Comparison is done based " "on book titles." -msgstr "" +msgstr "이미 DB에 책이 있어도 책을 추가합니다. 책의 이름을 기반으로 비교합니다." #: /home/kovid/work/calibre/src/calibre/library/cli.py:358 msgid "You must specify at least one file to add" @@ -6973,7 +7313,41 @@ msgstr "" msgid "You must specify some ids or the %s option" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:591 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "상세한 출력 정보를 표시합니다. 디버깅 시에 유용합니다." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -6985,107 +7359,109 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1625 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1654 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1671 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1764 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1801 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1823 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:22 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:23 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 msgid "The authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 -msgid "The author sort string" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 -msgid "The tags" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The series" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 -msgid "The series number" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 -msgid "The rating" +msgid "The tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 -msgid "The ISBN" +msgid "The series" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 -msgid "The publisher" +msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 -msgid "The date" +msgid "The rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 -msgid "The published date" +msgid "The ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:43 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:49 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7093,7 +7469,15 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:66 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7101,21 +7485,21 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:72 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:77 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:230 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "" @@ -7123,67 +7507,75 @@ msgstr "" msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" "Start the calibre content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:49 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 msgid "%sUsage%s: %s\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 msgid "Created by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:631 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:633 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:635 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:637 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:639 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:641 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:643 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:647 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:649 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:651 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "" +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "" @@ -7196,7 +7588,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 msgid "Working..." msgstr "" @@ -7225,26 +7617,50 @@ msgid "English" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 -msgid "English (AU)" +msgid "English (Australia)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (CA)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (IND)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (TH)" +msgid "English (India)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 -msgid "Dutch (NL)" +msgid "English (Thailand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" msgstr "" @@ -7278,164 +7694,169 @@ msgstr "" msgid "Untitled article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:18 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 msgid "Download periodical content from the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:33 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 msgid "" "Useful for recipe development. Forces max_articles_per_feed to 2 and " "downloads at most 2 feeds." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 msgid "Username for sites that require a login to access content." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 msgid "Password for sites that require a login to access content." msgstr "" +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:513 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:599 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:601 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:607 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:609 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:611 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:692 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:713 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:718 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:724 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:782 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:798 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:808 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:941 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1012 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1023 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1040 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:45 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 msgid "You" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:172 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 msgid "Scheduled" msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:173 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 msgid "Custom" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:453 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:456 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:469 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7444,10 +7865,39 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "CSS 스타일시트를 다운로드 받지 마시오" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 -msgid "Show detailed output information. Useful for debugging" -msgstr "상세한 출력 정보를 표시합니다. 디버깅 시에 유용합니다." +#~ msgid "Communicate with the Cybook Gen 3 eBook reader." +#~ msgstr "Cybook Gen 3 전자책 리더와 통신합니다" + +#~ msgid "Communicate with the BeBook eBook reader." +#~ msgstr "BeBook 전자책 리더와 통신합니다" + +#~ msgid "Communicate with the BeBook Mini eBook reader." +#~ msgstr "BeBook Mini 전자책 리더와 통신합니다" + +#~ msgid "Communicate with the Sony PRS-600/700 eBook reader." +#~ msgstr "Sony PRS-600/700 전자책 리더와 통신합니다" + +#~ msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." +#~ msgstr "이 프로파일은 SONY PRS 시리즈에 사용됩니다. 500/505/700 등." + +#~ msgid "Communicate with the Cybook Opus eBook reader." +#~ msgstr "Cybook Opus 전자책 릳와 통신합니다." + +#~ msgid "James Ralston" +#~ msgstr "James Ralston" + +#~ msgid "Kovid Goyal and John Schember" +#~ msgstr "Kovid Goyal과 John Schember" + +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "출력 파일. 기본값은 입력 파일명." + +#~ msgid "Useful for debugging." +#~ msgstr "디버깅에 유용함." + +#~ msgid "Character encoding for input. Default is to auto detect." +#~ msgstr "입력받을 문자 인코딩. 기본값은 자동 검출." diff --git a/src/calibre/translations/nb.po b/src/calibre/translations/nb.po index 59075cb312..87f9463b43 100644 --- a/src/calibre/translations/nb.po +++ b/src/calibre/translations/nb.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-23 00:18+0000\n" -"PO-Revision-Date: 2010-01-22 18:24+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-28 11:25+0000\n" +"Last-Translator: Øyvind Øritsland \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-23 04:43+0000\n" +"X-Launchpad-Export-Date: 2010-01-29 04:52+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -127,12 +127,12 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1547 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1549 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 @@ -459,11 +459,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "Kommuniser med Binatone Readme eBook leser" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Kommuniser med Blackberry smart-telefon." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -660,7 +660,7 @@ msgstr "Det er ikke nok ledig plass på lagringskortet" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1447 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "Nyheter" @@ -814,8 +814,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Ikke legg prosesser til bildet" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 msgid "Page" msgstr "Side" @@ -1819,7 +1819,7 @@ msgstr "Publisert" msgid "Rights" msgstr "Rettigheter" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "REDAKSJONELL ANMELDELSE" @@ -2760,7 +2760,7 @@ msgstr "Lagret" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "CSV/XML Valg" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2827,11 +2827,18 @@ msgstr "Form" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Felt som skal inkluderes som utdata:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "E-bok valg" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "Katalog" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 msgid "Tags to exclude as genres (regex):" @@ -3819,7 +3826,7 @@ msgstr "" "ebook.com/user_manual/xpath.html\">XPath Tutorial." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 msgid "No details available." msgstr "Ingen detaljer tilgjengelig." @@ -7702,12 +7709,21 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:249 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7716,21 +7732,21 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 msgid "" "Tag indicating book has been read.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:267 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -8054,7 +8070,7 @@ msgstr "" "Standard: ingen filtrering" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Vis detaljert utdatainformasjon. Benyttes for feilsøking" @@ -8082,32 +8098,27 @@ msgstr "" "\n" "For hjelp til en individuell kommando: %%prog kommando --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1429 -msgid "Catalog" -msgstr "Katalog" - -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1691 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "

Migrerer gammel database til e-bokbiblioteket i %s
" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1720 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "Kopierer %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1737 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "Komprimerer databasen" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1830 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "Sjekker for SQL integritet..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1867 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "Sjekker etter savnede filer." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "Sjekker ID" @@ -8251,7 +8262,7 @@ msgstr "Konverter baner til små bokstaver." msgid "Replace whitespace with underscores." msgstr "Bytt ut mellomrom med underlinje." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:255 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "Etterspurt format er ikke tilgjengelig" @@ -8259,7 +8270,7 @@ msgstr "Etterspurt format er ikke tilgjengelig" msgid "Password to access your calibre library. Username is " msgstr "Passord for tilgang til ditt Calibrebibliotek. Brukernavn er " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -8269,7 +8280,7 @@ msgstr "" "\n" "Start Calibres innholdserver." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "Sti til bibliotekfolderen som fungerer som innholdsserver" @@ -8345,7 +8356,7 @@ msgstr "Stoppet" msgid "Finished" msgstr "Fullført" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 msgid "Working..." msgstr "Arbeider …" @@ -8483,75 +8494,75 @@ msgstr "" msgid "Unknown News Source" msgstr "Ukjent nyhetskilde" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." msgstr "\"%s\"kvitteringen trenger et brukernavn og et pasord." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" msgstr "Nedlasting ferdig" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" msgstr "Klarte ikke å laste ned følgende artikler:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 msgid "Failed to download parts of the following articles:" msgstr "Kunne ikke laste ned deler av den følgende artikklene" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " msgstr " fra " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" msgstr "\tUgyldige lenker:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Kunne ikke hente artikkel. Kjør med -vv for å finne årsaken" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." msgstr "Henter matinger..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" msgstr "Funnet matinger fra indeksside" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." msgstr "Forsøker å laste ned omslag..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." msgstr "Starter nedlasting [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" msgstr "Matinger er lastet ned til %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" msgstr "Kunne ikke laste ned omslag: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" msgstr "Laster ned omslag fra %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" msgstr "Utittelert artikkel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" msgstr "Artikkelen har blitt lastet ned: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" msgstr "Artikkelen kunne ikke lastes ned: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" msgstr "Henter mating" @@ -8570,7 +8581,7 @@ msgstr "Planlagt" msgid "Custom" msgstr "Tilpasset" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8580,18 +8591,18 @@ msgstr "" "\n" "Der URL for eksempel er http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "Basedirektorat der URL blir lagret. Standard er %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" "Tidsavbrudd i sekunder å vente på svar fra server. Standard %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8599,7 +8610,7 @@ msgstr "" "Maksimum antall nivå å gjenta, for eksempel dybde av lenker som skal følges. " "Standard %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8607,7 +8618,7 @@ msgstr "" "Maksimum antall filer som skal lastes ned. Dette gjelder kun filer fra emneord. Standard er %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8615,7 +8626,7 @@ msgstr "" "Minimum intervaller i sekunder mellom påfølgende innhentinger av data. " "Standard er %default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8623,7 +8634,7 @@ msgstr "" "Karaktersettkodingen for nettsidene du forsøker å laste ned. Standard er å " "forsøke å gjette kodingen." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8634,7 +8645,7 @@ msgstr "" "samsvarer med et regulært uttrykk, så vil det bli fulgt. Som standard vil " "alle lenker blir fulgt." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8649,7 +8660,7 @@ msgstr "" "match-regexp uttrykk er spesifisert, så vil --filter-regexp uttrykk bli lagt " "til først." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Ikke last ned CSS stilsett" diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index de7233d9c7..a2dfa8f960 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: calibre 0.4.55\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:27+0000\n" -"Last-Translator: Kovid Goyal \n" +"PO-Revision-Date: 2010-01-28 23:50+0000\n" +"Last-Translator: Serge Kopalkin \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-01-29 04:52+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -2560,6 +2560,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" +"Ограничить максимальное количество одновременных задач количеством " +"процессоров CPU" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 @@ -4204,7 +4206,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 msgid "&Adding books" -msgstr "" +msgstr "&Добавление книг" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 msgid "" From 80fd3ad32daaf80fb54c49c54fc4b76a8490f067 Mon Sep 17 00:00:00 2001 From: Translators <> Date: Sat, 30 Jan 2010 04:39:06 +0000 Subject: [PATCH 005/158] Launchpad automatic translations update. --- src/calibre/translations/gl.po | 24 ++++++++++++------------ src/calibre/translations/ru.po | 2 +- src/calibre/translations/tr.po | 22 +++++++++++----------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/calibre/translations/gl.po b/src/calibre/translations/gl.po index 9dfe8b8f4d..487a3635c9 100644 --- a/src/calibre/translations/gl.po +++ b/src/calibre/translations/gl.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:20+0000\n" -"Last-Translator: Fidelinho \n" +"PO-Revision-Date: 2010-01-29 17:58+0000\n" +"Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-01-30 04:38+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -144,11 +144,11 @@ msgstr "Descoñecido" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" -msgstr "Patrón" +msgstr "Base" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" -msgstr "Tipo de arquivo" +msgstr "Tipo de ficheiro" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" @@ -169,8 +169,8 @@ msgid "" "library." msgstr "" "Segue todas as ligazóns locais nun ficheiro HTML e crea un ficheiro ZIP con " -"todos os ficheiros ligados. Este complemento execútase cada vez que se " -"engade un ficheiro HTML á biblioteca." +"todos os ficheiros ligados. Este engadido execútase cada vez que se engade " +"un ficheiro HTML á biblioteca." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 msgid "" @@ -233,7 +233,7 @@ msgstr "Define os metadatos desde os ficheiros %s" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" -msgstr "Orixe da conversión" +msgstr "Entrada da conversión" #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" @@ -242,10 +242,10 @@ msgid "" "useful for documents that do not declare an encoding or that have erroneous " "encoding declarations." msgstr "" -"Especificar a codificación de caracteres do documento orixe. Se se establece " -"esta opción superporase a calquera codificación declarada no propio " -"documento. En particular é útil para documentos sen codificación declarada " -"ou con erros na declaración de codificación." +"Especificar a codificación de caracteres do documento de entrada. Se se " +"establece esta opción sobreporase a calquera codificación declarada no " +"propio documento. En particular é útil para documentos sen codificación " +"declarada ou con erros na declaración de codificación." #: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index a2dfa8f960..06d7827c79 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-29 04:52+0000\n" +"X-Launchpad-Export-Date: 2010-01-30 04:38+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" diff --git a/src/calibre/translations/tr.po b/src/calibre/translations/tr.po index 07cee79fe3..2e2482d62c 100644 --- a/src/calibre/translations/tr.po +++ b/src/calibre/translations/tr.po @@ -8,18 +8,18 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 02:29+0000\n" -"Last-Translator: Kovid Goyal \n" +"PO-Revision-Date: 2010-01-29 18:39+0000\n" +"Last-Translator: Bugra Gokalp Okcu \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:51+0000\n" +"X-Launchpad-Export-Date: 2010-01-30 04:39+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" -msgstr "" +msgstr "Hiçbir şey yapmaz" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 @@ -500,7 +500,7 @@ msgstr "IRex Iliad eBook reader ile bağlantı kur" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 msgid "John Schember" -msgstr "" +msgstr "John Schember" #: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" @@ -611,7 +611,7 @@ msgstr "%s bağlantı noktası bulunamadı. Yeniden başlatmayı deneyin." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." -msgstr "" +msgstr "%s disk sürücüsü bulunamıyor." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." @@ -625,7 +625,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" -msgstr "" +msgstr "Ana hafıza monte edilemiyor (Hata kodu: %d)" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 @@ -653,11 +653,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" -msgstr "" +msgstr "Haberler" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" -msgstr "" +msgstr "Aygıtı Yapılandır" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" @@ -683,7 +683,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 msgid "Extra customization" -msgstr "" +msgstr "Ekstra kişiselleştirme" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 msgid "Communicate with an eBook reader." @@ -691,7 +691,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." -msgstr "" +msgstr "Aygıt bilgisini al..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 From 30add33dfe31fdab3b08d5208b2f6952fab72a85 Mon Sep 17 00:00:00 2001 From: GRiker Date: Sat, 30 Jan 2010 12:00:42 -0700 Subject: [PATCH 006/158] User-specified font for Kindle mastheads --- src/calibre/web/feeds/news.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 125d766190..709af4bea2 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -992,7 +992,7 @@ class BasicNewsRecipe(Recipe): from calibre.ebooks.conversion.config import load_defaults recs = load_defaults('mobi_output') font_path = recs.get('masthead_font') - default-font = P('fonts/liberation/LiberationSerif-Bold.ttf') + default_font = P('fonts/liberation/LiberationSerif-Bold.ttf') if not font_path or not os.access(font_path, os.R_OK): font_path = default_font From 3f3bd00c3a5dd480e105c91a4482bd3891c5c690 Mon Sep 17 00:00:00 2001 From: GRiker Date: Sat, 30 Jan 2010 12:23:45 -0700 Subject: [PATCH 007/158] Only build custom masthead for Kindle output --- src/calibre/library/catalog.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 91c5a1bdb8..be63ffedef 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -797,11 +797,13 @@ class EPUB_MOBI(CatalogPlugin): os.path.join(self.catalogPath, file[0])) # Create the custom masthead image overwriting default - - if True: #try: - self.generate_masthead_image(os.path.join(self.catalogPath, 'images/mastheadImage.gif')) -# except: -# pass + # If failure, default mastheadImage.gif should still be in place + if self.generateForKindle: + try: + self.generate_masthead_image(os.path.join(self.catalogPath, + 'images/mastheadImage.gif')) + except: + pass def fetchBooksByTitle(self): self.updateProgressFullStep("Fetching database") @@ -2521,7 +2523,8 @@ class EPUB_MOBI(CatalogPlugin): font_path = default_font else: if self.opts.verbose: - self.opts.log(" Rendering catalog masthead with user-specifed font '%s'" % font_path) + self.opts.log(" Rendering catalog masthead with user-specifed font:") + self.opts.log(" '%s'" % font_path) MI_WIDTH = 600 MI_HEIGHT = 60 @@ -2686,7 +2689,7 @@ class EPUB_MOBI(CatalogPlugin): opts.descriptionClip = 380 if op.endswith('dx') or 'kindle' not in op else 90 opts.basename = "Catalog" opts.plugin_path = self.plugin_path - opts.cli_environment = getattr(opts,'sync',True) + opts.cli_environment = not hasattr(opts,'sync') if opts.verbose: opts_dict = vars(opts) From a5698d00c6f268049c7109b38e9e6862e8910c92 Mon Sep 17 00:00:00 2001 From: Translators <> Date: Sun, 31 Jan 2010 04:51:02 +0000 Subject: [PATCH 008/158] Launchpad automatic translations update. --- src/calibre/translations/nl.po | 13 +++++++++---- src/calibre/translations/ru.po | 16 ++++++++-------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/calibre/translations/nl.po b/src/calibre/translations/nl.po index 5cf32244d4..12a80d6efd 100644 --- a/src/calibre/translations/nl.po +++ b/src/calibre/translations/nl.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-27 17:40+0000\n" -"Last-Translator: highwaykind \n" +"PO-Revision-Date: 2010-01-30 08:58+0000\n" +"Last-Translator: Marc van den Dikkenberg \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" +"X-Launchpad-Export-Date: 2010-01-31 04:50+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 @@ -2867,7 +2867,7 @@ msgstr "Velden te gebruiken in uitvoer:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 msgid "E-book options" -msgstr "" +msgstr "E-Boek opties" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 @@ -7791,6 +7791,11 @@ msgid "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Bewaar de uitvoer van verschillende stadia van het conversie proces in de " +"opgegeven folder. Handig als je niet zeker weet wanneer fouten optreden " +"tijdens de conversie.\n" +"Standaard: '%default'None\n" +"Betrekking tot: ePub, MOBI uitvoer formaten" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index 06d7827c79..ede7ac2012 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: calibre 0.4.55\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-28 23:50+0000\n" -"Last-Translator: Serge Kopalkin \n" +"PO-Revision-Date: 2010-01-31 04:16+0000\n" +"Last-Translator: cyberbob \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-30 04:38+0000\n" +"X-Launchpad-Export-Date: 2010-01-31 04:51+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -482,19 +482,19 @@ msgstr "Соединяться с ESlick." #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 msgid "Communicate with Hanlin V3 eBook readers." -msgstr "" +msgstr "Соединяться с Hanlin V3" #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 msgid "Communicate with Hanlin V5 eBook readers." -msgstr "" +msgstr "Соединяться с Hanlin V5" #: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 msgid "Communicate with the BOOX eBook reader." -msgstr "" +msgstr "Соединяться с BOOX" #: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 msgid "Communicate with the Hanvon N520 eBook reader." -msgstr "" +msgstr "Communicate with the Hanvon N520" #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." @@ -603,7 +603,7 @@ msgstr "Отправляю метаданные на устройство..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." -msgstr "" +msgstr "Соединяться с Sony PRS-600/700/900" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." From e067ad567aaad3c1ee62338310fadaee7dd82612 Mon Sep 17 00:00:00 2001 From: GRiker Date: Sun, 31 Jan 2010 10:35:58 -0700 Subject: [PATCH 009/158] GwR fixes for lxml bug, category synonyms --- src/calibre/library/catalog.py | 167 ++++++++++++++++++++++----------- 1 file changed, 111 insertions(+), 56 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index be63ffedef..0defc419c8 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -4,7 +4,7 @@ from collections import namedtuple from datetime import date from xml.sax.saxutils import escape -from calibre import filesystem_encoding, prints, strftime +from calibre import filesystem_encoding, prints, prepare_string_for_xml, strftime from calibre.customize import CatalogPlugin from calibre.customize.conversion import OptionRecommendation, DummyReporter from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString @@ -524,6 +524,7 @@ class EPUB_MOBI(CatalogPlugin): self.opts.output_profile and \ self.opts.output_profile.startswith("kindle")) else False self.__genres = None + self.__genre_tags_dict = None self.__htmlFileList = [] self.__markerTags = self.getMarkerTags() self.__ncxSoup = None @@ -630,6 +631,13 @@ class EPUB_MOBI(CatalogPlugin): self.__genres = val return property(fget=fget, fset=fset) @dynamic_property + def genre_tags_dict(self): + def fget(self): + return self.__genre_tags_dict + def fset(self, val): + self.__genre_tags_dict = val + return property(fget=fget, fset=fset) + @dynamic_property def htmlFileList(self): def fget(self): return self.__htmlFileList @@ -856,7 +864,11 @@ class EPUB_MOBI(CatalogPlugin): this_title['date'] = strftime(u'%B %Y', record['pubdate'].timetuple()) this_title['timestamp'] = record['timestamp'] if record['comments']: - this_title['description'] = re.sub('&', '&', record['comments']) + #this_title['description'] = re.sub('&', '&', record['comments']) + if re.search('<(?P.+)>.+||<.+/>',record['comments']): + self.opts.log(chr(7) + " %d: %s (%s) contains suspect metadata" % \ + (this_title['id'], this_title['title'],this_title['author'])) + this_title['description'] = prepare_string_for_xml(record['comments']) this_title['short_description'] = self.generateShortDescription(this_title['description']) else: this_title['description'] = None @@ -1006,7 +1018,8 @@ class EPUB_MOBI(CatalogPlugin): for tag in title['tags']: aTag = Tag(soup,'a') - aTag['href'] = "Genre%s.html" % re.sub("\W","",self.convertHTMLEntities(tag)) + #print "aTag: %s" % "Genre_%s.html" % re.sub("\W","",tag.lower()) + aTag['href'] = "Genre_%s.html" % re.sub("\W","",tag.lower()) aTag.insert(0,escape(NavigableString(tag))) emTag = Tag(soup, "em") emTag.insert(0, aTag) @@ -1438,17 +1451,22 @@ class EPUB_MOBI(CatalogPlugin): self.updateProgressFullStep("'Genres'") - # Filter out REMOVE_TAGS, sort - filtered_tags = self.filterDbTags(self.db.all_tags()) + # filtered_tags = {friendly:normalized, } + self.genre_tags_dict = self.filterDbTags(self.db.all_tags()) # Extract books matching filtered_tags genre_list = [] - for tag in filtered_tags: + for friendly_tag in self.genre_tags_dict: + #print "\ngenerateHTMLByTags(): looking for books with friendly_tag '%s'" % friendly_tag + # tag_list => {'tag': '', 'books':[{}, {}, {}]} tag_list = {} - tag_list['tag'] = tag + tag_list['tag'] = self.genre_tags_dict[friendly_tag] tag_list['books'] = [] for book in self.booksByAuthor: - if 'tags' in book and tag in book['tags']: + # Scan each book for tag matching friendly_tag + #if 'tags' in book: print " evaluating %s with tags: %s" % (book['title'], book['tags']) + if 'tags' in book and friendly_tag in book['tags']: + #print " adding '%s'" % (book['title']) this_book = {} this_book['author'] = book['author'] this_book['title'] = book['title'] @@ -1458,8 +1476,36 @@ class EPUB_MOBI(CatalogPlugin): tag_list['books'].append(this_book) if len(tag_list['books']): - # Possible to have an empty tag list if the books were excluded - genre_list.append(tag_list) + genre_exists = False + book_not_in_genre = True + if not genre_list: + #print " genre_list empty, adding '%s'" % tag_list['tag'] + genre_list.append(tag_list) + else: + # Check for existing_genre + for genre in genre_list: + if genre['tag'] == tag_list['tag']: + genre_exists = True + # Check to see if the book is already in this list + for existing_book in genre['books']: + if this_book['title'] == existing_book['title']: + #print "%s already in %s" % (this_book['title'], genre) + book_not_in_genre = False + break + break + + if genre_exists: + if book_not_in_genre: + #print " adding %s to existing genre '%s'" % (this_book['title'],genre['tag']) + genre['books'].append(this_book) + else: + #print " appending genre '%s'" % tag_list['tag'] + genre_list.append(tag_list) + + if self.opts.verbose: + self.opts.log.info(" Genre summary: %d active genres" % len(genre_list)) + for genre in genre_list: + self.opts.log.info(" %s: %d titles" % (genre['tag'], len(genre['books']))) # Write the results # genre_list = [ [tag_list], [tag_list] ...] @@ -1492,12 +1538,11 @@ class EPUB_MOBI(CatalogPlugin): if not author in unique_authors: unique_authors.append(author) ''' - # Write the genre book list as an article titles_spanned = self.generateHTMLByGenre(genre['tag'], True if index==0 else False, genre['books'], - "%s/Genre%s.html" % (self.contentDir, re.sub("\W","", self.convertHTMLEntities(genre['tag'])))) + "%s/Genre_%s.html" % (self.contentDir, genre['tag'])) - tag_file = "content/Genre%s.html" % (re.sub("\W","", self.convertHTMLEntities(genre['tag']))) + tag_file = "content/Genre_%s.html" % genre['tag'] master_genre_list.append({'tag':genre['tag'], 'file':tag_file, 'authors':unique_authors, @@ -2110,9 +2155,6 @@ class EPUB_MOBI(CatalogPlugin): self.updateProgressFullStep("NCX 'Genres'") - - - if not len(self.genres): self.opts.log.warn(" No genres found in tags.\n" " No Genre section added to Catalog") @@ -2139,13 +2181,12 @@ class EPUB_MOBI(CatalogPlugin): navPointTag.insert(nptc, navLabelTag) nptc += 1 contentTag = Tag(ncx_soup,"content") - contentTag['src'] = "content/Genre%s.html#section_start" % (re.sub("\W","", self.convertHTMLEntities(self.genres[0]['tag']))) + contentTag['src'] = "content/Genre_%s.html#section_start" % self.genres[0]['tag'] navPointTag.insert(nptc, contentTag) nptc += 1 for genre in self.genres: # Add an article for each genre - navPointVolumeTag = Tag(ncx_soup, 'navPoint') navPointVolumeTag['class'] = "article" navPointVolumeTag['id'] = "genre-%s-ID" % genre['tag'] @@ -2153,13 +2194,18 @@ class EPUB_MOBI(CatalogPlugin): self.playOrder += 1 navLabelTag = Tag(ncx_soup, "navLabel") textTag = Tag(ncx_soup, "text") - textTag.insert(0, self.formatNCXText(NavigableString(genre['tag']))) + + # GwR *** Can this be optimized? + normalized_tag = None + for genre_tag in self.genre_tags_dict: + if self.genre_tags_dict[genre_tag] == genre['tag']: + normalized_tag = self.genre_tags_dict[genre_tag] + break + textTag.insert(0, self.formatNCXText(NavigableString(genre_tag))) navLabelTag.insert(0,textTag) navPointVolumeTag.insert(0,navLabelTag) - contentTag = Tag(ncx_soup, "content") - genre_name = re.sub("\W","", self.convertHTMLEntities(genre['tag'])) - contentTag['src'] = "content/Genre%s.html#Genre%s" % (genre_name, genre_name) + contentTag['src'] = "content/Genre_%s.html#Genre_%s" % (normalized_tag, normalized_tag) navPointVolumeTag.insert(1, contentTag) if self.generateForKindle: @@ -2271,16 +2317,10 @@ class EPUB_MOBI(CatalogPlugin): def filterDbTags(self, tags): # Remove the special marker tags from the database's tag list, - # return sorted list of tags representing valid genres + # return sorted list of normalized genre tags - def next_tag(tags): - for (i, tag) in enumerate(tags): - if i < len(tags) - 1: - yield tag + ", " - else: - yield tag - - filtered_tags = [] + normalized_tags = [] + friendly_tags = [] for tag in tags: if tag[0] in self.markerTags: continue @@ -2289,32 +2329,39 @@ class EPUB_MOBI(CatalogPlugin): if tag == ' ': continue - filtered_tags.append(tag) + normalized_tags.append(re.sub('\W','',tag).lower()) + friendly_tags.append(tag) - filtered_tags.sort() - # Enable this code to force certain tags to the front of the genre list - if False: - for (i, tag) in enumerate(filtered_tags): - if tag == 'Fiction': - filtered_tags.insert(0, (filtered_tags.pop(i))) - elif tag == 'Nonfiction': - filtered_tags.insert(1, (filtered_tags.pop(i))) - else: - continue + genre_tags_dict = dict(zip(friendly_tags,normalized_tags)) + + # Test for multiple genres resolving to same normalized form + normalized_set = set(normalized_tags) + for normalized in normalized_set: + if normalized_tags.count(normalized) > 1: + self.opts.log.warn(" Warning: multiple tags resolving to genre '%s':" % normalized) + for key in genre_tags_dict: + if genre_tags_dict[key] == normalized: + self.opts.log.warn(" %s" % key) if self.verbose: - self.opts.log.info(u' %d Genre tags in database (exclude_genre: %s):' % \ - (len(filtered_tags), self.opts.exclude_genre)) - out_buf = '' + def next_tag(tags): + for (i, tag) in enumerate(tags): + if i < len(tags) - 1: + yield tag + ", " + else: + yield tag - for tag in next_tag(filtered_tags): - out_buf += tag - if len(out_buf) > 72: - self.opts.log(u' %s' % out_buf.rstrip()) - out_buf = '' - self.opts.log(u' %s' % out_buf) + self.opts.log.info(u' %d total genre tags in database (exclude_genre: %s):' % \ + (len(genre_tags_dict), self.opts.exclude_genre)) - return filtered_tags + # Display friendly/normalized genres + # friendly => normalized + sorted_tags = ['%s => %s' % (key, genre_tags_dict[key]) for key in sorted(genre_tags_dict.keys())] + + for tag in next_tag(sorted_tags): + self.opts.log(u' %s' % tag) + + return genre_tags_dict def formatNCXText(self, description): # Kindle TOC descriptions won't render certain characters @@ -2346,15 +2393,23 @@ class EPUB_MOBI(CatalogPlugin): body.insert(btc, aTag) btc += 1 - # Insert the anchor with spaces stripped + # Create an anchor from the tag aTag = Tag(soup, 'a') - aTag['name'] = "Genre%s" % re.sub("\W","", genre) + #aTag['name'] = "Genre%s" % re.sub("\W","", genre) + aTag['name'] = "Genre_%s" % genre body.insert(btc,aTag) btc += 1 - # Insert the genre title + # Insert the genre title using the friendly name + # GwR *** optimize + for genre_tag in self.genre_tags_dict: + if self.genre_tags_dict[genre_tag] == genre: + friendly_tag = genre_tag + break + + titleTag = body.find(attrs={'class':'title'}) - titleTag.insert(0,NavigableString('%s' % escape(genre))) + titleTag.insert(0,NavigableString('%s' % escape(friendly_tag))) # Insert the books by author list divTag = body.find(attrs={'class':'authors'}) From 4d1cfec9506bfd9d28d6cb8503eb0583b332613c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Jan 2010 13:15:52 -0700 Subject: [PATCH 010/158] More catalog tweaks --- src/calibre/library/catalog.py | 186 ++++++++++++++++++++++----------- 1 file changed, 123 insertions(+), 63 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 67e360da68..b80ddabe6a 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -4,7 +4,7 @@ from collections import namedtuple from datetime import date from xml.sax.saxutils import escape -from calibre import filesystem_encoding, prints, strftime +from calibre import filesystem_encoding, prints, prepare_string_for_xml, strftime from calibre.customize import CatalogPlugin from calibre.customize.conversion import OptionRecommendation, DummyReporter from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString @@ -524,6 +524,7 @@ class EPUB_MOBI(CatalogPlugin): self.opts.output_profile and \ self.opts.output_profile.startswith("kindle")) else False self.__genres = None + self.__genre_tags_dict = None self.__htmlFileList = [] self.__markerTags = self.getMarkerTags() self.__ncxSoup = None @@ -630,6 +631,13 @@ class EPUB_MOBI(CatalogPlugin): self.__genres = val return property(fget=fget, fset=fset) @dynamic_property + def genre_tags_dict(self): + def fget(self): + return self.__genre_tags_dict + def fset(self, val): + self.__genre_tags_dict = val + return property(fget=fget, fset=fset) + @dynamic_property def htmlFileList(self): def fget(self): return self.__htmlFileList @@ -797,10 +805,13 @@ class EPUB_MOBI(CatalogPlugin): os.path.join(self.catalogPath, file[0])) # Create the custom masthead image overwriting default - try: - self.generate_masthead_image(os.path.join(self.catalogPath, 'images/mastheadImage.gif')) - except: - pass + # If failure, default mastheadImage.gif should still be in place + if self.generateForKindle: + try: + self.generate_masthead_image(os.path.join(self.catalogPath, + 'images/mastheadImage.gif')) + except: + pass def fetchBooksByTitle(self): self.updateProgressFullStep("Fetching database") @@ -853,7 +864,11 @@ class EPUB_MOBI(CatalogPlugin): this_title['date'] = strftime(u'%B %Y', record['pubdate'].timetuple()) this_title['timestamp'] = record['timestamp'] if record['comments']: - this_title['description'] = re.sub('&', '&', record['comments']) + #this_title['description'] = re.sub('&', '&', record['comments']) + if re.search('<(?P.+)>.+||<.+/>',record['comments']): + self.opts.log(" %d: %s (%s) contains suspect metadata" % \ + (this_title['id'], this_title['title'],this_title['author'])) + this_title['description'] = prepare_string_for_xml(record['comments']) this_title['short_description'] = self.generateShortDescription(this_title['description']) else: this_title['description'] = None @@ -1003,7 +1018,8 @@ class EPUB_MOBI(CatalogPlugin): for tag in title['tags']: aTag = Tag(soup,'a') - aTag['href'] = "Genre%s.html" % re.sub("\W","",self.convertHTMLEntities(tag)) + #print "aTag: %s" % "Genre_%s.html" % re.sub("\W","",tag.lower()) + aTag['href'] = "Genre_%s.html" % re.sub("\W","",tag.lower()) aTag.insert(0,escape(NavigableString(tag))) emTag = Tag(soup, "em") emTag.insert(0, aTag) @@ -1435,17 +1451,22 @@ class EPUB_MOBI(CatalogPlugin): self.updateProgressFullStep("'Genres'") - # Filter out REMOVE_TAGS, sort - filtered_tags = self.filterDbTags(self.db.all_tags()) + # filtered_tags = {friendly:normalized, } + self.genre_tags_dict = self.filterDbTags(self.db.all_tags()) # Extract books matching filtered_tags genre_list = [] - for tag in filtered_tags: + for friendly_tag in self.genre_tags_dict: + #print "\ngenerateHTMLByTags(): looking for books with friendly_tag '%s'" % friendly_tag + # tag_list => {'tag': '', 'books':[{}, {}, {}]} tag_list = {} - tag_list['tag'] = tag + tag_list['tag'] = self.genre_tags_dict[friendly_tag] tag_list['books'] = [] for book in self.booksByAuthor: - if 'tags' in book and tag in book['tags']: + # Scan each book for tag matching friendly_tag + #if 'tags' in book: print " evaluating %s with tags: %s" % (book['title'], book['tags']) + if 'tags' in book and friendly_tag in book['tags']: + #print " adding '%s'" % (book['title']) this_book = {} this_book['author'] = book['author'] this_book['title'] = book['title'] @@ -1455,8 +1476,36 @@ class EPUB_MOBI(CatalogPlugin): tag_list['books'].append(this_book) if len(tag_list['books']): - # Possible to have an empty tag list if the books were excluded - genre_list.append(tag_list) + genre_exists = False + book_not_in_genre = True + if not genre_list: + #print " genre_list empty, adding '%s'" % tag_list['tag'] + genre_list.append(tag_list) + else: + # Check for existing_genre + for genre in genre_list: + if genre['tag'] == tag_list['tag']: + genre_exists = True + # Check to see if the book is already in this list + for existing_book in genre['books']: + if this_book['title'] == existing_book['title']: + #print "%s already in %s" % (this_book['title'], genre) + book_not_in_genre = False + break + break + + if genre_exists: + if book_not_in_genre: + #print " adding %s to existing genre '%s'" % (this_book['title'],genre['tag']) + genre['books'].append(this_book) + else: + #print " appending genre '%s'" % tag_list['tag'] + genre_list.append(tag_list) + + if self.opts.verbose: + self.opts.log.info(" Genre summary: %d active genres" % len(genre_list)) + for genre in genre_list: + self.opts.log.info(" %s: %d titles" % (genre['tag'], len(genre['books']))) # Write the results # genre_list = [ [tag_list], [tag_list] ...] @@ -1489,12 +1538,11 @@ class EPUB_MOBI(CatalogPlugin): if not author in unique_authors: unique_authors.append(author) ''' - # Write the genre book list as an article titles_spanned = self.generateHTMLByGenre(genre['tag'], True if index==0 else False, genre['books'], - "%s/Genre%s.html" % (self.contentDir, re.sub("\W","", self.convertHTMLEntities(genre['tag'])))) + "%s/Genre_%s.html" % (self.contentDir, genre['tag'])) - tag_file = "content/Genre%s.html" % (re.sub("\W","", self.convertHTMLEntities(genre['tag']))) + tag_file = "content/Genre_%s.html" % genre['tag'] master_genre_list.append({'tag':genre['tag'], 'file':tag_file, 'authors':unique_authors, @@ -1586,7 +1634,7 @@ class EPUB_MOBI(CatalogPlugin): def generateOPF(self): - self.updateProgressFullStep("Saving OPF") + self.updateProgressFullStep("Generating OPF") header = ''' @@ -2107,9 +2155,6 @@ class EPUB_MOBI(CatalogPlugin): self.updateProgressFullStep("NCX 'Genres'") - - - if not len(self.genres): self.opts.log.warn(" No genres found in tags.\n" " No Genre section added to Catalog") @@ -2136,13 +2181,12 @@ class EPUB_MOBI(CatalogPlugin): navPointTag.insert(nptc, navLabelTag) nptc += 1 contentTag = Tag(ncx_soup,"content") - contentTag['src'] = "content/Genre%s.html#section_start" % (re.sub("\W","", self.convertHTMLEntities(self.genres[0]['tag']))) + contentTag['src'] = "content/Genre_%s.html#section_start" % self.genres[0]['tag'] navPointTag.insert(nptc, contentTag) nptc += 1 for genre in self.genres: # Add an article for each genre - navPointVolumeTag = Tag(ncx_soup, 'navPoint') navPointVolumeTag['class'] = "article" navPointVolumeTag['id'] = "genre-%s-ID" % genre['tag'] @@ -2150,13 +2194,18 @@ class EPUB_MOBI(CatalogPlugin): self.playOrder += 1 navLabelTag = Tag(ncx_soup, "navLabel") textTag = Tag(ncx_soup, "text") - textTag.insert(0, self.formatNCXText(NavigableString(genre['tag']))) + + # GwR *** Can this be optimized? + normalized_tag = None + for genre_tag in self.genre_tags_dict: + if self.genre_tags_dict[genre_tag] == genre['tag']: + normalized_tag = self.genre_tags_dict[genre_tag] + break + textTag.insert(0, self.formatNCXText(NavigableString(genre_tag))) navLabelTag.insert(0,textTag) navPointVolumeTag.insert(0,navLabelTag) - contentTag = Tag(ncx_soup, "content") - genre_name = re.sub("\W","", self.convertHTMLEntities(genre['tag'])) - contentTag['src'] = "content/Genre%s.html#Genre%s" % (genre_name, genre_name) + contentTag['src'] = "content/Genre_%s.html#Genre_%s" % (normalized_tag, normalized_tag) navPointVolumeTag.insert(1, contentTag) if self.generateForKindle: @@ -2268,16 +2317,10 @@ class EPUB_MOBI(CatalogPlugin): def filterDbTags(self, tags): # Remove the special marker tags from the database's tag list, - # return sorted list of tags representing valid genres + # return sorted list of normalized genre tags - def next_tag(tags): - for (i, tag) in enumerate(tags): - if i < len(tags) - 1: - yield tag + ", " - else: - yield tag - - filtered_tags = [] + normalized_tags = [] + friendly_tags = [] for tag in tags: if tag[0] in self.markerTags: continue @@ -2286,32 +2329,39 @@ class EPUB_MOBI(CatalogPlugin): if tag == ' ': continue - filtered_tags.append(tag) + normalized_tags.append(re.sub('\W','',tag).lower()) + friendly_tags.append(tag) - filtered_tags.sort() - # Enable this code to force certain tags to the front of the genre list - if False: - for (i, tag) in enumerate(filtered_tags): - if tag == 'Fiction': - filtered_tags.insert(0, (filtered_tags.pop(i))) - elif tag == 'Nonfiction': - filtered_tags.insert(1, (filtered_tags.pop(i))) - else: - continue + genre_tags_dict = dict(zip(friendly_tags,normalized_tags)) + + # Test for multiple genres resolving to same normalized form + normalized_set = set(normalized_tags) + for normalized in normalized_set: + if normalized_tags.count(normalized) > 1: + self.opts.log.warn(" Warning: multiple tags resolving to genre '%s':" % normalized) + for key in genre_tags_dict: + if genre_tags_dict[key] == normalized: + self.opts.log.warn(" %s" % key) if self.verbose: - self.opts.log.info(u' %d Genre tags in database (exclude_genre: %s):' % \ - (len(filtered_tags), self.opts.exclude_genre)) - out_buf = '' + def next_tag(tags): + for (i, tag) in enumerate(tags): + if i < len(tags) - 1: + yield tag + ", " + else: + yield tag - for tag in next_tag(filtered_tags): - out_buf += tag - if len(out_buf) > 72: - self.opts.log(u' %s' % out_buf.rstrip()) - out_buf = '' - self.opts.log(u' %s' % out_buf) + self.opts.log.info(u' %d total genre tags in database (exclude_genre: %s):' % \ + (len(genre_tags_dict), self.opts.exclude_genre)) - return filtered_tags + # Display friendly/normalized genres + # friendly => normalized + sorted_tags = ['%s => %s' % (key, genre_tags_dict[key]) for key in sorted(genre_tags_dict.keys())] + + for tag in next_tag(sorted_tags): + self.opts.log(u' %s' % tag) + + return genre_tags_dict def formatNCXText(self, description): # Kindle TOC descriptions won't render certain characters @@ -2343,15 +2393,23 @@ class EPUB_MOBI(CatalogPlugin): body.insert(btc, aTag) btc += 1 - # Insert the anchor with spaces stripped + # Create an anchor from the tag aTag = Tag(soup, 'a') - aTag['name'] = "Genre%s" % re.sub("\W","", genre) + #aTag['name'] = "Genre%s" % re.sub("\W","", genre) + aTag['name'] = "Genre_%s" % genre body.insert(btc,aTag) btc += 1 - # Insert the genre title + # Insert the genre title using the friendly name + # GwR *** optimize + for genre_tag in self.genre_tags_dict: + if self.genre_tags_dict[genre_tag] == genre: + friendly_tag = genre_tag + break + + titleTag = body.find(attrs={'class':'title'}) - titleTag.insert(0,NavigableString('%s' % escape(genre))) + titleTag.insert(0,NavigableString('%s' % escape(friendly_tag))) # Insert the books by author list divTag = body.find(attrs={'class':'authors'}) @@ -2512,6 +2570,8 @@ class EPUB_MOBI(CatalogPlugin): return soup def generate_masthead_image(self, out_path): + font_path = P('fonts/liberation/LiberationSerif-Bold.ttf') + MI_WIDTH = 600 MI_HEIGHT = 60 @@ -2523,7 +2583,7 @@ class EPUB_MOBI(CatalogPlugin): img = Image.new('RGB', (MI_WIDTH, MI_HEIGHT), 'white') draw = ImageDraw.Draw(img) - font = ImageFont.truetype(P('fonts/liberation/LiberationSerif-Bold.ttf'), 48) + font = ImageFont.truetype(font_path, 48) text = self.title.encode('utf-8') width, height = draw.textsize(text, font=font) left = max(int((MI_WIDTH - width)/2.), 0) @@ -2671,7 +2731,7 @@ class EPUB_MOBI(CatalogPlugin): opts.descriptionClip = 380 if op.endswith('dx') or 'kindle' not in op else 90 opts.basename = "Catalog" opts.plugin_path = self.plugin_path - opts.cli_environment = getattr(opts,'sync',True) + opts.cli_environment = not hasattr(opts,'sync') if opts.verbose: opts_dict = vars(opts) From 50a8fe4a503f39833b125c05026a3153ec577663 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Jan 2010 13:39:10 -0700 Subject: [PATCH 011/158] New recipes for Kamera Bild, The Luminous Landscape and The Online photographer by Darko Miletic --- resources/images/news/kamerabild.png | Bin 0 -> 838 bytes .../images/news/theluminouslandscape.png | Bin 0 -> 769 bytes resources/recipes/kamerabild.recipe | 46 ++++++++++++++++++ resources/recipes/theluminouslandscape.recipe | 37 ++++++++++++++ .../recipes/theonlinephotographer.recipe | 41 ++++++++++++++++ 5 files changed, 124 insertions(+) create mode 100644 resources/images/news/kamerabild.png create mode 100644 resources/images/news/theluminouslandscape.png create mode 100644 resources/recipes/kamerabild.recipe create mode 100644 resources/recipes/theluminouslandscape.recipe create mode 100644 resources/recipes/theonlinephotographer.recipe diff --git a/resources/images/news/kamerabild.png b/resources/images/news/kamerabild.png new file mode 100644 index 0000000000000000000000000000000000000000..401d5a33a32c3af0dc0e05101ba08a1245cbf040 GIT binary patch literal 838 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*U87?|=sT^vI!PA|Rend28Ia^U0to%w&-RxK3G z+@hM5aYoTYWmzlh#E1MpDt8MQ($SQGl&c&FG69eW> zn|w^bpCj*Qe1}+r){54fyOZr&r(K(Q>WgCk`R_G7|I3dsq)ap@Pd~N&tRTPMPoDdq zURvH!cza4gFkpl4LARr4g@3Z{VA#p^FvdIFT<6$Q?LfP$Q_Fcz7sYH@vgJ#ZjP?)F z)Fhr`*?cFSaNGD-*4|7HvwpMVt8Bf0^XFPdWBclkV%g)`TTWdXb`!tAk+v_-AhoSl@P*f(wyofdT8g86!^ z-1}LFx;M*3uQz*fN8V6Sa@Tfso|>&&zE6*gG-Fw)wEzFXrhOgU-&=p)ud!lUShmC| zCV#`r43`_LY^vu6?-$#!>xn>MiEFN*8{2|iCoWx9tB?>{yoL2p`{dBLx!)qo)_7XI z*>K=j$}*2_odR1NcBpAKJgl3p+a6?Pc5KPS2}d`St|+{`M~qHat9Lad)rfd;cjXUbU?- zfA}u<@S^soOgo0GpC?e_~O&x)EcP37j9 z>YH2nH)YFedp5X8J%Hoc89%j5)AD6o9Wq971ah0`bUc2@>)m`tUT=?Gb960dhlTdzoy2a&^q{XQdgjmcx zw|vn#r+;r+)ApZ6cIKX1bD!P#r^di^;K?z=8s(m?6Iy#U{xe9-l1VIgwd4(*+IsKI zbj5W%a;na{g3k+#8dwj#ZFnxcSZ2MQi_J84l}nzts@V$eIi4yHeQ=Ud(a%mvV@HbR z+(o}X#{P=q3y9v^?)^P~!-g+Y)03N*O#A&ZXLk?Frvt@`MS>56SxPG%IyAm2m(0yR z-l{a&J2>*viHSRw8rHbPmKuu*Fka(Nc*JxbOYJBsS#X@&4&92hiy&_=JniSz$ zul;$KetpXI4BAktHJ7DKaCS{c^ot`Y&pDr2pAb#mpj|xSjcQmKSMarOpTB?R<6@9G zb}lh^?}X1EKTbToFhNwmBtdD$Cb4VXvpboNS*j@UOW3zphNH>O(ylaOkO zYeY#(Vo9o1a#1RfVlXl=G|)9L)HOB?F*LR^HnTD|)-^D>9Gt&LvDUbW?ChR e1`{hoQ!7I=h=% Date: Sun, 31 Jan 2010 14:25:54 -0700 Subject: [PATCH 012/158] NY Times Sunday Book review by Krittika Goyal --- Changelog.yaml | 95 ++++++++++++++++++++ resources/recipes/nytimesbook.recipe | 56 ++++++++++++ src/calibre/ebooks/oeb/transforms/rescale.py | 5 +- 3 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 resources/recipes/nytimesbook.recipe diff --git a/Changelog.yaml b/Changelog.yaml index c2124aadd9..7c5644fd63 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -4,6 +4,101 @@ # for important features/bug fixes. # Also, each release can have new and improved recipes. +- version: 0.6.37 + date: 2010-01-31 + + new features: + - title: "E-book viewer: Add support for viewing SVG images" + type: major + + - title: "Add category of Recently added books when generating catalog in e-book format" + + - title: "OS X: Allow adding of books to calibre via drag and drop on the calibre dock icon" + + - title: "Add support for masthead images when downloading news for the Kindle" + + - title: "MOBI metadata: Allow setting of metadata in old PRC files without EXTH headers as well" + + bug fixes: + - title: Changing the date in Dutch + tickets: [4732] + + - title: "Fix regression that broke sending files to unupdated PRS 500s" + + - title: "MOBI Input: Ignore width and height percentage measures for tags." + tickets: [4726] + + - title: "EPUB Output: Remove tags that point to the internet for their images as this causes the ever delicate ADE to crash." + tickets: [4692] + + - title: "Comic Input: Handle UTF-8 BOM when converting a cbc file" + tickets: [4683] + + - title: "Allow rating to be cleared via the Bulk metadata edit dialog" + tickets: [4693] + + - title: "Add workaround for broken linux systems with multiply encoded file names" + tickets: [4721] + + - title: Fix bug preventing the the use of indices when setting save to disk templates + tickets: [4710] + + - title: "Linux device mounting. Use filetype of auto to allow non vfat filesystems to be mounted" + tickets: [4707] + + - title: "Catalog generation: Make sorting of numbers in title as text optional" + + - title: "Fix error while sending book with non-ascii character in title/author to device on linux" + tickets: [4690] + + new recipes: + - title: Kamera Bild + author: Darko Miletic + + - title: The Online Photographer + author: Darko Miletic + + - title: The Luminous Landscape + author: Darko Miletic + + - title: Slovo + author: Abelturd + + - title: Various Danish newspapers + author: Darko Miletic + + - title: Heraldo de Aragon + author: Lorenzo Vigentini + + - title: Orange County Register + author: Lorenzi Vigentini + + - title: Open Left + author: Xanthan Gum + + - title: Michelle Malkin + author: Walt Anthony + + - title: The Metro Montreal + author: Jerry Clapperton + + - title: The Gazette + author: Jerry Clapperton + + - title: Macleans Magazine + author: Nick Redding + + - title: NY Time Sunday Book Review + author: Krittika Goyal + + + improved recipes: + - The Irish Times + - Washington Post + - NIN + - The Discover Magazine + - Pagina 12 + - version: 0.6.36 date: 2010-01-25 diff --git a/resources/recipes/nytimesbook.recipe b/resources/recipes/nytimesbook.recipe new file mode 100644 index 0000000000..686f30b69a --- /dev/null +++ b/resources/recipes/nytimesbook.recipe @@ -0,0 +1,56 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ebooks.BeautifulSoup import BeautifulSoup + +class NewYorkTimesBookReview(BasicNewsRecipe): + title = u'New York Times Book Review' + language = 'en' + __author__ = 'Krittika Goyal' + oldest_article = 8 #days + max_articles_per_feed = 1000 + recursions = 2 + #encoding = 'latin1' + + remove_stylesheets = True + #remove_tags_before = dict(name='h1', attrs={'class':'heading'}) + remove_tags_after = dict(name='div', attrs={'id':'authorId'}) + remove_tags = [ + dict(name='iframe'), + dict(name=['div', 'a'], attrs={'class':['enlargeThis', 'jumpLink']}), + dict(name='div', attrs={'id':['sidebarArticles', 'toolsRight']}), + #dict(name='ul', attrs={'class':'article-tools'}), + #dict(name='ul', attrs={'class':'articleTools'}), + ] + match_regexps = [ + r'http://www.nytimes.com/.+pagewanted=[2-9]+' + ] + + feeds = [ +('New York Times Sunday Book Review', + 'http://feeds.nytimes.com/nyt/rss/SundayBookReview'), +] + + + def preprocess_html(self, soup): + story = soup.find(name='div', attrs={'id':'article'}) + #td = heading.findParent(name='td') + #td.extract() + soup = BeautifulSoup('t') + body = soup.find(name='body') + body.insert(0, story) + #for x in soup.findAll(name='p', text=lambda x:x and '-->' in x): + #p = x.findParent('p') + #if p is not None: + #p.extract() + return soup + + def postprocess_html(self, soup, first): + for div in soup.findAll(id='pageLinks'): + div.extract() + if not first: + h1 = soup.find('h1') + if h1 is not None: + h1.extract() + t = soup.find(attrs={'class':'timestamp'}) + if t is not None: + t.extract() + return soup diff --git a/src/calibre/ebooks/oeb/transforms/rescale.py b/src/calibre/ebooks/oeb/transforms/rescale.py index 7ce3b5a588..fbf0e9bc4f 100644 --- a/src/calibre/ebooks/oeb/transforms/rescale.py +++ b/src/calibre/ebooks/oeb/transforms/rescale.py @@ -35,7 +35,10 @@ class RescaleImages(object): if not raw: continue if qt: img = QImage(10, 10, QImage.Format_ARGB32_Premultiplied) - if not img.loadFromData(raw): continue + try: + if not img.loadFromData(raw): continue + except: + continue width, height = img.width(), img.height() else: f = cStringIO.StringIO(raw) From 2c6c222adf676a00d441b24988f1bd929d39a572 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Jan 2010 14:59:23 -0700 Subject: [PATCH 013/158] Fix #4731 ("Reset cover to default" does not work properly) --- Changelog.yaml | 3 +++ src/calibre/gui2/dialogs/metadata_single.py | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Changelog.yaml b/Changelog.yaml index 7c5644fd63..6ca5b37926 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -51,6 +51,9 @@ - title: "Fix error while sending book with non-ascii character in title/author to device on linux" tickets: [4690] + - title: "Fix reset cover in edit meta information dialog does not actually remove cover" + tickets: [4731] + new recipes: - title: Kamera Bild author: Darko Miletic diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index 846851fd21..f385b76c4c 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -653,8 +653,11 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): d = d + self.local_timezone_offset self.db.set_timestamp(self.id, d) - if self.cover_changed and self.cover_data is not None: - self.db.set_cover(self.id, self.cover_data) + if self.cover_changed: + if self.cover_data is not None: + self.db.set_cover(self.id, self.cover_data) + else: + self.db.remove_cover(self.id) except IOError, err: if err.errno == 13: # Permission denied fname = err.filename if err.filename else 'file' From 0027f82e1d918eeaa7f5332fd7b7d9b45322c06d Mon Sep 17 00:00:00 2001 From: GRiker Date: Sun, 31 Jan 2010 15:54:24 -0700 Subject: [PATCH 014/158] Reworked tag/genre parsing code --- src/calibre/library/catalog.py | 210 +++++++++++++++++---------------- 1 file changed, 109 insertions(+), 101 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 0defc419c8..44ab82ac19 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -765,6 +765,8 @@ class EPUB_MOBI(CatalogPlugin): # Methods def buildSources(self): self.fetchBooksByTitle() + if not self.booksByTitle: + return False self.fetchBooksByAuthor() self.generateHTMLDescriptions() self.generateHTMLByAuthor() @@ -784,6 +786,7 @@ class EPUB_MOBI(CatalogPlugin): self.generateNCXByDateAdded("Recently Added") self.generateNCXByGenre("Genres") self.writeNCX() + return True def cleanUp(self): pass @@ -1448,107 +1451,109 @@ class EPUB_MOBI(CatalogPlugin): def generateHTMLByTags(self): # Generate individual HTML files for each tag, e.g. Fiction, Nonfiction ... # Note that special tags - ~+*[] - have already been filtered from books[] + # There may be synonomous tags self.updateProgressFullStep("'Genres'") - # filtered_tags = {friendly:normalized, } self.genre_tags_dict = self.filterDbTags(self.db.all_tags()) # Extract books matching filtered_tags genre_list = [] - for friendly_tag in self.genre_tags_dict: + for friendly_tag in sorted(self.genre_tags_dict): #print "\ngenerateHTMLByTags(): looking for books with friendly_tag '%s'" % friendly_tag # tag_list => {'tag': '', 'books':[{}, {}, {}]} + # tag_list => { normalized_genre_tag : [{book},{},{}], + # normalized_genre_tag : [{book},{},{}] } + tag_list = {} - tag_list['tag'] = self.genre_tags_dict[friendly_tag] - tag_list['books'] = [] for book in self.booksByAuthor: # Scan each book for tag matching friendly_tag - #if 'tags' in book: print " evaluating %s with tags: %s" % (book['title'], book['tags']) if 'tags' in book and friendly_tag in book['tags']: - #print " adding '%s'" % (book['title']) this_book = {} this_book['author'] = book['author'] this_book['title'] = book['title'] this_book['author_sort'] = book['author_sort'] this_book['read'] = book['read'] this_book['id'] = book['id'] - tag_list['books'].append(this_book) - - if len(tag_list['books']): - genre_exists = False - book_not_in_genre = True - if not genre_list: - #print " genre_list empty, adding '%s'" % tag_list['tag'] - genre_list.append(tag_list) - else: - # Check for existing_genre - for genre in genre_list: - if genre['tag'] == tag_list['tag']: - genre_exists = True - # Check to see if the book is already in this list - for existing_book in genre['books']: - if this_book['title'] == existing_book['title']: - #print "%s already in %s" % (this_book['title'], genre) - book_not_in_genre = False - break - break - - if genre_exists: - if book_not_in_genre: - #print " adding %s to existing genre '%s'" % (this_book['title'],genre['tag']) - genre['books'].append(this_book) + normalized_tag = self.genre_tags_dict[friendly_tag] + genre_tag_list = [key for genre in genre_list for key in genre] + if normalized_tag in genre_tag_list: + for existing_genre in genre_list: + for key in existing_genre: + new_book = None + if key == normalized_tag: + for book in existing_genre[key]: + if book['title'] == this_book['title']: + new_book = False + break + else: + new_book = True + if new_book: + existing_genre[key].append(this_book) else: - #print " appending genre '%s'" % tag_list['tag'] + tag_list[normalized_tag] = [this_book] genre_list.append(tag_list) if self.opts.verbose: - self.opts.log.info(" Genre summary: %d active genres" % len(genre_list)) + self.opts.log.info(" Genre summary: %d active genre tags used in generating catalog with %d titles" % + (len(genre_list), len(self.booksByTitle))) + for genre in genre_list: - self.opts.log.info(" %s: %d titles" % (genre['tag'], len(genre['books']))) + for key in genre: + self.opts.log.info(" %s: %d titles" % (key, len(genre[key]))) # Write the results - # genre_list = [ [tag_list], [tag_list] ...] + # genre_list = [ {friendly_tag:[{book},{book}]}, {friendly_tag:[{book},{book}]}, ...] master_genre_list = [] - for (index, genre) in enumerate(genre_list): - # Create sorted_authors[0] = friendly, [1] = author_sort for NCX creation - authors = [] - for book in genre['books']: - authors.append((book['author'],book['author_sort'])) + for genre_tag_set in genre_list: + for (index, genre) in enumerate(genre_tag_set): + #print "genre: %s \t genre_tag_set[genre]: %s" % (genre, genre_tag_set[genre]) - # authors[] contains a list of all book authors, with multiple entries for multiple books by author - # Create unique_authors with a count of books per author as the third tuple element - books_by_current_author = 1 - current_author = authors[0] - unique_authors = [] - for (i,author) in enumerate(authors): - if author != current_author and i: - unique_authors.append((current_author[0], current_author[1], books_by_current_author)) - current_author = author - books_by_current_author = 1 - elif i==0 and len(authors) == 1: - # Allow for single-book lists - unique_authors.append((current_author[0], current_author[1], books_by_current_author)) - else: - books_by_current_author += 1 - ''' - # Extract the unique entries - unique_authors = [] - for author in authors: - if not author in unique_authors: - unique_authors.append(author) - ''' - # Write the genre book list as an article - titles_spanned = self.generateHTMLByGenre(genre['tag'], True if index==0 else False, genre['books'], - "%s/Genre_%s.html" % (self.contentDir, genre['tag'])) + # Create sorted_authors[0] = friendly, [1] = author_sort for NCX creation + authors = [] + for book in genre_tag_set[genre]: + authors.append((book['author'],book['author_sort'])) - tag_file = "content/Genre_%s.html" % genre['tag'] - master_genre_list.append({'tag':genre['tag'], - 'file':tag_file, - 'authors':unique_authors, - 'books':genre['books'], - 'titles_spanned':titles_spanned}) + # authors[] contains a list of all book authors, with multiple entries for multiple books by author + # Create unique_authors with a count of books per author as the third tuple element + books_by_current_author = 1 + current_author = authors[0] + unique_authors = [] + for (i,author) in enumerate(authors): + if author != current_author and i: + unique_authors.append((current_author[0], current_author[1], books_by_current_author)) + current_author = author + books_by_current_author = 1 + elif i==0 and len(authors) == 1: + # Allow for single-book lists + unique_authors.append((current_author[0], current_author[1], books_by_current_author)) + else: + books_by_current_author += 1 + ''' + # Extract the unique entries + unique_authors = [] + for author in authors: + if not author in unique_authors: + unique_authors.append(author) + ''' + # Write the genre book list as an article + titles_spanned = self.generateHTMLByGenre(genre, True if index==0 else False, + genre_tag_set[genre], + "%s/Genre_%s.html" % (self.contentDir, + genre)) + tag_file = "content/Genre_%s.html" % genre + master_genre_list.append({'tag':genre, + 'file':tag_file, + 'authors':unique_authors, + 'books':genre_tag_set[genre], + 'titles_spanned':titles_spanned}) + + if False and self.opts.verbose: + for genre in master_genre_list: + print "genre['tag']: %s" % genre['tag'] + for book in genre['books']: + print book['title'] self.genres = master_genre_list def generateThumbnails(self): @@ -2351,7 +2356,7 @@ class EPUB_MOBI(CatalogPlugin): else: yield tag - self.opts.log.info(u' %d total genre tags in database (exclude_genre: %s):' % \ + self.opts.log.info(u' %d available genre tags in database (exclude_genre: %s):' % \ (len(genre_tags_dict), self.opts.exclude_genre)) # Display friendly/normalized genres @@ -2395,19 +2400,15 @@ class EPUB_MOBI(CatalogPlugin): # Create an anchor from the tag aTag = Tag(soup, 'a') - #aTag['name'] = "Genre%s" % re.sub("\W","", genre) aTag['name'] = "Genre_%s" % genre body.insert(btc,aTag) btc += 1 - # Insert the genre title using the friendly name + # Find the first instance of friendly_tag matching genre # GwR *** optimize - for genre_tag in self.genre_tags_dict: - if self.genre_tags_dict[genre_tag] == genre: - friendly_tag = genre_tag + for friendly_tag in self.genre_tags_dict: + if self.genre_tags_dict[friendly_tag] == genre: break - - titleTag = body.find(attrs={'class':'title'}) titleTag.insert(0,NavigableString('%s' % escape(friendly_tag))) @@ -2748,8 +2749,8 @@ class EPUB_MOBI(CatalogPlugin): if opts.verbose: opts_dict = vars(opts) - log("%s(): Generating %s for %s in %s environment" % - (self.name,self.fmt,opts.output_profile, + log("%s(): Generating %s %sin %s environment" % + (self.name,self.fmt,'for %s ' % opts.output_profile if opts.output_profile else '', 'CLI' if opts.cli_environment else 'GUI')) if opts_dict['ids']: log(" Book count: %d" % len(opts_dict['ids'])) @@ -2765,32 +2766,39 @@ class EPUB_MOBI(CatalogPlugin): # Launch the Catalog builder if opts.verbose: - log.info("Begin generating catalog source") + log.info("Begin catalog source generation") catalog = self.CatalogBuilder(db, opts, self, report_progress=notification) catalog.createDirectoryStructure() catalog.copyResources() - catalog.buildSources() + catalog_source_built = catalog.buildSources() if opts.verbose: - log.info("Finished generating catalog source\n") + if catalog_source_built: + log.info("Finished catalog source generation\n") + else: + log.warn("No database hits with supplied criteria") - recommendations = [] + if catalog_source_built: + recommendations = [] - dp = getattr(opts, 'debug_pipeline', None) - if dp is not None: - recommendations.append(('debug_pipeline', dp, - OptionRecommendation.HIGH)) + dp = getattr(opts, 'debug_pipeline', None) + if dp is not None: + recommendations.append(('debug_pipeline', dp, + OptionRecommendation.HIGH)) - if opts.fmt == 'mobi' and opts.output_profile and opts.output_profile.startswith("kindle"): - recommendations.append(('output_profile', opts.output_profile, - OptionRecommendation.HIGH)) - recommendations.append(('no_inline_toc', True, - OptionRecommendation.HIGH)) + if opts.fmt == 'mobi' and opts.output_profile and opts.output_profile.startswith("kindle"): + recommendations.append(('output_profile', opts.output_profile, + OptionRecommendation.HIGH)) + recommendations.append(('no_inline_toc', True, + OptionRecommendation.HIGH)) - # Run ebook-convert - from calibre.ebooks.conversion.plumber import Plumber - plumber = Plumber(os.path.join(catalog.catalogPath, - opts.basename + '.opf'), path_to_output, log, report_progress=notification, - abort_after_input_dump=False) - plumber.merge_ui_recommendations(recommendations) + # Run ebook-convert + from calibre.ebooks.conversion.plumber import Plumber + plumber = Plumber(os.path.join(catalog.catalogPath, + opts.basename + '.opf'), path_to_output, log, report_progress=notification, + abort_after_input_dump=False) + plumber.merge_ui_recommendations(recommendations) - plumber.run() + plumber.run() + return 0 + else: + return 1 From 1df664673cb27e0739545f4e2b6c0e6a836746db Mon Sep 17 00:00:00 2001 From: Translators <> Date: Mon, 1 Feb 2010 04:45:08 +0000 Subject: [PATCH 015/158] Launchpad automatic translations update. --- src/calibre/translations/ar.po | 17 +- src/calibre/translations/ast.po | 6 +- src/calibre/translations/es.po | 6 +- src/calibre/translations/gl.po | 761 +-- src/calibre/translations/ko.po | 6 +- src/calibre/translations/lv.po | 4 +- src/calibre/translations/ms.po | 7860 +++++++++++++++++++++++++++++ src/calibre/translations/nb.po | 6 +- src/calibre/translations/nl.po | 8 +- src/calibre/translations/pl.po | 6 +- src/calibre/translations/ru.po | 184 +- src/calibre/translations/sq.po | 4 +- src/calibre/translations/sv.po | 6 +- src/calibre/translations/tr.po | 6 +- src/calibre/translations/zh_TW.po | 4 +- 15 files changed, 8425 insertions(+), 459 deletions(-) create mode 100644 src/calibre/translations/ms.po diff --git a/src/calibre/translations/ar.po b/src/calibre/translations/ar.po index 9cd812b9af..f882e24deb 100644 --- a/src/calibre/translations/ar.po +++ b/src/calibre/translations/ar.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-27 06:24+0000\n" -"Last-Translator: meshari alnaim \n" +"PO-Revision-Date: 2010-01-31 21:41+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -403,7 +403,7 @@ msgid "" " Customize calibre by loading external plugins.\n" " " msgstr "" -" %خيارات البرنامج\n" +" %prog البرنامج\n" "\n" " المقدرة على التخصيص بتحميل الملحقات الخارجية .\n" " " @@ -436,7 +436,7 @@ msgstr "تعطيل الملحق المسمى" #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." -msgstr "" +msgstr "التواصل مع هواتف أندرويد ." #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" @@ -624,11 +624,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." -msgstr "" +msgstr "لا يوجد بطاقات تخزين في القارئ ." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." -msgstr "" +msgstr "الفتحة المختارة : %s ليست مدعومة ." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" @@ -711,6 +711,9 @@ msgid "" "\n" "%s" msgstr "" +"فشل في معالجة الصور : \n" +"\n" +"%s ." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" diff --git a/src/calibre/translations/ast.po b/src/calibre/translations/ast.po index 12567467f5..9178b57886 100644 --- a/src/calibre/translations/ast.po +++ b/src/calibre/translations/ast.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-27 22:39+0000\n" -"Last-Translator: Yagüe \n" +"PO-Revision-Date: 2010-01-31 21:37+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Asturian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-29 04:51+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/es.po b/src/calibre/translations/es.po index b786e6cac0..230ea68f65 100644 --- a/src/calibre/translations/es.po +++ b/src/calibre/translations/es.po @@ -11,13 +11,13 @@ msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-27 20:31+0000\n" -"Last-Translator: Jellby \n" +"PO-Revision-Date: 2010-01-31 21:38+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/gl.po b/src/calibre/translations/gl.po index 487a3635c9..8a31627097 100644 --- a/src/calibre/translations/gl.po +++ b/src/calibre/translations/gl.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-29 17:58+0000\n" +"PO-Revision-Date: 2010-01-31 21:42+0000\n" "Last-Translator: Miguel Anxo Bouzada \n" "Language-Team: Galician \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-30 04:38+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -337,7 +337,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" -msgstr "" +msgstr "Perfil de saída" #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" @@ -366,23 +366,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Installed plugins" -msgstr "" +msgstr "Complementos instalados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 msgid "Mapping for filetype plugins" -msgstr "" +msgstr "Rastrexando os complementos por tipo de ficheiro" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Local plugin customization" -msgstr "" +msgstr "Personalización de complemento local" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Disabled plugins" -msgstr "" +msgstr "Complementos desactivados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 msgid "No valid plugin found in " -msgstr "" +msgstr "Non se acharon complementos válidos en " #: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 msgid "Initialization of plugin %s failed with traceback:" @@ -412,15 +412,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" -msgstr "" +msgstr "Listar todos os complementos instalados" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" -msgstr "" +msgstr "Activar o complemento sinalado" #: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" -msgstr "" +msgstr "Desactivar o complemento sinalado" #: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 msgid "Communicate with Android phones." @@ -482,11 +482,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 msgid "John Schember" -msgstr "" +msgstr "Nome Apelidos" #: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" -msgstr "" +msgstr "Interface do Dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 msgid "Communicate with the IRex Digital Reader 1000 eBook reader." @@ -565,19 +565,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 msgid "Transferring books to device..." -msgstr "" +msgstr "A transferir os libros ao dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." -msgstr "" +msgstr "A eliminar os libros do dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." -msgstr "" +msgstr "A enviar metadatos ao dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." @@ -593,7 +593,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." -msgstr "" +msgstr "Non se puido detectar a unidade de disco %s." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." @@ -616,7 +616,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." -msgstr "" +msgstr "A bahía %s seleccionada non está soportada." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" @@ -635,15 +635,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" -msgstr "" +msgstr "Noticias" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" -msgstr "" +msgstr "Configurar o Dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" -msgstr "" +msgstr "Configuración para os controladores de dispositivo" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" @@ -665,7 +665,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 msgid "Extra customization" -msgstr "" +msgstr "Personalización adicional" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 msgid "Communicate with an eBook reader." @@ -673,7 +673,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." -msgstr "" +msgstr "Obter información do dispositivo..." #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 @@ -687,11 +687,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Rendered %s" -msgstr "" +msgstr "Renderizado %s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 msgid "Failed %s" -msgstr "" +msgstr "Errou %s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "" @@ -699,6 +699,9 @@ msgid "" "\n" "%s" msgstr "" +"Erro ao procesar o cómic:\n" +"\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" @@ -718,7 +721,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Disable sharpening." -msgstr "" +msgstr "Desactivar a definición." #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "" @@ -763,12 +766,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 msgid "Apply no processing to the image" -msgstr "" +msgstr "Non se aplica proceso ningún á imaxe" #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 msgid "Page" -msgstr "" +msgstr "Páxina" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 msgid "" @@ -798,7 +801,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 msgid "INPUT OPTIONS" -msgstr "" +msgstr "OPCIÓNS DE ENTRADA" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 msgid "Options to control the processing of the input %s file" @@ -806,7 +809,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 msgid "OUTPUT OPTIONS" -msgstr "" +msgstr "OPCIÓNS DE SAÍDA" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 msgid "Options to control the processing of the output %s" @@ -837,11 +840,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 msgid "List builtin recipes" -msgstr "" +msgstr "Listar os agregadores predefinidos" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 msgid "Output saved to" -msgstr "" +msgstr "Saída gardada en" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 msgid "Level of verbosity. Specify multiple times for greater verbosity." @@ -1092,7 +1095,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 msgid "Set the title." -msgstr "" +msgstr "Definir o título." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 msgid "Set the authors. Multiple authors should be separated by ampersands." @@ -1109,17 +1112,17 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 msgid "Set the cover to the specified file." -msgstr "" +msgstr "Definir a capa do ficheiro especificado." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 msgid "Set the ebook description." -msgstr "" +msgstr "Definir a descrición do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 msgid "Set the ebook publisher." -msgstr "" +msgstr "Definir o/a editor/a do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 @@ -1139,7 +1142,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 msgid "Set the ISBN of the book." -msgstr "" +msgstr "Definir o ISBN do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 @@ -1149,12 +1152,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 msgid "Set the book producer." -msgstr "" +msgstr "Definir o produtor do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 msgid "Set the language." -msgstr "" +msgstr "Definir o idioma." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 msgid "Could not find an ebook inside the archive" @@ -1166,7 +1169,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 msgid "Converting input to HTML..." -msgstr "" +msgstr "A converter a entrada a HTML..." #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 msgid "Running transforms on ebook..." @@ -1174,7 +1177,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 msgid "Creating" -msgstr "" +msgstr "A crear" #: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:57 msgid "" @@ -1210,7 +1213,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" -msgstr "" +msgstr "Índice de Contidos:" #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 msgid "Do not insert a Table of Contents at the beginning of the book." @@ -1261,7 +1264,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." -msgstr "" +msgstr "\tTratando o HTML..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." @@ -1269,46 +1272,48 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " -msgstr "" +msgstr "A escribir o HTML preprocesado en " #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" -msgstr "" +msgstr "A procesar %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." -msgstr "" +msgstr "\tA converter para BBeB..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" -msgstr "" +msgstr "Non se puido tratar o ficheiro: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" -msgstr "" +msgstr "%s é un ficheiro baleiro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" -msgstr "" +msgstr "Erro ao tratar a ligazón %s %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" -msgstr "" +msgstr "Non se puido engadir a ligazón %a a TOC" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" -msgstr "" +msgstr "Non se puido procesar a imaxe %s. Erro: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" -msgstr "" +msgstr "Non se puido procesar o PNG entrelazado %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" msgstr "" +"Non se puido procesar a imaxe: %s\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" @@ -1320,6 +1325,8 @@ msgid "" "Bad table:\n" "%s" msgstr "" +"Táboa incorrecta:\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" @@ -1327,15 +1334,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" -msgstr "" +msgstr "Non se puido ler a imaxe da capa: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" -msgstr "" +msgstr "Non se puido ler en: %s" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" -msgstr "" +msgstr "Erro ao procesar o ficheiro opf" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 msgid "" @@ -1345,7 +1352,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 msgid "Output LRS file" -msgstr "" +msgstr "Ficheiro LRS de saída" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 msgid "Do not save embedded image and font files to disk" @@ -1353,19 +1360,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 msgid "Parsing LRF..." -msgstr "" +msgstr "A tratar o LRF..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 msgid "Creating XML..." -msgstr "" +msgstr "A crear o XML..." #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 msgid "LRS written to " -msgstr "" +msgstr "LRS gardado en " #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 msgid "Could not read from thumbnail file:" -msgstr "" +msgstr "Non se puido ler o ficheiro da miniatura:" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 msgid "" @@ -1375,12 +1382,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 msgid "Path to output file" -msgstr "" +msgstr "Traxectoria do ficheiro de saída" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:113 msgid "Verbose processing" -msgstr "" +msgstr "Procesado por petición" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 msgid "Convert LRS to LRS, useful for debugging." @@ -1401,7 +1408,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 msgid "Set the book title" -msgstr "" +msgstr "Definir o título do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 msgid "Set sort key for the title" @@ -1409,7 +1416,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 msgid "Set the author" -msgstr "" +msgstr "Definir o/a autor/a" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 msgid "Set sort key for the author" @@ -1430,23 +1437,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 msgid "Extract thumbnail from LRF file" -msgstr "" +msgstr "Extraer a miniatura do ficheiro LRF" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 msgid "Set the publisher" -msgstr "" +msgstr "Definir o/a editor/a" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 msgid "Set the book classification" -msgstr "" +msgstr "Definir a clasificación do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 msgid "Set the book creator" -msgstr "" +msgstr "Definir o/a creador do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 msgid "Set the book producer" -msgstr "" +msgstr "Definir o/a produtor/a do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 msgid "" @@ -1456,7 +1463,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 msgid "Set book ID" -msgstr "" +msgstr "Definir o ID do libro" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 msgid "Enable autorotation of images that are wider than the screen width." @@ -1512,7 +1519,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 msgid "Comic" -msgstr "" +msgstr "Cómic" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 @@ -1523,7 +1530,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 msgid "Title" -msgstr "" +msgstr "Título" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 @@ -1531,7 +1538,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Author(s)" -msgstr "" +msgstr "Autores/as" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 @@ -1551,7 +1558,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" -msgstr "" +msgstr "Comentarios" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 @@ -1561,7 +1568,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" -msgstr "" +msgstr "Etiquetas" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 @@ -1573,30 +1580,30 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 msgid "Language" -msgstr "" +msgstr "Idioma" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 msgid "Timestamp" -msgstr "" +msgstr "Marca temporal" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 msgid "Published" -msgstr "" +msgstr "Publicado" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 msgid "Rights" -msgstr "" +msgstr "Dereitos" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" -msgstr "" +msgstr "SUMARIO DA EDITORIAL" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 msgid "options" -msgstr "" +msgstr "opcións" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 msgid "" @@ -1632,7 +1639,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 msgid "Set the book category." -msgstr "" +msgstr "Definir a categoría do libro." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 msgid "Get the cover from the ebook and save it at as the specified file." @@ -1657,31 +1664,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" -msgstr "" +msgstr "Non se especificou ficheiro ningún" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" -msgstr "" +msgstr "Metadatos orixinais" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" -msgstr "" +msgstr "Metadatos modificados" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" -msgstr "" +msgstr "OPF creado en" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" -msgstr "" +msgstr "Capa gardada en" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" -msgstr "" +msgstr "Non se achou capa ningunha" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 msgid "Metadata download" -msgstr "" +msgstr "Descarga de metadatos" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "ratings" @@ -1689,15 +1696,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "tags" -msgstr "" +msgstr "etiquetas" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 msgid "description/reviews" -msgstr "" +msgstr "descrición/críticas" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 msgid "Download %s from %s" -msgstr "" +msgstr "Descargar %s desde %s" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 msgid "Downloads metadata from Google Books" @@ -1759,7 +1766,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:61 msgid " not found." -msgstr "" +msgstr " non se achou." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 msgid "LibraryThing.com server error. Try again later." @@ -1776,7 +1783,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 msgid "Cover" -msgstr "" +msgstr "Capa" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 msgid "Modify images to meet Palm device size limitations." @@ -1799,26 +1806,26 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 msgid "Disable compression of the file contents." -msgstr "" +msgstr "Desactivar a compresión dos contidos do ficheiro." #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 msgid "All articles" -msgstr "" +msgstr "Todos os artigos" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 msgid "Title Page" -msgstr "" +msgstr "Páxina de título" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" -msgstr "" +msgstr "Índice de Contidos" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 msgid "Index" -msgstr "" +msgstr "Índice" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 msgid "Glossary" @@ -1838,7 +1845,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Copyright" -msgstr "" +msgstr "Dereitos de copia" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Dedication" @@ -1854,15 +1861,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "List of Illustrations" -msgstr "" +msgstr "Lista de Ilustracións" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "List of Tables" -msgstr "" +msgstr "Lista de Táboas" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Notes" -msgstr "" +msgstr "Notas" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Preface" @@ -1870,11 +1877,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Main Text" -msgstr "" +msgstr "Texto Principal" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" -msgstr "" +msgstr "O formato de libros %s non está soportado" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 msgid "HTML TOC generation options." @@ -1882,7 +1889,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 msgid "Book Jacket" -msgstr "" +msgstr "Envoltorio do Libro" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 msgid "" @@ -1891,7 +1898,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 msgid "Unnamed" -msgstr "" +msgstr "Sen nome" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 msgid "OPF/NCX/etc. generation options." @@ -1912,7 +1919,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 msgid "Sidebar" -msgstr "" +msgstr "Barra lateral" #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 @@ -2011,7 +2018,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 msgid "Crop Options:" -msgstr "" +msgstr "Opcións de Recorte:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 @@ -2032,7 +2039,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" -msgstr "" +msgstr "Opcións de Descifrado:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 msgid "" @@ -2043,7 +2050,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" -msgstr "" +msgstr "Opcións de Cifrado:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 msgid "" @@ -2054,27 +2061,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 msgid "Author" -msgstr "" +msgstr "Autor" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 msgid "Subject" -msgstr "" +msgstr "Asunto" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 msgid "Creator" -msgstr "" +msgstr "Creador" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 msgid "Pages" -msgstr "" +msgstr "Páxinas" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 msgid "File Size" -msgstr "" +msgstr "Tamaño do Ficheiro:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 msgid "PDF Version" -msgstr "" +msgstr "Versión de PDF" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 msgid "" @@ -2087,7 +2094,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" -msgstr "" +msgstr "Opcións de Combinación:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 msgid "" @@ -2098,7 +2105,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 msgid "Reverse Options:" -msgstr "" +msgstr "Opcións de Reverso:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 msgid "" @@ -2109,7 +2116,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" -msgstr "" +msgstr "Opcións de Rotación:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 msgid "" @@ -2128,7 +2135,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" -msgstr "" +msgstr "Opcións de División:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 msgid "" @@ -2222,11 +2229,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 msgid "Confirm before deleting" -msgstr "" +msgstr "Confirmar antes de borrar" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 msgid "Toolbar icon size" -msgstr "" +msgstr "Tamaño da icona da barra de ferramentas" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 msgid "Show button labels in the toolbar" @@ -2234,11 +2241,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 msgid "Main window geometry" -msgstr "" +msgstr "Xeometría da xanela principal" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 msgid "Notify when a new version is available" -msgstr "" +msgstr "Notificar se hai versións novas dispoñíbeis" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 msgid "Use Roman numerals for series number" @@ -2278,7 +2285,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Show system tray icon" -msgstr "" +msgstr "Amosar a icona na área de notificación do sistema" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 msgid "Upload downloaded news to device" @@ -2317,27 +2324,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" -msgstr "" +msgstr "Copiado" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 msgid "Copy" -msgstr "" +msgstr "Copiar" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 msgid "Copy to Clipboard" -msgstr "" +msgstr "Copiar no Portapapeis" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 msgid "Choose Files" -msgstr "" +msgstr "Escoller os Ficheiros" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 msgid "Searching in" -msgstr "" +msgstr "A Buscar" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 msgid "Adding..." -msgstr "" +msgstr "A engadir..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 msgid "Searching in all sub-directories..." @@ -2345,28 +2352,28 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 msgid "Path error" -msgstr "" +msgstr "Erro na traxectoria" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 msgid "The specified directory could not be processed." -msgstr "" +msgstr "Non se puido procesar o directorio especificado." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" -msgstr "" +msgstr "Sen libros" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 msgid "No books found" -msgstr "" +msgstr "Non se acharon libros" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 msgid "Added" -msgstr "" +msgstr "Engadido" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 msgid "Adding failed" -msgstr "" +msgstr "Erro ao engadir" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 msgid "" @@ -2376,7 +2383,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 msgid "Duplicates found!" -msgstr "" +msgstr "Acháronse duplicados!" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 msgid "" @@ -2386,15 +2393,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Adding duplicates..." -msgstr "" +msgstr "A engadir os duplicados..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 msgid "Saving..." -msgstr "" +msgstr "A gardar..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 msgid "Saved" -msgstr "" +msgstr "Gardado" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" @@ -2416,7 +2423,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 msgid "Options specific to" -msgstr "" +msgstr "Opcións específicas para" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2429,7 +2436,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 msgid "output" -msgstr "" +msgstr "saída" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 @@ -2461,7 +2468,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 msgid "Form" -msgstr "" +msgstr "Formulario" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" @@ -2507,16 +2514,16 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 msgid "Bulk Convert" -msgstr "" +msgstr "Conversión por Petición" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." -msgstr "" +msgstr "Opcións específicas do formato de saida." #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 msgid "Comic Input" -msgstr "" +msgstr "Entrada de Cómic" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 @@ -2524,27 +2531,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 msgid "input" -msgstr "" +msgstr "entrada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" -msgstr "" +msgstr "&Número de Cores:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 msgid "Disable &normalize" -msgstr "" +msgstr "Desactivar &normalizar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 msgid "Keep &aspect ratio" -msgstr "" +msgstr "Manter a &proporción" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 msgid "Disable &Sharpening" -msgstr "" +msgstr "Desactivar a &Definición" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 @@ -2554,22 +2561,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 msgid "&Wide" -msgstr "" +msgstr "&Vertical" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 msgid "&Landscape" -msgstr "" +msgstr "&Horizontal" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 msgid "&Right to left" -msgstr "" +msgstr "&Dereita a esquerda" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 msgid "Don't so&rt" -msgstr "" +msgstr "Non o&rdenar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 @@ -2578,33 +2585,33 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" -msgstr "" +msgstr "&Desactivar o procesamento de cómic" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 msgid "&Output format:" -msgstr "" +msgstr "Formato de &Saída:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 msgid "Debug" -msgstr "" +msgstr "Depurar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 msgid "Debug the conversion process." -msgstr "" +msgstr "Depurar o proceso de conversión." #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 msgid "Choose debug folder" -msgstr "" +msgstr "Escoller o cartafol de depuración" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 msgid "Invalid debug directory" -msgstr "" +msgstr "Directorio de depuración non válido" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 msgid "Failed to create debug directory" -msgstr "" +msgstr "Erro ao crear o directorio de depuración" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 msgid "" @@ -2660,7 +2667,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" -msgstr "" +msgstr "Saída EPUB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" @@ -2672,15 +2679,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:44 msgid " KB" -msgstr "" +msgstr " KB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 msgid "No default &cover" -msgstr "" +msgstr "Sen &capa predeterminada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" -msgstr "" +msgstr "Entrada FB2" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 msgid "Do not insert a &Table of Contents at the beginning of the book." @@ -2688,18 +2695,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" -msgstr "" +msgstr "Saída FB2" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" -msgstr "" +msgstr "TOC &en liña" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 msgid "Font rescaling wizard" -msgstr "" +msgstr "Asistente de reescalamento do tipo de letra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 msgid "" @@ -2719,17 +2726,17 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 msgid "&Output document" -msgstr "" +msgstr "Documento de &saída" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109 msgid "&Base font size:" -msgstr "" +msgstr "Tamaño do tipo de letra &base:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 msgid "Font size &key:" -msgstr "" +msgstr "&Clave do tipo de letra:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 @@ -2748,19 +2755,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 msgid "Use &default values" -msgstr "" +msgstr "Usar os valores &predeterminados" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 msgid "&Input document" -msgstr "" +msgstr "Documento de &entrada" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 msgid "&Font size: " -msgstr "" +msgstr "&Tamaño do tipo de letra: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 msgid " will map to size: " -msgstr "" +msgstr " escalarase ao tamaño: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 msgid "0.0 pt" @@ -2776,11 +2783,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 msgid "&Disable font size rescaling" -msgstr "" +msgstr "&Desactivar o reescalamento do tamaño de tipo de letra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "Base &font size:" -msgstr "" +msgstr "&Tamaño do tipo de letra base" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 msgid "Wizard to help you choose an appropriate font size key" @@ -2788,19 +2795,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 msgid "Line &height:" -msgstr "" +msgstr "&Altura de liña:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 msgid "Input character &encoding:" -msgstr "" +msgstr "&Codificación do carácter de entrada:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 msgid "Remove &spacing between paragraphs" -msgstr "" +msgstr "Elliminar o &espazo entre parágrafos" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 msgid "Indent size:" -msgstr "" +msgstr "Tamaño da sangría:a" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 msgid "" @@ -2815,15 +2822,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 msgid "Insert &blank line" -msgstr "" +msgstr "Inserir liña en &branco" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 msgid "No text &justification" -msgstr "" +msgstr "Texto sen &xustificación" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 msgid "&Linearize tables" -msgstr "" +msgstr "&Aliñar as táboas" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 msgid "&Transliterate unicode characters to ASCII." @@ -2831,15 +2838,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "Extra &CSS" -msgstr "" +msgstr "&CSS adicional" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 msgid "LRF Output" -msgstr "" +msgstr "Saída LRF" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 msgid "Enable &autorotation of wide images" -msgstr "" +msgstr "Activar a rotación &automática de imaxes grandes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 msgid "&Wordspace:" @@ -2847,11 +2854,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 msgid "Minimum para. &indent:" -msgstr "" +msgstr "Sangría &mínima:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 msgid "Render &tables as images" -msgstr "" +msgstr "Renderizar &táboas como imaxes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 msgid "Text size multiplier for text in rendered tables:" @@ -2859,31 +2866,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 msgid "Add &header" -msgstr "" +msgstr "Engadir &Encabezado" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 msgid "Header &separation:" -msgstr "" +msgstr "&Separación do encabezado" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 msgid "Header &format:" -msgstr "" +msgstr "&Formato do encabezado" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 msgid "&Embed fonts" -msgstr "" +msgstr "&Aniñar os tipos de letra" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 msgid "&Serif font family:" -msgstr "" +msgstr "Familia de tipos de letra con &serifa:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 msgid "S&ans-serif font family:" -msgstr "" +msgstr "Familia de tipos de letra s&en serifa:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 msgid "&Monospaced font family:" -msgstr "" +msgstr "Familia de tipos de letra de &largo uniforme" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 @@ -2900,23 +2907,23 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 msgid "Choose cover for " -msgstr "" +msgstr "Escoller a capa para " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 msgid "Cannot read" -msgstr "" +msgstr "Non se puido ler" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 msgid "You do not have permission to read the file: " -msgstr "" +msgstr "Non ten permiso para ler o ficheiro " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 msgid "Error reading file" -msgstr "" +msgstr "Erro ao ler o ficheiro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 @@ -2926,12 +2933,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid " is not a valid picture" -msgstr "" +msgstr " non é unha imaxe válida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Book Cover" -msgstr "" +msgstr "Capa do Libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 msgid "Use cover from &source file" @@ -2940,7 +2947,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Change &cover image:" -msgstr "" +msgstr "Mudar a imaxe da &capa" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 @@ -2950,7 +2957,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "&Title: " -msgstr "" +msgstr "&Título " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 @@ -2961,11 +2968,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " -msgstr "" +msgstr "&Autores/as: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 msgid "Author So&rt:" -msgstr "" +msgstr "&Ordenación por autor/a" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 msgid "" @@ -2982,7 +2989,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 msgid "Ta&gs: " -msgstr "" +msgstr "&Etiquetas " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 @@ -3010,15 +3017,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Book " -msgstr "" +msgstr "Libro " #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 msgid "MOBI Output" -msgstr "" +msgstr "Saída MOBI" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 msgid "&Title for Table of Contents:" -msgstr "" +msgstr "&Título do Índice de Contidos:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 msgid "Rescale images for &Palm devices" @@ -3026,11 +3033,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 msgid "Use author &sort for author" -msgstr "" +msgstr "Usar a &ordenación por autores/as" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 msgid "Disable compression of the file contents" -msgstr "" +msgstr "Desactivar a compresión dos contidos do ficheiro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 msgid "Do not add Table of Contents to book" @@ -3038,43 +3045,43 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 msgid "Page Setup" -msgstr "" +msgstr "Configuración da Páxina" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 msgid "&Output profile:" -msgstr "" +msgstr "Perfil de &Saída:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:112 msgid "Profile description" -msgstr "" +msgstr "Descrición do perfil" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:113 msgid "&Input profile:" -msgstr "" +msgstr "Perfil de &Entrada:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 msgid "Margins" -msgstr "" +msgstr "Marxes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 msgid "&Left:" -msgstr "" +msgstr "&Esquerdo:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 msgid "&Top:" -msgstr "" +msgstr "&Superior:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 msgid "&Right:" -msgstr "" +msgstr "&Dereita:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 msgid "&Bottom:" -msgstr "" +msgstr "&Inferior:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 msgid "PDB Input" -msgstr "" +msgstr "Entrada PDB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 @@ -3084,19 +3091,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 msgid "Assume print formatting" -msgstr "" +msgstr "Asumir o formatado de impresión" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 msgid "PDB Output" -msgstr "" +msgstr "Saída PDB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 msgid "&Format:" -msgstr "" +msgstr "&Formato:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 msgid "PDF Input" -msgstr "" +msgstr "Entrada PDF" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 msgid "Line &Un-Wrapping Factor:" @@ -3104,28 +3111,28 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 msgid "No &Images" -msgstr "" +msgstr "Sen &Imaxes" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 msgid "PDF Output" -msgstr "" +msgstr "Saída PDF" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:40 msgid "&Paper Size:" -msgstr "" +msgstr "Tamaño de &Papel" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:41 msgid "&Orientation:" -msgstr "" +msgstr "&Orientación" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 msgid "RB Output" -msgstr "" +msgstr "Saída RB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 msgid "Choose the format to view" -msgstr "" +msgstr "Escoller o formato de visualización" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 msgid "Cannot build regex using the GUI builder without a book." @@ -3133,11 +3140,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 msgid "No formats available" -msgstr "" +msgstr "Non hai formatos dispoñíbeis" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 msgid "Open book" -msgstr "" +msgstr "Abrir o libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 msgid "~" @@ -3149,7 +3156,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 msgid "Preview" -msgstr "" +msgstr "Previsualizar" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 msgid "Regex:" @@ -3157,22 +3164,22 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 msgid "Convert" -msgstr "" +msgstr "Converter" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." -msgstr "" +msgstr "Opcións específicas do formato de entrada." #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" -msgstr "" +msgstr "Diálogo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 msgid "&Input format:" -msgstr "" +msgstr "Formato de &entrada:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 msgid "Use &saved conversion settings for individual books" @@ -3183,6 +3190,8 @@ msgid "" "Structure\n" "Detection" msgstr "" +"Detección da\n" +"Estrutura" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 msgid "" @@ -3199,35 +3208,35 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 msgid "Header regular expression:" -msgstr "" +msgstr "Expresión regular do encabezado:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 msgid "Footer regular expression:" -msgstr "" +msgstr "Expresión regular do pé de páxina:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 msgid "Invalid regular expression" -msgstr "" +msgstr "Expresión regular non válida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 msgid "Invalid regular expression: %s" -msgstr "" +msgstr "Expresión regular non válida: %s" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 msgid "Invalid XPath" -msgstr "" +msgstr "XPath non válida" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 msgid "The XPath expression %s is invalid." -msgstr "" +msgstr "A expresión da XPath %s non é válida." #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 msgid "Chapter &mark:" -msgstr "" +msgstr "´&Marca de capítulo" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 msgid "Remove first &image" @@ -3347,7 +3356,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 msgid "*" -msgstr "" +msgstr "*" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 msgid "a" @@ -3734,11 +3743,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "General" -msgstr "" +msgstr "Xeral" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Interface" -msgstr "" +msgstr "Interface" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 msgid "Add/Save" @@ -3752,7 +3761,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 msgid "Advanced" -msgstr "" +msgstr "Avanzado" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 msgid "" @@ -3762,7 +3771,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 msgid "Plugins" -msgstr "" +msgstr "Complementos" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Auto send" @@ -3770,7 +3779,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 msgid "Email" -msgstr "" +msgstr "Correo electrónico" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:221 msgid "Formats to email. The first matching format will be sent." @@ -3792,7 +3801,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" -msgstr "" +msgstr "Erro" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 msgid "Failed to install command line tools." @@ -4004,7 +4013,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" -msgstr "" +msgstr "Preferencias" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 msgid "" @@ -4044,15 +4053,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Normal" -msgstr "" +msgstr "Normal" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "High" -msgstr "" +msgstr "Alto" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid "Low" -msgstr "" +msgstr "Baixo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Job &priority:" @@ -4104,15 +4113,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Large" -msgstr "" +msgstr "Grande" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "Medium" -msgstr "" +msgstr "Medio" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "Small" -msgstr "" +msgstr "Pequeno" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "&Button size in toolbar" @@ -4337,7 +4346,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:41 msgid "ERROR" -msgstr "" +msgstr "ERRO" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 msgid "Author Sort" @@ -4411,7 +4420,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" -msgstr "" +msgstr "Detalles do traballo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 msgid "Active Jobs" @@ -4512,7 +4521,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" -msgstr "" +msgstr "Permiso denegado" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" @@ -4758,31 +4767,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 msgid "Monday" -msgstr "" +msgstr "Luns" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 msgid "Tuesday" -msgstr "" +msgstr "Martes" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 msgid "Wednesday" -msgstr "" +msgstr "Mércores" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 msgid "Thursday" -msgstr "" +msgstr "Xoves" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 msgid "Friday" -msgstr "" +msgstr "Venres" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 msgid "Saturday" -msgstr "" +msgstr "Sábado" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 msgid "Sunday" -msgstr "" +msgstr "Domingo" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 msgid "at" @@ -5171,7 +5180,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" -msgstr "" +msgstr "Proba" #: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" @@ -5228,15 +5237,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 msgid "Job" -msgstr "" +msgstr "Traballo" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 msgid "Status" -msgstr "" +msgstr "Estado" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 msgid "Progress" -msgstr "" +msgstr "Progreso" #: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 msgid "Running time" @@ -5285,11 +5294,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 msgid "Date" -msgstr "" +msgstr "Data" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 msgid "Rating" -msgstr "" +msgstr "Puntuación" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 @@ -5299,7 +5308,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" -msgstr "" +msgstr "Ningún" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 msgid "Book %s of %s." @@ -5307,7 +5316,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 msgid "Not allowed" -msgstr "" +msgstr "Non permitido" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 msgid "" @@ -5317,7 +5326,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 msgid "Format" -msgstr "" +msgstr "Formato" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 msgid "Double click to edit me

" @@ -5375,7 +5384,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 msgid "Back" -msgstr "" +msgstr "Voltar" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 @@ -5393,7 +5402,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 msgid "Configure" -msgstr "" +msgstr "Configurar" #: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 msgid "Use the library located at the specified path." @@ -5498,7 +5507,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 msgid "Del" -msgstr "" +msgstr "Supr" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 msgid "Edit meta information" @@ -5540,7 +5549,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 msgid "View" -msgstr "" +msgstr "Ver" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 msgid "V" @@ -5606,7 +5615,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 msgid "Search" -msgstr "" +msgstr "Buscar" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." @@ -5662,7 +5671,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 msgid "Clear" -msgstr "" +msgstr "Limpar" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 msgid "&Alternate shortcut:" @@ -5696,7 +5705,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Authors" -msgstr "" +msgstr "Autores" #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Publishers" @@ -5899,7 +5908,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " -msgstr "" +msgstr "Conectado " #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" @@ -5968,7 +5977,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" -msgstr "" +msgstr "Arquivos" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 msgid "Supported books" @@ -6264,7 +6273,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 msgid "Name" -msgstr "" +msgstr "Nome" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 msgid "Bookmark Manager" @@ -6272,27 +6281,27 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 msgid "Actions" -msgstr "" +msgstr "Accións" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 msgid "Edit" -msgstr "" +msgstr "Editar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 msgid "Delete" -msgstr "" +msgstr "Borrar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 msgid "Reset" -msgstr "" +msgstr "Restaurar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 msgid "Export" -msgstr "" +msgstr "Exportar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 msgid "Import" -msgstr "" +msgstr "Importar" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" @@ -6424,7 +6433,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 msgid "Font options" -msgstr "" +msgstr "Opcións de tipo de letra" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 msgid "The serif font family" @@ -6488,19 +6497,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 msgid "Scroll down" -msgstr "" +msgstr "Desprazar cara a abaixo" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 msgid "Scroll up" -msgstr "" +msgstr "Desprazar cara a arriba" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 msgid "Scroll left" -msgstr "" +msgstr "Desprazar cara á esquerda" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 msgid "Scroll right" -msgstr "" +msgstr "Desprazar cara á dereita" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 msgid "Book format" @@ -6612,11 +6621,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 msgid "Next page" -msgstr "" +msgstr "Páxina seguinte" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 msgid "Previous page" -msgstr "" +msgstr "Páxina anterior" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 msgid "Font size larger" @@ -6648,7 +6657,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Print" -msgstr "" +msgstr "Imprimir" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" @@ -6888,7 +6897,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:123 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:130 msgid "Bad configuration" -msgstr "" +msgstr "Configuración errada" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 msgid "You must set the From email address" @@ -6900,7 +6909,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 msgid "Send email &from:" -msgstr "" +msgstr "Enviar correos &desde:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 msgid "" @@ -6916,7 +6925,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 msgid "Mail &Server" -msgstr "" +msgstr "&Servidor de Correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 msgid "calibre can optionally use a server to send mail" @@ -6924,7 +6933,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 msgid "&Hostname:" -msgstr "" +msgstr "Nome do &host:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 msgid "The hostname of your mail server. For e.g. smtp.gmail.com" @@ -6932,7 +6941,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 msgid "&Port:" -msgstr "" +msgstr "&Porto:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 msgid "" @@ -6941,19 +6950,19 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 msgid "Your username on the mail server" -msgstr "" +msgstr "O seu nome de usuario/a no servidor de correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 msgid "Your password on the mail server" -msgstr "" +msgstr "O seu contrasinal no servidor de correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 msgid "&Show" -msgstr "" +msgstr "&Amosar" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 msgid "&Encryption:" -msgstr "" +msgstr "&Cifrado:" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 msgid "" @@ -6963,7 +6972,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 msgid "&TLS" -msgstr "" +msgstr "&TLS" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 msgid "Use SSL encryption when connecting to the mail server." @@ -6971,15 +6980,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 msgid "&SSL" -msgstr "" +msgstr "&SSL" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 msgid "Use Gmail" -msgstr "" +msgstr "Usar Gmail" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 msgid "&Test email" -msgstr "" +msgstr "&Probar o correo" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 msgid "" @@ -6991,7 +7000,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 msgid "Turn on the &content server" -msgstr "" +msgstr "Prender o servidor de &contidos" #: /home/kovid/work/calibre/src/calibre/library/__init__.py:8 msgid "Settings to control the calibre content server" @@ -7164,7 +7173,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:234 msgid "Invalid fields. Available fields:" -msgstr "" +msgstr "Campos non válidos. Campos dispoñíbeis:" #: /home/kovid/work/calibre/src/calibre/library/cli.py:241 msgid "Invalid sort field. Available fields:" @@ -7193,7 +7202,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:346 msgid "Process directories recursively" -msgstr "" +msgstr "Procesar os directorios recursivamente" #: /home/kovid/work/calibre/src/calibre/library/cli.py:348 msgid "" @@ -7233,7 +7242,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:428 msgid "ebook file must have an extension" -msgstr "" +msgstr "O ficheiro de libro electrónico debe ter unha extensión" #: /home/kovid/work/calibre/src/calibre/library/cli.py:436 msgid "" @@ -7265,7 +7274,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/cli.py:488 msgid "You must specify an id" -msgstr "" +msgstr "Debe especificar un id" #: /home/kovid/work/calibre/src/calibre/library/cli.py:501 msgid "" @@ -7367,31 +7376,31 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" -msgstr "" +msgstr "A copiar %s" #: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" -msgstr "" +msgstr "A compactar a base de datos" #: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." -msgstr "" +msgstr "A comprobar a integridade SQL..." #: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." -msgstr "" +msgstr "A comprobar os ficheiros perdidos." #: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" -msgstr "" +msgstr "id comprobada" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" -msgstr "" +msgstr "O título" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 msgid "The authors" -msgstr "" +msgstr "Os/as autores/as" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 msgid "" @@ -7401,7 +7410,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 msgid "The tags" -msgstr "" +msgstr "As etiquetas" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 msgid "The series" @@ -7413,7 +7422,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 msgid "The rating" -msgstr "" +msgstr "A nota" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 msgid "The ISBN" @@ -7425,15 +7434,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 msgid "The date" -msgstr "" +msgstr "A data" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 msgid "The published date" -msgstr "" +msgstr "Data de publicación" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" -msgstr "" +msgstr "O id interno de Calibre" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" @@ -7495,15 +7504,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." -msgstr "" +msgstr "Converter as traxectorias a minúsculas." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." -msgstr "" +msgstr "Substituír os espazos por suliñados." #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" -msgstr "" +msgstr "Os formatos requiridos non están dispoñíbeis" #: /home/kovid/work/calibre/src/calibre/library/server.py:378 msgid "Password to access your calibre library. Username is " @@ -7526,7 +7535,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/config.py:92 msgid "Created by " -msgstr "" +msgstr "Creado por " #: /home/kovid/work/calibre/src/calibre/utils/config.py:93 msgid "" @@ -7568,11 +7577,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" -msgstr "" +msgstr "Ler os metadatos dos ficheiros" #: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" -msgstr "" +msgstr "A prioridade dos procesos do traballador" #: /home/kovid/work/calibre/src/calibre/utils/config.py:672 msgid "Swap author first and last names when reading metadata" @@ -7580,43 +7589,43 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." -msgstr "" +msgstr "A esperar..." #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 msgid "Stopped" -msgstr "" +msgstr "Detido" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Finished" -msgstr "" +msgstr "Rematado" #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 msgid "Working..." -msgstr "" +msgstr "A traballar..." #: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 msgid "Brazilian Portuguese" -msgstr "" +msgstr "Portugués (brasileiro)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 msgid "English (UK)" -msgstr "" +msgstr "Inglés (Reino Unido)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Simplified Chinese" -msgstr "" +msgstr "Chinés (simplificado)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "Chinese (HK)" -msgstr "" +msgstr "Chinés (Hong Kong)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Traditional Chinese" -msgstr "" +msgstr "Chinés (tradicional)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 msgid "English" -msgstr "" +msgstr "Inglés" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 msgid "English (Australia)" @@ -7656,15 +7665,15 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" -msgstr "" +msgstr "Alemán (Austria)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 msgid "Dutch (NL)" -msgstr "" +msgstr "Flamenco (Holanda)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" -msgstr "" +msgstr "Flamenco (Bélxica)" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 msgid "URL must have the scheme sftp" @@ -7680,21 +7689,21 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 msgid "Failed to authenticate with server: %s" -msgstr "" +msgstr "Erro ao se autenticar no servidor: %s" #: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 msgid "Control email delivery" -msgstr "" +msgstr "Controlar o envío de correo" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 msgid "Unknown feed" -msgstr "" +msgstr "Fluxo descoñecido" #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 #: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 msgid "Untitled article" -msgstr "" +msgstr "Artigo sen título" #: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 msgid "Download periodical content from the internet" @@ -7721,7 +7730,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 msgid "Unknown News Source" -msgstr "" +msgstr "Fonte de Novas Descoñecida" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 msgid "The \"%s\" recipe needs a username and password." @@ -7729,7 +7738,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 msgid "Download finished" -msgstr "" +msgstr "Rematou a descarga" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 msgid "Failed to download the following articles:" @@ -7741,11 +7750,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 msgid " from " -msgstr "" +msgstr " desde " #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 msgid "\tFailed links:" -msgstr "" +msgstr "\tLigazóns erradas:" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 msgid "Could not fetch article. Run with -vv to see the reason" @@ -7753,7 +7762,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 msgid "Fetching feeds..." -msgstr "" +msgstr "A obter os fluxos..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 msgid "Got feeds from index page" @@ -7761,54 +7770,54 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 msgid "Trying to download cover..." -msgstr "" +msgstr "Tratando de descargar a capa..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 msgid "Starting download [%d thread(s)]..." -msgstr "" +msgstr "A comezar a descarga [%d fío(s)]..." #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 msgid "Feeds downloaded to %s" -msgstr "" +msgstr "Fluxos descargados en %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 msgid "Could not download cover: %s" -msgstr "" +msgstr "Non se puido descargar a capa: %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 msgid "Downloading cover from %s" -msgstr "" +msgstr "A descargar a capa desde %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 msgid "Untitled Article" -msgstr "" +msgstr "Artigo sen Título" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 msgid "Article downloaded: %s" -msgstr "" +msgstr "Artigo descargado: %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 msgid "Article download failed: %s" -msgstr "" +msgstr "Erro ao descargar o artigo: %s" #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 msgid "Fetching feed" -msgstr "" +msgstr "A obter o fluxo" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 msgid "You" -msgstr "" +msgstr "Vostede" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 msgid "Scheduled" -msgstr "" +msgstr "Programado" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 msgid "Custom" -msgstr "" +msgstr "Personalizado" #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" diff --git a/src/calibre/translations/ko.po b/src/calibre/translations/ko.po index fbcfefe2c1..f23e37d744 100644 --- a/src/calibre/translations/ko.po +++ b/src/calibre/translations/ko.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-28 15:44+0000\n" -"Last-Translator: xster \n" +"PO-Revision-Date: 2010-01-31 21:46+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-29 04:52+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/lv.po b/src/calibre/translations/lv.po index 67b574fde9..5301869ced 100644 --- a/src/calibre/translations/lv.po +++ b/src/calibre/translations/lv.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:46+0000\n" +"PO-Revision-Date: 2010-01-31 21:40+0000\n" "Last-Translator: Kovid Goyal \n" "Language-Team: Latvian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: LATVIA\n" "X-Poedit-Language: Latvian\n" diff --git a/src/calibre/translations/ms.po b/src/calibre/translations/ms.po new file mode 100644 index 0000000000..0aa860e264 --- /dev/null +++ b/src/calibre/translations/ms.po @@ -0,0 +1,7860 @@ +# Malay translation for calibre +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the calibre package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: calibre\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"PO-Revision-Date: 2010-01-31 12:05+0000\n" +"Last-Translator: abuyop \n" +"Language-Team: Malay \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 +msgid "Does absolutely nothing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:70 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 +#: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:74 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:65 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:66 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:63 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:81 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:281 +#: /home/kovid/work/calibre/src/calibre/library/database.py:913 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 +msgid "Unknown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 +msgid "Base" +msgstr "Asas" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 +msgid "File type" +msgstr "Jenis fail" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 +msgid "Metadata reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 +msgid "Metadata writer" +msgstr "Penulis metadata" + +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 +msgid "" +"Follow all local links in an HTML file and create a ZIP file containing all " +"linked files. This plugin is run every time you add an HTML file to the " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 +msgid "" +"Character encoding for the input HTML files. Common choices include: cp1252, " +"latin1, iso-8859-1 and utf-8." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 +msgid "" +"Create a PMLZ archive containing the PML file and all images in the " +"directory pmlname_img or images. This plugin is run every time you add a PML " +"file to the library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 +msgid "Extract cover from comic files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:171 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:191 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:277 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:287 +msgid "Read metadata from %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +msgid "Read metadata from ebooks in RAR archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +msgid "Read metadata from ebooks in ZIP archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 +msgid "Set metadata in %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 +msgid "Set metadata from %s files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 +msgid "Conversion Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 +msgid "" +"Specify the character encoding of the input document. If set this option " +"will override any encoding declared by the document itself. Particularly " +"useful for documents that do not declare an encoding or that have erroneous " +"encoding declarations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 +msgid "Conversion Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 +msgid "" +"If specified, the output plugin will try to create output that is as human " +"readable as possible. May not have any effect for some output plugins." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:44 +msgid "Input profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:48 +msgid "" +"This profile tries to provide sane defaults and is useful if you know " +"nothing about the input document." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 +msgid "This profile is intended for the Microsoft Reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 +msgid "This profile is intended for the Mobipocket books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 +msgid "This profile is intended for the Hanlin V3 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 +msgid "This profile is intended for the Cybook G3." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 +msgid "This profile is intended for the Cybook Opus." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 +msgid "This profile is intended for the Amazon Kindle." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 +msgid "This profile is intended for the Irex Illiad." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 +msgid "This profile is intended for the IRex Digital Reader 1000." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 +msgid "Output profile" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +msgid "" +"This profile tries to provide sane defaults and is useful if you want to " +"produce a document intended to be read at a computer or on a range of " +"devices." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 +msgid "This profile is intended for the 5-inch JetBook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/700 etc, in " +"landscape mode. Mainly useful for comics." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 +msgid "This profile is intended for the Amazon Kindle DX." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 +msgid "Installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +msgid "Mapping for filetype plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +msgid "Local plugin customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 +msgid "Disabled plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 +msgid "No valid plugin found in " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 +msgid "Initialization of plugin %s failed with traceback:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 +msgid "" +" %prog options\n" +"\n" +" Customize calibre by loading external plugins.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 +msgid "Add a plugin by specifying the path to the zip file containing it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 +msgid "Remove a custom plugin by name. Has no effect on builtin plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 +msgid "" +"Customize plugin. Specify name of plugin and customization string separated " +"by a comma." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 +msgid "List all installed plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 +msgid "Enable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 +msgid "Disable the named plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:13 +msgid "Communicate with Android phones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 +msgid "" +"Comma separated list of directories to send e-books to on the device. The " +"first one that exists will be used" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +msgid "Communicate with the Blackberry smart phone." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 +msgid "Kovid Goyal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 +msgid "Communicate with the EB600 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:16 +msgid "Communicate with the ESlick eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 +msgid "Communicate with the IRex Iliad eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 +msgid "Device Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:16 +msgid "Communicate with the IRex Digital Reader 1000 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +msgid "Communicate with the Iriver Story reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 +msgid "Communicate with the JetBook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 +msgid "Communicate with the Kindle eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 +msgid "Communicate with the Kindle 2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +msgid "Communicate with the Kindle DX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +msgid "The Nook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +msgid "Communicate with the Nook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +msgid "Communicate with the Nuut2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 +msgid "Communicate with the Sony PRS-500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 +msgid "Getting list of books on device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 +msgid "Communicate with the Sony PRS-300/505/500 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 +msgid "Removing books from device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 +msgid "Sending metadata to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 +msgid "Unable to detect the %s disk drive. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 +msgid "Unable to detect the %s disk drive." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 +msgid "Could not find mount helper: %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 +msgid "" +"Unable to detect the %s disk drive. Your kernel is probably exporting a " +"deprecated version of SYSFS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 +msgid "Unable to mount main memory (Error code: %d)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 +msgid "The reader has no storage card in this slot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 +msgid "Selected slot: %s is not supported." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 +msgid "There is insufficient free space in main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 +msgid "There is insufficient free space on the storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 +msgid "News" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 +msgid "Configure Device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 +msgid "settings for device drivers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 +msgid "Ordered list of formats the device will accept" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 +msgid "Place files in sub directories if the device supports them" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 +msgid "Read metadata from files on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +msgid "Extra customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 +msgid "Communicate with an eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 +msgid "Get device information..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 +msgid "Adding books to device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 +msgid "Removing books from device metadata listing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 +msgid "Rendered %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 +msgid "Failed %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 +msgid "" +"Failed to process comic: \n" +"\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +msgid "" +"Number of colors for grayscale image conversion. Default: %default. Values " +"of less than 256 may result in blurred text on your device if you are " +"creating your comics in EPUB format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 +msgid "" +"Disable normalize (improve contrast) color range for pictures. Default: False" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +msgid "Maintain picture aspect ratio. Default is to fill the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 +msgid "Disable sharpening." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 +msgid "" +"Disable trimming of comic pages. For some comics, trimming might remove " +"content as well as borders." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 +msgid "Don't split landscape images into two portrait images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 +msgid "" +"Keep aspect ratio and scale image using screen height as image width for " +"viewing in landscape mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 +msgid "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 +msgid "" +"Enable Despeckle. Reduces speckle noise. May greatly increase processing " +"time." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +msgid "" +"Don't sort the files found in the comic alphabetically by name. Instead use " +"the order they were added to the comic." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +msgid "" +"The format that images in the created ebook are converted to. You can " +"experiment to see which format gives you optimal size and look on your " +"device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 +msgid "Apply no processing to the image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +msgid "Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:19 +msgid "" +"input_file output_file [options]\n" +"\n" +"Convert an ebook from one format to another.\n" +"\n" +"input_file is the input and output_file is the output. Both must be " +"specified as the first two arguments to the command.\n" +"\n" +"The output ebook format is guessed from the file extension of output_file. " +"output_file can also be of the special format .EXT where EXT is the output " +"file extension. In this case, the name of the output file is derived the " +"name of the input file. Note that the filenames must not start with a " +"hyphen. Finally, if output_file has no extension, then it is treated as a " +"directory and an \"open ebook\" (OEB) consisting of HTML files is written to " +"that directory. These files are the files that would normally have been " +"passed to the output plugin.\n" +"\n" +"After specifying the input and output file you can customize the conversion " +"by specifying various options. The available options depend on the input and " +"output file types. To get help on them specify the input and output file and " +"then use the -h option.\n" +"\n" +"For full documentation of the conversion system see\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97 +msgid "INPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98 +msgid "Options to control the processing of the input %s file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104 +msgid "OUTPUT OPTIONS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105 +msgid "Options to control the processing of the output %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119 +msgid "Options to control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:135 +msgid "Control auto-detection of document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:145 +msgid "" +"Control the automatic generation of a Table of Contents. By default, if the " +"source file has a Table of Contents, it will be used in preference to the " +"automatically generated one." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:155 +msgid "Options to set metadata in the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158 +msgid "Options to help with debugging the conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:183 +msgid "List builtin recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 +msgid "Output saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 +msgid "Level of verbosity. Specify multiple times for greater verbosity." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 +msgid "" +"Specify the input profile. The input profile gives the conversion system " +"information on how to interpret various information in the input document. " +"For example resolution dependent lengths (i.e. lengths in pixels). Choices " +"are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 +msgid "" +"Specify the output profile. The output profile tells the conversion system " +"how to optimize the created document for the specified device. In some " +"cases, an output profile is required to produce documents that will work on " +"a device. For example EPUB on the SONY reader. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 +msgid "" +"The base font size in pts. All font sizes in the produced book will be " +"rescaled based on this size. By choosing a larger size you can make the " +"fonts in the output bigger and vice versa. By default, the base font size is " +"chosen based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 +msgid "" +"Mapping from CSS font names to font sizes in pts. An example setting is " +"12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" +"large, with the final size being for huge fonts. The font rescaling " +"algorithm uses these sizes to intelligently rescale fonts. The default is to " +"use a mapping based on the output profile you chose." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 +msgid "Disable all rescaling of font sizes." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 +msgid "" +"The line height in pts. Controls spacing between consecutive lines of text. " +"By default no line height manipulation is performed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 +msgid "" +"Some badly designed documents use tables to control the layout of text on " +"the page. When converted these documents often have text that runs off the " +"page and other artifacts. This option will extract the content from the " +"tables and present it in a linear fashion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level one. If this is specified, it takes precedence over " +"other forms of auto-detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level two. Each entry is added under the previous level one " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 +msgid "" +"XPath expression that specifies all tags that should be added to the Table " +"of Contents at level three. Each entry is added under the previous level two " +"entry." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 +msgid "" +"Normally, if the source file already has a Table of Contents, it is used in " +"preference to the auto-generated one. With this option, the auto-generated " +"one is always used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 +msgid "Don't add auto-detected chapters to the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 +msgid "" +"If fewer than this number of chapters is detected, then links are added to " +"the Table of Contents. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 +msgid "" +"Maximum number of links to insert into the TOC. Set to 0 to disable. Default " +"is: %default. Links are only added to the TOC if less than the threshold " +"number of chapters were detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 +msgid "" +"Remove entries from the Table of Contents whose titles match the specified " +"regular expression. Matching entries and all their children are removed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 +msgid "" +"An XPath expression to detect chapter titles. The default is to consider " +"

or

tags that contain the words \"chapter\",\"book\",\"section\" or " +"\"part\" as chapter titles as well as any tags that have class=\"chapter\". " +"The expression used must evaluate to a list of elements. To disable chapter " +"detection, use the expression \"/\". See the XPath Tutorial in the calibre " +"User Manual for further help on using this feature." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 +msgid "" +"Specify how to mark detected chapters. A value of \"pagebreak\" will insert " +"page breaks before chapters. A value of \"rule\" will insert a line before " +"chapters. A value of \"none\" will disable chapter marking and a value of " +"\"both\" will use both page breaks and lines to mark chapters." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 +msgid "" +"Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " +"the style rules from the source file, so it can be used to override those " +"rules." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 +msgid "" +"An XPath expression. Page breaks are inserted before the specified elements." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 +msgid "" +"Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 +msgid "" +"Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 +msgid "" +"Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 +msgid "" +"Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 +msgid "" +"Do not force text to be justified in output. Whether text is actually " +"displayed justified or not depends on whether the ebook format and reading " +"device support justification." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 +msgid "" +"Remove spacing between paragraphs. Also sets an indent on paragraphs of " +"1.5em. Spacing removal will not work if the source file does not use " +"paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +msgid "" +"When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 +msgid "" +"Use the cover detected from the source file in preference to the specified " +"cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 +msgid "" +"Insert a blank line between paragraphs. Will not work if the source file " +"does not use paragraphs (

or

tags)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +msgid "" +"Remove the first image from the input ebook. Useful if the first image in " +"the source file is a cover and you are specifying an external cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 +msgid "" +"Insert the book metadata at the start of the book. This is useful if your " +"ebook reader does not support displaying/searching metadata directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 +msgid "" +"Attempt to detect and correct hard line breaks and other problems in the " +"source file. This may make things worse, so use with care." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 +msgid "Use a regular expression to try and remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 +msgid "The regular expression to use to remove the header." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 +msgid "Use a regular expression to try and remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 +msgid "The regular expression to use to remove the footer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 +msgid "" +"Read metadata from the specified OPF file. Metadata read from this file will " +"override any metadata in the source file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 +msgid "" +"Transliterate unicode characters to an ASCII representation. Use with care " +"because this will replace unicode characters with ASCII. For instance it " +"will replace \"%s\" with \"Mikhail Gorbachiov\". Also, note that in cases " +"where there are multiple representations of a character (characters shared " +"by Chinese and Japanese for instance) the representation used by the largest " +"number of people will be used (Chinese in the previous example)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 +msgid "Set the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 +msgid "Set the authors. Multiple authors should be separated by ampersands." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 +msgid "The version of the title to be used for sorting. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 +msgid "String to be used when sorting by author. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 +msgid "Set the cover to the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 +msgid "Set the ebook description." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 +msgid "Set the ebook publisher." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 +msgid "Set the series this ebook belongs to." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 +msgid "Set the index of the book in this series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 +msgid "Set the rating. Should be a number between 1 and 5." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 +msgid "Set the ISBN of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 +msgid "Set the tags for the book. Should be a comma separated list." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 +msgid "Set the book producer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 +msgid "Set the language." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 +msgid "Could not find an ebook inside the archive" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 +msgid "Values of series index and rating must be numbers. Ignoring" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 +msgid "Converting input to HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 +msgid "Running transforms on ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 +msgid "Creating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:57 +msgid "" +"Extract the contents of the generated EPUB file to the specified directory. " +"The contents of the directory are first deleted, so be careful." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:63 +msgid "" +"Turn off splitting at page breaks. Normally, input files are automatically " +"split at every page break into two files. This gives an output ebook that " +"can be parsed faster and with less resources. However, splitting is slow and " +"if your source file contains a very large number of page breaks, you should " +"turn off splitting on page breaks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:74 +msgid "" +"Split all HTML files larger than this size (in KB). This is necessary as " +"most EPUB readers cannot handle large file sizes. The default of %defaultKB " +"is the size required for Adobe Digital Editions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/epub/output.py:81 +msgid "" +"Normally, if the input file has no cover and you don't specify one, a " +"default cover is generated with the title, authors, etc. This option " +"disables the generation of this cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 +msgid "Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:32 +msgid "Do not insert a Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:37 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/output.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:35 +msgid "Add Table of Contents to beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:243 +msgid "" +"Traverse links in HTML files breadth first. Normally, they are traversed " +"depth first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:250 +msgid "" +"Maximum levels of recursion when following links in HTML files. Must be non-" +"negative. 0 implies that no links in the root HTML file are followed. " +"Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:259 +msgid "" +"Normally this input plugin re-arranges all the input files into a standard " +"folder hierarchy. Only use this option if you know what you are doing as it " +"can result in various nasty side effects in the rest of of the conversion " +"pipeline." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:267 +msgid "" +"Average line length for line breaking if the HTML is from a previous partial " +"conversion of a PDF file. Default is %default which disables this." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 +msgid "Creating LIT file from EPUB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 +msgid "\tBook Designer file detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 +msgid "\tParsing HTML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 +msgid "\tBaen file detected. Re-parsing..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +msgid "Written preprocessed HTML to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 +msgid "Processing %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 +msgid "\tConverting to BBeB..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 +msgid "Could not parse file: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 +msgid "%s is an empty file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 +msgid "Failed to parse link %s %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 +msgid "Cannot add link %s to TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 +msgid "Unable to process image %s. Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 +msgid "Unable to process interlaced PNG %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 +msgid "" +"Could not process image: %s\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 +msgid "" +"An error occurred while processing a table: %s. Ignoring table markup." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 +msgid "" +"Bad table:\n" +"%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 +msgid "Table has cell that is too large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 +msgid "Could not read cover image: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 +msgid "Cannot read from: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 +msgid "Failed to process opf file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:136 +msgid "" +"%prog book.lrf\n" +"Convert an LRF file into an LRS (XML UTF-8 encoded) file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:137 +msgid "Output LRS file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:139 +msgid "Do not save embedded image and font files to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:158 +msgid "Parsing LRF..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:161 +msgid "Creating XML..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrfparser.py:163 +msgid "LRS written to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:267 +msgid "Could not read from thumbnail file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:287 +msgid "" +"%prog [options] file.lrs\n" +"Compile an LRS file into an LRF file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:288 +msgid "Path to output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:113 +msgid "Verbose processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/lrs/convert_from.py:292 +msgid "Convert LRS to LRS, useful for debugging." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:457 +msgid "Invalid LRF file. Could not set metadata." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:582 +msgid "" +"%prog [options] mybook.lrf\n" +"\n" +"\n" +"Show/edit the metadata in an LRF file.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:589 +msgid "Set the book title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:591 +msgid "Set sort key for the title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:593 +msgid "Set the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:595 +msgid "Set sort key for the author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:597 +msgid "The category this book belongs to. E.g.: History" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:600 +msgid "Path to a graphic that will be set as this files' thumbnail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:603 +msgid "" +"Path to a txt file containing the comment to be stored in the lrf file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:607 +msgid "Extract thumbnail from LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:608 +msgid "Set the publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:609 +msgid "Set the book classification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:610 +msgid "Set the book creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:611 +msgid "Set the book producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:613 +msgid "" +"Extract cover from LRF file. Note that the LRF format has no defined cover, " +"so we use some heuristics to guess the cover." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/meta.py:615 +msgid "Set book ID" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:90 +msgid "Enable autorotation of images that are wider than the screen width." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:94 +msgid "Set the space between words in pts. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:97 +msgid "Add a header to all the pages with title and author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:100 +msgid "" +"Set the format of the header. %a is replaced by the author and %t by the " +"title. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:104 +msgid "Add extra spacing below the header. Default is %default pt." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:107 +msgid "" +"Minimum paragraph indent (the indent of the first line of a paragraph) in " +"pts. Default: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:112 +msgid "" +"Render tables in the HTML as images (useful if the document has large or " +"complex tables)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:117 +msgid "" +"Multiply the size of text in rendered tables by this factor. Default is " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:121 +msgid "The serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:124 +msgid "The sans-serif family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:127 +msgid "The monospace family of fonts to embed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:152 +msgid "Comic" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 +msgid "Title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 +msgid "Author(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 +msgid "Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:49 +msgid "Producer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 +msgid "Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:373 +msgid "Language" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 +msgid "Timestamp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 +msgid "Published" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:379 +msgid "Rights" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 +msgid "EDITORIAL REVIEW" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 +msgid "options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:20 +msgid "" +"\n" +"Read/Write metadata from/to ebook files.\n" +"\n" +"Supported formats for reading metadata: %s\n" +"\n" +"Supported formats for writing metadata: %s\n" +"\n" +"Different file types support different kinds of metadata. If you try to set\n" +"some metadata on a file type that does not support it, the metadata will be\n" +"silently ignored.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:39 +msgid "" +"Set the authors. Multiple authors should be separated by the & character. " +"Author names should be in the order Firstname Lastname." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:43 +msgid "" +"The version of the title to be used for sorting. If unspecified, and the " +"title is specified, it will be auto-generated from the title." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:47 +msgid "" +"String to be used when sorting by author. If unspecified, and the author(s) " +"are specified, it will be auto-generated from the author(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 +msgid "Set the book category." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 +msgid "Get the cover from the ebook and save it at as the specified file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 +msgid "" +"Specify the name of an OPF file. The metadata will be written to the OPF " +"file." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:80 +msgid "" +"Read metadata from the specified OPF file and use it to set metadata in the " +"ebook. Metadata specified on the command line will override metadata read " +"from the OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:85 +msgid "Set the BookID in LRF files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 +msgid "No file specified" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 +msgid "Original metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 +msgid "Changed metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 +msgid "OPF created in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 +msgid "Cover saved to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 +msgid "No cover found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +msgid "Metadata download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "ratings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +msgid "description/reviews" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +msgid "Download %s from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 +msgid "Downloads metadata from Google Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 +msgid "Downloads metadata from isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 +msgid "" +"To use isbndb.com you must sign up for a %sfree account%s and enter your " +"access key below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 +msgid "Downloads social metadata from amazon.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 +msgid "" +"\n" +"%prog [options] key\n" +"\n" +"Fetch metadata for books from isndb.com. You can specify either the\n" +"books ISBN ID or its title and author. If you specify the title and author,\n" +"then more than one book may be returned.\n" +"\n" +"key is the account key you generate after signing up for a free account from " +"isbndb.com.\n" +"\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:105 +msgid "The ISBN ID of the book you want metadata for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:107 +msgid "The author whose book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:109 +msgid "The title of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:111 +msgid "The publisher of the book to search for." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:53 +msgid "LibraryThing.com timed out. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:60 +msgid "" +"Could not fetch cover as server is experiencing high load. Please try again " +"later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:61 +msgid " not found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:64 +msgid "LibraryThing.com server error. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/library_thing.py:71 +msgid "" +"\n" +"%prog [options] ISBN\n" +"\n" +"Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +msgid "Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:22 +msgid "Modify images to meet Palm device size limitations." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:26 +msgid "When present, use author sort field as author." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:30 +msgid "" +"Don't add Table of Contents to end of book. Useful if the book has its own " +"table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:56 +msgid "Title for any generated in-line table of contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:37 +msgid "Disable compression of the file contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +msgid "All articles" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +msgid "Title Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 +msgid "Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +msgid "Index" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +msgid "Glossary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +msgid "Acknowledgements" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +msgid "Bibliography" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +msgid "Colophon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +msgid "Copyright" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +msgid "Dedication" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +msgid "Epigraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +msgid "Foreword" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +msgid "List of Illustrations" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +msgid "List of Tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +msgid "Notes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +msgid "Preface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +msgid "Main Text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 +msgid "%s format books are not supported" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 +msgid "HTML TOC generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 +msgid "Book Jacket" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/split.py:34 +msgid "" +"Could not find reasonable point at which to split: %s Sub-tree size: %d KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/structure.py:68 +msgid "Unnamed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 +msgid "OPF/NCX/etc. generation options." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 +msgid "OPF version to generate. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 +msgid "" +"Generate an Adobe \"page-map\" file if pagination information is available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126 +msgid "Footnotes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 +msgid "Sidebar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:22 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line represents a paragraph instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:26 +msgid "" +"Normally calibre treats blank lines as paragraph markers. With this option " +"it will assume that every line starting with an indent (either a tab or 2+ " +"spaces) represents a paragraph. Paragraphs end when the next line that " +"starts with an indent is reached." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:23 +msgid "Format to use inside the pdb container. Choices are:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/output.py:27 +msgid "" +"Specify the character encoding of the output document. The default is " +"cp1252. Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +msgid "Do not extract images from the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 +msgid "" +"Scale used to determine the length at which a line should be unwrapped. " +"Valid values are a decimal between 0 and 1. The default is 0.5, this is the " +"median line length." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 +msgid "Use the new PDF conversion engine." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 +msgid "" +"command ...\n" +"\n" +"command can be one of the following:\n" +"[%%commands]\n" +"\n" +"Use %prog command --help to get more information about a specific command\n" +"\n" +"Manipulate a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 +msgid "" +"[options] file.pdf\n" +"\n" +"Crop a PDF file.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:38 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:36 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:34 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:33 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:41 +msgid "" +"Path to output file. By default a file is created in the current directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 +msgid "Number of pixels to crop from the left most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 +msgid "Number of pixels to crop from the left most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 +msgid "Number of pixels to crop from the right most x (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 +msgid "Number of pixels to crop from the right most y (default is %s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 +msgid "" +"A file generated by ghostscript which allows each page to be individually " +"cropped `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> bounding`" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +msgid "Crop Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Options to control the transformation of pdf" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:23 +msgid "" +"[options] file.pdf password\n" +"\n" +"Decrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 +msgid "Decrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 +msgid "" +"[options] file.pdf password\n" +"\n" +"Encrypt a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 +msgid "Encrypt Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 +msgid "" +"file.pdf ...\n" +"\n" +"Get info about a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 +msgid "Author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:47 +msgid "Subject" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:48 +msgid "Creator" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:50 +msgid "Pages" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:51 +msgid "File Size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:52 +msgid "PDF Version" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:25 +msgid "" +"[options] file1.pdf file2.pdf ...\n" +"\n" +"Metadata will be used from the first PDF specified.\n" +"\n" +"Merges individual PDFs.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 +msgid "Merge Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:25 +msgid "" +"[options] file.pdf\n" +"\n" +"Reverse a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/reverse.py:54 +msgid "Reverse Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:24 +msgid "" +"file.pdf degrees\n" +"\n" +"Rotate pages of a PDF clockwise.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 +msgid "Rotate Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:25 +msgid "" +"\n" +"%prog %%name [options] file.pdf page_to_split_on ...\n" +"%prog %%name [options] file.pdf page_range_to_split_on ...\n" +"\t\n" +"Ex.\n" +"\t\n" +"%prog %%name file.pdf 6\n" +"%prog %%name file.pdf 6-12\n" +"%prog %%name file.pdf 6-12 8 10 9-20\n" +"\n" +"Split a PDF.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 +msgid "Split Options:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:31 +msgid "" +"The unit of measure. Default is inch. Choices are %s Note: This does not " +"override the unit for margins!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 +msgid "" +"The size of the paper. This size will be overridden when an output profile " +"is used. Default is letter. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:40 +msgid "" +"Custom size of the document. Use the form widthxheight EG. `123x321` to " +"specify the width and height. This overrides any specified paper-size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 +msgid "The orientation of the page. Default is portrait. Choices are %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 +msgid "Could not find pdftohtml, check it is in your PATH" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 +msgid "" +"Specify the character encoding of the output document. The default is cp1252." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 +msgid "" +"This RTF file has a feature calibre does not support. Convert it to HTML " +"first and then try it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 +msgid "" +"Specify the character encoding of the output document. The default is utf-8." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 +msgid "" +"Specify the compression level to use. Scale 1 - 10. 1 being the lowest " +"compression but the fastest and 10 being the highest compression but the " +"slowest." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 +msgid "" +"Run the text input through the markdown pre-processor. To learn more about " +"markdown see" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 +msgid "" +"Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " +"for compatibility with Mac OS 9 and earlier. For Mac OS X use 'unix'. " +"'system' will default to the newline type used by this OS." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 +msgid "" +"Specify the character encoding of the output document. The default is utf-8. " +"Note: This option is not honored by all formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 +msgid "" +"The maximum number of characters per line. This splits on the first space " +"before the specified value. If no space is found the line will be broken at " +"the space after and will exceed the specified value. Also, there is a " +"minimum of 25 characters. Use 0 to disable line splitting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 +msgid "" +"Force splitting on the max-line-length value when no space is present. Also " +"allows max-line-length to be below the minimum" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +msgid "Send file to storage card instead of main memory by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +msgid "Confirm before deleting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +msgid "Toolbar icon size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +msgid "Show button labels in the toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +msgid "Main window geometry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +msgid "Notify when a new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +msgid "Use Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +msgid "Sort tags list by popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +msgid "Number of covers to show in the cover browsing mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +msgid "Defaults for conversion to LRF" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +msgid "Options for the LRF ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +msgid "Formats that are viewed using the internal viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +msgid "Columns to be displayed in the book list" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +msgid "Automatically launch content server on application startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +msgid "Oldest news kept in database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +msgid "Show system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +msgid "Upload downloaded news to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +msgid "Delete books from library after uploading to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +msgid "" +"Show the cover flow in a separate window instead of in the main calibre " +"window" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +msgid "Disable notifications from the system tray icon" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +msgid "Default action to perform when send to device button is clicked" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +msgid "Maximum number of waiting worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +msgid "Download social metadata (tags/rating/etc.)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +msgid "Limit max simultaneous jobs to number of CPUs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 +msgid "Copied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +msgid "Copy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +msgid "Copy to Clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +msgid "Choose Files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +msgid "Searching in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +msgid "Adding..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +msgid "Searching in all sub-directories..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +msgid "Path error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +msgid "The specified directory could not be processed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 +msgid "No books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +msgid "No books found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +msgid "Added" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +msgid "Adding failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +msgid "" +"The add books process seems to have hung. Try restarting calibre and adding " +"the books in smaller increments, until you find the problem book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +msgid "Duplicates found!" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +msgid "" +"Books with the same title as the following already exist in the database. " +"Add them anyway?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +msgid "Adding duplicates..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +msgid "Saving..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +msgid "Saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "Options specific to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 +msgid "Form" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 +msgid "Tags to exclude as genres (regex):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 +msgid "&Number of Colors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:96 +msgid "Disable &normalize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:97 +msgid "Keep &aspect ratio" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:98 +msgid "Disable &Sharpening" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:104 +msgid "Disable &Trimming" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:103 +msgid "&Wide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:99 +msgid "&Landscape" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:101 +msgid "&Right to left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:100 +msgid "Don't so&rt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:94 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:102 +msgid "De&speckle" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 +msgid "&Disable comic processing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 +msgid "&Output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:19 +msgid "Debug" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:21 +msgid "Debug the conversion process." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:51 +msgid "Choose debug folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:57 +msgid "Invalid debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug.py:58 +msgid "Failed to create debug directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:50 +msgid "" +"Choose a folder to put the debug output into. If you specify a folder, " +"calibre will place a lot of debug output into it. This will be useful in " +"understanding the conversion process and figuring out the correct values for " +"conversion parameters like Table of Contents and Chapter Detection." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 +msgid "..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:54 +msgid "" +"The debug process outputs the intermediate HTML generated at various stages " +"of the conversion process. This HTML can sometimes serve as a good starting " +"point for hand editing a conversion." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 +msgid "EPUB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 +msgid "Do not &split on page breaks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:43 +msgid "Split files &larger than:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:44 +msgid " KB" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 +msgid "No default &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 +msgid "FB2 Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 +msgid "Do not insert a &Table of Contents at the beginning of the book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 +msgid "FB2 Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 +msgid "&Inline TOC" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 +msgid "Font rescaling wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 +msgid "" +"

This wizard will help you choose an appropriate font size key for your " +"needs. Just enter the base font size of the input document and then enter an " +"input font size. The wizard will display what font size it will be mapped " +"to, by the font rescaling algorithm. You can adjust the algorithm by " +"adjusting the output base font size and font key below. When you find values " +"suitable for you, click OK.

\n" +"

By default, if the output base font size is zero and/or no font size key " +"is specified, calibre will use the values from the current Output Profile. " +"

\n" +"

See the User Manual " +"for a discussion of how font size rescaling works.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 +msgid "&Output document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:109 +msgid "&Base font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 +msgid "Font size &key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:122 +msgid " pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 +msgid "Use &default values" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 +msgid "&Input document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:111 +msgid "&Font size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:113 +msgid " will map to size: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:114 +msgid "0.0 pt" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:16 +msgid "Look & Feel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 +msgid "Control the look and feel of the output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 +msgid "&Disable font size rescaling" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "Base &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 +msgid "Wizard to help you choose an appropriate font size key" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +msgid "Line &height:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +msgid "Input character &encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +msgid "Remove &spacing between paragraphs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +msgid "Indent size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +msgid "" +"

When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +msgid " em" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +msgid "Insert &blank line" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +msgid "No text &justification" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +msgid "&Linearize tables" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +msgid "&Transliterate unicode characters to ASCII." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 +msgid "Extra &CSS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:19 +msgid "LRF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:116 +msgid "Enable &autorotation of wide images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:117 +msgid "&Wordspace:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:119 +msgid "Minimum para. &indent:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:121 +msgid "Render &tables as images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:122 +msgid "Text size multiplier for text in rendered tables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:123 +msgid "Add &header" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:124 +msgid "Header &separation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:126 +msgid "Header &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:127 +msgid "&Embed fonts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:128 +msgid "&Serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:129 +msgid "S&ans-serif font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:130 +msgid "&Monospaced font family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 +msgid "Metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:43 +msgid "" +"Set the metadata. The output file will contain as much of this metadata as " +"possible." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 +msgid "Choose cover for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 +msgid "Cannot read" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 +msgid "You do not have permission to read the file: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 +msgid "Error reading file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 +msgid "

There was an error reading from file:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 +msgid " is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +msgid "Book Cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:167 +msgid "Use cover from &source file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +msgid "Change &cover image:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 +msgid "Browse for an image to use as the cover of this book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +msgid "&Title: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +msgid "Change the title of this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +msgid "&Author(s): " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:174 +msgid "Author So&rt:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:175 +msgid "" +"Change the author(s) of this book. Multiple authors should be separated by a " +"comma" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +msgid "&Publisher: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +msgid "Ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +msgid "" +"Tags categorize the book. This is particularly useful while searching. " +"

They can be any words or phrases, separated by commas." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +msgid "&Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +msgid "List of known series. You can add new series." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 +msgid "Book " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:15 +msgid "MOBI Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:45 +msgid "&Title for Table of Contents:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:46 +msgid "Rescale images for &Palm devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:47 +msgid "Use author &sort for author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:48 +msgid "Disable compression of the file contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:49 +msgid "Do not add Table of Contents to book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup.py:35 +msgid "Page Setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:111 +msgid "&Output profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:112 +msgid "Profile description" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:113 +msgid "&Input profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:114 +msgid "Margins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:115 +msgid "&Left:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:117 +msgid "&Top:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:119 +msgid "&Right:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/page_setup_ui.py:121 +msgid "&Bottom:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:12 +msgid "PDB Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 +msgid "Treat each &line as a paragraph" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 +msgid "Assume print formatting" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:16 +msgid "PDB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:36 +msgid "&Format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:12 +msgid "PDF Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:39 +msgid "Line &Un-Wrapping Factor:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input_ui.py:40 +msgid "No &Images" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:17 +msgid "PDF Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:40 +msgid "&Paper Size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output_ui.py:41 +msgid "&Orientation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:14 +msgid "RB Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +msgid "Choose the format to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "Cannot build regex using the GUI builder without a book." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:83 +msgid "No formats available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "Open book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:99 +msgid "~" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:46 +msgid "Regex Builder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:47 +msgid "Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder_ui.py:48 +msgid "Regex:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 +msgid "Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 +msgid "Options specific to the input format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 +msgid "Dialog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 +msgid "&Input format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +msgid "Use &saved conversion settings for individual books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 +msgid "" +"Structure\n" +"Detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:19 +msgid "" +"Fine tune the detection of chapter headings and other document structure." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:34 +msgid "Detect chapters at (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:35 +msgid "Insert page breaks before (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:37 +msgid "Header regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:40 +msgid "Footer regular expression:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 +msgid "Invalid regular expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 +msgid "Invalid regular expression: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:38 +msgid "Invalid XPath" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:39 +msgid "The XPath expression %s is invalid." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:60 +msgid "Chapter &mark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:61 +msgid "Remove first &image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:62 +msgid "Insert &metadata as page at start of book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:63 +msgid "&Preprocess input file to possibly improve structure detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:64 +msgid "Remove F&ooter" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:65 +msgid "Remove H&eader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:16 +msgid "" +"Table of\n" +"Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:18 +msgid "Control the creation/conversion of the Table of Contents." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:29 +msgid "Level &1 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:30 +msgid "Level &2 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc.py:31 +msgid "Level &3 TOC (XPath expression):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:63 +msgid "Do not add &detected chapters to the Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:64 +msgid "Number of &links to add to Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:65 +msgid "Chapter &threshold" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:66 +msgid "&Force use of auto-generated Table of Contents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:67 +msgid "TOC &Filter:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:12 +msgid "TXT Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 +msgid "Process using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 +msgid "" +"

Markdown is a simple markup language for text files, that allows for " +"advanced formatting. To learn more visit markdown." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 +msgid "TXT Output" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 +msgid "&Line ending style:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 +msgid "&Maximum line length:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 +msgid "Force maximum line lenght" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:50 +msgid "TextLabel" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 +msgid "Use a wizard to help construct the XPath expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:68 +msgid "Match HTML &tags with tag name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:69 +msgid "*" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:70 +msgid "a" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:71 +msgid "br" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:72 +msgid "div" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:73 +msgid "h1" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:74 +msgid "h2" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:75 +msgid "h3" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:76 +msgid "h4" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:77 +msgid "h5" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:78 +msgid "h6" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:79 +msgid "hr" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:80 +msgid "span" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:81 +msgid "Having the &attribute:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:82 +msgid "With &value:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:83 +msgid "(A regular expression)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:84 +msgid "" +"

For example, to match all h2 tags that have class=\"chapter\", set tag to " +"h2, attribute to class and value to " +"chapter.

Leaving attribute blank will match any attribute and " +"leaving value blank will match any value. Setting tag to * will match any " +"tag.

To learn more advanced usage of XPath see the XPath Tutorial." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +msgid "No details available." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 +msgid "Device no longer connected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 +msgid "Get device information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 +msgid "Get list of books on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 +msgid "Send metadata to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 +msgid "Upload %d books to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 +msgid "Delete books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 +msgid "Download books from device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 +msgid "View book on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 +msgid "and delete from library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 +msgid "Set default send to device action" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 +msgid "Email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +msgid "Send to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +msgid "Send to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 +msgid "Send to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 +msgid "Send specific format to main memory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 +msgid "Send specific format to storage card A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 +msgid "Send specific format to storage card B" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 +msgid "selected to send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 +msgid "Choose format to send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 +msgid "No device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +msgid "Cannot send: No device is connected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 +msgid "No card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 +msgid "Cannot send: Device has no storage card" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 +msgid "E-book:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 +msgid "Attached, you will find the e-book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 +msgid "by" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 +msgid "in the %s format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +msgid "Sending email to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 +msgid "No suitable formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 +msgid "Auto convert the following books before sending via email?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 +msgid "" +"Could not email the following books as no suitable formats were found:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 +msgid "Failed to email books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 +msgid "Failed to email the following books:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 +msgid "Sent by email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 +msgid "News:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 +msgid "Attached is the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 +msgid "Sent news to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 +msgid "Auto convert the following books before uploading to the device?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 +msgid "Sending news to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 +msgid "Sending books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 +msgid "" +"Could not upload the following books to the device, as no suitable formats " +"were found. Convert the book(s) to a format supported by your device first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 +msgid "No space on device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 +msgid "" +"

Cannot upload books to device there is no more free space available " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 +msgid "Select available formats and their order for this device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 +msgid "Use sub directories" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 +msgid "Path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +msgid "&Previous" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 +msgid "&Next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 +msgid "Choose Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:34 +msgid "Set defaults for conversion of comics (CBR/CBZ files)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:49 +msgid "Set options for converting %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:92 +msgid "&Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:93 +msgid "&Author(s):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:95 +msgid "&Profile:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:170 +msgid "%(plugin_type)s %(plugins)s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:171 +msgid "plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 +msgid "Interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "Add/Save" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:197 +msgid "" +"Email\n" +"Delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "" +"Content\n" +"Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:198 +msgid "Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Auto send" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 +msgid "Email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:221 +msgid "Formats to email. The first matching format will be sent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:222 +msgid "" +"If checked, downloaded news will be automatically mailed
to this email " +"address (provided it is in one of the listed formats)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:296 +msgid "new email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +msgid "Failed to install command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +msgid "Command line tools installed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +msgid "Command line tools installed in" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +msgid "" +"If you move calibre.app, you have to re-install the command line tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +msgid "No valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +msgid "%s is not a valid plugin path" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +msgid "Choose plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +msgid "Plugin cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +msgid "The plugin: %s cannot be disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +msgid "Plugin not customizable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +msgid "Plugin: %s does not need customization" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +msgid "Customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +msgid "Cannot remove builtin plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +msgid "Error log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +msgid "Access log:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 +msgid "Failed to start content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 +msgid "Select location for books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +msgid "Invalid size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +msgid "The size %s is invalid. must be of the form widthxheight" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +msgid "Invalid database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +msgid "Invalid database location " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +msgid "
Must be a directory." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +msgid "Invalid database location.
Cannot write to " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +msgid "Checking database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +msgid "Failed to check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +msgid "Some inconsistencies found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +msgid "" +"The following books had formats listed in the database that are not actually " +"available. The entries for the formats have been removed. You should check " +"them manually. This can happen if you manipulate the files in the library " +"folder directly." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 +msgid "TabWidget" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:101 +msgid "" +"Here you can control how calibre will read metadata from the files you add " +"to it. calibre can either read metadata from the contents of the file, or " +"from the filename." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:102 +msgid "Read metadata only from &file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 +msgid "&Swap author firstname and lastname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Save to Disk button:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +msgid "Save &cover separately" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +msgid "Update &metadata in saved copies" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +msgid "Save metadata in &OPF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +msgid "Convert non-English characters to &English equivalents" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 +msgid "Format &dates as:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 +msgid "File &formats to save:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 +msgid "Replace space with &underscores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 +msgid "Change paths to &lowercase" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +msgid "&Saving books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +msgid "" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +msgid "Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +msgid "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +msgid "Browse for the new database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +msgid "Show notification when &new version is available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +msgid "Download &social metadata (tags/ratings/etc.) by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +msgid "Default network &timeout:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +msgid "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +msgid " seconds" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Choose &language (requires restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +msgid "Normal" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +msgid "High" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +msgid "Low" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +msgid "Job &priority:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +msgid "Preferred &output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +msgid "Preferred &input format order:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +msgid "Use &Roman numerals for series number" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +msgid "Enable system &tray icon (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +msgid "Show ¬ifications in system tray" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +msgid "Show cover &browser in a separate window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +msgid "Search as you type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +msgid "Automatically send downloaded &news to ebook reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +msgid "&Delete news from library when it is automatically sent to reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +msgid "&Number of covers to show in browse mode (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +msgid "Toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +msgid "Large" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +msgid "Medium" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +msgid "Small" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +msgid "&Button size in toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +msgid "Show &text in toolbar buttons" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +msgid "Select visible &columns in library view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +msgid "Use internal &viewer for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +msgid "Add an email address to which to send books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +msgid "&Add email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +msgid "Make &default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +msgid "&Remove email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +msgid "calibre can send your books to you (or your reader) by email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +msgid "&Maximum number of waiting worker processes (needs restart):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +msgid "&Check database integrity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +msgid "&Install command line tools" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +msgid "Open calibre &configuration directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +msgid "" +"calibre contains a network server that allows you to access your book " +"collection using a browser from anywhere in the world. Any changes to the " +"settings will only take effect after a server restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 +msgid "&Username:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 +msgid "&Password:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +msgid "" +"If you leave the password blank, anyone will be able to access your book " +"collection using the web interface." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +msgid "" +"The maximum size (widthxheight) for displayed covers. Larger covers are " +"resized. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +msgid "Max. &cover size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 +msgid "&Show password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +msgid "Max. &OPDS items per query:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +msgid "&Start Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +msgid "St&op Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +msgid "&Test Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +msgid "Run server &automatically on startup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +msgid "View &server logs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 +msgid "" +"

Remember to leave calibre running as the server only runs as long as " +"calibre is running.\n" +"

Stanza should see your calibre collection automatically. If not, try " +"adding the URL http://myhostname:8080 as a new catalog in the Stanza reader " +"on your iPhone. Here myhostname should be the fully qualified hostname or " +"the IP address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +msgid "" +"Here you can customize the behavior of Calibre by controlling what plugins " +"it uses." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +msgid "Enable/&Disable plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +msgid "&Customize plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +msgid "&Remove plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +msgid "Add new plugin" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +msgid "Plugin &file:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +msgid "&Add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +msgid "Downloading social metadata, please wait..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 +msgid "Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:50 +msgid "&Show this warning again" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/conversion_error_ui.py:41 +msgid "ERROR" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:58 +msgid "Author Sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:60 +msgid "ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +msgid "Finding metadata..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +msgid "Could not find metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +msgid "The metadata download seems to have stalled. Try again later." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +msgid "Warning" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +msgid "Could not fetch metadata from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +msgid "No metadata found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +msgid "" +"No metadata found, try adjusting the title and author or the ISBN key." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +msgid "Fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +msgid "" +"

calibre can find metadata for your books from two locations: Google " +"Books and isbndb.com.

To use isbndb.com you must sign up for a " +"free account and enter your access key " +"below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +msgid "&Access Key:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +msgid "Fetch" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +msgid "Matches" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +msgid "" +"Select the book that most closely matches your copy from the list below" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +msgid "Download &social metadata (tags/rating/etc.) for the selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 +msgid "Details of job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:44 +msgid "Active Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:45 +msgid "&Stop selected job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:46 +msgid "Show job &details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/jobs_ui.py:47 +msgid "Stop &all jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +msgid "Edit Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +msgid "Meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +msgid "A&utomatically set author sort" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +msgid "Author s&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +msgid "" +"Specify how the author(s) of this book should be sorted. For example Charles " +"Dickens should be sorted as Dickens, Charles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +msgid "&Rating:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +msgid "Rating of this book. 0-5 stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +msgid " stars" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "Add ta&gs: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +msgid "Open Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +msgid "&Remove tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +msgid "Comma separated list of tags to remove from the books. " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +msgid "Remove &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 +msgid "Not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 +msgid "Choose formats for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 +msgid "Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +msgid "No permission" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 +msgid "You do not have permission to read the following files:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 +msgid "No format selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 +msgid "Could not read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 +msgid "Could not read metadata from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 +msgid "Could not read cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 +msgid "Could not read cover from %s format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 +msgid "The cover in the %s format is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 +msgid "Abort the editing of all remaining books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +msgid "Downloading cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 +msgid "Cannot fetch cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 +msgid "Could not fetch cover.
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 +msgid "The download timed out." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 +msgid "Could not find cover for this book. Try specifying the ISBN first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 +msgid "Bad cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 +msgid "The cover is not a valid picture" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +msgid "There were errors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +msgid "There were errors downloading social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +msgid "Cannot fetch metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +msgid "You must specify at least one of ISBN, Title, Authors or Publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +msgid "Permission denied" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +msgid "Could not open %s. Is it being used by another program?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +msgid "Edit Meta Information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 +msgid "Swap the author and title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +msgid "Author S&ort: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 +msgid "" +"Automatically create the author sort entry based on the current author entry" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 +msgid "Remove unused series (Series that have no books)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +msgid "IS&BN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +msgid "Publishe&d:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +msgid "dd MMM yyyy" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +msgid "&Date:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +msgid "&Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +msgid "&Fetch metadata from server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +msgid "Available Formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 +msgid "Add a new format for this book to the database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 +msgid "Remove the selected formats for this book from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 +msgid "Set the cover for the book from the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +msgid "Update metadata from the metadata in the selected format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +msgid "Reset cover to default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 +msgid "Download &cover" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:56 +msgid "Password needed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress.py:53 +msgid "Aborting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:117 +msgid "Need username and password" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:118 +msgid "You must provide a username and/or password to use this news source." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169 +msgid "Created by: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:176 +msgid "Last downloaded: never" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:191 +msgid "%d days, %d hours and %d minutes ago" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:193 +msgid "Last downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:213 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:190 +msgid "Schedule news download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:216 +msgid "Add a custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:278 +msgid "Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:192 +msgid "Download all scheduled recipes at once" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:193 +msgid "Download &all scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:194 +msgid "blurb" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:195 +msgid "&Schedule for download:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206 +msgid "Every " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197 +msgid "day" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198 +msgid "Monday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199 +msgid "Tuesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200 +msgid "Wednesday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201 +msgid "Thursday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202 +msgid "Friday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203 +msgid "Saturday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204 +msgid "Sunday" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205 +msgid "at" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207 +msgid "" +"Interval at which to download this recipe. A value of zero means that the " +"recipe will be downloaded every hour." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263 +msgid " days" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209 +msgid "&Account" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213 +msgid "For the scheduling to work, you must leave calibre running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214 +msgid "&Schedule" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215 +msgid "Add &title as tag" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216 +msgid "&Extra tags:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217 +msgid "&Advanced" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218 +msgid "&Download now" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219 +msgid "" +"Delete downloaded news older than the specified number of days. Set to zero " +"to disable." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221 +msgid "Delete downloaded news older than " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:36 +msgid "contains" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:37 +msgid "The text to search for. It is interpreted as a regular expression." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:38 +msgid "" +"

Negate this match. That is, only return results that do not match " +"this query." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:39 +msgid "Negate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:88 +msgid "Advanced Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:89 +msgid "Find entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:90 +msgid "&All these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:91 +msgid "This exact &phrase:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:92 +msgid "&One or more of these words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:93 +msgid "But dont show entries that have..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:94 +msgid "Any of these &unwanted words:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:95 +msgid "" +"See the User Manual for more help" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 +msgid "Are your sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 +msgid "" +"The following tags are used by one or more books. Are you certain you want " +"to delete them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:123 +msgid "Tag Editor" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:124 +msgid "A&vailable tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:125 +msgid "" +"Delete tag from database. This will unapply the tag from all books and then " +"remove it from the database." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:127 +msgid "Apply tag to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:129 +msgid "A&pplied tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:130 +msgid "Unapply (remove) tag from current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:132 +msgid "&Add tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:133 +msgid "" +"If the tag you want is not in the available list, you can add it here. " +"Accepts a comma separated list of tags." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:134 +msgid "Add tag to available tags and apply it to current book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:50 +msgid "Test email settings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:51 +msgid "Send test mail from %s to:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +msgid "&Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:127 +msgid "No recipe selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:132 +msgid "The attached file: %s is a recipe to download %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:133 +msgid "Recipe for " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255 +msgid "Switch to Advanced mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:164 +msgid "Switch to Basic mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:174 +msgid "Feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:175 +msgid "The feed must have a title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:179 +msgid "Feed must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:180 +msgid "The feed %s must have a URL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:185 +msgid "Already exists" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:186 +msgid "This feed has already been added to the recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:227 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:236 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:286 +msgid "Invalid input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:287 +msgid "

Could not create recipe. Error:
%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:241 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:263 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:290 +msgid "Replace recipe?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:291 +msgid "A custom recipe named %s already exists. Do you want to replace it?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:257 +msgid "Pick the recipe to customize" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:277 +msgid "Choose a recipe file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:248 +msgid "Add custom news source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:249 +msgid "Available user recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:250 +msgid "Add/Update &recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:251 +msgid "&Remove recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:252 +msgid "&Share recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253 +msgid "Customize &builtin recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254 +msgid "&Load recipe from file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256 +msgid "" +"\n" +"

Create a basic news " +"recipe, by adding RSS feeds to it.
For most feeds, you will have to " +"use the \"Advanced mode\" to further customize the fetch " +"process.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260 +msgid "Recipe &title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261 +msgid "&Oldest article:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262 +msgid "The oldest article to download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264 +msgid "&Max. number of articles per feed:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:265 +msgid "Maximum number of articles to download per feed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266 +msgid "Feeds in recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268 +msgid "Remove feed from recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:271 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:274 +msgid "Add feed to recipe" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:272 +msgid "&Feed title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273 +msgid "Feed &URL:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:275 +msgid "&Add feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:276 +msgid "" +"For help with writing advanced news recipes, please visit User Recipes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:277 +msgid "Recipe source code (python)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +msgid "" +"\n" +"\n" +"

Set a regular expression " +"pattern to use when trying to guess ebook metadata from filenames.

\n" +"

A reference on the syntax " +"of regular expressions is available.

\n" +"

Use the Test functionality below to test your regular " +"expression on a few sample filenames. The group names for the various " +"metadata entries are documented in tooltips.

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +msgid "Regular &expression" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 +msgid "File &name:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +msgid "Test" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +msgid "Title:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 +msgid "Regular expression (?P<title>)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 +msgid "No match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +msgid "Authors:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 +msgid "Series:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 +msgid "Series index:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 +msgid "ISBN:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 +msgid "Regular expression (?P)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +msgid "Job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +msgid "Status" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +msgid "Progress" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 +msgid "Running time" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +msgid "There are %d running jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 +msgid "Unknown job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +msgid "There are %d waiting jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 +msgid "Cannot kill job" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 +msgid "Cannot kill jobs that communicate with the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 +msgid "Job has already run" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 +msgid "Unavailable" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 +msgid " - Jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 +msgid "Size (MB)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 +msgid "Date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 +msgid "Rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 +msgid "None" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +msgid "Book %s of %s." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 +msgid "Not allowed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 +msgid "" +"Dropping onto a device is not supported. First add the book to the calibre " +"library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +msgid "Format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 +msgid "Double click to edit me

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:47 +msgid "Configure Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:48 +msgid "Use white background" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:49 +msgid "Hyphenate" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/config_ui.py:50 +msgid "Changes will only take effect after a restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:70 +msgid " - LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +msgid "No matches for the search phrase %s were found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 +msgid "No matches found" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:128 +msgid "LRF Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:129 +msgid "Parsing LRF file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:130 +msgid "LRF Viewer toolbar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131 +msgid "Next Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132 +msgid "Previous Page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 +msgid "Back" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 +msgid "Forward" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:135 +msgid "Next match" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 +msgid "Open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:137 +msgid "Configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +msgid "Use the library located at the specified path." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +msgid "Start minimized to system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +msgid "Log debugging information to console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +msgid "Do not check for updates" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +msgid "If you are sure it is not running" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +msgid "Cannot Start " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +msgid "%s is already running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +msgid "may be running in the system tray, in the" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +msgid "upper right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +msgid "lower right region of the screen." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +msgid "try rebooting your computer." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +msgid "try deleting the file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 +msgid "calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +msgid "Advanced search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +msgid "Alt+S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 +msgid "&Search:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +msgid "" +"

Search the list of books by title, author, publisher, tags, comments, " +"etc.

Words separated by spaces are ANDed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 +msgid "Reset Quick Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +msgid "Sort by &popularity" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 +msgid "Add books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +msgid "A" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +msgid "Remove books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 +msgid "Del" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +msgid "Edit meta information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +msgid "E" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +msgid "Send to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 +msgid "Save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +msgid "S" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 +msgid "Fetch news" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +msgid "F" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +msgid "Convert E-books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +msgid "C" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 +msgid "View" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +msgid "V" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 +msgid "Open containing folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +msgid "Show book details" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +msgid "Books by same author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +msgid "Books in this series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +msgid "Books by this publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +msgid "Books with the same tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +msgid "Configure calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 +msgid "Ctrl+P" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:20 +msgid "" +"Redirect console output to a dialog window (both stdout and stderr). Useful " +"on windows where GUI apps do not have a output streams." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:59 +msgid "&Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:60 +msgid "&Quit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_window.py:85 +msgid "ERROR: Unhandled exception" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +msgid "Book has neither title nor ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +msgid "No matches found for this book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/search_box.py:71 +msgid "Search" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +msgid "Press a key..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +msgid "Already assigned" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +msgid "already assigned to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid " or " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +msgid "&Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +msgid "Customize shortcuts for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +msgid "Double click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +msgid "Frame" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +msgid "&Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +msgid "&Shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +msgid "Click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +msgid "Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +msgid "&Alternate shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 +msgid "Jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:158 +msgid "Click to see list of active jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to browse books by their covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 +msgid "Click to turn off Cover Browsing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +msgid "" +"

Browsing books by their covers is disabled.
Import of pictureflow " +"module failed:
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 +msgid "Click to browse books by tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +msgid "Publishers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:182 +msgid "Convert book %d of %d (%s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:202 +msgid "Could not convert some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:203 +msgid "" +"Could not convert %d of %d books, because no suitable source format was " +"found." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:120 +msgid "Queueing books for bulk conversion" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:181 +msgid "Queueing " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:237 +msgid "Fetch news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +msgid "Convert existing" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +msgid "" +"The following books have already been converted to %s format. Do you wish to " +"reconvert them?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:63 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:142 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:159 +msgid "Error communicating with device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:176 +msgid "&Restore" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +msgid "&Donate to support calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 +msgid "&Restart" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:222 +msgid "

For help see the: User Manual
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 +msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 +msgid "Edit metadata individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 +msgid "Edit metadata in bulk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 +msgid "Download metadata and covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:252 +msgid "Download only metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:253 +msgid "Download only covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:254 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 +msgid "Add books from a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 +msgid "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 +msgid "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 +msgid "Save to disk in a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +msgid "Save only %s format to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 +msgid "View specific format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 +msgid "Convert individually" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +msgid "Bulk convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 +msgid "Similar books..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 +msgid "Bad database location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 +msgid "Calibre Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +msgid "Choose a location for your ebook library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 +msgid "Browse by covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 +msgid "Device: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 +msgid " detected." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 +msgid "Connected " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 +msgid "Device database corrupted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 +msgid "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 +msgid "How many empty books?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 +msgid "How many empty books should be added?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 +msgid "Uploading books to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 +msgid "EPUB Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 +msgid "LRF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 +msgid "HTML Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 +msgid "LIT Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 +msgid "MOBI Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 +msgid "Text books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 +msgid "PDF Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 +msgid "Comics" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 +msgid "Archives" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +msgid "No book selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +msgid "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +msgid "Deleting books from device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +msgid "Cannot download metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +msgid "No books selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "covers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "Downloading %s for %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +msgid "Failed to download some metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +msgid "Failed to download metadata for the following:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +msgid "Cannot edit metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +msgid "Cannot save to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +msgid "Choose destination directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +msgid "Fetching news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +msgid " fetched." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +msgid "Cannot convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +msgid "Starting conversion of %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +msgid "Cannot view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +msgid "Cannot open folder" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +msgid "" +"You are attempting to open %d books. Opening too many books at once can be " +"slow and have a negative effect on the responsiveness of your computer. Once " +"started the process cannot be stopped until complete. Do you wish to " +"continue?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +msgid "%s has no available formats." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +msgid "Cannot configure" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +msgid "Cannot configure while there are running jobs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +msgid "No detailed info available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +msgid "No detailed information is available for books on the device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +msgid "Error talking to device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +msgid "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +msgid "Conversion Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +msgid "" +"

Could not convert: %s

It is a DRMed book. You must " +"first remove the DRM using third party tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +msgid "Failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +msgid "Invalid library location" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +msgid "Could not access %s. Using %s as the library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +msgid "" +"is the result of the efforts of many volunteers from all over the world. If " +"you find it useful, please consider donating to support its development." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +msgid "There are active jobs. Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +msgid "" +" is communicating with the device!
\n" +" Quitting may cause corruption on the device.
\n" +" Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +msgid "WARNING: Active jobs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +msgid "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +msgid "" +"Latest version: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +msgid "Update available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +msgid "" +"%s has been updated to version %s. See the new features. Visit the download page?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "Edit bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 +msgid "New title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:52 +msgid "Export Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:54 +msgid "Saved Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Import Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:62 +msgid "Pickled Bookmarks (*.pickle)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:89 +msgid "Name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:56 +msgid "Bookmark Manager" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:57 +msgid "Actions" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:58 +msgid "Edit" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:59 +msgid "Delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:60 +msgid "Reset" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:61 +msgid "Export" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:62 +msgid "Import" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +msgid "Configure Ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +msgid "&Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +msgid "Se&rif family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 +msgid "&Sans family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +msgid "&Monospace family:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 +msgid "&Default font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +msgid " px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +msgid "Monospace &font size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +msgid "S&tandard font:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +msgid "Serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +msgid "Sans-serif" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +msgid "Monospace" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +msgid "Remember last used &window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +msgid "Maximum &view width:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +msgid "H&yphenate (break line in the middle of large words)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +msgid "" +"The default language to use for hyphenation rules. If the book does not " +"specify a language, this will be used." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +msgid "Default &language for hyphenation:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 +msgid "&User stylesheet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +msgid "&General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +msgid "&Keyboard shortcuts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 +msgid "Options to customize the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 +msgid "Remember last used window size" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 +msgid "" +"Set the user CSS stylesheet. This can be used to customize the look of all " +"books." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +msgid "Maximum width of the viewer window, in pixels." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +msgid "Hyphenate text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +msgid "Default language for hyphenation rules" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +msgid "Font options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +msgid "The serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +msgid "The sans-serif font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +msgid "The monospaced font family" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 +msgid "The standard font type" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +msgid "&Lookup in dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 +msgid "Scroll to the next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:15 +msgid "Scroll to the previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:18 +msgid "Scroll to the next section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:21 +msgid "Scroll to the previous section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:24 +msgid "Scroll to the bottom of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:27 +msgid "Scroll to the top of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:30 +msgid "Scroll to the end of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:33 +msgid "Scroll to the start of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 +msgid "Scroll down" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 +msgid "Scroll up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 +msgid "Scroll left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 +msgid "Scroll right" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 +msgid "Book format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 +msgid "Go to..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 +msgid "Position in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 +msgid "Go to a reference. To get reference numbers, use the reference mode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 +msgid "Search for text in book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 +msgid "Print Preview" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 +msgid "Choose ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 +msgid "Ebooks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +msgid "Add bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 +msgid "Enter title for bookmark:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 +msgid "No matches found for: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 +msgid "Loading flow..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 +msgid "Laying out %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 +msgid "Manage Bookmarks" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 +msgid "Loading ebook..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 +msgid "DRM Error" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 +msgid "

This book is protected by DRM" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 +msgid "Could not open ebook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 +msgid "Options to control the ebook viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 +msgid "" +"If specified, viewer window will try to come to the front when started." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +msgid "Print javascript alert and console messages to the console" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 +msgid "" +"%prog [options] file\n" +"\n" +"View an ebook.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 +msgid "Ebook Viewer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 +msgid "toolBar" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 +msgid "Next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 +msgid "Previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 +msgid "Font size larger" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 +msgid "Font size smaller" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 +msgid "Find next" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 +msgid "Copy to clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 +msgid "Reference Mode" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 +msgid "Bookmark" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 +msgid "Toggle full screen" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 +msgid "Print" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 +msgid "Print eBook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 +msgid "" +"Library\n" +"%d\n" +"books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 +msgid "" +"Reader\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 +msgid "" +"Card A\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 +msgid "" +"Card B\n" +"%s\n" +"available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 +msgid "Click to see the books available on your computer" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 +msgid "Click to see the books in the main memory of your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 +msgid "Click to see the books on storage card A in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 +msgid "Click to see the books on storage card B in your reader" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 +msgid "Change Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 +msgid "Upper Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 +msgid "Lower Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 +msgid "Swap Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 +msgid "Title Case" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 +msgid "" +"If you use the WordPlayer e-book app on your Android phone, you can access " +"your calibre book collection directly on the device. To do this you have to " +"turn on the content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 +msgid "" +"Remember to leave calibre running as the server only runs as long as calibre " +"is running." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 +msgid "" +"You have to add the URL http://myhostname:8080 as your calibre library in " +"WordPlayer. Here myhostname should be the fully qualified hostname or the IP " +"address of the computer calibre is running on." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 +msgid "Moving library..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 +msgid "Failed to move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 +msgid "Invalid database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 +msgid "" +"

An invalid library already exists at %s, delete it before trying to move " +"the existing library.
Error: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 +msgid "Could not move library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 +msgid "welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:42 +msgid "Welcome to calibre" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:43 +msgid "The one stop solution to all your e-book needs." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:51 +msgid "" +"Choose your book reader. This will set the conversion options to produce " +"books optimized for your device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:52 +msgid "&Manufacturers" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/device_ui.py:53 +msgid "&Devices" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:41 +msgid "WizardPage" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:48 +msgid "" +"

Congratulations!

You have successfully setup calibre. Press the %s " +"button to apply your settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 +msgid "" +"

Demo videos

Videos demonstrating the various features of calibre are " +"available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 +msgid "" +"

User Manual

A User Manual is also available online." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 +msgid "" +"

calibre can automatically send books by email to your Kindle. To do that " +"you have to setup email delivery below. The easiest way is to setup a free " +"gmail account and click the Use gmail " +"button below. You will also have to register your gmail address in your " +"Amazon account." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:45 +msgid "&Kindle email:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:52 +msgid "Choose your &language:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:53 +msgid "" +"Choose a location for your books. When you add books to calibre, they will " +"be copied here:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:54 +msgid "&Change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/library_ui.py:55 +msgid "" +"If you have an existing calibre library, it will be copied to the new " +"location. If a calibre library already exists at the new location, calibre " +"will switch to using it." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:32 +msgid "Using: %s:%s@%s:%s and %s encryption" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 +msgid "Sending..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 +msgid "Mail successfully sent" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:114 +msgid "Finish gmail setup" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:115 +msgid "" +"Dont forget to enter your gmail username and password. You can sign up for a " +"free gmail account at http://gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:130 +msgid "Bad configuration" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:124 +msgid "You must set the From email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:131 +msgid "You must set the username and password for the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:108 +msgid "Send email &from:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:109 +msgid "" +"

This is what will be present in the From: field of emails sent by " +"calibre.
Set it to your email address" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:110 +msgid "" +"

A mail server is useful if the service you are sending mail to only " +"accepts email from well know mail services." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:111 +msgid "Mail &Server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:112 +msgid "calibre can optionally use a server to send mail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:113 +msgid "&Hostname:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:114 +msgid "The hostname of your mail server. For e.g. smtp.gmail.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:115 +msgid "&Port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:116 +msgid "" +"The port your mail server listens for connections on. The default is 25" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:118 +msgid "Your username on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:120 +msgid "Your password on the mail server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:121 +msgid "&Show" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:122 +msgid "&Encryption:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:123 +msgid "" +"Use TLS encryption when connecting to the mail server. This is the most " +"common." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:124 +msgid "&TLS" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:125 +msgid "Use SSL encryption when connecting to the mail server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:126 +msgid "&SSL" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:127 +msgid "Use Gmail" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:128 +msgid "&Test email" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:44 +msgid "" +"

If you use the Stanza e-" +"book app on your iPhone/iTouch, you can access your calibre book collection " +"directly on the device. To do this you have to turn on the calibre content " +"server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:45 +msgid "Turn on the &content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:8 +msgid "Settings to control the calibre content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:12 +msgid "The port on which to listen. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:14 +msgid "The server timeout in seconds. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:16 +msgid "The max number of worker threads to use. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:18 +msgid "Set a password to restrict access. By default access is unrestricted." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:20 +msgid "Username for access. By default, it is: %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:24 +msgid "The maximum size for displayed covers. Default is %default." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/__init__.py:26 +msgid "" +"The maximum number of matches to return per OPDS query. This affects Stanza, " +"WordPlayer, etc. integration." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:121 +msgid "" +"Path to the calibre library. Default is to use the path stored in the " +"settings." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:200 +msgid "" +"%prog list [options]\n" +"\n" +"List the books available in the calibre database.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:208 +msgid "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:210 +msgid "" +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:212 +msgid "Sort results in ascending order" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:214 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search related documentation in the User Manual. Default is " +"to do no filtering." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:216 +msgid "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +msgid "The string used to separate fields. Default is a space." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 +msgid "" +"The prefix for all file paths. Default is the absolute path to the library " +"folder." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:221 +msgid "" +"The format in which to output the data. Available choices: %s. Defaults is " +"text." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:234 +msgid "Invalid fields. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:241 +msgid "Invalid sort field. Available fields:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:312 +msgid "" +"The following books were not added as they already exist in the database " +"(see --duplicates option):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:335 +msgid "" +"%prog add [options] file1 file2 file3 ...\n" +"\n" +"Add the specified files as books to the database. You can also specify " +"directories, see\n" +"the directory related options below.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:344 +msgid "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:346 +msgid "Process directories recursively" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:348 +msgid "" +"Add books to database even if they already exist. Comparison is done based " +"on book titles." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:358 +msgid "You must specify at least one file to add" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:374 +msgid "" +"%prog remove ids\n" +"\n" +"Remove the books identified by ids from the database. ids should be a comma " +"separated list of id numbers (you can get id numbers by using the list " +"command). For example, 23,34,57-85\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:389 +msgid "You must specify at least one book to remove" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 +msgid "" +"%prog add_format [options] id ebook_file\n" +"\n" +"Add the ebook in ebook_file to the available formats for the logical book " +"identified by id. You can get id by using the list command. If the format " +"already exists, it is replaced.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:423 +msgid "You must specify an id and an ebook file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:428 +msgid "ebook file must have an extension" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:436 +msgid "" +"\n" +"%prog remove_format [options] id fmt\n" +"\n" +"Remove the format fmt from the logical book identified by id. You can get id " +"by using the list command. fmt should be a file extension like LRF or TXT or " +"EPUB. If the logical book does not have fmt available, do nothing.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:453 +msgid "You must specify an id and a format" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:471 +msgid "" +"\n" +"%prog show_metadata [options] id\n" +"\n" +"Show the metadata stored in the calibre database for the book identified by " +"id.\n" +"id is an id number from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 +msgid "Print metadata in OPF form (XML)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:488 +msgid "You must specify an id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:501 +msgid "" +"\n" +"%prog set_metadata [options] id /path/to/metadata.opf\n" +"\n" +"Set the metadata stored in the calibre database for the book identified by " +"id\n" +"from the OPF file metadata.opf. id is an id number from the list command. " +"You\n" +"can get a quick feel for the OPF format by using the --as-opf switch to the\n" +"show_metadata command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:517 +msgid "You must specify an id and a metadata file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:537 +msgid "" +"%prog export [options] ids\n" +"\n" +"Export the books specified by ids (a comma separated list) to the " +"filesystem.\n" +"The export operation saves all formats of the book, its cover and metadata " +"(in\n" +"an opf file). You can get id numbers from the list command.\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 +msgid "Export all books in database, ignoring the list of ids." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 +msgid "Export books to the specified directory. Default is" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:549 +msgid "Export all books into a single directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 +msgid "Specifying this switch will turn this behavior off." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:579 +msgid "You must specify some ids or the %s option" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +msgid "" +"%%prog command [options] [arguments]\n" +"\n" +"%%prog is the command line interface to the calibre books database.\n" +"\n" +"command is one of:\n" +" %s\n" +"\n" +"For help on an individual command: %%prog command --help\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 +msgid "

Migrating old database to ebook library in %s

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 +msgid "Copying %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 +msgid "Compacting database" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 +msgid "Checking SQL integrity..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 +msgid "Checking for missing files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 +msgid "Checked id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 +msgid "The title" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 +msgid "The authors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 +msgid "The tags" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +msgid "The series" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +msgid "The series number. To get leading zeros use {series_index:0>3s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 +msgid "The rating" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 +msgid "The ISBN" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 +msgid "The calibre internal id" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 +msgid "Options to control saving to disk" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +msgid "" +"Normally, calibre will update the metadata in the saved files from what is " +"in the calibre library. Makes saving to disk slower." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +msgid "" +"Normally, calibre will write the metadata into a separate OPF file along " +"with the actual e-book files." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +msgid "" +"Normally, calibre will save the cover in a separate file along with the " +"actual e-book file(s)." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +msgid "" +"Comma separated list of formats to save for each book. By default all " +"available books are saved." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 +msgid "" +"The template to control the filename and directory structure of the saved " +"files. Default is \"%s\" which will save books into a per-author " +"subdirectory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 +msgid "" +"Normally, calibre will convert all non English characters into English " +"equivalents for the file names. WARNING: If you turn this off, you may " +"experience errors when saving, depending on how well the filesystem you are " +"saving to supports unicode." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 +msgid "" +"The format in which to display dates. %d - day, %b - month, %Y - year. " +"Default is: %b, %Y" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 +msgid "Convert paths to lowercase." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 +msgid "Replace whitespace with underscores." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 +msgid "Requested formats not available" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:378 +msgid "Password to access your calibre library. Username is " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 +msgid "" +"[options]\n" +"\n" +"Start the calibre content server." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 +msgid "%sUsage%s: %s\n" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +msgid "Created by " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 +msgid "" +"Whenever you pass arguments to %prog that have spaces in them, enclose the " +"arguments in quotation marks." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 +msgid "Path to the database in which books are stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 +msgid "Pattern to guess metadata from filenames" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 +msgid "Access key for isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 +msgid "Default timeout for network operations (seconds)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 +msgid "Path to directory in which your library of books is stored" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 +msgid "The language in which to display the user interface" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 +msgid "The default output format for ebook conversions." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 +msgid "Ordered list of formats to prefer for input." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 +msgid "Read metadata from files" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 +msgid "The priority of worker processes" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 +msgid "Waiting..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:51 +msgid "Stopped" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 +msgid "Finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +msgid "Working..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 +msgid "Brazilian Portuguese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +msgid "English (UK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +msgid "Simplified Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +msgid "Chinese (HK)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +msgid "Traditional Chinese" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +msgid "English" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +msgid "English (Australia)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 +msgid "English (New Zealand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 +msgid "English (Canada)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 +msgid "English (India)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +msgid "English (Thailand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +msgid "Dutch (BE)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 +msgid "URL must have the scheme sftp" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:57 +msgid "host must be of the form user@hostname" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:68 +msgid "Failed to negotiate SSH session: " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/sftp.py:71 +msgid "Failed to authenticate with server: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/smtp.py:234 +msgid "Control email delivery" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 +msgid "Unknown feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 +msgid "Untitled article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 +msgid "Download periodical content from the internet" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 +msgid "" +"Useful for recipe development. Forces max_articles_per_feed to 2 and " +"downloads at most 2 feeds." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 +msgid "Username for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 +msgid "Password for sites that require a login to access content." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 +msgid "Unknown News Source" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +msgid "The \"%s\" recipe needs a username and password." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +msgid "Download finished" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +msgid "Failed to download the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +msgid "Failed to download parts of the following articles:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +msgid " from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +msgid "\tFailed links:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +msgid "Could not fetch article. Run with -vv to see the reason" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +msgid "Fetching feeds..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +msgid "Got feeds from index page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +msgid "Trying to download cover..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +msgid "Starting download [%d thread(s)]..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +msgid "Feeds downloaded to %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +msgid "Could not download cover: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +msgid "Downloading cover from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +msgid "Untitled Article" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +msgid "Article downloaded: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +msgid "Article download failed: %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +msgid "Fetching feed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +msgid "You" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 +msgid "Scheduled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 +msgid "Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +msgid "" +"%prog URL\n" +"\n" +"Where URL is for example http://google.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 +msgid "Base directory into which URL is saved. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 +msgid "" +"Timeout in seconds to wait for a response from the server. Default: %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 +msgid "" +"Maximum number of levels to recurse i.e. depth of links to follow. Default " +"%default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +msgid "" +"The maximum number of files to download. This only applies to files from tags. Default is %default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +msgid "" +"Minimum interval in seconds between consecutive fetches. Default is %default " +"s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +msgid "" +"The character encoding for the websites you are trying to download. The " +"default is to try and guess the encoding." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +msgid "" +"Only links that match this regular expression will be followed. This option " +"can be specified multiple times, in which case as long as a link matches any " +"one regexp, it will be followed. By default all links are followed." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +msgid "" +"Any link that matches this regular expression will be ignored. This option " +"can be specified multiple times, in which case as long as any regexp matches " +"a link, it will be ignored.By default, no links are ignored. If both --" +"filter-regexp and --match-regexp are specified, then --filter-regexp is " +"applied first." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 +msgid "Do not download CSS stylesheets." +msgstr "" diff --git a/src/calibre/translations/nb.po b/src/calibre/translations/nb.po index 87f9463b43..e9d7f9ae47 100644 --- a/src/calibre/translations/nb.po +++ b/src/calibre/translations/nb.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-28 11:25+0000\n" -"Last-Translator: Øyvind Øritsland \n" +"PO-Revision-Date: 2010-01-31 21:38+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-29 04:52+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/nl.po b/src/calibre/translations/nl.po index 12a80d6efd..497e0f709a 100644 --- a/src/calibre/translations/nl.po +++ b/src/calibre/translations/nl.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-30 08:58+0000\n" -"Last-Translator: Marc van den Dikkenberg \n" +"PO-Revision-Date: 2010-01-31 21:36+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-31 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 @@ -5176,7 +5176,7 @@ msgstr "Uitegeve&n" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 msgid "dd MMM yyyy" -msgstr "dd MMM jjjj" +msgstr "dd MMM yyyy" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "&Date:" diff --git a/src/calibre/translations/pl.po b/src/calibre/translations/pl.po index cbb50247ab..ef4e16e052 100644 --- a/src/calibre/translations/pl.po +++ b/src/calibre/translations/pl.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-27 02:48+0000\n" -"Last-Translator: alcik \n" +"PO-Revision-Date: 2010-01-31 21:39+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-28 04:34+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index ede7ac2012..15300ef6a9 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: calibre 0.4.55\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-31 04:16+0000\n" -"Last-Translator: cyberbob \n" +"PO-Revision-Date: 2010-02-01 03:56+0000\n" +"Last-Translator: Boris Rybalkin \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-31 04:51+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -581,6 +581,8 @@ msgid "" "Comma separated list of metadata fields to turn into collections on the " "device. Possibilities include: " msgstr "" +"Разделенный запятыми список полей метаданных преобразовать в коллекции на " +"устройстве. Возможности включают: " #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 @@ -1437,6 +1439,8 @@ msgid "" "Average line length for line breaking if the HTML is from a previous partial " "conversion of a PDF file. Default is %default which disables this." msgstr "" +"Средняя длина строки для переноса строк, если HTML из предыдущей частичной " +"конвертации PDF файла. Значение по умолчанию %default." #: /home/kovid/work/calibre/src/calibre/ebooks/lit/from_any.py:47 msgid "Creating LIT file from EPUB..." @@ -1854,20 +1858,24 @@ msgid "" "The version of the title to be used for sorting. If unspecified, and the " "title is specified, it will be auto-generated from the title." msgstr "" +"Версия заголовка для сортировки. Если не указан, а заголовок указан, будет " +"авто-сгенерирован из заголовока." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:47 msgid "" "String to be used when sorting by author. If unspecified, and the author(s) " "are specified, it will be auto-generated from the author(s)." msgstr "" +"Срока для сортировки по автору. Если не указана, а авторы указаны, будет " +"авто-сгенерирована из списка авторов." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:57 msgid "Set the book category." -msgstr "" +msgstr "Установить категорию книги" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:74 msgid "Get the cover from the ebook and save it at as the specified file." -msgstr "" +msgstr "Получить обложку из книги и сохранить её в указанном файле." #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:77 msgid "" @@ -1900,7 +1908,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" -msgstr "" +msgstr "OPF создан в" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" @@ -1916,7 +1924,7 @@ msgstr "Загрузка метаданных" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "ratings" -msgstr "" +msgstr "рейтинги" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 msgid "tags" @@ -1924,7 +1932,7 @@ msgstr "теги" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 msgid "description/reviews" -msgstr "" +msgstr "описание/обзоры" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 msgid "Download %s from %s" @@ -1963,6 +1971,16 @@ msgid "" "isbndb.com.\n" "\n" msgstr "" +"\n" +"%prog [опции] ключ\n" +"\n" +"Получить метаданные для книг с isndb.com. Вы можете указать либо\n" +"ISBN номер или название и автора. Вы можете получить более одной книги,\n" +"если вы указываете название и автора.\n" +"\n" +"Ключ это ключ учетной записи (account key), сгенерированный при бесплатной " +"регистрации на isbndb.com.\n" +"\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:105 msgid "The ISBN ID of the book you want metadata for." @@ -2120,7 +2138,7 @@ msgstr "%s формат книг не поддерживается" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:54 msgid "HTML TOC generation options." -msgstr "" +msgstr "Варианты создания HTML содержания" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:108 msgid "Book Jacket" @@ -2138,16 +2156,18 @@ msgstr "Безымянный" #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:32 msgid "OPF/NCX/etc. generation options." -msgstr "" +msgstr "Варианты создания OPF/NCX/др." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:35 msgid "OPF version to generate. Default is %default." -msgstr "" +msgstr "OPF вариант для создания. По умолчанию %default." #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/writer.py:37 msgid "" "Generate an Adobe \"page-map\" file if pagination information is available." msgstr "" +"Создать Adobe \"page-map\" файл если доступна информация о разбиении на " +"страницы." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126 msgid "Footnotes" @@ -2164,6 +2184,8 @@ msgid "" "Normally calibre treats blank lines as paragraph markers. With this option " "it will assume that every line represents a paragraph instead." msgstr "" +"Обычно calible воспринимает пустые строки как разделители абзацев. С этой " +"установкой каждый перенос будет воспринят как новый абзац." #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:26 #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/input.py:27 @@ -2184,10 +2206,12 @@ msgid "" "Specify the character encoding of the output document. The default is " "cp1252. Note: This option is not honored by all formats." msgstr "" +"Укажите кодировку исходящего документа. Кодировка по умолчанию cp1252. " +"Примечание: Этот параметр учитывается не всеми форматами." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 msgid "Do not extract images from the document" -msgstr "" +msgstr "Не извлекать изображения из документа" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 msgid "" @@ -2198,7 +2222,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 msgid "Use the new PDF conversion engine." -msgstr "" +msgstr "Использовать новый PDF конвертер." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 msgid "" @@ -2211,6 +2235,14 @@ msgid "" "\n" "Manipulate a PDF.\n" msgstr "" +"команда ...\n" +"\n" +"доступные команды:\n" +"[%%commands]\n" +"\n" +"Используйте %prog команда --help для получения помощи по конкретной команде\n" +"\n" +"Управление PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:29 msgid "" @@ -2218,6 +2250,9 @@ msgid "" "\n" "Crop a PDF file.\n" msgstr "" +"[опции] файл.pdf\n" +"\n" +"Обрезать PDF файл.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:38 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:32 @@ -2234,25 +2269,28 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:41 msgid "Number of pixels to crop from the left most x (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой левой x (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:44 msgid "Number of pixels to crop from the left most y (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой левой y (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:47 msgid "Number of pixels to crop from the right most x (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой правой x (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:50 msgid "Number of pixels to crop from the right most y (default is %s)" -msgstr "" +msgstr "Количество точек для обрезания от самой правой y (по умолчанию: %s)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:53 msgid "" "A file generated by ghostscript which allows each page to be individually " "cropped `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> bounding`" msgstr "" +"Файл, созданный с помощью ghostscript, который позволит уникально обрезать " +"каждую страницу `gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox file.pdf 2> " +"bounding`" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:73 msgid "Crop Options:" @@ -2274,10 +2312,13 @@ msgid "" "\n" "Decrypt a PDF.\n" msgstr "" +"[опции] файл.pdf пароль\n" +"\n" +"Дешифровать PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/decrypt.py:60 msgid "Decrypt Options:" -msgstr "" +msgstr "Параметры дешифрования:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:25 msgid "" @@ -2285,10 +2326,13 @@ msgid "" "\n" "Encrypt a PDF.\n" msgstr "" +"[опции] файл.pdf пароль\n" +"\n" +"Шифровать PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/encrypt.py:54 msgid "Encrypt Options:" -msgstr "" +msgstr "Параметры шифрования:" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:21 msgid "" @@ -2296,6 +2340,9 @@ msgid "" "\n" "Get info about a PDF.\n" msgstr "" +"файл.pdf ...\n" +"\n" +"Получить информацию о PDF.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:46 msgid "Author" @@ -2329,6 +2376,11 @@ msgid "" "\n" "Merges individual PDFs.\n" msgstr "" +"[опции] файл1.pdf файл2.pdf ...\n" +"\n" +"Метаданные первого указанного файла будут использованы.\n" +"\n" +"Объединение отдельных PDF файлов.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/merge.py:56 msgid "Merge Options:" @@ -2351,6 +2403,9 @@ msgid "" "\n" "Rotate pages of a PDF clockwise.\n" msgstr "" +"файл.pdf градус\n" +"\n" +"Повернуть по часовой стрелке страницы PDF файла.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/rotate.py:53 msgid "Rotate Options:" @@ -2370,6 +2425,17 @@ msgid "" "\n" "Split a PDF.\n" msgstr "" +"\n" +"%prog %%name [опции] файл.pdf страница_по_которой_разбить ...\n" +"%prog %%name [опции] файл.pdf диапазон_страниц_по_которым_разбить ...\n" +"\t\n" +"Пример:\n" +"\t\n" +"%prog %%name файл.pdf 6\n" +"%prog %%name файл.pdf 6-12\n" +"%prog %%name файл.pdf 6-12 8 10 9-20\n" +"\n" +"Разбить PDF файл.\n" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:61 msgid "Split Options:" @@ -2380,6 +2446,8 @@ msgid "" "The unit of measure. Default is inch. Choices are %s Note: This does not " "override the unit for margins!" msgstr "" +"Единица измерения. По умолчанию дюйм. Варианты: %s Примечание: Данная " +"установка не переопределит единицу измерения для полей!" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:36 msgid "" @@ -2394,6 +2462,9 @@ msgid "" "Custom size of the document. Use the form widthxheight EG. `123x321` to " "specify the width and height. This overrides any specified paper-size." msgstr "" +"Произвольный размер документа. Используйте следующую форму, например: " +"`123x321` для указания ширины и высоты. Данная установка переопределяет " +"любой определенный формат бумаги." #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/output.py:45 msgid "The orientation of the page. Default is portrait. Choices are %s" @@ -2406,18 +2477,20 @@ msgstr "Не могу найти pdftohtml, проверьте наличе по #: /home/kovid/work/calibre/src/calibre/ebooks/pml/output.py:33 msgid "" "Specify the character encoding of the output document. The default is cp1252." -msgstr "" +msgstr "Укажите кодировку для создаваемого документа. По умолчанию cp1252." #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " "first and then try it." msgstr "" +"RTF файл имеет функциональность которую calibre не поддерживает. " +"Сконвертируйте сначала в HTML, а затем попробуйте еще раз." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" "Specify the character encoding of the output document. The default is utf-8." -msgstr "" +msgstr "Укажите кодировку для создаваемого документа. По умолчанию utf-8." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:27 msgid "" @@ -2425,6 +2498,8 @@ msgid "" "compression but the fastest and 10 being the highest compression but the " "slowest." msgstr "" +"Укажите степень сжатия. По шкале от 1 до 10, где 1 это минимальное сжатие на " +"высокой скорости, а 10 это максимальное сжатие на низкой скорости." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:32 msgid "" @@ -2434,7 +2509,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 msgid "Do not insert a Table of Contents into the output text." -msgstr "" +msgstr "Не вставлять Содержимое в резултирующий текст." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 msgid "" @@ -2442,12 +2517,17 @@ msgid "" "for compatibility with Mac OS 9 and earlier. For Mac OS X use 'unix'. " "'system' will default to the newline type used by this OS." msgstr "" +"Тип переноса строк. Варианты: %s. По умолчанию 'system'. Используйте " +"'old_mac' для совместимости с Mac OS 9 и раньше. Для Mac OS X используйте " +"'unix'. 'system' будет использовать тип переноса по умолчанию для этой ОС." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:30 msgid "" "Specify the character encoding of the output document. The default is utf-8. " "Note: This option is not honored by all formats." msgstr "" +"Укажите кодировку для результирующего документа. По умолчанию utf-8. " +"Примечание: Это параметр учитывают не все форматы." #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 msgid "" @@ -2555,7 +2635,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 msgid "Download social metadata (tags/rating/etc.)" -msgstr "" +msgstr "Скачать социальные метаданные (тэги/рейтинги/и т.д.)" #: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 msgid "Limit max simultaneous jobs to number of CPUs" @@ -2590,15 +2670,15 @@ msgstr "Добавление..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 msgid "Searching in all sub-directories..." -msgstr "" +msgstr "Ищем во всех под-каталогах ..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 msgid "Path error" -msgstr "" +msgstr "Ошибка пути" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 msgid "The specified directory could not be processed." -msgstr "" +msgstr "Специальных каталог не может быть обработан." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 @@ -2615,13 +2695,15 @@ msgstr "Добавлена" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 msgid "Adding failed" -msgstr "" +msgstr "Ошибка при добавлении" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" +"Добавление книг видимо зависло. Попробуйте перезапустить calibre и добавить " +"книги меньшими порциями до тех пор пока не найдете проблемную книгу." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 msgid "Duplicates found!" @@ -2632,10 +2714,11 @@ msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" +"Книги со следующими названиями уже имеются в базе. Все равно добавить их?" #: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Adding duplicates..." -msgstr "" +msgstr "Добавляем дубликаты ..." #: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 msgid "Saving..." @@ -2647,7 +2730,7 @@ msgstr "Сохранено" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "CVS/XML Параметры" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2665,7 +2748,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 msgid "Options specific to" -msgstr "" +msgstr "Параметры относящиеся к" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2714,11 +2797,11 @@ msgstr "Форма" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Поля для добавления к результату:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 msgid "E-book options" -msgstr "" +msgstr "Параметры книг" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 #: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 @@ -2729,7 +2812,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 msgid "Tags to exclude as genres (regex):" -msgstr "" +msgstr "Тэги для исключения жанров (регулярное выражение):" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 msgid "'Don't include this book' tag:" @@ -2753,15 +2836,18 @@ msgid "" "in a previous conversion (if they exist) instead of using the defaults " "specified in the Preferences" msgstr "" +"Для настроек, которые не могут быть указаны в этом диалоге, использовать " +"сохраненные во время предыдущей конвертиции (если таковые есть) вместо " +"значений по умолчанию указанных в основном окне настроек." #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 msgid "Bulk Convert" -msgstr "" +msgstr "Массовое конвертирование" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 msgid "Options specific to the output format." -msgstr "" +msgstr "Параметры для определенного формата вывода." #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 msgid "Comic Input" @@ -2773,7 +2859,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 msgid "input" -msgstr "" +msgstr "ввод" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 @@ -2827,7 +2913,7 @@ msgstr "Конт&раст" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:95 msgid "&Disable comic processing" -msgstr "" +msgstr "Отключить обработку комиксов" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 @@ -2862,6 +2948,11 @@ msgid "" "understanding the conversion process and figuring out the correct values for " "conversion parameters like Table of Contents and Chapter Detection." msgstr "" +"Выберите каталог для сохранения отладочной информации. Если вы укажете " +"каталог, calibre будет сохранять туда большой объем информации для отладки. " +"Она может быть использована для понимания процесса конвертации и для подбора " +"подходящих значений параметров конвертирования, например таких как " +"Содержание и Распознавание Глав." #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 @@ -2906,10 +2997,13 @@ msgid "" "of the conversion process. This HTML can sometimes serve as a good starting " "point for hand editing a conversion." msgstr "" +"Процесс отладки сохраняет промежуточный HTML созданный на различных стадиях " +"процесса конвертации. Этот HTML иногда может быть использован как хороший " +"материал для ручного редактирования конвертации." #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:15 msgid "EPUB Output" -msgstr "" +msgstr "EPUB Вывод" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" @@ -2925,15 +3019,15 @@ msgstr " кб" #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:45 msgid "No default &cover" -msgstr "" +msgstr "Без &обложки по умолчанию" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:12 msgid "FB2 Input" -msgstr "" +msgstr "FB2 Ввод" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:29 msgid "Do not insert a &Table of Contents at the beginning of the book." -msgstr "" +msgstr "Не вставлять &Содержание в начало книги." #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:14 msgid "FB2 Output" @@ -2948,7 +3042,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:99 msgid "Font rescaling wizard" -msgstr "" +msgstr "Мастер масштабирования шрифта" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:100 msgid "" @@ -2997,7 +3091,7 @@ msgstr " тчк." #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:107 msgid "Use &default values" -msgstr "" +msgstr "Использовать &значения по умолчанию" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:108 msgid "&Input document" @@ -3021,11 +3115,11 @@ msgstr "Вид и функции" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel.py:18 msgid "Control the look and feel of the output" -msgstr "" +msgstr "Изменить внешний вид документа" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 msgid "&Disable font size rescaling" -msgstr "" +msgstr "&Отключить масштабирование шрифта" #: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 msgid "Base &font size:" diff --git a/src/calibre/translations/sq.po b/src/calibre/translations/sq.po index 6ba3b78f1f..23f531e10d 100644 --- a/src/calibre/translations/sq.po +++ b/src/calibre/translations/sq.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:56+0000\n" +"PO-Revision-Date: 2010-01-31 21:38+0000\n" "Last-Translator: Besnik \n" "Language-Team: Albanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:49+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/sv.po b/src/calibre/translations/sv.po index 410b81ed4c..434750a750 100644 --- a/src/calibre/translations/sv.po +++ b/src/calibre/translations/sv.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 23:11+0000\n" -"Last-Translator: Merarom \n" +"PO-Revision-Date: 2010-01-31 21:37+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/tr.po b/src/calibre/translations/tr.po index 2e2482d62c..cac783dba1 100644 --- a/src/calibre/translations/tr.po +++ b/src/calibre/translations/tr.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-29 18:39+0000\n" -"Last-Translator: Bugra Gokalp Okcu \n" +"PO-Revision-Date: 2010-01-31 21:43+0000\n" +"Last-Translator: Kovid Goyal \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-30 04:39+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 diff --git a/src/calibre/translations/zh_TW.po b/src/calibre/translations/zh_TW.po index 925a80b5b0..087b2b356a 100644 --- a/src/calibre/translations/zh_TW.po +++ b/src/calibre/translations/zh_TW.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-26 11:10+0000\n" +"PO-Revision-Date: 2010-01-31 21:45+0000\n" "Last-Translator: Chien Cheng Wei \n" "Language-Team: Traditional Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-27 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-02-01 04:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 From 876c63aa2a5fa1621b88d0f2a6f6576a457959a6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Jan 2010 23:40:19 -0700 Subject: [PATCH 016/158] More catalog tweaks --- src/calibre/library/catalog.py | 210 +++++++++++++++++---------------- 1 file changed, 109 insertions(+), 101 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index b80ddabe6a..611f5a9606 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -765,6 +765,8 @@ class EPUB_MOBI(CatalogPlugin): # Methods def buildSources(self): self.fetchBooksByTitle() + if not self.booksByTitle: + return False self.fetchBooksByAuthor() self.generateHTMLDescriptions() self.generateHTMLByAuthor() @@ -784,6 +786,7 @@ class EPUB_MOBI(CatalogPlugin): self.generateNCXByDateAdded("Recently Added") self.generateNCXByGenre("Genres") self.writeNCX() + return True def cleanUp(self): pass @@ -1448,6 +1451,7 @@ class EPUB_MOBI(CatalogPlugin): def generateHTMLByTags(self): # Generate individual HTML files for each tag, e.g. Fiction, Nonfiction ... # Note that special tags - ~+*[] - have already been filtered from books[] + # There may be synonomous tags self.updateProgressFullStep("'Genres'") @@ -1456,99 +1460,100 @@ class EPUB_MOBI(CatalogPlugin): # Extract books matching filtered_tags genre_list = [] - for friendly_tag in self.genre_tags_dict: + for friendly_tag in sorted(self.genre_tags_dict): #print "\ngenerateHTMLByTags(): looking for books with friendly_tag '%s'" % friendly_tag - # tag_list => {'tag': '', 'books':[{}, {}, {}]} + # tag_list => { normalized_genre_tag : [{book},{},{}], + # normalized_genre_tag : [{book},{},{}] } + tag_list = {} - tag_list['tag'] = self.genre_tags_dict[friendly_tag] - tag_list['books'] = [] for book in self.booksByAuthor: # Scan each book for tag matching friendly_tag - #if 'tags' in book: print " evaluating %s with tags: %s" % (book['title'], book['tags']) if 'tags' in book and friendly_tag in book['tags']: - #print " adding '%s'" % (book['title']) this_book = {} this_book['author'] = book['author'] this_book['title'] = book['title'] this_book['author_sort'] = book['author_sort'] this_book['read'] = book['read'] this_book['id'] = book['id'] - tag_list['books'].append(this_book) - - if len(tag_list['books']): - genre_exists = False - book_not_in_genre = True - if not genre_list: - #print " genre_list empty, adding '%s'" % tag_list['tag'] - genre_list.append(tag_list) - else: - # Check for existing_genre - for genre in genre_list: - if genre['tag'] == tag_list['tag']: - genre_exists = True - # Check to see if the book is already in this list - for existing_book in genre['books']: - if this_book['title'] == existing_book['title']: - #print "%s already in %s" % (this_book['title'], genre) - book_not_in_genre = False - break - break - - if genre_exists: - if book_not_in_genre: - #print " adding %s to existing genre '%s'" % (this_book['title'],genre['tag']) - genre['books'].append(this_book) + normalized_tag = self.genre_tags_dict[friendly_tag] + genre_tag_list = [key for genre in genre_list for key in genre] + if normalized_tag in genre_tag_list: + for existing_genre in genre_list: + for key in existing_genre: + new_book = None + if key == normalized_tag: + for book in existing_genre[key]: + if book['title'] == this_book['title']: + new_book = False + break + else: + new_book = True + if new_book: + existing_genre[key].append(this_book) else: - #print " appending genre '%s'" % tag_list['tag'] + tag_list[normalized_tag] = [this_book] genre_list.append(tag_list) if self.opts.verbose: - self.opts.log.info(" Genre summary: %d active genres" % len(genre_list)) + self.opts.log.info(" Genre summary: %d active genre tags used in generating catalog with %d titles" % + (len(genre_list), len(self.booksByTitle))) + for genre in genre_list: - self.opts.log.info(" %s: %d titles" % (genre['tag'], len(genre['books']))) + for key in genre: + self.opts.log.info(" %s: %d titles" % (key, len(genre[key]))) # Write the results - # genre_list = [ [tag_list], [tag_list] ...] + # genre_list = [ {friendly_tag:[{book},{book}]}, {friendly_tag:[{book},{book}]}, ...] master_genre_list = [] - for (index, genre) in enumerate(genre_list): - # Create sorted_authors[0] = friendly, [1] = author_sort for NCX creation - authors = [] - for book in genre['books']: - authors.append((book['author'],book['author_sort'])) + for genre_tag_set in genre_list: + for (index, genre) in enumerate(genre_tag_set): + #print "genre: %s \t genre_tag_set[genre]: %s" % (genre, genre_tag_set[genre]) - # authors[] contains a list of all book authors, with multiple entries for multiple books by author - # Create unique_authors with a count of books per author as the third tuple element - books_by_current_author = 1 - current_author = authors[0] - unique_authors = [] - for (i,author) in enumerate(authors): - if author != current_author and i: - unique_authors.append((current_author[0], current_author[1], books_by_current_author)) - current_author = author - books_by_current_author = 1 - elif i==0 and len(authors) == 1: - # Allow for single-book lists - unique_authors.append((current_author[0], current_author[1], books_by_current_author)) - else: - books_by_current_author += 1 - ''' - # Extract the unique entries - unique_authors = [] - for author in authors: - if not author in unique_authors: - unique_authors.append(author) - ''' - # Write the genre book list as an article - titles_spanned = self.generateHTMLByGenre(genre['tag'], True if index==0 else False, genre['books'], - "%s/Genre_%s.html" % (self.contentDir, genre['tag'])) + # Create sorted_authors[0] = friendly, [1] = author_sort for NCX creation + authors = [] + for book in genre_tag_set[genre]: + authors.append((book['author'],book['author_sort'])) - tag_file = "content/Genre_%s.html" % genre['tag'] - master_genre_list.append({'tag':genre['tag'], - 'file':tag_file, - 'authors':unique_authors, - 'books':genre['books'], - 'titles_spanned':titles_spanned}) + # authors[] contains a list of all book authors, with multiple entries for multiple books by author + # Create unique_authors with a count of books per author as the third tuple element + books_by_current_author = 1 + current_author = authors[0] + unique_authors = [] + for (i,author) in enumerate(authors): + if author != current_author and i: + unique_authors.append((current_author[0], current_author[1], books_by_current_author)) + current_author = author + books_by_current_author = 1 + elif i==0 and len(authors) == 1: + # Allow for single-book lists + unique_authors.append((current_author[0], current_author[1], books_by_current_author)) + else: + books_by_current_author += 1 + ''' + # Extract the unique entries + unique_authors = [] + for author in authors: + if not author in unique_authors: + unique_authors.append(author) + ''' + # Write the genre book list as an article + titles_spanned = self.generateHTMLByGenre(genre, True if index==0 else False, + genre_tag_set[genre], + "%s/Genre_%s.html" % (self.contentDir, + genre)) + tag_file = "content/Genre_%s.html" % genre + master_genre_list.append({'tag':genre, + 'file':tag_file, + 'authors':unique_authors, + 'books':genre_tag_set[genre], + 'titles_spanned':titles_spanned}) + + if False and self.opts.verbose: + for genre in master_genre_list: + print "genre['tag']: %s" % genre['tag'] + for book in genre['books']: + print book['title'] self.genres = master_genre_list def generateThumbnails(self): @@ -2351,7 +2356,7 @@ class EPUB_MOBI(CatalogPlugin): else: yield tag - self.opts.log.info(u' %d total genre tags in database (exclude_genre: %s):' % \ + self.opts.log.info(u' %d available genre tags in database (exclude_genre: %s):' % \ (len(genre_tags_dict), self.opts.exclude_genre)) # Display friendly/normalized genres @@ -2395,19 +2400,15 @@ class EPUB_MOBI(CatalogPlugin): # Create an anchor from the tag aTag = Tag(soup, 'a') - #aTag['name'] = "Genre%s" % re.sub("\W","", genre) aTag['name'] = "Genre_%s" % genre body.insert(btc,aTag) btc += 1 - # Insert the genre title using the friendly name + # Find the first instance of friendly_tag matching genre # GwR *** optimize - for genre_tag in self.genre_tags_dict: - if self.genre_tags_dict[genre_tag] == genre: - friendly_tag = genre_tag + for friendly_tag in self.genre_tags_dict: + if self.genre_tags_dict[friendly_tag] == genre: break - - titleTag = body.find(attrs={'class':'title'}) titleTag.insert(0,NavigableString('%s' % escape(friendly_tag))) @@ -2735,8 +2736,8 @@ class EPUB_MOBI(CatalogPlugin): if opts.verbose: opts_dict = vars(opts) - log("%s(): Generating %s for %s in %s environment" % - (self.name,self.fmt,opts.output_profile, + log(u"%s(): Generating %s %sin %s environment" % + (self.name,self.fmt,'for %s ' % opts.output_profile if opts.output_profile else '', 'CLI' if opts.cli_environment else 'GUI')) if opts_dict['ids']: log(" Book count: %d" % len(opts_dict['ids'])) @@ -2752,32 +2753,39 @@ class EPUB_MOBI(CatalogPlugin): # Launch the Catalog builder if opts.verbose: - log.info("Begin generating catalog source") + log.info("Begin catalog source generation") catalog = self.CatalogBuilder(db, opts, self, report_progress=notification) catalog.createDirectoryStructure() catalog.copyResources() - catalog.buildSources() + catalog_source_built = catalog.buildSources() if opts.verbose: - log.info("Finished generating catalog source\n") + if catalog_source_built: + log.info("Finished catalog source generation\n") + else: + log.warn("No database hits with supplied criteria") - recommendations = [] + if catalog_source_built: + recommendations = [] - dp = getattr(opts, 'debug_pipeline', None) - if dp is not None: - recommendations.append(('debug_pipeline', dp, - OptionRecommendation.HIGH)) + dp = getattr(opts, 'debug_pipeline', None) + if dp is not None: + recommendations.append(('debug_pipeline', dp, + OptionRecommendation.HIGH)) - if opts.fmt == 'mobi' and opts.output_profile and opts.output_profile.startswith("kindle"): - recommendations.append(('output_profile', opts.output_profile, - OptionRecommendation.HIGH)) - recommendations.append(('no_inline_toc', True, - OptionRecommendation.HIGH)) + if opts.fmt == 'mobi' and opts.output_profile and opts.output_profile.startswith("kindle"): + recommendations.append(('output_profile', opts.output_profile, + OptionRecommendation.HIGH)) + recommendations.append(('no_inline_toc', True, + OptionRecommendation.HIGH)) - # Run ebook-convert - from calibre.ebooks.conversion.plumber import Plumber - plumber = Plumber(os.path.join(catalog.catalogPath, - opts.basename + '.opf'), path_to_output, log, report_progress=notification, - abort_after_input_dump=False) - plumber.merge_ui_recommendations(recommendations) + # Run ebook-convert + from calibre.ebooks.conversion.plumber import Plumber + plumber = Plumber(os.path.join(catalog.catalogPath, + opts.basename + '.opf'), path_to_output, log, report_progress=notification, + abort_after_input_dump=False) + plumber.merge_ui_recommendations(recommendations) - plumber.run() + plumber.run() + return 0 + else: + return 1 From 8bc1415d942cff2038f699aaee8aaadd21e17b12 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Jan 2010 23:46:57 -0700 Subject: [PATCH 017/158] Italian newspaper by Lorenzo Vigentini --- Changelog.yaml | 5 +- resources/recipes/ilsole24ore.recipe | 67 +++++++++++++++++++++ resources/recipes/lescienze.recipe | 89 ++++++++++++++++++++++++++++ resources/recipes/nin.recipe | 3 +- resources/recipes/nytimes.recipe | 2 +- resources/recipes/tuttosport.recipe | 66 +++++++++++++++++++++ 6 files changed, 228 insertions(+), 4 deletions(-) create mode 100644 resources/recipes/ilsole24ore.recipe create mode 100644 resources/recipes/lescienze.recipe create mode 100644 resources/recipes/tuttosport.recipe diff --git a/Changelog.yaml b/Changelog.yaml index 6ca5b37926..1ec61fa0b5 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -5,7 +5,7 @@ # Also, each release can have new and improved recipes. - version: 0.6.37 - date: 2010-01-31 + date: 2010-02-01 new features: - title: "E-book viewer: Add support for viewing SVG images" @@ -94,6 +94,9 @@ - title: NY Time Sunday Book Review author: Krittika Goyal + - title: Various Italian newspapers + author: Lorenzo Vigentini + improved recipes: - The Irish Times diff --git a/resources/recipes/ilsole24ore.recipe b/resources/recipes/ilsole24ore.recipe new file mode 100644 index 0000000000..8258bb563d --- /dev/null +++ b/resources/recipes/ilsole24ore.recipe @@ -0,0 +1,67 @@ +#!/usr/bin/env python +__license__ = 'GPL v3' +__author__ = 'Lorenzo Vigentini & Edwin van Maastrigt' +__copyright__ = '2009, Lorenzo Vigentini and Edwin van Maastrigt ' +__description__ = 'Financial news daily paper - v1.02 (30, January 2010)' + +''' +http://www.ilsole24ore.com/ +''' + +from calibre.web.feeds.news import BasicNewsRecipe + + +class ilsole(BasicNewsRecipe): + author = 'Lorenzo Vigentini & Edwin van Maastrigt' + description = 'Financial news daily paper' + + cover_url = 'http://www.ilsole24ore.com/img2009/header/t_logosole.gif' + title = u'il Sole 24 Ore ' + publisher = 'italiaNews' + category = 'News, finance, economy, politics' + + language = 'it' + timefmt = '[%a, %d %b, %Y]' + + oldest_article = 2 + max_articles_per_feed = 50 + use_embedded_content = False + + remove_javascript = True + no_stylesheets = True + + def get_article_url(self, article): + return article.get('id', article.get('guid', None)) + + def print_version(self, url): + link, sep, params = url.rpartition('?') + return link.replace('.shtml', '_PRN.shtml') + + keep_only_tags = [ + dict(name='div', attrs={'class':'txt'}) + ] + remove_tags = [dict(name='br')] + + feeds = [ + (u'Prima pagina', u'http://www.ilsole24ore.com/rss/primapagina.xml'), + (u'Norme e tributi', u'http://www.ilsole24ore.com/rss/norme-tributi.xml'), + (u'Finanza e mercati', u'http://www.ilsole24ore.com/rss/finanza-mercati.xml'), + (u'Economia e lavoro', u'http://www.ilsole24ore.com/rss/economia-lavoro.xml'), + (u'Italia', u'http://www.ilsole24ore.com/rss/italia.xml'), + (u'Mondo', u'http://www.ilsole24ore.com/rss/mondo.xml'), + (u'Tecnologia e business', u'http://www.ilsole24ore.com/rss/tecnologia-business.xml'), + (u'Cultura e tempo libero', u'http://www.ilsole24ore.com/rss/tempolibero-cultura.xml'), + (u'Sport', u'http://www.ilsole24ore.com/rss/sport.xml'), + (u'Professionisti 24', u'http://www.ilsole24ore.com/rss/prof_home.xml') + ] + + extra_css = ''' + html, body, table, tr, td, h1, h2, h3, h4, h5, h6, p, a, span, br, img {margin:0;padding:0;border:0;font-size:12px;font-family:Arial;} + .linkHighlight {color:#0292c6;} + .txt {border-bottom:1px solid #7c7c7c;padding-bottom:20px;text-align:justify;} + .txt p {line-height:18px;} + .txt span {line-height:22px;} + .title h3 {color:#7b7b7b;} + .title h4 {color:#08526e;font-size:26px;font-family:"Times New Roman";font-weight:normal;} + ''' + diff --git a/resources/recipes/lescienze.recipe b/resources/recipes/lescienze.recipe new file mode 100644 index 0000000000..13d7ea8ea2 --- /dev/null +++ b/resources/recipes/lescienze.recipe @@ -0,0 +1,89 @@ +#!/usr/bin/env python +__license__ = 'GPL v3' +__author__ = 'Lorenzo Vigentini' +__copyright__ = '2009, Lorenzo Vigentini ' +__version__ = 'v1.01' +__date__ = '10, January 2010' +__description__ = 'Monthly Italian edition of Scientific American' + +''' +http://lescienze.espresso.repubblica.it/ +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class leScienze(BasicNewsRecipe): + author = 'Lorenzo Vigentini' + description = 'Monthly Italian edition of Scientific American' + + cover_url = 'http://lescienze.espresso.repubblica.it/images/logo_lescienze.gif' + title = 'le Scienze' + publisher = 'Gruppo editoriale lEspresso' + category = 'Science, general interest' + + language = 'it' + encoding = 'cp1252' + timefmt = '[%a, %d %b, %Y]' + + oldest_article = 31 + max_articles_per_feed = 20 + use_embedded_content = False + recursion = 10 + + remove_javascript = True + no_stylesheets = True + + + keep_only_tags = [ + dict(name='div', attrs={'class':'bigbox'}) + ] + + remove_tags = [ + dict(name='span',attrs={'class':'linkindice'}), + dict(name='div',attrs={'class':'box-commenti'}), + dict(name='div',attrs={'id':['rssdiv','blocco']}) + ] + remove_tags_after = [dict(name='div',attrs={'class':'box-commenti'})] + + feeds = [ + (u'Antropologia', u'http://data.kataweb.it/rss/scienze/antropologia'), + (u'Archeologia', u'http://data.kataweb.it/rss/scienze/archeologia'), + (u'Arte e Musica', u'http://data.kataweb.it/rss/scienze/arte_e_musica'), + (u'Astrofisica', u'http://data.kataweb.it/rss/scienze/astrofisica'), + (u'Astronautica', u'http://data.kataweb.it/rss/scienze/astronautica'), + (u'Astronomia', u'http://data.kataweb.it/rss/scienze/astronomia_e_cosmologia'), + (u'Biologia', u'http://data.kataweb.it/rss/scienze/biologia'), + (u'Chimica', u'http://data.kataweb.it/rss/scienze/chimica'), + (u'Ecologia & ambiente', u'http://data.kataweb.it/rss/scienze/ecologia_e_ambiente'), + (u'Economia', u'http://data.kataweb.it/rss/scienze/Economia'), + (u'Fisica', u'http://data.kataweb.it/rss/scienze/Fisica'), + (u'Informatica', u'http://data.kataweb.it/rss/scienze/informatica_e_telecomunicazioni'), + (u'Ingegneria', u'http://data.kataweb.it/rss/scienze/ingegneria_e_tecnologia'), + (u'Matematica', u'http://data.kataweb.it/rss/scienze/Matematica'), + (u'Medicina', u'http://data.kataweb.it/rss/scienze/Medicina'), + (u'Paleontologia', u'http://data.kataweb.it/rss/scienze/Paleontologia'), + (u'Recensioni', u'http://data.kataweb.it/rss/scienze/Recensioni'), + (u'Psicologia', u'http://data.kataweb.it/rss/scienze/psicologie_e_scienze_cognitive'), + (u'Scienze della Terra', u'http://data.kataweb.it/rss/scienze/scienze_della_terra'), + (u'Scienze dello spazio', u'http://data.kataweb.it/rss/scienze/scienze_dello_spazio'), + (u'Scienze naturali', u'http://data.kataweb.it/rss/scienze/scienze_naturali'), + (u'Scienze sociali', u'http://data.kataweb.it/rss/scienze/scienze_sociali'), + (u'Statistica', u'http://data.kataweb.it/rss/scienze/statistica'), + (u'Storia della scienza', u'http://data.kataweb.it/rss/scienze/storia_della_scienza') + ] + + extra_css = ''' + h1 {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:20px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:18px;} + h2 {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:18px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:16px; } + h3 {color:#333333;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:16px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:14px;} + h4 {color:#333333; font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:16px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:14px; } + h5 {color:#333333; font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:12px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:14px; text-transform:uppercase;} + .occhiello {color:#666666;display:block;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:13px;font-size-adjust:none;font-stretch:normal;font-style:normal;font-variant:normal;font-weight:bold;line-height:15px;} + .titolo {font-weight:bold;} + .label {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:12px;font-size-adjust:none;font-stretch:normal;font-style:normal;font-variant:normal;font-weight:bold;height:15px;line-height:15px;text-transform:uppercase;} + .firma {color:#333333;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:12px; font-size-adjust:none; font-stretch:normal; font-style:italic; font-variant:normal; font-weight:bold; line-height:15px; text-decoration:none;} + .testo {font-family:"Trebuchet MS",Arial,Helvetica,sans-serif; font-size:10px;} + ''' + + + diff --git a/resources/recipes/nin.recipe b/resources/recipes/nin.recipe index 0872467d2f..a349f0e11f 100644 --- a/resources/recipes/nin.recipe +++ b/resources/recipes/nin.recipe @@ -72,9 +72,8 @@ class Nin(BasicNewsRecipe): section = self.tag_to_string(item) feedlink = self.PREFIX + item['href'] feedpage = self.index_to_soup(feedlink) - self.report_progress(0, _('Fetching feed')+' %s...'%(section)) + self.report_progress(0, _('Fetching feed')+' %s...'%(section)) inarts = [] - count2 = 0 for art in feedpage.findAll('span',attrs={'class':'artTitle'}): alink = art.parent url = self.PREFIX + alink['href'] diff --git a/resources/recipes/nytimes.recipe b/resources/recipes/nytimes.recipe index 8b9283a0af..32e5a4825e 100644 --- a/resources/recipes/nytimes.recipe +++ b/resources/recipes/nytimes.recipe @@ -5,7 +5,7 @@ __copyright__ = '2008, Kovid Goyal ' ''' nytimes.com ''' -import re +import re, time from calibre import entity_to_unicode from calibre.web.feeds.recipes import BasicNewsRecipe from calibre.ebooks.BeautifulSoup import BeautifulSoup, Tag, NavigableString, Comment diff --git a/resources/recipes/tuttosport.recipe b/resources/recipes/tuttosport.recipe new file mode 100644 index 0000000000..cc1f27e73a --- /dev/null +++ b/resources/recipes/tuttosport.recipe @@ -0,0 +1,66 @@ +#!/usr/bin/env python +__license__ = 'GPL v3' +__author__ = 'Lorenzo Vigentini' +__copyright__ = '2009, Lorenzo Vigentini ' +__version__ = 'v1.01' +__date__ = '30, January 2010' +__description__ = 'Sport daily news from Italy' + +'''www.tuttosport.com''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class tuttosport(BasicNewsRecipe): + author = 'Lorenzo Vigentini' + description = 'Sport daily news from Italy' + + cover_url = 'http://www.tuttosport.com/res/imgs/logo_TuttoSport.png' + title = 'Tuttosport' + publisher = 'Nuova Editoriale Sportiva S.r.l' + category = 'Sport News' + + language = 'it' + timefmt = '[%a, %d %b, %Y]' + + oldest_article = 2 + max_articles_per_feed = 20 + use_embedded_content = False + recursion = 10 + + remove_javascript = True + no_stylesheets = True + + def print_version(self,url): + segments = url.split('/') + printURL = '/'.join(segments[0:10]) + '?print' + return printURL + + keep_only_tags = [ + dict(name='h2', attrs={'class':'tit_Article'}), + dict(name='div', attrs={'class':['box_Img img_L ','txt_ArticleAbstract','txt_Article txtBox_cms']}) + ] + + feeds = [ + (u'Primo piano',u'http://www.tuttosport.com/rss/primo_piano.xml'), + (u'Cronanca',u'http://www.tuttosport.com/rss/Cronaca-205.xml'), + (u'Lettere al direttore',u'http://blog.tuttosport.com/direttore/feed'), + (u'Calcio',u'http://www.tuttosport.com/rss/Calcio-3.xml'), + (u'Speciale Derby',u'http://www.tuttosport.com/rss/Speciale-derby-310.xml'), + (u'Formula 1',u'hhttp://www.tuttosport.com/rss/Formula-1-7.xml'), + (u'Moto',u'hhttp://www.tuttosport.com/rss/Moto-8.xml'), + (u'Basket',u'http://www.tuttosport.com/rss/Basket-9.xml'), + (u'Altri Sport',u'http://www.tuttosport.com/rss/Altri-Sport-2.xml'), + (u'Tuttosport League',u'http://www.tuttosport.com/rss/Tuttosport-League-245.xml'), + (u'Scommesse',u'http://www.tuttosport.com/rss/Scommesse-286.xml') + ] + + extra_css = ''' + body {font-family: Arial, Verdana, sans-serif; margin-bottom: 3em;} + h1 {color:#9C3A0B;font-family:Arial,Helvetica,sans-serif; font-size:20px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:20px;} + h3 {color:#9C3A0B;font-family:Arial,Helvetica,sans-serif; font-size:15px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:15px;} + h2.tit_Article {color:#9C3A0B;margin: 15px 8px 0; margin-bottom: 1px; border-bottom: 3px solid;} + .txt_ArticleAbstract {color:#4080AE;clear: both; margin: 3px 8px;} + .txt_Article {clear: both; margin: 8px 8px 12px;} + .txt_Author {float: right;} + .txt_ArticleAuthor {clear: both; margin: 8px;} + ''' From e775ab10bbd5bba95e4acfc6155d705d1e62ea60 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 31 Jan 2010 23:47:30 -0700 Subject: [PATCH 018/158] version 0.6.37 --- src/calibre/constants.py | 2 +- src/calibre/ebooks/pdf/reflow.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/calibre/constants.py b/src/calibre/constants.py index 67278efb25..c06876f692 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -2,7 +2,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' __appname__ = 'calibre' -__version__ = '0.6.36' +__version__ = '0.6.37' __author__ = "Kovid Goyal " import re diff --git a/src/calibre/ebooks/pdf/reflow.py b/src/calibre/ebooks/pdf/reflow.py index 42c16225d2..9f98147032 100644 --- a/src/calibre/ebooks/pdf/reflow.py +++ b/src/calibre/ebooks/pdf/reflow.py @@ -439,7 +439,7 @@ class Page(object): # closer to the avg number of cols in the set, if equal use larger # region) # merge contiguous regions that can contain each other - absorbed = set([]) + '''absorbed = set([]) found = True while found: found = False @@ -454,6 +454,8 @@ class Page(object): break prev = None if i == 0 else i-1 next = j if self.regions[j] not in regions else None + ''' + pass From 09fb99ab7e41167e7373f9d0ee477a469e2f6255 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 1 Feb 2010 00:26:32 -0700 Subject: [PATCH 019/158] IGN:Tag release --- src/calibre/translations/calibre.pot | 812 ++++++++++++++------------- 1 file changed, 432 insertions(+), 380 deletions(-) diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 0f4361a2bf..d608c91722 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.6.36\n" -"POT-Creation-Date: 2010-01-25 10:46+MST\n" -"PO-Revision-Date: 2010-01-25 10:46+MST\n" +"Project-Id-Version: calibre 0.6.37\n" +"POT-Creation-Date: 2010-01-31 23:47+MST\n" +"PO-Revision-Date: 2010-01-31 23:47+MST\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -28,7 +28,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -48,7 +48,6 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -63,18 +62,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -97,10 +96,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -111,7 +110,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 @@ -584,7 +583,7 @@ msgid "There is insufficient free space on the storage card" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 @@ -704,8 +703,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -1557,7 +1556,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "" @@ -1582,74 +1581,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "" @@ -1920,7 +1919,9 @@ msgid "Specify the character encoding of the output document. The default is cp1 msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 -msgid "This RTF file has a feature calibre does not support. Convert it to HTML first and then try it." +msgid "" +"This RTF file has a feature calibre does not support. Convert it to HTML first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -1955,177 +1956,181 @@ msgstr "" msgid "Force splitting on the max-line-length value when no space is present. Also allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "Show the cover flow in a separate window instead of in the main calibre window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "The add books process seems to have hung. Try restarting calibre and adding the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "Books with the same title as the following already exist in the database. Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "" @@ -2165,7 +2170,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2205,32 +2210,50 @@ msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 msgid "'Don't include this book' tag:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Mark this book as read' tag:" msgstr "" #: -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "Additional note tag prefix:" msgstr "" +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "" + +#: +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the catalog" +msgstr "" + #: #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" @@ -2352,12 +2375,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2672,7 +2695,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2686,7 +2709,7 @@ msgid "Change the author(s) of this book. Multiple authors should be separated b msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" @@ -2697,21 +2720,21 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "Tags categorize the book. This is particularly useful while searching.

They can be any words or phrases, separated by commas." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -2833,7 +2856,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "" @@ -3122,7 +3145,7 @@ msgid "

For example, to match all h2 tags that have class=\"chapter\", set tag msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3370,7 +3393,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3488,126 +3511,126 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "The following books had formats listed in the database that are not actually available. The entries for the formats have been removed. You should check them manually. This can happen if you manipulate the files in the library folder directly." msgstr "" @@ -3687,272 +3710,276 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "&Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 -msgid "Default network &timeout:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 -msgid "Set the default timeout for network fetches (i.e. anytime we go out to the internet to get information)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 -msgid " seconds" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 -msgid "Choose &language (requires restart):" +msgid "Overwrite & author/title by default when fetching metadata" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 -msgid "Normal" +msgid "Default network &timeout:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 -msgid "High" +msgid "Set the default timeout for network fetches (i.e. anytime we go out to the internet to get information)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 -msgid "Low" +msgid " seconds" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 -msgid "Job &priority:" +msgid "Choose &language (requires restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 -msgid "Preferred &output format:" +msgid "Normal" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 -msgid "Preferred &input format order:" +msgid "High" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +msgid "Low" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +msgid "Job &priority:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 -msgid "Use &Roman numerals for series number" +msgid "Preferred &output format:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 -msgid "Enable system &tray icon (needs restart)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 -msgid "Show ¬ifications in system tray" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 -msgid "Show cover &browser in a separate window (needs restart)" +msgid "Preferred &input format order:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 -msgid "Search as you type" +msgid "Use &Roman numerals for series number" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 -msgid "Automatically send downloaded &news to ebook reader" +msgid "Enable system &tray icon (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 -msgid "&Delete news from library when it is automatically sent to reader" +msgid "Show ¬ifications in system tray" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 -msgid "&Number of covers to show in browse mode (needs restart):" +msgid "Show cover &browser in a separate window (needs restart)" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 -msgid "Toolbar" +msgid "Search as you type" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 -msgid "Large" +msgid "Automatically send downloaded &news to ebook reader" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 -msgid "Medium" +msgid "&Delete news from library when it is automatically sent to reader" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 -msgid "Small" +msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 -msgid "&Button size in toolbar" +msgid "Toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 -msgid "Show &text in toolbar buttons" +msgid "Large" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 -msgid "Select visible &columns in library view" +msgid "Medium" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +msgid "Small" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +msgid "&Button size in toolbar" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 -msgid "Use internal &viewer for:" +msgid "Show &text in toolbar buttons" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 -msgid "Add an email address to which to send books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 -msgid "&Add email" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 -msgid "Make &default" +msgid "Select visible &columns in library view" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 -msgid "&Remove email" +msgid "Use internal &viewer for:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 -msgid "calibre can send your books to you (or your reader) by email" +msgid "Add an email address to which to send books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 -msgid "&Maximum number of waiting worker processes (needs restart):" +msgid "&Add email" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 -msgid "&Check database integrity" +msgid "Make &default" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 -msgid "&Install command line tools" +msgid "&Remove email" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 -msgid "Open calibre &configuration directory" +msgid "calibre can send your books to you (or your reader) by email" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 -msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 -msgid "Debug &device detection" +msgid "&Check database integrity" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 -msgid "calibre contains a network server that allows you to access your book collection using a browser from anywhere in the world. Any changes to the settings will only take effect after a server restart." +msgid "&Install command line tools" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 -msgid "Server &port:" +msgid "Open calibre &configuration directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +msgid "calibre contains a network server that allows you to access your book collection using a browser from anywhere in the world. Any changes to the settings will only take effect after a server restart." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +msgid "Server &port:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "If you leave the password blank, anyone will be able to access your book collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "The maximum size (widthxheight) for displayed covers. Larger covers are resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as calibre is running.\n" "

Stanza should see your calibre collection automatically. If not, try adding the URL http://myhostname:8080 as a new catalog in the Stanza reader on your iPhone. Here myhostname should be the fully qualified hostname or the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "Here you can customize the behavior of Calibre by controlling what plugins it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4017,62 +4044,66 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "

calibre can find metadata for your books from two locations: Google Books and isbndb.com.

To use isbndb.com you must sign up for a free account and enter your access key below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4093,69 +4124,73 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4258,19 +4293,19 @@ msgstr "" msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5019,52 +5054,52 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5216,11 +5251,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5347,11 +5382,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "The following books have already been converted to %s format. Do you wish to reconvert them?" msgstr "" @@ -5432,7 +5467,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "" @@ -5487,7 +5522,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "" @@ -5579,249 +5614,249 @@ msgstr "" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "The selected books will be permanently deleted and the files removed from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "You are attempting to open %d books. Opening too many books at once can be slow and have a negative effect on the responsiveness of your computer. Once started the process cannot be stopped until complete. Do you wish to continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "There was a temporary error talking to the device. Please unplug and reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "

Could not convert: %s

It is a DRMed book. You must first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "is the result of the efforts of many volunteers from all over the world. If you find it useful, please consider donating to support its development." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "%s has been updated to version %s. See the new features. Visit the download page?" msgstr "" @@ -6566,7 +6601,7 @@ msgstr "" msgid "The maximum number of matches to return per OPDS query. This affects Stanza, WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a comma-separated list of fields.\n" "Available fields: %s.\n" @@ -6574,7 +6609,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -6582,28 +6617,28 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the specified directory. Useful if you are unsure at which stage of the conversion process a bug is occurring.\n" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from output. Case-insensitive.\n" "--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" @@ -6611,27 +6646,36 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 -msgid "" -"Tag indicating book has been read.\n" -"Default: '%default'\n" -"Applies to: ePub, MOBI output formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Specifies the output profile. In some cases, an output profile is required to optimize the catalog for the device. For example, 'kindle' or 'kindle_dx' creates a structured Table of Contents with Sections and Articles.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "Path to the calibre library. Default is to use the path stored in the settings." msgstr "" @@ -6848,7 +6892,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7064,7 +7108,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7194,75 +7238,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "" From b5fb7d6c42030529fe783797bf1951e1882c4b06 Mon Sep 17 00:00:00 2001 From: Starson17 Date: Mon, 1 Feb 2010 11:55:29 -0500 Subject: [PATCH 020/158] Make use filename metadata only apply only to manually added books, not recipes --- src/calibre/ebooks/metadata/meta.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index 60228f57dd..d013784c9a 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -84,11 +84,10 @@ def get_metadata(stream, stream_type='lrf', use_libprs_metadata=False): return opf mi = MetaInformation(None, None) - if prefs['read_file_metadata']: - mi = get_file_type_metadata(stream, stream_type) - name = os.path.basename(getattr(stream, 'name', '')) base = metadata_from_filename(name) + if ((name.find('calibre') != -1 and name.find('recipe') != -1) or prefs['read_file_metadata']): + mi = get_file_type_metadata(stream, stream_type) if base.title == os.path.splitext(name)[0] and base.authors is None: # Assume that there was no metadata in the file and the user set pattern # to match meta info from the file name did not match. From 7178234279653666696d57d97cee03fa33dbfb01 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 1 Feb 2010 21:05:01 -0700 Subject: [PATCH 021/158] Updated recipes for Discover Magazine, Metro Montreal --- resources/recipes/discover_magazine.recipe | 52 ++++++++----------- resources/recipes/metro_montreal.recipe | 29 ++++++----- .../gui2/device_drivers/configwidget.py | 2 +- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git a/resources/recipes/discover_magazine.recipe b/resources/recipes/discover_magazine.recipe index 0d2ee3ee74..cd4a078231 100644 --- a/resources/recipes/discover_magazine.recipe +++ b/resources/recipes/discover_magazine.recipe @@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' ''' -doscovermagazine.com +discovermagazine.com ''' from calibre.web.feeds.news import BasicNewsRecipe @@ -12,42 +12,36 @@ from calibre.web.feeds.news import BasicNewsRecipe class DiscoverMagazine(BasicNewsRecipe): title = u'Discover Magazine' - description = u'Science, Technology and the Future' - __author__ = 'Mike Diaz' + description = u'Science, Technology and the Future' + __author__ = 'Mike Diaz' language = 'en' oldest_article = 33 max_articles_per_feed = 20 no_stylesheets = True - remove_javascript = True + remove_javascript = True use_embedded_content = False encoding = 'utf-8' - extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' + + remove_tags = [dict(name='div', attrs={'id':['searchModule', 'mainMenu', 'tool-box']}), + dict(name='img', attrs={'src':'http://discovermagazine.com/onebyone.gif'})] - remove_tags_before = dict(id='articlePage') - - keep_only_tags = [dict(name='div', attrs={'id':'articlePage'})] - - remove_tags = [dict(attrs={'id':['buttons', 'tool-box', 'teaser', 'already-subscriber', 'teaser-suite', 'related-articles', 'relatedItem', 'box-popular', 'box-blogs', 'box-news', 'footer']}), - dict(attrs={'class':'popularNewsBox'}), - dict(name=['img', 'style', 'head'])] - - remove_tags_after = dict(id='articlePage') - + remove_tags_after = [dict(name='div', attrs={'class':'articlebody'})] + feeds = [ - (u'Technology', u'http://discovermagazine.com/topics/technology/rss.xml'), - (u'Health - Medicine', u'http://discovermagazine.com/topics/health-medicine/rss.xml'), - (u'Mind Brain', u'http://discovermagazine.com/topics/mind-brain/rss.xml'), - (u'Space', u'http://discovermagazine.com/topics/space/rss.xml'), - (u'Human Origins', u'http://discovermagazine.com/topics/human-origins/rss.xml'), - (u'Living World', u'http://discovermagazine.com/topics/living-world/rss.xml'), - (u'Environment', u'http://discovermagazine.com/topics/environment/rss.xml'), - (u'Physics & Math', u'http://discovermagazine.com/topics/physics-math/rss.xml'), - (u'Vital Signs', u'http://discovermagazine.com/columns/vital-signs/rss.xml'), - (u"20 Things you didn't know about...", u'http://discovermagazine.com/columns/20-things-you-didnt-know/rss.xml'), - (u'Fuzzy Math', u'http://discovermagazine.com/columns/fuzzy-math/rss.xml'), - (u'The Brain', u'http://discovermagazine.com/columns/the-brain/rss.xml'), - (u'Stupid Science Word of the Month', u'http://discovermagazine.com/columns/stupid-science-word-of-the-month/rss.xml'), + (u'Technology', u'http://discovermagazine.com/topics/technology/rss.xml'), + (u'Health - Medicine', u'http://discovermagazine.com/topics/health-medicine/rss.xml'), + (u'Mind Brain', u'http://discovermagazine.com/topics/mind-brain/rss.xml'), + (u'Space', u'http://discovermagazine.com/topics/space/rss.xml'), + (u'Human Origins', u'http://discovermagazine.com/topics/human-origins/rss.xml'), + (u'Living World', u'http://discovermagazine.com/topics/living-world/rss.xml'), + (u'Environment', u'http://discovermagazine.com/topics/environment/rss.xml'), + (u'Physics & Math', u'http://discovermagazine.com/topics/physics-math/rss.xml'), + (u'Vital Signs', u'http://discovermagazine.com/columns/vital-signs/rss.xml'), + (u"20 Things you didn't know about...", u'http://discovermagazine.com/columns/20-things-you-didnt-know/rss.xml'), + (u'Fuzzy Math', u'http://discovermagazine.com/columns/fuzzy-math/rss.xml'), + (u'The Brain', u'http://discovermagazine.com/columns/the-brain/rss.xml'), + (u'Stupid Science Word of the Month', u'http://discovermagazine.com/columns/stupid-science-word-of-the-month/rss.xml'), (u'Science Not Fiction', u'http://blogs.discovermagazine.com/sciencenotfiction/wp-rss.php') - ] + ] \ No newline at end of file diff --git a/resources/recipes/metro_montreal.recipe b/resources/recipes/metro_montreal.recipe index 094f00316f..8272c760cc 100644 --- a/resources/recipes/metro_montreal.recipe +++ b/resources/recipes/metro_montreal.recipe @@ -4,21 +4,26 @@ class Metro_Montreal(BasicNewsRecipe): title = u'M\xe9tro Montr\xe9al' __author__ = 'Jerry Clapperton' - description = u'Le quotidien le plus branch\xe9 sur le monde' - language = 'fr' + description = 'Le quotidien le plus branch sur le monde' + language = 'fr' - oldest_article = 7 + oldest_article = 7 max_articles_per_feed = 20 use_embedded_content = False - remove_javascript = True - no_stylesheets = True - encoding = 'utf-8' + remove_javascript = True + no_stylesheets = True + encoding = 'utf-8' + extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' - extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' - - remove_tags = [dict(attrs={'id':'buttons'}), dict(name=['img', 'style'])] - - feeds = [(u"L'info", u'http://journalmetro.com/linfo/rss'), (u'Monde', u'http://journalmetro.com/monde/rss'), (u'Culture', u'http://journalmetro.com/culture/rss'), (u'Sports', u'http://journalmetro.com/sports/rss'), (u'Paroles', u'http://journalmetro.com/paroles/rss')] + remove_tags = [dict(attrs={'id':'buttons'})] + + feeds = [ + (u"L'info", u'http://journalmetro.com/linfo/rss'), + (u'Monde', u'http://journalmetro.com/monde/rss'), + (u'Culture', u'http://journalmetro.com/culture/rss'), + (u'Sports', u'http://journalmetro.com/sports/rss'), + (u'Paroles', u'http://journalmetro.com/paroles/rss') + ] def print_version(self, url): - return url.replace('article', 'ArticlePrint') + '?language=fr' + return url.replace('article', 'ArticlePrint') + '?language=fr' \ No newline at end of file diff --git a/src/calibre/gui2/device_drivers/configwidget.py b/src/calibre/gui2/device_drivers/configwidget.py index 6eb6e1226d..d1cebcb81d 100644 --- a/src/calibre/gui2/device_drivers/configwidget.py +++ b/src/calibre/gui2/device_drivers/configwidget.py @@ -38,7 +38,7 @@ class ConfigWidget(QWidget, Ui_ConfigWidget): self.opt_read_metadata.setChecked(self.settings.read_metadata) else: self.opt_read_metadata.hide() - if extra_customization_message: + if extra_customization_message and settings.extra_customization: self.extra_customization_label.setText(extra_customization_message) self.opt_extra_customization.setText(settings.extra_customization) else: From 6e78824177e22cc2e2f8ffc69c6868753e188edb Mon Sep 17 00:00:00 2001 From: Translators <> Date: Tue, 2 Feb 2010 04:47:31 +0000 Subject: [PATCH 022/158] Launchpad automatic translations update. --- src/calibre/translations/fr.po | 801 ++++++++++++++++++--------------- src/calibre/translations/ru.po | 768 ++++++++++++++++--------------- 2 files changed, 846 insertions(+), 723 deletions(-) diff --git a/src/calibre/translations/fr.po b/src/calibre/translations/fr.po index 596b4ec6a7..ad30f548d5 100644 --- a/src/calibre/translations/fr.po +++ b/src/calibre/translations/fr.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.22\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 02:45+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-01 19:05+0000\n" +"Last-Translator: Vincent C. \n" "Language-Team: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-02-02 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -30,7 +30,7 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -50,7 +50,6 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +64,18 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +98,10 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,7 +112,7 @@ msgstr "Ne fait strictement rien" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 @@ -655,7 +654,7 @@ msgid "There is insufficient free space on the storage card" msgstr "Espace insuffisant sur la carte mémoire" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 @@ -818,8 +817,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "N'applique aucun traitement sur l'image" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Page" @@ -2078,7 +2077,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "Couverture" @@ -2109,74 +2108,74 @@ msgstr "Titre pour les tables des matières générées." msgid "Disable compression of the file contents." msgstr "Désactiver la compression du contenu du fichier." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Tous les articles" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Page de titre" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Tables des matières" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "Glossaire" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "Remerciements" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "Bibliographie" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "Marque de l'imprimeur" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "Dédicace" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "Epigraphe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "Avant-propos" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "Liste d'illustrations" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "Liste de Tables" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "Notes" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "Préface" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "Texte principal" @@ -2546,10 +2545,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Ce fichier RTF a une fonctionnalité non supportée par calibre. Le convertir " -"en HTML d'abord et puis essayer le." +"Ce fichier RTF comporte une fonctionnalité qui n'est pas supportée par " +"Calibre. Convertissez-le en HTML puis réessayez.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2621,85 +2622,85 @@ msgstr "" "n'espace n'est présent. Autorise aussi la valeur maximale de la longueur de " "ligne à être en dessous du minimum" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Par défaut, envoyer le fichier dans la carte mémoire à la place de la " "mémoire principale" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Confirmer avant la suppression" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Taille de la barre d'icone" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Affiche les libellés dans la barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Géométrie de l'écran principal" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Avertir lorsqu'une nouvelle version est disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Utiliser les chiffres romains pour les numéros de séries" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Trier la liste des étiquettes par popularité" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" "Nombre de couvertures à afficher dans le mode de navigation par couverture" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Valeurs par défaut pour la conversion vers LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Options pour l'afficheur d'ebook LFR" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formats qui sont affichés par l'afficheur interne" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Colonnes affichées dans la liste de livres" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" "Démarrer automatiquement le serveur de contenu au démarrage de l'application" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Anciennes informations conservées dans la base" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Afficher l'icône dans la zone de notification" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Envoyer les News téléchargées vers l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" "Supprimer les livres de la librairie après les avoir téléchargés dans " "l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2707,83 +2708,87 @@ msgstr "" "Afficher la navigation par couverture dans une fenêtre séparée au lieu de la " "fenêtre principale de calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Désactiver les alertes dans la zone de notification" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Action par défaut à réaliser quand le bouton 'envoyer au lecteur' est cliqué" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Nombre maximum de processus de travail en attente" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Télécharger les métadonnés sociales (étiquettes/classement/etc...)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Remplacer l'auteur et le titreavec de nouvelles metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "Limiter le nombre maximum de travaux simultanés au nombre de processeurs." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Copié" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Copier" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Copier dans le Presse-papiers" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Choisir les fichiers" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "Recherche dans" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "Ajout..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "Cherche dans tous les sous-répertoires..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "Chemin de l'erreur" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "Le chemin spécifié ne peut pas être traité." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Aucun livre" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "Aucun livre trouvé" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "Ajouté" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "L'ajout a échoué" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2792,11 +2797,11 @@ msgstr "" "redémarrer calibre et ajouter les livres avec un incrément plus petit, " "jusqu'à ce que vous trouviez le problème." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "Des doublons ont été détectés !" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2804,15 +2809,15 @@ msgstr "" "Des livres avec des titres identiques à ceux qui suivent existent déjà la " "base. Voulez-vous quand-même les ajouter ?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "Ajoute les dupliqués..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "Sauvegarde..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "Sauvegardé" @@ -2852,7 +2857,7 @@ msgid "output" msgstr "sortie" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2892,28 +2897,45 @@ msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" msgstr "Catalogue" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "Etiquettes pour exclure les genres (regex):" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 msgid "'Don't include this book' tag:" msgstr "Etiquette 'Ne pas inclure ce livre':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Mark this book as read' tag:" msgstr "Etiquette 'Marquer ce livre comme lu':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "Trier les chiffres comme du texte" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -3050,12 +3072,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3408,7 +3430,7 @@ msgid "Change the title of this book" msgstr "Modifie le titre du livre" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Auteurs : " @@ -3426,7 +3448,7 @@ msgstr "" "virgules." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Editeur : " @@ -3437,7 +3459,7 @@ msgid "Ta&gs: " msgstr "Ta&gs : " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3447,15 +3469,15 @@ msgstr "" "
Cela peut être n'importe quels mots, séparés par des virgules." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Séries :" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3577,7 +3599,7 @@ msgid "RB Output" msgstr "Sortie RB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "Choisir le format à afficher" @@ -3885,7 +3907,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Pas de détail disponible." @@ -4146,7 +4168,7 @@ msgid "My Books" msgstr "Mes Livres" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Générer le catalogue" @@ -4278,131 +4300,131 @@ msgstr "" msgid "new email address" msgstr "Nouvelle adresse email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Erreur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "L'installation des outils en ligne de commande a échouée." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Outils en ligne de commande installés." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Outils en ligne de commande installés dans" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Si vous déplacez calibre.app, vous devez réinstaller les outils en ligne de " "commande." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Pas de répertoire valide pour les plugins" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s n'est pas un répertoire valide pour les plugins" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Choisir le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Le plugin ne peut pas être désactivé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Le plugin %s ne peut pas être désactivé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Le plugin ne peut pas être personnalisé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Le plugin %s ne peut pas être personnalisé" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Personnaliser" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Impossible de supprimer les plugins natifs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " ne peut pas être retiré. C'est un plugin natif. Essayer plutôt de le " "désactiver" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Journal d'erreur:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Journal des accès:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "A échoué lors du démarrage du serveur de contenu" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Sélectionner l'emplacement pour les livres" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Taille invalide" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "La taille %s est invalide. Doit être au format largeurxhauteur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Chemin de la database invalide" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Chemin de la database invalide " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Doit être un répertoire." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Chemin de la database invalide.
Erreur en écriture " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Vérifier l'intégrité de la base de données" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "La vérification de l'intégrité de la base de données a échouée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Des incohérences ont été trouvées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4502,18 +4524,22 @@ msgid "" "Send to Device button. This setting can be overriden for individual devices " "by customizing the device interface plugins in Preferences->Plugins" msgstr "" +"Ici vous pouvez contrôler la façon dont Calibre sauvegardera vos ebooks " +"quand vous cliquez sur le bouton \"Envoyer au lecteur\". Ces paramètres " +"peuvent être outrepassés par votre lecteur en personnalisant l'interface de " +"gestion des pluggins des lecteurs dans Préférences->Plugins" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 msgid "Sending to &device" msgstr "Envoi vers l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Préférences" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4521,25 +4547,29 @@ msgstr "" "&Localisation des ebooks (Les ebooks sont stockés dans les répertoires triés " "par auteur et les métadonnées sont stockées dans le fichier metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Choisir un nouvel emplacement pour la base de données" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Envoyer une notification quand une nouvelle version est disponible." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" "Télécharger les métadonnées &sociales (étiquettes/classement/etc...) par " "défaut" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "Remplacer & auteur/titre par défaut en récupérant les métadonnées" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "&Timeout par défaut pour les connexions réseau :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4547,159 +4577,159 @@ msgstr "" "Indiquer le timeout par défaut pour les recherches réseau (c-à-d le temps " "utilisé pour aller rechercher l'information par internet)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " secondes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Choisir la &langue (nécessite un redémarrage):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Haute" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Basse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "&Priorité du travail:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Format de &sortie préféré:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Ordre préféré pour le format d'entrée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Utiliser les chiffres &romains pour les numéros de séries" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" "Ac&tiver l'affichage dans la zone de notification (redémarrage nécessaire)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Afficher les alertes dans la zone de ¬ification" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "Afficher la navigation par couverture dans une fenêtre séparée (redémarrage " "nécessaire)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Rechercher lors de la saisie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Envoyer automatiquement les i&nformations vers le lecteur d'ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "Supprimer les News de la librairie lorsque l'envoi est automatique vers " "l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "&Nombre de couvertures à afficher dans le mode navigation (nécessite un " "redémarrage):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Large" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Moyen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Petit" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "Taille des boutons dans la barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Afficher le &texte pour les boutons de la barre d'outils" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Sélectionner les &colonnes visibles dans la vue librairie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Utiliser l'afficheur interne pour:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Ajouter une adresse email où les livres seront envoyés" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Ajouter un email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Par &défaut" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&Supprimer un email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "calibre peut envoyer vos livres vers vous (ou votre lecteur) par email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "Nombre &maximum de processus de travail en attente (nécessite un " "redémarrage):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Vérifier l'intégrité de la base de données" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Installer les outils en ligne de commande" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Ouvrir le répertoire de &configuration de calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Limiter le nombre max de travaux simultanés au nombre de cœurs de " "processeurs disponibles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "Déboguer la &détection de l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4710,25 +4740,25 @@ msgstr "" "monde. Toutes modifications des paramètres ne prendra effet qu'après un " "redémarrage du serveur." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "&Port du serveur:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Nom d'&utilisateur:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "Mot de &passe :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4736,7 +4766,7 @@ msgstr "" "Si vous laisser le mot de passe à vide, tout le monde pourra accéder à votre " "collection de livres en utilisant une interface web." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4744,41 +4774,41 @@ msgstr "" "Taille maximale (largeurxhauteur) pour l'affichage des couvertures. Les " "couvertures plus larges sont redimensionnées. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Taille max. de la couverture:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Montrer le mot de passe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Nombre d'articles OPDS max. par requête:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "Démarrer le &Serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Arrêter le serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Tester le serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Lancer &automatiquement le serveur au démarrage" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Afficher les logs du &serveur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4795,7 +4825,7 @@ msgstr "" "Stanza de votre iPhone. Ici nomhote doit être le nom d'hôte complet ou " "l'adresse IP de l'ordinateur sur lequel calibre est démarré." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4803,27 +4833,27 @@ msgstr "" "Ici vous pouvez personnaliser le comportement de Calibre en choisissant les " "plugins que vous souhaitez utiliser." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Activer/Désactiver le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Personnaliser le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Supprimer le plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Ajouter un nouveau plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "&Fichier plugin:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Ajouter" @@ -4894,44 +4924,44 @@ msgstr "Triage Auteur" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Cherche les métadonnées..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Impossible de trouver les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Le téléchargement des métadonnées semble s'être arrêté. Essayer de nouveau " "plus tard." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Avertissement" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Impossible de récupérer les métadonnées de:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Aucune métadonnée trouvée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Aucune métadonnée trouvée, essayer en modifiant le titre et l'auteur ou la " "clé ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Récupérer des métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4944,31 +4974,35 @@ msgstr "" "href=\"http://www.isbndb.com\">compte gratuit et entrer votre clef " "d'accès ci-dessous." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Clef d'&accès" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Récupérer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Résultats correspondants" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Sélectionnez le livre qui correspond le mieux au votre dans la liste ci-" "dessous." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Télécharger les métadonnées &sociales (étiquettes/classement/etc...) pour le " "livre sélectionné" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "Remplacer &auteur/titre par auteur/titre de l'ebook sélectionné" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Détail du travail" @@ -4989,24 +5023,24 @@ msgstr "Afficher les &détails du travail" msgid "Stop &all jobs" msgstr "Arrêter tous les travaux" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Editer les informations de Métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Informations métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Effectuer un tri a&utomatique par auteur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Tri par auteur: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -5015,48 +5049,52 @@ msgstr "" "Définit comment l'auteur de ce livre doit être classé. Par exemple, Charles " "Dickens peut être classé comme Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Note :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Note de ce livre. de 0 à 5 étoiles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Aucune modification" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " étoiles" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Ajouter des étiquettes: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Ouvre l'éditeur de mots-clefs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Supprime des étiquettes :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Liste d'étiquettes séparées par des virgules à supprimer des livres. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Supprimer le &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "Intervertir le titre et l'auteur" @@ -5162,20 +5200,20 @@ msgid "There were errors downloading social metadata" msgstr "" "Il y a eu des erreurs lors du téléchargement des métadonnées sociales" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "Impossible de récupérer les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Vous devez spécifier au moins un ISBN, un titre, des auteurs ou un éditeur" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "Permission refusée" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Impossible d'ouvrir %s. Est-il en cours d'utilisation par un autre programme " @@ -6028,52 +6066,52 @@ msgstr "Ouvrir le livre" msgid "Configure" msgstr "Configurer" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Utiliser la librairie présente dans le répertoire spécifié." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Démarrer en mode minimisé dans la zone de notification." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Loggue les informations de débogage dans la console" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Ne pas vérifier les mises à jour" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Si vous êtes sûr qu'il n'est pas démarré" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Impossible de lancer " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s est déjà démarré." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "peut être démarré dans la zone de notification, dans la" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "région en haut et à droite de l'écran." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "région en bas et à droite de l'écran." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "Essayer de redémarrer l'ordinateur." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "Essayer de supprimer le fichier" @@ -6235,11 +6273,11 @@ msgstr "&Quitter" msgid "ERROR: Unhandled exception" msgstr "ERREUR: Exception non traitée" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Le livre n'a ni titre ni ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Aucune correspondance pour ce livre" @@ -6374,11 +6412,11 @@ msgstr "Mise en file d'attente " msgid "Fetch news from " msgstr "Récupérer des News de " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Conversion existante" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6473,7 +6511,7 @@ msgid "Save to disk in a single directory" msgstr "Sauvegarder sur le disque dans un seul répertoire" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "Sauvegarder seulement le format %s vers le disque" @@ -6529,7 +6567,7 @@ msgid "Calibre Library" msgstr "Librairie calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "Choisir un emplacement pour votre librairie d'ebook" @@ -6639,33 +6677,33 @@ msgstr "Archives" msgid "Supported books" msgstr "Livres supportés" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Impossible de lire les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Impossible de lire les métadonnées à partir de" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Impossible de supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "Aucun livre sélectionné" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Choisir les formats à supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Choisir les formats à ne pas supprimer" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6673,131 +6711,131 @@ msgstr "" "Les livres sélectionnés vont être supprimés définitivement et les " "fichiers seront supprimés de votre ordinateur. Etes-vous sûr ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Suppression des livres dans l'appareil" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Impossible de télécharger les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "Aucun livre sélectionné" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "Métadonnées sociales" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "couvertures" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Télécharge les livres %s sur %d" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Le téléchargement d'une partie des métadonnées a échoué" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Le téléchargement des métadonnées a échoué pour :" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Le téléchargement des métadonnées a échoué:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Impossible d'éditer les métadonnées" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Impossible de sauvegarder sur le disque" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Choisir le répertoire de destination" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Erreur pendant la sauvegarde" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Il y a eu une erreur lors de la sauvegarde." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Impossible de sauvegarder certains livres" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Cliquer le bouton afficher les détails pour voir lesquels." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Aucun livre sélectionné pour générer le catalogue pour" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Génère le catalogue %s..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 msgid "Catalog generated." msgstr "Catalogue généré." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 msgid "Export Catalog Directory" msgstr "Répertoire d'export du catalogue" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 msgid "Select destination for %s.%s" msgstr "Sélectionner la destination pour %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "Récupération des News de " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr " récupéré." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "Conversion impossible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "Démarrer la conversion de %d livre(s)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "Impossible de visualiser" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "Impossible d'ouvrir le répertoire" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "Plusieurs livres sélectionnés" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6809,32 +6847,32 @@ msgstr "" "réponses de l'ordinateur. Une fois démarré le processus ne peut pas être " "arrêté avant la fin. Voulez-vous continuer ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "%s n'a pas de format disponible." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "Configuration impossible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "Impossible de configurer pendant que des travaux sont en cours." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "Pas d'information détaillée disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "" "Pas d'information détaillée disponible pour les livres dans l'appareil." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "Erreur pendant la communication avec le lecteur électronique" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6843,12 +6881,12 @@ msgstr "" "lecteur électronique. Veuillez déconnecter et reconnecter le lecteur " "électronique et redémarrer." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "Erreur lors de la conversion" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6857,23 +6895,23 @@ msgstr "" "href=\"%s\">DRM. Vous devez d'abord enlever les DRM avec des outils " "tiers." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "Échoué" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "Emplacement de la librairie invalide" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "Impossible d'accéder à %s. Utilise %s comme librairie." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." @@ -6882,11 +6920,11 @@ msgstr "" "Si vous le trouvez utile, pensez à donner afin de supporter son " "développement." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Il y a des travaux actifs. Voulez-vous vraiment finir ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6897,11 +6935,11 @@ msgstr "" "l'appareil.
\n" " Êtes-vous sûr de vouloir quitter ?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "ATTENTION: Travaux actifs" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6909,7 +6947,7 @@ msgstr "" "continuera à tourner dans la zone de notification. Pour le fermer, choisir " "Quitter dans le menu contextuel de la zone de notification." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" @@ -6917,11 +6955,11 @@ msgstr "" "Dernière version: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "Mise à jour disponible" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7063,6 +7101,8 @@ msgstr "&Langue par défaut pour la césure:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" +"&Redimensionner les images plus grandes que la fenêtre du visualisateur " +"(nécessite un redémarrage)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" @@ -7796,7 +7836,7 @@ msgstr "" "Le nombre maximum de correspondances retournées par une requête OPDS. Ceci " "affecte l'intégration dans Stanza, Wordplayer,etc..." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7805,7 +7845,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7813,14 +7853,17 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Titre du catalogue généré utilisé comme titre dans les métadonnées.\n" +"Par défaut : '%default'\n" +"Applicable pour les formats de sortie ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7829,14 +7872,17 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Expression régulière décrivant les étiquettes à exclure comme genres.\n" +"Par défaut: '%default' exclue les étiquettes entre crochets, ex. '[]'\n" +"Applicable pour les formats de sortie ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7845,21 +7891,23 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 -msgid "" -"Tag indicating book has been read.\n" -"Default: '%default'\n" -"Applies to: ePub, MOBI output formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7869,6 +7917,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -8199,7 +8254,7 @@ msgstr "Affiche des informations détaillées. Utile pour le débogage" msgid "Error: You must specify a catalog output file" msgstr "Erreur: Vous devez spécifier un fichier de sortie pour le catalogue" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8410,6 +8465,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" +"Chemin vers le répertoire de la librairie à utiliser avec le serveur de " +"contenu" #: /home/kovid/work/calibre/src/calibre/utils/config.py:48 msgid "%sUsage%s: %s\n" @@ -8485,7 +8542,7 @@ msgstr "Arrêté" msgid "Finished" msgstr "Terminé" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "Traitement en cours..." @@ -8547,7 +8604,7 @@ msgstr "Anglais (Singapour)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Anglais (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8624,79 +8681,87 @@ msgstr "" msgid "Unknown News Source" msgstr "Source de News inconnue" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" "La recette \"%s\" a besoin d'un nom d'utilisateur et d'un mot de passe." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "Téléchargement effectué" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "Impossible de télécharger les articles suivants;" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "" "Impossible de télécharger certaines parties pour les articles suivants:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr " de " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "\tLiens qui ont échoués:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Impossible de récupérer l'article. Le lancer avec -w pour en connaitre la " "raison" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "Récupération des flux..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "Obtient les flux à partir de la page d'index" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "Essaie de télécharger la couverture..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "Commence le téléchargement [processus %d]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "Flux téléchargés de %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "Impossible de télécharger la couverture: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "Télécharge la couverture de %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Article sans titre" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "Article téléchargé : %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "Impossible de télécharger l'article: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "Récupération du flux" @@ -10780,6 +10845,13 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "Character encoding for input. Default is to auto detect." #~ msgstr "Encodage de caractère de l'entrée. Par défaut : auto-détection" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Ce fichier RTF a une fonctionnalité non supportée par calibre. Le convertir " +#~ "en HTML d'abord et puis essayer le." + #~ msgid "Default" #~ msgstr "Par défaut" @@ -10955,3 +11027,6 @@ msgstr "Ne pas télécharger les feuilles de style CSS." #~ msgid "E-book Options" #~ msgstr "Options E-book" + +#~ msgid "Tags to exclude as genres (regex):" +#~ msgstr "Etiquettes pour exclure les genres (regex):" diff --git a/src/calibre/translations/ru.po b/src/calibre/translations/ru.po index 15300ef6a9..df08383599 100644 --- a/src/calibre/translations/ru.po +++ b/src/calibre/translations/ru.po @@ -6,14 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.55\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 18:58+0000\n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" "PO-Revision-Date: 2010-02-01 03:56+0000\n" "Last-Translator: Boris Rybalkin \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-02-02 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Language: Russian\n" @@ -34,7 +34,7 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -54,7 +54,6 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -69,18 +68,18 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -103,10 +102,10 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -117,7 +116,7 @@ msgstr "Ничего не делает" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 @@ -654,7 +653,7 @@ msgid "There is insufficient free space on the storage card" msgstr "Не хватает свободного места на карте памяти" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 @@ -812,8 +811,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Не обрабатывать изображения" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Страница" @@ -2032,7 +2031,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "Обложка" @@ -2061,74 +2060,74 @@ msgstr "Заголовок для любых сгенерированных in-l msgid "Disable compression of the file contents." msgstr "Отказаться от сжатия содержимого файла." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Все статьи" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Титульная страница" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Содержание" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "Индекс" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "Глоссарий" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "Подтверждения" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "Библиография" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "эмблема издательства" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "Копирайт" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "Посвящение" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "Эпиграф" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "Предисловие" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "Список иллюстраций" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "Оглавление" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "Заметки" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "Введение" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "Основной текст" @@ -2482,10 +2481,9 @@ msgstr "Укажите кодировку для создаваемого док #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"RTF файл имеет функциональность которую calibre не поддерживает. " -"Сконвертируйте сначала в HTML, а затем попробуйте еще раз." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2543,161 +2541,165 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "По умолчанию, отправлять файл в карту памяти, вместо основной памяти" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Подтвердить перед удалением" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Размер иконок рабочей панели" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Показать название кнопок на рабочей панали" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Геометрия основного окна" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Сообщить, если доступна новая версия" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Использовать Римские цифры для нумерации" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Сортировать список эпилогов по популярности" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Количество обложек показываемых в режиме просмотра обложек" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "По умолчанию преобразование в LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Опции для просмотра электронной книги LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Форматы для просмотра во встроенной программе" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Показывать колонки в списке книг" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Автоматически запускать сервер конента при запуске приложения" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "В базе данных содержатся старые новости" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Показывать иконку в панели задач" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Загрузить в устройство закаченные новости" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Удалить книги из библиотеки после загрузки в устройство" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "Показать обложку в отдельном окне вместо основного окна calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Отключить уведомления от иконки в трее" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "Действие по умолчанию по нажатию кнопки \"отправить в устройство\"" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Скачать социальные метаданные (тэги/рейтинги/и т.д.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "Ограничить максимальное количество одновременных задач количеством " "процессоров CPU" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Скопирована" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Копировать" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Копирования в буфер обмена" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Выберите файлы" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "Поиск" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "Добавление..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "Ищем во всех под-каталогах ..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "Ошибка пути" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "Специальных каталог не может быть обработан." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Нет книг" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "Книги не найдены" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "Добавлена" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "Ошибка при добавлении" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2705,26 +2707,26 @@ msgstr "" "Добавление книг видимо зависло. Попробуйте перезапустить calibre и добавить " "книги меньшими порциями до тех пор пока не найдете проблемную книгу." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "Есть повторения!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" "Книги со следующими названиями уже имеются в базе. Все равно добавить их?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "Добавляем дубликаты ..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "Сохранение..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "Сохранено" @@ -2764,7 +2766,7 @@ msgid "output" msgstr "вывод" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2804,28 +2806,45 @@ msgid "E-book options" msgstr "Параметры книг" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "Тэги для исключения жанров (регулярное выражение):" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2961,12 +2980,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3301,7 +3320,7 @@ msgid "Change the title of this book" msgstr "Изменить заголовок книги" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Автор(ы) " @@ -3318,7 +3337,7 @@ msgstr "" "Измените Автора(ов) книги. Несколько авторов должны быть разделены запятой." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Издательство: " @@ -3329,7 +3348,7 @@ msgid "Ta&gs: " msgstr "Пометки: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3339,15 +3358,15 @@ msgstr "" "

Вы можете разделить слова и фразы запятыми." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "Серии:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3469,7 +3488,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "Выберете для просмотра формат" @@ -3762,7 +3781,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -4012,7 +4031,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -4140,128 +4159,128 @@ msgstr "" msgid "new email address" msgstr "новый email адрес" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Ошибка" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Неверный путь к плагинам" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s - неверный путь к плагинам" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Использовать плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Плагин не может быть выключен" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Плагин %s не может быть выключен" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Плагин не настраиваемый" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Плагин: %s не требует настройки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Не могу удалить встроеный плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " не может быть удален. Это встроенный плагин. Попробуйте отключить его." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Лог ошибок:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Лог доступа:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Сбой запуска контент-сервера" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Неверный размер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "Размер %s указан неверно. Должен быть задан в виде [ширина]x[высота]" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Неправильное расположение базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Неправильное расположение базы данных " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Должна быть дирректория." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Неправильное расположение базы данных.
Немогу записать " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Проверка целостности базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Не удалось проверить целостность базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4355,35 +4374,39 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Настройки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "&Расположение книг" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Просмотреть расположение новой базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Сообщить о выходе &новой версии." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "&Задержка сети по умолчанию:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4391,149 +4414,149 @@ msgstr "" "Установить задержку по умолчанию для сетевых вызовов (т.е. в любое время вы " "выходите в интернет для получения информации)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " секунд" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Выбрать &язык (необходим рестарт):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Обычный" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Высокий" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Низкий" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "&Приоритет задачи" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Использовать &Римские цифры для нумерации" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "использовать иконку в трее (необходим перезапуск)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Показывать уведомления в трее" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Показывать обложку в отдельном окне (нужен перезапуск)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Отправлять автоматически закаченные новости в устройство для чтения" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "Количество обложек показываемых в режиме просмотра (нужна перезагрузка " "calibre)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Панель инструментов" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Большой" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Средний" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Маленький" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Размер кнопок на панеле инструментов" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Показать надписи на кнопках панели инструментов" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Выбрать видимые &столбцы в просмотре библиотеки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Использовать внутренний вьювер для:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Добавить email адрес получателя" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "Добавить email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "По умолчанию" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "Удалить email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "calibre может отправить Ваши книги Вам (или Вашим читателям) email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Проверка целостности базы данных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4543,25 +4566,25 @@ msgstr "" "коллекции ваших книг из любой точки мира с помощью браузера. Любые изменения " "в настройках вступят в силу после перезапуска сервера." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "&Порт сервера:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Пользователь:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Пароль:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4569,7 +4592,7 @@ msgstr "" "Если вы не установили свой пароль, то кто угодно сможет получить доступ к " "вашим книгам через веб-интерфейс." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4577,41 +4600,41 @@ msgstr "" "Максимальный размер ([ширина]x[высота]) обложек при отображении. Более " "крупные обложки подгоняются по размеру. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Макс. размер обложки:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Показать пароль" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Запустить сервер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Ост&ановить сервер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Проверить сервер" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Запустить сервер авт&оматически после загрузки" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Просмотреть логи &сервера" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4622,34 +4645,34 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" "Здесь можно настроить поведение Calibre, указав какие плагины он использует." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Включить/Выключить плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Настроить плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Удалить плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Добавить новый плагин" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Файл плагина:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "Добавить" @@ -4714,41 +4737,41 @@ msgstr "Сортировка по Автору" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Поиск матаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Не могу найти матаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "Загрузка метаданных похоже остановилась. Попробуйте позже." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Предупреждение" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Не могу извлечь метаданные из:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Нет метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Нет метаданных, попробуйте откорректировать заглавие и автора или ISBN ключ." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Получение метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4760,27 +4783,31 @@ msgstr "" "href=\"http://www.isbndb.com\">бесплатный эккаунт и прописать полученный " "ключ ниже." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Пароль доступа:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Получить" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Совпадения" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Из списка выберете книгу, которая более соответствует вашей." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Рабочее уточнение" @@ -4801,24 +4828,24 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Редактировать мета информацию" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Мета информация" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Автоматически выставить сортировку по автору" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4827,47 +4854,51 @@ msgstr "" "Выставить, как автор(ы) этой книги будут отсортированы. Для примера Чарльз " "Дикенс будет сортироваться, как Дикенс, Чарлз." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "Оценка:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Оценка этой книги. 0-5 звезды" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " звезды" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Добавить теги: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Открыть редактор описания" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "Удалить тэги:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Запятая разделяет список описаний удаляемых из книги. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Удалить формат:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4970,19 +5001,19 @@ msgstr "Произошли ошибки" msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "Не могу доставить метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Нужно указаить ISBN, название, автора или издателя" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "Доступ запрещён" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5802,52 +5833,52 @@ msgstr "Открыть книгу" msgid "Configure" msgstr "Настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Использовать библиотеку по указанному пути." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Старт минимизированным в трей" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Выводить отладочную информацию на консоль" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Не проверять наличие обновлений" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s уже запущен." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "попробуйте перезагрузить ваш компьютер" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "попробуйте удалить файл" @@ -6006,11 +6037,11 @@ msgstr "&Выход" msgid "ERROR: Unhandled exception" msgstr "ОШИБКА: Необработанное исключение" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "У книги нет ни названия, ни ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Нет совпадений в этой книге" @@ -6143,11 +6174,11 @@ msgstr "" msgid "Fetch news from " msgstr "Выбрать новости из " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6239,7 +6270,7 @@ msgid "Save to disk in a single directory" msgstr "Сохранить на диск в одну директорию" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "Сохранять на диск только формат %s" @@ -6294,7 +6325,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "Выбрите расположение Вашей библиотеки электронных книг." @@ -6405,33 +6436,33 @@ msgstr "Архивы" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Сбой чтения метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "Нет выбранных книг" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6439,131 +6470,131 @@ msgstr "" "Выбранные книги будут навсегда удалены вместе с файлами с Вашего " "компьютера. Вы уверены?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Удаляются книги из устройства." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Не удалось загрузить метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "Нет Выбранных книг" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "обложек" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "метаданных" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Загрузка %s для %d книг(и)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Не удалось загрузить некоторые метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Не удалось загрузить метаданные:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Невозможно редактировать метаданные" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Невозможно сохранить на диск" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Выберете директорию получателя" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Ошибка при сохранении" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Произошла ошибка при сохранении." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Не удалось сохранить некоторые книги" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "Вызвать новость из " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr " загружено." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "Не преобразуется" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "Невозможно просмотреть" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "Не могу открыть папку" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "Выбраны несколько книг" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6571,31 +6602,31 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "%s неизвестный формат." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "Невозможно настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "Пока запущено задание, не могу настроить" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "Нет доступной подробной информации" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "Не доступна подробная информация книг на устройстве" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "Ошибка согласования устройства" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6603,34 +6634,34 @@ msgstr "" "Была временная ошибка общения с устройством. Пожалуста, переподключите " "устройство или перегрузите его." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "Ошибка преобразования" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "Неверное расположение библиотеки" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "Нет доступа к %s. Использование %s в качестве библиотеки." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." @@ -6638,22 +6669,22 @@ msgstr "" "является результато труда многих добровольцев по всему миру. Если Вы сочли " "его полезным, будьте добры пожертвовать на его развитие." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Имеется активное задание. Вы все равно хотите выйти?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "ПРЕДУПРЕЖДЕНИЕ: Активные задания" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6661,7 +6692,7 @@ msgstr "" "продолжит работать в трее. Для завершения работы выберитеQuit в " "контекстном меню трея." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" @@ -6669,11 +6700,11 @@ msgstr "" "Последняя версия: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "Доступно обновление" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7490,7 +7521,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7499,7 +7530,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7507,14 +7538,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7523,14 +7554,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7539,21 +7570,23 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 -msgid "" -"Tag indicating book has been read.\n" -"Default: '%default'\n" -"Applies to: ePub, MOBI output formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7563,6 +7596,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7874,7 +7914,7 @@ msgstr "Показать детальную информацию. Использ msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8126,7 +8166,7 @@ msgstr "" msgid "Finished" msgstr "Закончил" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -8261,75 +8301,83 @@ msgstr "" msgid "Unknown News Source" msgstr "Неизвестный новостной ресурс" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "Закачка завершена" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "Неудачная загрузка следующих статей:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "Неудачная загрузка частей следующих статей:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr " из " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "\tБитые ссылки:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Не может быть вызвана статья. Запустите с -w чтобы увидеть причину." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "Вызываются заготовки..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "Получить заготовки для оглавления" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "Попытка скачать обложку..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "Начало загрузки [%d поток(и)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "Заготовки закачиватся в %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "Невозможно скачать обложку: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "Скачивается обложка из %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Статья без названия" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "Статья скачена: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "Ошибка загрузки статьи: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "Доставляется материал" From 9bc0a9be43789a400e375b14f45f56d502a0021b Mon Sep 17 00:00:00 2001 From: GRiker Date: Tue, 2 Feb 2010 07:57:32 -0700 Subject: [PATCH 023/158] Rewrite numeric title sorting, pass
in comments, force empty author to 'Unknown' --- src/calibre/library/catalog.py | 157 +++++++++++++++++++++------------ 1 file changed, 99 insertions(+), 58 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 61b647f8ed..3082dc07b1 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -306,17 +306,19 @@ class EPUB_MOBI(CatalogPlugin): 456 => four hundred fifty-six 4:56 => four fifty-six ''' - + ORDINALS = ['zeroth','first','second','third','fourth','fifth','sixth','seventh','eighth','ninth'] lessThanTwenty = ["","one","two","three","four","five","six","seven","eight","nine", "ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen", "eighteen","nineteen"] tens = ["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"] hundreds = ["","one","two","three","four","five","six","seven","eight","nine"] - def __init__(self, number): + def __init__(self, number, verbose=False): self.number = number self.number_as_float = 0.0 self.text = '' + self.verbose = verbose + self.log = Log() self.numberTranslate() def stringFromInt(self, intToTranslate): @@ -324,7 +326,6 @@ class EPUB_MOBI(CatalogPlugin): # intToTranslate is a three-digit number tensComponentString = "" - hundredsComponent = intToTranslate - (intToTranslate % 100) tensComponent = intToTranslate % 100 @@ -336,8 +337,7 @@ class EPUB_MOBI(CatalogPlugin): # Build the tens component if tensComponent < 20: - if tensComponent > 0: - tensComponentString = self.lessThanTwenty[tensComponent] + tensComponentString = self.lessThanTwenty[tensComponent] else: tensPart = "" onesPart = "" @@ -369,9 +369,27 @@ class EPUB_MOBI(CatalogPlugin): hundredsString = "" thousandsString = "" resultString = "" + self.suffix = '' + + if self.verbose: self.log("numberTranslate(): %s" % self.number) + + # Special case ordinals + if re.search('[st|nd|rd|th]',self.number): + self.number = re.sub(',','',self.number) + ordinal_suffix = re.search('[\D]', self.number) + ordinal_number = re.sub('\D','',re.sub(',','',self.number)) + if self.verbose: self.log("Ordinal: %s" % ordinal_number) + self.number_as_float = ordinal_number + self.suffix = self.number[ordinal_suffix.start():] + if int(ordinal_number) > 9: + # Some typos (e.g., 'twentyth'), acceptable + self.text = '%s' % (EPUB_MOBI.NumberToText(ordinal_number).text) + else: + self.text = '%s' % (self.ORDINALS[int(ordinal_number)]) # Test for time - if re.search(':',self.number): + elif re.search(':',self.number): + if self.verbose: self.log("Time: %s" % self.number) self.number_as_float = re.sub(':','.',self.number) time_strings = self.number.split(":") hours = EPUB_MOBI.NumberToText(time_strings[0]).text @@ -380,11 +398,13 @@ class EPUB_MOBI(CatalogPlugin): # Test for % elif re.search('%', self.number): + if self.verbose: self.log("Percent: %s" % self.number) self.number_as_float = self.number.split('%')[0] self.text = EPUB_MOBI.NumberToText(self.number.replace('%',' percent')).text # Test for decimal elif re.search('\.',self.number): + if self.verbose: self.log("Decimal: %s" % self.number) self.number_as_float = self.number decimal_strings = self.number.split(".") left = EPUB_MOBI.NumberToText(decimal_strings[0]).text @@ -393,6 +413,7 @@ class EPUB_MOBI(CatalogPlugin): # Test for hypenated elif re.search('-', self.number): + if self.verbose: self.log("Hyphenated: %s" % self.number) self.number_as_float = self.number.split('-')[0] strings = self.number.split('-') if re.search('[0-9]+', strings[0]): @@ -403,49 +424,54 @@ class EPUB_MOBI(CatalogPlugin): right = EPUB_MOBI.NumberToText(strings[1]).text self.text = '%s-%s' % (left, right) - # Test for $xx,xxx - elif re.search('[$,]', self.number): - self.number_as_float = re.sub('[$,]','',self.number) - self.text = EPUB_MOBI.NumberToText(self.number_as_float).text - - # Test for comma - elif re.search(',', self.number): + # Test for only commas and numbers + elif re.search(',', self.number) and not re.search('[^0-9,]',self.number): + if self.verbose: self.log("Comma(s): %s" % self.number) self.number_as_float = re.sub(',','',self.number) self.text = EPUB_MOBI.NumberToText(self.number_as_float).text - # Test for hybrid e.g., 'K2' + # Test for hybrid e.g., 'K2, 2nd, 10@10' elif re.search('[\D]+', self.number): - result = [] - for char in self.number: - if re.search('[\d]+', char): - result.append(EPUB_MOBI.NumberToText(char).text) - else: - result.append(char) - self.text = ''.join(result) + if self.verbose: self.log("Hybrid: %s" % self.number) + # Split the token into number/text + number_position = re.search('\d',self.number).start() + text_position = re.search('\D',self.number).start() + if number_position < text_position: + number = self.number[:text_position] + text = self.number[text_position:] + self.text = '%s%s' % (EPUB_MOBI.NumberToText(number).text,text) + else: + text = self.number[:number_position] + number = self.number[number_position:] + self.text = '%s%s' % (text, EPUB_MOBI.NumberToText(number).text) else: + if self.verbose: self.log("Clean: %s" % self.number) try: self.float_as_number = float(self.number) number = int(self.number) except: return - if number > 1000000: + if number > 10**9: self.text = "%d out of range" % number return - if number == 1000000: - self.text = "one million" + if number == 10**9: + self.text = "one billion" else : - # Strip out the three-digit number groups - thousandsNumber = number/1000 - hundredsNumber = number - (thousandsNumber * 1000) + # Isolate the three-digit number groups + millionsNumber = number/10**6 + thousandsNumber = (number - (millionsNumber * 10**6))/10**3 + hundredsNumber = number - (millionsNumber * 10**6) - (thousandsNumber * 10**3) + if self.verbose: + print "Converting %s %s %s" % (millionsNumber, thousandsNumber, hundredsNumber) - # Convert the lower 3 numbers - hundredsNumber + # Convert hundredsNumber if hundredsNumber : hundredsString = self.stringFromInt(hundredsNumber) - # Convert the upper 3 numbers - thousandsNumber + # Convert thousandsNumber if thousandsNumber: if number > 1099 and number < 2000: resultString = '%s %s' % (self.lessThanTwenty[number/100], @@ -455,19 +481,26 @@ class EPUB_MOBI(CatalogPlugin): else: thousandsString = self.stringFromInt(thousandsNumber) + # Convert millionsNumber + if millionsNumber: + millionsString = self.stringFromInt(millionsNumber) + # Concatenate the strings - if thousandsNumber and not hundredsNumber: - resultString = "%s thousand" % thousandsString + resultString = '' + if millionsNumber: + resultString += "%s million " % millionsString - if thousandsNumber and hundredsNumber: - resultString = "%s thousand %s" % (thousandsString, hundredsString) + if thousandsNumber: + resultString += "%s thousand " % thousandsString - if not thousandsNumber and hundredsNumber: - resultString = "%s" % hundredsString + if hundredsNumber: + resultString += "%s" % hundredsString - if not thousandsNumber and not hundredsNumber: + if not millionsNumber and not thousandsNumber and not hundredsNumber: resultString = "zero" + if self.verbose: + self.log(u'resultString: %s' % resultString) self.text = resultString.strip().capitalize() class CatalogBuilder(object): @@ -860,7 +893,10 @@ class EPUB_MOBI(CatalogPlugin): title = this_title['title'] = self.convertHTMLEntities(record['title']) this_title['title_sort'] = self.generateSortTitle(title) - this_title['author'] = " & ".join(record['authors']) + if 'authors' in record and len(record['authors']): + this_title['author'] = " & ".join(record['authors']) + else: + this_title['author'] = 'Unknown' this_title['author_sort'] = record['author_sort'] if len(record['author_sort']) \ else self.author_to_author_sort(this_title['author']) this_title['id'] = record['id'] @@ -872,10 +908,14 @@ class EPUB_MOBI(CatalogPlugin): this_title['timestamp'] = record['timestamp'] if record['comments']: #this_title['description'] = re.sub('&', '&', record['comments']) - if re.search('<(?P.+)>.+||<.+/>',record['comments']): - self.opts.log(" %d: %s (%s) contains suspect metadata" % \ + has_xml = re.search('<(?P.+)>.+||<.+/>',record['comments']) + if has_xml and not re.search(' present, take a chance that the markup is valid + this_title['description'] = record['comments'] this_title['short_description'] = self.generateShortDescription(this_title['description']) else: this_title['description'] = None @@ -903,8 +943,10 @@ class EPUB_MOBI(CatalogPlugin): key=lambda x:(x['title_sort'].upper(), x['title_sort'].upper())) if False and self.verbose: self.opts.log.info("fetchBooksByTitle(): %d books" % len(self.booksByTitle)) + self.opts.log.info(" %-40s %-40s" % ('title', 'title_sort')) for title in self.booksByTitle: - self.opts.log.info((u" %-50s %-25s" % (title['title'][0:45], title['title_sort'][0:20])).encode('utf-8')) + self.opts.log.info((u" %-40s %-40s" % (title['title'][0:40], + title['title_sort'][0:40])).encode('utf-8')) def fetchBooksByAuthor(self): # Generate a list of titles sorted by author from the database @@ -2643,27 +2685,26 @@ class EPUB_MOBI(CatalogPlugin): # Leading numbers optionally translated to text equivalent # Capitalize leading sort word if i==0: - if self.opts.numbers_as_text and re.search('[0-9]+',word): + if self.opts.numbers_as_text and re.match('[0-9]+',word[0]): translated.append(EPUB_MOBI.NumberToText(word).text.capitalize()) else: - if re.search('-',word): - # Split hyphenated words for sorting - tokens = word.split('-') - title_words[0] = tokens[0] - title_words.insert(1,tokens[1]) - if re.search('[0-9]+',word): - # Coerce standard-width strings for numbers for value sorting - # Any non-digit is interpreted as a decimal point - # word = '%10.2f' % float(re.sub('[^\d\.]','',word)) - try: - word = '%10.2f' % float(re.sub('[^\d\.]','.',word)) - except: - word = '%10.2f' % float(EPUB_MOBI.NumberToText(word).number_as_float) + if re.match('[0-9]+',word[0]): + word = word.replace(',','') + suffix = re.search('[\D]', word) + if suffix: + word = '%10.0f%s' % (float(word[:suffix.start()]),word[suffix.start():]) + else: + word = '%10.0f' % (float(word)) translated.append(word.capitalize()) + else: - if re.search('[0-9]+',word): - # Coerce standard-width strings for numbers - word = '%10.2f' % float(re.sub('[^\d\.]','',word)) + if re.search('[0-9]+',word[0]): + word = word.replace(',','') + suffix = re.search('[\D]', word) + if suffix: + word = '%10.0f%s' % (float(word[:suffix.start()]),word[suffix.start():]) + else: + word = '%10.0f' % (float(word)) translated.append(word) return ' '.join(translated) From c8ca1afe7044635c693bd603fe1768ad5c372e73 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 2 Feb 2010 10:49:40 -0700 Subject: [PATCH 024/158] Fix regression that broke recursive adding on windows with non ascii file paths --- src/calibre/gui2/add.py | 42 +++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index ace2ac5c7e..0b37fe2515 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -43,28 +43,34 @@ class RecursiveFind(QThread): self.single_book_per_directory = single self.canceled = False + def walk(self, root): + self.books = [] + for dirpath in os.walk(root): + if self.canceled: + return + self.emit(SIGNAL('update(PyQt_PyObject)'), + _('Searching in')+' '+dirpath[0]) + self.books += list(self.db.find_books_in_directory(dirpath[0], + self.single_book_per_directory)) + def run(self): root = os.path.abspath(self.path) - self.books = [] - if isinstance(root, unicode): - root = root.encode(filesystem_encoding) try: - for dirpath in os.walk(root): - if self.canceled: - return - self.emit(SIGNAL('update(PyQt_PyObject)'), - _('Searching in')+' '+dirpath[0]) - self.books += list(self.db.find_books_in_directory(dirpath[0], - self.single_book_per_directory)) - except Exception, err: - import traceback - traceback.print_exc() + self.walk(root) + except: try: - msg = unicode(err) - except: - msg = repr(err) - self.emit(SIGNAL('found(PyQt_PyObject)'), msg) - return + if isinstance(root, unicode): + root = root.encode(filesystem_encoding) + self.walk(root) + except Exception, err: + import traceback + traceback.print_exc() + try: + msg = unicode(err) + except: + msg = repr(err) + self.emit(SIGNAL('found(PyQt_PyObject)'), msg) + return self.books = [formats for formats in self.books if formats] From 86c0917d2e4eda3d27b18b1edcf4d492467b411d Mon Sep 17 00:00:00 2001 From: GRiker Date: Tue, 2 Feb 2010 14:09:27 -0700 Subject: [PATCH 025/158] Initial support for simple markup in description blocks, options to include/exclude Titles and Recently Added sections. --- src/calibre/gui2/catalog/catalog_epub_mobi.py | 14 +- src/calibre/gui2/catalog/catalog_epub_mobi.ui | 69 ++++----- src/calibre/library/catalog.py | 144 ++++++++++++------ src/calibre/web/feeds/news.py | 7 +- 4 files changed, 147 insertions(+), 87 deletions(-) diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.py b/src/calibre/gui2/catalog/catalog_epub_mobi.py index 2037545bb4..12971528b2 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.py +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.py @@ -18,10 +18,13 @@ class PluginWidget(QWidget,Ui_Form): HELP = _('Options specific to')+' EPUB/MOBI '+_('output') OPTION_FIELDS = [('exclude_genre','\[[\w ]*\]'), ('exclude_tags','~,'+_('Catalog')), + ('generate_titles', True), + ('generate_recently_added', True), ('note_tag','*'), ('numbers_as_text', False), ('read_tag','+')] + # Output synced to the connected device? sync_enabled = True @@ -37,7 +40,7 @@ class PluginWidget(QWidget,Ui_Form): # Update dialog fields from stored options for opt in self.OPTION_FIELDS: opt_value = gprefs.get(self.name + '_' + opt[0], opt[1]) - if opt[0] == 'numbers_as_text': + if opt[0] in ['numbers_as_text','generate_titles','generate_recently_added']: getattr(self, opt[0]).setChecked(opt_value) else: getattr(self, opt[0]).setText(opt_value) @@ -45,19 +48,20 @@ class PluginWidget(QWidget,Ui_Form): def options(self): # Save/return the current options # exclude_genre stores literally - # numbers_as_text stores as True/False + # generate_titles, generate_recently_added, numbers_as_text stores as True/False # others store as lists opts_dict = {} for opt in self.OPTION_FIELDS: - if opt[0] == 'numbers_as_text': + if opt[0] in ['numbers_as_text','generate_titles','generate_recently_added']: opt_value = getattr(self,opt[0]).isChecked() else: opt_value = unicode(getattr(self, opt[0]).text()) gprefs.set(self.name + '_' + opt[0], opt_value) - if opt[0] == 'exclude_genre' or 'numbers_as_text': + + if opt[0] in ['exclude_genre','numbers_as_text','generate_titles','generate_recently_added']: opts_dict[opt[0]] = opt_value else: - opt_value = opt_value.split(',') + opts_dict[opt[0]] = opt_value.split(',') opts_dict['output_profile'] = [load_defaults('page_setup')['output_profile']] diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.ui b/src/calibre/gui2/catalog/catalog_epub_mobi.ui index 044ecdaaec..91fcbdc364 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.ui +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.ui @@ -14,63 +14,56 @@ Form - + 'Don't include this book' tag: - + - + 'Mark this book as read' tag: - + - + Additional note tag prefix: - + - - - - Sort numbers as text - - - - + - + Regex pattern describing tags to exclude as genres: @@ -83,36 +76,19 @@ - - - - - 14 - 75 - true - - - - Special marker tags for catalog generation - - - Qt::AlignCenter - - - - + Regex tips: -- The default regex of '\[[\w]*\]' ignores tags of the form '[tag]', e.g., '[Amazon Freebie]' -- A regex of '.' ignores all tags, generating no genre categories in the catalog +- The default regex - \[[\w]*\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie] +- A regex pattern of a single dot excludes all genre tags, generating no Genre Section true - + Qt::Vertical @@ -125,6 +101,27 @@ + + + + Include 'Titles' Section + + + + + + + Include 'Recently Added' Section + + + + + + + Sort numbers as text + + + diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 3082dc07b1..045444b3dd 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -7,7 +7,7 @@ from xml.sax.saxutils import escape from calibre import filesystem_encoding, prints, prepare_string_for_xml, strftime from calibre.customize import CatalogPlugin from calibre.customize.conversion import OptionRecommendation, DummyReporter -from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString +from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString, CData from calibre.ptempfile import PersistentTemporaryDirectory from calibre.utils.logging import Log @@ -274,6 +274,18 @@ class EPUB_MOBI(CatalogPlugin): "--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats")), + Option('--generate-titles', + default=True, + dest='generate_titles', + help=_("Include 'Titles' section in catalog.\n" + "Default: '%default'\n" + "Applies to: ePub, MOBI output formats")), + Option('--generate-recently-added', + default=True, + dest='generate_recently_added', + help=_("Include 'Recently Added' section in catalog.\n" + "Default: '%default'\n" + "Applies to: ePub, MOBI output formats")), Option('--note-tag', default='*', dest='note_tag', @@ -523,8 +535,8 @@ class EPUB_MOBI(CatalogPlugin): ''' # Number of discrete steps to catalog creation - current_step = 0.0 - total_steps = 14.0 +# current_step = 0.0 +# total_steps = 10.0 THUMB_WIDTH = 75 THUMB_HEIGHT = 100 @@ -549,6 +561,7 @@ class EPUB_MOBI(CatalogPlugin): self.__booksByTitle = None self.__catalogPath = PersistentTemporaryDirectory("_epub_mobi_catalog", prefix='') self.__contentDir = os.path.join(self.catalogPath, "content") + self.__currentStep = 0.0 self.__creator = opts.creator self.__db = db self.__descriptionClip = opts.descriptionClip @@ -570,8 +583,15 @@ class EPUB_MOBI(CatalogPlugin): self.__stylesheet = stylesheet self.__thumbs = None self.__title = opts.catalog_title + self.__totalSteps = 10.0 self.__verbose = opts.verbose + # Tweak build steps based on optional sections + if self.opts.generate_titles: + self.__totalSteps += 2 + if self.opts.generate_recently_added: + self.__totalSteps += 2 + # Accessors ''' @dynamic_property @@ -626,6 +646,13 @@ class EPUB_MOBI(CatalogPlugin): self.__contentDir = val return property(fget=fget, fset=fset) @dynamic_property + def currentStep(self): + def fget(self): + return self.__currentStep + def fset(self, val): + self.__currentStep = val + return property(fget=fget, fset=fset) + @dynamic_property def creator(self): def fget(self): return self.__creator @@ -765,6 +792,11 @@ class EPUB_MOBI(CatalogPlugin): self.__title = val return property(fget=fget, fset=fset) @dynamic_property + def totalSteps(self): + def fget(self): + return self.__totalSteps + return property(fget=fget) + @dynamic_property def verbose(self): def fget(self): return self.__verbose @@ -803,8 +835,10 @@ class EPUB_MOBI(CatalogPlugin): self.fetchBooksByAuthor() self.generateHTMLDescriptions() self.generateHTMLByAuthor() - self.generateHTMLByTitle() - self.generateHTMLByDateAdded() + if self.opts.generate_titles: + self.generateHTMLByTitle() + if self.opts.generate_recently_added: + self.generateHTMLByDateAdded() self.generateHTMLByTags() from calibre.utils.PythonMagickWand import ImageMagick @@ -815,8 +849,10 @@ class EPUB_MOBI(CatalogPlugin): self.generateNCXHeader() self.generateNCXDescriptions("Descriptions") self.generateNCXByAuthor("Authors") - self.generateNCXByTitle("Titles") - self.generateNCXByDateAdded("Recently Added") + if self.opts.generate_titles: + self.generateNCXByTitle("Titles") + if self.opts.generate_recently_added: + self.generateNCXByDateAdded("Recently Added") self.generateNCXByGenre("Genres") self.writeNCX() return True @@ -907,16 +943,14 @@ class EPUB_MOBI(CatalogPlugin): this_title['date'] = strftime(u'%B %Y', record['pubdate'].timetuple()) this_title['timestamp'] = record['timestamp'] if record['comments']: - #this_title['description'] = re.sub('&', '&', record['comments']) - has_xml = re.search('<(?P.+)>.+||<.+/>',record['comments']) - if has_xml and not re.search(' present, take a chance that the markup is valid - this_title['description'] = record['comments'] - this_title['short_description'] = self.generateShortDescription(this_title['description']) + this_title['description'] = self.markdownComments(record['comments']) + paras = BeautifulSoup(this_title['description']).findAll('p') + tokens = [] + for p in paras: + for token in p.contents: + if token.string is not None: + tokens.append(token.string) + this_title['short_description'] = self.generateShortDescription(' '.join(tokens)) else: this_title['description'] = None this_title['short_description'] = None @@ -2552,9 +2586,7 @@ class EPUB_MOBI(CatalogPlugin):


-

- - +
'''.format(title_border) @@ -2733,12 +2765,6 @@ class EPUB_MOBI(CatalogPlugin): except RuntimeError: self.opts.log.error("generateThumbnail(): RuntimeError with %s" % title['title']) - def letter_or_symbol(self,char): - if not re.search('[a-zA-Z]',char): - return 'Symbols' - else: - return char - def getMarkerTags(self): ''' Return a list of special marker tags to be excluded from genre list ''' markerTags = [] @@ -2747,6 +2773,33 @@ class EPUB_MOBI(CatalogPlugin): markerTags.extend(self.opts.read_tag.split(',')) return markerTags + def letter_or_symbol(self,char): + if not re.search('[a-zA-Z]',char): + return 'Symbols' + else: + return char + + def markdownComments(self, comments): + ''' Convert random comment text to normalized, xml-legal block of

s''' + # reformat illegal xml + desc = prepare_string_for_xml(comments) + + # normalize
tags + desc = re.sub(r'<br[/]{0,1}>', '
', desc) + + # tokenize double line breaks + desc = comments.replace('\r', '') + tokens = comments.split('\n\n') + + soup = BeautifulSoup() + ptc = 0 + for token in tokens: + pTag = Tag(soup, 'p') + pTag.insert(0,token) + soup.insert(ptc, pTag) + ptc += 1 + return soup.renderContents() + def processSpecialTags(self, tags, this_title, opts): tag_list = [] for tag in tags: @@ -2761,6 +2814,22 @@ class EPUB_MOBI(CatalogPlugin): tag_list.append(tag) return tag_list + def updateProgressFullStep(self, description): + self.currentStep += 1 + self.progressString = description + self.progressInt = float((self.currentStep-1)/self.totalSteps) + self.reporter(self.progressInt, self.progressString) + if self.opts.cli_environment: + self.opts.log(u"%3.0f%% %s" % (self.progressInt*100, self.progressString)) + + def updateProgressMicroStep(self, description, micro_step_pct): + step_range = 100/self.totalSteps + self.progressString = description + coarse_progress = float((self.currentStep-1)/self.totalSteps) + fine_progress = float((micro_step_pct*step_range)/100) + self.progressInt = coarse_progress + fine_progress + self.reporter(self.progressInt, self.progressString) + class NotImplementedError: def __init__(self, error): self.error = error @@ -2768,22 +2837,6 @@ class EPUB_MOBI(CatalogPlugin): def logerror(self): self.opts.log.info('%s not implemented' % self.error) - def updateProgressFullStep(self, description): - self.current_step += 1 - self.progressString = description - self.progressInt = float((self.current_step-1)/self.total_steps) - self.reporter(self.progressInt, self.progressString) - if self.opts.cli_environment: - self.opts.log(u"%3.0f%% %s" % (self.progressInt*100, self.progressString)) - - def updateProgressMicroStep(self, description, micro_step_pct): - step_range = 100/self.total_steps - self.progressString = description - coarse_progress = float((self.current_step-1)/self.total_steps) - fine_progress = float((micro_step_pct*step_range)/100) - self.progressInt = coarse_progress + fine_progress - self.reporter(self.progressInt, self.progressString) - def run(self, path_to_output, opts, db, notification=DummyReporter()): opts.log = log = Log() opts.fmt = self.fmt = path_to_output.rpartition('.')[2] @@ -2812,14 +2865,15 @@ class EPUB_MOBI(CatalogPlugin): log(" opts:") for key in keys: - if key in ['catalog_title','exclude_genre','exclude_tags','note_tag', - 'numbers_as_text','read_tag','search_text','sort_by','sync']: + if key in ['catalog_title','exclude_genre','exclude_tags','generate_titles', + 'generate_recently_added','note_tag','numbers_as_text','read_tag', + 'search_text','sort_by','sync']: log(" %s: %s" % (key, opts_dict[key])) # Launch the Catalog builder + catalog = self.CatalogBuilder(db, opts, self, report_progress=notification) if opts.verbose: log.info("Begin catalog source generation") - catalog = self.CatalogBuilder(db, opts, self, report_progress=notification) catalog.createDirectoryStructure() catalog.copyResources() catalog_source_built = catalog.buildSources() diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index fc07c43c65..d2ba40331f 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -761,14 +761,19 @@ class BasicNewsRecipe(Recipe): self.download_cover() self.report_progress(0, _('Generating masthead...')) self.masthead_path = None + try: murl = self.get_masthead_url() except: self.log.exception('Failed to get masthead url') murl = None + if murl is not None: + # Try downloading the user-supplied masthead_url + # Failure sets self.masthead_path to None self.download_masthead(murl) if self.masthead_path is None: + self.log.info("Synthesizing mastheadImage") self.masthead_path = os.path.join(self.output_dir, 'mastheadImage.jpg') try: self.default_masthead_image(self.masthead_path) @@ -916,7 +921,7 @@ class BasicNewsRecipe(Recipe): try: self._download_masthead(url) except: - self.log.exception("Failed to download supplied masthead_url, synthesizing") + self.log.exception("Failed to download supplied masthead_url") def default_cover(self, cover_file): ''' From c2e3683843d28014b8cc0a64ceff691806b7dd0c Mon Sep 17 00:00:00 2001 From: John Schember Date: Tue, 2 Feb 2010 17:52:18 -0500 Subject: [PATCH 026/158] Fix bug #4777: Typo in regex for eReader PDB chapter index generation. --- src/calibre/ebooks/pdb/ereader/writer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/ebooks/pdb/ereader/writer.py b/src/calibre/ebooks/pdb/ereader/writer.py index a6ee16db15..c13353745e 100644 --- a/src/calibre/ebooks/pdb/ereader/writer.py +++ b/src/calibre/ebooks/pdb/ereader/writer.py @@ -42,7 +42,7 @@ class Writer(FormatWriter): pml = unicode(pmlmlizer.extract_content(oeb_book, self.opts)).encode('cp1252', 'replace') text, text_sizes = self._text(pml) - chapter_index = self._index_item(r'(?s)\\C(?P[0-4)="(?P.+?)"', pml) + chapter_index = self._index_item(r'(?s)\\C(?P[0-4])="(?P.+?)"', pml) chapter_index += self.index_item(r'(?s)\\X(?P[0-4])(?P.+?)\\X[0-4]', pml) chapter_index += self.index_item(r'(?s)\\x(?P.+?)\\x', pml) link_index = self._index_item(r'(?s)\\Q="(?P.+?)"', pml) From afe4270c5132776603b010975c2df29639d22549 Mon Sep 17 00:00:00 2001 From: Translators <> Date: Wed, 3 Feb 2010 04:46:00 +0000 Subject: [PATCH 027/158] Launchpad automatic translations update. --- src/calibre/translations/hu.po | 1793 +++++++++++++++++++------------- src/calibre/translations/ja.po | 1766 ++++++++++++++++++------------- 2 files changed, 2071 insertions(+), 1488 deletions(-) diff --git a/src/calibre/translations/hu.po b/src/calibre/translations/hu.po index eee4bfb75f..666db469ce 100644 --- a/src/calibre/translations/hu.po +++ b/src/calibre/translations/hu.po @@ -7,21 +7,21 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-11 00:36+0000\n" -"PO-Revision-Date: 2010-01-10 23:11+0000\n" -"Last-Translator: Muszela Balázs \n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-02 18:44+0000\n" +"Last-Translator: Devilinside \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-12 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-02-03 04:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "Semmit nem csinál" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 @@ -29,8 +29,8 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:203 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -50,14 +50,13 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 @@ -65,18 +64,18 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:597 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:787 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -97,29 +96,29 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:272 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:279 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:565 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:574 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:794 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:397 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:419 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:914 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1040 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 @@ -127,13 +126,13 @@ msgstr "Semmit nem csinál" #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1517 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1519 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1630 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 @@ -142,22 +141,26 @@ msgstr "Semmit nem csinál" msgid "Unknown" msgstr "Ismeretlen" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "Alap" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:149 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "Fájltípus" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:183 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "Metaadat olvasó" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:214 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "Metaadat író" +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " @@ -230,11 +233,11 @@ msgstr "Metaadatok beállítása a %s típusú fájlokban." msgid "Set metadata from %s files" msgstr "Metadatok beállítása a következő fájlokból: %s" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Konverzió bemenet" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -245,11 +248,11 @@ msgstr "" "dokumentum eredetei beállításait. Különösen hasznos olyan dokumentumoknál, " "ahol nincs, vagy hibásan van beállítva a karakterkódolás." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "Konverzió kimenet" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -274,6 +277,7 @@ msgstr "" msgid "" "This profile is intended for the SONY PRS line. The 500/505/600/700 etc." msgstr "" +"Ez a SONY PRS sorozathoz készült profil, úgymint 500/505/600/700 stb." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 msgid "This profile is intended for the SONY PRS 300." @@ -392,7 +396,7 @@ msgstr "Nem találtam érvényes bővítményt itt: " msgid "Initialization of plugin %s failed with traceback:" msgstr "A %s bővítmény indítása a következő hibaüzenettel meghiusult:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:397 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -404,17 +408,17 @@ msgstr "" " Igazítsa Calibret saját igényeihez külső pluginok betöltésével.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:403 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "Bővítmény hozzáadása a ZIP fájl elérési útjának megadásával." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "" "Egy telepített bővítmény eltávolítása név alapján. Nincs hatással a " "beépített bővítményekre." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:407 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -422,15 +426,15 @@ msgstr "" "Bővítmény testreszabása. Adja meg a bővítmény nevét, és a kért beállítást, " "vesszővel elválasztva." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:409 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "A telepített bővítőmodulok listázása" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:411 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "A bővítmény engedélyezése" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:413 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "A bővítmény letiltása" @@ -438,7 +442,7 @@ msgstr "A bővítmény letiltása" msgid "Communicate with Android phones." msgstr "Kapcsolódás Android telefonhoz." -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:25 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -448,11 +452,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Kapcsolódás Blackberry telefonhoz." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -462,7 +466,7 @@ msgstr "Kovid Goyal" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "Kapcsolódás EB600 olvasóhoz." @@ -579,40 +583,40 @@ msgstr "" msgid "Transferring books to device..." msgstr "Könyvek küldése az eszközre..." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:173 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:180 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:160 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "Könyvek eltávolítása az eszközről" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:208 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:175 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." msgstr "Metaadatok küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:214 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:271 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "" "Nem tudtam érzékelni a %s lemezmeghajtót. Próbálkozzon újraindítással!" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:440 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:495 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "A(z) %s meghajtó nem található" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:588 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "Nem található felcsatlakozást segítő: %s" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:600 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." @@ -620,35 +624,35 @@ msgstr "" "Nem lehet felismerni a %s meghajtót. A kernel egy érvénytelen verziójú SYSFS-" "t támogat. http://calibre.kovidgoyal.net/user_manual/faq.html#id21" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "A belső memória nem felismerhető. (Hiba kód: %d)" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:745 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:747 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "Ebben csatlakozóban nincs memóriakártya" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:749 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "A következő kártyahely nem támogatott: %s" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:782 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" msgstr "Nincs elég hely a fő memóriában" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:784 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:786 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" msgstr "Nincs elég hely a memóriakártyán." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:803 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:826 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1417 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "Hírek (RSS)" @@ -695,8 +699,8 @@ msgstr "Eszköz-információ lekérdezése" msgid "Adding books to device metadata listing..." msgstr "Könyvek hozzáadása az eszköz metaadat listához..." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:164 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:169 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "Könyvek eltávolítása az eszköz metaadat listáról..." @@ -799,8 +803,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Képek változatlan megtartása módosítás nélkül." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Oldal" @@ -1365,9 +1369,9 @@ msgstr "" "egyet, akkor egy generált borító készül a könyvhöz a címmel, szerzővel stb. " "Ez az opció letiltja ezt az automatikusan generált borítót." -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:143 -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:128 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "Tartalomjegyzék:" @@ -1711,20 +1715,20 @@ msgstr "Képregény" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:394 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1106 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 msgid "Title" msgstr "Cím" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Author(s)" msgstr "Szerző(k)" @@ -1741,18 +1745,18 @@ msgstr "Producer" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Megjegyzés" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1110 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" @@ -1760,7 +1764,7 @@ msgstr "Címkék" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" @@ -1771,7 +1775,7 @@ msgid "Language" msgstr "Nyelv" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 msgid "Timestamp" msgstr "Dátum" @@ -1785,7 +1789,7 @@ msgstr "Kiadás ideje" msgid "Rights" msgstr "Jogok" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1869,27 +1873,27 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "BookID(azonosító) beállítása LRF fájlokban" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "Nincs megadva fájl" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "Eredeti metaadatok" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "Megváltozott metaadat" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "OPF fájl létrehozva:" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "Borító elmentve" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "Borító nem található" @@ -1931,7 +1935,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 msgid "Downloads social metadata from amazon.com" -msgstr "" +msgstr "Közösségi metaadatok letöltése az amazon.com-ról" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" @@ -2006,7 +2010,7 @@ msgstr "" "Töltse le a könyv ISBN által megadott borítóját a LibraryThing.com-ról\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "Borító" @@ -2036,101 +2040,77 @@ msgstr "A generált Tartalomjegyzék címe." msgid "Disable compression of the file contents." msgstr "A fájltartalom tömörítésének tiltása." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Minden cikk" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Címlap" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Tartalomjegyzék" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "Szószedet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "Köszönetnyilvánítás" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "Irodalomjegyzék" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "Záradék" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "Szerzői jog" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "Ajánlás" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "Mottó" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "Előszó" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "Illusztrációk listája" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "Táblázatok listája" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "Megjegyzések" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "Előszó (szerk.)" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "Fő szöveg" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "Az ebook konvertálás beállításai" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "Bemeneti karakterkódolás. Alapértelmezett: automatikus felismerés." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "Célfájl. Alapértelmezés szerint a forrásfájl nevéből lesz generálva." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "Még olvashatóbb XML kimenet létrehozása." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "Hasznos hibakeresésnél." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "Használat: ebook-convert INFILE OUTFILE [OPTIONS..]" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "A %s formátumú könyvek sajnos nem támogatottak" @@ -2490,13 +2470,12 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "A kimeneti karakterkódolás megadása. Az alapértelmezett: cp1252." -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Ez az RTF fájl olyan tulajdonságokat tartalmaz, melyeket a calibre nem " -"támogat. Konvertálja át először HTML-ba, majd próbálja újra." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2560,162 +2539,166 @@ msgstr "" "Mindenképpen darabolja fel a sorokat a maximális sorhossz értéknél, akkor is " "ha nincs szóköz. A minimálisnál kisebb érték is megadható" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "Alapbeállításként a memóriakártyára küldje a belső memória helyett" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Megerősítés törlés előtt" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Eszköztárikonok mérete" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Gombfeliratok mutatása az eszköztárban" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "A főablak méretei" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Figyelmeztetés új verzió esetén." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Római számok használata a könyvsorozatok számozásánál" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Címkék rendezése darabszám szerint csökkenő sorrendben" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "A borító alapján történő böngészéskor a megjelenített borítók száma" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Az LRF-be való konvertálás alapértelmezett értékei" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "A beépített LRF olvasóprogram beállításai" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "A beépített olvasóprogram által megjelenített formátumok" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "A könyvlistában megjelenítendő oszlopok" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "A tartalomkiszolgáló automatikus indítása az alkalmazás indulásakor." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "A legrégebbi adatbázisban megtartandó hír" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Ikon megjelenítése a tálcán" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Letöltött hírek küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Könyvek törlése az adatbázisból az eszközre való feltöltés utén" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "A borítók megjelenítése külön ablakban a calibre főablaka helyett." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "A tálcaikon ne mutassa a figyelmeztetéseket" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Az alapértelmezett művelet a 'Küldés eszközre' gombra való kattintáskor" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "A sorban álló műveletek maximális száma" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" +msgstr "Közösségi metaadatok letöltése (címkék, értékelés stb.)" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "A maximális párhuzamosan végrehajtandó műveletek számának korlátozása a " "processzorok számára" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Másolva" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Másolás" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Másolás a vágólapra" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Válasszon a fájlok közül" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "Keresés a következőben:" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "Hozzáadás..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "Keresés minden almappában..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:197 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Nincsenek könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "Hozzáadva" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "A hozzáadás nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2723,49 +2706,35 @@ msgstr "" "Probléma történt a könyvek hozzáadása közben. Indítsa újra a calibre-t és " "válasszon ki kevesebbet, amíg meg nem találja a problémát okozó könyvet." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "Már létezik egy ilyen példány!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" "Ugyanezzel a címmel már létezik egy könyv az adatbázisban. Mégis hozzáadja?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "Duplikációk hozzáadása..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "Mentés..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "Elmentve" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 -msgid "" -"For settings that cannot be specified in this dialog, use the values saved " -"in a previous conversion (if they exist) instead of using the defaults " -"specified in the Preferences" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 -msgid "Bulk Convert" -msgstr "Csoportos konvertálás" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 -msgid "Options specific to the output format." -msgstr "Az adott kimeneti formátumnak megfelelő beállítások" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 -msgid "Comic Input" -msgstr "Képregény bemenet" - +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 @@ -2782,14 +2751,22 @@ msgstr "Képregény bemenet" msgid "Options specific to" msgstr "Beállítás:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -msgid "input" -msgstr "bemenet" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" +msgstr "kimenet" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 @@ -2819,6 +2796,86 @@ msgstr "bemenet" msgid "Form" msgstr "Űrlap" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "Csoportos konvertálás" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "Az adott kimeneti formátumnak megfelelő beállítások" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "Képregény bemenet" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "bemenet" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2918,12 +2975,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2961,17 +3018,6 @@ msgstr "" msgid "EPUB Output" msgstr "EPUB kimenet" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "kimenet" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "Oldaltörésnél ne legyen darabolás" @@ -3270,7 +3316,7 @@ msgid "Change the title of this book" msgstr "Könyv címének megadása" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "Szerző(k) " @@ -3288,7 +3334,7 @@ msgstr "" "azokat elválasztani" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Kiadó: " @@ -3299,7 +3345,7 @@ msgid "Ta&gs: " msgstr "Címkék: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3309,15 +3355,15 @@ msgstr "" "vesszővel elválasztva." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Sorozat:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3439,7 +3485,7 @@ msgid "RB Output" msgstr "RB kimenet" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "Válassza ki a kívánt formátumot olvasásra" @@ -3480,7 +3526,7 @@ msgid "Options specific to the input format." msgstr "A bemeneti formátumnak megfelelő beállítások" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" @@ -3649,8 +3695,8 @@ msgid "Force maximum line lenght" msgstr "Mindenképpen a maximális sorhossz hazsnálata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3737,193 +3783,199 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Részletek nem elérhetőek." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "Az eszköz már nem csatlakozik." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "Eszköz-információk lekérdezése" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "Az eszközön lévő könyvek listájának letöltése" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "Metaadatok küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "%d könyv feltöltése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "Könyvek törlése az eszközről" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" msgstr "Könyvek letöltése az eszközről" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "Könyv megnyitása ez eszközön" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" msgstr "és törlés az adatbázisból" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "Alapértelmezett eszközre küldési művelet beállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:326 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:333 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:335 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "Email küldése" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 msgid "Send to main memory" msgstr "Küldés a belső memóriába" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 msgid "Send to storage card A" msgstr "Küldés az 'A' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 msgid "Send to storage card B" msgstr "Küldés a 'B' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 msgid "Send specific format to main memory" msgstr "A meghatározott formátumú változat küldése a belső memóriába" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 msgid "Send specific format to storage card A" msgstr "A meghatározott formátum küldése az 'A' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Send specific format to storage card B" msgstr "A meghatározott formátum küldése a 'B' memóriakártyára" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "kiválasztva küldéshez" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" msgstr "Az eszközre küldendő formátum kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "Nincs eszköz" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" msgstr "Nem tudom küldeni: nincs csatlakoztatott eszköz" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:526 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "Nincs memóriakártya" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:527 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" msgstr "Nem tudom küldeni: az eszközben nincs memóriakártya" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "E-book:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "Az ebook csatolva" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "%s formátumban." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "Email küldése:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:620 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:627 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:843 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "Nincs megfelelő formátum" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:621 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" "Az email-ben való elküldés előtt automatikusan konvertáljam a kijelölt " "könyveket?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Nem lehet elküldeni a következő könyveket, mert nem léteznek a megadott " "formátumokban:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "A könyvek elküdése nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:647 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "Hiba a következő könyvek email-ben való elküldése közben:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "Emailbe elküldve:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "Hírek:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "Hírek elküldve:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:721 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" "Az eszközre való feltöltés előtt automatikusan konvertáljam a kijelölt " "könyveket?" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:751 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." msgstr "Hírek küldése az eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." msgstr "Könyvek küldése az eszközre." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." @@ -3932,11 +3984,11 @@ msgstr "" "formátumú változatuk. Konvertálja át a nem megfelelőeket valamelyik, az " "eszközöd által támogatott formátumra." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "Nincs elég hely az eszközön" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" @@ -3955,34 +4007,68 @@ msgstr "Almappák használata" msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:351 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Elérési út" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "Formátumok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "&Előző" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "&Következő" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "Formátum kiválasztása" @@ -4087,133 +4173,133 @@ msgstr "" msgid "new email address" msgstr "új email cím" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1224 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Hiba" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "A parancssori eszközök telepítése nem sikerült." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Parancssori eszközök installálva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Parancssori eszközök installálva:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Ha áthelyezi a calibre.app-ot, akkor a parancssori eszközöket újra kell " "installálnia." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Nincs érvényes plugin elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "Nem érvényes plugin elérési út: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Plugin kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Ezt a plugint nem lehet letiltani" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "A következő plugint nem lehet letiltani: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "A pluginnak nincsenek beállításai" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "A %s pluginnak nincsenek beállításai" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "A beépített pluginok nem távolíthatóak el" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr " nem törölhető. Ez egy beépített plugin. Tiltsd le inkább." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Hibanapló:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Hozzáférési naplófájl:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "A tartalomkiszolgáló indítása nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Könyvek helyének kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Érvénytelen méret" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "A következő méret érvénytelen: %s. A méretnek szélességxmagasság formátumban " "kell lennie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Érvénytelen adatbázis elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Érvénytelen adatbázis elérési útvonal " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Mappának kell lennie." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" "Érvénytelen adatbázis elérési útvonal.
A következő helyre nem lehet " "írni: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Adatbázis ellenőrzése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Az adatbázis ellenőrzése nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Néhány hibát találtam" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4314,13 +4400,13 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Beállítások" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4328,23 +4414,27 @@ msgstr "" "Könyvek helye (A könyvek ezen a mappán belül a szerző és a metadata.db " "fájlban található metaadatok alapján almappákban kerülnek tárolásra):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Új adatbázis helyének kiválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Figyelmeztetés, ha az új verzió elérhető" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Alapértelmezett hálózati időtúllépés:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4352,154 +4442,154 @@ msgstr "" "Alapértelmezett hálózati időtúllépés a letöltéshez (bármilyen internetet " "igénylő művelethez)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " másodperc" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Nyelv kiválasztása (újraindítás szükséges):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normál" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Magas" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Alacsony" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "Műveletek prioritása:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Kimeneti formátum:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Bemeneti formátumok preferált sorrendje:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Római számok használata a könyvsorozatok számozásánál" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Ikon megjelenítése a tálcán (újraindítás szükséges)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Figyelmeztetések megjelenítése a tálcaikonon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "A borító alapján történő keresés külön ablakba (újraindítás szükséges)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Keresés gépelés közben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Letöltött hírek automatikus küldése a csatlakoztatott eszközre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "Hírek törlése az adatbázisból automatikus eszközre küldés után" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "Megjelenített borítók száma böngészéskor (borító böngészés üzemmódban, " "újraindítást igényel)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Eszköztár" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Nagy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Közepes" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Kicsi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "Eszköztár gombjainak mérete" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Gombfeliratok mutatása az eszköztárban" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Látható oszlopok kiválasztása az adatbázis nézetben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "A beépített nézőke használata a következőkhöz:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Email cím hozzáadása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "Email hozzáadása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Legyen alapértelmezett" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "Email eltávolítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "A calibre el tudja küldeni könyveit emailben Önnek (vagy az eszközére, ha az " "alkalmas rá)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "A sorban álló &műveletek maximális száma (újraindítás szükséges):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Adatbázis ellenőrzése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "Parancssori eszközök installálása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "A maximális párhuzamosan végrehajtandó műveletek számának korlátozása a " "processzor magok számára" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4509,31 +4599,31 @@ msgstr "" "bárhonnan elérhető lesz gyűjteménye. A beállítások változtatása csak a " "szerver újraindítása után lép életbe." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Szerver port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Felhasználónév:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Jelszó:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "Ha nem ad meg jelszót, akkor bárki hozzáférhet az adatbázisához." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4541,41 +4631,41 @@ msgstr "" "A megjelenített borító maximális mérete (szélességxmagasság). Nagyobb méretű " "borítók át lesznek méretezve. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Max. borító méret:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "Jelszó mutatása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "Szerver indítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Szerver leállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "Szerver teszt" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Szerver automatikus indítása a program indulásakor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Szerverüzenetek megtekintése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4591,7 +4681,7 @@ msgstr "" "Stanza olvasóprogramjában. A 'myhostname' helyére a calibre-t futtató " "számítógép teljes neve, vagy IP címe kerüljön." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4599,27 +4689,27 @@ msgstr "" "Itt beállíthatja a calibre működését, azzal, hogy milyen pluginokat " "használjon." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Plugin engedélyezése/tiltása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Plugin testreszabása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Plugin eltávolítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Új plugin hozzáadása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Plugin &fájl:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Hozzáadás" @@ -4666,7 +4756,7 @@ msgstr "Engedélyezett változók:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 msgid "Downloading social metadata, please wait..." -msgstr "" +msgstr "Közösségi metaadatok letöltése, kérem várjon..." #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" @@ -4688,42 +4778,42 @@ msgstr "Rendezési forma" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Metaadatok keresése..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Nem találhatók metaadatok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "A metaadat letöltés nem sikerült. Próbálja meg később." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Figyelem" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Metadatok nem letölthetőek a következő helyről:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Nem találhatók metaadatok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Nem található metaadat, próbálja meg finomítani a könyvcímet, szerzőt vagy " "az ISBN-t." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Metaadatok letöltése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4736,26 +4826,32 @@ msgstr "" "href=\"http://www.isbndb.com\">felhasználói fiókkal és be kell írnia a " "kapott kulcsot az alábbi mezőbe." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Felhasználói kulcs:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Letöltés" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Találatok" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Válassza ki azt, amelyik a leginkább illik a könyvéhez" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +"Közösségi metaadatok (címkék, értékelés stb.) letöltése a kiválasztott " +"könyvhöz" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" @@ -4777,24 +4873,24 @@ msgstr "Műveletek részleteinek megjelenítése" msgid "Stop &all jobs" msgstr "Minden művelet leállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Metaadatok szerkesztése" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metaadat infromációk" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Rendezési forma automatikus beállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Rendezési forma: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4803,47 +4899,51 @@ msgstr "" "A szerző rendezési formájának megadása. Például Charles Dickens-t célszerű " "Dickens, Charles-ként rendezni." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "Értékelés:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "A könyv értékelése. 0-5 csillag." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " csillag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Címkék hozzáadása: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Címke-szerkesztő megnyitása" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "Címkék eltávolítása:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "A könyvből eltávolítandó címkék vesszővel elválasztott listája " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Formátum eltávolítása:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4856,113 +4956,113 @@ msgid "Choose formats for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "Könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "Nincs formátum kiválasztva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "Nem lehet olvasni a metaadatokat" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "Nem lehet kiolvasni a metaadtokat a %s formátumból." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "Nem lehet olvasni a borítót" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "Nem lehet kiolvasni a borítót a %s formátumból" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "A %s formátumban lévő borító érvénytelen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 msgid "Downloading cover..." msgstr "Borító letöltése..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 msgid "Cannot fetch cover" msgstr "Nem lehet letölteni a borítót" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Could not fetch cover.
" msgstr "Nem lehet letölteni a borítót.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 msgid "The download timed out." msgstr "Időtúllépés letöltés közben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" "Nem található borító ehhez a könyvhöz. Próbálja meg először az ISBN-t " "meghatározni." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 msgid "Bad cover" msgstr "Hibás borító" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "The cover is not a valid picture" msgstr "A borító nem érvényes képfájl" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 msgid "There were errors" msgstr "Hibák történtek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors downloading social metadata" -msgstr "" +msgstr "Hiba történt a közösségi metaadatok letöltése közben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "Metadatok nem letölthetőek" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Legalább az egyik adatot meg kell adnia a következők közül: ISBN, könyv " "címe, szerző vagy kiadó" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "Hozzáférés megtagadva" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "Nem lehet megnyitni: %s. Esetleg másik program használja?" @@ -5254,11 +5354,11 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "Biztos benne?" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -5656,12 +5756,12 @@ msgid " - Jobs" msgstr " - Műveletek" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1108 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 msgid "Size (MB)" msgstr "Méret (MB)" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1109 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 msgid "Date" msgstr "Dátum" @@ -5669,25 +5769,25 @@ msgstr "Dátum" msgid "Rating" msgstr "Értékelés" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:343 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "Nincs" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 msgid "Book %s of %s." msgstr "%s. rész - %s sorozat" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 msgid "Not allowed" msgstr "Nem engedélyezett" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5695,11 +5795,11 @@ msgstr "" "Az eszközre húzás nem támogatott. Először adja hozzá a könyvet a calibre " "adatbázishoz." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1044 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 msgid "Format" msgstr "Formátum" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1098 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 msgid "Double click to edit me

" msgstr "Duplakattintás a szerkesztéshez

" @@ -5775,52 +5875,52 @@ msgstr "eBook megnyitása" msgid "Configure" msgstr "Beállítás" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "A megadott elérési úton lévő adatbázis használata." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "A tálcára összecsukott állapotban induljon" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Hibakeresési információk megjelenítése a konzolon" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Ne ellenőrizze a frissítéseket" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Ha biztos benne, hogy nem fut" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Indítás nem lehetséges " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s már fut." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "a képernyő jobb felső sarka." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "a képernyő jobb alsó részén." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "próblja meg újraindítani a számítógépet" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5981,11 +6081,11 @@ msgstr "&Kilépés" msgid "ERROR: Unhandled exception" msgstr "Ismeretlen hiba történt" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "A könyvnek sem címe sem pedig ISBN azonosítója sincs." -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Nem található ilyen könyv" @@ -5993,37 +6093,37 @@ msgstr "Nem található ilyen könyv" msgid "Search" msgstr "Keresés" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 msgid "already assigned to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid " or " msgstr " vagy " -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 msgid "&Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid "Keys" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" msgstr "" @@ -6119,11 +6219,11 @@ msgstr "" msgid "Fetch news from " msgstr "Hírek letöltése a következő helyről: " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6218,7 +6318,7 @@ msgid "Save to disk in a single directory" msgstr "Mentés lemezre egy mappába" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1659 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "Csak a(z) %s formátum mentése a lemezre" @@ -6250,50 +6350,58 @@ msgstr "Egy könyv konvertálása" msgid "Bulk convert" msgstr "Csoportos konvertálás" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" msgstr "Beállítás Varázsló indítása" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 msgid "Similar books..." msgstr "Hasonló könyvek..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 msgid "Bad database location" msgstr "Hibás adatbázis elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 msgid "Calibre Library" msgstr "Calibre Library" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1815 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "Válasszon elérési utat az adatbázisod számára" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:685 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" msgstr "Böngészés borítók alapján" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 msgid "Device: " msgstr "Eszköz: " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 msgid " detected." msgstr " felismerve" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:859 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " msgstr "Csatlakozva: " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" msgstr "Az eszköz adatbázis hibás" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 msgid "" "\n" "

The database of books on the reader is corrupted. Try the " @@ -6322,86 +6430,86 @@ msgstr "" " \n" " " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:978 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1025 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 msgid "Uploading books to device." msgstr "Könyvek feltöltése az eszközre." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 msgid "EPUB Books" msgstr "EPUB könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 msgid "LRF Books" msgstr "LRF könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 msgid "HTML Books" msgstr "HTML könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 msgid "LIT Books" msgstr "LIT könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 msgid "MOBI Books" msgstr "MOBI könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:991 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 msgid "Text books" msgstr "Text könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:992 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 msgid "PDF Books" msgstr "PDF könyvek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 msgid "Comics" msgstr "Képregény" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" msgstr "Archívumok" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1034 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Hiba történt a metaadatok olvasása közben" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1035 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Nem sikerült a metaadatok olvasása a következőből:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1057 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1564 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "Nincs könyv kiválasztva" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1083 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1119 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6409,110 +6517,131 @@ msgstr "" "A kiválasztott könyvek véglegesen törölve lesznek a számítógépedről. " "Biztosan törölni akarja?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1146 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Könyvek törlése az eszközről." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1177 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Nem lehet letölteni a metaadatokat" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1178 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1235 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1268 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1293 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "Nincs könyv kiválasztva." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "borítók" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metaadatok" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "%s letöltése %d könyvhöz" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Néhány metaadatot nem sikerült letölteni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1220 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Hiba történt a metaadatok letöltése közben a következőhöz:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1223 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Nem sikerült metaadatokat letölteni:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1267 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Metaadat nem szerkeszthető" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Nem lehet lemezre menteni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Válassza ki a célkönyvtárt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1322 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Mentési hiba" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1323 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Hiba történt mentés közben." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1330 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1331 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Néhány könyvet nem sikerült menteni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1332 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Kattintson a 'Részletek megjelenítése' gombra" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1351 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "Hírek letöltése: " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1365 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr " letöltve" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "Nem lehet konvertálni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1434 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "%d könyv konvertálása" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1601 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "Nem lehet a könyvet olvasni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1563 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "A mappát nem lehet megnyitni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1585 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "Több könyv is ki van választva" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1586 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6523,31 +6652,31 @@ msgstr "" "lelassíthatja a gépedet. Ha a művelet elindult, már nem lehet leállítani. " "Biztosan folytatja?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1602 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "Nincs elérhető formátum a következőhöz: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1643 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "Beállítás nem lehetséges" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "Művelet végrehajtása közben nem lehet a beállításokat változtatni" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "Nincs részletes információ" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "A könyvekhez nincsenek részletes információk az eszközön." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1743 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "Hiba a kapcsolatban" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6555,12 +6684,12 @@ msgstr "" "Hiba az eszközkapcsolatban. Válassza le majd csatlakoztassa újra az eszközt " "és/vagy indítssa újra az eszközt, esetleg a programot." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1767 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1795 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "Konvertálási hiba" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1768 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6570,23 +6699,23 @@ msgstr "" "egy külső program segítségével a DRM-et (Digital Rights Management) el kell " "távolítania." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1796 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "Nem sikerült" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1824 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "Érvénytelen adatbázis elérési útvonal" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1825 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "Nem elérhető: %s. Helyette %s lesz az adatbázis." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1875 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." @@ -6594,11 +6723,11 @@ msgstr "" "sok önkéntes erőfeszítéseinek eredménye a világ minden tájáról. Ha " "hasznosnak találja, kérem, támogassa a fejlesztést." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1900 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Folyamatban van néhány művelet végrehajtása. Megszakítja?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6608,11 +6737,11 @@ msgstr "" " A kilépés adatvesztést okozhat az eszközön.
\n" " Biztos, hogy ki akarsz lépni??" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1907 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "FIGYELEM: Aktív műveletek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1959 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6620,7 +6749,7 @@ msgstr "" "tovább fut a tálcán. A bezáráshoz válassza a Kilépést a tálcaikon " "menüjéből." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1978 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" @@ -6628,11 +6757,11 @@ msgstr "" "Legújabb verzió: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "Frissítés elérhető" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6694,69 +6823,69 @@ msgstr "Exportálás" msgid "Import" msgstr "Importálás" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "Ebook olvasó beállítása" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "Betűbeállítások" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "Serif ('talpas') betűkészlet:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "Sans ('talp nélküli') betűkészlet:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "Monospace(rögzített szélességű) betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "Alap betűtípus" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr " képpont" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "Monospace(rögzített szélességű) betűméret" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "&Alap betűtípus:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "Serif(talpas)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "Sans-serif ('talp nélküli')" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "Monospace(rögzített szélességű)" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "Az utoljára használt ablakméret megjegyzése" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "Maximális ablakszélesség" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "Hosszú szavak elválasztása" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." @@ -6764,23 +6893,27 @@ msgstr "" "Az elválasztás alapértelmezett nyelve. Ha a könyv nem tartalmaz nyelvi " "adatokat, akkor ez lesz használva." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "Alapértelmezett elválasztási nyelv." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "Felhasználói stíluslap" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 msgid "Double click to change a keyboard shortcut" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" msgstr "" @@ -6798,7 +6931,7 @@ msgid "Remember last used window size" msgstr "Az utoljára használt ablakméret megjegyzése" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6810,43 +6943,47 @@ msgstr "" msgid "Maximum width of the viewer window, in pixels." msgstr "Az olvasóprogram ablakának maximális szélessége képpontban." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" msgstr "Szöveg elválasztás" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Default language for hyphenation rules" msgstr "Az elválasztási szabályok nyelve" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 msgid "Font options" msgstr "Betűbeállítások" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 msgid "The serif font family" msgstr "Serif(talpas) betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 msgid "The sans-serif font family" msgstr "Sans-serif ('talp nélküli') betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 msgid "The monospaced font family" msgstr "Monospace(rögzített szélességű) betűkészlet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The standard font size in px" msgstr "Az alap betűméret pixelben" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 msgid "The monospaced font size in px" msgstr "Monospace(rögzített szélességű) betűméret pixelben" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "Alap betűtípus" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 msgid "&Lookup in dictionary" msgstr "" @@ -7059,6 +7196,14 @@ msgid "Print eBook" msgstr "eBook nyomtatása" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" @@ -7068,7 +7213,7 @@ msgstr "" "%d\n" "könyv és hír" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" @@ -7078,7 +7223,7 @@ msgstr "" "%s\n" "szabad" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" @@ -7088,7 +7233,7 @@ msgstr "" "%s\n" "szabad" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" @@ -7098,39 +7243,39 @@ msgstr "" "%s\n" "szabad" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "A számítógépen lévő könyvek megjelenítése." -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "A készülék belső memóriájában lévő könyvek megjelenítése" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "A könyvolvasó eszköz 'A' memóriakártyáján lévő könyvek megjelenítése" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "A könyvolvasó eszköz 'B' memóriakártyáján lévő könyvek megjelenítése" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "Kisbetű - nagybetű váltás" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "Nagybetűk" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "Kisbetűk" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "Kisbetű - nagybetű váltás" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "Minden Szó Nagybetűvel Kezdődik" @@ -7186,7 +7331,7 @@ msgstr "" msgid "Could not move library" msgstr "Nem lehet áthelyezni az adatbázist" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "beállítás varázsló" @@ -7473,6 +7618,88 @@ msgid "" "WordPlayer, etc. integration." msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7724,7 +7951,42 @@ msgstr "" msgid "You must specify some ids or the %s option" msgstr "Meg kell adnia néhány ID-t vagy a %s opciót" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:591 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "" +"Részletes kimeneti információk megjelenítése. Hasznos hibakeresésnél." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7736,27 +7998,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1656 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "

Régi adatbázis áthozatala a jelenlegibe: %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1685 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "Másolás: %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1702 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "Adatbázis tömörítése" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1795 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "SQL adatbázis ellenőrzése" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1832 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "Hiányzó fájlok keresése" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1854 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "Ellenőrzött ID" @@ -7769,50 +8031,52 @@ msgid "The authors" msgstr "Szerzők" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The author sort string" -msgstr "Szerző rendezési forma" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 msgid "The tags" msgstr "Címkék" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 msgid "The series" msgstr "Sorozat" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 msgid "The rating" msgstr "Értékelés" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 msgid "The ISBN" msgstr "ISBN szám" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 msgid "The publisher" msgstr "Kiadó" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 msgid "The date" msgstr "Dátum" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 msgid "The published date" msgstr "Kiadás dátuma" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "Calibre azonosító" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:45 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "Lemezre mentés beállításai" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:51 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." @@ -7820,7 +8084,7 @@ msgstr "" "Alapesetben a calibre a mentett fájlokban felülírja a metaadatokat az " "adatbázisban lévőkkel. Ez lassítja a mentési folyamatot." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:54 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." @@ -7828,14 +8092,14 @@ msgstr "" "Alapesetben a calibre a metaadatokat egy különálló OPF fájlba írja is a " "könyv mappájában." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:57 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" "Alapesetben a calibre a borítót önálló képfájlként a könyv mappájába menti." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:60 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." @@ -7843,7 +8107,7 @@ msgstr "" "A mentendő formátumok vesszővel elválasztott listája. Alapesetben minden " "formátum mentve lesz." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:63 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7854,7 +8118,7 @@ msgstr "" "szerzőnkénti mappákba menti, a fájlnév pedig tartalmazza a címet és a " "szerzőt. Elérhető opciók: {%s}" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:68 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 msgid "" "The template to control the filename and directory structure of files sent " "to the device. Default is \"%s\" which will save books into a per-author " @@ -7862,7 +8126,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7874,22 +8138,22 @@ msgstr "" "az opciót, akkor néhány esetben hibát tapasztalhat, attól függően, hogy az " "Ön által használt fájlrendszernek milyen jó a UNICODE támogatása." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:81 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" "A dátum formázása. %Y - év, %b - hónap, %d - nap. Alapértelmezett: %b, %Y." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "Elérési út kisbetűssé alakítása" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:86 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "Szóközök helyettesítése alsóvonallal" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:245 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "A kívánt formátum nem elérhető" @@ -7897,7 +8161,7 @@ msgstr "A kívánt formátum nem elérhető" msgid "Password to access your calibre library. Username is " msgstr "A calibre adatbázis jelszava. Felhasználónév: " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -7907,7 +8171,7 @@ msgstr "" "\n" "A 'calibre' tartalom kiszolgáló indítása." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" @@ -7927,47 +8191,47 @@ msgstr "" "Ha szóközöket tartalmazó paramétereket ad meg %prog-nak, akkor a paraméterek " "idézőjelek között legyenek." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:631 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "A könyveket tartalmazó adatbázis elérési útja" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:633 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "Minta a metaadatok kinyerésére a fájlnévből" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:635 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "Felhasználói kulcs az isbndb.com-hoz:" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:637 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "Alap időtúllépés a hálózati műveletekhez (másodpercben)" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:639 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "A könyveket tartalmazó adatbázisfájl mappájának elérési útja" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:641 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" msgstr "A felhasználói felület nyelve:" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:643 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "Az ebook konvertálás alapértelmezett kimeneti formátuma." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:647 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "A bementi formátum listája preferált sorrendben" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:649 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "Metaadatok olvasása a fájlokból" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:651 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "Műveletek prioritási sorrendje" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:653 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 msgid "Swap author first and last names when reading metadata" msgstr "" @@ -7983,7 +8247,7 @@ msgstr "Leállítva" msgid "Finished" msgstr "Kész" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "A művelet végrehajtása folyamatban..." @@ -8016,38 +8280,46 @@ msgid "English (Australia)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (Canada)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (India)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (Thailand)" +msgid "English (India)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 -msgid "English (Cyprus)" +msgid "English (Thailand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 -msgid "English (Pakistan)" +msgid "English (Cyprus)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 -msgid "English (Singapore)" +msgid "English (Pakistan)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 -msgid "German (AT)" +msgid "English (Singapore)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 -msgid "Dutch (NL)" +msgid "English (Yemen)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" msgstr "" @@ -8110,77 +8382,85 @@ msgstr "" msgid "Unknown News Source" msgstr "Ismeretlen Hírforrás" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:520 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:606 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "A letöltés befejeződött" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "A következő cikkek letöltése nem sikerült:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "A következő cikkek részeinek letöltése nem sikerült:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:618 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "\tHibás linkek:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:699 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Nem lehet a cikket letölteni. Futtassa a -vv paraméterrel a hibaüzenetek " "megjelenítéséhez" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "Hírek letöltése..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:725 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "Hírek letöltve az index oldalról" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:731 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "Borító letöltése..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:789 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "Letöltés megkezdve [%d szálon]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:805 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "Hírek letöltve: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "Nem lehet borítót letölteni: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:827 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "Borító letöltése a következő helyről: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:970 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Névtelen Cikk" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1041 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "Cikk letöltve: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1052 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "A következő cikk letöltése nem sikerült: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1069 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "Hír letöltése" @@ -8199,7 +8479,7 @@ msgstr "Ütemezett" msgid "Custom" msgstr "Felhasználói" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8208,24 +8488,24 @@ msgstr "" "%prog URL\n" "URL például a http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "Az az alapmappa, ahová az URL mentve lesz. Alapértelmezett: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" "Az időtúllépés másodpercben a szerver válaszára várva. Alapérték: %default mp" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "A követendő linkmélység maximális értéke, Alapértelmezett %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8233,7 +8513,7 @@ msgstr "" "A letöltendő fájlok maximális száma.Ez csak a HTML tag-ekben lévő " "fájlokra érvényes. Alapértelmezett: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8241,7 +8521,7 @@ msgstr "" "A minimális időköz másodpercben az egymást követő letöltések között. " "Alapérték: %default mp." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8249,7 +8529,7 @@ msgstr "" "A letölteni kívánt weboldal karakterkódolása. Alapbeállításként automatikus " "felismerés." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8260,7 +8540,7 @@ msgstr "" "bármelyiknek, feldolgozásra kerül. Alapesetben minden link feldolgozásra " "kerül." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8269,15 +8549,10 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Ne töltse le a CSS stíluslapokat." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 -msgid "Show detailed output information. Useful for debugging" -msgstr "" -"Részletes kimeneti információk megjelenítése. Hasznos hibakeresésnél." - #~ msgid "Path to the cover to be used for this book" #~ msgstr "Könyvborító elérési útja" @@ -8335,9 +8610,15 @@ msgstr "" #~ msgid "Set the publisher of this book." #~ msgstr "A könyv kiadója." +#~ msgid "Useful for debugging." +#~ msgstr "Hasznos hibakeresésnél." + #~ msgid "Output directory. Defaults to current directory." #~ msgstr "Célkönyvtár. Az alapértelmezett a jelenlegi könyvtár." +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "Célfájl. Alapértelmezés szerint a forrásfájl nevéből lesz generálva." + #~ msgid "" #~ "Set the author(s). Multiple authors should be set as a comma separated list. " #~ "Default: %default" @@ -9136,6 +9417,9 @@ msgstr "" #~ "

Felhasználói Kézikönyv

A Felhasználói Kézikönyv elérhető
online." +#~ msgid "Character encoding for input. Default is to auto detect." +#~ msgstr "Bemeneti karakterkódolás. Alapértelmezett: automatikus felismerés." + #~ msgid "Input character &encoding" #~ msgstr "Bemeneti karakterkódolás" @@ -9214,12 +9498,21 @@ msgstr "" #~ msgid "%d recipes" #~ msgstr "%d hírösszeállítás" +#~ msgid "Produce more human-readable XML output." +#~ msgstr "Még olvashatóbb XML kimenet létrehozása." + #~ msgid "Add a directory to the frequently used directories list" #~ msgstr "Mappa hozzáadása a leggyakrabban használt mappák listájához" #~ msgid "Customize %s" #~ msgstr "%s testreszabása" +#~ msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" +#~ msgstr "Használat: ebook-convert INFILE OUTFILE [OPTIONS..]" + +#~ msgid "Options to control e-book conversion." +#~ msgstr "Az ebook konvertálás beállításai" + #~ msgid "" #~ "See the User Manual for more help" @@ -9259,6 +9552,13 @@ msgstr "" #~ msgid "The series number" #~ msgstr "Sorozaton belüli sorszám" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Ez az RTF fájl olyan tulajdonságokat tartalmaz, melyeket a calibre nem " +#~ "támogat. Konvertálja át először HTML-ba, majd próbálja újra." + #~ msgid "" #~ "

For example, to match all h2 tags that have class=\"chapter\", set tag to " #~ "h2, attribute to class and value to " @@ -9320,6 +9620,9 @@ msgstr "" #~ "Vigye a kurzort a megfelelő mező fölé és látni fogja a mezőhöz tartozó " #~ "kifejezés mintát.

" +#~ msgid "The author sort string" +#~ msgstr "Szerző rendezési forma" + #~ msgid "Must set account information" #~ msgstr "Fiókbeállítás szükséges" diff --git a/src/calibre/translations/ja.po b/src/calibre/translations/ja.po index e5102bc247..36d6fa2f95 100644 --- a/src/calibre/translations/ja.po +++ b/src/calibre/translations/ja.po @@ -7,21 +7,21 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-11 00:36+0000\n" -"PO-Revision-Date: 2010-01-10 23:24+0000\n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-02 15:01+0000\n" "Last-Translator: vbk \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-12 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-02-03 04:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "まったく何もしません。(何も影響しません。)" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 #: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 #: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 @@ -29,8 +29,8 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:203 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -50,14 +50,13 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:22 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 @@ -65,18 +64,18 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:597 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:787 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -97,29 +96,29 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:272 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:279 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:565 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:574 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:794 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:797 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:451 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:397 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:419 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:914 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1040 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 #: /home/kovid/work/calibre/src/calibre/library/cli.py:281 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 @@ -127,13 +126,13 @@ msgstr "まったく何もしません。(何も影響しません。)" #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1517 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1519 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1630 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 @@ -142,22 +141,26 @@ msgstr "まったく何もしません。(何も影響しません。)" msgid "Unknown" msgstr "不明です。" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "基礎" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:149 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "ファイル形式" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:183 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "メタデータ読み込み" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:214 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "メタデータ書き出し" +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " @@ -226,11 +229,11 @@ msgstr "%sファイルにメタデータを設定する" msgid "Set metadata from %s files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -238,11 +241,11 @@ msgid "" "encoding declarations." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -376,7 +379,7 @@ msgstr "有効なプラグインが見つからない " msgid "Initialization of plugin %s failed with traceback:" msgstr "プラグイン%sの初期化に失敗してトレースバック" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:397 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -384,29 +387,29 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:403 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "それが含まれているzipファイルへのパスを指定して、プラグインを追加します。" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:405 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "カスタムのプラグインを名前によって取り除きます。ビルトインのプラグインには影響はありません。" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:407 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." msgstr "プラグインをカスタマイズします。プラグインの名前とカスタマイズした文字列は、コンマで区切って指定します。" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:409 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "インストールされたプラグインを一覧表示" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:411 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "名付けたプラグインを有効にする" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:413 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "名付けたプラグインを無効にする" @@ -414,7 +417,7 @@ msgstr "名付けたプラグインを無効にする" msgid "Communicate with Android phones." msgstr "Androidフォンと通信します。" -#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:25 +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 msgid "" "Comma separated list of directories to send e-books to on the device. The " "first one that exists will be used" @@ -424,11 +427,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Blackberryスマートフォンと通信します。" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -438,7 +441,7 @@ msgstr "" msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "" @@ -555,73 +558,73 @@ msgstr "" msgid "Transferring books to device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:173 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:180 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:160 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:208 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:175 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:214 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 msgid "Communicate with the Sony PRS-600/700/900 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:271 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "%sディスク・ドライブが検出できない場合は、再起動してください。" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:440 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 msgid "Unable to detect the %s mount point. Try rebooting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:495 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:588 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:600 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:608 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:745 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:747 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:749 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:782 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" msgstr "メインメモリには十分な空きスペースがない" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:784 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:786 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" msgstr "記憶媒体のカードには十分な空きスペースがない" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:803 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:826 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1417 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "ニュース" @@ -668,8 +671,8 @@ msgstr "" msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:164 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:169 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "" @@ -753,8 +756,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -1193,9 +1196,9 @@ msgid "" "disables the generation of this cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:143 -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:128 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:101 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "" @@ -1504,20 +1507,20 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:394 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1106 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 msgid "Title" msgstr "書籍名" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1107 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Author(s)" msgstr "著者" @@ -1534,18 +1537,18 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "コメント" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1110 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" @@ -1553,7 +1556,7 @@ msgstr "タグ" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" @@ -1564,7 +1567,7 @@ msgid "Language" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 msgid "Timestamp" msgstr "" @@ -1578,7 +1581,7 @@ msgstr "発行日" msgid "Rights" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "" @@ -1643,27 +1646,27 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "" @@ -1762,7 +1765,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "" @@ -1789,101 +1792,77 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "出力ファイル名(デフォルトは入力ファイル名)" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "デバッグに有用" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "%s フォーマットは対応してません" @@ -2173,10 +2152,11 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2228,206 +2208,196 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:179 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:197 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:264 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:290 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:294 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 -msgid "" -"For settings that cannot be specified in this dialog, use the values saved " -"in a previous conversion (if they exist) instead of using the defaults " -"specified in the Preferences" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 -msgid "Bulk Convert" -msgstr "まとめて変換" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 -msgid "Options specific to the output format." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 -msgid "Comic Input" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 @@ -2444,14 +2414,22 @@ msgstr "" msgid "Options specific to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -msgid "input" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 @@ -2481,6 +2459,86 @@ msgstr "" msgid "Form" msgstr "フォーム" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "まとめて変換" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2576,12 +2634,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2617,17 +2675,6 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "" @@ -2924,7 +2971,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "作者(&A): " @@ -2940,7 +2987,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "発行者(&P): " @@ -2951,7 +2998,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -2959,15 +3006,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3089,7 +3136,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1551 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "" @@ -3130,7 +3177,7 @@ msgid "Options specific to the input format." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" @@ -3293,8 +3340,8 @@ msgid "Force maximum line lenght" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3381,197 +3428,203 @@ msgid "" "href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:222 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:233 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:266 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:300 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" -msgstr "" +msgstr "後、ライブラリから削除" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "既定のデバイス送信処理を設定" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:326 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:333 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:335 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 msgid "Send specific format to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 msgid "Send specific format to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Send specific format to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:526 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:527 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:572 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:575 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:577 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:590 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:620 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:627 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:720 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:836 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:843 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:621 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:646 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:647 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:651 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:678 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:721 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:837 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:751 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:805 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:844 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:893 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" @@ -3588,34 +3641,68 @@ msgstr "" msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:351 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "パス名" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 #: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "次へ(&N)" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "" @@ -3712,127 +3799,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1224 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "エラー" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3926,252 +4013,256 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "基本設定" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "電子書籍の場所(&L) (電子書籍は著者別のフォルダに格納され、メタデータは metadata.db に格納されます。)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "最新のバージョンが利用可能なときに通知する(&N)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "既定のネットワーク・タイムアウト(&T):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "言語を選択(&L) (再起動が必要です):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "既定の出力フォーマット(&O) :" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "入力フォーマットの優先順位(&I):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "シリーズ番号にローマ数字を使用(&R)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "システムトレイアイコンを有効にする(&T) (再起動が必要)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "システムトレイの通知を有効にする(&N)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "表紙ブラウズを別ウインドウで行う(&B) (再起動が必要)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "入力中に検索する" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "ダウンロードしたニュースを電子書籍リーダーに自動的に転送する(&N)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "ニュースが自動的にリーダーに転送されるとき、ライブラリから削除する(&D)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4186,33 +4277,33 @@ msgstr "" "http://myhostname:8080 を登録してください。myhostname " "はcalibreが稼働しているコンピュータのホスト名、もしくはIPアドレスです。" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4277,40 +4368,40 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "警告" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4318,27 +4409,31 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "取得" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "該当箇所" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4359,71 +4454,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "メタ情報を編集" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "メタ情報" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4436,109 +4535,109 @@ msgid "Choose formats for " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:985 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 msgid "No permission" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:187 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:245 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:251 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:246 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:252 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:409 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 msgid "This ISBN number is valid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 msgid "This ISBN number is invalid" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 msgid "Downloading cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:520 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 msgid "Cannot fetch cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:521 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Could not fetch cover.
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 msgid "The download timed out." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 msgid "Bad cover" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "The cover is not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 msgid "There were errors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:594 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:595 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -4824,11 +4923,11 @@ msgstr "" msgid "Choose formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -5208,12 +5307,12 @@ msgid " - Jobs" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1108 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 msgid "Size (MB)" msgstr "サイズ (MB)" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1109 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 msgid "Date" msgstr "日付" @@ -5221,35 +5320,35 @@ msgstr "日付" msgid "Rating" msgstr "評価" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:343 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:410 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "なし" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 msgid "Not allowed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:873 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1044 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 msgid "Format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1098 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 msgid "Double click to edit me

" msgstr "" @@ -5325,52 +5424,52 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5526,11 +5625,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5538,37 +5637,37 @@ msgstr "" msgid "Search" msgstr "検索" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 msgid "Press a key..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 msgid "Already assigned" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 msgid "already assigned to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid " or " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 msgid "&Default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 msgid "Customize shortcuts for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:215 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 msgid "Keys" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:217 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 msgid "Double click to change" msgstr "" @@ -5661,11 +5760,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5752,7 +5851,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1659 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "" @@ -5784,50 +5883,58 @@ msgstr "個別に変換" msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" msgstr "ウェルカム・ウィザードを開始" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 msgid "Similar books..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:468 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 msgid "Bad database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:471 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 msgid "Calibre Library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:481 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1815 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:685 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:833 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:859 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 msgid "Connected " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:871 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:872 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 msgid "" "\n" "

The database of books on the reader is corrupted. Try the " @@ -5843,195 +5950,216 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:933 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 msgid "How many empty books?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:934 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 msgid "How many empty books should be added?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:978 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1025 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 msgid "Uploading books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 msgid "EPUB Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 msgid "LRF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:988 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 msgid "HTML Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 msgid "LIT Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:990 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 msgid "MOBI Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:991 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 msgid "Text books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:992 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 msgid "PDF Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 msgid "Comics" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:994 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 msgid "Archives" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:998 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1034 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1035 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1057 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1564 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1067 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1083 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1119 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1146 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1177 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "メタデータをダウンロードできません" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1178 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1235 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1268 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1293 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1193 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1195 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1197 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1220 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1223 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1234 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1267 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "メタデータを編集できません" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1295 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1322 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1323 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1330 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1331 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1332 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1351 -msgid "Fetching news from " +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1365 -msgid " fetched." +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 +msgid "Generating %s catalog..." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 +msgid "Fetching news from " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 +msgid " fetched." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1434 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1545 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1601 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1563 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1585 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1586 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6039,101 +6167,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1602 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1643 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1644 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1743 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1744 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1767 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1795 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1768 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1781 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1796 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1824 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1825 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1875 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1900 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1907 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1959 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1978 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1987 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6195,91 +6323,95 @@ msgstr "" msgid "Import" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr " ピクセル" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 msgid "Double click to change a keyboard shortcut" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 msgid "&Keyboard shortcuts" msgstr "" @@ -6297,7 +6429,7 @@ msgid "Remember last used window size" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:91 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6307,43 +6439,47 @@ msgstr "" msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:45 -msgid "Hyphenate text" +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 -msgid "Default language for hyphenation rules" +msgid "Hyphenate text" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 -msgid "Font options" +msgid "Default language for hyphenation rules" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 -msgid "The serif font family" +msgid "Font options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 -msgid "The sans-serif font family" +msgid "The serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 -msgid "The monospaced font family" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:56 -msgid "The standard font size in px" +msgid "The sans-serif font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 -msgid "The monospaced font size in px" +msgid "The monospaced font family" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 +msgid "The standard font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 +msgid "The monospaced font size in px" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 msgid "&Lookup in dictionary" msgstr "" @@ -6548,6 +6684,14 @@ msgid "Print eBook" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" @@ -6557,60 +6701,60 @@ msgstr "" "%d\n" "書籍あります" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:204 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:205 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "" @@ -6657,7 +6801,7 @@ msgstr "" msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "" @@ -6924,6 +7068,88 @@ msgid "" "WordPlayer, etc. integration." msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7139,7 +7365,41 @@ msgstr "" msgid "You must specify some ids or the %s option" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:591 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7151,27 +7411,27 @@ msgid "" "For help on an individual command: %%prog command --help\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1656 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1685 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1702 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "データベースのコンパクト化" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1795 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1832 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1854 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "" @@ -7184,74 +7444,76 @@ msgid "The authors" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The author sort string" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 -msgid "The tags" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 -msgid "The series" +msgid "The tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 -msgid "The series number. To get leading zeros use {series_index:0>3s}" +msgid "The series" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 -msgid "The rating" +msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 -msgid "The ISBN" +msgid "The rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 -msgid "The publisher" +msgid "The ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 -msgid "The date" +msgid "The publisher" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 -msgid "The published date" +msgid "The date" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:45 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:51 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:54 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:57 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:60 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:63 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7259,7 +7521,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:68 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 msgid "" "The template to control the filename and directory structure of files sent " "to the device. Default is \"%s\" which will save books into a per-author " @@ -7267,7 +7529,7 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7275,21 +7537,21 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:81 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:84 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:86 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:245 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "" @@ -7297,14 +7559,14 @@ msgstr "" msgid "Password to access your calibre library. Username is " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" "Start the calibre content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" @@ -7322,47 +7584,47 @@ msgid "" "arguments in quotation marks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:631 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:633 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:635 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:637 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:639 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:641 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" msgstr "UIの言語" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:643 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "ebook変換でのデフォルトフォーマット" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:647 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:649 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:651 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "ワーカープロセスの優先度" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:653 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 msgid "Swap author first and last names when reading metadata" msgstr "" @@ -7378,7 +7640,7 @@ msgstr "" msgid "Finished" msgstr "完了" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7411,38 +7673,46 @@ msgid "English (Australia)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (Canada)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (India)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (Thailand)" +msgid "English (India)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 -msgid "English (Cyprus)" +msgid "English (Thailand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 -msgid "English (Pakistan)" +msgid "English (Cyprus)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 -msgid "English (Singapore)" +msgid "English (Pakistan)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 -msgid "German (AT)" +msgid "English (Singapore)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 -msgid "Dutch (NL)" +msgid "English (Yemen)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 msgid "Dutch (BE)" msgstr "" @@ -7503,75 +7773,83 @@ msgstr "" msgid "Unknown News Source" msgstr "未知のニュースソース" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:520 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:606 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "ダウンロード完了" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:608 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:618 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:699 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:720 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "フィードの取得中" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:725 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:731 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:789 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:805 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:815 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:827 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:970 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1041 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1052 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1069 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "" @@ -7590,55 +7868,55 @@ msgstr "スケジュール" msgid "Custom" msgstr "カスタム" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" "Where URL is for example http://google.com" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7647,14 +7925,10 @@ msgid "" "applied first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 -msgid "Show detailed output information. Useful for debugging" -msgstr "" - #~ msgid "Options to control the conversion to EPUB" #~ msgstr "EPUBへの変換をコントロールするためのオプション" @@ -7730,9 +8004,15 @@ msgstr "" #~ msgid "Output HTML is \"pretty printed\" for easier parsing by humans" #~ msgstr "出力HTMLを人に読みやすいよう整形する" +#~ msgid "Useful for debugging." +#~ msgstr "デバッグに有用" + #~ msgid "Output directory. Defaults to current directory." #~ msgstr "出力先(デフォルトはカレント)" +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "出力ファイル名(デフォルトは入力ファイル名)" + #~ msgid "" #~ "Set the author(s). Multiple authors should be set as a comma separated list. " #~ "Default: %default" From 9ea276be209aee48f0927191d5bedf5378eb70af Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 3 Feb 2010 10:22:00 -0700 Subject: [PATCH 028/158] Fix #4779 (Wall Street Journal (Free Content)) --- resources/recipes/the_gazette.recipe | 22 ----------------- resources/recipes/wsj_free.recipe | 2 +- src/calibre/ebooks/pdf/reflow.py | 35 ++++++++++++++++++++++------ 3 files changed, 29 insertions(+), 30 deletions(-) delete mode 100644 resources/recipes/the_gazette.recipe diff --git a/resources/recipes/the_gazette.recipe b/resources/recipes/the_gazette.recipe deleted file mode 100644 index 19afff986e..0000000000 --- a/resources/recipes/the_gazette.recipe +++ /dev/null @@ -1,22 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - -class The_Gazette(BasicNewsRecipe): - - cover_url = 'file:///D:/Documents/Pictures/Covers/The_Gazette.jpg' - title = u'The Gazette' - __author__ = 'Jerry Clapperton' - description = 'Montreal news in English' - language = 'en_CA' - - oldest_article = 7 - max_articles_per_feed = 20 - use_embedded_content = False - remove_javascript = True - no_stylesheets = True - encoding = 'utf-8' - - keep_only_tags = [dict(name='div', attrs={'id':['storyheader','page1']})] - - extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' - - feeds = [(u'News', u'http://feeds.canada.com/canwest/F297'), (u'Opinion', u'http://feeds.canada.com/canwest/F7383'), (u'Arts', u'http://feeds.canada.com/canwest/F7366'), (u'Life', u'http://rss.canada.com/get/?F6934'), (u'Business', u'http://feeds.canada.com/canwest/F6939'), (u'Travel', u'http://rss.canada.com/get/?F6938'), (u'Health', u'http://feeds.canada.com/canwest/F7397'), (u'Technology', u'http://feeds.canada.com/canwest/F7411')] diff --git a/resources/recipes/wsj_free.recipe b/resources/recipes/wsj_free.recipe index b190f43849..e29bfe3dde 100644 --- a/resources/recipes/wsj_free.recipe +++ b/resources/recipes/wsj_free.recipe @@ -215,7 +215,7 @@ class WSJ(BasicNewsRecipe): # first, check if there is an h3 tag which provides a section name stag = divtag.find('h3') if stag: - if stag.parent['class'] == 'dynamic': + if stag.parent.get('class', '') == 'dynamic': # a carousel of articles is too complex to extract a section name # for each article, so we'll just call the section "Carousel" section_name = 'Carousel' diff --git a/src/calibre/ebooks/pdf/reflow.py b/src/calibre/ebooks/pdf/reflow.py index 9f98147032..552af1590f 100644 --- a/src/calibre/ebooks/pdf/reflow.py +++ b/src/calibre/ebooks/pdf/reflow.py @@ -262,7 +262,6 @@ class Region(object): max_lines = max(max_lines, len(c)) return max_lines - @property def is_small(self): return self.line_count < 3 @@ -438,9 +437,8 @@ class Page(object): # absorb into a neighboring region (prefer the one with number of cols # closer to the avg number of cols in the set, if equal use larger # region) - # merge contiguous regions that can contain each other - '''absorbed = set([]) found = True + absorbed = set([]) while found: found = False for i, region in enumerate(self.regions): @@ -452,10 +450,33 @@ class Page(object): regions.append(self.regions[j]) else: break - prev = None if i == 0 else i-1 - next = j if self.regions[j] not in regions else None - ''' - pass + prev_region = None if i == 0 else i-1 + next_region = j if self.regions[j] not in regions else None + if prev_region is None and next_region is not None: + absorb_into = next_region + elif next_region is None and prev_region is not None: + absorb_into = prev_region + elif prev_region is None and next_region is None: + if len(regions) > 1: + absorb_into = regions[0] + regions = regions[1:] + else: + absorb_into = None + else: + absorb_into = prev_region + if next_region.line_count >= prev_region.line_count: + avg_column_count = sum([len(r.columns) for r in + regions])/float(len(regions)) + if next_region.line_count > prev_region.line_count \ + or abs(avg_column_count - len(prev_region.columns)) \ + > abs(avg_column_count - len(next_region.columns)): + absorb_into = next_region + if absorb_into is not None: + absorb_into.absorb_region(regions) + absorbed.update(regions) + i = j + for region in absorbed: + self.regions.remove(region) From 4ecab6bc9ee483ddeddb77b8681635b5ab9918e6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 3 Feb 2010 10:54:23 -0700 Subject: [PATCH 029/158] New recipes for Gizmodo, News Straits Times, Read It Later, TidBits by Darko Miletic --- resources/images/news/gizmodo.png | Bin 0 -> 640 bytes resources/images/news/newsstraitstimes.png | Bin 0 -> 816 bytes resources/images/news/readitlater.png | Bin 0 -> 810 bytes resources/images/news/tidbits.png | Bin 0 -> 783 bytes resources/recipes/gizmodo.recipe | 40 +++++++++++++ resources/recipes/newsstraitstimes.recipe | 35 +++++++++++ resources/recipes/readitlater.recipe | 64 +++++++++++++++++++++ resources/recipes/tidbits.recipe | 53 +++++++++++++++++ 8 files changed, 192 insertions(+) create mode 100644 resources/images/news/gizmodo.png create mode 100644 resources/images/news/newsstraitstimes.png create mode 100644 resources/images/news/readitlater.png create mode 100644 resources/images/news/tidbits.png create mode 100644 resources/recipes/gizmodo.recipe create mode 100644 resources/recipes/newsstraitstimes.recipe create mode 100644 resources/recipes/readitlater.recipe create mode 100644 resources/recipes/tidbits.recipe diff --git a/resources/images/news/gizmodo.png b/resources/images/news/gizmodo.png new file mode 100644 index 0000000000000000000000000000000000000000..8f2e6f002b7719ac70fb67d31b6f5b6785d2c140 GIT binary patch literal 640 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI zAngIhZYQ(tK!Rljj_E*J0gT&!&6&%? z2M}o7@qdy2X8D_R5z#R2RZUt7s}^Y~Bsd&sU<4{-Wb?n(G_z;R?cC6<##}SKbt1p* zK7Re$=ex_--=EK4dRTXhp6#mubDNqS`#BFhKCXVxH&fw&DtF|Q?b%mEj=h{@c_sbU zj1!iNryP=Ue#z~%zar7f%0XJ#f48z``j#MxwI`HJ6fd=OT$GC6k;$-$BmUdmo%%Aj zLpzPzbY>>sZ3xmo-$UcZ*N+IWCGg^MliL*^1$8a`S$b5mw)y>v;FF%`8m3a z93>`lTL5EEwZt`|BqgyV)hf9t6-Y4{85kPq8W`ys7>5`dSeckv8CdEXm|Gbb+`K)J p14Tn_eoAIqC9(zs3oBDYD-#QdhPhGT^vI!P9L3o)?1`d;<)|(n~`^Keq0(` z>V8*1$-^-GpgGqej{dFH7e4WGEKzzD(C#Pe@>0&FV~Hb&tA6_;g&WS-GR=2)EKyB$ znw2+8@6oQ!n~gueHgNlH^JUKb=cm8F6%6t^Y3FwH{6~An8H>N)*jd4vDasfyanhf+ zyE$w-E;NhW-{YK{uWV2uS62ot0A#w+A>W7MZsT*vT(i!}Io7DgOZ(>Ep3c zPH!z6cTYRG=Rd=rx;585*F4wPw7uSb!DLCM5|h-A+8x=F8+81eG_DKo^85Ki<+UwCW|YTmHqC_*E=f&q7i`P>(lsxCG1CfP_X2J01Ml5K!WSR23Q)Q#B4>BZufD;7 z;q9SRFScKdC;EGn`+Nf?S@cc_^76$lhazt3;%$bt2X3wtt_C#~;-Pj+^Qr+?UF5S4&ktm@u+0)9(Ix{1~LBuDx zkEj2_)w`}%Q`Pp*ejJjo|1v}>G*nZ>C#-(WrSfg_fA$wYIcu{qqUYuJ%RIe2i&Kp3 z4SAX?lp3c@3a~gcvqI+Ot|vv-BD&qbGNu4UwPVHX^aJE=Ph6ZPHetaPm#m1$$Y*b_ zh?H&gP)VvV%9Xxdwjo#gdMV?I6)TRcFr9GeXrYYA{6{lqoK3qKaeu+Kbz+JvyVgy< zd+XNcFr}6U4jM<^Dcqi;*ubp=O`b1!gQ!R0gC`m~y zNwrEYN(E93Mh1okx&}tN2F4+V2396!R;Gr!2If`<28*s-%V9OXW$Ob!!_F3|gj4+SMZPM}KYU<8@OWZHPH!5ous3_T=GT z?-^+v0SzgdpC=zb|7lJB^$Si5w&pRJG6Z?$@wvW`t837&5i#e<&)v>b zE^#OZc$wa*T6FP*GQ<4y$Kx)hsqA!IbKXHJd%<)=B~GVnQlIU=X-?~ZoVm78=C{Oy z@4q!8g(k}eoh&=kC)X0~ux%#GU&cjSP3?3nuH4ODTbMK3?RtxVg=xjto2i<%&6~G# zA7T&dD|n=I-A%vX>7GV`MTN7JSeO`>Ou5l_K)-9rFW*HU<65+oOGNVxJkLa`%w3rj z-Y;`wTB*??K?jeMRRcIV8Tdm)> z16D6uZ5G0BV9n-vWOjCMSVKibq2A3_$+s=DSl2P#b*oFAr7yXC<+m-&YbE`sO6;_A z(-3kDKgIEwCwhPQjGtT16ivI<@T;xVExU(T{lyDe2aDevYXe&%|NfdcU0yXT)I2v? zSm8nFot-g>FOFF}yQz}FIFWJFOq0vS(K%v$@>!f7+oFB$$f;hNt7L5I`SC(?s^pUN zv`XXr2fKcWELhnY&c3(8Rxdx^Cbi7&_}<-mj*%&^sypX4o5d`Zvj2ERWJ=JUdCfj$ zjd#|y&kdUK_LKQ1*MsZ#h+hwVA-s2$^FPK@T3QA+^$|_Lw5D3(8c~vxSdwa$T$Bo= z7>o=I4Rj5RbPbF{3=OPI%&m;fbq&m|3=CA5+r&^b||EMpFO) literal 0 HcmV?d00001 diff --git a/resources/images/news/tidbits.png b/resources/images/news/tidbits.png new file mode 100644 index 0000000000000000000000000000000000000000..e64d71ec6887f57c6f66464bb90208ffe33978f9 GIT binary patch literal 783 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*U87?>OZ&!)pF42;O_6J(C3ljy)|1v9;Bzn6ZbT}F{HNh$Q zc+J$bSt)AQU2|V;y0LjrL7d+C-!coQ1j!^kah%5ZWo^`v=F_KnWG-qxab{@qpA}M9 zw&U-W^pB;ztvef5MrUr?cl6sbC5(8dK~VocSdbuT6_9tZ5GFdGcvvf6^D)(@GO~9vb(En_t_UIljh7% z5x*F=*;D4YMW6Gv?LYS2Sr(zQ=(*b@i<>-!GRYFWi!=^x%XRaAS`a(^&uuM%1+S&1 zr9P~bTNcT@Aa4EQ>{)G(Ei{%21bulR(bo8SSHv~G>G$ueWOpkbTyDgzUtjpE&4r^; zuf^edDZ>%_lBH8#?CMi1@4BU<&Gl1lWk~Cr87gnL7sQI!?l0w?|JJ}P)xc!RlMB{I zSO3<{iGF*Z+4u4Xn|>d)!(X-vGT5DK|NXyl0@LYDK)1LkF*?W`|DXQo(jPX4vSr;j z_O|Y9kFWf^$VH}Ha=(c2=Zrbm+Kzv&UM=#;_flQY?fit9Vn?Uu?va_ZJNPE|k3AwE z9(#9wEt0$(IA`aJ$z^Pjwed?sw1U=~Z_wdBzRggk)mUVbhsrmmsI_8Ov!=Q&W^~Y+ zx@i6Se!u0;OM?`7oR>^Fv43mUthU#?su{gB7ilcI{q~#91ry$-B84*F?=iLr*!urt zXm`DxsP)vV9GIX~OI#yLQW8s2t&)pUffR$0fuVt}fsw9(afqRTm5Hg9k)f`Exs`!| tvs$tsiiX_$l+3hBWDN!uRz}8Fra=854SVte<$)R)JYD@<);T3K0RR{HNE-kE literal 0 HcmV?d00001 diff --git a/resources/recipes/gizmodo.recipe b/resources/recipes/gizmodo.recipe new file mode 100644 index 0000000000..6f6e6ae0cf --- /dev/null +++ b/resources/recipes/gizmodo.recipe @@ -0,0 +1,40 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +gizmodo.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Gizmodo(BasicNewsRecipe): + title = 'Gizmodo' + __author__ = 'Darko Miletic' + description = "Gizmodo, the gadget guide. So much in love with shiny new toys, it's unnatural." + publisher = 'gizmodo.com' + category = 'news, IT, Internet, gadgets' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'utf-8' + use_embedded_content = True + language = 'en' + masthead_url = 'http://cache.gawkerassets.com/assets/gizmodo.com/img/logo.png' + extra_css = ' body{font-family: "Lucida Grande",Helvetica,Arial,sans-serif} img{margin-bottom: 1em} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_attributes = ['width','height'] + remove_tags = [dict(name='div',attrs={'class':'feedflare'})] + remove_tags_after = dict(name='div',attrs={'class':'feedflare'}) + + feeds = [(u'Articles', u'http://feeds.gawker.com/gizmodo/full')] + + def preprocess_html(self, soup): + return self.adeify_images(soup) + diff --git a/resources/recipes/newsstraitstimes.recipe b/resources/recipes/newsstraitstimes.recipe new file mode 100644 index 0000000000..ebbaca1a0e --- /dev/null +++ b/resources/recipes/newsstraitstimes.recipe @@ -0,0 +1,35 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.nst.com.my +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class Newstraitstimes(BasicNewsRecipe): + title = 'New Straits Times from Malaysia' + __author__ = 'Darko Miletic' + description = 'Learning Curve, Sunday People, New Straits Times from Malaysia' + publisher = 'nst.com.my' + category = 'news, politics, Malaysia' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'en' + masthead_url = 'http://www.nst.com.my/Current_News/NST/Images/new-nstonline.jpg' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [dict(name=['link','table'])] + keep_only_tags = dict(name='div',attrs={'id':'haidah'}) + + feeds = [(u'Articles', u'http://www.nst.com.my/rss/allSec')] + diff --git a/resources/recipes/readitlater.recipe b/resources/recipes/readitlater.recipe new file mode 100644 index 0000000000..4bd8fc2bd6 --- /dev/null +++ b/resources/recipes/readitlater.recipe @@ -0,0 +1,64 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +readitlaterlist.com +''' + +from calibre import strftime +from calibre.web.feeds.news import BasicNewsRecipe + +class Readitlater(BasicNewsRecipe): + title = 'Read It Later' + __author__ = 'Darko Miletic' + description = '''Personalized news feeds. Go to readitlaterlist.com to + setup up your news. Fill in your account + username, and optionally you can add password.''' + publisher = 'readitlater.com' + category = 'news, custom' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + needs_subscription = True + INDEX = u'http://readitlaterlist.com' + LOGIN = INDEX + u'/l' + + + feeds = [(u'Unread articles' , INDEX + u'/unread')] + + def get_browser(self): + br = BasicNewsRecipe.get_browser() + if self.username is not None: + br.open(self.LOGIN) + br.select_form(nr=0) + br['feed_id'] = self.username + if self.password is not None: + br['password'] = self.password + br.submit() + return br + + def parse_index(self): + totalfeeds = [] + lfeeds = self.get_feeds() + for feedobj in lfeeds: + feedtitle, feedurl = feedobj + self.report_progress(0, _('Fetching feed')+' %s...'%(feedtitle if feedtitle else feedurl)) + articles = [] + soup = self.index_to_soup(feedurl) + ritem = soup.find('ul',attrs={'id':'list'}) + for item in ritem.findAll('li'): + description = '' + atag = item.find('a',attrs={'class':'text'}) + if atag and atag.has_key('href'): + url = self.INDEX + atag['href'] + title = self.tag_to_string(item.div) + date = strftime(self.timefmt) + articles.append({ + 'title' :title + ,'date' :date + ,'url' :url + ,'description':description + }) + totalfeeds.append((feedtitle, articles)) + return totalfeeds + diff --git a/resources/recipes/tidbits.recipe b/resources/recipes/tidbits.recipe new file mode 100644 index 0000000000..702c65e9e4 --- /dev/null +++ b/resources/recipes/tidbits.recipe @@ -0,0 +1,53 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +db.tidbits.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class TidBITS(BasicNewsRecipe): + title = 'TidBITS: Mac News for the Rest of Us' + __author__ = 'Darko Miletic' + description = 'Insightful news, reviews, and analysis of the Macintosh and Internet worlds' + publisher = 'TidBITS Publishing Inc.' + category = 'news, Apple, Macintosh, IT, Internet' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'utf-8' + use_embedded_content = True + language = 'en' + remove_empty_feeds = True + masthead_url = 'http://db.tidbits.com/images/tblogo9.gif' + extra_css = ' body{font-family: Georgia,"Times New Roman",Times,serif} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_attributes = ['width','height'] + remove_tags = [dict(name='small')] + remove_tags_after = dict(name='small') + + feeds = [ + (u'Business Apps' , u'http://db.tidbits.com/feeds/business.rss' ) + ,(u'Entertainment' , u'http://db.tidbits.com/feeds/entertainment.rss') + ,(u'External Links' , u'http://db.tidbits.com/feeds/links.rss' ) + ,(u'Home Mac' , u'http://db.tidbits.com/feeds/home.rss' ) + ,(u'Inside TidBITS' , u'http://db.tidbits.com/feeds/inside.rss' ) + ,(u'iPod & iPhone' , u'http://db.tidbits.com/feeds/ipod-iphone.rss' ) + ,(u'Just for Fun' , u'http://db.tidbits.com/feeds/fun.rss' ) + ,(u'Macs & Mac OS X' , u'http://db.tidbits.com/feeds/macs.rss' ) + ,(u'Media Creation' , u'http://db.tidbits.com/feeds/creative.rss' ) + ,(u'Networking & Communications', u'http://db.tidbits.com/feeds/net.rss' ) + ,(u'Opinion & Editorial' , u'http://db.tidbits.com/feeds/opinion.rss' ) + ,(u'Support & Problem Solving' , u'http://db.tidbits.com/feeds/support.rss' ) + ,(u'Safe Computing' , u'http://db.tidbits.com/feeds/security.rss' ) + ,(u'Tech News' , u'http://db.tidbits.com/feeds/tech.rss' ) + ,(u'Software Watchlist' , u'http://db.tidbits.com/feeds/watchlist.rss' ) + ] From cea60d5fd892f3fa1a03b768e9c865a9fa9bbbd0 Mon Sep 17 00:00:00 2001 From: GRiker Date: Wed, 3 Feb 2010 14:07:01 -0700 Subject: [PATCH 030/158] Added series to descriptions/titles --- resources/catalog/stylesheet.css | 10 +- src/calibre/library/catalog.py | 190 +++++++++++++++++++++++++++---- 2 files changed, 177 insertions(+), 23 deletions(-) diff --git a/resources/catalog/stylesheet.css b/resources/catalog/stylesheet.css index b5770599e6..80f4e50cc3 100644 --- a/resources/catalog/stylesheet.css +++ b/resources/catalog/stylesheet.css @@ -17,6 +17,14 @@ p.author { font-size:large; } +p.series { + margin-top:0em; + margin-bottom:0em; + text-align: left; + text-indent: 1em; + font-size:small; + } + p.tags { margin-top:0em; margin-bottom:0em; @@ -27,7 +35,7 @@ p.tags { p.description { text-align:left; - font-style:italic; + font-style:normal; margin-top: 0em; } diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 78155326dc..5110a2eee1 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -927,8 +927,16 @@ class EPUB_MOBI(CatalogPlugin): for record in data: this_title = {} - title = this_title['title'] = self.convertHTMLEntities(record['title']) - this_title['title_sort'] = self.generateSortTitle(title) + this_title['title'] = self.convertHTMLEntities(record['title']) + if record['series']: + this_title['series'] = record['series'] + this_title['series_index'] = record['series_index'] + this_title['title'] = self.generateSeriesTitle(this_title) + else: + this_title['series'] = None + this_title['series_index'] = 0.0 + + this_title['title_sort'] = self.generateSortTitle(this_title['title']) if 'authors' in record and len(record['authors']): this_title['author'] = " & ".join(record['authors']) else: @@ -984,12 +992,61 @@ class EPUB_MOBI(CatalogPlugin): def fetchBooksByAuthor(self): # Generate a list of titles sorted by author from the database + def author_compare(x,y): + # Return -1 if xy + #print "x['author_sort']: %s y['author_sort']: %s" % (x['author_sort'],y['author_sort']) + if x['author_sort'] > y['author_sort']: + return 1 + elif x['author_sort'] < y['author_sort']: + return -1 + else: + # Authors equal + # Books w/o series go first + if x['series'] > y['series']: + return 1 + elif x['series'] < y['series']: + return -1 + elif not x['series'] and not y['series']: + if x['title'] > y['title']: + return 1 + else: + return -1 + else: + # Both books have series + if x['series'] == y['series']: + if float(x['series_index']) > float(y['series_index']): + return 1 + elif float(x['series_index']) < float(y['series_index']): + return -1 + else: + return 0 + else: + if x['series'] > y['series']: + return 1 + else: + return -1 self.updateProgressFullStep("Sorting database") - # Sort titles case-insensitive + ''' + # Sort titles case-insensitive, by author self.booksByAuthor = sorted(self.booksByTitle, key=lambda x:(x['author_sort'].upper(), x['author_sort'].upper())) + ''' + + self.booksByAuthor = list(self.booksByTitle) + self.booksByAuthor.sort(author_compare) + + if False and self.verbose: + self.opts.log.info("fetchBooksByAuthor(): %d books" % len(self.booksByAuthor)) + self.opts.log.info(" %-40s %-20s %s" % ('title', 'series', 'series_index')) + for title in self.booksByAuthor: + self.opts.log.info((u" %-40s %-20s %s" % \ + (title['title'][0:40], + title['series'][0:20] if title['series'] else '', + title['series_index'])).encode('utf-8')) # Build the unique_authors set from existing data authors = [(record['author'], record['author_sort']) for record in self.booksByAuthor] @@ -1063,7 +1120,15 @@ class EPUB_MOBI(CatalogPlugin): # Insert the book title # emTag = Tag(soup, "em") - emTag.insert(0, NavigableString(escape(title['title']))) + if title['series']: + # Insert br at colon + brTag = Tag(soup,'br') + title_tokens = title['title'].split(': ') + emTag.insert(0, title_tokens[0] + ':') + emTag.insert(1, brTag) + emTag.insert(2, title_tokens[1]) + else: + emTag.insert(0, NavigableString(escape(title['title']))) titleTag = body.find(attrs={'class':'title'}) titleTag.insert(0,emTag) @@ -1085,6 +1150,27 @@ class EPUB_MOBI(CatalogPlugin): tagsTag.insert(0,emTag) ''' + ''' + # Insert Series info or remove. + seriesTag = body.find(attrs={'class':'series'}) + if title['series']: + # Insert a spacer to match the author indent + stc = 0 + fontTag = Tag(soup,"font") + fontTag['style'] = 'color:white;font-size:large' + if self.opts.fmt == 'epub': + fontTag['style'] += ';opacity: 0.0' + fontTag.insert(0, NavigableString("by ")) + seriesTag.insert(stc, fontTag) + stc += 1 + if float(title['series_index']) - int(title['series_index']): + series_str = 'Series: %s [%4.2f]' % (title['series'], title['series_index']) + else: + series_str = '%s [%d]' % (title['series'], title['series_index']) + seriesTag.insert(stc,NavigableString(series_str)) + else: + seriesTag.extract() + ''' # Insert linked genres if 'tags' in title: tagsTag = body.find(attrs={'class':'tags'}) @@ -1367,6 +1453,7 @@ class EPUB_MOBI(CatalogPlugin): aTag = Tag(soup, "a") aTag['href'] = "book_%d.html" % (int(float(book['id']))) + # Use series, series index if avail else just title aTag.insert(0,escape(book['title'])) pBookTag.insert(ptc, aTag) ptc += 1 @@ -1786,7 +1873,9 @@ class EPUB_MOBI(CatalogPlugin): mtc += 1 # HTML files - add books to manifest and spine - for book in self.booksByTitle: + sort_descriptions_by = self.booksByAuthor if self.opts.sort_descriptions_by_author \ + else self.booksByTitle + for book in sort_descriptions_by: # manifest itemTag = Tag(soup, "item") itemTag['href'] = "content/book_%d.html" % int(book['id']) @@ -1912,7 +2001,9 @@ class EPUB_MOBI(CatalogPlugin): nptc += 1 # Loop over the titles - for book in self.booksByTitle: + sort_descriptions_by = self.booksByAuthor if self.opts.sort_descriptions_by_author \ + else self.booksByTitle + for book in sort_descriptions_by: navPointVolumeTag = Tag(ncx_soup, 'navPoint') navPointVolumeTag['class'] = "article" navPointVolumeTag['id'] = "book%dID" % int(book['id']) @@ -2553,6 +2644,7 @@ class EPUB_MOBI(CatalogPlugin):

{0}

+

 

@@ -2678,6 +2770,17 @@ class EPUB_MOBI(CatalogPlugin): draw.text((left, top), text, fill=(0,0,0), font=font) img.save(open(out_path, 'wb'), 'GIF') + def generateSeriesTitle(self, title): + if float(title['series_index']) - int(title['series_index']): + series_title = '%s %4.2f: %s' % (title['series'], + title['series_index'], + title['title']) + else: + series_title = '%s %d: %s' % (title['series'], + title['series_index'], + title['title']) + return series_title + def generateShortDescription(self, description): # Truncate the description to description_clip, on word boundaries if necessary if not description: @@ -2777,24 +2880,65 @@ class EPUB_MOBI(CatalogPlugin): def markdownComments(self, comments): ''' Convert random comment text to normalized, xml-legal block of

s''' - # reformat illegal xml - desc = prepare_string_for_xml(comments) - # normalize
tags - desc = re.sub(r'<br[/]{0,1}>', '
', desc) + comments = comments.replace('\r', '') + if re.search('\n\n', comments): + soup = BeautifulSoup() + split_ps = comments.split('\n\n') + tsc = 0 + for p in split_ps: + pTag = Tag(soup,'p') + pTag.insert(0,p) + soup.insert(tsc,pTag) + tsc += 1 + else: + soup = BeautifulSoup(comments) - # tokenize double line breaks - desc = comments.replace('\r', '') - tokens = comments.split('\n\n') + result = BeautifulSoup() + rtc = 0 + open_pTag = False - soup = BeautifulSoup() - ptc = 0 - for token in tokens: - pTag = Tag(soup, 'p') - pTag.insert(0,token) - soup.insert(ptc, pTag) - ptc += 1 - return soup.renderContents(encoding=None) + all_tokens = list(soup.contents) + for token in all_tokens: + if type(token) is NavigableString: + if not open_pTag: + pTag = Tag(result,'p') + open_pTag = True + ptc = 0 + pTag.insert(ptc,prepare_string_for_xml(token)) + ptc += 1 + + elif token.name in ['br','b','i']: + if not open_pTag: + pTag = Tag(result,'p') + open_pTag = True + ptc = 0 + pTag.insert(ptc, token) + ptc += 1 + + else: + if open_pTag: + result.insert(rtc, pTag) + rtc += 1 + open_pTag = False + ptc = 0 + # Clean up NavigableStrings for xml + sub_tokens = list(token.contents) + sub_soup = BeautifulSoup() + for sub_token in sub_tokens: + if type(sub_token) is NavigableString: + sub_token.replaceWith(prepare_string_for_xml(sub_token)) + result.insert(rtc, token) + rtc += 1 + + if open_pTag: + result.insert(rtc, pTag) + + paras = result.findAll('p') + for p in paras: + p['class'] = 'description' + + return result.renderContents(encoding=None) def processSpecialTags(self, tags, this_title, opts): tag_list = [] @@ -2847,6 +2991,8 @@ class EPUB_MOBI(CatalogPlugin): opts.basename = "Catalog" opts.plugin_path = self.plugin_path opts.cli_environment = not hasattr(opts,'sync') + # GwR *** hardwired for the moment + opts.sort_descriptions_by_author = True if opts.verbose: opts_dict = vars(opts) @@ -2863,7 +3009,7 @@ class EPUB_MOBI(CatalogPlugin): for key in keys: if key in ['catalog_title','exclude_genre','exclude_tags','generate_titles', 'generate_recently_added','note_tag','numbers_as_text','read_tag', - 'search_text','sort_by','sync']: + 'search_text','sort_by','sort_descriptions_by_author','sync']: log(" %s: %s" % (key, opts_dict[key])) # Launch the Catalog builder From f283dc892e8308d807c7440903dff8a46ceec8cd Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 3 Feb 2010 21:32:28 +0000 Subject: [PATCH 031/158] update series info from metadata --- src/calibre/gui2/dialogs/metadata_single.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index d066a27c53..78f30ecb21 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -594,10 +594,8 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.rating.setValue(int(book.rating)) if book.tags: self.tags.setText(', '.join(book.tags)) - print 'setting series' - print book.series if book.series is not None: - if self.series is not None: + if self.series.text() is None or self.series.text() == '': self.series.setText(book.series) if book.series_index is not None: self.series_index.setValue(book.series_index) From 3d1ef6e56499bd24cbca3fb263dfa9580d5b3f9a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 3 Feb 2010 16:14:25 -0700 Subject: [PATCH 032/158] Fix #4786 (Updated recipe for Pagina 12) --- resources/recipes/pagina12.recipe | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/resources/recipes/pagina12.recipe b/resources/recipes/pagina12.recipe index 2fb433dc82..c9801cb359 100644 --- a/resources/recipes/pagina12.recipe +++ b/resources/recipes/pagina12.recipe @@ -5,9 +5,10 @@ __copyright__ = '2008-2010, Darko Miletic ' pagina12.com.ar ''' -import time +import re, time from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ebooks.BeautifulSoup import BeautifulSoup, NavigableString, CData, Tag class Pagina12(BasicNewsRecipe): title = 'Pagina - 12' @@ -22,7 +23,8 @@ class Pagina12(BasicNewsRecipe): use_embedded_content = False language = 'es' remove_empty_feeds = True - extra_css = ' body{font-family: sans-serif} ' + masthead_url = 'http://www.pagina12.com.ar/commons/imgs/logo-home.gif' + extra_css = ' body{font-family: Arial,Helvetica,sans-serif } h2{color: #028CCD} img{margin-bottom: 0.4em} .epigrafe{font-size: x-small; background-color: #EBEAE5; color: #565144 } .intro{font-size: 1.1em} ' conversion_options = { 'comment' : description @@ -32,7 +34,7 @@ class Pagina12(BasicNewsRecipe): } remove_tags = [dict(name='div', attrs={'id':['volver','logo','logo_suple','fin','permalink']})] - + feeds = [ (u'Edicion impresa', u'http://www.pagina12.com.ar/diario/rss/principal.xml' ) @@ -52,7 +54,11 @@ class Pagina12(BasicNewsRecipe): return url.replace('http://www.pagina12.com.ar/','http://www.pagina12.com.ar/imprimir/') def get_cover_url(self): - imgnames = ['tapan.jpg','tapagn.jpg','tapan_gr.jpg','tapagn.jpg','tapagn.jpg','tapan.jpg','tapagn.jpg'] - weekday = time.localtime().tm_wday - return strftime('http://www.pagina12.com.ar/fotos/%Y%m%d/diario/') + imgnames[weekday] - + rawc = self.index_to_soup('http://www.pagina12.com.ar/diario/principal/diario/index.html',True) + rawc2 = re.sub(r'PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN','PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"',rawc) + soup = BeautifulSoup(rawc2,fromEncoding=self.encoding,smartQuotesTo=None) + for image in soup.findAll('img',alt=True): + if image['alt'].startswith('Tapa de la fecha'): + return image['src'] + return None + \ No newline at end of file From 008fab308d68003341cdd3152b50629115afc15e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 3 Feb 2010 17:03:04 -0700 Subject: [PATCH 033/158] Updated recipe for The New Republic --- resources/recipes/the_new_republic.recipe | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/resources/recipes/the_new_republic.recipe b/resources/recipes/the_new_republic.recipe index 482dba1af0..59ccef3607 100644 --- a/resources/recipes/the_new_republic.recipe +++ b/resources/recipes/the_new_republic.recipe @@ -9,6 +9,7 @@ class The_New_Republic(BasicNewsRecipe): oldest_article = 7 max_articles_per_feed = 100 + no_stylesheets = True remove_tags = [ dict(name='div', attrs={'class':['print-logo', 'print-site_name', 'img-left', 'print-source_url']}), @@ -21,14 +22,15 @@ class The_New_Republic(BasicNewsRecipe): ('Economy', 'http://www.tnr.com/rss/articles/Economy'), ('Environment and Energy', 'http://www.tnr.com/rss/articles/Environment-%2526-Energy'), ('Health Care', 'http://www.tnr.com/rss/articles/Health-Care'), - ('Urban Policy', 'http://www.tnr.com/rss/articles/Urban-Policy'), + ('Metro Policy', 'http://www.tnr.com/rss/articles/Metro-Policy'), ('World', 'http://www.tnr.com/rss/articles/World'), ('Film', 'http://www.tnr.com/rss/articles/Film'), ('Books', 'http://www.tnr.com/rss/articles/books'), + ('The Book', 'http://www.tnr.com/rss/book'), + ('Jonathan Chait', 'http://www.tnr.com/rss/blogs/Jonathan-Chait'), ('The Plank', 'http://www.tnr.com/rss/blogs/The-Plank'), ('The Treatment', 'http://www.tnr.com/rss/blogs/The-Treatment'), ('The Spine', 'http://www.tnr.com/rss/blogs/The-Spine'), - ('The Stash', 'http://www.tnr.com/rss/blogs/The-Stash'), ('The Vine', 'http://www.tnr.com/rss/blogs/The-Vine'), ('The Avenue', 'http://www.tnr.com/rss/blogs/The-Avenue'), ('William Galston', 'http://www.tnr.com/rss/blogs/William-Galston'), @@ -40,3 +42,4 @@ class The_New_Republic(BasicNewsRecipe): def print_version(self, url): return url.replace('http://www.tnr.com/', 'http://www.tnr.com/print/') + From e7c07ee25effd4a904646e427b2fb33d0b3dbb21 Mon Sep 17 00:00:00 2001 From: GRiker Date: Wed, 3 Feb 2010 17:07:49 -0700 Subject: [PATCH 034/158] GwR changes for series sorting --- src/calibre/gui2/catalog/catalog_epub_mobi.ui | 2 +- src/calibre/library/catalog.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/catalog/catalog_epub_mobi.ui b/src/calibre/gui2/catalog/catalog_epub_mobi.ui index 91fcbdc364..dab8c972c7 100644 --- a/src/calibre/gui2/catalog/catalog_epub_mobi.ui +++ b/src/calibre/gui2/catalog/catalog_epub_mobi.ui @@ -80,7 +80,7 @@ Regex tips: -- The default regex - \[[\w]*\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie] +- The default regex - \[[\w ]*\] - excludes genre tags of the form [tag], e.g., [Amazon Freebie] - A regex pattern of a single dot excludes all genre tags, generating no Genre Section diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 5110a2eee1..51f1ff1104 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -1009,7 +1009,7 @@ class EPUB_MOBI(CatalogPlugin): elif x['series'] < y['series']: return -1 elif not x['series'] and not y['series']: - if x['title'] > y['title']: + if self.generateSortTitle(x['title']) > self.generateSortTitle(y['title']): return 1 else: return -1 From 145d87273f515cce72e61cb05fd6f64758545b8a Mon Sep 17 00:00:00 2001 From: Translators <> Date: Thu, 4 Feb 2010 04:47:00 +0000 Subject: [PATCH 035/158] Launchpad automatic translations update. --- src/calibre/translations/en_GB.po | 4481 +++++++++++++++++------------ src/calibre/translations/fr.po | 33 +- src/calibre/translations/it.po | 932 +++--- src/calibre/translations/ja.po | 14 +- 4 files changed, 3205 insertions(+), 2255 deletions(-) diff --git a/src/calibre/translations/en_GB.po b/src/calibre/translations/en_GB.po index 7ab25f665a..b923d7e3bf 100644 --- a/src/calibre/translations/en_GB.po +++ b/src/calibre/translations/en_GB.po @@ -7,75 +7,77 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2009-10-26 17:36+0000\n" -"PO-Revision-Date: 2009-10-29 20:46+0000\n" -"Last-Translator: Kris Douglas \n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-03 15:29+0000\n" +"Last-Translator: lorenzov \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2009-10-30 08:28+0000\n" +"X-Launchpad-Export-Date: 2010-02-04 04:47+0000\n" "X-Generator: Launchpad (build Unknown)\n" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 msgid "Does absolutely nothing" msgstr "Does absolutely nothing" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:44 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:94 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:53 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:72 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:54 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:70 +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/books.py:267 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:730 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:733 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:410 -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:65 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:318 -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:321 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1895 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1897 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:322 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1894 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1896 #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/output.py:24 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:225 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:256 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:259 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:23 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:45 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:35 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/ereader.py:60 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fb2.py:46 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:36 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:61 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:63 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:103 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:62 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:872 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdb.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:21 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pdf.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:23 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/pml.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/topaz.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/txt.py:14 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:44 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:70 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:154 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:591 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:778 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:886 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:891 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:951 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:135 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:185 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:186 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:28 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/crop.py:83 @@ -94,67 +96,72 @@ msgstr "Does absolutely nothing" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/split.py:82 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:28 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:217 -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:219 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:266 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:120 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:127 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:99 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:124 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:126 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:543 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:552 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:771 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:774 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:839 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:106 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:431 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:391 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:876 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1002 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:211 -#: /home/kovid/work/calibre/src/calibre/library/cli.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:424 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:919 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:183 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:281 #: /home/kovid/work/calibre/src/calibre/library/database.py:913 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:651 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:663 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1062 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1099 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1433 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1435 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1544 -#: /home/kovid/work/calibre/src/calibre/library/server.py:493 -#: /home/kovid/work/calibre/src/calibre/library/server.py:565 -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:703 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:715 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 +#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:77 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:43 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:49 msgid "Unknown" msgstr "Unknown" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:64 msgid "Base" msgstr "Base" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:148 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:150 msgid "File type" msgstr "File type" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:182 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:184 msgid "Metadata reader" msgstr "Metadata reader" -#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:213 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:215 msgid "Metadata writer" msgstr "Metadata writer" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:13 +#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:241 +msgid "Catalog generator" +msgstr "Catalogue generator" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:14 msgid "" "Follow all local links in an HTML file and create a ZIP file containing all " "linked files. This plugin is run every time you add an HTML file to the " @@ -164,7 +171,7 @@ msgstr "" "linked files. This plugin is run every time you add an HTML file to the " "library." -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:48 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:49 msgid "" "Character encoding for the input HTML files. Common choices include: cp1252, " "latin1, iso-8859-1 and utf-8." @@ -173,53 +180,61 @@ msgstr "" "latin1, iso-8859-1 and utf-8." #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:56 +msgid "" +"Create a PMLZ archive containing the PML file and all images in the " +"directory pmlname_img or images. This plugin is run every time you add a PML " +"file to the library." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:87 msgid "Extract cover from comic files" msgstr "Extract cover from comic files" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:77 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:89 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:99 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:108 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:120 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:130 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:140 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:150 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:160 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:170 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:151 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:161 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:171 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:181 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:192 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:214 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:191 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:201 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:212 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:223 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:235 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:245 -msgid "Read metadata from %s files" -msgstr "Read metadata from %s files" - -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:204 -msgid "Read metadata from ebooks in RAR archives" -msgstr "Read metadata from ebooks in RAR archives" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:256 -msgid "Read metadata from ebooks in ZIP archives" -msgstr "Read metadata from ebooks in ZIP archives" - #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:267 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:277 #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:287 +msgid "Read metadata from %s files" +msgstr "Read metadata from %s files" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:246 +msgid "Read metadata from ebooks in RAR archives" +msgstr "Read metadata from ebooks in RAR archives" + +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +msgid "Read metadata from ebooks in ZIP archives" +msgstr "Read metadata from ebooks in ZIP archives" + #: /home/kovid/work/calibre/src/calibre/customize/builtins.py:309 -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:320 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:319 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:329 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:351 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:362 msgid "Set metadata in %s files" msgstr "Set metadata in %s files" -#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:298 +#: /home/kovid/work/calibre/src/calibre/customize/builtins.py:340 msgid "Set metadata from %s files" msgstr "Set metadata from %s files" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:99 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:102 msgid "Conversion Input" msgstr "Conversion Input" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:122 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:125 msgid "" "Specify the character encoding of the input document. If set this option " "will override any encoding declared by the document itself. Particularly " @@ -231,11 +246,11 @@ msgstr "" "particularly useful for documents that do not declare any encoding or that " "have erroneous encoding declarations." -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:225 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:228 msgid "Conversion Output" msgstr "Conversion Output" -#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:239 +#: /home/kovid/work/calibre/src/calibre/customize/conversion.py:242 msgid "" "If specified, the output plugin will try to create output that is as human " "readable as possible. May not have any effect for some output plugins." @@ -256,55 +271,75 @@ msgstr "" "no information about the input document." #: /home/kovid/work/calibre/src/calibre/customize/profiles.py:56 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 -msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." -msgstr "This profile is intended for the SONY PRS line. The 500/505/700 etc." +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:235 +msgid "" +"This profile is intended for the SONY PRS line. The 500/505/600/700 etc." +msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:69 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:229 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:68 +msgid "This profile is intended for the SONY PRS 300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:77 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:257 +msgid "This profile is intended for the SONY PRS-900." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:85 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:287 msgid "This profile is intended for the Microsoft Reader." msgstr "This profile is intended for Microsoft's Reader format." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:80 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:240 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:96 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:298 msgid "This profile is intended for the Mobipocket books." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:93 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:253 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:109 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:311 msgid "This profile is intended for the Hanlin V3 and its clones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:105 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:265 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:121 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:323 +msgid "This profile is intended for the Hanlin V5 and its clones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:131 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:331 msgid "This profile is intended for the Cybook G3." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:118 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:278 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:144 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:344 msgid "This profile is intended for the Cybook Opus." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:130 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:289 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:156 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:355 msgid "This profile is intended for the Amazon Kindle." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:142 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:322 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:168 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:388 msgid "This profile is intended for the Irex Illiad." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:154 -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:335 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:180 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:401 msgid "This profile is intended for the IRex Digital Reader 1000." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:172 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:194 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:415 +msgid "This profile is intended for the B&N Nook." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:213 msgid "Output profile" msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:176 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 msgid "" "This profile tries to provide sane defaults and is useful if you want to " "produce a document intended to be read at a computer or on a range of " @@ -314,11 +349,15 @@ msgstr "" "you want to produce a document intended to be read on a computer, or on a " "range of different devices." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:206 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:248 +msgid "This profile is intended for the SONY PRS-300." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:266 msgid "This profile is intended for the 5-inch JetBook." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:217 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:275 msgid "" "This profile is intended for the SONY PRS line. The 500/505/700 etc, in " "landscape mode. Mainly useful for comics." @@ -326,35 +365,35 @@ msgstr "" "This profile is intended for the SONY PRS line. The 500, 505, 700 e.t.c., in " "landscape mode. Mainly useful for reading comics and similar print layouts." -#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:306 +#: /home/kovid/work/calibre/src/calibre/customize/profiles.py:372 msgid "This profile is intended for the Amazon Kindle DX." msgstr "" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:30 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 msgid "Installed plugins" msgstr "Installed plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:31 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 msgid "Mapping for filetype plugins" msgstr "Mapping for filetype plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:32 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 msgid "Local plugin customization" msgstr "Local plugin customisation" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:33 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:34 msgid "Disabled plugins" msgstr "Disabled plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:75 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:77 msgid "No valid plugin found in " msgstr "No valid plugin found in " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:233 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:263 msgid "Initialization of plugin %s failed with traceback:" msgstr "Initialisation of plugin %s failed with traceback:" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:363 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:418 msgid "" " %prog options\n" "\n" @@ -366,15 +405,15 @@ msgstr "" " Customize calibre by loading external plugins.\n" " " -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:369 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:424 msgid "Add a plugin by specifying the path to the zip file containing it." msgstr "Add a plugin by specifying the path to the zip file containing it." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:371 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:426 msgid "Remove a custom plugin by name. Has no effect on builtin plugins" msgstr "Remove a custom plugin by name. Has no effect on builtin plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:373 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:428 msgid "" "Customize plugin. Specify name of plugin and customization string separated " "by a comma." @@ -382,15 +421,15 @@ msgstr "" "Customise plugin. Specify name of plugin and customisation string separated " "by a comma." -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:375 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:430 msgid "List all installed plugins" msgstr "List all installed plugins" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:377 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:432 msgid "Enable the named plugin" msgstr "Enable the named plugin" -#: /home/kovid/work/calibre/src/calibre/customize/ui.py:379 +#: /home/kovid/work/calibre/src/calibre/customize/ui.py:434 msgid "Disable the named plugin" msgstr "Disable the named plugin" @@ -398,56 +437,31 @@ msgstr "Disable the named plugin" msgid "Communicate with Android phones." msgstr "Communicate with Android devices." -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:19 -msgid "Communicate with the BeBook eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/android/driver.py:26 +msgid "" +"Comma separated list of directories to send e-books to on the device. The " +"first one that exists will be used" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/bebook/driver.py:95 -msgid "Communicate with the BeBook Mini eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/binatone/driver.py:17 +msgid "Communicate with the Binatone Readme eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Communicate with BlackBerry Smartphones." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 -#: /home/kovid/work/calibre/src/calibre/devices/eslick/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:88 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" msgstr "Kovid Goyal" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:21 -msgid "Communicate with the Cybook Gen 3 eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/cybook/driver.py:22 +msgid "Communicate with the Cybook Gen 3 / Opus eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:22 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:86 -#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 -#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:78 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 -msgid "John Schember" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:74 -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:76 -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:78 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:130 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:132 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:99 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:101 -msgid "Transferring books to device..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/cybookg3/driver.py:85 -msgid "Communicate with the Cybook Opus eBook reader." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:23 +#: /home/kovid/work/calibre/src/calibre/devices/eb600/driver.py:24 msgid "Communicate with the EB600 eBook reader." msgstr "" @@ -455,11 +469,33 @@ msgstr "" msgid "Communicate with the ESlick eBook reader." msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:19 +msgid "Communicate with Hanlin V3 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:95 +msgid "Communicate with Hanlin V5 eBook readers." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanlin/driver.py:113 +msgid "Communicate with the BOOX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/hanvon/driver.py:17 +msgid "Communicate with the Hanvon N520 eBook reader." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:16 msgid "Communicate with the IRex Iliad eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/interface.py:20 +#: /home/kovid/work/calibre/src/calibre/devices/iliad/driver.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/irexdr/driver.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:30 +msgid "John Schember" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/interface.py:22 msgid "Device Interface" msgstr "" @@ -467,192 +503,236 @@ msgstr "" msgid "Communicate with the IRex Digital Reader 1000 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:22 +#: /home/kovid/work/calibre/src/calibre/devices/iriver/driver.py:15 +msgid "Communicate with the Iriver Story reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:20 msgid "Communicate with the JetBook eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/jetbook/driver.py:23 -msgid "James Ralston" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:21 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:22 msgid "Communicate with the Kindle eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:66 -#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:67 msgid "Communicate with the Kindle 2 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:87 +#: /home/kovid/work/calibre/src/calibre/devices/kindle/driver.py:77 +msgid "Communicate with the Kindle DX eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:17 +msgid "Communicate with the Nokia 770 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nokia/driver.py:40 +msgid "Communicate with the Nokia 810 internet tablet." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:20 +msgid "The Nook" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:21 +msgid "Communicate with the Nook eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:17 +msgid "Communicate with the Nuut2 eBook reader." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:89 msgid "Communicate with the Sony PRS-500 eBook reader." msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:150 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:93 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:96 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:99 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:110 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:49 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:52 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:55 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:68 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:74 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:102 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:105 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:108 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:45 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:48 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:51 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:71 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:81 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:90 msgid "Getting list of books on device..." msgstr "Getting list of books on device..." #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:26 -msgid "Communicate with the Sony PRS-300/505 eBook reader." +msgid "Communicate with the Sony PRS-300/505/500 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:27 -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:18 -msgid "Kovid Goyal and John Schember" -msgstr "Kovid Goyal and John Schember" +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:58 +msgid "" +"Comma separated list of metadata fields to turn into collections on the " +"device. Possibilities include: " +msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:163 -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:170 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:119 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:134 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:139 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:141 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:116 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:118 +msgid "Transferring books to device..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:181 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:145 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:162 msgid "Removing books from device..." msgstr "Removing books from device..." -#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:198 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:149 +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:209 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:177 msgid "Sending metadata to device..." msgstr "Sending metadata to device..." -#: /home/kovid/work/calibre/src/calibre/devices/prs700/driver.py:17 -msgid "Communicate with the Sony PRS-600/700 eBook reader." +#: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:215 +msgid "Communicate with the Sony PRS-600/700/900 eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:285 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:357 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:250 msgid "Unable to detect the %s disk drive. Try rebooting." msgstr "Unable to detect the %s disk drive. Try rebooting." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:425 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:429 +msgid "Unable to detect the %s mount point. Try rebooting." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:484 msgid "Unable to detect the %s disk drive." msgstr "Unable to detect the %s disk drive." -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:518 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:530 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" "Unable to detect the %s disk drive. Your kernel is probably exporting a " "deprecated version of SYSFS." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:538 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:597 msgid "Unable to mount main memory (Error code: %d)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:670 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:672 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:734 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:736 msgid "The reader has no storage card in this slot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:674 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:738 msgid "Selected slot: %s is not supported." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:698 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:771 msgid "There is insufficient free space in main memory" msgstr "There is insufficient free space in main memory" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:700 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:702 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:773 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:775 msgid "There is insufficient free space on the storage card" msgstr "There is insufficient free space on the storage card" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:713 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1006 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1010 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1333 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "News" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:11 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:12 msgid "Configure Device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:16 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:17 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:18 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:32 msgid "Place files in sub directories if the device supports them" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:19 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:64 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:78 msgid "Read metadata from files on device" msgstr "" +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:36 +msgid "Template to control how books are saved" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:80 +msgid "Extra customization" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:29 msgid "Communicate with an eBook reader." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:41 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:37 msgid "Get device information..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:107 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:115 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:133 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:141 msgid "Adding books to device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:138 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:143 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:166 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:171 msgid "Removing books from device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:200 msgid "Rendered %s" msgstr "Rendered %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:199 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:203 msgid "Failed %s" msgstr "Failed %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:260 msgid "" "Failed to process comic: \n" "\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:274 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 msgid "" "Number of colors for grayscale image conversion. Default: %default. Values " "of less than 256 may result in blurred text on your device if you are " "creating your comics in EPUB format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:278 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:282 msgid "" "Disable normalize (improve contrast) color range for pictures. Default: False" msgstr "" "Disable normalize (improve contrast) color range for pictures. Default: False" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 msgid "Maintain picture aspect ratio. Default is to fill the screen." msgstr "Maintain picture aspect ratio. Default is to fill the screen." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:283 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:287 msgid "Disable sharpening." msgstr "Disable sharpening." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:285 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:289 msgid "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." @@ -660,11 +740,11 @@ msgstr "" "Disable trimming of comic pages. For some comics, trimming might remove " "content as well as borders." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:288 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:292 msgid "Don't split landscape images into two portrait images" msgstr "Don't split landscape images into two portrait images" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:290 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:294 msgid "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." @@ -672,23 +752,23 @@ msgstr "" "Keep aspect ratio and scale image using screen height as image width for " "viewing in landscape mode." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:293 -msgid "" -"Used for right-to-left publications like manga. Causes landscape pages to be " -"split into portrait pages from right to left." -msgstr "" -"Used for right-to-left publications like manga. Causes landscape pages to be " -"split into portrait pages from right to left." - #: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:297 msgid "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." +msgstr "" +"Used for right-to-left publications like manga. Causes landscape pages to be " +"split into portrait pages from right to left." + +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:301 +msgid "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." msgstr "" "Enable Despeckle. Reduces speckle noise. May greatly increase processing " "time." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:300 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 msgid "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." @@ -696,19 +776,19 @@ msgstr "" "Don't sort the files found in the comic alphabetically by name. Instead use " "the order they were added to the comic." -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:304 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 msgid "" "The format that images in the created ebook are converted to. You can " "experiment to see which format gives you optimal size and look on your " "device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:312 msgid "Apply no processing to the image" msgstr "Apply no processing to the image" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:434 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:445 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -781,22 +861,22 @@ msgstr "" msgid "List builtin recipes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:251 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:252 msgid "Output saved to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:91 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:92 msgid "Level of verbosity. Specify multiple times for greater verbosity." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:98 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:99 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " "conversion process a bug is occurring." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:107 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:108 msgid "" "Specify the input profile. The input profile gives the conversion system " "information on how to interpret various information in the input document. " @@ -804,7 +884,7 @@ msgid "" "are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:118 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:119 msgid "" "Specify the output profile. The output profile tells the conversion system " "how to optimize the created document for the specified device. In some " @@ -812,7 +892,7 @@ msgid "" "a device. For example EPUB on the SONY reader. Choices are:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:130 msgid "" "The base font size in pts. All font sizes in the produced book will be " "rescaled based on this size. By choosing a larger size you can make the " @@ -820,7 +900,7 @@ msgid "" "chosen based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:139 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:140 msgid "" "Mapping from CSS font names to font sizes in pts. An example setting is " "12,12,14,16,18,20,22,24. These are the mappings for the sizes xx-small to xx-" @@ -829,17 +909,17 @@ msgid "" "use a mapping based on the output profile you chose." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:151 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:152 msgid "Disable all rescaling of font sizes." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:158 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:159 msgid "" "The line height in pts. Controls spacing between consecutive lines of text. " "By default no line height manipulation is performed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:166 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:167 msgid "" "Some badly designed documents use tables to control the layout of text on " "the page. When converted these documents often have text that runs off the " @@ -847,7 +927,7 @@ msgid "" "tables and present it in a linear fashion." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:177 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level one. If this is specified, it takes precedence over " @@ -857,7 +937,7 @@ msgstr "" "of Contents at level one. If this is specified, it takes precedence over " "other forms of auto-detection." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:185 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:186 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level two. Each entry is added under the previous level one " @@ -867,7 +947,7 @@ msgstr "" "of Contents at level two. Each entry is added under the previous level one " "entry." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:193 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:194 msgid "" "XPath expression that specifies all tags that should be added to the Table " "of Contents at level three. Each entry is added under the previous level two " @@ -877,7 +957,7 @@ msgstr "" "of Contents at level three. Each entry is added under the previous level two " "entry." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:201 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:202 msgid "" "Normally, if the source file already has a Table of Contents, it is used in " "preference to the auto-generated one. With this option, the auto-generated " @@ -887,11 +967,11 @@ msgstr "" "preference to the auto-generated one. With this option, the auto-generated " "one is always used." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:209 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:210 msgid "Don't add auto-detected chapters to the Table of Contents." msgstr "Don't add auto-detected chapters to the Table of Contents." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:216 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:217 msgid "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" @@ -899,20 +979,20 @@ msgstr "" "If fewer than this number of chapters is detected, then links are added to " "the Table of Contents. Default: %default" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:223 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:224 msgid "" "Maximum number of links to insert into the TOC. Set to 0 to disable. Default " "is: %default. Links are only added to the TOC if less than the threshold " "number of chapters were detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:231 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:232 msgid "" "Remove entries from the Table of Contents whose titles match the specified " "regular expression. Matching entries and all their children are removed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:243 msgid "" "An XPath expression to detect chapter titles. The default is to consider " "

or

tags that contain the words \"chapter\",\"book\",\"section\" or " @@ -922,7 +1002,7 @@ msgid "" "User Manual for further help on using this feature." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:256 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:257 msgid "" "Specify how to mark detected chapters. A value of \"pagebreak\" will insert " "page breaks before chapters. A value of \"rule\" will insert a line before " @@ -934,53 +1014,60 @@ msgstr "" "chapters. A value of \"none\" will disable chapter marking and a value of " "\"both\" will use both page breaks and lines to mark chapters." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:267 msgid "" "Either the path to a CSS stylesheet or raw CSS. This CSS will be appended to " "the style rules from the source file, so it can be used to override those " "rules." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:275 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:276 msgid "" "An XPath expression. Page breaks are inserted before the specified elements." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:281 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:282 msgid "" "Set the top margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:286 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:287 msgid "" "Set the bottom margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:291 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:292 msgid "" "Set the left margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:296 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:297 msgid "" "Set the right margin in pts. Default is %default. Note: 72 pts equals 1 inch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:301 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:302 msgid "" "Do not force text to be justified in output. Whether text is actually " "displayed justified or not depends on whether the ebook format and reading " "device support justification." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:309 msgid "" "Remove spacing between paragraphs. Also sets an indent on paragraphs of " "1.5em. Spacing removal will not work if the source file does not use " "paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:315 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:316 +msgid "" +"When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:323 msgid "" "Use the cover detected from the source file in preference to the specified " "cover." @@ -988,13 +1075,13 @@ msgstr "" "Use the cover detected from the source file in preference to the specified " "cover." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:321 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:329 msgid "" "Insert a blank line between paragraphs. Will not work if the source file " "does not use paragraphs (

or

tags)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:328 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 msgid "" "Remove the first image from the input ebook. Useful if the first image in " "the source file is a cover and you are specifying an external cover." @@ -1002,41 +1089,41 @@ msgstr "" "Remove the first image from the input ebook. Useful if the first image in " "the source file is a cover and you are specifying an external cover." -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:336 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 msgid "" "Insert the book metadata at the start of the book. This is useful if your " "ebook reader does not support displaying/searching metadata directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:344 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 msgid "" "Attempt to detect and correct hard line breaks and other problems in the " "source file. This may make things worse, so use with care." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:352 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:360 msgid "Use a regular expression to try and remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:359 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:367 msgid "The regular expression to use to remove the header." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:365 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:373 msgid "Use a regular expression to try and remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:372 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:380 msgid "The regular expression to use to remove the footer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:379 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:387 msgid "" "Read metadata from the specified OPF file. Metadata read from this file will " "override any metadata in the source file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:386 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:394 msgid "" "Transliterate unicode characters to an ASCII representation. Use with care " "because this will replace unicode characters with ASCII. For instance it " @@ -1046,90 +1133,90 @@ msgid "" "number of people will be used (Chinese in the previous example)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:401 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:409 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:37 msgid "Set the title." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:405 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:413 msgid "Set the authors. Multiple authors should be separated by ampersands." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:410 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 msgid "The version of the title to be used for sorting. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 msgid "String to be used when sorting by author. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:418 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:51 msgid "Set the cover to the specified file." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:422 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:53 msgid "Set the ebook description." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:426 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:55 msgid "Set the ebook publisher." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:430 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:59 msgid "Set the series this ebook belongs to." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:434 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:61 msgid "Set the index of the book in this series." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:438 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:63 msgid "Set the rating. Should be a number between 1 and 5." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:65 msgid "Set the ISBN of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:446 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:67 msgid "Set the tags for the book. Should be a comma separated list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:450 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:458 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:69 msgid "Set the book producer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:454 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:462 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:71 msgid "Set the language." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:546 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:562 msgid "Could not find an ebook inside the archive" msgstr "Could not find an ebook inside the archive" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:604 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:620 msgid "Values of series index and rating must be numbers. Ignoring" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:716 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:740 msgid "Converting input to HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:739 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:763 msgid "Running transforms on ebook..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:825 +#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/plumber.py:850 msgid "Creating" msgstr "" @@ -1167,9 +1254,9 @@ msgid "" "disables the generation of this cover." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:123 -#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:113 -#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:98 +#: /home/kovid/work/calibre/src/calibre/ebooks/fb2/fb2ml.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/pml/pmlml.py:129 +#: /home/kovid/work/calibre/src/calibre/ebooks/rb/rbml.py:102 #: /home/kovid/work/calibre/src/calibre/ebooks/txt/txtml.py:77 msgid "Table of Contents:" msgstr "" @@ -1186,20 +1273,20 @@ msgstr "" msgid "Add Table of Contents to beginning of the book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:242 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:243 msgid "" "Traverse links in HTML files breadth first. Normally, they are traversed " "depth first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:249 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:250 msgid "" "Maximum levels of recursion when following links in HTML files. Must be non-" "negative. 0 implies that no links in the root HTML file are followed. " "Default is %default." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:258 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:259 msgid "" "Normally this input plugin re-arranges all the input files into a standard " "folder hierarchy. Only use this option if you know what you are doing as it " @@ -1207,7 +1294,7 @@ msgid "" "pipeline." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:266 +#: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:267 msgid "" "Average line length for line breaking if the HTML is from a previous partial " "conversion of a PDF file. Default is %default which disables this." @@ -1217,56 +1304,56 @@ msgstr "" msgid "Creating LIT file from EPUB..." msgstr "Creating LIT file from EPUB..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:321 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:320 msgid "\tBook Designer file detected." msgstr "\tBook Designer file detected." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:323 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:322 msgid "\tParsing HTML..." msgstr "\tParsing HTML..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:346 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:345 msgid "\tBaen file detected. Re-parsing..." msgstr "\tBaen file detected. Re-parsing..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:362 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 msgid "Written preprocessed HTML to " msgstr "Written preprocessed HTML to " -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:380 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:379 msgid "Processing %s" msgstr "Processing %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:394 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:393 msgid "\tConverting to BBeB..." msgstr "\tConverting to BBeB..." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:540 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:553 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:539 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:552 msgid "Could not parse file: %s" msgstr "Could not parse file: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:545 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:544 msgid "%s is an empty file" msgstr "%s is an empty file" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:565 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:564 msgid "Failed to parse link %s %s" msgstr "Failed to parse link %s %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:608 msgid "Cannot add link %s to TOC" msgstr "Cannot add link %s to TOC" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:958 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:957 msgid "Unable to process image %s. Error: %s" msgstr "Unable to process image %s. Error: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1003 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1002 msgid "Unable to process interlaced PNG %s" msgstr "Unable to process interlaced PNG %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1018 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1017 msgid "" "Could not process image: %s\n" "%s" @@ -1274,13 +1361,13 @@ msgstr "" "Could not process image: %s\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1773 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1772 msgid "" "An error occurred while processing a table: %s. Ignoring table markup." msgstr "" "An error occurred while processing a table: %s. Ignoring table markup." -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1775 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1774 msgid "" "Bad table:\n" "%s" @@ -1288,19 +1375,19 @@ msgstr "" "Bad table:\n" "%s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1797 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1796 msgid "Table has cell that is too large" msgstr "Table has cell that is too large" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1863 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1862 msgid "Could not read cover image: %s" msgstr "Could not read cover image: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1866 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1865 msgid "Cannot read from: %s" msgstr "Cannot read from: %s" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1996 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1994 msgid "Failed to process opf file" msgstr "Failed to process opf file" @@ -1503,26 +1590,26 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:358 #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/info.py:45 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:69 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:70 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:99 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1068 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:399 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1111 msgid "Title" msgstr "Title" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:359 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:393 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1069 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:404 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1112 msgid "Author(s)" msgstr "Author(s)" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:360 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:59 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:169 msgid "Publisher" msgstr "Publisher" @@ -1533,28 +1620,28 @@ msgstr "Producer" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:71 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:100 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 msgid "Comments" msgstr "Comments" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:370 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1012 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1072 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1055 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1115 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Tags" msgstr "Tags" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:372 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Series" msgstr "Series" @@ -1563,13 +1650,13 @@ msgid "Language" msgstr "Language" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1011 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1054 msgid "Timestamp" msgstr "Timestamp" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/__init__.py:377 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:167 msgid "Published" msgstr "" @@ -1577,6 +1664,10 @@ msgstr "" msgid "Rights" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 +msgid "EDITORIAL REVIEW" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:19 msgid "options" msgstr "" @@ -1638,30 +1729,68 @@ msgstr "" msgid "Set the BookID in LRF files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:144 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:148 msgid "No file specified" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:159 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:163 msgid "Original metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:176 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:180 msgid "Changed metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:188 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:192 msgid "OPF created in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:194 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:198 msgid "Cover saved to" msgstr "Cover saved to" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/cli.py:200 msgid "No cover found" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:34 +msgid "Metadata download" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "ratings" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:111 +msgid "tags" +msgstr "tags" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:112 +msgid "description/reviews" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:113 +msgid "Download %s from %s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:137 +msgid "Downloads metadata from Google Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:153 +msgid "Downloads metadata from isbndb.com" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:181 +msgid "" +"To use isbndb.com you must sign up for a %sfree account%s and enter your " +"access key below." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/fetch.py:189 +msgid "Downloads social metadata from amazon.com" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/isbndb.py:94 msgid "" "\n" @@ -1734,8 +1863,8 @@ msgstr "" "\n" "Fetch a cover image for the book identified by ISBN from LibraryThing.com\n" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1057 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1314 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "Cover" @@ -1762,101 +1891,77 @@ msgstr "Title for any generated in-line table of contents." msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1315 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Title Page" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1316 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:51 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Table of Contents" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1317 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1318 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "Glossary" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1319 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "Acknowledgements" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1320 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "Bibliography" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1321 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "Colophon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1322 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1323 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "Dedication" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1324 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "Epigraph" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1325 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "Foreword" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1326 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "List of Illustrations" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1327 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "List of Tables" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "Notes" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "Preface" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "Main Text" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:53 -msgid "Options to control e-book conversion." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:60 -msgid "Character encoding for input. Default is to auto detect." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:62 -msgid "Output file. Default is derived from input filename." -msgstr "Output file. Default is derived from input filename." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:64 -msgid "Produce more human-readable XML output." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:66 -msgid "Useful for debugging." -msgstr "Useful for debugging." - -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/factory.py:71 -msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/iterator.py:39 msgid "%s format books are not supported" msgstr "%s format books are not supported" @@ -1892,11 +1997,11 @@ msgid "" "Generate an Adobe \"page-map\" file if pagination information is available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:119 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:126 msgid "Footnotes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:128 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/reader132.py:133 msgid "Sidebar" msgstr "" @@ -1928,17 +2033,21 @@ msgid "" "cp1252. Note: This option is not honored by all formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:22 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 msgid "Do not extract images from the document" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:24 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:26 msgid "" "Scale used to determine the length at which a line should be unwrapped. " "Valid values are a decimal between 0 and 1. The default is 0.5, this is the " "median line length." msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/input.py:30 +msgid "Use the new PDF conversion engine." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/manipulate/cli.py:31 msgid "" "command ...\n" @@ -2135,7 +2244,7 @@ msgstr "" msgid "The orientation of the page. Default is portrait. Choices are %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:52 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdf/pdftohtml.py:55 msgid "Could not find pdftohtml, check it is in your PATH" msgstr "Could not find pdftohtml, check it is in your PATH" @@ -2144,10 +2253,11 @@ msgid "" "Specify the character encoding of the output document. The default is cp1252." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:183 +#: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2168,6 +2278,10 @@ msgid "" "markdown see" msgstr "" +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/input.py:35 +msgid "Do not insert a Table of Contents into the output text." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:24 msgid "" "Type of newline to use. Options are %s. Default is 'system'. Use 'old_mac' " @@ -2182,11 +2296,6 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:54 -msgid "Do not add a blank line between paragraphs." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:41 msgid "" "The maximum number of characters per line. This splits on the first space " "before the specified value. If no space is found the line will be broken at " @@ -2194,89 +2303,85 @@ msgid "" "minimum of 25 characters. Use 0 to disable line splitting." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:48 +#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:45 msgid "" "Force splitting on the max-line-length value when no space is present. Also " "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/txt/output.py:52 -msgid "Add a tab at the beginning of each paragraph." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "Send file to storage card instead of main memory by default" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Confirm before deleting" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Toolbar icon size" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Show button labels in the toolbar" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Main window geometry" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Notify when a new version is available" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Use Roman numerals for series number" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Sort tags list by popularity" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Number of covers to show in the cover browsing mode" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Defaults for conversion to LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Options for the LRF ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formats that are viewed using the internal viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Columns to be displayed in the book list" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Automatically launch content server on application startup" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Oldest news kept in database" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Show system tray icon" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Upload downloaded news to device" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Delete books from library after uploading to device" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2284,113 +2389,118 @@ msgstr "" "Show the cover flow in a separate window instead of in the main calibre " "window" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Disable notifications from the system tray icon" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "Default action to perform when send to device button is clicked" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:123 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 +msgid "Download social metadata (tags/rating/etc.)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 +msgid "Limit max simultaneous jobs to number of CPUs" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:386 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "Searching in" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:191 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:486 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "No books" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "Duplicates found!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:406 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "Saved" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:60 -msgid "Bulk Convert" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:73 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:184 -msgid "Options specific to the output format." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 -msgid "Comic Input" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 +msgid "CSV/XML Options" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 @@ -2407,20 +2517,28 @@ msgstr "" msgid "Options specific to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 -msgid "input" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 +msgid "output" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input_ui.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:28 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:115 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:165 #: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output_ui.py:44 @@ -2432,17 +2550,98 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:28 #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/convert/toc_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:38 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:51 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:45 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/convert/xpath_wizard_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:59 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_item_ui.py:35 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:107 msgid "Form" msgstr "Form" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 +msgid "Fields to include in output:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 +msgid "E-book options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 +msgid "'Don't include this book' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 +msgid "'Mark this book as read' tag:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 +msgid "Additional note tag prefix:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 +msgid "Tab template for catalog.ui" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 +msgid "" +"For settings that cannot be specified in this dialog, use the values saved " +"in a previous conversion (if they exist) instead of using the defaults " +"specified in the Preferences" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:67 +msgid "Bulk Convert" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:185 +msgid "Options specific to the output format." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:15 +msgid "Comic Input" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input.py:16 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_input.py:13 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input.py:13 +msgid "input" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:85 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:94 msgid "&Number of Colors:" @@ -2498,7 +2697,7 @@ msgid "&Disable comic processing" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:96 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:111 msgid "&Output format:" msgstr "" @@ -2533,25 +2732,25 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:53 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:124 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:170 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:44 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:61 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:493 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor_ui.py:131 @@ -2559,9 +2758,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:267 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:269 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:332 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:334 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:180 msgid "..." msgstr "..." @@ -2576,17 +2778,6 @@ msgstr "" msgid "EPUB Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output.py:20 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/mobi_output.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output.py:17 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/pdf_output.py:18 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output.py:15 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:17 -msgid "output" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/convert/epub_output_ui.py:42 msgid "Do not &split on page breaks" msgstr "Do not &split on page breaks" @@ -2618,7 +2809,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/fb2_output_ui.py:29 #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_output_ui.py:37 #: /home/kovid/work/calibre/src/calibre/gui2/convert/rb_output_ui.py:29 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:47 msgid "&Inline TOC" msgstr "" @@ -2637,10 +2828,9 @@ msgid "" "

By default, if the output base font size is zero and/or no font size key " "is specified, calibre will use the values from the current Output Profile. " "

\n" -"

See the User Manual for a discussion of how font size rescaling " -"works.

" +"

See the User Manual " +"for a discussion of how font size rescaling works.

" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:103 @@ -2653,15 +2843,15 @@ msgid "&Base font size:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:105 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:122 msgid "Font size &key:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:106 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:110 #: /home/kovid/work/calibre/src/calibre/gui2/convert/font_key_ui.py:112 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:101 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:126 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:118 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:120 #: /home/kovid/work/calibre/src/calibre/gui2/convert/lrf_output_ui.py:125 @@ -2700,47 +2890,62 @@ msgstr "Look & Feel" msgid "Control the look and feel of the output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:100 -msgid "Base &font size:" -msgstr "Base &font size:" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:102 -msgid "Line &height:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:104 -msgid "Remove &spacing between paragraphs" -msgstr "Remove &spacing between paragraphs" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:105 -msgid "No text &justification" -msgstr "No text &justification" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:106 -msgid "&Linearize tables" -msgstr "&Linearize tables" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:107 -msgid "&Transliterate unicode characters to ASCII." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:109 -msgid "Input character &encoding:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:119 msgid "&Disable font size rescaling" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:111 -msgid "Insert &blank line" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:120 +msgid "Base &font size:" +msgstr "Base &font size:" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:123 msgid "Wizard to help you choose an appropriate font size key" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:125 +msgid "Line &height:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:127 +msgid "Input character &encoding:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:128 +msgid "Remove &spacing between paragraphs" +msgstr "Remove &spacing between paragraphs" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:129 +msgid "Indent size:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:130 +msgid "" +"

When calibre removes inter paragraph spacing, it automatically sets a " +"paragraph indent, to ensure that paragraphs can be easily distinguished. " +"This option controls the width of that indent." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:131 +msgid " em" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:132 +msgid "Insert &blank line" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:133 +msgid "No text &justification" +msgstr "No text &justification" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:134 +msgid "&Linearize tables" +msgstr "&Linearize tables" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:135 +msgid "&Transliterate unicode characters to ASCII." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/convert/look_and_feel_ui.py:136 msgid "Extra &CSS" msgstr "" @@ -2797,8 +3002,8 @@ msgid "&Monospaced font family:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:41 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:189 msgid "Metadata" msgstr "Metadata" @@ -2808,39 +3013,39 @@ msgid "" "possible." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:99 msgid "Choose cover for " msgstr "Choose cover for " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:159 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:106 msgid "Cannot read" msgstr "Cannot read" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:107 msgid "You do not have permission to read the file: " msgstr "You do not have permission to read the file: " -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:175 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:183 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:115 msgid "Error reading file" msgstr "Error reading file" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:116 msgid "

There was an error reading from file:
" msgstr "

There was an error reading from file:
" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:124 msgid " is not a valid picture" msgstr " is not a valid picture" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:166 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 msgid "Book Cover" msgstr "Book Cover" @@ -2849,28 +3054,28 @@ msgid "Use cover from &source file" msgstr "Use cover from &source file" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:168 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:393 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 msgid "Change &cover image:" msgstr "Change &cover image:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:169 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:394 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:395 msgid "Browse for an image to use as the cover of this book." msgstr "Browse for an image to use as the cover of this book." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:171 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 msgid "&Title: " msgstr "&Title: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:172 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 msgid "Change the title of this book" msgstr "Change the title of this book" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:135 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Author(s): " @@ -2887,19 +3092,19 @@ msgstr "" "comma" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Publisher: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:177 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 msgid "Ta&gs: " msgstr "Ta&gs: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:368 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " "

They can be any words or phrases, separated by commas." @@ -2908,22 +3113,22 @@ msgstr "" "

They can be any words or phrases, separated by commas." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Series:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." msgstr "List of known series. You can add new series." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:182 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:379 msgid "Book " msgstr "Book " @@ -2992,12 +3197,12 @@ msgid "PDB Input" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:32 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:39 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:43 msgid "Treat each &line as a paragraph" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/pdb_input_ui.py:33 -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:44 msgid "Assume print formatting" msgstr "" @@ -3038,7 +3243,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1371 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "Choose the format to view" @@ -3070,25 +3275,29 @@ msgstr "" msgid "Regex:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:171 msgid "Convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:196 msgid "Options specific to the input format." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:105 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:61 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:64 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf_ui.py:91 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/progress_ui.py:48 msgid "Dialog" msgstr "Dialog" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:109 msgid "&Input format:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single_ui.py:110 +msgid "Use &saved conversion settings for individual books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:17 msgid "" "Structure\n" @@ -3117,12 +3326,12 @@ msgid "Footer regular expression:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:56 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:71 msgid "Invalid regular expression" msgstr "Invalid regular expression" #: /home/kovid/work/calibre/src/calibre/gui2/convert/structure_detection.py:57 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:74 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:72 msgid "Invalid regular expression: %s" msgstr "Invalid regular expression: %s" @@ -3206,40 +3415,40 @@ msgstr "" msgid "TXT Input" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:45 msgid "Process using markdown" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:46 msgid "" "

Markdown is a simple markup language for text files, that allows for " "advanced formatting. To learn more visit markdown." msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_input_ui.py:47 +msgid "Do not insert Table of Contents into output text when using markdown" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output.py:16 msgid "TXT Output" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:46 msgid "&Line ending style:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:55 -msgid "Add a tab at the beginning of each paragraph" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:48 msgid "&Maximum line length:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:57 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/txt_output_ui.py:49 msgid "Force maximum line lenght" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:42 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:62 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:49 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:57 @@ -3248,7 +3457,7 @@ msgstr "" msgid "TextLabel" msgstr "TextLabel" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:43 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:51 msgid "Use a wizard to help construct the XPath expression" msgstr "" @@ -3323,243 +3532,286 @@ msgid "" "chapter.

Leaving attribute blank will match any attribute and " "leaving value blank will match any value. Setting tag to * will match any " "tag.

To learn more advanced usage of XPath see the XPath " -"Tutorial." +"href=\"http://calibre-ebook.com/user_manual/xpath.html\">XPath Tutorial." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:39 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:120 msgid "Device no longer connected." msgstr "Device no longer connected." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:208 msgid "Get device information" msgstr "Get device information" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 msgid "Get list of books on device" msgstr "Get list of books on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:219 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 msgid "Send metadata to device" msgstr "Send metadata to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:228 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:237 msgid "Upload %d books to device" msgstr "Upload %d books to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:243 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:252 msgid "Delete books from device" msgstr "Delete books from device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:269 msgid "Download books from device" msgstr "Download books from device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:270 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:279 msgid "View book on device" msgstr "View book on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:277 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:286 msgid "and delete from library" msgstr "and delete from library" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:298 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:307 msgid "Set default send to device action" msgstr "Set default send to device action" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:303 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:310 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:312 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:319 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:321 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:323 msgid "Email to" msgstr "Email to" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:332 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 msgid "Send to main memory" msgstr "Send to main memory" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:327 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:334 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:329 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:345 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:339 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:348 msgid "Send specific format to main memory" msgstr "Send specific format to main memory" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:350 msgid "Send specific format to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:343 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:352 msgid "Send specific format to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:487 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:496 msgid "selected to send" msgstr "selected to send" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:501 msgid "Choose format to send to device" msgstr "Choose format to send to device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 msgid "No device" msgstr "No device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:509 msgid "Cannot send: No device is connected" msgstr "Cannot send: No device is connected" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:503 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:516 msgid "No card" msgstr "No card" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:517 msgid "Cannot send: Device has no storage card" msgstr "Cannot send: Device has no storage card" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:558 msgid "E-book:" msgstr "E-book:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:561 msgid "Attached, you will find the e-book" msgstr "Attached, you will find the e-book" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:562 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:177 msgid "by" msgstr "by" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:563 msgid "in the %s format." msgstr "in the %s format." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:576 msgid "Sending email to" msgstr "Sending email to" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:598 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:605 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:698 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:812 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:819 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:705 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:765 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:881 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:888 msgid "No suitable formats" msgstr "No suitable formats" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:599 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:607 msgid "Auto convert the following books before sending via email?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:606 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:614 msgid "" "Could not email the following books as no suitable formats were found:" msgstr "" "Could not email the following books as no suitable formats were found:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:625 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:632 msgid "Failed to email books" msgstr "Failed to email books" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:626 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:633 msgid "Failed to email the following books:" msgstr "Failed to email the following books:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:630 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:637 msgid "Sent by email:" msgstr "Sent by email:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:657 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:664 msgid "News:" msgstr "News:" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:665 msgid "Attached is the" msgstr "Attached is the" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:669 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Sent news to" msgstr "Sent news to" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:699 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:813 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:706 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:766 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:882 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:730 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:735 +msgid "Sending catalogs to device." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:796 msgid "Sending news to device." msgstr "Sending news to device." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:782 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:850 msgid "Sending books to device." msgstr "Sending books to device." -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:820 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:889 msgid "" "Could not upload the following books to the device, as no suitable formats " "were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:868 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:937 msgid "No space on device" msgstr "No space on device" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:869 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:938 msgid "" "

Cannot upload books to device there is no more free space available " msgstr "" "

Cannot upload books to device there is no more free space available " -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:75 msgid "Select available formats and their order for this device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:79 msgid "Use sub directories" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:85 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:86 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:345 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1007 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:81 +msgid "Save &template:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1050 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:92 msgid "Path" msgstr "Path" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:87 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:88 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:89 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:117 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:216 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:344 -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Formats" msgstr "Formats" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:65 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 +msgid "Fit &cover to view" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" msgstr "&Previous" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:70 msgid "&Next" msgstr "&Next" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 +msgid "My Books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 +msgid "Generate catalog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:68 +msgid "Catalog &format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:69 +msgid "" +"Catalog &title (existing catalog with the same title will be replaced):" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:70 +msgid "&Send catalog to device automatically" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:71 +msgid "Catalog options" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:72 +msgid "Generate catalog for {0} books" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:40 msgid "Choose Format" msgstr "Choose Format" @@ -3592,6 +3844,12 @@ msgstr "" msgid "plugins" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:180 +msgid "" +"\n" +"Customization: " +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Conversion" msgstr "" @@ -3656,128 +3914,128 @@ msgstr "" msgid "new email address" msgstr "new email address" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:465 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:795 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1045 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Error" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:466 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:469 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:470 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:471 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "No valid plugin path" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s is not a valid plugin path" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Choose plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Plugin cannot be disabled" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "The plugin: %s cannot be disabled" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Plugin not customizable" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s does not need customization" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:573 -msgid "Customize %s" -msgstr "Customize %s" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 +msgid "Customize" +msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:583 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Cannot remove builtin plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:584 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " cannot be removed. It is a builtin plugin. Try disabling it instead." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Error log:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:624 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Access log:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:652 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:589 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Failed to start content server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:684 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Invalid size" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:685 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "The size %s is invalid. Must be of the form widthxheight" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:736 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:741 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Invalid database location" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:737 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Invalid database location " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:738 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Must be a directory." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:742 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Invalid database location.
Cannot write to " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:776 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:796 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:801 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -3785,14 +4043,6 @@ msgid "" "folder directly." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:68 -msgid "Invalid template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save.py:69 -msgid "The template %s is invalid:" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:100 msgid "TabWidget" msgstr "" @@ -3809,239 +4059,259 @@ msgid "Read metadata only from &file name" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:103 -msgid "&Configure metadata from file name" +msgid "" +"Swap the firstname and lastname of the author. This affects only metadata " +"read from file names." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:104 -msgid "&Adding books" +msgid "&Swap author firstname and lastname" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:105 +msgid "&Configure metadata from file name" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +msgid "&Adding books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 msgid "" "Here you can control how calibre will save your books when you click the " "Save to Disk button:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 msgid "Save &cover separately" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 msgid "Update &metadata in saved copies" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 msgid "Save metadata in &OPF file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 msgid "Convert non-English characters to &English equivalents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 msgid "Format &dates as:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 msgid "File &formats to save:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:112 -msgid "Save &template" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:113 -msgid "" -"By adjusting the template below, you can control what folders the files are " -"saved in and what filenames they are given. You can use the / character to " -"indicate sub-folders. Available metadata variables are described below. If a " -"particular book does not have some metadata, the variable will be replaced " -"by the empty string." -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:114 -msgid "Available variables:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Replace space with &underscores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:115 msgid "Change paths to &lowercase" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:116 msgid "&Saving books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:490 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:173 -msgid "Preferences" -msgstr "Preferences" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:491 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:117 msgid "" -"&Location of ebooks (The ebooks are stored in folders sorted by author and " -"metadata is stored in the file metadata.db)" +"Here you can control how calibre will save your books when you click the " +"Send to Device button. This setting can be overriden for individual devices " +"by customizing the device interface plugins in Preferences->Plugins" msgstr "" -"&Location of ebooks (The ebooks are stored in folders sorted by author and " -"metadata is stored in the file metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:492 -msgid "Browse for the new database location" -msgstr "Browse for the new database location" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:494 -msgid "Show notification when &new version is available" -msgstr "Show notification when &new version is available" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:495 -msgid "Default network &timeout:" -msgstr "Default network &timeout:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:496 -msgid "" -"Set the default timeout for network fetches (i.e. anytime we go out to the " -"internet to get information)" -msgstr "" -"Set the default timeout for network fetches (i.e. anytime we go out to the " -"internet to get information)" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:497 -msgid " seconds" -msgstr " seconds" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:498 -msgid "Choose &language (requires restart):" -msgstr "Choose &language (requires restart):" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:499 -msgid "Normal" -msgstr "Normal" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:500 -msgid "High" -msgstr "High" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 -msgid "Low" -msgstr "Low" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 -msgid "Job &priority:" -msgstr "Job &priority:" - -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 -msgid "Preferred &output format:" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/add_save_ui.py:118 +msgid "Sending to &device" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 +msgid "Preferences" +msgstr "Preferences" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +msgid "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" +msgstr "" +"&Location of ebooks (The ebooks are stored in folders sorted by author and " +"metadata is stored in the file metadata.db)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +msgid "Browse for the new database location" +msgstr "Browse for the new database location" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +msgid "Show notification when &new version is available" +msgstr "Show notification when &new version is available" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +msgid "Download &social metadata (tags/ratings/etc.) by default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +msgid "Default network &timeout:" +msgstr "Default network &timeout:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +msgid "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" +msgstr "" +"Set the default timeout for network fetches (i.e. anytime we go out to the " +"internet to get information)" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +msgid " seconds" +msgstr " seconds" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +msgid "Choose &language (requires restart):" +msgstr "Choose &language (requires restart):" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +msgid "Normal" +msgstr "Normal" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +msgid "High" +msgstr "High" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +msgid "Low" +msgstr "Low" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +msgid "Job &priority:" +msgstr "Job &priority:" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +msgid "Preferred &output format:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Use &Roman numerals for series number" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Enable system &tray icon (needs restart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Show ¬ifications in system tray" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Show cover &browser in a separate window (needs restart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Automatically send downloaded &news to ebook reader" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "&Delete news from library when it is automatically sent to reader" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "&Number of covers to show in browse mode (needs restart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Toolbar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Large" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Medium" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Small" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Button size in toolbar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Show &text in toolbar buttons" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Select visible &columns in library view" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Use internal &viewer for:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Add an email address to which to send books" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Add email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Make &default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&Remove email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "calibre can send your books to you (or your reader) by email" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +msgid "Limit the max. simultaneous jobs to the available CPU &cores" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +msgid "Debug &device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4051,25 +4321,25 @@ msgstr "" "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Server &port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Username:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Password:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4077,7 +4347,7 @@ msgstr "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4085,41 +4355,41 @@ msgstr "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Max. &cover size:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Show password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Start Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "St&op Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Test Server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Run server &automatically on startup" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "View &server logs" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4130,7 +4400,7 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4138,30 +4408,71 @@ msgstr "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Enable/&Disable plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "&Customize plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&Remove plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Add new plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Plugin &file:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Add" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:21 +msgid "Getting debug information" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:22 +msgid "Copy to &clipboard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/device_debug.py:24 +msgid "Debug device detection" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:44 +msgid "Invalid template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template.py:45 +msgid "The template %s is invalid:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:42 +msgid "Save &template" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:43 +msgid "" +"By adjusting the template below, you can control what folders the files are " +"saved in and what filenames they are given. You can use the / character to " +"indicate sub-folders. Available metadata variables are described below. If a " +"particular book does not have some metadata, the variable will be replaced " +"by the empty string." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/save_template_ui.py:44 +msgid "Available variables:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/social.py:34 +msgid "Downloading social metadata, please wait..." +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/confirm_delete_ui.py:48 msgid "Are you sure?" msgstr "Are you sure?" @@ -4182,41 +4493,41 @@ msgstr "Author Sort" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Finding metadata..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Could not find metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:159 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "The metadata download seems to have stalled. Try again later." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Warning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Could not fetch metadata from:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "No metadata found" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "No metadata found, try adjusting the title and author or the ISBN key." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Fetch metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4228,24 +4539,32 @@ msgstr "" "free account and enter your access key " "below." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "&Access Key:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Fetch" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Matches" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Select the book that most closely matches your copy from the list below" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 +msgid "Download &social metadata (tags/rating/etc.) for the selected book" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Details of job" @@ -4266,25 +4585,25 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Edit Meta information" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Meta information" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "A&utomatically set author sort" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." @@ -4292,211 +4611,240 @@ msgstr "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Rating:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Rating of this book. 0-5 stars" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " stars" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Open Tag Editor" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Remove tags:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Comma separated list of tags to remove from the books. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Remove &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 +msgid "&Swap title and author" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123 msgid "Not a valid picture" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:136 msgid "Choose formats for " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:885 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1004 msgid "Books" msgstr "Books" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:165 +msgid "No permission" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:166 msgid "You do not have permission to read the following files:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:183 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:184 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:190 msgid "No format selected" msgstr "No format selected" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:201 msgid "Could not read metadata" msgstr "Could not read metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:202 msgid "Could not read metadata from %s format" msgstr "Could not read metadata from %s format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:241 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:247 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:253 msgid "Could not read cover" msgstr "Could not read cover" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:242 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 msgid "Could not read cover from %s format" msgstr "Could not read cover from %s format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:254 msgid "The cover in the %s format is invalid" msgstr "The cover in the %s format is invalid" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:285 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:291 msgid "Abort the editing of all remaining books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:488 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:407 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:412 +msgid "This ISBN number is valid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:415 +msgid "This ISBN number is invalid" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 msgid "Downloading cover..." msgstr "Downloading cover..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:500 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:505 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:534 msgid "Cannot fetch cover" msgstr "Cannot fetch cover" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:501 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:535 msgid "Could not fetch cover.
" msgstr "Could not fetch cover.
" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:525 msgid "The download timed out." msgstr "The download timed out." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:529 msgid "Could not find cover for this book. Try specifying the ISBN first." msgstr "Could not find cover for this book. Try specifying the ISBN first." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:541 msgid "Bad cover" msgstr "Bad cover" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:542 msgid "The cover is not a valid picture" msgstr "The cover is not a valid picture" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:572 +msgid "There were errors" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:573 +msgid "There were errors downloading social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "Cannot fetch metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "You must specify at least one of ISBN, Title, Authors or Publisher" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:352 msgid "Edit Meta Information" msgstr "Edit Meta Information" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:356 msgid "Swap the author and title" msgstr "Swap the author and title" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:359 msgid "Author S&ort: " msgstr "Author S&ort: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:361 msgid "" "Automatically create the author sort entry based on the current author entry" msgstr "" "Automatically create the author sort entry based on the current author entry" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:375 msgid "Remove unused series (Series that have no books)" msgstr "Remove unused series (Series that have no books)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 msgid "IS&BN:" msgstr "IS&BN:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:377 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:378 msgid "Publishe&d:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:380 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 msgid "dd MMM yyyy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 msgid "&Date:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 msgid "&Comments" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:383 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 msgid "&Fetch metadata from server" msgstr "&Fetch metadata from server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:384 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 msgid "Available Formats" msgstr "Available Formats" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:385 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:386 msgid "Add a new format for this book to the database" msgstr "Add a new format for this book to the database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:387 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:388 msgid "Remove the selected formats for this book from the database." msgstr "Remove the selected formats for this book from the database." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:390 msgid "Set the cover for the book from the selected format" msgstr "Set the cover for the book from the selected format" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:391 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:392 msgid "Update metadata from the metadata in the selected format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:396 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:397 msgid "Reset cover to default" msgstr "Reset cover to default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:398 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:399 msgid "Download &cover" msgstr "Download &cover" @@ -4707,17 +5055,19 @@ msgstr "Any of these &unwanted words:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search_ui.py:95 msgid "" -"See the User Manual for more help" +"See the User Manual for more help" msgstr "" -"See the User Manual for more help" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/select_formats.py:45 +msgid "Choose formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:66 msgid "Are your sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:63 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_editor.py:67 msgid "" "The following tags are used by one or more books. Are you certain you want " "to delete them?" @@ -4776,7 +5126,7 @@ msgid "Send test mail from %s to:" msgstr "Send test mail from %s to:" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/test_email_ui.py:52 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:105 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 msgid "&Test" msgstr "&Test" @@ -4972,7 +5322,7 @@ msgstr "" msgid "Recipe source code (python)" msgstr "Recipe source code (python)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:97 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 msgid "" "\n" @@ -4996,142 +5346,155 @@ msgid "" "metadata entries are documented in tooltips.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:104 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 msgid "Regular &expression" msgstr "Regular &expression" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 msgid "File &name:" msgstr "File &name:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 msgid "Test" msgstr "Test" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:108 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 msgid "Title:" msgstr "Title:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 msgid "Regular expression (?P<title>)" msgstr "Regular expression (?P<title>)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:110 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:113 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:116 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:119 -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:80 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:84 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:89 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:123 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:129 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:132 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:78 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:92 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:94 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:96 msgid "No match" msgstr "No match" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 msgid "Authors:" msgstr "Authors:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:122 msgid "Regular expression (?P)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:114 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:124 msgid "Series:" msgstr "Series:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:115 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:125 msgid "Regular expression (?P)" msgstr "Regular expression (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:117 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:127 msgid "Series index:" msgstr "Series index:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:118 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:128 msgid "Regular expression (?P)" msgstr "Regular expression (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:120 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:130 msgid "ISBN:" msgstr "ISBN:" -#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/filename_pattern_ui.py:131 msgid "Regular expression (?P)" msgstr "Regular expression (?P)" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 msgid "Job" msgstr "Job" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 msgid "Status" msgstr "Status" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 msgid "Progress" msgstr "Progress" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:56 msgid "Running time" msgstr "Running time" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:68 +msgid "There are %d running jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:94 msgid "Unknown job" msgstr "Unknown job" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:189 -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:192 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:75 +msgid "There are %d waiting jobs:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:211 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:214 msgid "Cannot kill job" msgstr "Cannot kill job" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:212 msgid "Cannot kill jobs that communicate with the device" msgstr "Cannot kill jobs that communicate with the device" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:215 msgid "Job has already run" msgstr "Job has already run" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:221 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:243 msgid "Unavailable" msgstr "Unavailable" -#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/jobs.py:254 msgid " - Jobs" msgstr " - Jobs" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:160 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1070 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1113 msgid "Size (MB)" msgstr "Size (MB)" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:161 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1071 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1114 msgid "Date" msgstr "Date" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:168 msgid "Rating" msgstr "Rating" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:343 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:408 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:47 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:77 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:440 msgid "None" msgstr "None" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:354 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:365 msgid "Book %s of %s." msgstr "Book %s of %s." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:834 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:877 msgid "Not allowed" msgstr "Not allowed" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:835 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:878 msgid "" "Dropping onto a device is not supported. First add the book to the calibre " "library." @@ -5139,11 +5502,11 @@ msgstr "" "Dropping onto a device is not supported. First add the book to the calibre " "library." -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1006 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1049 msgid "Format" msgstr "Format" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1060 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:1103 msgid "Double click to edit me

" msgstr "Double click to edit me

" @@ -5163,16 +5526,16 @@ msgstr "Hyphenate" msgid "Changes will only take effect after a restart." msgstr "Changes will only take effect after a restart." -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:70 msgid " - LRF Viewer" msgstr " - LRF Viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 msgid "No matches for the search phrase %s were found." msgstr "No matches for the search phrase %s were found." -#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:157 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:421 +#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:410 msgid "No matches found" msgstr "No matches found" @@ -5197,12 +5560,12 @@ msgid "Previous Page" msgstr "Previous Page" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:182 msgid "Back" msgstr "Back" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:183 msgid "Forward" msgstr "Forward" @@ -5211,7 +5574,7 @@ msgid "Next match" msgstr "Next match" #: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:170 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:190 msgid "Open ebook" msgstr "Open ebook" @@ -5219,635 +5582,186 @@ msgstr "Open ebook" msgid "Configure" msgstr "Configure" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:57 -msgid "Save single format to disk..." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:124 -msgid "Search (For Advanced Search click the button to the left)" -msgstr "Search (For Advanced Search click the button to the left)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:141 -msgid "Error communicating with device" -msgstr "Error communicating with device" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:155 -msgid "&Restore" -msgstr "&Restore" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:157 -msgid "&Donate to support calibre" -msgstr "&Donate to support calibre" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:162 -msgid "&Restart" -msgstr "&Restart" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:201 -msgid "" -"

For help visit %s.kovidgoyal.net
" -msgstr "" -"

For help visit %s.kovidgoyal.net
" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:204 -msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" -msgstr "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:227 -msgid "Edit metadata individually" -msgstr "Edit metadata individually" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:229 -msgid "Edit metadata in bulk" -msgstr "Edit metadata in bulk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:231 -msgid "Download metadata and covers" -msgstr "Download metadata and covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:232 -msgid "Download only metadata" -msgstr "Download only metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:233 -msgid "Download only covers" -msgstr "Download only covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:236 -msgid "Add books from a single directory" -msgstr "Add books from a single directory" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:237 -msgid "" -"Add books from directories, including sub-directories (One book per " -"directory, assumes every ebook file is the same book in a different format)" -msgstr "" -"Add books from directories, including sub-directories (One book per " -"directory, assumes every ebook file is the same book in a different format)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:240 -msgid "" -"Add books from directories, including sub directories (Multiple books per " -"directory, assumes every ebook file is a different book)" -msgstr "" -"Add books from directories, including sub directories (Multiple books per " -"directory, assumes every ebook file is a different book)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:243 -msgid "Add Empty book. (Book entry with no formats)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 -msgid "Save to disk" -msgstr "Save to disk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:281 -msgid "Save to disk in a single directory" -msgstr "Save to disk in a single directory" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:282 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1473 -msgid "Save only %s format to disk" -msgstr "Save only %s format to disk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:290 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 -msgid "View" -msgstr "View" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:291 -msgid "View specific format" -msgstr "View specific format" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:317 -msgid "Convert individually" -msgstr "Convert individually" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:318 -msgid "Bulk convert" -msgstr "Bulk convert" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:333 -msgid "Run welcome wizard" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:367 -msgid "Similar books..." -msgstr "Similar books..." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:427 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:428 -msgid "Bad database location" -msgstr "Bad database location" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:430 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:511 -msgid "Calibre Library" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:440 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1616 -msgid "Choose a location for your ebook library." -msgstr "Choose a location for your ebook library." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:632 -msgid "Browse by covers" -msgstr "Browse by covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:739 -msgid "Device: " -msgstr "Device: " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:741 -msgid " detected." -msgstr " detected." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:763 -msgid "Connected " -msgstr "Connected " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:775 -msgid "Device database corrupted" -msgstr "Device database corrupted" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:776 -msgid "" -"\n" -"

The database of books on the reader is corrupted. Try the " -"following:\n" -"

    \n" -"
  1. Unplug the reader. Wait for it to finish regenerating " -"the database (i.e. wait till it is ready to be used). Plug it back in. Now " -"it should work with %(app)s. If not try the next step.
  2. \n" -"
  3. Quit %(app)s. Find the file media.xml in the reader's " -"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " -"file. Re-connect it and start %(app)s.
  4. \n" -"
\n" -" " -msgstr "" -"\n" -"

The database of books on the reader is corrupted. Try the " -"following:\n" -"

    \n" -"
  1. Unplug the reader. Wait for it to finish regenerating " -"the database (i.e. wait till it is ready to be used). Plug it back in. Now " -"it should work with %(app)s. If not try the next step.
  2. \n" -"
  3. Quit %(app)s. Find the file media.xml in the reader's " -"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " -"file. Re-connect it and start %(app)s.
  4. \n" -"
\n" -" " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:877 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:920 -msgid "Uploading books to device." -msgstr "Uploading books to device." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:886 -msgid "EPUB Books" -msgstr "EPUB Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:887 -msgid "LRF Books" -msgstr "LRF Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:888 -msgid "HTML Books" -msgstr "HTML Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:889 -msgid "LIT Books" -msgstr "LIT Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:890 -msgid "MOBI Books" -msgstr "MOBI Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:891 -msgid "Text books" -msgstr "Text books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:892 -msgid "PDF Books" -msgstr "PDF Books" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:893 -msgid "Comics" -msgstr "Comics" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:894 -msgid "Archives" -msgstr "Archives" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:929 -msgid "Failed to read metadata" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:930 -msgid "Failed to read metadata from the following" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:949 -msgid "" -"The selected books will be permanently deleted and the files removed " -"from your computer. Are you sure?" -msgstr "" -"The selected books will be permanently deleted and the files removed " -"from your computer. Are you sure?" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:976 -msgid "Deleting books from device." -msgstr "Deleting books from device." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1007 -msgid "Cannot download metadata" -msgstr "Cannot download metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1008 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1056 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1089 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1114 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1226 -msgid "No books selected" -msgstr "No books selected" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 -msgid "covers" -msgstr "covers" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1017 -msgid "metadata" -msgstr "metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1019 -msgid "Downloading %s for %d book(s)" -msgstr "Downloading %s for %d book(s)" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1040 -msgid "Failed to download some metadata" -msgstr "Failed to download some metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1041 -msgid "Failed to download metadata for the following:" -msgstr "Failed to download metadata for the following:" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1044 -msgid "Failed to download metadata:" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1055 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1088 -msgid "Cannot edit metadata" -msgstr "Cannot edit metadata" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1113 -msgid "Cannot save to disk" -msgstr "Cannot save to disk" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1116 -msgid "Choose destination directory" -msgstr "Choose destination directory" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1143 -msgid "Error while saving" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1144 -msgid "There was an error while saving." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1151 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1152 -msgid "Could not save some books" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1153 -msgid "Click the show details button to see which ones." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1172 -msgid "Fetching news from " -msgstr "Fetching news from " - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1185 -msgid " fetched." -msgstr " fetched." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1225 -msgid "Cannot convert" -msgstr "Cannot convert" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1254 -msgid "Starting conversion of %d book(s)" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1365 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1384 -msgid "No book selected" -msgstr "No book selected" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1365 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1415 -msgid "Cannot view" -msgstr "Cannot view" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1383 -msgid "Cannot open folder" -msgstr "Cannot open folder" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1400 -msgid "Multiple Books Selected" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1401 -msgid "" -"You are attempting to open %d books. Opening too many books at once can be " -"slow and have a negative effect on the responsiveness of your computer. Once " -"started the process cannot be stopped until complete. Do you wish to " -"continue?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1416 -msgid "%s has no available formats." -msgstr "%s has no available formats." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1457 -msgid "Cannot configure" -msgstr "Cannot configure" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1458 -msgid "Cannot configure while there are running jobs." -msgstr "Cannot configure while there are running jobs." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1501 -msgid "No detailed info available" -msgstr "No detailed info available" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1502 -msgid "No detailed information is available for books on the device." -msgstr "No detailed information is available for books on the device." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1554 -msgid "Error talking to device" -msgstr "Error talking to device" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1555 -msgid "" -"There was a temporary error talking to the device. Please unplug and " -"reconnect the device and or reboot." -msgstr "" -"There was a temporary error talking to the device. Please unplug and " -"reconnect the device and or reboot." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1578 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1596 -msgid "Conversion Error" -msgstr "Conversion Error" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1579 -msgid "" -"

Could not convert: %s

It is a DRMed book. You must " -"first remove the DRM using third party tools." -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1597 -msgid "Failed" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1625 -msgid "Invalid library location" -msgstr "Invalid library location" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1626 -msgid "Could not access %s. Using %s as the library." -msgstr "Could not access %s. Using %s as the library." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1674 -msgid "" -"is the result of the efforts of many volunteers from all over the world. If " -"you find it useful, please consider donating to support its development." -msgstr "" -"is the result of the efforts of many volunteers from all over the world. If " -"you find it useful, please consider donating to support its development." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1698 -msgid "There are active jobs. Are you sure you want to quit?" -msgstr "There are active jobs. Are you sure you want to quit?" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1701 -msgid "" -" is communicating with the device!
\n" -" Quitting may cause corruption on the device.
\n" -" Are you sure you want to quit?" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1705 -msgid "WARNING: Active jobs" -msgstr "WARNING: Active jobs" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1756 -msgid "" -"will keep running in the system tray. To close it, choose Quit in the " -"context menu of the system tray." -msgstr "" -"will keep running in the system tray. To close it, choose Quit in the " -"context menu of the system tray." - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1775 -msgid "" -"Latest version: %s" -msgstr "" -"Latest version: %s" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1783 -msgid "Update available" -msgstr "Update available" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1784 -msgid "" -"%s has been updated to version %s. See the new features. " -"Visit the download page?" -msgstr "" -"%s has been updated to version %s. See the new features. " -"Visit the download page?" - -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1802 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Use the library located at the specified path." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1804 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Start minimized to system tray." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1806 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Log debugging information to console" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1808 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1856 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1858 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Cannot Start " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1859 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1862 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1864 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1866 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1869 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1871 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:1883 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:331 msgid "calibre" msgstr "calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:333 msgid "Advanced search" msgstr "Advanced search" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:335 msgid "Alt+S" msgstr "Alt+S" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:336 msgid "&Search:" msgstr "&Search:" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:340 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:337 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:338 msgid "" "

Search the list of books by title, author, publisher, tags, comments, " "etc.

Words separated by spaces are ANDed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:339 msgid "Reset Quick Search" msgstr "Reset Quick Search" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 -msgid "Match any" -msgstr "Match any" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 -msgid "Match all" -msgstr "Match all" - -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:341 msgid "Sort by &popularity" msgstr "Sort by &popularity" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:342 +msgid "Match any" +msgstr "Match any" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:343 +msgid "Match all" +msgstr "Match all" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:344 msgid "Add books" msgstr "Add books" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:345 msgid "A" msgstr "A" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:347 msgid "Remove books" msgstr "Remove books" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:348 msgid "Del" msgstr "Del" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:349 msgid "Edit meta information" msgstr "Edit meta information" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:350 msgid "E" msgstr "E" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 msgid "Send to device" msgstr "Send to device" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 +msgid "Save to disk" +msgstr "Save to disk" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:353 msgid "S" msgstr "S" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:354 msgid "Fetch news" msgstr "Fetch news" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:355 msgid "F" msgstr "F" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:356 msgid "Convert E-books" msgstr "Convert E-books" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:357 msgid "C" msgstr "C" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:358 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:314 +msgid "View" +msgstr "View" + +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:359 msgid "V" msgstr "V" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:360 msgid "Open containing folder" msgstr "Open containing folder" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:361 msgid "Show book details" msgstr "Show book details" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:362 msgid "Books by same author" msgstr "Books by same author" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:363 msgid "Books in this series" msgstr "Books in this series" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:364 msgid "Books by this publisher" msgstr "Books by this publisher" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:365 msgid "Books with the same tags" msgstr "Books with the same tags" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:369 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:367 msgid "Configure calibre" msgstr "Configure calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:370 +#: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:368 msgid "Ctrl+P" msgstr "Ctrl+P" @@ -5871,11 +5785,11 @@ msgstr "&Quit" msgid "ERROR: Unhandled exception" msgstr "ERROR: Unhandled exception" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Book has neither title nor ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:96 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "No matches found for this book" @@ -5883,6 +5797,66 @@ msgstr "No matches found for this book" msgid "Search" msgstr "Search" +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:58 +msgid "Press a key..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:79 +msgid "Already assigned" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:81 +msgid "already assigned to" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid " or " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:68 +msgid "&Default" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:135 +msgid "Customize shortcuts for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:223 +msgid "Keys" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts.py:225 +msgid "Double click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:67 +msgid "Frame" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:69 +msgid "&Custom" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:70 +msgid "&Shortcut:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:71 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:76 +msgid "Click to change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:73 +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:78 +msgid "Clear" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 +msgid "&Alternate shortcut:" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 msgid "Jobs:" msgstr "Jobs:" @@ -5891,15 +5865,15 @@ msgstr "Jobs:" msgid "Click to see list of active jobs." msgstr "Click to see list of active jobs." -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to browse books by their covers" msgstr "Click to browse books by their covers" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:188 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:196 msgid "Click to turn off Cover Browsing" msgstr "Click to turn off Cover Browsing" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:193 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 msgid "" "

Browsing books by their covers is disabled.
Import of pictureflow " "module failed:
" @@ -5907,15 +5881,15 @@ msgstr "" "

Browsing books by their covers is disabled.
Import of pictureflow " "module failed:
" -#: /home/kovid/work/calibre/src/calibre/gui2/status.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/status.py:209 msgid "Click to browse books by tags" msgstr "Click to browse books by tags" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Authors" msgstr "Authors" -#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:122 +#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 msgid "Publishers" msgstr "Publishers" @@ -5936,7 +5910,7 @@ msgid "" "found." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:121 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:120 msgid "Queueing books for bulk conversion" msgstr "" @@ -5948,16 +5922,539 @@ msgstr "" msgid "Fetch news from " msgstr "Fetch news from " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:248 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:249 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:63 +msgid "Save single format to disk..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:142 +msgid "Search (For Advanced Search click the button to the left)" +msgstr "Search (For Advanced Search click the button to the left)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:159 +msgid "Error communicating with device" +msgstr "Error communicating with device" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:176 +msgid "&Restore" +msgstr "&Restore" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:178 +msgid "&Donate to support calibre" +msgstr "&Donate to support calibre" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:183 +msgid "&Restart" +msgstr "&Restart" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:222 +msgid "

For help see the: User Manual
" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:224 +msgid "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" +msgstr "%s: %s by Kovid Goyal %%(version)s
%%(device)s

" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:247 +msgid "Edit metadata individually" +msgstr "Edit metadata individually" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:249 +msgid "Edit metadata in bulk" +msgstr "Edit metadata in bulk" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:251 +msgid "Download metadata and covers" +msgstr "Download metadata and covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:252 +msgid "Download only metadata" +msgstr "Download only metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:253 +msgid "Download only covers" +msgstr "Download only covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:254 +msgid "Download only social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:257 +msgid "Add books from a single directory" +msgstr "Add books from a single directory" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:258 +msgid "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" +msgstr "" +"Add books from directories, including sub-directories (One book per " +"directory, assumes every ebook file is the same book in a different format)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:261 +msgid "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" +msgstr "" +"Add books from directories, including sub directories (Multiple books per " +"directory, assumes every ebook file is a different book)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:264 +msgid "Add Empty book. (Book entry with no formats)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:305 +msgid "Save to disk in a single directory" +msgstr "Save to disk in a single directory" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 +msgid "Save only %s format to disk" +msgstr "Save only %s format to disk" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:315 +msgid "View specific format" +msgstr "View specific format" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:319 +msgid "Remove selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:321 +msgid "Remove files of a specific format from selected books.." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:323 +msgid "Remove all formats from selected books, except..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:325 +msgid "Remove covers from selected books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:356 +msgid "Convert individually" +msgstr "Convert individually" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:357 +msgid "Bulk convert" +msgstr "Bulk convert" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 +msgid "Create catalog of books in your calibre library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 +msgid "Run welcome wizard" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:412 +msgid "Similar books..." +msgstr "Similar books..." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:472 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:473 +msgid "Bad database location" +msgstr "Bad database location" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:558 +msgid "Calibre Library" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 +msgid "Choose a location for your ebook library." +msgstr "Choose a location for your ebook library." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 +msgid "Calibre Quick Start Guide" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 +msgid "Browse by covers" +msgstr "Browse by covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:851 +msgid "Device: " +msgstr "Device: " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:853 +msgid " detected." +msgstr " detected." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:877 +msgid "Connected " +msgstr "Connected " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:889 +msgid "Device database corrupted" +msgstr "Device database corrupted" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:890 +msgid "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " +msgstr "" +"\n" +"

The database of books on the reader is corrupted. Try the " +"following:\n" +"

    \n" +"
  1. Unplug the reader. Wait for it to finish regenerating " +"the database (i.e. wait till it is ready to be used). Plug it back in. Now " +"it should work with %(app)s. If not try the next step.
  2. \n" +"
  3. Quit %(app)s. Find the file media.xml in the reader's " +"main memory. Delete it. Unplug the reader. Wait for it to regenerate the " +"file. Re-connect it and start %(app)s.
  4. \n" +"
\n" +" " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:952 +msgid "How many empty books?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:953 +msgid "How many empty books should be added?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:997 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1043 +msgid "Uploading books to device." +msgstr "Uploading books to device." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1005 +msgid "EPUB Books" +msgstr "EPUB Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1006 +msgid "LRF Books" +msgstr "LRF Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1007 +msgid "HTML Books" +msgstr "HTML Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1008 +msgid "LIT Books" +msgstr "LIT Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1009 +msgid "MOBI Books" +msgstr "MOBI Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1010 +msgid "Text books" +msgstr "Text books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1011 +msgid "PDF Books" +msgstr "PDF Books" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1012 +msgid "Comics" +msgstr "Comics" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1013 +msgid "Archives" +msgstr "Archives" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1017 +msgid "Supported books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 +msgid "Failed to read metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 +msgid "Failed to read metadata from the following" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 +msgid "Cannot delete" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 +msgid "No book selected" +msgstr "No book selected" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 +msgid "Choose formats to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 +msgid "Choose formats not to be deleted" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 +msgid "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" +msgstr "" +"The selected books will be permanently deleted and the files removed " +"from your computer. Are you sure?" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 +msgid "Deleting books from device." +msgstr "Deleting books from device." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 +msgid "Cannot download metadata" +msgstr "Cannot download metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 +msgid "No books selected" +msgstr "No books selected" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +msgid "social metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "covers" +msgstr "covers" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +msgid "metadata" +msgstr "metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 +msgid "Downloading %s for %d book(s)" +msgstr "Downloading %s for %d book(s)" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 +msgid "Failed to download some metadata" +msgstr "Failed to download some metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 +msgid "Failed to download metadata for the following:" +msgstr "Failed to download metadata for the following:" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 +msgid "Failed to download metadata:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 +msgid "Cannot edit metadata" +msgstr "Cannot edit metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 +msgid "Cannot save to disk" +msgstr "Cannot save to disk" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 +msgid "Choose destination directory" +msgstr "Choose destination directory" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 +msgid "Error while saving" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 +msgid "There was an error while saving." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 +msgid "Could not save some books" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 +msgid "Click the show details button to see which ones." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 +msgid "No books selected to generate catalog for" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 +msgid "Generating %s catalog..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 +msgid "Catalog generated." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 +msgid "Export Catalog Directory" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 +msgid "Select destination for %s.%s" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 +msgid "Fetching news from " +msgstr "Fetching news from " + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 +msgid " fetched." +msgstr " fetched." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 +msgid "Cannot convert" +msgstr "Cannot convert" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 +msgid "Starting conversion of %d book(s)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 +msgid "Cannot view" +msgstr "Cannot view" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 +msgid "Cannot open folder" +msgstr "Cannot open folder" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 +msgid "Multiple Books Selected" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 +msgid "" +"You are attempting to open %d books. Opening too many books at once can be " +"slow and have a negative effect on the responsiveness of your computer. Once " +"started the process cannot be stopped until complete. Do you wish to " +"continue?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 +msgid "%s has no available formats." +msgstr "%s has no available formats." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 +msgid "Cannot configure" +msgstr "Cannot configure" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 +msgid "Cannot configure while there are running jobs." +msgstr "Cannot configure while there are running jobs." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 +msgid "No detailed info available" +msgstr "No detailed info available" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 +msgid "No detailed information is available for books on the device." +msgstr "No detailed information is available for books on the device." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 +msgid "Error talking to device" +msgstr "Error talking to device" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 +msgid "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." +msgstr "" +"There was a temporary error talking to the device. Please unplug and " +"reconnect the device and or reboot." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 +msgid "Conversion Error" +msgstr "Conversion Error" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 +msgid "" +"

Could not convert: %s

It is a DRMed book. You must " +"first remove the DRM using third party tools." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 +msgid "Recipe Disabled" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 +msgid "Failed" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 +msgid "Invalid library location" +msgstr "Invalid library location" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 +msgid "Could not access %s. Using %s as the library." +msgstr "Could not access %s. Using %s as the library." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 +msgid "" +"is the result of the efforts of many volunteers from all over the world. If " +"you find it useful, please consider donating to support its development." +msgstr "" +"is the result of the efforts of many volunteers from all over the world. If " +"you find it useful, please consider donating to support its development." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 +msgid "There are active jobs. Are you sure you want to quit?" +msgstr "There are active jobs. Are you sure you want to quit?" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 +msgid "" +" is communicating with the device!
\n" +" Quitting may cause corruption on the device.
\n" +" Are you sure you want to quit?" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 +msgid "WARNING: Active jobs" +msgstr "WARNING: Active jobs" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 +msgid "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." +msgstr "" +"will keep running in the system tray. To close it, choose Quit in the " +"context menu of the system tray." + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 +msgid "" +"Latest version: %s" +msgstr "" +"Latest version: %s" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 +msgid "Update available" +msgstr "Update available" + +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 +msgid "" +"%s has been updated to version %s. See the new features. Visit the download page?" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:43 msgid "Edit bookmark" msgstr "" @@ -6014,93 +6511,113 @@ msgstr "" msgid "Import" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:133 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:154 msgid "Configure Ebook viewer" msgstr "Configure Ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:134 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:155 msgid "&Font options" msgstr "&Font options" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:135 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:156 msgid "Se&rif family:" msgstr "Se&rif family:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:157 msgid "&Sans family:" msgstr "&Sans family:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:158 msgid "&Monospace family:" msgstr "&Monospace family:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:159 msgid "&Default font size:" msgstr "&Default font size:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:139 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:141 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:168 msgid " px" msgstr " px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:161 msgid "Monospace &font size:" msgstr "Monospace &font size:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:163 msgid "S&tandard font:" msgstr "S&tandard font:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:164 msgid "Serif" msgstr "Serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:165 msgid "Sans-serif" msgstr "Sans-serif" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:166 msgid "Monospace" msgstr "Monospace" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:167 msgid "Remember last used &window size" msgstr "Remember last used &window size" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:169 msgid "Maximum &view width:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:170 msgid "H&yphenate (break line in the middle of large words)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:171 msgid "" "The default language to use for hyphenation rules. If the book does not " "specify a language, this will be used." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:172 msgid "Default &language for hyphenation:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 +msgid "&Resize images larger than the viewer window (needs restart)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" msgstr "&User stylesheet" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 +msgid "&General" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 +msgid "Double click to change a keyboard shortcut" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:177 +msgid "&Keyboard shortcuts" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/dictionary.py:53 +msgid "No results found for:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:33 msgid "Options to customize the ebook viewer" msgstr "Options to customize the ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:37 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:648 msgid "Remember last used window size" msgstr "Remember last used window size" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:39 -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:79 msgid "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." @@ -6108,133 +6625,193 @@ msgstr "" "Set the user CSS stylesheet. This can be used to customize the look of all " "books." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:41 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 msgid "Maximum width of the viewer window, in pixels." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +msgid "Resize images larger than the viewer window to fit inside it" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:49 msgid "Default language for hyphenation rules" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:51 msgid "Font options" msgstr "Font options" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 msgid "The serif font family" msgstr "The serif font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:50 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 msgid "The sans-serif font family" msgstr "The sans-serif font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:52 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:57 msgid "The monospaced font family" msgstr "The monospaced font family" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:58 msgid "The standard font size in px" msgstr "The standard font size in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:59 msgid "The monospaced font size in px" msgstr "The monospaced font size in px" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:60 msgid "The standard font type" msgstr "The standard font type" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:408 +msgid "&Lookup in dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:12 +msgid "Scroll to the next page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:15 +msgid "Scroll to the previous page" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:18 +msgid "Scroll to the next section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:21 +msgid "Scroll to the previous section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:24 +msgid "Scroll to the bottom of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:27 +msgid "Scroll to the top of the section" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:30 +msgid "Scroll to the end of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:33 +msgid "Scroll to the start of the document" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:36 +msgid "Scroll down" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:39 +msgid "Scroll up" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:42 +msgid "Scroll left" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/keys.py:45 +msgid "Scroll right" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:115 msgid "Book format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:169 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138 msgid "Go to..." msgstr "Go to..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:210 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:182 msgid "Position in book" msgstr "Position in book" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:216 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:188 msgid "Go to a reference. To get reference numbers, use the reference mode." msgstr "Go to a reference. To get reference numbers, use the reference mode." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:223 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:195 msgid "Search for text in book" msgstr "Search for text in book" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:286 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:259 msgid "Print Preview" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:381 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:271 +msgid "Connecting to dict.org to lookup: %s…" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:370 msgid "Choose ebook" msgstr "Choose ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:382 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:371 msgid "Ebooks" msgstr "Ebooks" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 msgid "Add bookmark" msgstr "Add bookmark" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:401 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:390 msgid "Enter title for bookmark:" msgstr "Enter title for bookmark:" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:422 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:411 msgid "No matches found for: %s" msgstr "No matches found for: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:462 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:451 msgid "Loading flow..." msgstr "Loading flow..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:489 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:487 msgid "Laying out %s" msgstr "Laying out %s" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:518 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:516 msgid "Manage Bookmarks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:551 msgid "Loading ebook..." msgstr "Loading ebook..." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:559 msgid "DRM Error" msgstr "DRM Error" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:560 msgid "

This book is protected by DRM" msgstr "

This book is protected by DRM" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:564 msgid "Could not open ebook" msgstr "Could not open ebook" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:640 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:638 msgid "Options to control the ebook viewer" msgstr "Options to control the ebook viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:647 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:645 msgid "" "If specified, viewer window will try to come to the front when started." msgstr "" "If specified, viewer window will try to come to the front when started." -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:652 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:650 msgid "Print javascript alert and console messages to the console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:658 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656 msgid "" "%prog [options] file\n" "\n" @@ -6244,59 +6821,71 @@ msgstr "" "\n" "View an ebook.\n" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:160 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:178 msgid "Ebook Viewer" msgstr "Ebook Viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:179 +msgid "Close dictionary" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:181 msgid "toolBar" msgstr "toolBar" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:184 msgid "Next page" msgstr "Next page" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:165 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:185 msgid "Previous page" msgstr "Previous page" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:166 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:186 msgid "Font size larger" msgstr "Font size larger" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:167 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:187 msgid "Font size smaller" msgstr "Font size smaller" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:171 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:191 msgid "Find next" msgstr "Find next" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:192 msgid "Copy to clipboard" msgstr "Copy to clipboard" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:174 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:194 msgid "Reference Mode" msgstr "Reference Mode" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:175 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:195 msgid "Bookmark" msgstr "Bookmark" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:196 msgid "Toggle full screen" msgstr "Toggle full screen" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:197 msgid "Print" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:113 +#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:114 msgid "Print eBook" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:198 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:196 +msgid "Copy Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:197 +msgid "Paste Image" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:226 msgid "" "Library\n" "%d\n" @@ -6306,7 +6895,7 @@ msgstr "" "%d\n" "books" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:227 msgid "" "Reader\n" "%s\n" @@ -6316,100 +6905,100 @@ msgstr "" "%s\n" "available" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:200 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:228 msgid "" "Card A\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:201 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:229 msgid "" "Card B\n" "%s\n" "available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:206 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:234 msgid "Click to see the books available on your computer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:207 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:235 msgid "Click to see the books in the main memory of your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:208 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:236 msgid "Click to see the books on storage card A in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:209 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:237 msgid "Click to see the books on storage card B in your reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:498 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:530 msgid "Change Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:499 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:531 msgid "Upper Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:500 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:532 msgid "Lower Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:533 msgid "Swap Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:534 msgid "Title Case" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:289 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:330 msgid "" "If you use the WordPlayer e-book app on your Android phone, you can access " "your calibre book collection directly on the device. To do this you have to " "turn on the content server." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:293 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:334 msgid "" "Remember to leave calibre running as the server only runs as long as calibre " "is running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:295 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:336 msgid "" "You have to add the URL http://myhostname:8080 as your calibre library in " "WordPlayer. Here myhostname should be the fully qualified hostname or the IP " "address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:372 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:413 msgid "Moving library..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:388 -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:389 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:429 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:430 msgid "Failed to move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:443 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:484 msgid "Invalid database" msgstr "Invalid database" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:444 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:485 msgid "" "

An invalid library already exists at %s, delete it before trying to move " "the existing library.
Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:455 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:496 msgid "Could not move library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:625 msgid "welcome wizard" msgstr "" @@ -6460,14 +7049,13 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:49 msgid "" "

Demo videos

Videos demonstrating the various features of calibre are " -"available online." +"available online." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/finish_ui.py:50 msgid "" -"

User Manual

A User Manual is also available online." +"

User Manual

A User Manual is also available online." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/kindle_ui.py:44 @@ -6676,7 +7264,89 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:117 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 +msgid "" +"The fields to output when cataloging books in the database. Should be a " +"comma-separated list of fields.\n" +"Available fields: %s.\n" +"Default: '%%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 +msgid "" +"Output field to sort on.\n" +"Available fields: author_sort, id, rating, size, timestamp, title.\n" +"Default: '%default'\n" +"Applies to: CSV, XML output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +msgid "" +"Title of generated catalog used as title in metadata.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 +msgid "" +"Regex describing tags to exclude as genres.\n" +"Default: '%default' excludes bracketed tags, e.g. '[]'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 +msgid "" +"Comma-separated list of tag words indicating book should be excluded from " +"output. Case-insensitive.\n" +"--exclude-tags=skip will match 'skip this book' and 'Skip will like this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 +msgid "" +"Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 +msgid "" +"Specifies the output profile. In some cases, an output profile is required " +"to optimize the catalog for the device. For example, 'kindle' or " +"'kindle_dx' creates a structured Table of Contents with Sections and " +"Articles.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " "settings." @@ -6684,7 +7354,7 @@ msgstr "" "Path to the calibre library. Default is to use the path stored in the " "settings." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:196 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:200 msgid "" "%prog list [options]\n" "\n" @@ -6694,65 +7364,65 @@ msgstr "" "\n" "List the books available in the calibre database.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:204 -msgid "" -"The fields to display when listing books in the database. Should be a comma " -"separated list of fields.\n" -"Available fields: %s\n" -"Default: %%default. The special field \"all\" can be used to select all " -"fields. Only has effect in the text output format." -msgstr "" -"The fields to display when listing books in the database. Should be a comma " -"separated list of fields.\n" -"Available fields: %s\n" -"Default: %%default. The special field \"all\" can be used to select all " -"fields. Only has effect in the text output format." - -#: /home/kovid/work/calibre/src/calibre/library/cli.py:206 -msgid "" -"The field by which to sort the results.\n" -"Available fields: %s\n" -"Default: %%default" -msgstr "" -"The field by which to sort the results.\n" -"Available fields: %s\n" -"Default: %%default" - #: /home/kovid/work/calibre/src/calibre/library/cli.py:208 -msgid "Sort results in ascending order" -msgstr "Sort results in ascending order" +msgid "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." +msgstr "" +"The fields to display when listing books in the database. Should be a comma " +"separated list of fields.\n" +"Available fields: %s\n" +"Default: %%default. The special field \"all\" can be used to select all " +"fields. Only has effect in the text output format." #: /home/kovid/work/calibre/src/calibre/library/cli.py:210 msgid "" -"Filter the results by the search query. For the format of the search query, " -"please see the search related documentation in the User Manual. Default is " -"to do no filtering." +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" msgstr "" -"Filter the results by the search query. For the format of the search query, " -"please see the search related documentation in the User Manual. Default is " -"to do no filtering." +"The field by which to sort the results.\n" +"Available fields: %s\n" +"Default: %%default" #: /home/kovid/work/calibre/src/calibre/library/cli.py:212 -msgid "" -"The maximum width of a single line in the output. Defaults to detecting " -"screen size." -msgstr "" -"The maximum width of a single line in the output. Defaults to detecting " -"screen size." - -#: /home/kovid/work/calibre/src/calibre/library/cli.py:213 -msgid "The string used to separate fields. Default is a space." -msgstr "The string used to separate fields. Default is a space." +msgid "Sort results in ascending order" +msgstr "Sort results in ascending order" #: /home/kovid/work/calibre/src/calibre/library/cli.py:214 msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search related documentation in the User Manual. Default is " +"to do no filtering." +msgstr "" +"Filter the results by the search query. For the format of the search query, " +"please see the search related documentation in the User Manual. Default is " +"to do no filtering." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:216 +msgid "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." +msgstr "" +"The maximum width of a single line in the output. Defaults to detecting " +"screen size." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +msgid "The string used to separate fields. Default is a space." +msgstr "The string used to separate fields. Default is a space." + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:218 +msgid "" "The prefix for all file paths. Default is the absolute path to the library " "folder." msgstr "" "The prefix for all file paths. Default is the absolute path to the library " "folder." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:217 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:221 msgid "" "The format in which to output the data. Available choices: %s. Defaults is " "text." @@ -6760,15 +7430,15 @@ msgstr "" "The format in which to output the data. Available choices: %s. Defaults is " "text." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:230 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:234 msgid "Invalid fields. Available fields:" msgstr "Invalid fields. Available fields:" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:237 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:241 msgid "Invalid sort field. Available fields:" msgstr "Invalid sort field. Available fields:" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:308 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:312 msgid "" "The following books were not added as they already exist in the database " "(see --duplicates option):" @@ -6776,7 +7446,7 @@ msgstr "" "The following books were not added as they already exist in the database " "(see --duplicates option):" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:331 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:335 msgid "" "%prog add [options] file1 file2 file3 ...\n" "\n" @@ -6790,31 +7460,31 @@ msgstr "" "directories, see\n" "the directory related options below.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:340 -msgid "" -"Assume that each directory has only a single logical book and that all files " -"in it are different e-book formats of that book" -msgstr "" -"Assume that each directory has only a single logical book and that all files " -"in it are different e-book formats of that book" - -#: /home/kovid/work/calibre/src/calibre/library/cli.py:342 -msgid "Process directories recursively" -msgstr "Process directories recursively" - #: /home/kovid/work/calibre/src/calibre/library/cli.py:344 msgid "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" +msgstr "" +"Assume that each directory has only a single logical book and that all files " +"in it are different e-book formats of that book" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:346 +msgid "Process directories recursively" +msgstr "Process directories recursively" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:348 +msgid "" "Add books to database even if they already exist. Comparison is done based " "on book titles." msgstr "" "Add books to database even if they already exist. Comparison is done based " "on book titles." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:354 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:358 msgid "You must specify at least one file to add" msgstr "You must specify at least one file to add" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:370 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:374 msgid "" "%prog remove ids\n" "\n" @@ -6828,11 +7498,11 @@ msgstr "" "separated list of id numbers (you can get id numbers by using the list " "command). For example, 23,34,57-85\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:385 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:389 msgid "You must specify at least one book to remove" msgstr "You must specify at least one book to remove" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:404 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:408 msgid "" "%prog add_format [options] id ebook_file\n" "\n" @@ -6846,15 +7516,15 @@ msgstr "" "identified by id. You can get id by using the list command. If the format " "already exists, it is replaced.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:419 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:423 msgid "You must specify an id and an ebook file" msgstr "You must specify an id and an ebook file" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:424 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:428 msgid "ebook file must have an extension" msgstr "ebook file must have an extension" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:432 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:436 msgid "" "\n" "%prog remove_format [options] id fmt\n" @@ -6870,11 +7540,11 @@ msgstr "" "by using the list command. fmt should be a file extension like LRF or TXT or " "EPUB. If the logical book does not have fmt available, do nothing.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:449 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:453 msgid "You must specify an id and a format" msgstr "You must specify an id and a format" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:467 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:471 msgid "" "\n" "%prog show_metadata [options] id\n" @@ -6890,15 +7560,15 @@ msgstr "" "id.\n" "id is an id number from the list command.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:475 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:479 msgid "Print metadata in OPF form (XML)" msgstr "Print metadata in OPF form (XML)" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:484 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:488 msgid "You must specify an id" msgstr "You must specify an id" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:497 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:501 msgid "" "\n" "%prog set_metadata [options] id /path/to/metadata.opf\n" @@ -6920,11 +7590,11 @@ msgstr "" "can get a quick feel for the OPF format by using the --as-opf switch to the\n" "show_metadata command.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:513 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:517 msgid "You must specify an id and a metadata file" msgstr "You must specify an id and a metadata file" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:533 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:537 msgid "" "%prog export [options] ids\n" "\n" @@ -6942,27 +7612,61 @@ msgstr "" "(in\n" "an opf file). You can get id numbers from the list command.\n" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:541 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 msgid "Export all books in database, ignoring the list of ids." msgstr "Export all books in database, ignoring the list of ids." -#: /home/kovid/work/calibre/src/calibre/library/cli.py:543 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:547 msgid "Export books to the specified directory. Default is" msgstr "Export books to the specified directory. Default is" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:545 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:549 msgid "Export all books into a single directory" msgstr "Export all books into a single directory" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:552 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:556 msgid "Specifying this switch will turn this behavior off." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:575 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:579 msgid "You must specify some ids or the %s option" msgstr "You must specify some ids or the %s option" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:587 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:634 +msgid "" +"\n" +" %prog catalog /path/to/destination.(csv|epub|mobi|xml ...) [options]\n" +"\n" +" Export a catalog in format specified by path/to/destination extension.\n" +" Options control how entries are displayed in the generated catalog " +"ouput.\n" +" " +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:648 +msgid "" +"Comma-separated list of database IDs to catalog.\n" +"If declared, --search is ignored.\n" +"Default: all" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:652 +msgid "" +"Filter the results by the search query. For the format of the search query, " +"please see the search-related documentation in the User Manual.\n" +"Default: no filtering" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:658 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 +msgid "Show detailed output information. Useful for debugging" +msgstr "Show detailed output information. Useful for debugging" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:671 +msgid "Error: You must specify a catalog output file" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -6982,107 +7686,109 @@ msgstr "" "\n" "For help on an individual command: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1570 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "

Migrating old database to ebook library in %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1599 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "Copying %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1616 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "Compacting database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1709 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1746 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1770 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:22 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 msgid "The title" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:23 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 msgid "The authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:24 -msgid "The author sort string" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:25 -msgid "The tags" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:26 -msgid "The series" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:27 -msgid "The series number" +msgid "" +"The author sort string. To use only the first letter of the name use " +"{author_sort[0]}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:28 -msgid "The rating" +msgid "The tags" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:29 -msgid "The ISBN" +msgid "The series" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:30 -msgid "The publisher" +msgid "The series number. To get leading zeros use {series_index:0>3s}" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:31 -msgid "The date" +msgid "The rating" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:32 -msgid "The published date" +msgid "The ISBN" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:33 +msgid "The publisher" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:34 +msgid "The date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:35 +msgid "The published date" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:36 msgid "The calibre internal id" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:43 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:46 msgid "Options to control saving to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:49 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 msgid "" "Normally, calibre will update the metadata in the saved files from what is " "in the calibre library. Makes saving to disk slower." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:52 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 msgid "" "Normally, calibre will write the metadata into a separate OPF file along " "with the actual e-book files." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:55 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 msgid "" "Normally, calibre will save the cover in a separate file along with the " "actual e-book file(s)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:58 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 msgid "" "Comma separated list of formats to save for each book. By default all " "available books are saved." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:61 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:64 msgid "" "The template to control the filename and directory structure of the saved " "files. Default is \"%s\" which will save books into a per-author " @@ -7090,7 +7796,15 @@ msgid "" "are: {%s}" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:66 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:69 +msgid "" +"The template to control the filename and directory structure of files sent " +"to the device. Default is \"%s\" which will save books into a per-author " +"directory with filenames containing title and author. Available controls " +"are: {%s}" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:76 msgid "" "Normally, calibre will convert all non English characters into English " "equivalents for the file names. WARNING: If you turn this off, you may " @@ -7098,29 +7812,29 @@ msgid "" "saving to supports unicode." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:72 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:82 msgid "" "The format in which to display dates. %d - day, %b - month, %Y - year. " "Default is: %b, %Y" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:75 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:85 msgid "Convert paths to lowercase." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:77 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:87 msgid "Replace whitespace with underscores." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:230 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server.py:222 +#: /home/kovid/work/calibre/src/calibre/library/server.py:378 msgid "Password to access your calibre library. Username is " msgstr "Password to access your calibre library. Username is " -#: /home/kovid/work/calibre/src/calibre/library/server.py:645 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -7130,60 +7844,68 @@ msgstr "" "\n" "Start the calibre content server." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:47 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 +msgid "Path to the library folder to serve with the content server" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/config.py:48 msgid "%sUsage%s: %s\n" msgstr "%sUsage%s: %s\n" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:91 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 msgid "Created by " msgstr "Created by " -#: /home/kovid/work/calibre/src/calibre/utils/config.py:92 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:93 msgid "" "Whenever you pass arguments to %prog that have spaces in them, enclose the " "arguments in quotation marks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:559 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:650 msgid "Path to the database in which books are stored" msgstr "Path to the database in which books are stored" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:561 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:652 msgid "Pattern to guess metadata from filenames" msgstr "Pattern to guess metadata from filenames" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:563 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:654 msgid "Access key for isbndb.com" msgstr "Access key for isbndb.com" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:565 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:656 msgid "Default timeout for network operations (seconds)" msgstr "Default timeout for network operations (seconds)" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:567 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:658 msgid "Path to directory in which your library of books is stored" msgstr "Path to directory in which your library of books is stored" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:569 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:660 msgid "The language in which to display the user interface" msgstr "The language in which to display the user interface" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:571 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:662 msgid "The default output format for ebook conversions." msgstr "The default output format for ebook conversions." -#: /home/kovid/work/calibre/src/calibre/utils/config.py:575 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:666 msgid "Ordered list of formats to prefer for input." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:577 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:668 msgid "Read metadata from files" msgstr "Read metadata from files" -#: /home/kovid/work/calibre/src/calibre/utils/config.py:579 +#: /home/kovid/work/calibre/src/calibre/utils/config.py:670 msgid "The priority of worker processes" msgstr "The priority of worker processes" +#: /home/kovid/work/calibre/src/calibre/utils/config.py:672 +msgid "Swap author first and last names when reading metadata" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:43 msgid "Waiting..." msgstr "" @@ -7196,44 +7918,80 @@ msgstr "" msgid "Finished" msgstr "Finished" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:93 msgid "Brazilian Portuguese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:94 msgid "English (UK)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:95 msgid "Simplified Chinese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:96 msgid "Chinese (HK)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:97 msgid "Traditional Chinese" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:98 msgid "English" msgstr "English" +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:99 +msgid "English (Australia)" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/utils/localization.py:100 -msgid "English (AU)" +msgid "English (New Zealand)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:101 -msgid "English (CA)" +msgid "English (Canada)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:102 -msgid "English (IND)" +msgid "English (India)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:103 +msgid "English (Thailand)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:104 +msgid "English (Cyprus)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:105 +msgid "English (Pakistan)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:106 +msgid "English (Singapore)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 +msgid "English (Yemen)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 +msgid "German (AT)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:109 +msgid "Dutch (NL)" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/utils/localization.py:110 +msgid "Dutch (BE)" msgstr "" #: /home/kovid/work/calibre/src/calibre/utils/sftp.py:53 @@ -7256,21 +8014,21 @@ msgstr "Failed to authenticate with server: %s" msgid "Control email delivery" msgstr "Control email delivery" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:101 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:123 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:103 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:125 msgid "Unknown feed" msgstr "Unknown feed" -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:141 -#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:143 +#: /home/kovid/work/calibre/src/calibre/web/feeds/__init__.py:166 msgid "Untitled article" msgstr "Untitled article" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:17 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:21 msgid "Download periodical content from the internet" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:32 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:36 msgid "" "Useful for recipe development. Forces max_articles_per_feed to 2 and " "downloads at most 2 feeds." @@ -7278,106 +8036,119 @@ msgstr "" "Useful for recipe development. Forces max_articles_per_feed to 2 and " "downloads at most 2 feeds." -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:35 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:39 msgid "Username for sites that require a login to access content." msgstr "Username for sites that require a login to access content." -#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:38 +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:42 msgid "Password for sites that require a login to access content." msgstr "Password for sites that require a login to access content." +#: /home/kovid/work/calibre/src/calibre/web/feeds/input.py:46 +msgid "" +"Do not download latest version of builtin recipes from the calibre server" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:40 msgid "Unknown News Source" msgstr "Unknown News Source" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:507 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:590 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "Download finished" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:592 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "Failed to download the following articles:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:598 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "Failed to download parts of the following articles:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:600 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr " from " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:602 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "\tFailed links:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:683 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:704 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "Fetching feeds..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:708 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "Got feeds from index page" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:714 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "Trying to download cover..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:768 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "Starting download [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:784 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "Feeds downloaded to %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:794 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "Could not download cover: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:801 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "Downloading cover from %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:927 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Untitled Article" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:998 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "Article downloaded: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1009 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "Article download failed: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1026 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "Fetching feed" -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:43 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/collection.py:46 msgid "You" msgstr "You" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:73 #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:82 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:172 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:181 msgid "Scheduled" msgstr "Scheduled" #: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:84 -#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:173 +#: /home/kovid/work/calibre/src/calibre/web/feeds/recipes/model.py:182 msgid "Custom" msgstr "Custom" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:458 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -7387,35 +8158,35 @@ msgstr "" "\n" "Where URL is for example http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "Base directory into which URL is saved. Default is %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 -msgid "" -"Timeout in seconds to wait for a response from the server. Default: %default " -"s" -msgstr "" -"Timeout in seconds to wait for a response from the server. Default: %default " -"s" - #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" -"Maximum number of levels to recurse i.e. depth of links to follow. Default " -"%default" +"Timeout in seconds to wait for a response from the server. Default: %default " +"s" msgstr "" -"Maximum number of levels to recurse i.e. depth of links to follow. Default " -"%default" +"Timeout in seconds to wait for a response from the server. Default: %default " +"s" #: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" +"Maximum number of levels to recurse i.e. depth of links to follow. Default " +"%default" +msgstr "" +"Maximum number of levels to recurse i.e. depth of links to follow. Default " +"%default" + +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" msgstr "" "The maximum number of files to download. This only applies to files from tags. Default is %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:472 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -7423,7 +8194,7 @@ msgstr "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:474 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -7431,7 +8202,7 @@ msgstr "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:476 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -7441,7 +8212,7 @@ msgstr "" "can be specified multiple times, in which case as long as a link matches any " "one regexp, it will be followed. By default all links are followed." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:478 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -7455,13 +8226,12 @@ msgstr "" "filter-regexp and --match-regexp are specified, then --filter-regexp is " "applied first." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:480 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Do not download CSS stylesheets." -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 -msgid "Show detailed output information. Useful for debugging" -msgstr "Show detailed output information. Useful for debugging" +#~ msgid "Useful for debugging." +#~ msgstr "Useful for debugging." #~ msgid "Number of colors for grayscale image conversion. Default: %default" #~ msgstr "Number of colors for grayscale image conversion. Default: %default" @@ -7475,6 +8245,23 @@ msgstr "Show detailed output information. Useful for debugging" #~ msgid "Remove a directory from the frequently used directories list" #~ msgstr "Remove a directory from the frequently used directories list" +#~ msgid "" +#~ "See the User Manual for more help" +#~ msgstr "" +#~ "See the User Manual for more help" + +#~ msgid "" +#~ "

For help visit %s.kovidgoyal.net
" +#~ msgstr "" +#~ "

For help visit %s.kovidgoyal.net
" + +#~ msgid "Output file. Default is derived from input filename." +#~ msgstr "Output file. Default is derived from input filename." + #~ msgid "%d recipes" #~ msgstr "%d recipes" @@ -7494,6 +8281,18 @@ msgstr "Show detailed output information. Useful for debugging" #~ "

Could not convert: %s

It is a DRMed book. You must " #~ "first remove the DRM using 3rd party tools." +#~ msgid "" +#~ "%s has been updated to version %s. See the new features. " +#~ "Visit the download page?" +#~ msgstr "" +#~ "%s has been updated to version %s. See the new features. " +#~ "Visit the download page?" + +#~ msgid "Customize %s" +#~ msgstr "Customize %s" + #~ msgid "You must set a username and password for %s" #~ msgstr "You must set a username and password for %s" @@ -7535,3 +8334,9 @@ msgstr "Show detailed output information. Useful for debugging" #~ msgid "Hungarian" #~ msgstr "Hungarian" + +#~ msgid "This profile is intended for the SONY PRS line. The 500/505/700 etc." +#~ msgstr "This profile is intended for the SONY PRS line. The 500/505/700 etc." + +#~ msgid "Kovid Goyal and John Schember" +#~ msgstr "Kovid Goyal and John Schember" diff --git a/src/calibre/translations/fr.po b/src/calibre/translations/fr.po index ad30f548d5..4148994639 100644 --- a/src/calibre/translations/fr.po +++ b/src/calibre/translations/fr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: calibre 0.4.22\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-02-01 07:47+0000\n" -"PO-Revision-Date: 2010-02-01 19:05+0000\n" -"Last-Translator: Vincent C. \n" +"PO-Revision-Date: 2010-02-03 22:11+0000\n" +"Last-Translator: WhimsicalAbyss \n" "Language-Team: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-02-02 04:47+0000\n" +"X-Launchpad-Export-Date: 2010-02-04 04:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -2935,6 +2935,11 @@ msgid "" "- A regex of '.' ignores all tags, generating no genre categories in the " "catalog" msgstr "" +"Expressions régulières:\n" +"- L'expression régulière '\\[[\\w]*\\]' ignore tout les tags de la forme " +"'[tag]', par exemple '[Amazon Freebie]'\n" +"- L'expression '.' ignore tout les tags; ne générant ainsi aucun genre de " +"catégories dans le catalogue" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" @@ -4153,7 +4158,7 @@ msgstr "Formats" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 msgid "Fit &cover to view" -msgstr "" +msgstr "Couverture à afficher" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 msgid "&Previous" @@ -6343,7 +6348,7 @@ msgstr "Effacer" #: /home/kovid/work/calibre/src/calibre/gui2/shortcuts_ui.py:75 msgid "&Alternate shortcut:" -msgstr "" +msgstr "Changer les raccourcis" #: /home/kovid/work/calibre/src/calibre/gui2/status.py:149 msgid "Jobs:" @@ -7844,6 +7849,11 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Champ à afficher lors du parcours du catalogue de livres. Liste de champs à " +"séparer par des virgules\n" +"Champs disponible: %s.\n" +"Défaut: '%%default'\n" +"S'applique au formats : CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" @@ -7852,6 +7862,10 @@ msgid "" "Default: '%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Champ de sortie à trier.\n" +"Champs disponible: auteur, nom, note, taille, date, titre.\n" +"Défaut: '%default'\n" +"S'applique au formats : CSV, XML" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" @@ -7871,6 +7885,11 @@ msgid "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Sauvegarde les différentes étapes de conversions dans un répertoire " +"spécifique. Permet d'identifier les étapes du processus de conversion " +"sources d'erreurs.\n" +"Défaut: '%default'None\n" +"S'applique au formats: ePub et MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" @@ -7897,6 +7916,10 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Étiquette pour note utilisateur, par exemple, '*Jeff devrait apprécier cette " +"lecture'.\n" +"Défaut: '%default'\n" +"S'applique au formats: ePub et MOBI" #: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 msgid "" diff --git a/src/calibre/translations/it.po b/src/calibre/translations/it.po index ec8efb7b5d..b1a79980e6 100644 --- a/src/calibre/translations/it.po +++ b/src/calibre/translations/it.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre_calibre-it\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-23 00:18+0000\n" -"PO-Revision-Date: 2010-01-22 18:25+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-03 15:26+0000\n" +"Last-Translator: lorenzov \n" "Language-Team: italiano\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-23 04:43+0000\n" +"X-Launchpad-Export-Date: 2010-02-04 04:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,1105,-1,1312,-1,-1\n" "Generated-By: pygettext.py 1.5\n" @@ -33,7 +33,7 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:414 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -53,7 +53,6 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -68,18 +67,18 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -102,10 +101,10 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -116,7 +115,7 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 @@ -130,12 +129,12 @@ msgstr "Non fa assolutamente niente" #: /home/kovid/work/calibre/src/calibre/library/database2.py:715 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1143 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1180 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1547 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1549 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1665 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1552 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1554 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1670 #: /home/kovid/work/calibre/src/calibre/library/server.py:645 -#: /home/kovid/work/calibre/src/calibre/library/server.py:717 -#: /home/kovid/work/calibre/src/calibre/library/server.py:764 +#: /home/kovid/work/calibre/src/calibre/library/server.py:721 +#: /home/kovid/work/calibre/src/calibre/library/server.py:768 #: /home/kovid/work/calibre/src/calibre/utils/localization.py:111 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:45 #: /home/kovid/work/calibre/src/calibre/utils/podofo/__init__.py:63 @@ -460,11 +459,11 @@ msgstr "" msgid "Communicate with the Binatone Readme eBook reader." msgstr "Comunica con il dispositivo di lettura Binatone Readme" -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:12 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 msgid "Communicate with the Blackberry smart phone." msgstr "Comunica con lo smart phone Blackberry." -#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:13 +#: /home/kovid/work/calibre/src/calibre/devices/blackberry/driver.py:14 #: /home/kovid/work/calibre/src/calibre/devices/nuut2/driver.py:18 #: /home/kovid/work/calibre/src/calibre/devices/prs500/driver.py:90 msgid "Kovid Goyal" @@ -658,12 +657,12 @@ msgid "There is insufficient free space on the storage card" msgstr "Non c'è spazio sufficiente nella scheda di memoria" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1072 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1447 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1452 msgid "News" msgstr "Notizie" @@ -825,8 +824,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Non applica alcuna elaborazione all'immagine" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:438 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:449 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Pagina" @@ -1854,7 +1853,7 @@ msgstr "Pubblicato" msgid "Rights" msgstr "Privilegi" -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:77 +#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/amazon.py:78 msgid "EDITORIAL REVIEW" msgstr "Rassegna Editoriale" @@ -2081,7 +2080,7 @@ msgstr "" "LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "Copertina" @@ -2111,74 +2110,74 @@ msgstr "Titolo per tutti gli indici di contenuto in-line." msgid "Disable compression of the file contents." msgstr "Disabilitare la compressione dei file di contenuto" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Tutti gli articoli" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Pagina iniziale" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Sommario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "Indice" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "Glossario" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "Ringraziamenti" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "Bibliografia" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "Colophon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "Diritti d'autore" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "Dedica" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "Epigrafe" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "Premessa" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "Indice delle figure" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "Indice delle tabelle" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "Note" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "Prefazione" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "Corpo del testo" @@ -2559,10 +2558,11 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Questo documento RTF ha caratteristiche non supportate da Calibre. Si " -"consiglia di convertire il documento in HTML e rirpovare." +"Questo documento RTF ha alcune caratteristiche non supportate da Calibre. " +"Provate a convertire il documento in HTML e riprovate." #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2635,85 +2635,85 @@ msgstr "" "linea quando non esistono spazi. Inoltre permette di specificare l valore " "della massima lunghezza di linea al di sotto del minimo (25 caratteri)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Invia il file alla scheda di memoria invece che alla memoria principale come " "impostazione predefinita" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Chiedi conferma prima di eliminare" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Dimensione bottoni nella barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Mostra testo nei bottoni della barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Geometria della finestra principale" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Avverti quando è disponibile una nuova versione" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Usa numeri romani per i numeri delle serie" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Ordina la lista dei tag per popolarità" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" "Numero di copertine da visualizzare nella modalità di sfogliatura copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Parametri predefiniti per la conversione in LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Opzioni del lettore di libri LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formati visualizzati utilizzando il lettore interno" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Colonne da mostrare nella lista dei libri" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" "Avvia automaticamente il server dei contenuti quando si apre l'applicazione" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Notizie più vecchie da mantenere nel database" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Mostra un'icona nel vassoio di sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Invia le notizie scaricate al dispositivo di lettura" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" "Elimina i libri dalla biblioteca dopo averle caricate sul dispositivo di " "lettura" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2721,83 +2721,87 @@ msgstr "" "Fai vedere la vetrina delle copertine in una finestra separata invece della " "finestra prinicpale di Calibre." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Disabilita messaggi dall'icona nella barra di sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Azione predefinita da attuare quando si seleziona il tasto di invio al " "dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Limite masimo di processi in attesa" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Scaricare metadati sociali (categorie/valutazioni/etc.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Usa i nuovi meta-dati per cambiare l'autore e il titolo" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "Limita il massimo numero di job simultanei al numero delle CPU." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Copiato" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Copia" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Copia negli appunti" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Seleziona documenti" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "Cercando in" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "Aggiungendo..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "Cercando in tutte le sotto cartelle" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "Errore di percorso" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "Non é possibile elaborare la cartella indicata." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Nessun libro." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "Nessun libro trovato" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "Aggiunto" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "L' aggiunta é fallita" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2806,11 +2810,11 @@ msgstr "" "di far ripartire Calibre e aggiungere i libri in incrementi piu' piccoli, " "fino a quando si indentifica il libro che causa il problema." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "Scoperti duplicati!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2818,21 +2822,21 @@ msgstr "" "Libri con lo stesso titolo sono giá presenti nella lista. Volete aggiungere " "in ogni caso?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "Aggiunta dei duplicati..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "Salvataggio..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "Salvato" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:16 msgid "CSV/XML Options" -msgstr "" +msgstr "Opzioni CSV/XML" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml.py:17 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:18 @@ -2866,7 +2870,7 @@ msgid "output" msgstr "output" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2899,31 +2903,60 @@ msgstr "Formato" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:37 msgid "Fields to include in output:" -msgstr "" +msgstr "Campi da includere nell'output" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 -msgid "E-book Options" -msgstr "" +msgid "E-book options" +msgstr "Opzioni per il libro elettronico" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 +msgid "Catalog" +msgstr "Catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 msgid "'Don't include this book' tag:" -msgstr "" +msgstr "Etichetta per 'Non usare questo libro':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Mark this book as read' tag:" -msgstr "" +msgstr "Etichetta per 'Marcare questo libro come letto':" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "Additional note tag prefix:" +msgstr "Etichetta per note aggiuntive" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "Ordina i numeri come testo" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "Stringa Regex per definire etichette che escludono generi:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "Etichette speciali per la produzione di cataloghi" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" msgstr "" +"Suggerimenti per stringhe Regex:\n" +"- La stringa regex '\\[[\\w]*\\]' ignora le etichette nella forma " +"'[etichette]', e.g., '[Amazon Freebie]'\n" +"- La stringa '.' ignora tutte le etichette producendo categorie senza generi " +"definite nel catalogo" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" -msgstr "" +msgstr "Esempio paginazione per il catalog.ui" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" @@ -3056,12 +3089,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3418,7 +3451,7 @@ msgid "Change the title of this book" msgstr "Cambia il titolo di questo libro" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "A&utore(i): " @@ -3436,7 +3469,7 @@ msgstr "" "una virgola" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Editore: " @@ -3447,7 +3480,7 @@ msgid "Ta&gs: " msgstr "T&ag: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3458,15 +3491,15 @@ msgstr "" "virgola" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Serie:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3588,7 +3621,7 @@ msgid "RB Output" msgstr "Output RB" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "Scegliere il formato da leggere" @@ -3898,7 +3931,7 @@ msgstr "" "lettura." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:130 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Nessun dettaglio disponibile." @@ -4161,7 +4194,7 @@ msgid "My Books" msgstr "I miei libri" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Crea catalogo" @@ -4294,133 +4327,133 @@ msgstr "" msgid "new email address" msgstr "nuovo indirizzo di posta elettronica." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Errore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" "Non é stato possibile installare gli strumenti per i comandi di linea." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Strumenti per i comandi di linea installati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Strumenti per i comandi di linea installati in" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Se muovete calibre.app, sará necessario reinstallare anche gli strumenti per " "i comandi di linea." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Percorso del plugin non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s non é un percorso di plugin valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Selezionare plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Il plugin non puó essere disattivato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "il plugin: %s non puó essere disattivato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Non é possibile personalizzare il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s non richiede personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Personalizzazione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Non é possibile rimuovere un plugin incorporato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " Non é possibile rimuoverlo. Questo é un plugin incorporato. Provate invece " "a disattivarlo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "File di log degli errori:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "File di log degli accessi:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Avvio del server dei contenuti fallito" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Selezionare un percorso per i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Dimensione non valida" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "La dimensione %s non è valida. Deve essere nella forma larghezzaxaltezza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Percorso database non valido" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Percorso database non valido " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Deve essere una cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Percorso database non valido.
Impossibile scrivere su " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Controllo dell'integritá del database." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Controllo dell'integritá del database fallito." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Sono stati trovati problemi di consistenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4530,13 +4563,13 @@ msgstr "" msgid "Sending to &device" msgstr "Invio al &device in corso" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Preferenze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4544,24 +4577,28 @@ msgstr "" "Per&corso dei libri (I libri sono salvati in cartelle salvate per autore e i " "metadati sono salvati nel file metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Sfoglia per specificare una nuova posizione del database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "&Visualizza un avvertimento quando è disponibile una nuova versione" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" "Scarica i &social metadati (etichette, valutazioni, etc.) automaticamente" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "Modificare sempre & author/title quando si scaricano i metadati" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "&Timeout predefinito della rete:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4569,159 +4606,159 @@ msgstr "" "Imposta il timeout predefinito per gli scaricamenti dalla rete (cioè ogni " "volta che si usa Internet per prelevare informazioni)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " secondi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Scegliere la ling&ua (richiede il riavvio):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normale" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Massima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Minima" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "&Priorità lavoro:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Formato preferito per &output:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Ordine dei formati preferiti per &input:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "&Usa numeri romani per i numeri delle serie" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Abilita l'icona nel vassoio di sistema (richiede il riavvio)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Visualizza le ¬ifications nella barra di sistema." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" "Visualizza il &browser di copertine in una finestra separata (richiede " "ricaricamento del programma)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Cerc mentre si scrive" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Invia automaticamente le noti&zie scaricate al lettore di libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "&Delete le notizie dalla libreria quando sono inviate automaticamente al " "dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "&Number di copertine da visualizzare in modalitá sfoglia (richiede rilancio " "del programma):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Grande" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Media" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Piccola" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Dimensione bottoni nella barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "&Mostra testo nei bottoni della barra degli strumenti" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "&Selezionare le colonne visibili nella vista biblioteca" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Utilizza il &viewer interno per:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Aggiungi un indirizzo di posta elettronica a cui inviare i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Add messaggio di posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Creare &default" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&remove messaggio di posta elettronica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "Calibre puó mandare i vostri libri a voi (o i vostri lettori) con posta " "elettronica." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "Numero &Maximum di elaboratori di processi in attesa (richiede rilancio del " "programma):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "&Check dell'integritá del database" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Install gli strumenti per i comandi di linea" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Apri la cartella per la &configuration di Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Limita il massimo numero di job simultanei al numero dei &Core disponibili " "della CPU" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "&Debug e riconoscimento dei dispositivi" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4732,25 +4769,25 @@ msgstr "" "Qualsiasi cambiamento nella configurazione verrà attivato solo dopo il " "riavvio del server." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "&Porta del server:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Nome utente:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Password:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4758,7 +4795,7 @@ msgstr "" "Se si lascia la password in bianco, chiunque potrà accedere alla propria " "collezione di libri utilizzando l'interfaccia web." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4766,41 +4803,41 @@ msgstr "" "La dimensione massima (larghezzaxaltezza) per le copertine visualizzate. Le " "copertine più larghe vengono ridimensionate. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Dimensi&one massima copertina:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Mostra password" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Massimo elementi &OPDS per richiesta:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "A&vvia il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "&Ferma il server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Test sul server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Avvia a&utomaticamente il server all'apertura" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Visualizza i file di l&og del server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4818,7 +4855,7 @@ msgstr "" "intendersi come il valore IP appropriato del computer su cui Calibre é " "attivo." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4826,27 +4863,27 @@ msgstr "" "Qui ee possibile personalizzare le funzioni di Calibre modificando quali " "plugin sono usati dal programma." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Attivare/&Disable il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "&Customize il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&Remove il plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Aggiungi un nuovo plugin" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Plugin &file:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Aggiungi" @@ -4916,43 +4953,43 @@ msgstr "Classificazione autore" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Cercando metadati..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Non é stato possibile trovare metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Sembra che lo scaricamento dei metadati si sia bloccato. Provare piú tardi." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Avvertenza" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Non é stato possibile scaricare i metadati da:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Messun metadato trovato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Nessun metadato trovato, provare ad aggiustare il titolo e l'autore o il " "codice ISBN." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Scarica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4964,31 +5001,36 @@ msgstr "" "registrarsi per un account gratis e " "immettere la vostra chiave d'accesso qui di seguito." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "&Chiave d'accesso:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Scarica" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Corrispondenze" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Selezionare il libro che corrisponde maggiormente alla propria copia " "dall'elenco sottostante" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Scaricare i &social metadati (etichette, valutazioni, etc) per il libro " "selezionato" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "" +"Modificare & author/title con l'autore/titolo di un libro specificato" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Dettagli del lavoro" @@ -5009,24 +5051,24 @@ msgstr "Visualizza i &details del processo in corso" msgid "Stop &all jobs" msgstr "Ferma &all i processi in corso" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Modifica metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Imposta a&utomaticamente la Classificazione autore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Author s&ort: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -5035,47 +5077,51 @@ msgstr "" "Specifica come deve essere classificato l'autore di questo libro. Ad " "esempio, Charles Dickens deve essere classificato come Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Giudizio:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Giudizio su questo libro. 0-5 stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Nessuna modifica" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " stelle" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Aggiungi ta&gs: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Apri l'editor dei tag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Rimuovi tag:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Lista separata da virgole dei tag da rimuovere dal libro " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Rimuovi for&mato:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "&Swap titolo per autore" @@ -5180,20 +5226,20 @@ msgstr "Si sono verificati errori" msgid "There were errors downloading social metadata" msgstr "Si sono verficiati errori nello scaricamento dei metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "Non é possibile scaricare i metadati." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" "Dovete specificare alemno uno fra codice ISBN, titolo, autore o editore" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "Permesso negato" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Non é possibile aprire %s. Potrebbe essere in uso in un altro programma." @@ -6038,52 +6084,52 @@ msgstr "Apri libro" msgid "Configure" msgstr "Configurazione" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Usa la biblioteca collocata nel percorso specificato." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Incominciare minimizato nella barra di sistema" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Invia le informazioni di debug alla console" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Non controllare gli aggiornamenti" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Se siete certi che l'operzione non é in corso" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Non e' possibile incominciare " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s é giá in funzione." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "potrebbe essere attivo nella barra di sistema, nel" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "la parte in alto a destra dello schermo." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "la parte in basso a destra dello schermo." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "Provate a far ripartire il computer." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "provate a rimuovere il documento" @@ -6243,11 +6289,11 @@ msgstr "& Esci" msgid "ERROR: Unhandled exception" msgstr "ERRORE: eccezione non gestita" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Il Libro non ha ne titolo ne ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Nessun risultato é stato trovato per questo libro" @@ -6382,11 +6428,11 @@ msgstr "Creazione ordine " msgid "Fetch news from " msgstr "Scarica notizie da " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Conversione i documenti presenti" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6482,7 +6528,7 @@ msgid "Save to disk in a single directory" msgstr "Salva su disco in una singola cartella" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "Salva sul disco solo il formato %s" @@ -6516,7 +6562,7 @@ msgstr "Converti in gruppo" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Crea un catologo di libri dalla vostra collezione in Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6537,13 +6583,13 @@ msgid "Calibre Library" msgstr "Libreeria di Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "Scegliere un percorso per la propria biblioteca." #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Guida rapida di Calibre" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" @@ -6647,33 +6693,33 @@ msgstr "Archivi" msgid "Supported books" msgstr "Libri supportati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Non é stato possibile leggere i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Non é stato possibile leggere i metadati dai seguenti:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Non si può cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "Nessun libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Seleziona i formati da cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Seleziona i formati da non cancellare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6681,131 +6727,131 @@ msgstr "" "I libri selezionati saranno cancellati permanentemente e i documenti " "rimossi dal computer. Siete sicuri?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Cancellamento libri dal dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Non é possibile scaricare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "Nessun libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "metadati sociali" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "copertine" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Scaricamento %s per %d libri" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Non si é riusciti a scaricare alcuni metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Non si é riusciti a scaricare i metadati per i seguenti:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Lo scaricamento dei metadati é fallito:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Impossibile modificare i metadati" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Impossibile salvare sul disco" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Scegliere la cartella di destinazione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Errore durante il salvataggio" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Si é verificato un errore durante il salvataggio" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Non é stato possibile salvare tutti i libri" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Selezionare il tasto dei dettagli per vedere quali." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Nessun libro selezionato per la generazione del catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Generando %s catalogo..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 msgid "Catalog generated." msgstr "Catalogo generato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 msgid "Export Catalog Directory" -msgstr "" +msgstr "Esporta il catalogo" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 msgid "Select destination for %s.%s" -msgstr "" +msgstr "Selezionare una destinazione per %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "Scaricamento notizie da " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr " preso." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "Impossibile convertire" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "Conversione di %d libro/libri incominciata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "Impossibile leggere" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "Impossibile aprire la cartella" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "Piú di un libro selezionato" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6817,33 +6863,33 @@ msgstr "" "vostro computer. Una volta cominciato questa azione non puó essere fermata " "finché il processo é completato. Siete sicuri di voler continuare?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "%s non ha formati disponibili" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "Impossibile configurare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "Impossibile configurare mentre ci sono lavori in esecuzione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "Nessuna informazione dettagliata disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "" "Non è disponibile alcuna informazione dettagliata per i libri nel " "dispositivo di lettura." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "Errore di comunicazione col dispositivo di lettura" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6851,12 +6897,12 @@ msgstr "" "Si è verificato un errore di comunicazione temporaneo col dispositivo di " "lettura. Disconnettere e riconnettere il dispositivo e/o riavviare" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "Errore di conversione" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6865,23 +6911,23 @@ msgstr "" "href=\"%s\">DRM. É necessario rimuovere la DRM usando un prodotto da " "terzi." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "Ricetta deattivata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "Operazione Fallita" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "Percorso della libreria invalido" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "Non é possibile accedere a %s. Si sta utilizzando %s come libreria." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." @@ -6889,11 +6935,11 @@ msgstr "" "è il risultato degli sforzi di tanti volontari da tutto il mondo. Se lo " "trovi utile, puoi fare una donazione per supportare il suo sviluppo." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Ci sono lavori attivi. Uscire comunque?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6904,11 +6950,11 @@ msgstr "" "sul dispositivo di lettura.
\n" " Siete sicuri di voler interrompere il processo?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "ATTENZIONE: Lavori attivi" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6916,7 +6962,7 @@ msgstr "" "continuerà a lavorare nel vassoio di sistema. Per chiuderlo, selezionare " "Esci nel menu contestuale del vassoio di sistema." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" @@ -6924,11 +6970,11 @@ msgstr "" "Ultima versione: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "Aggiornamento disponibile" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7071,6 +7117,8 @@ msgstr "&language predefinito per sillabazione:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" msgstr "" +"&Resize le immagini piu' grandi della finestra del visializzatore (richiede " +"riavvio)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" @@ -7117,6 +7165,8 @@ msgstr "Larghezza maassima della finestra di visualizzazione in pixel." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" +"Modifica la grandezza delle immagini piu' grandi della finestra del " +"visualizzatore per farle rientrare nella pagina" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" @@ -7817,7 +7867,7 @@ msgstr "" "Il valore massimo di risultati da presentare per una richiesta OPDS. Questo " "ha effetto sull'integrazione con Stanza, WordPlayer, etc." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7825,8 +7875,13 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"I campi da includere nel catalogo di libri nel database. Questi devono " +"essere campi separati da virgole\n" +"Campi disponibili: %s.\n" +"Valori predefiniti: '%%default'\n" +"Applicabile per i formati di output: CSV, XML" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7838,21 +7893,42 @@ msgstr "" "Campi di default: '%default'\n" "Si applica a: CSV, XML formati di output" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"La creazione del catalogo usa il Titolo presente nei metadati\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 +msgid "" +"Save the output from different stages of the conversion pipeline to the " +"specified directory. Useful if you are unsure at which stage of the " +"conversion process a bug is occurring.\n" +"Default: '%default'None\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Salva l'output a diversi passi del processo di conversione nella cartella " +"specificata. Questo é utile se volete verificara a che punto si verifica un " +"errore nella procedura.\n" +"Valore predefinito: '%default' Nessuno\n" +"Applicabile ai formati di output: ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Stringa regex per escludere etichette che definiscono i generi\n" +"Valore predefinito: '%default' che esclude etichette con parantesi, e.g. " +"'[]'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:249 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7860,22 +7936,39 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Lista di etichette separate da virgole per indicare quali libri devono " +"essere esclusi dall'output. Si noti che le maiuscole sono ignorate\n" +"--exclude-tags=skip troverá risultati nelle frasi 'skip this book' and 'Skip " +"will like this'\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 -msgid "" -"Tag indicating book has been read.\n" -"Default: '%default'\n" -"Applies to: ePub, MOBI output formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:261 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Prefissi di etichette per le vostre annotazioni, e.g. '*questo libro " +"piacerebbe a Giovanni' \n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:267 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Ordina i titoli con numeri iniziali come testo, e.g.\n" +"'2001: Un'odissea nello spazio' viene elencato come\n" +"'Duemilauno: Un'odissea nello spazio'.\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7884,6 +7977,22 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Specifica un profilo di output. In alcuni casi un profilo di output é " +"necessario per ottimizzare il catalogo per alcuni dispositivi. Per esempio, " +"i dispositivi Kindle e Kindle dx creano indici organizzati con sezioni e " +"articoli.\n" +"Valore predefinito: '%default'\n" +"Applicabile ai formati di output: ePub, MOBI" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etichetta per indicare che il libro é stato letto\n" +"Valore predefinito: '%default'\n" +"Applicabile per i formati di output: ePub, MOBI" #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" @@ -8196,6 +8305,9 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Lista degli identificativi ID per il catalogo in campi separati da virgole\n" +"Se dichiarati, --la ricerca é ignorata\n" +"Valore predefinito: tutti" #: /home/kovid/work/calibre/src/calibre/library/cli.py:652 msgid "" @@ -8209,7 +8321,7 @@ msgstr "" "Default: nessun filtraggio" #: /home/kovid/work/calibre/src/calibre/library/cli.py:658 -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:482 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:484 msgid "Show detailed output information. Useful for debugging" msgstr "Mostra un output dettagliato. Utile per il debugging" @@ -8217,7 +8329,7 @@ msgstr "Mostra un output dettagliato. Utile per il debugging" msgid "Error: You must specify a catalog output file" msgstr "Errore: devi specificate un file di output del catalogo" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8237,33 +8349,28 @@ msgstr "" "\n" "Per aiuto su un comando particolare: %%prog command --help\n" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1429 -msgid "Catalog" -msgstr "Catalogo" - -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1691 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1696 msgid "

Migrating old database to ebook library in %s

" msgstr "" "

Sto migrando il vecchio database nella nuova biblioteca in %s

" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1720 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1725 msgid "Copying %s" msgstr "Sto copiando %s" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1737 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1742 msgid "Compacting database" msgstr "Compattazione database" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1830 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1835 msgid "Checking SQL integrity..." msgstr "Controllo di integrita' SQL..." -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1867 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1872 msgid "Checking for missing files." msgstr "Controllo per file mancanti" -#: /home/kovid/work/calibre/src/calibre/library/database2.py:1889 +#: /home/kovid/work/calibre/src/calibre/library/database2.py:1894 msgid "Checked id" msgstr "ID controllate" @@ -8409,7 +8516,7 @@ msgstr "Conversione dei percorsi in letttere minuscole." msgid "Replace whitespace with underscores." msgstr "Sostituire gli spazi vuoti con sottolineature." -#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:255 +#: /home/kovid/work/calibre/src/calibre/library/save_to_disk.py:256 msgid "Requested formats not available" msgstr "I formati richiesti non sono disponibili." @@ -8418,7 +8525,7 @@ msgid "Password to access your calibre library. Username is " msgstr "" "Password per accedere alla propria biblioteca di calibre. Il nome utente è " -#: /home/kovid/work/calibre/src/calibre/library/server.py:856 +#: /home/kovid/work/calibre/src/calibre/library/server.py:860 msgid "" "[options]\n" "\n" @@ -8428,7 +8535,7 @@ msgstr "" "\n" "Avvia il server dei contenuti di calibre." -#: /home/kovid/work/calibre/src/calibre/library/server.py:858 +#: /home/kovid/work/calibre/src/calibre/library/server.py:862 msgid "Path to the library folder to serve with the content server" msgstr "" "Percorso per la cartella da cui la libreria e' disponibile per il server di " @@ -8506,7 +8613,7 @@ msgstr "Fermato" msgid "Finished" msgstr "Finito" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:70 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "In esecuzione..." @@ -8568,7 +8675,7 @@ msgstr "Inglese (Singapore)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Inglese (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8647,77 +8754,85 @@ msgstr "" msgid "Unknown News Source" msgstr "Sorgente di notizie sconosciuta" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:528 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "La ricetta \"%s\" richiede un nome utente e password." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:614 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "Scaricamento completato" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:616 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "Scaricamento dei seguenti articoli fallito:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:622 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "Scaricamento dei seguenti articoli fallito parzialmente:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:624 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr " da " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:626 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "\tLink falliti:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:707 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Non é stato possibile ottnere l'articolo. Provare a eseguire con l'opzione -" "vv per maggiori informazioni sulla ragione." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "Scaricamento feed..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "Ricevuti feed dalla pagina principale" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:739 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "Tentativo di scaricamento della copertina..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:797 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "Preparazione dell'immagine principale in corso" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "Inizio scaricamento [%d articolo(i)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:813 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "Feed scaricati in %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:823 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "Impossibile scaricare la copertina: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "Scaricamento copertina da %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:978 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "Immagine principale scaricata" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Articolo senza titolo" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1049 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "Articolo scaricato: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1060 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "Scaricamento fallito dell'articolo: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1077 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "Scaricamento feed" @@ -8736,7 +8851,7 @@ msgstr "Pianificato" msgid "Custom" msgstr "Personalizzato" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:459 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:461 msgid "" "%prog URL\n" "\n" @@ -8746,11 +8861,11 @@ msgstr "" "\n" "Dov'è l'URL. Esempio: http://google.com" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:462 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:464 msgid "Base directory into which URL is saved. Default is %default" msgstr "Cartella base in cui le URL sono salvate. Predefinita: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:465 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:467 msgid "" "Timeout in seconds to wait for a response from the server. Default: %default " "s" @@ -8758,7 +8873,7 @@ msgstr "" "Timeout in secondi da aspettare per una risposta dal server. Predefinito: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:468 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:470 msgid "" "Maximum number of levels to recurse i.e. depth of links to follow. Default " "%default" @@ -8766,7 +8881,7 @@ msgstr "" "Numero massimo di livelli ricorsivi, cioè profondità dei link da seguire. " "Predefinito: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:471 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 msgid "" "The maximum number of files to download. This only applies to files from tags. Default is %default" @@ -8774,7 +8889,7 @@ msgstr "" "Il numero massimo di file da scaricare. Questa si applica solo ai file dai " "tag . Predefinito: %default" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:473 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 msgid "" "Minimum interval in seconds between consecutive fetches. Default is %default " "s" @@ -8782,7 +8897,7 @@ msgstr "" "Intervallo minimo in secondi tra due scaricamenti consecutivi. Predefinito: " "%default s" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:475 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 msgid "" "The character encoding for the websites you are trying to download. The " "default is to try and guess the encoding." @@ -8790,7 +8905,7 @@ msgstr "" "La codifica caratteri del sito web che si sta cercando di scaricare. " "L'impostazione predefinita è quella di provare a indovinare la codifica" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:477 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 msgid "" "Only links that match this regular expression will be followed. This option " "can be specified multiple times, in which case as long as a link matches any " @@ -8801,7 +8916,7 @@ msgstr "" "un link corrisponde a una delle espressioni regolari verrà seguito. Per " "impostazione predefinita i link non vengono seguiti" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:479 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 msgid "" "Any link that matches this regular expression will be ignored. This option " "can be specified multiple times, in which case as long as any regexp matches " @@ -8816,7 +8931,7 @@ msgstr "" "sia --filter-regexp che --match-regexp, --filter-regexp viene applicata per " "prima" -#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:481 +#: /home/kovid/work/calibre/src/calibre/web/fetch/simple.py:483 msgid "Do not download CSS stylesheets." msgstr "Non scaricare i fogli di stile CSS" @@ -10320,6 +10435,13 @@ msgstr "Non scaricare i fogli di stile CSS" #~ msgid "Usage: ebook-convert INFILE OUTFILE [OPTIONS..]" #~ msgstr "Modo d'uso: ebook-convert INFILE OUTFILE [OPTIONS..]" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Questo documento RTF ha caratteristiche non supportate da Calibre. Si " +#~ "consiglia di convertire il documento in HTML e rirpovare." + #~ msgid "Do not add a blank line between paragraphs." #~ msgstr "Non aggiungere una linea vuota fra i paragrafi." diff --git a/src/calibre/translations/ja.po b/src/calibre/translations/ja.po index 36d6fa2f95..22c4dcd78a 100644 --- a/src/calibre/translations/ja.po +++ b/src/calibre/translations/ja.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-02-01 07:47+0000\n" -"PO-Revision-Date: 2010-02-02 15:01+0000\n" +"PO-Revision-Date: 2010-02-03 06:50+0000\n" "Last-Translator: vbk \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-02-03 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-02-04 04:46+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -3747,7 +3747,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "General" -msgstr "" +msgstr "全般" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:196 msgid "Interface" @@ -4105,7 +4105,7 @@ msgstr "入力中に検索する" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" -msgstr "ダウンロードしたニュースを電子書籍リーダーに自動的に転送する(&N)" +msgstr "ダウンロードしたニュースを電子書籍リーダーに自動的に送信する(&N)" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" @@ -5539,7 +5539,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:351 msgid "Send to device" -msgstr "デバイスに転送" +msgstr "デバイスに送信" #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:352 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:304 @@ -6405,7 +6405,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:175 msgid "&General" -msgstr "" +msgstr "全般(&G)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:176 msgid "Double click to change a keyboard shortcut" @@ -6907,7 +6907,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:37 msgid "Sending..." -msgstr "" +msgstr "送信中..." #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:42 msgid "Mail successfully sent" From a0ea14b5e9bf23d538339f0ca8c0eeb8b4bb1ab3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 4 Feb 2010 08:44:29 -0700 Subject: [PATCH 036/158] New recipe for Digital Spy UK by Darko Miletic --- resources/images/news/digitalspy_uk.png | Bin 0 -> 1290 bytes resources/recipes/digitalspy_uk.recipe | 43 ++++++++++++++++++++ src/calibre/gui2/dialogs/metadata_single.py | 2 +- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 resources/images/news/digitalspy_uk.png create mode 100644 resources/recipes/digitalspy_uk.recipe diff --git a/resources/images/news/digitalspy_uk.png b/resources/images/news/digitalspy_uk.png new file mode 100644 index 0000000000000000000000000000000000000000..28c865713d5214505a620d111291e051462cef11 GIT binary patch literal 1290 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgfc0~o*h{3C&ZfyLO<#WAGf*4x>(Iky}n+U|!;J;g9(t%A~3 z?v*pUVmeEjjs~%@MTza&5~<|s6}2+*QkPcn(vC9EB`cr~*=O{*E?6Puvaw zI9i(-HyB^!zAwvncj2eUZ_Zq;t$JLjgW9DFIu9)TBc-~H;`a;su zw@!X2w0mCo32<*51g!J<-)*W`~ko_l_ix z_GA`RH&-?$=dE%>mCude4dAvv^d3zO0 z;3VDk->xvE?fiX&Tk8}FMA(U%x*Jn`10er)Y^%X_CCHVZ72PX zVhXsKxhv_9MyjUxhRvs{Vy~-7N^LXqWns7^yo^2Ful;HAZSe(x%YS!Q>;Zaag16(8 z6q)&RoGky>zWnj=q~^KvrryC2Wyk((zUh76_9^R`knAmb zYoC3LI3lpg|F}}e@pnzi|Y$SV*dP(yqWpvsgqc1%&9NGBKvl( zkgclXx-k)G&;2{<*SM>)+lAR3!e6uBtxDuPpmFN)bH32BH>ZRc>`q5n{&ia7`f_=5 z-n#IG0(TQ68744I`1xqf)8z_h4P6-gepSYX#qBj@Q0Vor5j(iN-}Tk1!db}yai@iQ z%Y___1YKW#y>r2~_g=-J2W+k@eM=Nix`+USK|jb}XiegRveoX)3q_0gb!{^j1~gP1 z`Ra2~#9{5lrbT@EHZi4(L)Jh2?ySB3srxSRoAYz;EwaoMiMns_D{Hs3@|IU6=Xox$ zGZ$E>zP)~}tTtoep-jzHZQI{}=egi}_ra%C20|R74;e%sCagKuJ*nrp_teI3GoCSZ ztxBv6b;wNZiwIme73BRJ>V11IJ6;6F<-XAVj`uu17yqPt)L*o``MHW`?ZrhZ&Qor! zxEdYuyK=qQrWyKn+fvuW3A`<-U#NL9L~k0`0hR2e$%^s~{0G<{Fn?hD!BE3s#~^<| z;4kashm)EZvkG&8<%nvDYeY#(Vo9o1a#1RfVlXl=G|)9L(lsy%F|e>QF|slSa?Py_ t3_f1kse_^+H$NpatrA&-p@Efwp_PFJM8iVfO?^NO44$rjF6*2UngF(GL9ze< literal 0 HcmV?d00001 diff --git a/resources/recipes/digitalspy_uk.recipe b/resources/recipes/digitalspy_uk.recipe new file mode 100644 index 0000000000..ac54c3790d --- /dev/null +++ b/resources/recipes/digitalspy_uk.recipe @@ -0,0 +1,43 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +www.digitalspy.co.uk +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class DigitalSpyUK(BasicNewsRecipe): + title = 'Digital Spy - UK Edition' + __author__ = 'Darko Miletic' + description = 'Entertainment news about the biggest TV shows, films and celebrities, updated around the clock.' + publisher = 'Digital Spy Limited.' + category = 'news, showbiz, big brother, x factor, torchwood, doctor who, tv, media, sky, freeview, cable' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'en_GB' + remove_empty_feeds = True + extra_css = ' body{font-family: Verdana,Arial,Helvetica,sans-serif } img{margin-bottom: 0.4em} .info{font-size: small} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [dict(name=['link'])] + remove_attributes = ['height','width'] + keep_only_tags = [dict(name='div',attrs={'id':'article'})] + + feeds = [ + (u'News' , u'http://www.digitalspy.co.uk/rss/zones/gb/all.xml' ) + ,(u'Big Brother' , u'http://www.digitalspy.co.uk/rss/zones/gb/bigbrother.xml' ) + ,(u'Entertainment' , u'http://www.digitalspy.co.uk/rss/zones/gb/entertainment.xml') + ,(u'General' , u'http://www.digitalspy.co.uk/rss/zones/gb/general.xml' ) + ,(u'Media' , u'http://www.digitalspy.co.uk/rss/zones/gb/media.xml' ) + ] + diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index 78f30ecb21..8fab6a922a 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -598,7 +598,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): if self.series.text() is None or self.series.text() == '': self.series.setText(book.series) if book.series_index is not None: - self.series_index.setValue(book.series_index) + self.series_index.setValue(book.series_index) else: error_dialog(self, _('Cannot fetch metadata'), _('You must specify at least one of ISBN, Title, ' From 96ac81c3421586dac287a1683d621c458a5d3acb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 4 Feb 2010 09:10:01 -0700 Subject: [PATCH 037/158] RTF Input: Don't eat up the space after \u escaped characters --- src/calibre/ebooks/rtf2xml/tokenize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/ebooks/rtf2xml/tokenize.py b/src/calibre/ebooks/rtf2xml/tokenize.py index 45887f33e7..ad12daa211 100755 --- a/src/calibre/ebooks/rtf2xml/tokenize.py +++ b/src/calibre/ebooks/rtf2xml/tokenize.py @@ -72,7 +72,7 @@ class Tokenize: return line def __compile_expressions(self): self.__ms_hex_exp = re.compile(r"\\\'(..)") - self.__utf_exp = re.compile(r"\\u(-?\d{3,6}) {0,1}") + self.__utf_exp = re.compile(r"\\u(-?\d{3,6})") self.__splitexp = re.compile(r"(\\[\\{}]|{|}|\\[^\s\\{}&]+(?:\s)?)") self.__par_exp = re.compile(r'\\$') self.__mixed_exp = re.compile(r"(\\[a-zA-Z]+\d+)(\D+)") From b8b3efc5b8ffaa7bb9ff33530d9ba3b6b0a8d282 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 4 Feb 2010 09:49:41 -0700 Subject: [PATCH 038/158] ... --- src/calibre/manual/faq.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst index 9bdd9aaa6b..a3c5bd32c4 100644 --- a/src/calibre/manual/faq.rst +++ b/src/calibre/manual/faq.rst @@ -62,7 +62,7 @@ How do I convert my file containing non-English characters, or smart quotes? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are two aspects to this problem: 1. Knowing the encoding of the source file: |app| tries to guess what character encoding your source files use, but often, this is impossible, so you need to tell it what encoding to use. This can be done in the GUI via the :guilabel:`Input character encoding` field in the :guilabel:`Look & Feel` section. The command-line tools all have an :option:`--input-encoding` option. - 2. When adding HTML files to |app|, you may need to tell |app| what encoding the files are in. To do this go to Preferences->Plugins->File Type plugins and customize the HTML2Zip plugin, telling it what encoding your HTML files are in. Now when you add HTML files to |app| they will be correctly processed. HTML files from different sources often have different encodings, so you may have to change this setting repeatedly. A common encoding for many files from the web is ``cp1252`` and I would suggest you try that first. + 2. When adding HTML files to |app|, you may need to tell |app| what encoding the files are in. To do this go to Preferences->Plugins->File Type plugins and customize the HTML2Zip plugin, telling it what encoding your HTML files are in. Now when you add HTML files to |app| they will be correctly processed. HTML files from different sources often have different encodings, so you may have to change this setting repeatedly. A common encoding for many files from the web is ``cp1252`` and I would suggest you try that first. Note that when converting HTML files, leave the input encoding setting mentioned above blank. This is because the HTML2ZIP plugin automatically converts the HTML files to a standard encoding (utf-8). 3. Embedding fonts: If you are generating an LRF file to read on your SONY Reader, you are limited by the fact that the Reader only supports a few non-English characters in the fonts it comes pre-loaded with. You can work around this problem by embedding a unicode-aware font that supports the character set your file uses into the LRF file. You should embed atleast a serif and a sans-serif font. Be aware that embedding fonts significantly slows down page-turn speed on the reader. From ae023e6093b4eac5c34a4f804131a341ebabea1b Mon Sep 17 00:00:00 2001 From: Translators <> Date: Fri, 5 Feb 2010 05:01:06 +0000 Subject: [PATCH 039/158] Launchpad automatic translations update. --- src/calibre/translations/de.po | 795 ++++++++++++++++++--------------- 1 file changed, 432 insertions(+), 363 deletions(-) diff --git a/src/calibre/translations/de.po b/src/calibre/translations/de.po index c80f81ffd6..a6ac29b0e8 100644 --- a/src/calibre/translations/de.po +++ b/src/calibre/translations/de.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-25 18:52+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-04 20:47+0000\n" +"Last-Translator: S. Dorscht \n" "Language-Team: American English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-01-26 04:50+0000\n" +"X-Launchpad-Export-Date: 2010-02-05 05:01+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Generated-By: pygettext.py 1.5\n" @@ -31,7 +31,7 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -51,7 +51,6 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -66,18 +65,18 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -100,10 +99,10 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -114,7 +113,7 @@ msgstr "Macht absolut gar nichts" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 @@ -658,7 +657,7 @@ msgid "There is insufficient free space on the storage card" msgstr "Nicht genügend freier Speicherplatz auf der Speicherkarte" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 @@ -820,8 +819,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Auf das Bild keine Verarbeitung anwenden" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Seite" @@ -2083,7 +2082,7 @@ msgstr "" "abrufen\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "Umschlagbild" @@ -2112,74 +2111,74 @@ msgstr "Titel für alle in den Büchern erstellten Inhaltsverzeichnisse" msgid "Disable compression of the file contents." msgstr "Komprimierung der Datei-Inhalte ausschalten." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Alle Artikel" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Titelseite" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Inhaltsverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "Index" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "Glossar" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "Danksagung" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "Literaturverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "Schlussschrift" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "Copyright" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "Widmung" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "Epigraph" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "Vorwort" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "Abbildungsverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "Tabellenverzeichnis" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "Anmerkungen" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "Vorwort" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "Haupttext" @@ -2556,10 +2555,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Diese RTF Datei enthält eine Funktion, die Calibre nicht unterstützt. " -"Wandeln Sie sie in HTML um und versuchen Sie es damit nochmal." +"Diese RTF Datei beinhaltet eine Funktion, die von Calibre nicht unterstützt " +"wird. Konvertieren Sie sie zunächst in HTML und versuchen Sie es erneut.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2632,82 +2633,82 @@ msgstr "" "Leerzeichen vorhanden ist. Gestattet auch, die maximale Zeilenlänge unter " "das Minimum zu setzen." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Datei auf die Speicherkarte anstatt in den Hauptspeicher des Gerätes " "(Voreinstellung) senden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Bestätigung vor dem Löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Schaltflächengröße der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Zeige Schaltflächenbeschriftung in der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Aufteilung des Hauptfensters" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Benachrichtigen, wenn eine neue Version verfügbar ist" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Benutze römische Ziffern für Reihennummerierung" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Liste der Etiketten nach Beliebtheit sortieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" "Anzahl der Umschlagbilder, die im Cover-Ansicht Modus angezeit werden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Voreinstellungen für Konvertierung zu LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Optionen für den LRF eBook Viewer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formate, die mithilfe des internen Viewers angesehen werden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Spalten, die in der Liste der Bücher angezeigt werden sollen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Content Server automatisch beim Aufrufen von Calibre starten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Älteste in der Datenbank gespeicherte Nachrichten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Symbol im Systembereich der Kontrollleiste anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Geladene Nachrichten auf das Gerät übertragen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Bücher nach der Übertragung auf das Gerät aus der Bibliothek löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" @@ -2715,85 +2716,89 @@ msgstr "" "Zeige Cover-Ansicht in einem eigenen Fenster anstatt im Hauptfenster von " "Calibre" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" "Benachrichtigungen aus dem Systembereich der Kontrollleiste deaktivieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" "Voreingestellte Übertragungsart beim Verwenden des \"An Reader übertragen\" " "Buttons" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maximale Anzahl der Arbeitsprozesse in der Warteschlange" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Soziale Metadaten (Etikettierung/Bewertung/etc.) laden" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Autor und Titel mit neuen Metadaten überschreiben" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" "Maximale Anzahl gleichzeitiger Aufträge auf die Anzahl der CPUs beschränken" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Kopiert" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Kopieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "In die Zwischenablage kopieren" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Dateien wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "Suche in" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "Füge hinzu..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "Suche in allen Unterverzeichnissen..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "Verzeichnis Fehler" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "Das angegebene Verzeichnis konnte nicht bearbeitet werden." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Keine Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "Keine Bücher gefunden" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "Hinzugefügt" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "Hinzufügen schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2802,11 +2807,11 @@ msgstr "" "Versuchen Sie Calibre neu zu starten und fügen Sie die Bücher in kleineren " "Mengen hinzu, bis Sie das verantwortliche Buch finden." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "Duplikate gefunden!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2814,15 +2819,15 @@ msgstr "" "Es gibt schon Bücher mit dem selben Titel wie die folgenden in der " "Datenbank. Trotzdem hinzufügen?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "Füge Duplikate hinzu..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "Speichere..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "Gespeichert" @@ -2862,7 +2867,7 @@ msgid "output" msgstr "Ausgabe" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2899,31 +2904,48 @@ msgstr "Felder, die in der Ausgabe erscheinen sollen:" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:17 msgid "E-book options" -msgstr "" +msgstr "eBook Einstellungen" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "Als Genres ausgeschlossene Etiketten (regex):" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 msgid "'Don't include this book' tag:" msgstr "'Dieses Buch nicht einschließen' Etikett:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Mark this book as read' tag:" msgstr "'Buch als gelesen markieren' Etikett:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "Additional note tag prefix:" msgstr "Zusätzliches Etiketten-Präfix für Anmerkungen:" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "Zahlen als Text sortieren" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "Regex Ausdruck für Etiketten, die als Genres ausgeschlossen werden:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "Spezielle Markierungsetiketten zur Katalogerstellung" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "Tab-Template für catalog.ui" @@ -3060,12 +3082,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3423,7 +3445,7 @@ msgid "Change the title of this book" msgstr "Titel dieses Buches ändern" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Autor(en): " @@ -3441,7 +3463,7 @@ msgstr "" "werden" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Herausgeber: " @@ -3452,7 +3474,7 @@ msgid "Ta&gs: " msgstr "&Etiketten: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3463,15 +3485,15 @@ msgstr "" "oder Sätze verwenden." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Reihen:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3593,7 +3615,7 @@ msgid "RB Output" msgstr "RB-Ausgabe" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "Format zur Vorschau wählen" @@ -3909,7 +3931,7 @@ msgstr "" "ebook.com/user_manual/xpath.html\">XPath Tutorial." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Keine weiteren Informationen verfügbar." @@ -4166,7 +4188,7 @@ msgid "My Books" msgstr "Meine Bücher" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Erstelle Katalog" @@ -4298,132 +4320,132 @@ msgstr "" msgid "new email address" msgstr "Neue eMail-Adresse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Fehler" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "Die Installation der Befehlszeilen-Tools schlug fehl." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Kommandozeilen-Tools installiert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Kommandozeilen-Tools installiert in" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Wenn Sie Calibre.app verschieben, müssen Sie die Befehlszeilen-Tools neu " "installieren." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Kein gültiger Plugin-Pfad" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s ist kein gültiger Plugin-Pfad" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Plugin wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Plugin kann nicht ausgeschaltet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Das Plugin: %s kann nicht ausgeschaltet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Plugin nicht anpassbar" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Plugin: %s bedarf keines Anpassens" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Anpassen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Kann festinstalliertes Plugin nicht entfernen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " kann nicht entfernt werden, da es ein festinstalliertes Plugin ist. " "Versuchen Sie, es auszuschalten." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Fehler Log:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "Zugriffs-Protokolldatei:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Content Server konnte nicht gestartet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Speicherort für Bücher wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Ungültige Größe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" "Die Größe %s ist ungültig. Sie muss der Form BreitexHöhe entsprechen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Ortsangabe der Datenbank ungültig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Ortsangabe der Datenbank ungültig " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Muss ein Verzeichnis sein." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Ortsangabe der Datenbank ungültig.
Speichern nicht möglich " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Überprüfe Vollständigkeit der Datenbank" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Überprüfung der Vollständigkeit der Datenbank schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Einige Inkonsistenzen gefunden." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4532,13 +4554,13 @@ msgstr "" msgid "Sending to &device" msgstr "An das Gerät sen&den" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Einstellungen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4547,24 +4569,28 @@ msgstr "" "sortiert gespeichert und die Metadaten werden in der Datei metadata.db " "gespeichert)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Zu einem neuen Ort der Datenbank wechseln" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Benachrichtigung anzeigen, wenn &neue Version verfügbar ist" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" "&Soziale Metadaten (Etikettierung/Bewertung/etc.) laden als Voreinstellung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Voreinstellung für Zei&tüberschreitung bei Netzwerkverbindungen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4572,157 +4598,157 @@ msgstr "" "Voreinstellung der Zeitüberschreitung für Netzwerkabrufe festsetzen (Gilt " "immer dann, wenn aus dem Internet Informationen abgerufen werden sollen)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " Sekunden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Sprache wäh&len (erfordert Neustart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Normal" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Hoch" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Niedrig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "Auftrags&priorität:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Bev&orzugtes Ausgabe-Format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Bevorzugte Reihenfolge des E&ingabe-Formats:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "&Römische Ziffern für Reihennummerierung verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" "Symbol im Sys&tembereich der Kontrollleiste aktivieren (erfordert Neustart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Be&nachrichtigungen im Systembereich der Kontrollleiste anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Zeige Cover-Ansicht in einem eigenen Fenster (erfordert Neustart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Suchen während der Eingabe" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Geladene &Nachrichten automatisch an das Gerät senden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" "Nachrichten nach der automatischen Übertragung auf das Gerät aus der " "Bibliothek &löschen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" "A&nzahl der anzuzeigenden Umschlagbilder in der Cover-Ansicht (erfordert " "Neustart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Groß" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Mittel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Klein" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Größe der Schaltflächen in der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Zeige &Text in Schaltflächen der Symbolleiste" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Si&chtbare Spalten in Bibliothek-Ansicht wählen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Internen &Viewer verwenden für:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Eine eMail-Adresse hinzufügen, an die die Bücher gesendet werden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "eM&ail hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Als Voreinstellung verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "eMail entfe&rnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" "Calibre kann Ihre Bücher an Sie (oder Ihr Lesegerät) per eMail versenden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" "&Maximale Anzahl der Arbeitsprozesse in der Warteschlange (erfordert " "Neustart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "Vollständigkeit der &Datenbank überprüfen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "Kommandozeilen-Tools &installieren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "&Calibre Einstellungsverzeichnis öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Die maximale Anzahl gleichzeitiger Aufträge auf die Anzahl der &CPU-Kerne " "beschränken." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "Fehlersuche bei &der Geräteerkennung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4732,25 +4758,25 @@ msgstr "" "von überall aus mit Hilfe eines Browsers auf Ihre Büchersammlung zugreifen " "können. Einstellungsänderungen erfolgen erst nach einem Neustart des Servers." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Server &Port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "Ben&utzername:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Passwort:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4758,7 +4784,7 @@ msgstr "" "Wenn Sie das Kennwort leer lassen, kann jeder auf Ihre Büchersammlung über " "das Webinterface zugreifen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4766,41 +4792,41 @@ msgstr "" "Maximale Größe (BreitexHöhe) der angezeigten Umschlagbilder. Größere " "Umschlagbilder werden verkleinert. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Maximale Ums&chlagbild-Größe:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "Pa&sswort anzeigen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Maximale &ODPS Einträge pro Anfrage:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "Server &starten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "Server st&oppen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "Server &testen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Server &automatisch beim Starten hochfahren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Server Logs ansehen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4818,7 +4844,7 @@ msgstr "" "vollständige Servername oder die IP-Adresse des Rechners sein, auf dem " "Calibre läuft." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4826,27 +4852,27 @@ msgstr "" "Hier können Sie das Verhalten von Calibrie anpassen, indem sie festlegen, " "welche Plugins verwendet werden." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Plugin &ein-/ausschalten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "Plugin &anpassen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "Plugin entfe&rnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Neues Plugin hinzufügen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "&Plugin-Datei:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Hinzufügen" @@ -4917,44 +4943,44 @@ msgstr "Sortierung nach Autor" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Finde Metadaten..." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Konnte Metadaten nicht finden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Der Download der Metadaten scheint zum Stillstand gekommen zu sein. " "Versuchen Sie es später erneut." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Warnung" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Konnte Metadaten nicht abrufen von:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Keine Metadaten gefunden" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Keine Metadaten gefunden, versuchen Sie, den Titel und den Autor oder die " "ISBN anzupassen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Metadaten abrufen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4966,31 +4992,35 @@ msgstr "" "müssen Sie einen kostenfreien Account " "anlegen und den Zugangsschlüssel unten angeben." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "Zug&angsschlüssel:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Abrufen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Treffer" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" "Wählen Sie aus der unten stehenden Liste das Buch, das Ihrer Ausgabe " "entspricht" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Soziale Metadaten (Etikettierung/Bewertung/etc.) für das ausgewählte Buch " "laden" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "&Autor/Titel mit Autor/Titel des gewählten Buches überschreiben" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Details des Auftrags" @@ -5011,24 +5041,24 @@ msgstr "Zeige Auftrag&details" msgid "Stop &all jobs" msgstr "&Alle Aufträge abbrechen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Meta-Informationen bearbeiten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Meta-Informationen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "Automatisch Sortierung nach Autor setzen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "S&ortierung nach Autor: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -5037,49 +5067,53 @@ msgstr "" "Geben Sie an, wie der Autor dieses Buches sortiert werden soll. \"Charles " "Dickens\" zum Beispiel als \"Dickens, Charles\"." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Bewertung:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Bewertung dieses Buches: 0-5 Sterne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Keine Änderung" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " Sterne" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Etiketten hinzufü&gen: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Etiketten-Editor öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "Etiketten entfe&rnen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" "Durch Kommata getrennte Liste der Etiketten, die von den Büchern entfernt " "werden. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "&Format entfernen:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "Titel und Autor vertau&schen" @@ -5184,19 +5218,19 @@ msgstr "Es sind Fehler aufgetreten" msgid "There were errors downloading social metadata" msgstr "Während des Ladens von sozialen Metadaten sind Fehler aufgetreten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "Konnte Metadaten nicht abrufen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Sie müssen wenigstens ISBN, Titel, Autor oder Herausgeber angeben" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "Zugriff verweigert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" "Konnte %s nicht öffnen. Wird es von einem anderen Programm verwendet?" @@ -6046,52 +6080,52 @@ msgstr "eBook öffnen" msgid "Configure" msgstr "Konfigurieren" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Die im angegebenen Pfad sich befindende Bibliothek verwenden" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Minimiert im Systembereich der Kontrollleiste starten." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Information zur Fehlersuche auf die Konsole ausgeben" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Nicht nach Updates suchen" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Wenn Sie sicher sind, dass es nicht gestartet ist" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Start nicht möglich " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s ist schon gestartet." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "kann im Systemtray gestartet sein, im" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "oberen rechten Bereich des Bildschirms." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "unteren rechten Bereich des Bildschirms." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "Versuchen Sie Ihren Rechner neu zu starten." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "Versuche Sie die Datei zu löschen" @@ -6253,11 +6287,11 @@ msgstr "Be&enden" msgid "ERROR: Unhandled exception" msgstr "FEHLER: Unbehandelte Ausnahme" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Buch hat weder Titel noch ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Keine Treffer für dieses Buch" @@ -6392,11 +6426,11 @@ msgstr "Sammle " msgid "Fetch news from " msgstr "Nachrichten abrufen von " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Konvertiere bestehende" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6491,7 +6525,7 @@ msgid "Save to disk in a single directory" msgstr "Auf Festplatte in ein einziges Verzeichnis speichern" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "Nur das %s Format auf Festplatte speichern" @@ -6546,7 +6580,7 @@ msgid "Calibre Library" msgstr "Calibre Bibliothek" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "Wählen Sie einen Speicherort für Ihre eBook Bibliothek." @@ -6658,33 +6692,33 @@ msgstr "Archive" msgid "Supported books" msgstr "Unterstützte Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Lesen der Metadaten schlug fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Lesen der Metadaten schlug fehl bei folgenden" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Löschen nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "Kein Buch ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Zu löschende Formate auswählen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Nicht zu löschende Formate auswählen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6692,132 +6726,132 @@ msgstr "" "Die gewählten Bücher werden dauerhaft gelöscht und die Dateien vom " "Computer entfernt. Sicher?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Lösche Bücher vom Gerät." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Konnte Metadaten nicht laden" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "Keine Bücher ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "soziale Metadaten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "Umschlagbilder" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "Metadaten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Lade %s für %d Bücher" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Das Laden der Metadaten schlug teilweise fehl" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Das Laden der Metadaten schlug für folgende Bücher fehl:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Laden der Metadaten schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Kann Metadaten nicht bearbeiten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Speichern auf Festplatte nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Zielverzeichnis auswählen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Fehler während des Speicherns" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "Es gab einen Fehler während des Speicherns." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Konnte einige Bücher nicht speichern" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" "Klicken Sie auf die Schaltfläche Details zeigen, um zu sehen, welche es gibt." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Keine Bücher ausgewählt, für die ein Katalog erstellt werden soll" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Erstelle %s Katalog..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 msgid "Catalog generated." msgstr "Katalog erstellt." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 msgid "Export Catalog Directory" msgstr "Katalog-Verzeichnis exportieren" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 msgid "Select destination for %s.%s" msgstr "Wählen Sie das Ziel für %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "Rufe Nachrichten ab von " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr " abgerufen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "Konvertierung nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "Starte Konvertierung von %d Büchern" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "Ansehen nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "Konnte Verzeichnis nicht öffnen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "Mehrere Bücher ausgewählt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6829,32 +6863,32 @@ msgstr "" "Rechners haben. Einmal gestartet kann der Prozess nicht beendet werden, " "bevor er abgeschlossen ist. Möchten Sie fortfahren?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "%s hat keine verfügbaren Formate." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "Konfiguration nicht möglich" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "Konfiguration nicht möglich während Aufträge abgearbeitet werden." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "Es sind keine genaueren Informationen verfügbar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "" "Es sind keine weitere Informationen über Bücher auf dem Gerät verfügbar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "Fehler in der Kommunikation zum Gerät" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6862,12 +6896,12 @@ msgstr "" "Es trat ein Fehler in der Kommunikation mit dem Gerät auf. Bitte entfernen " "und schließen Sie das Gerät wieder an und - oder starten Sie neu." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "Konvertierungsfehler" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6876,23 +6910,23 @@ msgstr "" "href=\"%s\">DRM geschütztes Buch. Sie müssen zuerst das DRM mit Hilfe " "anderer Programme entfernen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "Downloadschema ausgeschalten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "Misslungen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "Ungültiger Ort der Bibliothek" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "Konnte nicht auf %s zugreifen. Verwende %s als Bibliothek." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." @@ -6901,12 +6935,12 @@ msgstr "" "Falls Sie es nützlich finden, sollten Sie eine Spende zur Unterstützung " "seiner Entwicklung in Betracht ziehen." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" "Es bestehen aktive Aufträge. Sind Sie sicher, dass sie es beenden wollen?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6917,11 +6951,11 @@ msgstr "" "verursachen.
\n" " Sind Sie sicher, dass sie beenden möchten?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "WARNUNG: Aktive Aufträge" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6929,7 +6963,7 @@ msgstr "" "wird im System Tray weiter laufen. Zum Schließen wählen Sie Beenden " "im Kontextmenü des System Tray." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" @@ -6937,11 +6971,11 @@ msgstr "" "Letzte Version: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "Neue Version verfügbar" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7821,7 +7855,7 @@ msgstr "" "Maximale Anzahl an Treffern bei Ergebnissen von ODPS Anfragen. Dies betrifft " "Stanza, WordPlayer, etc. Integration." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7830,7 +7864,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7842,14 +7876,14 @@ msgstr "" "Voreinstellung: '%default'\n" "Wird angewendet auf: CSV, XML Ausgabeformate" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7858,14 +7892,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7874,21 +7908,28 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 -msgid "" -"Tag indicating book has been read.\n" -"Default: '%default'\n" -"Applies to: ePub, MOBI output formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Titel mit vorangehenden Nummern als Text sortieren, z.B.,\n" +"'2001: A Space Odyssey' wird sortiert als \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Voreinstellung: '%default'\n" +"Gilt für: ePub, MOBI Ausgabeformate" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7898,6 +7939,16 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Etikett zeigt an, dass das Buch gelesen wurde.\n" +"Voreinstellung: '%default'\n" +"Gilt für: ePub, MOBI Ausgabeformate" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -8236,7 +8287,7 @@ msgstr "Detaillierte Ausgabeinformation anzeigen. Hilfreich zur Fehlersuche." msgid "Error: You must specify a catalog output file" msgstr "Fehler: Sie müssen eine Katalog-Ausgabedatei angeben" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8521,7 +8572,7 @@ msgstr "Angehalten" msgid "Finished" msgstr "Fertig" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "Bei der Arbeit..." @@ -8660,77 +8711,85 @@ msgstr "" msgid "Unknown News Source" msgstr "Nachrichtenquelle unbekannt" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" "Das \"%s\" Downloadschema benötigt einen Benutzernamen und ein Passwort." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "Download beendet" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "Der Download der folgenden Artikel schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "Der Download von Teilen der folgenden Artikel schlug fehl:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr " von " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "\tFehlgeschlagene Verknüpfungen:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" "Konnte Artikel nicht abrufen. Mit -vv starten, um den Grund dafür zu sehen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "Rufe Feeds ab..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "Feeds der Index-Seite erhalten" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "Umschlagbild versuchen heruterzuladen ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "Erstelle Impressum..." + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "Download von [%d Thread(s)] starten ..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "Feeds wurden nach %s heruntergeladen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "Umschlagbild konnte nicht heruntergeladen werden: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "Umschlagbild von %s herunterladen" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "Impressumskopie geladen" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Artikel ohne Titel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "Artikel heruntergeladen: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "Herunterladen der Artikel schlug fehl: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "Feed abrufen" @@ -10869,6 +10928,13 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "Portuguese" #~ msgstr "Portugiesisch" +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Diese RTF Datei enthält eine Funktion, die Calibre nicht unterstützt. " +#~ "Wandeln Sie sie in HTML um und versuchen Sie es damit nochmal." + #~ msgid "Input character &encoding" #~ msgstr "Zeichenkodi&erung der Eingabe" @@ -11107,3 +11173,6 @@ msgstr "CSS-Stylesheets nicht herunterladen." #~ msgid "E-book Options" #~ msgstr "eBook Einstellungen" + +#~ msgid "Tags to exclude as genres (regex):" +#~ msgstr "Als Genres ausgeschlossene Etiketten (regex):" From 526e7198d7cd3e6b619776fe2e96ae42b63b6b7c Mon Sep 17 00:00:00 2001 From: GRiker Date: Fri, 5 Feb 2010 07:42:54 -0700 Subject: [PATCH 040/158] GwR revisions, tweaks --- src/calibre/gui2/device.py | 2 +- src/calibre/library/catalog.py | 73 ++++++++++++++++++++++++---------- 2 files changed, 54 insertions(+), 21 deletions(-) diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 5a977b37a6..679e86ab48 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -149,7 +149,7 @@ class DeviceManager(Thread): possibly_connected_devices.append((device, detected_device)) if possibly_connected_devices: if not self.do_connect(possibly_connected_devices): - print 'Connect to device failed, retying in 5 seconds...' + print 'Connect to device failed, retrying in 5 seconds...' time.sleep(5) if not self.do_connect(possibly_connected_devices): print 'Device connect failed again, giving up' diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 726541bd4a..c0bdd19c82 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -1119,12 +1119,14 @@ class EPUB_MOBI(CatalogPlugin): #

Book Title

emTag = Tag(soup, "em") if title['series']: - # Insert br at colon + # title
series series_index brTag = Tag(soup,'br') title_tokens = title['title'].split(': ') - emTag.insert(0, title_tokens[0] + ':') + emTag.insert(0, NavigableString(title_tokens[1])) emTag.insert(1, brTag) - emTag.insert(2, title_tokens[1]) + smallTag = Tag(soup,'small') + smallTag.insert(0,NavigableString(title_tokens[0])) + emTag.insert(2, smallTag) else: emTag.insert(0, NavigableString(escape(title['title']))) titleTag = body.find(attrs={'class':'title'}) @@ -1202,7 +1204,12 @@ class EPUB_MOBI(CatalogPlugin): else: imgTag['src'] = "../images/thumbnail_default.jpg" imgTag['alt'] = "cover" - imgTag['style'] = 'width: %dpx; height:%dpx;' % (self.THUMB_WIDTH, self.THUMB_HEIGHT) + + # Tweak image size if we're building for Sony, not sure why this is needed + if self.opts.fmt == 'epub' and self.opts.output_profile.startswith("sony"): + imgTag['style'] = 'width: %dpx; height:%dpx;' % (self.THUMB_WIDTH * 2, self.THUMB_HEIGHT * 2) + else: + imgTag['style'] = 'width: %dpx; height:%dpx;' % (self.THUMB_WIDTH, self.THUMB_HEIGHT) thumbnailTag = body.find(attrs={'class':'thumbnail'}) thumbnailTag.insert(0,imgTag) @@ -1697,7 +1704,9 @@ class EPUB_MOBI(CatalogPlugin): for genre in genre_list: for key in genre: - self.opts.log.info(" %s: %d titles" % (key, len(genre[key]))) + self.opts.log.info(" %s: %d %s" % (self.getFriendlyGenreTag(key), + len(genre[key]), + 'titles' if len(genre[key]) > 1 else 'title')) # Write the results # genre_list = [ {friendly_tag:[{book},{book}]}, {friendly_tag:[{book},{book}]}, ...] @@ -2042,7 +2051,11 @@ class EPUB_MOBI(CatalogPlugin): self.playOrder += 1 navLabelTag = Tag(ncx_soup, "navLabel") textTag = Tag(ncx_soup, "text") - textTag.insert(0, NavigableString(self.formatNCXText(book['title']))) + if book['series']: + tokens = book['title'].split(': ') + textTag.insert(0, NavigableString(self.formatNCXText('%s (%s)' % (tokens[1], tokens[0])))) + else: + textTag.insert(0, NavigableString(self.formatNCXText(book['title']))) navLabelTag.insert(0,textTag) navPointVolumeTag.insert(0,navLabelTag) @@ -2548,15 +2561,25 @@ class EPUB_MOBI(CatalogPlugin): else: yield tag - self.opts.log.info(u' %d available genre tags in database (exclude_genre: %s):' % \ + self.opts.log.info(u' %d genre tags in database (excluding genres matching %s):' % \ (len(genre_tags_dict), self.opts.exclude_genre)) # Display friendly/normalized genres # friendly => normalized - sorted_tags = ['%s => %s' % (key, genre_tags_dict[key]) for key in sorted(genre_tags_dict.keys())] - - for tag in next_tag(sorted_tags): - self.opts.log(u' %s' % tag) + if False: + sorted_tags = ['%s => %s' % (key, genre_tags_dict[key]) for key in sorted(genre_tags_dict.keys())] + for tag in next_tag(sorted_tags): + self.opts.log(u' %s' % tag) + else: + sorted_tags = ['%s' % (key) for key in sorted(genre_tags_dict.keys())] + out_str = '' + line_break = 70 + for tag in next_tag(sorted_tags): + out_str += tag + if len(out_str) >= line_break: + self.opts.log.info(' %s' % out_str) + out_str = '' + self.opts.log.info(' %s' % out_str) return genre_tags_dict @@ -2596,13 +2619,8 @@ class EPUB_MOBI(CatalogPlugin): body.insert(btc,aTag) btc += 1 - # Find the first instance of friendly_tag matching genre - for friendly_tag in self.genre_tags_dict: - if self.genre_tags_dict[friendly_tag] == genre: - break - titleTag = body.find(attrs={'class':'title'}) - titleTag.insert(0,NavigableString('%s' % escape(friendly_tag))) + titleTag.insert(0,NavigableString('%s' % escape(self.getFriendlyGenreTag(genre)))) # Insert the books by author list divTag = body.find(attrs={'class':'authors'}) @@ -2927,6 +2945,12 @@ class EPUB_MOBI(CatalogPlugin): else: return char + def getFriendlyGenreTag(self, genre): + # Find the first instance of friendly_tag matching genre + for friendly_tag in self.genre_tags_dict: + if self.genre_tags_dict[friendly_tag] == genre: + return friendly_tag + def markdownComments(self, comments): ''' Convert random comment text to normalized, xml-legal block of

s @@ -3076,7 +3100,7 @@ class EPUB_MOBI(CatalogPlugin): opts.basename = "Catalog" opts.plugin_path = self.plugin_path opts.cli_environment = not hasattr(opts,'sync') - # GwR *** hardwired for the moment + # GwR *** hardwired to sort by author, could be an option if passed in opts opts.sort_descriptions_by_author = True if opts.verbose: @@ -3087,6 +3111,15 @@ class EPUB_MOBI(CatalogPlugin): if opts_dict['ids']: log(" Book count: %d" % len(opts_dict['ids'])) + sections_list = ['Descriptions','Authors'] + if opts.generate_titles: + sections_list.append('Titles') + if opts.generate_recently_added: + sections_list.append('Recently Added') + if not opts.exclude_genre.strip() == '.': + sections_list.append('Genres') + log(u"Creating Sections for %s" % ', '.join(sections_list)) + # If exclude_genre is blank, assume user wants all genre tags included if opts.exclude_genre.strip() == '': opts.exclude_genre = '\[^.\]' @@ -3098,8 +3131,8 @@ class EPUB_MOBI(CatalogPlugin): log(" opts:") for key in keys: - if key in ['catalog_title','exclude_genre','exclude_tags','generate_titles', - 'generate_recently_added','note_tag','numbers_as_text','read_tag', + if key in ['catalog_title','exclude_genre','exclude_tags', + 'note_tag','numbers_as_text','read_tag', 'search_text','sort_by','sort_descriptions_by_author','sync']: log(" %s: %s" % (key, opts_dict[key])) From 643f60f6e9635f9b8fe25de36d397852f87bc000 Mon Sep 17 00:00:00 2001 From: GRiker Date: Fri, 5 Feb 2010 09:03:54 -0700 Subject: [PATCH 041/158] Added read checkmark to Description page, fixed note prefix len --- src/calibre/library/catalog.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index c0bdd19c82..8ef9e41dc0 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -1138,7 +1138,12 @@ class EPUB_MOBI(CatalogPlugin): aTag['href'] = "%s.html#%s" % ("ByAlphaAuthor", self.generateAuthorAnchor(title['author'])) #aTag.insert(0, escape(title['author'])) aTag.insert(0, title['author']) - authorTag.insert(0, NavigableString("by ")) + + # Insert READ_SYMBOL + if title['read']: + authorTag.insert(0, NavigableString(self.READ_SYMBOL + "by ")) + else: + authorTag.insert(0, NavigableString(self.NOT_READ_SYMBOL + "by ")) authorTag.insert(1, aTag) ''' @@ -3054,7 +3059,7 @@ class EPUB_MOBI(CatalogPlugin): for tag in tags: tag = self.convertHTMLEntities(tag) if tag.startswith(opts.note_tag): - this_title['notes'] = tag[1:] + this_title['notes'] = tag[len(self.opts.note_tag):] elif tag == opts.read_tag: this_title['read'] = True elif re.search(opts.exclude_genre, tag): From 4018a811cb35397c0a157cb7036e32359979a0f8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 5 Feb 2010 21:17:45 -0700 Subject: [PATCH 042/158] El Comerico by Darko Miletic --- resources/images/news/elcomercio.png | Bin 0 -> 764 bytes resources/recipes/elcomercio.recipe | 38 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 resources/images/news/elcomercio.png create mode 100644 resources/recipes/elcomercio.recipe diff --git a/resources/images/news/elcomercio.png b/resources/images/news/elcomercio.png new file mode 100644 index 0000000000000000000000000000000000000000..df484860dde90a1a0e4be214f11df2c8920fc23c GIT binary patch literal 764 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*U87?@N&T^vI!PA{Ew-#a)_;<){(dyD7#o}cyn z2XiuW{e_Sj9NS`DOM(RgCF8mr#qYgY^!nW&?mZp9m|q=|mMl|rG->i$xp~*j<};4= z+ZJk@pH;qHm@A$y?%wYaG2#B~>H6nC*Zlaj$A9vapdzkHhHqJ=V#chKZYo_|aBePl z?UwCY3@V#lr|r)RTy=#n>+f-fvkaF%YwM(aa%r|&Su^wHPf-TB{r`Pz5}5?vU5PmJ zb zU+Uj4SnDdlD`)D~Y_)O1xx-I|mwBl^H|4Q$j+OGaGua`_d1>`Z8NIE0LlakcA3ifR z_D9^>bLY?cIz4BXJ#dK0H^@uUf5wtesfXrDF#sL(_4jso)=E-hh?2Sfb7^;NrJ!>(jDf`BT?$`TwE(N}fL}e>{4B6qtHcOI#yLQW8s2 zt&)pUffR$0fuVt}fsw9(X^4@bm7$rHv8Aqoxs`#zmDKgZC>nC}Q!>*kku?~aTbY=rAP2>Oo literal 0 HcmV?d00001 diff --git a/resources/recipes/elcomercio.recipe b/resources/recipes/elcomercio.recipe new file mode 100644 index 0000000000..37733bda8b --- /dev/null +++ b/resources/recipes/elcomercio.recipe @@ -0,0 +1,38 @@ + +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +elcomercio.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class ElComercio(BasicNewsRecipe): + title = 'El Comercio ' + __author__ = 'Darko Miletic' + description = "Gizmodo, the gadget guide. So much in love with shiny new toys, it's unnatural." + publisher = 'GRUPO EL COMERCIO C.A.' + category = 'news, Ecuador, politics' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + encoding = 'utf-8' + use_embedded_content = True + language = 'es' + masthead_url = 'http://ww1.elcomercio.com/nv_images/headers/EC/logo_new_08.gif' + extra_css = ' body{font-family: Arial,Verdana,sans-serif} img{margin-bottom: 1em} ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_attributes = ['width','height'] + + feeds = [(u'Articles', u'http://ww1.elcomercio.com/rss/titulares1.xml')] + + def preprocess_html(self, soup): + return self.adeify_images(soup) + From bf8324b6227c5339fd44290b3f84d81c524cacae Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 5 Feb 2010 21:29:18 -0700 Subject: [PATCH 043/158] Searching on the device: Ignore unicode errors --- src/calibre/gui2/library.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index fd4f8999b4..bf45584df8 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -903,9 +903,14 @@ class OnDeviceSearch(SearchQueryParser): locations[i] = q[v] for i, r in enumerate(self.model.db): for loc in locations: - if query in loc(r): - matches.add(i) - break + try: + if query in loc(r): + matches.add(i) + break + except ValueError: # Unicode errors + import traceback + traceback.print_exc() + pass return matches From 0081dbabbec06eb643956e27a86e6580c3f960a9 Mon Sep 17 00:00:00 2001 From: Translators <> Date: Sat, 6 Feb 2010 04:52:36 +0000 Subject: [PATCH 044/158] Launchpad automatic translations update. --- src/calibre/translations/hu.po | 8 +- src/calibre/translations/tr.po | 774 ++++++++++++++++++--------------- 2 files changed, 416 insertions(+), 366 deletions(-) diff --git a/src/calibre/translations/hu.po b/src/calibre/translations/hu.po index 666db469ce..389edb12d2 100644 --- a/src/calibre/translations/hu.po +++ b/src/calibre/translations/hu.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2010-02-01 07:47+0000\n" -"PO-Revision-Date: 2010-02-02 18:44+0000\n" -"Last-Translator: Devilinside \n" +"PO-Revision-Date: 2010-02-05 12:50+0000\n" +"Last-Translator: Muszela Balázs \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-02-03 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-02-06 04:52+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -4041,7 +4041,7 @@ msgstr "&Következő" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog.py:37 msgid "My Books" -msgstr "" +msgstr "Könyveim" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 diff --git a/src/calibre/translations/tr.po b/src/calibre/translations/tr.po index cac783dba1..0f60d53b21 100644 --- a/src/calibre/translations/tr.po +++ b/src/calibre/translations/tr.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-31 21:43+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-05 13:53+0000\n" +"Last-Translator: Yiğit Ateş \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-02-01 04:45+0000\n" +"X-Launchpad-Export-Date: 2010-02-06 04:52+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "Hiçbir şey yapmaz" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -50,7 +50,6 @@ msgstr "Hiçbir şey yapmaz" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +64,18 @@ msgstr "Hiçbir şey yapmaz" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +98,10 @@ msgstr "Hiçbir şey yapmaz" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,7 +112,7 @@ msgstr "Hiçbir şey yapmaz" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 @@ -615,7 +614,7 @@ msgstr "%s disk sürücüsü bulunamıyor." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:577 msgid "Could not find mount helper: %s." -msgstr "" +msgstr "Bağlama yardımcısı bulunamıyor: %s." #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:589 msgid "" @@ -646,7 +645,7 @@ msgid "There is insufficient free space on the storage card" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 @@ -661,7 +660,7 @@ msgstr "Aygıtı Yapılandır" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:28 msgid "settings for device drivers" -msgstr "" +msgstr "aygıt sürücüleri için ayarlar" #: /home/kovid/work/calibre/src/calibre/devices/usbms/deviceconfig.py:30 msgid "Ordered list of formats the device will accept" @@ -783,8 +782,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "" @@ -1792,7 +1791,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "" @@ -1819,74 +1818,74 @@ msgstr "" msgid "Disable compression of the file contents." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Başlık Sayfası" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "" @@ -2182,7 +2181,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 @@ -2234,183 +2234,187 @@ msgid "" "allows max-line-length to be below the minimum" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Araç çubuğu simge boyutu" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "" @@ -2450,7 +2454,7 @@ msgid "output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2490,28 +2494,45 @@ msgid "E-book options" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 msgid "'Don't include this book' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Mark this book as read' tag:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "Additional note tag prefix:" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" msgstr "" @@ -2639,12 +2660,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -2976,7 +2997,7 @@ msgid "Change the title of this book" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "" @@ -2992,7 +3013,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "" @@ -3003,7 +3024,7 @@ msgid "Ta&gs: " msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3011,15 +3032,15 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3141,7 +3162,7 @@ msgid "RB Output" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "" @@ -3434,7 +3455,7 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "" @@ -3683,7 +3704,7 @@ msgid "My Books" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "" @@ -3804,127 +3825,127 @@ msgstr "" msgid "new email address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4018,252 +4039,256 @@ msgstr "" msgid "Sending to &device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Tercihler" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " "settings will only take effect after a server restart." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4274,33 +4299,33 @@ msgid "" "the IP address of the computer calibre is running on." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "" @@ -4365,40 +4390,40 @@ msgstr "" msgid "ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4406,27 +4431,31 @@ msgid "" "below." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "" @@ -4447,71 +4476,75 @@ msgstr "" msgid "Stop &all jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " "Dickens should be sorted as Dickens, Charles." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "" @@ -4614,19 +4647,19 @@ msgstr "" msgid "There were errors downloading social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "" @@ -5413,52 +5446,52 @@ msgstr "E-kitap aç" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "" @@ -5614,11 +5647,11 @@ msgstr "" msgid "ERROR: Unhandled exception" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "" @@ -5749,11 +5782,11 @@ msgstr "" msgid "Fetch news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -5840,7 +5873,7 @@ msgid "Save to disk in a single directory" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "" @@ -5895,7 +5928,7 @@ msgid "Calibre Library" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "" @@ -5992,163 +6025,163 @@ msgstr "" msgid "Supported books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Disk'e kayıt edilemiyor" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 msgid "Catalog generated." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 msgid "Export Catalog Directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 msgid "Select destination for %s.%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6156,101 +6189,101 @@ msgid "" "continue?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" " Are you sure you want to quit?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -7045,7 +7078,7 @@ msgid "" "WordPlayer, etc. integration." msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7054,7 +7087,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7062,14 +7095,14 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7078,14 +7111,14 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7094,21 +7127,23 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 -msgid "" -"Tag indicating book has been read.\n" -"Default: '%default'\n" -"Applies to: ePub, MOBI output formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7118,6 +7153,13 @@ msgid "" "Applies to: ePub, MOBI output formats" msgstr "" +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" "Path to the calibre library. Default is to use the path stored in the " @@ -7367,7 +7409,7 @@ msgstr "" msgid "Error: You must specify a catalog output file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -7608,7 +7650,7 @@ msgstr "" msgid "Finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "" @@ -7741,75 +7783,83 @@ msgstr "" msgid "Unknown News Source" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Başlıksız Yazı" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "" From 97ba8f07a44f6ee35ac4dc909745ec113d4cc795 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Feb 2010 12:18:28 -0700 Subject: [PATCH 045/158] News download: Automatically remove tags in the postptocess phase as they cause links in generated EPUB files to not work --- src/calibre/gui2/library.py | 1 - src/calibre/web/feeds/news.py | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index bf45584df8..9b8210c75e 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -910,7 +910,6 @@ class OnDeviceSearch(SearchQueryParser): except ValueError: # Unicode errors import traceback traceback.print_exc() - pass return matches diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index de8eaf6ac5..540f7cd93a 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -615,10 +615,12 @@ class BasicNewsRecipe(Recipe): del o['onload'] for script in list(soup.findAll('noscript')): - script.extract() + script.extract() for attr in self.remove_attributes: for x in soup.findAll(attrs={attr:True}): del x[attr] + for base in list(soup.findAll('base')): + base.extract() return self.postprocess_html(soup, first_fetch) From 4e3a316c70b263a811ba8e2ff96db7adf0017e74 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Feb 2010 13:02:08 -0700 Subject: [PATCH 046/158] Fix #4816 (build+install issues) --- resources/recipes/metro_montreal.recipe | 4 ++-- setup/resources.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/recipes/metro_montreal.recipe b/resources/recipes/metro_montreal.recipe index 8272c760cc..b7f60349df 100644 --- a/resources/recipes/metro_montreal.recipe +++ b/resources/recipes/metro_montreal.recipe @@ -16,7 +16,7 @@ class Metro_Montreal(BasicNewsRecipe): extra_css = '.headline {font-size: x-large;} \n .fact {padding-top: 10pt}' remove_tags = [dict(attrs={'id':'buttons'})] - + feeds = [ (u"L'info", u'http://journalmetro.com/linfo/rss'), (u'Monde', u'http://journalmetro.com/monde/rss'), @@ -26,4 +26,4 @@ class Metro_Montreal(BasicNewsRecipe): ] def print_version(self, url): - return url.replace('article', 'ArticlePrint') + '?language=fr' \ No newline at end of file + return url.replace('article', 'ArticlePrint') + '?language=fr' diff --git a/setup/resources.py b/setup/resources.py index d40d31bbf5..977d753828 100644 --- a/setup/resources.py +++ b/setup/resources.py @@ -48,7 +48,9 @@ class Resources(Command): dest = self.j(self.RESOURCES, 'builtin_recipes.xml') if self.newer(dest, files): self.info('\tCreating builtin_recipes.xml') - open(dest, 'wb').write(serialize_builtin_recipes()) + xml = serialize_builtin_recipes() + with open(dest, 'wb') as f: + f.write(xml) dest = self.j(self.RESOURCES, 'ebook-convert-complete.pickle') files = [] From 4115fd1168adfa1d2caeffee3b9cdf752a6d35b8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Feb 2010 13:05:41 -0700 Subject: [PATCH 047/158] Fix #4814 (Modified PeopleUsMashup) --- resources/recipes/people_us_mashup.recipe | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/recipes/people_us_mashup.recipe b/resources/recipes/people_us_mashup.recipe index 38d750cd4c..ed43e24e56 100644 --- a/resources/recipes/people_us_mashup.recipe +++ b/resources/recipes/people_us_mashup.recipe @@ -31,7 +31,7 @@ class PeopleMag(BasicNewsRecipe): keep_only_tags = [ - dict(name='div', attrs={'class': 'panel_news_article_main'}), + dict(name='div', attrs={'class': 'panel_news_article_main'}), dict(name='div', attrs={'class':'article_content'}), dict(name='div', attrs={'class': 'headline'}), dict(name='div', attrs={'class': 'post'}), @@ -51,6 +51,7 @@ class PeopleMag(BasicNewsRecipe): dict(name='div', attrs={'class':'sharelinkcont'}), dict(name='div', attrs={'class':'categories'}), dict(name='ul', attrs={'class':'categories'}), + dict(name='div', attrs={'class':'related_content'}), dict(name='div', attrs={'id':'promo'}), dict(name='div', attrs={'class':'linksWrapper'}), dict(name='p', attrs={'class':'tag tvnews'}), From fe3152e8c34e585c5b3bc5687dfd77adcf8d7319 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Feb 2010 13:07:14 -0700 Subject: [PATCH 048/158] Fix #4815 (additional REMOVE_TAGS for Harvard Business Review) --- resources/recipes/hbr.recipe | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/recipes/hbr.recipe b/resources/recipes/hbr.recipe index b84062af8c..3d1e8ccfac 100644 --- a/resources/recipes/hbr.recipe +++ b/resources/recipes/hbr.recipe @@ -18,7 +18,8 @@ class HBR(BasicNewsRecipe): remove_tags = [dict(id=['mastheadContainer', 'magazineHeadline', 'articleToolbarTopRD', 'pageRightSubColumn', 'pageRightColumn', 'todayOnHBRListWidget', 'mostWidget', 'keepUpWithHBR', - 'mailingListTout', 'partnerCenter', 'pageFooter']), + 'mailingListTout', 'partnerCenter', 'pageFooter', + 'articleToolbarTop', 'articleToolbarBottom', 'articleToolbarRD']), dict(name='iframe')] extra_css = ''' a {font-family:Georgia,"Times New Roman",Times,serif; font-style:italic; color:#000000; } From 411b796ba1c9bdaf9e5adae1183bac5fb34ecd07 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Feb 2010 21:14:37 -0700 Subject: [PATCH 049/158] Fix #4816 (build+install issues) --- resources/recipes/metro_montreal.recipe | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/recipes/metro_montreal.recipe b/resources/recipes/metro_montreal.recipe index b7f60349df..c2054bdeec 100644 --- a/resources/recipes/metro_montreal.recipe +++ b/resources/recipes/metro_montreal.recipe @@ -4,7 +4,7 @@ class Metro_Montreal(BasicNewsRecipe): title = u'M\xe9tro Montr\xe9al' __author__ = 'Jerry Clapperton' - description = 'Le quotidien le plus branch sur le monde' + description = 'Le quotidien le plus branch\xe9 sur le monde' language = 'fr' oldest_article = 7 From 3ae86efb6fd01140063db1feb7c0d7fcd5df2531 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 6 Feb 2010 21:20:11 -0700 Subject: [PATCH 050/158] Zive.sk and iliterature.cz by Abelturd --- resources/recipes/ZIVE.sk.recipe | 45 +++++++++++++++++++++++ resources/recipes/iliteratura_cz.recipe | 47 +++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 resources/recipes/ZIVE.sk.recipe create mode 100644 resources/recipes/iliteratura_cz.recipe diff --git a/resources/recipes/ZIVE.sk.recipe b/resources/recipes/ZIVE.sk.recipe new file mode 100644 index 0000000000..e5bfd56cef --- /dev/null +++ b/resources/recipes/ZIVE.sk.recipe @@ -0,0 +1,45 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + + + +class ZiveRecipe(BasicNewsRecipe): + __license__ = 'GPL v3' + __author__ = 'Abelturd' + language = 'sk' + version = 1 + + title = u'ZIVE.sk' + publisher = u'' + category = u'News, Newspaper' + description = u'Naj\u010d\xedtanej\u0161\xed denn\xedk opo\u010d\xedta\u010doch, IT a internete. ' + encoding = 'UTF-8' + + oldest_article = 7 + max_articles_per_feed = 100 + use_embedded_content = False + remove_empty_feeds = True + + no_stylesheets = True + remove_javascript = True + cover_url = 'http://www.zive.sk/Client.Images/Logos/logo-zive-sk.gif' + + feeds = [] + feeds.append((u'V\u0161etky \u010dl\xe1nky', u'http://www.zive.sk/rss/sc-47/default.aspx')) + + preprocess_regexps = [ + (re.compile(r'

Pokra.*ie

', re.DOTALL|re.IGNORECASE), + lambda match: ''), + + ] + + + remove_tags = [] + + keep_only_tags = [dict(name='h1'), dict(name='span', attrs={'class':'arlist-data-info-author'}), dict(name='div', attrs={'class':'bbtext font-resizer-area'}),] + extra_css = ''' + h1 {font-size:140%;font-family:georgia,serif; font-weight:bold} + h3 {font-size:115%;font-family:georgia,serif; font-weight:bold} + ''' + + diff --git a/resources/recipes/iliteratura_cz.recipe b/resources/recipes/iliteratura_cz.recipe new file mode 100644 index 0000000000..7d603f0cec --- /dev/null +++ b/resources/recipes/iliteratura_cz.recipe @@ -0,0 +1,47 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class SmeRecipe(BasicNewsRecipe): + __license__ = 'GPL v3' + __author__ = 'Abelturd' + language = 'cz' + version = 1 + + title = u'iLiteratura.cz' + publisher = u'' + category = u'News, Newspaper' + description = u'O LITERATU\u0158E V CEL\xc9M SV\u011aT\u011a A DOMA' + cover_url = 'http://www.iliteratura.cz/1_vzhled/1/iliteratura.gif' + + oldest_article = 7 + max_articles_per_feed = 100 + use_embedded_content = False + remove_empty_feeds = True + + no_stylesheets = True + remove_javascript = True + + + feeds = [] + feeds.append((u'\u010cl\xe1nky', u'http://www.iliteratura.cz/rss.asp')) + + + keep_only_tags = [] + + remove_tags = [dict(name='table'),dict(name='h3')] + + + preprocess_regexps = [ + (re.compile(r'

Souvisej.*', re.DOTALL|re.IGNORECASE), + lambda match: ''), + ] + + def print_version(self, url): + m = re.search('(?<=ID=)[0-9]*', url) + + return u'http://www.iliteratura.cz/clanek.asp?polozkaID=' + str(m.group(0)) + '&c=tisk' + + extra_css = ''' + h1 {font-size:140%;font-family:georgia,serif; font-weight:bold} + h3 {font-size:115%;font-family:georgia,serif; font-weight:bold} + ''' From 73c13ffe272fd547888be7607b4c38778d018d28 Mon Sep 17 00:00:00 2001 From: Translators <> Date: Sun, 7 Feb 2010 04:36:57 +0000 Subject: [PATCH 051/158] Launchpad automatic translations update. --- src/calibre/translations/nb.po | 848 ++++++++++++++++++--------------- 1 file changed, 477 insertions(+), 371 deletions(-) diff --git a/src/calibre/translations/nb.po b/src/calibre/translations/nb.po index e9d7f9ae47..13d413c12e 100644 --- a/src/calibre/translations/nb.po +++ b/src/calibre/translations/nb.po @@ -7,14 +7,14 @@ msgid "" msgstr "" "Project-Id-Version: calibre\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2010-01-25 18:58+0000\n" -"PO-Revision-Date: 2010-01-31 21:38+0000\n" -"Last-Translator: Kovid Goyal \n" +"POT-Creation-Date: 2010-02-01 07:47+0000\n" +"PO-Revision-Date: 2010-02-06 20:40+0000\n" +"Last-Translator: Øyvind Øritsland \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-02-01 04:44+0000\n" +"X-Launchpad-Export-Date: 2010-02-07 04:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: /home/kovid/work/calibre/src/calibre/customize/__init__.py:43 @@ -30,7 +30,7 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:58 #: /home/kovid/work/calibre/src/calibre/devices/prs505/books.py:199 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:205 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:417 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:418 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:67 #: /home/kovid/work/calibre/src/calibre/ebooks/fb2/input.py:69 #: /home/kovid/work/calibre/src/calibre/ebooks/html/input.py:319 @@ -50,7 +50,6 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:64 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:104 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/meta.py:106 -#: /home/kovid/work/calibre/src/calibre/ebooks/metadata/mobi.py:171 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:329 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf.py:444 #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:894 @@ -65,18 +64,18 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:79 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:121 #: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:155 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:607 -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:797 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:609 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/reader.py:799 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:49 #: /home/kovid/work/calibre/src/calibre/ebooks/odt/input.py:51 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:896 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:901 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:961 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:898 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:903 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:969 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:137 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/reader.py:139 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/jacket.py:105 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:171 -#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:172 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:173 +#: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ereader/writer.py:174 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/input.py:39 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/palmdoc/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/pdb/ztxt/writer.py:27 @@ -99,10 +98,10 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/ebooks/pdf/writer.py:29 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:233 #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:235 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:273 -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:280 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:121 -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:128 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:276 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:283 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/convert/__init__.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata.py:132 @@ -113,7 +112,7 @@ msgstr "Gjør absolutt ingenting" #: /home/kovid/work/calibre/src/calibre/gui2/device.py:842 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:48 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:109 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:143 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:454 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:402 @@ -655,7 +654,7 @@ msgid "There is insufficient free space on the storage card" msgstr "Det er ikke nok ledig plass på lagringskortet" #: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:799 -#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:822 +#: /home/kovid/work/calibre/src/calibre/devices/usbms/device.py:824 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:232 #: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:132 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1068 @@ -814,8 +813,8 @@ msgstr "" msgid "Apply no processing to the image" msgstr "Ikke legg prosesser til bildet" -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:441 -#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:452 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:442 +#: /home/kovid/work/calibre/src/calibre/ebooks/comic/input.py:453 msgid "Page" msgstr "Side" @@ -2046,7 +2045,7 @@ msgstr "" "Finn et omslagsbilde for boken identifisert ved ISBN fra LibraryThing.com\n" #: /home/kovid/work/calibre/src/calibre/ebooks/metadata/opf2.py:1083 -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1328 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 msgid "Cover" msgstr "Omslagside" @@ -2077,74 +2076,74 @@ msgstr "Tittel for enhver generert innlagt innholdsfortegnelse." msgid "Disable compression of the file contents." msgstr "Slå av kompresjon av filinnhold." -#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:102 +#: /home/kovid/work/calibre/src/calibre/ebooks/mobi/output.py:105 msgid "All articles" msgstr "Alle artikler" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1329 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 msgid "Title Page" msgstr "Tittelside" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1330 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 #: /home/kovid/work/calibre/src/calibre/ebooks/oeb/transforms/htmltoc.py:15 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:53 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:188 msgid "Table of Contents" msgstr "Innholdsfortegnelse" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1331 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 msgid "Index" msgstr "Innhold" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1332 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 msgid "Glossary" msgstr "Ordliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1333 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 msgid "Acknowledgements" msgstr "Påskjønnelse" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1334 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 msgid "Bibliography" msgstr "Litteraturliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1335 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 msgid "Colophon" msgstr "Kolofon" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1336 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 msgid "Copyright" msgstr "Opphavsrettighet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1337 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1345 msgid "Dedication" msgstr "Tilegnet" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1338 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1346 msgid "Epigraph" msgstr "Epigraf" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1339 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1347 msgid "Foreword" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1340 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1348 msgid "List of Illustrations" msgstr "Illustrasjonsliste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1341 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1349 msgid "List of Tables" msgstr "Tabell-liste" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1342 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1350 msgid "Notes" msgstr "Merknader" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1343 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1351 msgid "Preface" msgstr "Forord" -#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1344 +#: /home/kovid/work/calibre/src/calibre/ebooks/oeb/base.py:1352 msgid "Main Text" msgstr "Hovedtekst" @@ -2505,10 +2504,12 @@ msgstr "Spesifiser tegnsettkodene for et utdatadokument. Standard er cp1252." #: /home/kovid/work/calibre/src/calibre/ebooks/rtf/input.py:199 msgid "" "This RTF file has a feature calibre does not support. Convert it to HTML " -"first and then try it." +"first and then try it.\n" +"%s" msgstr "" -"Denne RTF filen har egenskaper calibre ikke støtter. Konverter det til HTML " -"og forsøk på nytt." +"Denne RTF filen har en egenskap som ikke Calibre støtter. Konverter den til " +"HTML først og deretter forsøk den.\n" +"%s" #: /home/kovid/work/calibre/src/calibre/ebooks/tcr/output.py:23 msgid "" @@ -2573,160 +2574,164 @@ msgstr "" "Tving deling på maks-linjelengdens verdi når ingen mellomrom er til stede. " "Tillater også maks-linjelengde å være under minimum." -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:29 msgid "Send file to storage card instead of main memory by default" msgstr "" "Send en fil til et lagringskort i stedet for hovedminnet som standard" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:31 msgid "Confirm before deleting" msgstr "Bekreft før sletting" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:32 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:33 msgid "Toolbar icon size" msgstr "Ikonstørrelse for verktøylinjen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:34 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:35 msgid "Show button labels in the toolbar" msgstr "Vis knappebeskrivelse i verktøylinjen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:36 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:37 msgid "Main window geometry" msgstr "Hovedvindus geometri" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:38 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:39 msgid "Notify when a new version is available" msgstr "Varsle dersom en ny versjon er tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:40 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:41 msgid "Use Roman numerals for series number" msgstr "Bruk romerske tall for serienummer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:42 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:43 msgid "Sort tags list by popularity" msgstr "Sorter merkelappliste etter populæritet" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:44 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:45 msgid "Number of covers to show in the cover browsing mode" msgstr "Antall omslag som skal vises ved omslagsvisningsmodus" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:46 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:47 msgid "Defaults for conversion to LRF" msgstr "Standarder for konvertering til LRF" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:48 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:49 msgid "Options for the LRF ebook viewer" msgstr "Valgmuligheter for LRF e-bokleser" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:52 msgid "Formats that are viewed using the internal viewer" msgstr "Formater som er vist ved bruk av intern leser" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 msgid "Columns to be displayed in the book list" msgstr "Kolonner som skal vises i e-boklisten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 msgid "Automatically launch content server on application startup" msgstr "Start innholdsserver automatisk ved programstart" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 msgid "Oldest news kept in database" msgstr "Eldste nyheter i databasen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:56 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:57 msgid "Show system tray icon" msgstr "Vis systemikon" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:58 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:59 msgid "Upload downloaded news to device" msgstr "Legg inn nedlastede nyheter til enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:60 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:61 msgid "Delete books from library after uploading to device" msgstr "Slett bøker fra biblioteket etter at du har lagt dem inn i enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:62 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:63 msgid "" "Show the cover flow in a separate window instead of in the main calibre " "window" msgstr "Vis omslaget i et eget vindu istedet for i calibres hovedvindu" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:64 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:65 msgid "Disable notifications from the system tray icon" msgstr "Slå av varsler fra systemikonet" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:66 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:67 msgid "Default action to perform when send to device button is clicked" msgstr "Standard oppgaver som gjøres når send til enhet-knappen er klikket" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:89 msgid "Maximum number of waiting worker processes" msgstr "Maksumum antall ventende arbeidsprosesser" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:91 msgid "Download social metadata (tags/rating/etc.)" msgstr "Last ned sosiale metadata (emneord/bedømmelser/osv.)" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:92 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:93 +msgid "Overwrite author and title with new metadata" +msgstr "Overskriv forfatter og tittel med nye metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:95 msgid "Limit max simultaneous jobs to number of CPUs" msgstr "Begrense maksimalt antall samtidige oppgaver til antallet av CPUer" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:133 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:439 msgid "Copied" msgstr "Kopiert" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy" msgstr "Kopier" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:167 msgid "Copy to Clipboard" msgstr "Kopier til utklippstavlen" -#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:395 +#: /home/kovid/work/calibre/src/calibre/gui2/__init__.py:398 msgid "Choose Files" msgstr "Velg filer" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:56 msgid "Searching in" msgstr "Søker i" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:167 msgid "Adding..." msgstr "Legger til..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:176 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:180 msgid "Searching in all sub-directories..." msgstr "Søker i alle undermapper..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:189 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:193 msgid "Path error" msgstr "Feil i stien" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:190 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 msgid "The specified directory could not be processed." msgstr "Det spesifiserte mappen kunne ikke prossesseres" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:194 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:198 #: /home/kovid/work/calibre/src/calibre/gui2/device.py:495 msgid "No books" msgstr "Ingen bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:199 msgid "No books found" msgstr "Ingen bøker ble funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:265 msgid "Added" msgstr "Lagt til" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:278 msgid "Adding failed" msgstr "Kunne ikke legge til" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:279 msgid "" "The add books process seems to have hung. Try restarting calibre and adding " "the books in smaller increments, until you find the problem book." @@ -2734,11 +2739,11 @@ msgstr "" "Legg til bøker prosessen ser ut til å være låst. Forsøk å re-starte calibre " "og legg til færre bøker av gangen, til du finner problemboka." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:287 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 msgid "Duplicates found!" msgstr "Duplikater funnet!" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:288 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:292 msgid "" "Books with the same title as the following already exist in the database. " "Add them anyway?" @@ -2746,15 +2751,15 @@ msgstr "" "Bøker med den samme tittelen som den følgende finnes allerede i databasen. " "Legg dem til allikevel?" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:291 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:295 msgid "Adding duplicates..." msgstr "Legger inn duplikater..." -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:356 msgid "Saving..." msgstr "Lagrer" -#: /home/kovid/work/calibre/src/calibre/gui2/add.py:405 +#: /home/kovid/work/calibre/src/calibre/gui2/add.py:409 msgid "Saved" msgstr "Lagret" @@ -2794,7 +2799,7 @@ msgid "output" msgstr "utdata" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_csv_xml_ui.py:36 -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:27 #: /home/kovid/work/calibre/src/calibre/gui2/convert/comic_input_ui.py:84 #: /home/kovid/work/calibre/src/calibre/gui2/convert/debug_ui.py:49 @@ -2834,31 +2839,53 @@ msgid "E-book options" msgstr "E-bok valg" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:20 -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:256 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:271 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1416 #: /home/kovid/work/calibre/src/calibre/library/database2.py:1430 msgid "Catalog" msgstr "Katalog" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:52 -msgid "Tags to exclude as genres (regex):" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:68 msgid "'Don't include this book' tag:" -msgstr "" +msgstr "'Ikke inkluder denne boken' merke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:69 msgid "'Mark this book as read' tag:" -msgstr "" +msgstr "'Merk denne boken som lest' merke:" -#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:55 +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:70 msgid "Additional note tag prefix:" +msgstr "Tilleggsnotatsmerke:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:71 +msgid "Sort numbers as text" +msgstr "Sorter tall som tekst" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:72 +msgid "Regex pattern describing tags to exclude as genres:" +msgstr "Regex-mønsker beskriver meker som skal utelates som sjangre:" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:73 +msgid "Special marker tags for catalog generation" +msgstr "Spesiell markering for kataloggenerering" + +#: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi_ui.py:74 +msgid "" +"Regex tips:\n" +"- The default regex of '\\[[\\w]*\\]' ignores tags of the form '[tag]', " +"e.g., '[Amazon Freebie]'\n" +"- A regex of '.' ignores all tags, generating no genre categories in the " +"catalog" msgstr "" +"Regex-tips:\n" +"-Standarden regex av '\\[[\\w]*\\]' utelater merker av typen '[tag]', " +"f.eks., '[Amazon Freebie]'\n" +"-En regex av '.' utelater alle merker, genererer ingen sjangre av kategorien " +"i en katalog" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_tab_template_ui.py:28 msgid "Tab template for catalog.ui" -msgstr "" +msgstr "Tab mal for katalog.ui" #: /home/kovid/work/calibre/src/calibre/gui2/convert/bulk.py:36 msgid "" @@ -2991,12 +3018,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/xexp_edit_ui.py:52 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget_ui.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:574 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:357 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:362 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:376 @@ -3350,7 +3377,7 @@ msgid "Change the title of this book" msgstr "Forandre bokens tittel" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:173 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:358 msgid "&Author(s): " msgstr "&Forfatter(e): " @@ -3368,7 +3395,7 @@ msgstr "" "adskilt av komma." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:176 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:367 msgid "&Publisher: " msgstr "&Forlegger: " @@ -3379,7 +3406,7 @@ msgid "Ta&gs: " msgstr "Ta&gger: " #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:178 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:369 msgid "" "Tags categorize the book. This is particularly useful while searching. " @@ -3389,15 +3416,15 @@ msgstr "" "

De kan være ethvert ord eller fraser, separert ved kommategn." #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:179 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:372 msgid "&Series:" msgstr "&Serier:" #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:180 #: /home/kovid/work/calibre/src/calibre/gui2/convert/metadata_ui.py:181 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:158 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:373 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:374 msgid "List of known series. You can add new series." @@ -3519,7 +3546,7 @@ msgid "RB Output" msgstr "RB Utdata" #: /home/kovid/work/calibre/src/calibre/gui2/convert/regex_builder.py:77 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1637 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1639 msgid "Choose the format to view" msgstr "Velg format som skal vises" @@ -3826,7 +3853,7 @@ msgstr "" "ebook.com/user_manual/xpath.html\">XPath Tutorial." #: /home/kovid/work/calibre/src/calibre/gui2/device.py:38 -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:132 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:135 msgid "No details available." msgstr "Ingen detaljer tilgjengelig." @@ -4082,7 +4109,7 @@ msgid "My Books" msgstr "Mine bøker" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/catalog_ui.py:67 -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:262 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:264 msgid "Generate catalog" msgstr "Produser katalog" @@ -4212,130 +4239,130 @@ msgstr "" msgid "new email address" msgstr "ny e-postadresse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:477 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:821 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:823 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:158 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1246 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1248 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:53 msgid "Error" msgstr "Feil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:478 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:479 msgid "Failed to install command line tools." msgstr "Kunne ikke installere kommandolinjeverktøy." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:481 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 msgid "Command line tools installed" msgstr "Kommandolinjeverktøy installert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:482 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 msgid "Command line tools installed in" msgstr "Kommandolinjeverktøy ble installert i" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:483 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:484 msgid "" "If you move calibre.app, you have to re-install the command line tools." msgstr "" "Dersom du flytter calibre.app, må du re-installere kommandolinjeverktøyene." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:534 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 msgid "No valid plugin path" msgstr "Ingen gyldig programtillegsbane" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:535 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:536 msgid "%s is not a valid plugin path" msgstr "%s er ikke en gyldig bane for programtillegget" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:539 msgid "Choose plugin" msgstr "Velg programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 msgid "Plugin cannot be disabled" msgstr "Programtillegget kan ikke slåes av" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:552 msgid "The plugin: %s cannot be disabled" msgstr "Programtillegget: %s kan ikke slåes av" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 msgid "Plugin not customizable" msgstr "Programtillegg ikke egendefinert" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:562 msgid "Plugin: %s does not need customization" msgstr "Programtillegg: %s trenger ikke å egendefineres" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:570 msgid "Customize" msgstr "Tilpass" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:607 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 msgid "Cannot remove builtin plugin" msgstr "Kan ikke fjerne innebygget programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:609 msgid " cannot be removed. It is a builtin plugin. Try disabling it instead." msgstr "" " kan ikke fjernes. Dette er et innebygget programtillegg. Forsøk å slå det " "av istedet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:641 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:642 msgid "Error log:" msgstr "Feil-logg:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:648 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:649 msgid "Access log:" msgstr "tilgangslogg:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:676 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:677 #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:659 msgid "Failed to start content server" msgstr "Kunne ikke starte innholdsserveren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:700 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:701 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:550 msgid "Select location for books" msgstr "Velg lokalisasjon for bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:708 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 msgid "Invalid size" msgstr "Ugyldig størrelse" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:709 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:710 msgid "The size %s is invalid. must be of the form widthxheight" msgstr "Størrelsen %s er ugyldig. må være i formatet breddexhøyde" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:762 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:767 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:769 msgid "Invalid database location" msgstr "Ugyldig lokalisering av databasen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:763 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:765 msgid "Invalid database location " msgstr "Ugyldig lokalisering av databasen " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:764 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:766 msgid "
Must be a directory." msgstr "
Må være en katalog." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:768 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:770 msgid "Invalid database location.
Cannot write to " msgstr "Ugyldig lokalisering av databasen.
Kan ikke skrive til " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:802 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:804 msgid "Checking database integrity" msgstr "Sjekker databasens integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:822 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:824 msgid "Failed to check database integrity" msgstr "Kunne ikke sjekke databasens integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:827 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:829 msgid "Some inconsistencies found" msgstr "Noen uoverensstemmelser ble funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:828 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/__init__.py:830 msgid "" "The following books had formats listed in the database that are not actually " "available. The entries for the formats have been removed. You should check " @@ -4444,13 +4471,13 @@ msgstr "" msgid "Sending to &device" msgstr "Sender til &enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:501 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:504 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:366 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:193 msgid "Preferences" msgstr "Innstillinger" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:502 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 msgid "" "&Location of ebooks (The ebooks are stored in folders sorted by author and " "metadata is stored in the file metadata.db)" @@ -4458,23 +4485,27 @@ msgstr "" "&Lokalisering av e-bøker (e-bøkene er lagret i foldere sortert etter " "forfattere og metadata er lagret i filen metadata.db)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:503 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 msgid "Browse for the new database location" msgstr "Søk etter den nye databaselokaliseringen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:505 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 msgid "Show notification when &new version is available" msgstr "Varsle når &ny versjon er tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:506 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 msgid "Download &social metadata (tags/ratings/etc.) by default" msgstr "Last ned &sosiale metadata (emneord/bedømminger/osv.) som standard" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:507 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +msgid "Overwrite & author/title by default when fetching metadata" +msgstr "Overskriv & forfatter/tittel som standard når du laster ned metadata" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 msgid "Default network &timeout:" msgstr "Standard netttilgang &tidsavbrudd:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:508 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 msgid "" "Set the default timeout for network fetches (i.e. anytime we go out to the " "internet to get information)" @@ -4482,148 +4513,148 @@ msgstr "" "Legg inn standard for tidsavbrudd for nettverkstilgang (for eksempel all den " "tid vi går på nettet for å finne informasjon)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:509 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 msgid " seconds" msgstr " sekunder" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:510 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 msgid "Choose &language (requires restart):" msgstr "Velg &språk (krever omstart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:511 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 msgid "Normal" msgstr "Vanlig" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:512 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 msgid "High" msgstr "Høy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:513 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:517 msgid "Low" msgstr "Lav" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:514 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:518 msgid "Job &priority:" msgstr "oppgave&prioritet:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:515 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 msgid "Preferred &output format:" msgstr "Foretrukket &utdataformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:516 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 msgid "Preferred &input format order:" msgstr "Foretrukket &inndataformat:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:519 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 msgid "Use &Roman numerals for series number" msgstr "Bruk &Romerske tall for seriell numerering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:520 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 msgid "Enable system &tray icon (needs restart)" msgstr "Slå på oppgave&panelikonet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:521 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 msgid "Show ¬ifications in system tray" msgstr "Vis &varsler i oppgavepanelet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:522 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 msgid "Show cover &browser in a separate window (needs restart)" msgstr "Vis omslag &søk i eget vindu (krever omstart)" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:523 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 msgid "Search as you type" msgstr "Søk mens du taster" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:524 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 msgid "Automatically send downloaded &news to ebook reader" msgstr "Send nedlastede &nyheter til eBokleseren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:525 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 msgid "&Delete news from library when it is automatically sent to reader" msgstr "&Slett nyheter fra biblioteket når de automatisk sendes til leseren" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:526 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 msgid "&Number of covers to show in browse mode (needs restart):" msgstr "&Antall omslag som skal vises i søkemodus (krever omstart):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:527 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 msgid "Toolbar" msgstr "Verktøylinje" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:528 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 msgid "Large" msgstr "Store" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:529 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 msgid "Medium" msgstr "Medium" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:534 msgid "Small" msgstr "Små" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:531 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:535 msgid "&Button size in toolbar" msgstr "&Knappestørrelse i verktøylinjen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:532 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 msgid "Show &text in toolbar buttons" msgstr "Vis &tekst i verktøylinjens knapper" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:533 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 msgid "Select visible &columns in library view" msgstr "Velg synlige &kolonner i bibliotekvisningsmodus" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:536 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 msgid "Use internal &viewer for:" msgstr "Bruk intern &leser for:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:537 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 msgid "Add an email address to which to send books" msgstr "Legg til en e-postadresse til hvor du vil sende bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:538 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 msgid "&Add email" msgstr "&Legg til e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:539 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 msgid "Make &default" msgstr "Lag &standard" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:540 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 msgid "&Remove email" msgstr "&Fjern e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:541 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 msgid "calibre can send your books to you (or your reader) by email" msgstr "Calibre kan sende bøker til deg (eller din leser) via e-post" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:542 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 msgid "&Maximum number of waiting worker processes (needs restart):" msgstr "&Maximum antall ventende arbeidsprosesser (omstart behøves):" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:543 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 msgid "&Check database integrity" msgstr "&Sjekk databasens integritet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:544 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 msgid "&Install command line tools" msgstr "&Installer kommandolinjeverktøy" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:545 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 msgid "Open calibre &configuration directory" msgstr "Åpne Calibre&konfigurasjonsmappen" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 msgid "Limit the max. simultaneous jobs to the available CPU &cores" msgstr "" "Begrens maksimalt antall samtidige oppgaver til verdien av CPU &cores" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:547 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 msgid "Debug &device detection" msgstr "Feilsøking &enhetsgjenkjenning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:548 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 msgid "" "calibre contains a network server that allows you to access your book " "collection using a browser from anywhere in the world. Any changes to the " @@ -4633,25 +4664,25 @@ msgstr "" "ved å benytte en nettleser fra hvilket som helst sted i verden. Enhver " "forandring av innstillingene vil taes ibruk etter en omstart av serveren." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:549 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 msgid "Server &port:" msgstr "Server &port:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:550 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:58 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:117 msgid "&Username:" msgstr "&Brukernavn:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:551 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:59 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:119 msgid "&Password:" msgstr "&Passord:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:552 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 msgid "" "If you leave the password blank, anyone will be able to access your book " "collection using the web interface." @@ -4659,7 +4690,7 @@ msgstr "" "Dersom du lar passordet stå tomt, vil enhver kunne gå inn i din boksamling " "ved å benytte web-brukergrensesnittet." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:553 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 msgid "" "The maximum size (widthxheight) for displayed covers. Larger covers are " "resized. " @@ -4667,41 +4698,41 @@ msgstr "" "Maksimal størrelse (breddexhøyde) for å vise omslag. Større omslag vil bli " "re-dimensjonert. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:554 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 msgid "Max. &cover size:" msgstr "Maks. &omslagsstørrelse:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:555 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:60 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212 msgid "&Show password" msgstr "&Vis passord" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:556 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 msgid "Max. &OPDS items per query:" msgstr "Maksimum &OPDS enheter per spørring:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:557 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 msgid "&Start Server" msgstr "&Start server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:558 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 msgid "St&op Server" msgstr "St&op server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:559 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:563 msgid "&Test Server" msgstr "&Test server" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:560 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 msgid "Run server &automatically on startup" msgstr "Kjør server &automatisk ved oppstart" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:561 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 msgid "View &server logs" msgstr "Vis &serverlogger" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:562 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 #: /home/kovid/work/calibre/src/calibre/gui2/wizard/stanza_ui.py:46 msgid "" "

Remember to leave calibre running as the server only runs as long as " @@ -4718,7 +4749,7 @@ msgstr "" "din iPhone. Her skal myhostname være fullt kvalifisert vertsnavn eller IP-" "adressen til datamaskinen Calibre kjører på." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 msgid "" "Here you can customize the behavior of Calibre by controlling what plugins " "it uses." @@ -4726,27 +4757,27 @@ msgstr "" "Her kan du skreddersy Calibres atferd ved å kontrollere hvilke " "programtillegg som skal benyttes." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:565 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 msgid "Enable/&Disable plugin" msgstr "Slå på/&Slå av programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:566 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:570 msgid "&Customize plugin" msgstr "&Skreddersy programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:567 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 msgid "&Remove plugin" msgstr "&Fjern programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:568 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:572 msgid "Add new plugin" msgstr "Legg til nytt programtillegg" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:569 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:573 msgid "Plugin &file:" msgstr "Programtillegg &fil" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:571 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config/config_ui.py:575 msgid "&Add" msgstr "&Legg til" @@ -4816,43 +4847,43 @@ msgstr "Forfatter Sorter" msgid "ISBN" msgstr "ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:151 msgid "Finding metadata..." msgstr "Finner metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:162 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:164 msgid "Could not find metadata" msgstr "Kunne ikke finne metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:163 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:165 msgid "The metadata download seems to have stalled. Try again later." msgstr "" "Nedlastingen av metadata ser ut til å ha låst seg. Forsøk igjen senere." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:172 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:174 msgid "Warning" msgstr "Advarsel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:173 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:175 msgid "Could not fetch metadata from:" msgstr "Kunne ikke finne metadata fra:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:177 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:179 msgid "No metadata found" msgstr "Ingen metadata funnet" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:178 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata.py:180 msgid "" "No metadata found, try adjusting the title and author or the ISBN key." msgstr "" "Ingen metadata funnet. Forsøk å justere tittel og forfatter, eller ISBN-" "nøkkelen." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:81 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 msgid "Fetch metadata" msgstr "Finn metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 msgid "" "

calibre can find metadata for your books from two locations: Google " "Books and isbndb.com.

To use isbndb.com you must sign up for a " @@ -4864,28 +4895,32 @@ msgstr "" "først registrere deg med engratis " "konto og legge inn din aksessnøkkel under." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 msgid "&Access Key:" msgstr "&Aksessnøkkel" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:84 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 msgid "Fetch" msgstr "Hent" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:88 msgid "Matches" msgstr "Treff" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:89 msgid "" "Select the book that most closely matches your copy from the list below" msgstr "Velg boken som samsvarer mest med ditt eksemplar fra listen under" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:87 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:90 msgid "Download &social metadata (tags/rating/etc.) for the selected book" msgstr "" "Last ned &sosiale metadata (emneord/bedømminger/osv.) for den valgte boken" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/fetch_metadata_ui.py:91 +msgid "Overwrite &author/title with author/title of selected book" +msgstr "Overskriv &forfatter/tittel med forfatter/tittel fra valgte bok" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/job_view_ui.py:37 msgid "Details of job" msgstr "Oppgavedetaljer" @@ -4906,24 +4941,24 @@ msgstr "Vis oppgave&detaljer" msgid "Stop &all jobs" msgstr "Stopp &alle jobber" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:136 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:138 msgid "Edit Meta information" msgstr "Rediger metainformasjon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:137 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:353 msgid "Meta information" msgstr "Metainformasjon" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:139 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 msgid "A&utomatically set author sort" msgstr "A&utomatisk forfattersortering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:140 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 msgid "Author s&ort: " msgstr "Forfatter s&orter: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:141 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:360 msgid "" "Specify how the author(s) of this book should be sorted. For example Charles " @@ -4932,47 +4967,51 @@ msgstr "" "Spesifiser hvordan forfatter(e) av denne boken skal sorteres. For eksempel " "Charles Dickens skal sorteres som Dickens, Charles." -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:142 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:363 msgid "&Rating:" msgstr "&Bedømning" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:143 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:144 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:146 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:364 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:365 msgid "Rating of this book. 0-5 stars" msgstr "Bedømning av denne boken. 0-5 stjerner" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:145 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +msgid "No change" +msgstr "Ingen endring" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:148 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:366 msgid " stars" msgstr " stjerner" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 msgid "Add ta&gs: " msgstr "Legg til ta&gger: " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:149 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:150 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:153 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:370 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:371 msgid "Open Tag Editor" msgstr "Åpne Tagg-redigering" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:151 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:154 msgid "&Remove tags:" msgstr "&Fjern emneord:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:152 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:155 msgid "Comma separated list of tags to remove from the books. " msgstr "Kommaseparert liste av emneord som skal fjernes fra bøkene. " -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:156 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:159 msgid "Remove &format:" msgstr "Fjern &format:" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:157 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:160 msgid "&Swap title and author" msgstr "&Bytt mellom tittel og forfatter" @@ -5076,19 +5115,19 @@ msgstr "Det oppsto feil" msgid "There were errors downloading social metadata" msgstr "Det oppsto feil ved nedlastingen av sosiale metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:597 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 msgid "Cannot fetch metadata" msgstr "Kan ikke hente metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:598 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:599 msgid "You must specify at least one of ISBN, Title, Authors or Publisher" msgstr "Du må spesifisere minst en av ISBN, Tittel, Forfatter eller Forlag" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:660 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:664 msgid "Permission denied" msgstr "Ingen adgang" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:665 msgid "Could not open %s. Is it being used by another program?" msgstr "Kunne ikke åpne %s. Blir den benyttet i et annet program?" @@ -5929,52 +5968,52 @@ msgstr "Åpne e-bok" msgid "Configure" msgstr "Konfigurer" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:24 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:25 msgid "Use the library located at the specified path." msgstr "Bruk biblioteket lokalisert ved en spesifikk sti." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:26 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:27 msgid "Start minimized to system tray." msgstr "Start minimalisert til systemstatusfeltet." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:29 msgid "Log debugging information to console" msgstr "Logg debugging informasjon til konsollen" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:30 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:31 msgid "Do not check for updates" msgstr "Ikke søk etter oppdateringer" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:80 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 msgid "If you are sure it is not running" msgstr "Er du sikker på at den ikke kjører" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:85 msgid "Cannot Start " msgstr "Kan ikke Starte " -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:83 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 msgid "%s is already running." msgstr "%s kjører allerede." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:86 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:89 msgid "may be running in the system tray, in the" msgstr "kan kjøre i systemfeltet, i" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:91 msgid "upper right region of the screen." msgstr "øvre høyre område av skjermen." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 msgid "lower right region of the screen." msgstr "nedre høyre område av skjermen." -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:93 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:96 msgid "try rebooting your computer." msgstr "forsøk å re-starte datamaskinen" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:95 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 msgid "try deleting the file" msgstr "forsøk å slette filen" @@ -6134,11 +6173,11 @@ msgstr "&Avslutt" msgid "ERROR: Unhandled exception" msgstr "FEIL: Ubehandlet unntak" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:88 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:89 msgid "Book has neither title nor ISBN" msgstr "Boken har verken tittel eller ISBN" -#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/metadata.py:115 msgid "No matches found for this book" msgstr "Ingen treff ble funnet for denne boken" @@ -6273,11 +6312,11 @@ msgstr "Kø " msgid "Fetch news from " msgstr "Skaff nyheter fra " -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:274 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:276 msgid "Convert existing" msgstr "Konverter eksisterende" -#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:275 +#: /home/kovid/work/calibre/src/calibre/gui2/tools.py:277 msgid "" "The following books have already been converted to %s format. Do you wish to " "reconvert them?" @@ -6370,7 +6409,7 @@ msgid "Save to disk in a single directory" msgstr "Lagre til disk i en enkelt mappe" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:306 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1745 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1747 msgid "Save only %s format to disk" msgstr "Lagre kun %s format til disken" @@ -6404,7 +6443,7 @@ msgstr "Samlet konvertering" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:360 msgid "Create catalog of books in your calibre library" -msgstr "" +msgstr "Lag en katalog av bøker i calibre-biblioteket ditt" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:376 msgid "Run welcome wizard" @@ -6425,13 +6464,13 @@ msgid "Calibre Library" msgstr "Calibre-bibliotek" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:485 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1901 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1903 msgid "Choose a location for your ebook library." msgstr "Velg en lokalisering for ditt e-bokbibliotek" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:523 msgid "Calibre Quick Start Guide" -msgstr "" +msgstr "Calibre hurtigstart-guide" #: /home/kovid/work/calibre/src/calibre/gui2/ui.py:703 msgid "Browse by covers" @@ -6534,33 +6573,33 @@ msgstr "Arkiver" msgid "Supported books" msgstr "Støttede bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1052 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1054 msgid "Failed to read metadata" msgstr "Kunne ikke lese metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1053 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1055 msgid "Failed to read metadata from the following" msgstr "Kunne ikke lese metadata fra følgende" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1074 msgid "Cannot delete" msgstr "Kan ikke fjerne" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1075 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1650 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1077 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1652 msgid "No book selected" msgstr "Ingen bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1085 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1087 msgid "Choose formats to be deleted" msgstr "Velg formater som skal fjernes" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1103 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1105 msgid "Choose formats not to be deleted" msgstr "Velg formatet ikke til å slettes" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1141 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1143 msgid "" "The selected books will be permanently deleted and the files removed " "from your computer. Are you sure?" @@ -6568,131 +6607,131 @@ msgstr "" "De valgte bøkene vil bli slettet permanent og filene vil bli fjernet " "fra datamaskinen din. Er du sikker?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1168 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1170 msgid "Deleting books from device." msgstr "Sletter bøker fra enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1199 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1201 msgid "Cannot download metadata" msgstr "Kan ikke laste ned metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1200 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1257 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1290 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1315 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1374 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1487 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1202 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1259 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1292 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1376 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1489 msgid "No books selected" msgstr "Ingen bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1215 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 msgid "social metadata" msgstr "sosiale metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "covers" msgstr "Omslag" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1217 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 msgid "metadata" msgstr "metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1219 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1221 msgid "Downloading %s for %d book(s)" msgstr "Laster ned %s for %d bok(bøker)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1241 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1243 msgid "Failed to download some metadata" msgstr "Klarte ikke å laste ned en del av metadataene" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1242 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1244 msgid "Failed to download metadata for the following:" msgstr "Kunne ikke laste ned metadata for følgende:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1245 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1247 msgid "Failed to download metadata:" msgstr "Kunne ikke laste ned metadata:" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1256 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1289 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1258 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1291 msgid "Cannot edit metadata" msgstr "Kan ikke redigere metadata" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1314 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1316 msgid "Cannot save to disk" msgstr "Kan ikke lagre til disk" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1317 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1319 msgid "Choose destination directory" msgstr "Velg mottaksmappe" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1344 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1346 msgid "Error while saving" msgstr "Feil ved lagring" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1345 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1347 msgid "There was an error while saving." msgstr "En feil oppsto ved lagring" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1352 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1353 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1355 msgid "Could not save some books" msgstr "Kunne ikke lagre enkelte bøker" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1354 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1356 msgid "Click the show details button to see which ones." msgstr "Klikk vis detaljer knappen for å se hvilke." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1375 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1377 msgid "No books selected to generate catalog for" msgstr "Ingen bøker ble valgt for å produsere kataloger" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1392 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1394 msgid "Generating %s catalog..." msgstr "Produserer %s katalog..." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1403 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1405 msgid "Catalog generated." msgstr "Katalog produsert." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1406 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1408 msgid "Export Catalog Directory" -msgstr "" +msgstr "Eksporter katalogdirektorat" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1407 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1409 msgid "Select destination for %s.%s" -msgstr "" +msgstr "Velg plassering for %s.%s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1421 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1423 msgid "Fetching news from " msgstr "Skaffer nyheter fra " -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1435 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1437 msgid " fetched." msgstr " funnet." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1486 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1488 msgid "Cannot convert" msgstr "Kan ikke konvertere" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1515 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1517 msgid "Starting conversion of %d book(s)" msgstr "Starter konverteringen av %d boken(bøkene)" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1631 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1687 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1633 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1689 msgid "Cannot view" msgstr "Kan ikke vise" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1649 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1651 msgid "Cannot open folder" msgstr "Kan ikke åpne folder" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1671 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1673 msgid "Multiple Books Selected" msgstr "Flere bøker ble valgt" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1672 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1674 msgid "" "You are attempting to open %d books. Opening too many books at once can be " "slow and have a negative effect on the responsiveness of your computer. Once " @@ -6704,32 +6743,32 @@ msgstr "" "startet denne prosessen, kan den ikke stanses før den er fullført. Ønsker du " "å fortsette?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1688 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1690 msgid "%s has no available formats." msgstr "%s har ikke tilgjengelig formater." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1729 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1731 msgid "Cannot configure" msgstr "Kan ikke konfigurere" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1730 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1732 msgid "Cannot configure while there are running jobs." msgstr "Kan ikke konfigurere samtidig som en oppgave kjører." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1773 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1775 msgid "No detailed info available" msgstr "Ingen detaljert informasjon er tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1774 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1776 msgid "No detailed information is available for books on the device." msgstr "" "Ingen detaljert informasjon er tilgjengelig for bøker på denne enheten." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1829 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1831 msgid "Error talking to device" msgstr "Feil ved komminikasjonen med enheten" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1830 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1832 msgid "" "There was a temporary error talking to the device. Please unplug and " "reconnect the device and or reboot." @@ -6737,12 +6776,12 @@ msgstr "" "En midlertidig feil oppsto ved kommunikasjonen med enheten. Vennligst plugg " "ut og plugg inn igjen enheten, eller ta en omstart." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1853 -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1881 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1855 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1883 msgid "Conversion Error" msgstr "Feil ved konverteringen" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1854 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1856 msgid "" "

Could not convert: %s

It is a DRMed book. You must " "first remove the DRM using third party tools." @@ -6751,23 +6790,23 @@ msgstr "" "Du må først fjerne DRM beskyttelsen ved å benytte et 3.parts program med " "slike egenskaper." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1867 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1869 msgid "Recipe Disabled" msgstr "Beskrivelse Slettet" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1882 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1884 msgid "Failed" msgstr "Feilet" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1910 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1912 msgid "Invalid library location" msgstr "Ugylding biblioteklokalisering" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1911 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1913 msgid "Could not access %s. Using %s as the library." msgstr "Kunne ikke koble til %s. Ved bruk av %s som bibliotek." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1961 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1963 msgid "" "is the result of the efforts of many volunteers from all over the world. If " "you find it useful, please consider donating to support its development." @@ -6775,11 +6814,11 @@ msgstr "" "er resultatet av innsatsen til mange frivillige fra hele verden. Dersom du " "synes programmet er godt, vennligst bidra med støtte til videre utvikling." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1986 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1988 msgid "There are active jobs. Are you sure you want to quit?" msgstr "Det finnes aktive oppgaver. Er du sikker på at du ønsker å avslutte?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1989 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1991 msgid "" " is communicating with the device!
\n" " Quitting may cause corruption on the device.
\n" @@ -6789,11 +6828,11 @@ msgstr "" " Å avslutte kan føre til feil på enheten.
\n" " Er du sikker på at du ønsker å avslutte?" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1993 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:1995 msgid "WARNING: Active jobs" msgstr "ADVARSEL: Aktive oppgaver" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2045 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2047 msgid "" "will keep running in the system tray. To close it, choose Quit in the " "context menu of the system tray." @@ -6801,7 +6840,7 @@ msgstr "" "vil fortsette å kjøre i systemstatusfeltet. For å stenge programmet, velg " "Stopp innholdslisten i systemstatusfeltet." -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2064 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2066 msgid "" "Latest version: %s" @@ -6809,11 +6848,11 @@ msgstr "" "Siste versjon: %s" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2072 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2074 msgid "Update available" msgstr "Oppdatering tilgjengelig" -#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2073 +#: /home/kovid/work/calibre/src/calibre/gui2/ui.py:2075 msgid "" "%s has been updated to version %s. See the new features. Visit the download page?" @@ -6953,7 +6992,7 @@ msgstr "Standard &språk for orddeling:" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:173 msgid "&Resize images larger than the viewer window (needs restart)" -msgstr "" +msgstr "&Gjør bilder større enn visningsområdet (krever omstart)" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:174 msgid "&User stylesheet" @@ -7000,6 +7039,7 @@ msgstr "Største bredde på leserens vindu, i piksler." #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:46 msgid "Resize images larger than the viewer window to fit inside it" msgstr "" +"Tilpass bilder ved å øke størrelsen til å passe innenfor visningsområded" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:47 msgid "Hyphenate text" @@ -7678,7 +7718,7 @@ msgstr "" "Maksimum antall treff som resultat per OPDS spørring. Dette affekterer " "Stanza, WordPlayer osv integrering." -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:34 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:35 msgid "" "The fields to output when cataloging books in the database. Should be a " "comma-separated list of fields.\n" @@ -7686,8 +7726,13 @@ msgid "" "Default: '%%default'\n" "Applies to: CSV, XML output formats" msgstr "" +"Feltene for utdata ved katalogisering av bøker i databasen. Må være en " +"kommaseparert liste av felt.\n" +"Tilgjengelige felt: %s.\n" +"Standard: '%%standard'\n" +"Gjelder: CSC, XML utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:43 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:44 msgid "" "Output field to sort on.\n" "Available fields: author_sort, id, rating, size, timestamp, title.\n" @@ -7700,14 +7745,17 @@ msgstr "" "Standard: '%default'\n" "Gjelder: CSV, XML utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:238 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 msgid "" "Title of generated catalog used as title in metadata.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Tittel for generert katalog benyttet som tittel i metadata.\n" +"Standard: '%standard'\n" +"Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:244 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:259 msgid "" "Save the output from different stages of the conversion pipeline to the " "specified directory. Useful if you are unsure at which stage of the " @@ -7715,15 +7763,23 @@ msgid "" "Default: '%default'None\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Lagre utdata fra forskjellige trinn av koverteringsplanen for et spesifisert " +"direktorat. Benyttes om du er usikker på hvilket trinn av " +"konverteringsprosessen en feil skjer.\n" +"Standard: '%standard'Ingen\n" +"Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:253 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:268 msgid "" "Regex describing tags to exclude as genres.\n" "Default: '%default' excludes bracketed tags, e.g. '[]'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Regex beskriver emneord som skal utelates som sjangere.\n" +"Standard: '%standard' utelater emneord i braketter, f.eks. '[]'\n" +"Gjelder: ePub, MOBI utdata-formater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:258 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:273 msgid "" "Comma-separated list of tag words indicating book should be excluded from " "output. Case-insensitive.\n" @@ -7731,22 +7787,38 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Kommaseparert liste over emneord som indikerer bøker som utelates fra " +"utdata. Berører ikke fastlagt standard.\n" +"-utelat emneord=hopp over som vil samsvare med 'utelat denne boken' og " +"'utelat tilsvarende'.\n" +"Standard: '%standard'\n" +"Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:265 -msgid "" -"Tag indicating book has been read.\n" -"Default: '%default'\n" -"Applies to: ePub, MOBI output formats" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:270 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:280 msgid "" "Tag prefix for user notes, e.g. '*Jeff might enjoy reading this'.\n" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Merk prefiks for brukernotater, f.eks. '*Det er mulig Grethe vil like å lese " +"dette'.\n" +"Standard; '%standard'\n" +"Gjelder: ePub, MOBI utdataformater" -#: /home/kovid/work/calibre/src/calibre/library/catalog.py:276 +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:286 +msgid "" +"Sort titles with leading numbers as text, e.g.,\n" +"'2001: A Space Odyssey' sorts as \n" +"'Two Thousand One: A Space Odyssey'.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Sorter titler med ledende tall, som ved tekst f.eks..\n" +"'2001: A Space Odyssey' sorteres som \n" +"Standard: '%standard'\n" +"Gjelder: ePub, MOBI utdataformater" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:292 msgid "" "Specifies the output profile. In some cases, an output profile is required " "to optimize the catalog for the device. For example, 'kindle' or " @@ -7755,6 +7827,22 @@ msgid "" "Default: '%default'\n" "Applies to: ePub, MOBI output formats" msgstr "" +"Spesifiserer utdataprofil. I enkelte tilfeller vil en utdataprofil være " +"nødvendig for å forbedre katalogen for enheten. F.eks. 'kindle' eller " +"'kindle_dx' lager en strukturert tabell av innhold med seksjoner og " +"artikler.\n" +"Standard: '%standard'\n" +"Gjelder: ePub, MOBI utdataformater" + +#: /home/kovid/work/calibre/src/calibre/library/catalog.py:298 +msgid "" +"Tag indicating book has been read.\n" +"Default: '%default'\n" +"Applies to: ePub, MOBI output formats" +msgstr "" +"Den merkede boken er lest.\n" +"Standard; '%standard'\n" +"Gjelder: ePub, MOBI utdataformater" #: /home/kovid/work/calibre/src/calibre/library/cli.py:121 msgid "" @@ -8058,6 +8146,9 @@ msgid "" "If declared, --search is ignored.\n" "Default: all" msgstr "" +"Kommaseparert liste over database ID som skal katalogiseres.\n" +"Om deklarert, -søk er utelatt.\n" +"Standard: alle" #: /home/kovid/work/calibre/src/calibre/library/cli.py:652 msgid "" @@ -8078,7 +8169,7 @@ msgstr "Vis detaljert utdatainformasjon. Benyttes for feilsøking" msgid "Error: You must specify a catalog output file" msgstr "Feilmelding: Du må spesifisere en katalog for utdata-fil" -#: /home/kovid/work/calibre/src/calibre/library/cli.py:689 +#: /home/kovid/work/calibre/src/calibre/library/cli.py:687 msgid "" "%%prog command [options] [arguments]\n" "\n" @@ -8356,7 +8447,7 @@ msgstr "Stoppet" msgid "Finished" msgstr "Fullført" -#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:72 +#: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:75 msgid "Working..." msgstr "Arbeider …" @@ -8418,7 +8509,7 @@ msgstr "Engelsk (Singapor)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:107 msgid "English (Yemen)" -msgstr "" +msgstr "Engels (Yemen)" #: /home/kovid/work/calibre/src/calibre/utils/localization.py:108 msgid "German (AT)" @@ -8494,75 +8585,83 @@ msgstr "" msgid "Unknown News Source" msgstr "Ukjent nyhetskilde" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:533 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:550 msgid "The \"%s\" recipe needs a username and password." msgstr "\"%s\"kvitteringen trenger et brukernavn og et pasord." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:619 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:635 msgid "Download finished" msgstr "Nedlasting ferdig" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:621 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:637 msgid "Failed to download the following articles:" msgstr "Klarte ikke å laste ned følgende artikler:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:627 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:643 msgid "Failed to download parts of the following articles:" msgstr "Kunne ikke laste ned deler av den følgende artikklene" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:629 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:645 msgid " from " msgstr " fra " -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:631 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:647 msgid "\tFailed links:" msgstr "\tUgyldige lenker:" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:712 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:728 msgid "Could not fetch article. Run with -vv to see the reason" msgstr "Kunne ikke hente artikkel. Kjør med -vv for å finne årsaken" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:733 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:749 msgid "Fetching feeds..." msgstr "Henter matinger..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:738 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:754 msgid "Got feeds from index page" msgstr "Funnet matinger fra indeksside" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:744 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:760 msgid "Trying to download cover..." msgstr "Forsøker å laste ned omslag..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:802 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:762 +msgid "Generating masthead..." +msgstr "Genererer mastetopp..." + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:835 msgid "Starting download [%d thread(s)]..." msgstr "Starter nedlasting [%d thread(s)]..." -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:818 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:851 msgid "Feeds downloaded to %s" msgstr "Matinger er lastet ned til %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:828 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:861 msgid "Could not download cover: %s" msgstr "Kunne ikke laste ned omslag: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:840 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:873 msgid "Downloading cover from %s" msgstr "Laster ned omslag fra %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:983 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:908 +msgid "Masthead image downloaded" +msgstr "Mastetopp-bilde er lastet ned" + +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1124 msgid "Untitled Article" msgstr "Utittelert artikkel" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1054 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1195 msgid "Article downloaded: %s" msgstr "Artikkelen har blitt lastet ned: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1065 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1206 msgid "Article download failed: %s" msgstr "Artikkelen kunne ikke lastes ned: %s" -#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1082 +#: /home/kovid/work/calibre/src/calibre/web/feeds/news.py:1223 msgid "Fetching feed" msgstr "Henter mating" @@ -9226,6 +9325,13 @@ msgstr "Ikke last ned CSS stilsett" #~ msgid "Produce more human-readable XML output." #~ msgstr "Produser en mer bedre lesbart XML utdatafil." +#~ msgid "" +#~ "This RTF file has a feature calibre does not support. Convert it to HTML " +#~ "first and then try it." +#~ msgstr "" +#~ "Denne RTF filen har egenskaper calibre ikke støtter. Konverter det til HTML " +#~ "og forsøk på nytt." + #~ msgid "Frequently used directories" #~ msgstr "Ofte benyttede kataloger" From c69697f14385930b59be57f96be9ee07752f37c9 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sun, 7 Feb 2010 09:20:09 -0500 Subject: [PATCH 052/158] Fixes for eReader PDB output. --- src/calibre/ebooks/pdb/ereader/writer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/pdb/ereader/writer.py b/src/calibre/ebooks/pdb/ereader/writer.py index c13353745e..4fbd343a6b 100644 --- a/src/calibre/ebooks/pdb/ereader/writer.py +++ b/src/calibre/ebooks/pdb/ereader/writer.py @@ -43,8 +43,8 @@ class Writer(FormatWriter): text, text_sizes = self._text(pml) chapter_index = self._index_item(r'(?s)\\C(?P[0-4])="(?P.+?)"', pml) - chapter_index += self.index_item(r'(?s)\\X(?P[0-4])(?P.+?)\\X[0-4]', pml) - chapter_index += self.index_item(r'(?s)\\x(?P.+?)\\x', pml) + chapter_index += self._index_item(r'(?s)\\X(?P[0-4])(?P.+?)\\X[0-4]', pml) + chapter_index += self._index_item(r'(?s)\\x(?P.+?)\\x', pml) link_index = self._index_item(r'(?s)\\Q="(?P.+?)"', pml) images = self._images(oeb_book.manifest, pmlmlizer.image_hrefs) metadata = [self._metadata(metadata)] From 6248c2105f220e5447696e9742403ebeef1e491e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Feb 2010 11:10:36 -0700 Subject: [PATCH 053/158] Update bundled cssutils --- src/cssutils/__init__.py | 6 ++--- src/cssutils/css/cssvalue.py | 43 ++++++++++++++++++++++-------------- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/cssutils/__init__.py b/src/cssutils/__init__.py index b3daf82688..ff4a7b8adf 100644 --- a/src/cssutils/__init__.py +++ b/src/cssutils/__init__.py @@ -88,11 +88,11 @@ Usage may be:: __all__ = ['css', 'stylesheets', 'CSSParser', 'CSSSerializer'] __docformat__ = 'restructuredtext' __author__ = 'Christof Hoeke with contributions by Walter Doerwald' -__date__ = '$LastChangedDate:: 2009-11-26 16:31:32 -0700 #$:' +__date__ = '$LastChangedDate:: 2009-12-30 14:26:29 -0700 #$:' -VERSION = '0.9.7a1' +VERSION = '0.9.7a2' -__version__ = '%s $Id: __init__.py 1892 2009-11-26 23:31:32Z cthedot $' % VERSION +__version__ = '%s $Id: __init__.py 1902 2009-12-30 21:26:29Z cthedot $' % VERSION import codec import os.path diff --git a/src/cssutils/css/cssvalue.py b/src/cssutils/css/cssvalue.py index 6146919416..4b045e78dd 100644 --- a/src/cssutils/css/cssvalue.py +++ b/src/cssutils/css/cssvalue.py @@ -5,10 +5,10 @@ - CSSValueList implements DOM Level 2 CSS CSSValueList """ -__all__ = ['CSSValue', 'CSSPrimitiveValue', 'CSSValueList', +__all__ = ['CSSValue', 'CSSPrimitiveValue', 'CSSValueList', 'CSSVariable', 'RGBColor'] __docformat__ = 'restructuredtext' -__version__ = '$Id: cssvalue.py 1864 2009-10-11 15:11:39Z cthedot $' +__version__ = '$Id: cssvalue.py 1909 2010-01-04 19:28:52Z cthedot $' from cssutils.prodparser import * import cssutils @@ -152,21 +152,21 @@ class CSSValue(cssutils.util._NewBase): ) ) operator = Choice(PreDef.S(), - PreDef.char('comma', ',', + PreDef.char('comma', ',', toSeq=lambda t, tokens: ('operator', t[1])), - PreDef.char('slash', '/', + PreDef.char('slash', '/', toSeq=lambda t, tokens: ('operator', t[1])), optional=True) # CSSValue PRODUCTIONS valueprods = Sequence(term, # TODO: only when setting via other class - PreDef.char('END', ';', - stopAndKeep=True, + PreDef.char('END', ';', + stopAndKeep=True, optional=True), Sequence(operator, # mayEnd this Sequence if whitespace term, - PreDef.char('END', ';', - stopAndKeep=True, + PreDef.char('END', ';', + stopAndKeep=True, optional=True), minmax=lambda: (0, None))) # parse @@ -861,25 +861,34 @@ class CSSFunction(CSSPrimitiveValue): def _productiondefinition(self): """Return defintion used for parsing.""" types = self._prods # rename! - valueProd = Prod(name='PrimitiveValue', - match=lambda t, v: t in (types.DIMENSION, - types.IDENT, - types.NUMBER, - types.PERCENTAGE, - types.STRING), - toSeq=lambda t, tokens: (t[0], CSSPrimitiveValue(t[1]))) + valueOrFunc = Choice(Prod(name='PrimitiveValue', + match=lambda t, v: t in (types.DIMENSION, + types.IDENT, + types.NUMBER, + types.PERCENTAGE, + types.STRING), + toSeq=lambda t, tokens: (t[0], CSSPrimitiveValue(t[1])) + ), + # FUNC is actually not in spec but used in e.g. Prince + PreDef.function(toSeq=lambda t, + tokens: ('FUNCTION', + CSSFunction( + cssutils.helper.pushtoken(t, tokens)) + ) + ) + ) funcProds = Sequence(Prod(name='FUNC', match=lambda t, v: t == types.FUNCTION, toSeq=lambda t, tokens: (t[0], cssutils.helper.normalize(t[1]))), Choice(Sequence(PreDef.unary(), - valueProd, + valueOrFunc, # more values starting with Comma # should use store where colorType is saved to # define min and may, closure? Sequence(PreDef.comma(), PreDef.unary(), - valueProd, + valueOrFunc, minmax=lambda: (0, 3)), PreDef.funcEnd(stop=True)), PreDef.funcEnd(stop=True)) From 391a47369d538ec9ebbcd8f70dd7c51bb8316f3f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Feb 2010 11:26:00 -0700 Subject: [PATCH 054/158] Fix catalog regression --- src/calibre/ebooks/mobi/writer.py | 15 ++++++++++++--- src/calibre/library/catalog.py | 6 ++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/calibre/ebooks/mobi/writer.py b/src/calibre/ebooks/mobi/writer.py index f92e1bf2f9..c5bcee7e45 100644 --- a/src/calibre/ebooks/mobi/writer.py +++ b/src/calibre/ebooks/mobi/writer.py @@ -610,12 +610,21 @@ class MobiWriter(object): if (i>firstSequentialNode) and self._ctoc_map[i-1]['klass'] != 'section': if offset != previousOffset + previousLength : self._oeb.log.warning("*** TOC discontinuity: nodes are not sequential ***") - self._oeb.log.warning(" node %03d: '%s' offset: 0x%X length: 0x%X" % \ + self._oeb.log.info(" node %03d: '%s' offset: 0x%X length: 0x%X" % \ (i-1, entries[i-1].title, previousOffset, previousLength) ) self._oeb.log.warning(" node %03d: '%s' offset: 0x%X != 0x%06X" % \ (i, child.title, offset, previousOffset + previousLength) ) - self._oeb.log.warning("\tnode data %03d: %s" % (i-1, self._ctoc_map[i-1]) ) - self._oeb.log.warning("\tnode data %03d: %s" % (i, self._ctoc_map[i]) ) + # self._oeb.log.warning("\tnode data %03d: %s" % (i-1, self._ctoc_map[i-1]) ) + # self._oeb.log.warning("\tnode data %03d: %s" % (i, self._ctoc_map[i]) ) + # Dump the offending entry + self._oeb.log.info("...") + for z in range(i-6 if i-6 > 0 else 0, i+6 if i+6 < len(entries) else len(entries)): + if z == i: + self._oeb.log.warning("child %03d: %s" % (z, entries[z])) + else: + self._oeb.log.info("child %03d: %s" % (z, entries[z])) + self._oeb.log.info("...") + self._oeb.log.warning('_generate_indexed_navpoints: Failed to generate index') # Zero out self._HTMLRecords, return False self._HTMLRecords = [] diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 9b82c7310e..85bd21692b 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -941,7 +941,7 @@ class EPUB_MOBI(CatalogPlugin): this_title['author'] = " & ".join(record['authors']) else: this_title['author'] = 'Unknown' - this_title['author_sort'] = record['author_sort'] if len(record['author_sort']) \ + this_title['author_sort'] = record['author_sort'].capitalize() if len(record['author_sort']) \ else self.author_to_author_sort(this_title['author']) this_title['id'] = record['id'] if record['publisher']: @@ -1089,6 +1089,7 @@ class EPUB_MOBI(CatalogPlugin): for author in unique_authors: self.opts.log.info((u" %-50s %-25s %2d" % (author[0][0:45], author[1][0:20], author[2])).encode('utf-8')) + self.authors = unique_authors def generateHTMLDescriptions(self): @@ -2490,7 +2491,7 @@ class EPUB_MOBI(CatalogPlugin): tokens = tokens[-1:] + tokens[:-1] if len(tokens) > 1: tokens[0] += ',' - return ' '.join(tokens) + return ' '.join(tokens).capitalize() def convertHTMLEntities(self, s): matches = re.findall("&#\d+;", s) @@ -3100,6 +3101,7 @@ class EPUB_MOBI(CatalogPlugin): op = self.opts.output_profile if op is None: op = 'default' + self.opts.output_profile = op opts.descriptionClip = 380 if op.endswith('dx') or 'kindle' not in op else 90 opts.basename = "Catalog" opts.plugin_path = self.plugin_path From 4275fe65d30b9b24717e2b97251f9097b16f5c0b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Feb 2010 11:56:32 -0700 Subject: [PATCH 055/158] Catalog output: Make thumbnails larger for EPUB output --- src/calibre/library/catalog.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 85bd21692b..f24d04286d 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -1211,10 +1211,8 @@ class EPUB_MOBI(CatalogPlugin): imgTag['src'] = "../images/thumbnail_default.jpg" imgTag['alt'] = "cover" - # Tweak image size if we're building for Sony, not sure why this is needed - if self.opts.fmt == 'epub' and self.opts.output_profile.startswith("sony"): - imgTag['style'] = 'width: %dpx; height:%dpx;' % (self.THUMB_WIDTH * 2, self.THUMB_HEIGHT * 2) - else: + # Tweak image size if we're building EPUB, not sure why this is needed + if self.opts.fmt == 'mobi': imgTag['style'] = 'width: %dpx; height:%dpx;' % (self.THUMB_WIDTH, self.THUMB_HEIGHT) thumbnailTag = body.find(attrs={'class':'thumbnail'}) thumbnailTag.insert(0,imgTag) @@ -2928,7 +2926,8 @@ class EPUB_MOBI(CatalogPlugin): self.opts.log.error('generateThumbnail(): Cannot clone cover') raise RuntimeError # img, width, height - pw.MagickThumbnailImage(thumb, self.THUMB_WIDTH, self.THUMB_HEIGHT) + factor = 2 if self.opts.fmt == 'epub' else 1 + pw.MagickThumbnailImage(thumb, factor*self.THUMB_WIDTH, factor*self.THUMB_HEIGHT) pw.MagickWriteImage(thumb, os.path.join(image_dir, thumb_file)) pw.DestroyMagickWand(thumb) pw.DestroyMagickWand(img) From 6a24c74e50efe2a40e915c3008849b21e8f60081 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Feb 2010 12:12:23 -0700 Subject: [PATCH 056/158] Courier Press by Krittika Goyal --- resources/recipes/courrier.recipe | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 resources/recipes/courrier.recipe diff --git a/resources/recipes/courrier.recipe b/resources/recipes/courrier.recipe new file mode 100644 index 0000000000..d5559a5fca --- /dev/null +++ b/resources/recipes/courrier.recipe @@ -0,0 +1,26 @@ +from calibre.web.feeds.news import BasicNewsRecipe +from calibre.ebooks.BeautifulSoup import BeautifulSoup + +class CourierPress(BasicNewsRecipe): + title = u'Courier Press' + language = 'en' + __author__ = 'Krittika Goyal' + oldest_article = 1 #days + max_articles_per_feed = 25 + + remove_stylesheets = True + remove_tags = [ + dict(name='iframe'), + ] + + feeds = [ +('Courier Press', + 'http://www.courierpress.com/rss/headlines/news/'), +] + + def preprocess_html(self, soup): + story = soup.find(name='div', attrs={'id':'article_body'}) + soup = BeautifulSoup('t') + body = soup.find(name='body') + body.insert(0, story) + return soup From a1365513ddde400a0d88c09952d943ca52b69443 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Feb 2010 12:49:54 -0700 Subject: [PATCH 057/158] EPUB metadata: Extract the cover image from the html it is embededd in if possible, instead of rendering the html. Removes the white margins on covers and speeds up cover extraction --- src/calibre/ebooks/__init__.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/calibre/ebooks/__init__.py b/src/calibre/ebooks/__init__.py index d5651568fa..38a8ef3662 100644 --- a/src/calibre/ebooks/__init__.py +++ b/src/calibre/ebooks/__init__.py @@ -70,6 +70,19 @@ def extract_cover_from_embedded_svg(html, base, log): if href and os.access(path, os.R_OK): return open(path, 'rb').read() +def extract_calibre_cover(raw, base, log): + from calibre.ebooks.BeautifulSoup import BeautifulSoup + soup = BeautifulSoup(raw) + matches = soup.find(name=['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'span', + 'font', 'br']) + images = soup.findAll('img') + if matches is None and len(images) == 1 and \ + images[0].get('alt', '')=='cover': + img = images[0] + img = os.path.join(base, *img['src'].split('/')) + if os.path.exists(img): + return open(img, 'rb').read() + def render_html_svg_workaround(path_to_html, log, width=590, height=750): from calibre.ebooks.oeb.base import SVG_NS raw = open(path_to_html, 'rb').read() @@ -80,6 +93,11 @@ def render_html_svg_workaround(path_to_html, log, width=590, height=750): os.path.dirname(path_to_html), log) except: pass + if data is None: + try: + data = extract_calibre_cover(raw, os.path.dirname(path_to_html), log) + except: + pass if data is None: renderer = render_html(path_to_html, width, height) data = getattr(renderer, 'data', None) From d9c8bbdc392903e416047dd546bcb54a3d5dc9aa Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Feb 2010 12:52:21 -0700 Subject: [PATCH 058/158] MOBI metadata:Fix regression that broke setting of titles in some MOBI files --- src/calibre/ebooks/metadata/mobi.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/calibre/ebooks/metadata/mobi.py b/src/calibre/ebooks/metadata/mobi.py index 4fab134937..482339d73a 100644 --- a/src/calibre/ebooks/metadata/mobi.py +++ b/src/calibre/ebooks/metadata/mobi.py @@ -181,11 +181,11 @@ class MetadataUpdater(object): off = self.pdbrecords[section][0] self.patch(off, new) - def create_exth(self, exth=None): + def create_exth(self, new_title=None, exth=None): # Add an EXTH block to record 0, rewrite the stream # self.hexdump(self.record0) - # Fetch the title + # Fetch the existing title title_offset, = struct.unpack('>L', self.record0[0x54:0x58]) title_length, = struct.unpack('>L', self.record0[0x58:0x5c]) title_in_file, = struct.unpack('%ds' % (title_length), self.record0[title_offset:title_offset + title_length]) @@ -207,14 +207,21 @@ class MetadataUpdater(object): exth = ['EXTH', pack('>II', 12, 0), pad] exth = ''.join(exth) - # Update title_offset + # Update title_offset, title_len if new_title self.record0[0x54:0x58] = pack('>L', 0x10 + mobi_header_length + len(exth)) + if new_title: + self.record0[0x58:0x5c] = pack('>L', len(new_title)) # Create an updated Record0 new_record0 = StringIO() new_record0.write(self.record0[:0x10 + mobi_header_length]) new_record0.write(exth) - new_record0.write(title_in_file) + if new_title: + #new_record0.write(new_title.encode(self.codec, 'replace')) + new_title = (new_title or _('Unknown')).encode(self.codec, 'replace') + new_record0.write(new_title) + else: + new_record0.write(title_in_file) # Pad to a 4-byte boundary trail = len(new_record0.getvalue()) % 4 @@ -332,7 +339,7 @@ class MetadataUpdater(object): raise MobiError('No existing EXTH record. Cannot update metadata.') self.record0[92:96] = iana2mobi(mi.language) - self.create_exth(exth) + self.create_exth(exth=exth, new_title=mi.title) # Fetch updated timestamp, cover_record, thumbnail_record self.fetchEXTHFields() From d4afa232cd93dc33f7d24712aa4f2dc7165bef72 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 7 Feb 2010 14:08:21 -0700 Subject: [PATCH 059/158] Unbundle cssutils --- setup/installer/__init__.py | 2 +- src/cssutils/__init__.py | 416 ------- src/cssutils/_fetch.py | 44 - src/cssutils/_fetchgae.py | 68 -- src/cssutils/codec.py | 582 ---------- src/cssutils/css/__init__.py | 66 -- src/cssutils/css/csscharsetrule.py | 158 --- src/cssutils/css/csscomment.py | 84 -- src/cssutils/css/cssfontfacerule.py | 182 --- src/cssutils/css/cssimportrule.py | 366 ------ src/cssutils/css/cssmediarule.py | 381 ------- src/cssutils/css/cssnamespacerule.py | 282 ----- src/cssutils/css/csspagerule.py | 273 ----- src/cssutils/css/cssproperties.py | 122 -- src/cssutils/css/cssrule.py | 106 -- src/cssutils/css/cssrulelist.py | 47 - src/cssutils/css/cssstyledeclaration.py | 642 ----------- src/cssutils/css/cssstylerule.py | 233 ---- src/cssutils/css/cssstylesheet.py | 739 ------------ src/cssutils/css/cssunknownrule.py | 208 ---- src/cssutils/css/cssvalue.py | 1137 ------------------- src/cssutils/css/cssvariablesdeclaration.py | 292 ----- src/cssutils/css/cssvariablesrule.py | 164 --- src/cssutils/css/property.py | 477 -------- src/cssutils/css/selector.py | 798 ------------- src/cssutils/css/selectorlist.py | 234 ---- src/cssutils/css2productions.py | 131 --- src/cssutils/cssproductions.py | 121 -- src/cssutils/errorhandler.py | 126 -- src/cssutils/helper.py | 137 --- src/cssutils/parse.py | 185 --- src/cssutils/prodparser.py | 666 ----------- src/cssutils/profiles.py | 572 ---------- src/cssutils/sac.py | 428 ------- src/cssutils/script.py | 354 ------ src/cssutils/serialize.py | 1012 ----------------- src/cssutils/settings.py | 13 - src/cssutils/stylesheets/__init__.py | 11 - src/cssutils/stylesheets/medialist.py | 233 ---- src/cssutils/stylesheets/mediaquery.py | 207 ---- src/cssutils/stylesheets/stylesheet.py | 108 -- src/cssutils/stylesheets/stylesheetlist.py | 32 - src/cssutils/tokenize2.py | 197 ---- src/cssutils/util.py | 870 -------------- src/encutils/__init__.py | 655 ----------- 45 files changed, 1 insertion(+), 14160 deletions(-) delete mode 100644 src/cssutils/__init__.py delete mode 100644 src/cssutils/_fetch.py delete mode 100644 src/cssutils/_fetchgae.py delete mode 100644 src/cssutils/codec.py delete mode 100644 src/cssutils/css/__init__.py delete mode 100644 src/cssutils/css/csscharsetrule.py delete mode 100644 src/cssutils/css/csscomment.py delete mode 100644 src/cssutils/css/cssfontfacerule.py delete mode 100644 src/cssutils/css/cssimportrule.py delete mode 100644 src/cssutils/css/cssmediarule.py delete mode 100644 src/cssutils/css/cssnamespacerule.py delete mode 100644 src/cssutils/css/csspagerule.py delete mode 100644 src/cssutils/css/cssproperties.py delete mode 100644 src/cssutils/css/cssrule.py delete mode 100644 src/cssutils/css/cssrulelist.py delete mode 100644 src/cssutils/css/cssstyledeclaration.py delete mode 100644 src/cssutils/css/cssstylerule.py delete mode 100644 src/cssutils/css/cssstylesheet.py delete mode 100644 src/cssutils/css/cssunknownrule.py delete mode 100644 src/cssutils/css/cssvalue.py delete mode 100644 src/cssutils/css/cssvariablesdeclaration.py delete mode 100644 src/cssutils/css/cssvariablesrule.py delete mode 100644 src/cssutils/css/property.py delete mode 100644 src/cssutils/css/selector.py delete mode 100644 src/cssutils/css/selectorlist.py delete mode 100644 src/cssutils/css2productions.py delete mode 100644 src/cssutils/cssproductions.py delete mode 100644 src/cssutils/errorhandler.py delete mode 100644 src/cssutils/helper.py delete mode 100644 src/cssutils/parse.py delete mode 100644 src/cssutils/prodparser.py delete mode 100644 src/cssutils/profiles.py delete mode 100644 src/cssutils/sac.py delete mode 100644 src/cssutils/script.py delete mode 100644 src/cssutils/serialize.py delete mode 100644 src/cssutils/settings.py delete mode 100644 src/cssutils/stylesheets/__init__.py delete mode 100644 src/cssutils/stylesheets/medialist.py delete mode 100644 src/cssutils/stylesheets/mediaquery.py delete mode 100644 src/cssutils/stylesheets/stylesheet.py delete mode 100644 src/cssutils/stylesheets/stylesheetlist.py delete mode 100644 src/cssutils/tokenize2.py delete mode 100644 src/cssutils/util.py delete mode 100644 src/encutils/__init__.py diff --git a/setup/installer/__init__.py b/setup/installer/__init__.py index 7c6b03ec16..c2c9b15e3d 100644 --- a/setup/installer/__init__.py +++ b/setup/installer/__init__.py @@ -15,7 +15,7 @@ class Rsync(Command): description = 'Sync source tree from development machine' - SYNC_CMD = ('rsync -avz --exclude src/calibre/plugins ' + SYNC_CMD = ('rsync -avz --del --exclude src/calibre/plugins ' '--exclude src/calibre/manual --exclude src/calibre/trac ' '--exclude .bzr --exclude .build --exclude .svn --exclude build --exclude dist ' '--exclude "*.pyc" --exclude "*.pyo" --exclude "*.swp" --exclude "*.swo" ' diff --git a/src/cssutils/__init__.py b/src/cssutils/__init__.py deleted file mode 100644 index ff4a7b8adf..0000000000 --- a/src/cssutils/__init__.py +++ /dev/null @@ -1,416 +0,0 @@ -#!/usr/bin/env python -"""cssutils - CSS Cascading Style Sheets library for Python - - Copyright (C) 2004-2009 Christof Hoeke - - cssutils is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . - - -A Python package to parse and build CSS Cascading Style Sheets. DOM only, not -any rendering facilities! - -Based upon and partly implementing the following specifications : - -`CSS 2.1 `__ - General CSS rules and properties are defined here -`CSS 2.1 Errata `__ - A few errata, mainly the definition of CHARSET_SYM tokens -`CSS3 Module: Syntax `__ - Used in parts since cssutils 0.9.4. cssutils tries to use the features from - CSS 2.1 and CSS 3 with preference to CSS3 but as this is not final yet some - parts are from CSS 2.1 -`MediaQueries `__ - MediaQueries are part of ``stylesheets.MediaList`` since v0.9.4, used in - @import and @media rules. -`Namespaces `__ - Added in v0.9.1, updated to definition in CSSOM in v0.9.4, updated in 0.9.5 - for dev version -`Selectors `__ - The selector syntax defined here (and not in CSS 2.1) should be parsable - with cssutils (*should* mind though ;) ) - -`DOM Level 2 Style CSS `__ - DOM for package css -`DOM Level 2 Style Stylesheets `__ - DOM for package stylesheets -`CSSOM `__ - A few details (mainly the NamespaceRule DOM) is taken from here. Plan is - to move implementation to the stuff defined here which is newer but still - no REC so might change anytime... - - -The cssutils tokenizer is a customized implementation of `CSS3 Module: Syntax -(W3C Working Draft 13 August 2003) `__ which -itself is based on the CSS 2.1 tokenizer. It tries to be as compliant as -possible but uses some (helpful) parts of the CSS 2.1 tokenizer. - -I guess cssutils is neither CSS 2.1 nor CSS 3 compliant but tries to at least -be able to parse both grammars including some more real world cases (some CSS -hacks are actually parsed and serialized). Both official grammars are not final -nor bugfree but still feasible. cssutils aim is not to be fully compliant to -any CSS specification (the specifications seem to be in a constant flow anyway) -but cssutils *should* be able to read and write as many as possible CSS -stylesheets "in the wild" while at the same time implement the official APIs -which are well documented. Some minor extensions are provided as well. - -Please visit http://cthedot.de/cssutils/ for more details. - - -Tested with Python 2.6 on Windows 7 mainly. - - -This library may be used ``from cssutils import *`` which -import subpackages ``css`` and ``stylesheets``, CSSParser and -CSSSerializer classes only. - -Usage may be:: - - >>> from cssutils import * - >>> parser = CSSParser() - >>> sheet = parser.parseString(u'a { color: red}') - >>> print sheet.cssText - a { - color: red - } - -""" -__all__ = ['css', 'stylesheets', 'CSSParser', 'CSSSerializer'] -__docformat__ = 'restructuredtext' -__author__ = 'Christof Hoeke with contributions by Walter Doerwald' -__date__ = '$LastChangedDate:: 2009-12-30 14:26:29 -0700 #$:' - -VERSION = '0.9.7a2' - -__version__ = '%s $Id: __init__.py 1902 2009-12-30 21:26:29Z cthedot $' % VERSION - -import codec -import os.path -import urllib -import urlparse -import xml.dom - -# order of imports is important (partly circular) -from helper import Deprecated -import errorhandler -log = errorhandler.ErrorHandler() - -import css -import stylesheets -import util -from parse import CSSParser - -from serialize import CSSSerializer -ser = CSSSerializer() - -from profiles import Profiles -profile = Profiles(log=log) - -# used by Selector defining namespace prefix '*' -_ANYNS = -1 - -class DOMImplementationCSS(object): - """This interface allows the DOM user to create a CSSStyleSheet - outside the context of a document. There is no way to associate - the new CSSStyleSheet with a document in DOM Level 2. - - This class is its *own factory*, as it is given to - xml.dom.registerDOMImplementation which simply calls it and receives - an instance of this class then. - """ - _features = [ - ('css', '1.0'), - ('css', '2.0'), - ('stylesheets', '1.0'), - ('stylesheets', '2.0') - ] - - def createCSSStyleSheet(self, title, media): - """ - Creates a new CSSStyleSheet. - - title of type DOMString - The advisory title. See also the Style Sheet Interfaces - section. - media of type DOMString - The comma-separated list of media associated with the new style - sheet. See also the Style Sheet Interfaces section. - - returns - CSSStyleSheet: A new CSS style sheet. - - TODO: DOMException - SYNTAX_ERR: Raised if the specified media string value has a - syntax error and is unparsable. - """ - return css.CSSStyleSheet(title=title, media=media) - - def createDocument(self, *args): - # not needed to HTML, also not for CSS? - raise NotImplementedError - - def createDocumentType(self, *args): - # not needed to HTML, also not for CSS? - raise NotImplementedError - - def hasFeature(self, feature, version): - return (feature.lower(), unicode(version)) in self._features - -xml.dom.registerDOMImplementation('cssutils', DOMImplementationCSS) - - -def parseString(*a, **k): - return CSSParser().parseString(*a, **k) -parseString.__doc__ = CSSParser.parseString.__doc__ - -def parseFile(*a, **k): - return CSSParser().parseFile(*a, **k) -parseFile.__doc__ = CSSParser.parseFile.__doc__ - -def parseUrl(*a, **k): - return CSSParser().parseUrl(*a, **k) -parseUrl.__doc__ = CSSParser.parseUrl.__doc__ - -@Deprecated('Use cssutils.parseFile() instead.') -def parse(*a, **k): - return parseFile(*a, **k) -parse.__doc__ = CSSParser.parse.__doc__ - -def parseStyle(cssText, encoding='utf-8'): - """Parse given `cssText` which is assumed to be the content of - a HTML style attribute. - - :param cssText: - CSS string to parse - :param encoding: - It will be used to decode `cssText` if given as a (byte) - string. - :returns: - :class:`~cssutils.css.CSSStyleDeclaration` - """ - if isinstance(cssText, str): - cssText = cssText.decode(encoding) - style = css.CSSStyleDeclaration() - style.cssText = cssText - return style - -# set "ser", default serializer -def setSerializer(serializer): - """Set the global serializer used by all class in cssutils.""" - global ser - ser = serializer - -def getUrls(sheet): - """Retrieve all ``url(urlstring)`` values (in e.g. - :class:`cssutils.css.CSSImportRule` or :class:`cssutils.css.CSSValue` - objects of given `sheet`. - - :param sheet: - :class:`cssutils.css.CSSStyleSheet` object whose URLs are yielded - - This function is a generator. The generated URL values exclude ``url(`` and - ``)`` and surrounding single or double quotes. - """ - for importrule in (r for r in sheet if r.type == r.IMPORT_RULE): - yield importrule.href - - def getUrl(v): - if v.CSS_PRIMITIVE_VALUE == v.cssValueType and\ - v.CSS_URI == v.primitiveType: - return v.getStringValue() - - def styleDeclarations(base): - "recursive generator to find all CSSStyleDeclarations" - if hasattr(base, 'cssRules'): - for rule in base.cssRules: - for s in styleDeclarations(rule): - yield s - elif hasattr(base, 'style'): - yield base.style - - for style in styleDeclarations(sheet): - for p in style.getProperties(all=True): - v = p.cssValue - if v.CSS_VALUE_LIST == v.cssValueType: - for item in v: - u = getUrl(item) - if u is not None: - yield u - elif v.CSS_PRIMITIVE_VALUE == v.cssValueType: - u = getUrl(v) - if u is not None: - yield u - -def replaceUrls(sheet, replacer, ignoreImportRules=False): - """Replace all URLs in :class:`cssutils.css.CSSImportRule` or - :class:`cssutils.css.CSSValue` objects of given `sheet`. - - :param sheet: - :class:`cssutils.css.CSSStyleSheet` which is changed - :param replacer: - a function which is called with a single argument `urlstring` which - is the current value of each url() excluding ``url(`` and ``)`` and - surrounding single or double quotes. - :param ignoreImportRules: - if ``True`` does not call `replacer` with URLs from @import rules. - """ - if not ignoreImportRules: - for importrule in (r for r in sheet if r.type == r.IMPORT_RULE): - importrule.href = replacer(importrule.href) - - def setProperty(v): - if v.CSS_PRIMITIVE_VALUE == v.cssValueType and\ - v.CSS_URI == v.primitiveType: - v.setStringValue(v.CSS_URI, - replacer(v.getStringValue())) - - def styleDeclarations(base): - "recursive generator to find all CSSStyleDeclarations" - if hasattr(base, 'cssRules'): - for rule in base.cssRules: - for s in styleDeclarations(rule): - yield s - elif hasattr(base, 'style'): - yield base.style - - for style in styleDeclarations(sheet): - for p in style.getProperties(all=True): - v = p.cssValue - if v.CSS_VALUE_LIST == v.cssValueType: - for item in v: - setProperty(item) - elif v.CSS_PRIMITIVE_VALUE == v.cssValueType: - setProperty(v) - -def resolveImports(sheet, target=None): - """Recurcively combine all rules in given `sheet` into a `target` sheet. - @import rules which use media information are tried to be wrapped into - @media rules so keeping the media information. This may not work in - all instances (if e.g. an @import rule itself contains an @import rule - with different media infos or if it contains rules which may not be - used inside an @media block like @namespace rules.). In these cases - the @import rule is kept as in the original sheet and a WARNING is issued. - - :param sheet: - in this given :class:`cssutils.css.CSSStyleSheet` all import rules are - resolved and added to a resulting *flat* sheet. - :param target: - A :class:`cssutils.css.CSSStyleSheet` object which will be the - resulting *flat* sheet if given - :returns: given `target` or a new :class:`cssutils.css.CSSStyleSheet` - object - """ - if not target: - target = css.CSSStyleSheet(href=sheet.href, - media=sheet.media, - title=sheet.title) - - def getReplacer(targetbase): - "Return a replacer which uses base to return adjusted URLs" - basesch, baseloc, basepath, basequery, basefrag = urlparse.urlsplit(targetbase) - basepath, basepathfilename = os.path.split(basepath) - - def replacer(url): - scheme, location, path, query, fragment = urlparse.urlsplit(url) - if not scheme and not location and not path.startswith(u'/'): - # relative - path, filename = os.path.split(path) - combined = os.path.normpath(os.path.join(basepath, path, filename)) - return urllib.pathname2url(combined) - else: - # keep anything absolute - return url - - return replacer - - for rule in sheet.cssRules: - if rule.type == rule.CHARSET_RULE: - pass - elif rule.type == rule.IMPORT_RULE: - log.info(u'Processing @import %r' % rule.href, neverraise=True) - - if rule.styleSheet: - # add all rules of @import to current sheet - target.add(css.CSSComment(cssText=u'/* START @import "%s" */' - % rule.href)) - - try: - # nested imports - importedSheet = resolveImports(rule.styleSheet) - except xml.dom.HierarchyRequestErr, e: - log.warn(u'@import: Cannot resolve target, keeping rule: %s' - % e, neverraise=True) - target.add(rule) - else: - # adjust relative URI references - log.info(u'@import: Adjusting paths for %r' % rule.href, - neverraise=True) - replaceUrls(importedSheet, - getReplacer(rule.href), - ignoreImportRules=True) - - # might have to wrap rules in @media if media given - if rule.media.mediaText == u'all': - mediaproxy = None - else: - keepimport = False - for r in importedSheet: - # check if rules present which may not be - # combined with media - if r.type not in (r.COMMENT, - r.STYLE_RULE, - r.IMPORT_RULE): - keepimport = True - break - if keepimport: - log.warn(u'Cannot combine imported sheet with' - u' given media as other rules then' - u' comments or stylerules found %r,' - u' keeping %r' % (r, - rule.cssText), - neverraise=True) - target.add(rule) - continue - - # wrap in @media if media is not `all` - log.info(u'@import: Wrapping some rules in @media ' - u' to keep media: %s' - % rule.media.mediaText, neverraise=True) - mediaproxy = css.CSSMediaRule(rule.media.mediaText) - - for r in importedSheet: - if mediaproxy: - mediaproxy.add(r) - else: - # add to top sheet directly but are difficult anyway - target.add(r) - - if mediaproxy: - target.add(mediaproxy) - - else: - # keep @import as it is - log.error(u'Cannot get referenced stylesheet %r, keeping rule' - % rule.href, neverraise=True) - target.add(rule) - - - - else: - target.add(rule) - - return target - - -if __name__ == '__main__': - print __doc__ diff --git a/src/cssutils/_fetch.py b/src/cssutils/_fetch.py deleted file mode 100644 index af18bc5640..0000000000 --- a/src/cssutils/_fetch.py +++ /dev/null @@ -1,44 +0,0 @@ -"""Default URL reading functions""" -__all__ = ['_defaultFetcher'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: tokenize2.py 1547 2008-12-10 20:42:26Z cthedot $' - -from cssutils import VERSION -import encutils -import errorhandler -import urllib2 -import util - -log = errorhandler.ErrorHandler() - -def _defaultFetcher(url): - """Retrieve data from ``url``. cssutils default implementation of fetch - URL function. - - Returns ``(encoding, string)`` or ``None`` - """ - request = urllib2.Request(url) - request.add_header('User-agent', - 'cssutils %s (http://www.cthedot.de/cssutils/)' % VERSION) - try: - res = urllib2.urlopen(request) - except OSError, e: - # e.g if file URL and not found - log.warn(e, error=OSError) - except (OSError, ValueError), e: - # invalid url, e.g. "1" - log.warn(u'ValueError, %s' % e.args[0], error=ValueError) - except urllib2.HTTPError, e: - # http error, e.g. 404, e can be raised - log.warn(u'HTTPError opening url=%r: %s %s' % - (url, e.code, e.msg), error=e) - except urllib2.URLError, e: - # URLError like mailto: or other IO errors, e can be raised - log.warn(u'URLError, %s' % e.reason, error=e) - else: - if res: - mimeType, encoding = encutils.getHTTPInfo(res) - if mimeType != u'text/css': - log.error(u'Expected "text/css" mime type for url=%r but found: %r' % - (url, mimeType), error=ValueError) - return encoding, res.read() diff --git a/src/cssutils/_fetchgae.py b/src/cssutils/_fetchgae.py deleted file mode 100644 index 7760ac6c6b..0000000000 --- a/src/cssutils/_fetchgae.py +++ /dev/null @@ -1,68 +0,0 @@ -"""GAE specific URL reading functions""" -__all__ = ['_defaultFetcher'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: tokenize2.py 1547 2008-12-10 20:42:26Z cthedot $' - -# raises ImportError of not on GAE -from google.appengine.api import urlfetch -import cgi -import errorhandler -import util - -log = errorhandler.ErrorHandler() - -def _defaultFetcher(url): - """ - uses GoogleAppEngine (GAE) - fetch(url, payload=None, method=GET, headers={}, allow_truncated=False) - - Response - content - The body content of the response. - content_was_truncated - True if the allow_truncated parameter to fetch() was True and - the response exceeded the maximum response size. In this case, - the content attribute contains the truncated response. - status_code - The HTTP status code. - headers - The HTTP response headers, as a mapping of names to values. - - Exceptions - exception InvalidURLError() - The URL of the request was not a valid URL, or it used an - unsupported method. Only http and https URLs are supported. - exception DownloadError() - There was an error retrieving the data. - - This exception is not raised if the server returns an HTTP - error code: In that case, the response data comes back intact, - including the error code. - - exception ResponseTooLargeError() - The response data exceeded the maximum allowed size, and the - allow_truncated parameter passed to fetch() was False. - """ - #from google.appengine.api import urlfetch - try: - r = urlfetch.fetch(url, method=urlfetch.GET) - except urlfetch.Error, e: - log.warn(u'Error opening url=%r: %s' % (url, e), - error=IOError) - else: - if r.status_code == 200: - # find mimetype and encoding - mimetype = 'application/octet-stream' - try: - mimetype, params = cgi.parse_header(r.headers['content-type']) - encoding = params['charset'] - except KeyError: - encoding = None - if mimetype != u'text/css': - log.error(u'Expected "text/css" mime type for url %r but found: %r' % - (url, mimetype), error=ValueError) - return encoding, r.content - else: - # TODO: 301 etc - log.warn(u'Error opening url=%r: HTTP status %s' % - (url, r.status_code), error=IOError) diff --git a/src/cssutils/codec.py b/src/cssutils/codec.py deleted file mode 100644 index c6e9823ef6..0000000000 --- a/src/cssutils/codec.py +++ /dev/null @@ -1,582 +0,0 @@ -#!/usr/bin/env python -"""Python codec for CSS.""" -__docformat__ = 'restructuredtext' -__author__ = 'Walter Doerwald' -__version__ = '$Id: util.py 1114 2008-03-05 13:22:59Z cthedot $' - -import codecs -import marshal - -# We're using bits to store all possible candidate encodings (or variants, i.e. -# we have two bits for the variants of UTF-16 and two for the -# variants of UTF-32). -# -# Prefixes for various CSS encodings -# UTF-8-SIG xEF xBB xBF -# UTF-16 (LE) xFF xFE ~x00|~x00 -# UTF-16 (BE) xFE xFF -# UTF-16-LE @ x00 @ x00 -# UTF-16-BE x00 @ -# UTF-32 (LE) xFF xFE x00 x00 -# UTF-32 (BE) x00 x00 xFE xFF -# UTF-32-LE @ x00 x00 x00 -# UTF-32-BE x00 x00 x00 @ -# CHARSET @ c h a ... - - -def detectencoding_str(input, final=False): - """ - Detect the encoding of the byte string ``input``, which contains the - beginning of a CSS file. This function returns the detected encoding (or - ``None`` if it hasn't got enough data), and a flag that indicates whether - that encoding has been detected explicitely or implicitely. To detect the - encoding the first few bytes are used (or if ``input`` is ASCII compatible - and starts with a charset rule the encoding name from the rule). "Explicit" - detection means that the bytes start with a BOM or a charset rule. - - If the encoding can't be detected yet, ``None`` is returned as the encoding. - ``final`` specifies whether more data will be available in later calls or - not. If ``final`` is true, ``detectencoding_str()`` will never return - ``None`` as the encoding. - """ - - # A bit for every candidate - CANDIDATE_UTF_8_SIG = 1 - CANDIDATE_UTF_16_AS_LE = 2 - CANDIDATE_UTF_16_AS_BE = 4 - CANDIDATE_UTF_16_LE = 8 - CANDIDATE_UTF_16_BE = 16 - CANDIDATE_UTF_32_AS_LE = 32 - CANDIDATE_UTF_32_AS_BE = 64 - CANDIDATE_UTF_32_LE = 128 - CANDIDATE_UTF_32_BE = 256 - CANDIDATE_CHARSET = 512 - - candidates = 1023 # all candidates - - li = len(input) - if li>=1: - # Check first byte - c = input[0] - if c != "\xef": - candidates &= ~CANDIDATE_UTF_8_SIG - if c != "\xff": - candidates &= ~(CANDIDATE_UTF_32_AS_LE|CANDIDATE_UTF_16_AS_LE) - if c != "\xfe": - candidates &= ~CANDIDATE_UTF_16_AS_BE - if c != "@": - candidates &= ~(CANDIDATE_UTF_32_LE|CANDIDATE_UTF_16_LE|CANDIDATE_CHARSET) - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_32_AS_BE|CANDIDATE_UTF_32_BE|CANDIDATE_UTF_16_BE) - if li>=2: - # Check second byte - c = input[1] - if c != "\xbb": - candidates &= ~CANDIDATE_UTF_8_SIG - if c != "\xfe": - candidates &= ~(CANDIDATE_UTF_16_AS_LE|CANDIDATE_UTF_32_AS_LE) - if c != "\xff": - candidates &= ~CANDIDATE_UTF_16_AS_BE - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_16_LE|CANDIDATE_UTF_32_AS_BE|CANDIDATE_UTF_32_LE|CANDIDATE_UTF_32_BE) - if c != "@": - candidates &= ~CANDIDATE_UTF_16_BE - if c != "c": - candidates &= ~CANDIDATE_CHARSET - if li>=3: - # Check third byte - c = input[2] - if c != "\xbf": - candidates &= ~CANDIDATE_UTF_8_SIG - if c != "c": - candidates &= ~CANDIDATE_UTF_16_LE - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_32_AS_LE|CANDIDATE_UTF_32_LE|CANDIDATE_UTF_32_BE) - if c != "\xfe": - candidates &= ~CANDIDATE_UTF_32_AS_BE - if c != "h": - candidates &= ~CANDIDATE_CHARSET - if li>=4: - # Check fourth byte - c = input[3] - if input[2:4] == "\x00\x00": - candidates &= ~CANDIDATE_UTF_16_AS_LE - if c != "\x00": - candidates &= ~(CANDIDATE_UTF_16_LE|CANDIDATE_UTF_32_AS_LE|CANDIDATE_UTF_32_LE) - if c != "\xff": - candidates &= ~CANDIDATE_UTF_32_AS_BE - if c != "@": - candidates &= ~CANDIDATE_UTF_32_BE - if c != "a": - candidates &= ~CANDIDATE_CHARSET - if candidates == 0: - return ("utf-8", False) - if not (candidates & (candidates-1)): # only one candidate remaining - if candidates == CANDIDATE_UTF_8_SIG and li >= 3: - return ("utf-8-sig", True) - elif candidates == CANDIDATE_UTF_16_AS_LE and li >= 2: - return ("utf-16", True) - elif candidates == CANDIDATE_UTF_16_AS_BE and li >= 2: - return ("utf-16", True) - elif candidates == CANDIDATE_UTF_16_LE and li >= 4: - return ("utf-16-le", False) - elif candidates == CANDIDATE_UTF_16_BE and li >= 2: - return ("utf-16-be", False) - elif candidates == CANDIDATE_UTF_32_AS_LE and li >= 4: - return ("utf-32", True) - elif candidates == CANDIDATE_UTF_32_AS_BE and li >= 4: - return ("utf-32", True) - elif candidates == CANDIDATE_UTF_32_LE and li >= 4: - return ("utf-32-le", False) - elif candidates == CANDIDATE_UTF_32_BE and li >= 4: - return ("utf-32-be", False) - elif candidates == CANDIDATE_CHARSET and li >= 4: - prefix = '@charset "' - if input[:len(prefix)] == prefix: - pos = input.find('"', len(prefix)) - if pos >= 0: - return (input[len(prefix):pos], True) - # if this is the last call, and we haven't determined an encoding yet, - # we default to UTF-8 - if final: - return ("utf-8", False) - return (None, False) # dont' know yet - - -def detectencoding_unicode(input, final=False): - """ - Detect the encoding of the unicode string ``input``, which contains the - beginning of a CSS file. The encoding is detected from the charset rule - at the beginning of ``input``. If there is no charset rule, ``"utf-8"`` - will be returned. - - If the encoding can't be detected yet, ``None`` is returned. ``final`` - specifies whether more data will be available in later calls or not. If - ``final`` is true, ``detectencoding_unicode()`` will never return ``None``. - """ - prefix = u'@charset "' - if input.startswith(prefix): - pos = input.find(u'"', len(prefix)) - if pos >= 0: - return (input[len(prefix):pos], True) - elif final or not prefix.startswith(input): - # if this is the last call, and we haven't determined an encoding yet, - # (or the string definitely doesn't start with prefix) we default to UTF-8 - return ("utf-8", False) - return (None, False) # don't know yet - - -def _fixencoding(input, encoding, final=False): - """ - Replace the name of the encoding in the charset rule at the beginning of - ``input`` with ``encoding``. If ``input`` doesn't starts with a charset - rule, ``input`` will be returned unmodified. - - If the encoding can't be found yet, ``None`` is returned. ``final`` - specifies whether more data will be available in later calls or not. - If ``final`` is true, ``_fixencoding()`` will never return ``None``. - """ - prefix = u'@charset "' - if len(input) > len(prefix): - if input.startswith(prefix): - pos = input.find(u'"', len(prefix)) - if pos >= 0: - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = u"utf-8" - return prefix + encoding + input[pos:] - # we haven't seen the end of the encoding name yet => fall through - else: - return input # doesn't start with prefix, so nothing to fix - elif not prefix.startswith(input) or final: - # can't turn out to be a @charset rule later (or there is no "later") - return input - if final: - return input - return None # don't know yet - - -def decode(input, errors="strict", encoding=None, force=True): - if encoding is None or not force: - (_encoding, explicit) = detectencoding_str(input, True) - if _encoding == "css": - raise ValueError("css not allowed as encoding name") - if (explicit and not force) or encoding is None: # Take the encoding from the input - encoding = _encoding - (input, consumed) = codecs.getdecoder(encoding)(input, errors) - return (_fixencoding(input, unicode(encoding), True), consumed) - - -def encode(input, errors="strict", encoding=None): - consumed = len(input) - if encoding is None: - encoding = detectencoding_unicode(input, True)[0] - if encoding.replace("_", "-").lower() == "utf-8-sig": - input = _fixencoding(input, u"utf-8", True) - else: - input = _fixencoding(input, unicode(encoding), True) - if encoding == "css": - raise ValueError("css not allowed as encoding name") - encoder = codecs.getencoder(encoding) - return (encoder(input, errors)[0], consumed) - - -def _bytes2int(bytes): - # Helper: convert an 8 bit string into an ``int``. - i = 0 - for byte in bytes: - i = (i<<8) + ord(byte) - return i - - -def _int2bytes(i): - # Helper: convert an ``int`` into an 8-bit string. - v = [] - while i: - v.insert(0, chr(i&0xff)) - i >>= 8 - return "".join(v) - - -if hasattr(codecs, "IncrementalDecoder"): - class IncrementalDecoder(codecs.IncrementalDecoder): - def __init__(self, errors="strict", encoding=None, force=True): - self.decoder = None - self.encoding = encoding - self.force = force - codecs.IncrementalDecoder.__init__(self, errors) - # Store ``errors`` somewhere else, - # because we have to hide it in a property - self._errors = errors - self.buffer = "" - self.headerfixed = False - - def iterdecode(self, input): - for part in input: - result = self.decode(part, False) - if result: - yield result - result = self.decode("", True) - if result: - yield result - - def decode(self, input, final=False): - # We're doing basically the same as a ``BufferedIncrementalDecoder``, - # but since the buffer is only relevant until the encoding has been - # detected (in which case the buffer of the underlying codec might - # kick in), we're implementing buffering ourselves to avoid some - # overhead. - if self.decoder is None: - input = self.buffer + input - # Do we have to detect the encoding from the input? - if self.encoding is None or not self.force: - (encoding, explicit) = detectencoding_str(input, final) - if encoding is None: # no encoding determined yet - self.buffer = input # retry the complete input on the next call - return u"" # no encoding determined yet, so no output - elif encoding == "css": - raise ValueError("css not allowed as encoding name") - if (explicit and not self.force) or self.encoding is None: # Take the encoding from the input - self.encoding = encoding - self.buffer = "" # drop buffer, as the decoder might keep its own - decoder = codecs.getincrementaldecoder(self.encoding) - self.decoder = decoder(self._errors) - if self.headerfixed: - return self.decoder.decode(input, final) - # If we haven't fixed the header yet, - # the content of ``self.buffer`` is a ``unicode`` object - output = self.buffer + self.decoder.decode(input, final) - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newoutput = _fixencoding(output, unicode(encoding), final) - if newoutput is None: - # retry fixing the @charset rule (but keep the decoded stuff) - self.buffer = output - return u"" - self.headerfixed = True - return newoutput - - def reset(self): - codecs.IncrementalDecoder.reset(self) - self.decoder = None - self.buffer = "" - self.headerfixed = False - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors`` must be done on the real decoder too - if self.decoder is not None: - self.decoder.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - def getstate(self): - if self.decoder is not None: - state = (self.encoding, self.buffer, self.headerfixed, True, self.decoder.getstate()) - else: - state = (self.encoding, self.buffer, self.headerfixed, False, None) - return ("", _bytes2int(marshal.dumps(state))) - - def setstate(self, state): - state = _int2bytes(marshal.loads(state[1])) # ignore buffered input - self.encoding = state[0] - self.buffer = state[1] - self.headerfixed = state[2] - if state[3] is not None: - self.decoder = codecs.getincrementaldecoder(self.encoding)(self._errors) - self.decoder.setstate(state[4]) - else: - self.decoder = None - - -if hasattr(codecs, "IncrementalEncoder"): - class IncrementalEncoder(codecs.IncrementalEncoder): - def __init__(self, errors="strict", encoding=None): - self.encoder = None - self.encoding = encoding - codecs.IncrementalEncoder.__init__(self, errors) - # Store ``errors`` somewhere else, - # because we have to hide it in a property - self._errors = errors - self.buffer = u"" - - def iterencode(self, input): - for part in input: - result = self.encode(part, False) - if result: - yield result - result = self.encode(u"", True) - if result: - yield result - - def encode(self, input, final=False): - if self.encoder is None: - input = self.buffer + input - if self.encoding is not None: - # Replace encoding in the @charset rule with the specified one - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newinput = _fixencoding(input, unicode(encoding), final) - if newinput is None: # @charset rule incomplete => Retry next time - self.buffer = input - return "" - input = newinput - else: - # Use encoding from the @charset declaration - self.encoding = detectencoding_unicode(input, final)[0] - if self.encoding is not None: - if self.encoding == "css": - raise ValueError("css not allowed as encoding name") - info = codecs.lookup(self.encoding) - encoding = self.encoding - if self.encoding.replace("_", "-").lower() == "utf-8-sig": - input = _fixencoding(input, u"utf-8", True) - self.encoder = info.incrementalencoder(self._errors) - self.buffer = u"" - else: - self.buffer = input - return "" - return self.encoder.encode(input, final) - - def reset(self): - codecs.IncrementalEncoder.reset(self) - self.encoder = None - self.buffer = u"" - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors ``must be done on the real encoder too - if self.encoder is not None: - self.encoder.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - def getstate(self): - if self.encoder is not None: - state = (self.encoding, self.buffer, True, self.encoder.getstate()) - else: - state = (self.encoding, self.buffer, False, None) - return _bytes2int(marshal.dumps(state)) - - def setstate(self, state): - state = _int2bytes(marshal.loads(state)) - self.encoding = state[0] - self.buffer = state[1] - if state[2] is not None: - self.encoder = codecs.getincrementalencoder(self.encoding)(self._errors) - self.encoder.setstate(state[4]) - else: - self.encoder = None - - -class StreamWriter(codecs.StreamWriter): - def __init__(self, stream, errors="strict", encoding=None, header=False): - codecs.StreamWriter.__init__(self, stream, errors) - self.streamwriter = None - self.encoding = encoding - self._errors = errors - self.buffer = u"" - - def encode(self, input, errors='strict'): - li = len(input) - if self.streamwriter is None: - input = self.buffer + input - li = len(input) - if self.encoding is not None: - # Replace encoding in the @charset rule with the specified one - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newinput = _fixencoding(input, unicode(encoding), False) - if newinput is None: # @charset rule incomplete => Retry next time - self.buffer = input - return ("", 0) - input = newinput - else: - # Use encoding from the @charset declaration - self.encoding = detectencoding_unicode(input, False)[0] - if self.encoding is not None: - if self.encoding == "css": - raise ValueError("css not allowed as encoding name") - self.streamwriter = codecs.getwriter(self.encoding)(self.stream, self._errors) - encoding = self.encoding - if self.encoding.replace("_", "-").lower() == "utf-8-sig": - input = _fixencoding(input, u"utf-8", True) - self.buffer = u"" - else: - self.buffer = input - return ("", 0) - return (self.streamwriter.encode(input, errors)[0], li) - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors`` must be done on the streamwriter too - if self.streamwriter is not None: - self.streamwriter.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - -class StreamReader(codecs.StreamReader): - def __init__(self, stream, errors="strict", encoding=None, force=True): - codecs.StreamReader.__init__(self, stream, errors) - self.streamreader = None - self.encoding = encoding - self.force = force - self._errors = errors - - def decode(self, input, errors='strict'): - if self.streamreader is None: - if self.encoding is None or not self.force: - (encoding, explicit) = detectencoding_str(input, False) - if encoding is None: # no encoding determined yet - return (u"", 0) # no encoding determined yet, so no output - elif encoding == "css": - raise ValueError("css not allowed as encoding name") - if (explicit and not self.force) or self.encoding is None: # Take the encoding from the input - self.encoding = encoding - streamreader = codecs.getreader(self.encoding) - streamreader = streamreader(self.stream, self._errors) - (output, consumed) = streamreader.decode(input, errors) - encoding = self.encoding - if encoding.replace("_", "-").lower() == "utf-8-sig": - encoding = "utf-8" - newoutput = _fixencoding(output, unicode(encoding), False) - if newoutput is not None: - self.streamreader = streamreader - return (newoutput, consumed) - return (u"", 0) # we will create a new streamreader on the next call - return self.streamreader.decode(input, errors) - - def _geterrors(self): - return self._errors - - def _seterrors(self, errors): - # Setting ``errors`` must be done on the streamreader too - if self.streamreader is not None: - self.streamreader.errors = errors - self._errors = errors - errors = property(_geterrors, _seterrors) - - -if hasattr(codecs, "CodecInfo"): - # We're running on Python 2.5 or better - def search_function(name): - if name == "css": - return codecs.CodecInfo( - name="css", - encode=encode, - decode=decode, - incrementalencoder=IncrementalEncoder, - incrementaldecoder=IncrementalDecoder, - streamwriter=StreamWriter, - streamreader=StreamReader, - ) -else: - # If we're running on Python 2.4, define the utf-8-sig codec here - def utf8sig_encode(input, errors='strict'): - return (codecs.BOM_UTF8 + codecs.utf_8_encode(input, errors)[0], len(input)) - - def utf8sig_decode(input, errors='strict'): - prefix = 0 - if input[:3] == codecs.BOM_UTF8: - input = input[3:] - prefix = 3 - (output, consumed) = codecs.utf_8_decode(input, errors, True) - return (output, consumed+prefix) - - class UTF8SigStreamWriter(codecs.StreamWriter): - def reset(self): - codecs.StreamWriter.reset(self) - try: - del self.encode - except AttributeError: - pass - - def encode(self, input, errors='strict'): - self.encode = codecs.utf_8_encode - return utf8sig_encode(input, errors) - - class UTF8SigStreamReader(codecs.StreamReader): - def reset(self): - codecs.StreamReader.reset(self) - try: - del self.decode - except AttributeError: - pass - - def decode(self, input, errors='strict'): - if len(input) < 3 and codecs.BOM_UTF8.startswith(input): - # not enough data to decide if this is a BOM - # => try again on the next call - return (u"", 0) - self.decode = codecs.utf_8_decode - return utf8sig_decode(input, errors) - - def search_function(name): - import encodings - name = encodings.normalize_encoding(name) - if name == "css": - return (encode, decode, StreamReader, StreamWriter) - elif name == "utf_8_sig": - return (utf8sig_encode, utf8sig_decode, UTF8SigStreamReader, UTF8SigStreamWriter) - - -codecs.register(search_function) - - -# Error handler for CSS escaping - -def cssescape(exc): - if not isinstance(exc, UnicodeEncodeError): - raise TypeError("don't know how to handle %r" % exc) - return (u"".join(u"\\%06x" % ord(c) for c in exc.object[exc.start:exc.end]), exc.end) - -codecs.register_error("cssescape", cssescape) diff --git a/src/cssutils/css/__init__.py b/src/cssutils/css/__init__.py deleted file mode 100644 index b7ee30fa23..0000000000 --- a/src/cssutils/css/__init__.py +++ /dev/null @@ -1,66 +0,0 @@ -"""Implements Document Object Model Level 2 CSS -http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927/css.html - -currently implemented - - CSSStyleSheet - - CSSRuleList - - CSSRule - - CSSComment (cssutils addon) - - CSSCharsetRule - - CSSFontFaceRule - - CSSImportRule - - CSSMediaRule - - CSSNamespaceRule (WD) - - CSSPageRule - - CSSStyleRule - - CSSUnkownRule - - Selector and SelectorList - - CSSStyleDeclaration - - CSS2Properties - - CSSValue - - CSSPrimitiveValue - - CSSValueList - -todo - - RGBColor, Rect, Counter -""" -__all__ = [ - 'CSSStyleSheet', - 'CSSRuleList', - 'CSSRule', - 'CSSComment', - 'CSSCharsetRule', - 'CSSFontFaceRule' - 'CSSImportRule', - 'CSSMediaRule', - 'CSSNamespaceRule', - 'CSSPageRule', - 'CSSStyleRule', - 'CSSUnknownRule', - 'CSSVariablesRule' - 'Selector', 'SelectorList', - 'CSSStyleDeclaration', 'Property', - 'CSSValue', 'CSSPrimitiveValue', 'CSSValueList' - ] -__docformat__ = 'restructuredtext' -__version__ = '$Id: __init__.py 1859 2009-10-10 21:50:27Z cthedot $' - -from cssstylesheet import * -from cssrulelist import * -from cssrule import * -from csscomment import * -from csscharsetrule import * -from cssfontfacerule import * -from cssimportrule import * -from cssmediarule import * -from cssnamespacerule import * -from csspagerule import * -from cssstylerule import * -from cssvariablesrule import * -from cssunknownrule import * -from selector import * -from selectorlist import * -from cssstyledeclaration import * -from cssvariablesdeclaration import * -from property import * -from cssvalue import * diff --git a/src/cssutils/css/csscharsetrule.py b/src/cssutils/css/csscharsetrule.py deleted file mode 100644 index 2ef2f23e04..0000000000 --- a/src/cssutils/css/csscharsetrule.py +++ /dev/null @@ -1,158 +0,0 @@ -"""CSSCharsetRule implements DOM Level 2 CSS CSSCharsetRule.""" -__all__ = ['CSSCharsetRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: csscharsetrule.py 1605 2009-01-03 18:27:32Z cthedot $' - -import codecs -import cssrule -import cssutils -import xml.dom - -class CSSCharsetRule(cssrule.CSSRule): - """ - The CSSCharsetRule interface represents an @charset rule in a CSS style - sheet. The value of the encoding attribute does not affect the encoding - of text data in the DOM objects; this encoding is always UTF-16 - (also in Python?). After a stylesheet is loaded, the value of the - encoding attribute is the value found in the @charset rule. If there - was no @charset in the original document, then no CSSCharsetRule is - created. The value of the encoding attribute may also be used as a hint - for the encoding used on serialization of the style sheet. - - The value of the @charset rule (and therefore of the CSSCharsetRule) - may not correspond to the encoding the document actually came in; - character encoding information e.g. in an HTTP header, has priority - (see CSS document representation) but this is not reflected in the - CSSCharsetRule. - - This rule is not really needed anymore as setting - :attr:`CSSStyleSheet.encoding` is much easier. - - Format:: - - charsetrule: - CHARSET_SYM S* STRING S* ';' - - BUT: Only valid format is (single space, double quotes!):: - - @charset "ENCODING"; - """ - def __init__(self, encoding=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - :param encoding: - a valid character encoding - :param readonly: - defaults to False, not used yet - """ - super(CSSCharsetRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = '@charset' - self._encoding = None - if encoding: - self.encoding = encoding - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(encoding=%r)" % ( - self.__class__.__name__, self.encoding) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.encoding, id(self)) - - def _getCssText(self): - """The parsable textual representation.""" - return cssutils.ser.do_CSSCharsetRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: - A parsable DOMString. - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSCharsetRule, self)._setCssText(cssText) - - wellformed = True - tokenizer = self._tokenize2(cssText) - - if self._type(self._nexttoken(tokenizer)) != self._prods.CHARSET_SYM: - wellformed = False - self._log.error(u'CSSCharsetRule must start with "@charset "', - error=xml.dom.InvalidModificationErr) - - encodingtoken = self._nexttoken(tokenizer) - encodingtype = self._type(encodingtoken) - encoding = self._stringtokenvalue(encodingtoken) - if self._prods.STRING != encodingtype or not encoding: - wellformed = False - self._log.error(u'CSSCharsetRule: no encoding found; %r.' % - self._valuestr(cssText)) - - semicolon = self._tokenvalue(self._nexttoken(tokenizer)) - EOFtype = self._type(self._nexttoken(tokenizer)) - if u';' != semicolon or EOFtype not in ('EOF', None): - wellformed = False - self._log.error(u'CSSCharsetRule: Syntax Error: %r.' % - self._valuestr(cssText)) - - if wellformed: - self.encoding = encoding - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation.") - - def _setEncoding(self, encoding): - """ - :param encoding: - a valid encoding to be used. Currently only valid Python encodings - are allowed. - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this encoding rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified encoding value has a syntax error and - is unparsable. - """ - self._checkReadonly() - tokenizer = self._tokenize2(encoding) - encodingtoken = self._nexttoken(tokenizer) - unexpected = self._nexttoken(tokenizer) - - valid = True - if not encodingtoken or unexpected or\ - self._prods.IDENT != self._type(encodingtoken): - valid = False - self._log.error( - 'CSSCharsetRule: Syntax Error in encoding value %r.' % - encoding) - else: - try: - codecs.lookup(encoding) - except LookupError: - valid = False - self._log.error('CSSCharsetRule: Unknown (Python) encoding %r.' % - encoding) - else: - self._encoding = encoding.lower() - - encoding = property(lambda self: self._encoding, _setEncoding, - doc="(DOM)The encoding information used in this @charset rule.") - - type = property(lambda self: self.CHARSET_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: bool(self.encoding)) diff --git a/src/cssutils/css/csscomment.py b/src/cssutils/css/csscomment.py deleted file mode 100644 index 179027f437..0000000000 --- a/src/cssutils/css/csscomment.py +++ /dev/null @@ -1,84 +0,0 @@ -"""CSSComment is not defined in DOM Level 2 at all but a cssutils defined -class only. - -Implements CSSRule which is also extended for a CSSComment rule type. -""" -__all__ = ['CSSComment'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: csscomment.py 1638 2009-01-13 20:39:33Z cthedot $' - -import cssrule -import cssutils -import xml.dom - -class CSSComment(cssrule.CSSRule): - """ - Represents a CSS comment (cssutils only). - - Format:: - - /*...*/ - """ - def __init__(self, cssText=None, parentRule=None, - parentStyleSheet=None, readonly=False): - super(CSSComment, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - - self._cssText = None - if cssText: - self._setCssText(cssText) - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssText, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSComment(self) - - def _setCssText(self, cssText): - """ - :param cssText: - textual text to set or tokenlist which is not tokenized - anymore. May also be a single token for this rule - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSComment, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - - commenttoken = self._nexttoken(tokenizer) - unexpected = self._nexttoken(tokenizer) - - if not commenttoken or\ - self._type(commenttoken) != self._prods.COMMENT or\ - unexpected: - self._log.error(u'CSSComment: Not a CSSComment: %r' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - self._cssText = self._tokenvalue(commenttoken) - - cssText = property(_getCssText, _setCssText, - doc=u"The parsable textual representation of this rule.") - - type = property(lambda self: self.COMMENT, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/cssfontfacerule.py b/src/cssutils/css/cssfontfacerule.py deleted file mode 100644 index 5fdcbe2882..0000000000 --- a/src/cssutils/css/cssfontfacerule.py +++ /dev/null @@ -1,182 +0,0 @@ -"""CSSFontFaceRule implements DOM Level 2 CSS CSSFontFaceRule. - -From cssutils 0.9.6 additions from CSS Fonts Module Level 3 are -added http://www.w3.org/TR/css3-fonts/. -""" -__all__ = ['CSSFontFaceRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssfontfacerule.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssstyledeclaration import CSSStyleDeclaration -import cssrule -import cssutils -import xml.dom - -class CSSFontFaceRule(cssrule.CSSRule): - """ - The CSSFontFaceRule interface represents a @font-face rule in a CSS - style sheet. The @font-face rule is used to hold a set of font - descriptions. - - Format:: - - font_face - : FONT_FACE_SYM S* - '{' S* declaration [ ';' S* declaration ]* '}' S* - ; - - cssutils uses a :class:`~cssutils.css.CSSStyleDeclaration` to - represent the font descriptions. For validation a specific profile - is used though were some properties have other valid values than - when used in e.g. a :class:`~cssutils.css.CSSStyleRule`. - """ - def __init__(self, style=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - If readonly allows setting of properties in constructor only. - - :param style: - CSSStyleDeclaration used to hold any font descriptions - for this CSSFontFaceRule - """ - super(CSSFontFaceRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@font-face' - self._style = CSSStyleDeclaration(parentRule=self) - if style: - self.style = style - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(style=%r)" % ( - self.__class__.__name__, self.style.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.style.cssText, self.valid, - id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSFontFaceRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSFontFaceRule, self)._setCssText(cssText) - - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.FONT_FACE_SYM: - self._log.error(u'CSSFontFaceRule: No CSSFontFaceRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldstyle = CSSStyleDeclaration() - oldstyle._absorb(self.style) - - ok = True - beforetokens, brace = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - if self._tokenvalue(brace) != u'{': - ok = False - self._log.error( - u'CSSFontFaceRule: No start { of style declaration found: %r' % - self._valuestr(cssText), brace) - - # parse stuff before { which should be comments and S only - new = {'wellformed': True} - newseq = self._tempSeq()#[] - - beforewellformed, expected = self._parse(expected=':', - seq=newseq, tokenizer=self._tokenize2(beforetokens), - productions={}) - ok = ok and beforewellformed and new['wellformed'] - - styletokens, braceorEOFtoken = self._tokensupto2(tokenizer, - blockendonly=True, - separateEnd=True) - - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSFontFaceRule: No "}" after style declaration found: %r' % - self._valuestr(cssText)) - - nonetoken = self._nexttoken(tokenizer) - if nonetoken: - ok = False - self._log.error(u'CSSFontFaceRule: Trailing content found.', - token=nonetoken) - - if 'EOF' == typ: - # add again as style needs it - styletokens.append(braceorEOFtoken) - - # SET, may raise: - self.style.cssText = styletokens - - if ok: - # contains probably comments only (upto ``{``) - self._setSeq(newseq) - else: - # RESET - self.style._absorb(oldstyle) - - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setStyle(self, style): - """ - :param style: - a CSSStyleDeclaration or string - """ - self._checkReadonly() - if isinstance(style, basestring): - self._style.cssText = style - else: - self._style = style - self._style.parentRule = self - - style = property(lambda self: self._style, _setStyle, - doc="(DOM) The declaration-block of this rule set, " - "a :class:`~cssutils.css.CSSStyleDeclaration`.") - - type = property(lambda self: self.FONT_FACE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - def _getValid(self): - needed = ['font-family', 'src'] - for p in self.style.getProperties(all=True): - if not p.valid: - return False - try: - needed.remove(p.name) - except ValueError: - pass - return not bool(needed) - - valid = property(_getValid, doc='CSSFontFace is valid if properties ' - '`font-family` and `src` are set and all properties are ' - 'valid.') - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/cssimportrule.py b/src/cssutils/css/cssimportrule.py deleted file mode 100644 index 9e643d4f4e..0000000000 --- a/src/cssutils/css/cssimportrule.py +++ /dev/null @@ -1,366 +0,0 @@ -"""CSSImportRule implements DOM Level 2 CSS CSSImportRule plus the -``name`` property from http://www.w3.org/TR/css3-cascade/#cascading.""" -__all__ = ['CSSImportRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssimportrule.py 1871 2009-10-17 19:57:37Z cthedot $' - -import cssrule -import cssutils -import os -import urllib -import urlparse -import xml.dom - -class CSSImportRule(cssrule.CSSRule): - """ - Represents an @import rule within a CSS style sheet. The @import rule - is used to import style rules from other style sheets. - - Format:: - - import - : IMPORT_SYM S* - [STRING|URI] S* [ medium [ COMMA S* medium]* ]? S* STRING? S* ';' S* - ; - """ - def __init__(self, href=None, mediaText=u'all', name=None, - parentRule=None, parentStyleSheet=None, readonly=False): - """ - if readonly allows setting of properties in constructor only - - Do not use as positional but as keyword attributes only! - - href - location of the style sheet to be imported. - mediaText - A list of media types for which this style sheet may be used - as a string - """ - super(CSSImportRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@import' - self.hreftype = None - self._styleSheet = None - - self._href = None - self.href = href - - self._media = cssutils.stylesheets.MediaList() - if mediaText: - self._media.mediaText = mediaText - - self._name = name - - seq = self._tempSeq() - seq.append(self.href, 'href') - seq.append(self.media, 'media') - seq.append(self.name, 'name') - self._setSeq(seq) - self._readonly = readonly - - def __repr__(self): - if self._usemedia: - mediaText = self.media.mediaText - else: - mediaText = None - return "cssutils.css.%s(href=%r, mediaText=%r, name=%r)" % ( - self.__class__.__name__, - self.href, self.media.mediaText, self.name) - - def __str__(self): - if self._usemedia: - mediaText = self.media.mediaText - else: - mediaText = None - return "" % ( - self.__class__.__name__, self.href, mediaText, self.name, id(self)) - - _usemedia = property(lambda self: self.media.mediaText not in (u'', u'all'), - doc="if self._media is used (or simply empty)") - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSImportRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - super(CSSImportRule, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.IMPORT_SYM: - self._log.error(u'CSSImportRule: No CSSImportRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldmedia = cssutils.stylesheets.MediaList() - oldmedia._absorb(self.media) - - # for closures: must be a mutable - new = {'keyword': self._tokenvalue(attoken), - 'href': None, - 'hreftype': None, - 'media': None, - 'name': None, - 'wellformed': True - } - - def __doname(seq, token): - # called by _string or _ident - new['name'] = self._stringtokenvalue(token) - seq.append(new['name'], 'name') - return ';' - - def _string(expected, seq, token, tokenizer=None): - if 'href' == expected: - # href - new['href'] = self._stringtokenvalue(token) - new['hreftype'] = 'string' - seq.append(new['href'], 'href') - return 'media name ;' - elif 'name' in expected: - # name - return __doname(seq, token) - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected string.', token) - return expected - - def _uri(expected, seq, token, tokenizer=None): - # href - if 'href' == expected: - uri = self._uritokenvalue(token) - new['hreftype'] = 'uri' - new['href'] = uri - seq.append(new['href'], 'href') - return 'media name ;' - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected URI.', token) - return expected - - def _ident(expected, seq, token, tokenizer=None): - # medialist ending with ; which is checked upon too - if expected.startswith('media'): - mediatokens = self._tokensupto2( - tokenizer, importmediaqueryendonly=True) - mediatokens.insert(0, token) # push found token - - last = mediatokens.pop() # retrieve ; - lastval, lasttyp = self._tokenvalue(last), self._type(last) - if lastval != u';' and lasttyp not in ('EOF', self._prods.STRING): - new['wellformed'] = False - self._log.error(u'CSSImportRule: No ";" found: %s' % - self._valuestr(cssText), token=token) - - #media = cssutils.stylesheets.MediaList() - self.media.mediaText = mediatokens - if self.media.wellformed: - new['media'] = self.media - seq.append(self.media, 'media') - else: - # RESET - self.media._absorb(oldmedia) - new['wellformed'] = False - self._log.error(u'CSSImportRule: Invalid MediaList: %s' % - self._valuestr(cssText), token=token) - - if lasttyp == self._prods.STRING: - # name - return __doname(seq, last) - else: - return 'EOF' # ';' is token "last" - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected ident.', token) - return expected - - def _char(expected, seq, token, tokenizer=None): - # final ; - val = self._tokenvalue(token) - if expected.endswith(';') and u';' == val: - return 'EOF' - else: - new['wellformed'] = False - self._log.error( - u'CSSImportRule: Unexpected char.', token) - return expected - - # import : IMPORT_SYM S* [STRING|URI] - # S* [ medium [ ',' S* medium]* ]? ';' S* - # STRING? # see http://www.w3.org/TR/css3-cascade/#cascading - # ; - newseq = self._tempSeq() - wellformed, expected = self._parse(expected='href', - seq=newseq, tokenizer=tokenizer, - productions={'STRING': _string, - 'URI': _uri, - 'IDENT': _ident, - 'CHAR': _char}, - new=new) - - # wellformed set by parse - wellformed = wellformed and new['wellformed'] - - # post conditions - if not new['href']: - wellformed = False - self._log.error(u'CSSImportRule: No href found: %s' % - self._valuestr(cssText)) - - if expected != 'EOF': - wellformed = False - self._log.error(u'CSSImportRule: No ";" found: %s' % - self._valuestr(cssText)) - - # set all - if wellformed: - self.atkeyword = new['keyword'] - self.hreftype = new['hreftype'] - if not new['media']: - # reset media to base media - self.media.mediaText = u'all' - newseq.append(self.media, 'media') - self.name = new['name'] - self._setSeq(newseq) - self.href = new['href'] - - if self.styleSheet: - # title is set by href - #self.styleSheet._href = self.href - self.styleSheet._parentStyleSheet = self.parentStyleSheet - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setHref(self, href): - # update seq - for i, item in enumerate(self.seq): - val, typ = item.value, item.type - if 'href' == typ: - self._seq[i] = (href, typ, item.line, item.col) - break - else: - seq = self._tempSeq() - seq.append(self.href, 'href') - self._setSeq(seq) - # set new href - self._href = href - if not self.styleSheet: - # set only if not set before - self.__setStyleSheet() - - href = property(lambda self: self._href, _setHref, - doc="Location of the style sheet to be imported.") - - media = property(lambda self: self._media, - doc="(DOM readonly) A list of media types for this rule " - "of type :class:`~cssutils.stylesheets.MediaList`.") - - def _setName(self, name): - """Raises xml.dom.SyntaxErr if name is not a string.""" - if isinstance(name, basestring) or name is None: - # "" or '' - if not name: - name = None - # update seq - for i, item in enumerate(self.seq): - val, typ = item.value, item.type - if 'name' == typ: - self._seq[i] = (name, typ, item.line, item.col) - break - else: - # append - seq = self._tempSeq() - for item in self.seq: - # copy current seq - seq.append(item.value, item.type, item.line, item.col) - seq.append(name, 'name') - self._setSeq(seq) - self._name = name - # set title of referred sheet - if self.styleSheet: - self.styleSheet.title = name - else: - self._log.error(u'CSSImportRule: Not a valid name: %s' % name) - - name = property(lambda self: self._name, _setName, - doc=u"An optional name for the imported sheet.") - - def __setStyleSheet(self): - """Read new CSSStyleSheet cssText from href using parentStyleSheet.href - - Indirectly called if setting ``href``. In case of any error styleSheet - is set to ``None``. - """ - # should simply fail so all errors are catched! - if self.parentStyleSheet and self.href: - # relative href - parentHref = self.parentStyleSheet.href - if parentHref is None: - # use cwd instead - #parentHref = u'file:' + urllib.pathname2url(os.getcwd()) + '/' - parentHref = cssutils.helper.path2url(os.getcwd()) + '/' - href = urlparse.urljoin(parentHref, self.href) - - # all possible exceptions are ignored (styleSheet is None then) - try: - usedEncoding, enctype, cssText = self.parentStyleSheet._resolveImport(href) - if cssText is None: - # catched in next except below! - raise IOError('Cannot read Stylesheet.') - styleSheet = cssutils.css.CSSStyleSheet(href=href, - media=self.media, - ownerRule=self, - title=self.name) - # inherit fetcher for @imports in styleSheet - styleSheet._setFetcher(self.parentStyleSheet._fetcher) - # contentEncoding with parentStyleSheet.overrideEncoding, - # HTTP or parent - encodingOverride, encoding = None, None - if enctype == 0: - encodingOverride = usedEncoding - elif 5 > enctype > 0: - encoding = usedEncoding - - styleSheet._setCssTextWithEncodingOverride(cssText, - encodingOverride=encodingOverride, - encoding=encoding) - - except (OSError, IOError, ValueError), e: - self._log.warn(u'CSSImportRule: While processing imported style sheet href=%r: %r' - % (self.href, e), neverraise=True) - else: - self._styleSheet = styleSheet - - styleSheet = property(lambda self: self._styleSheet, - doc="(readonly) The style sheet referred to by this rule.") - - type = property(lambda self: self.IMPORT_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - def _getWellformed(self): - "Depending if media is used at all." - if self._usemedia: - return bool(self.href and self.media.wellformed) - else: - return bool(self.href) - - wellformed = property(_getWellformed) diff --git a/src/cssutils/css/cssmediarule.py b/src/cssutils/css/cssmediarule.py deleted file mode 100644 index 439a81ebe4..0000000000 --- a/src/cssutils/css/cssmediarule.py +++ /dev/null @@ -1,381 +0,0 @@ -"""CSSMediaRule implements DOM Level 2 CSS CSSMediaRule.""" -__all__ = ['CSSMediaRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssmediarule.py 1871 2009-10-17 19:57:37Z cthedot $' - -import cssrule -import cssutils -import xml.dom - -class CSSMediaRule(cssrule.CSSRule): - """ - Objects implementing the CSSMediaRule interface can be identified by the - MEDIA_RULE constant. On these objects the type attribute must return the - value of that constant. - - Format:: - - : MEDIA_SYM S* medium [ COMMA S* medium ]* - - STRING? # the name - - LBRACE S* ruleset* '}' S*; - - ``cssRules`` - All Rules in this media rule, a :class:`~cssutils.css.CSSRuleList`. - """ - def __init__(self, mediaText='all', name=None, - parentRule=None, parentStyleSheet=None, readonly=False): - """constructor""" - super(CSSMediaRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@media' - self._media = cssutils.stylesheets.MediaList(mediaText, - readonly=readonly) - self.name = name - self.cssRules = cssutils.css.cssrulelist.CSSRuleList() - self._readonly = readonly - - def __iter__(self): - """Generator iterating over these rule's cssRules.""" - for rule in self._cssRules: - yield rule - - def __repr__(self): - return "cssutils.css.%s(mediaText=%r)" % ( - self.__class__.__name__, self.media.mediaText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.media.mediaText, id(self)) - - def _setCssRules(self, cssRules): - "Set new cssRules and update contained rules refs." - cssRules.append = self.insertRule - cssRules.extend = self.insertRule - cssRules.__delitem__ == self.deleteRule - for rule in cssRules: - rule._parentStyleSheet = self.parentStyleSheet - rule._parentRule = self - self._cssRules = cssRules - - cssRules = property(lambda self: self._cssRules, _setCssRules, - "All Rules in this style sheet, a " - ":class:`~cssutils.css.CSSRuleList`.") - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSMediaRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: - a parseable string or a tuple of (cssText, dict-of-namespaces) - :Exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if a specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - # media "name"? { cssRules } - super(CSSMediaRule, self)._setCssText(cssText) - - # might be (cssText, namespaces) - cssText, namespaces = self._splitNamespacesOff(cssText) - try: - # use parent style sheet ones if available - namespaces = self.parentStyleSheet.namespaces - except AttributeError: - pass - - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.MEDIA_SYM: - self._log.error(u'CSSMediaRule: No CSSMediaRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldmedia = cssutils.stylesheets.MediaList() - oldmedia._absorb(self.media) - - # media - wellformed = True - mediatokens, end = self._tokensupto2(tokenizer, - mediaqueryendonly=True, - separateEnd=True) - if u'{' == self._tokenvalue(end) or self._prods.STRING == self._type(end): - self.media.mediaText = mediatokens - - # name (optional) - name = None - nameseq = self._tempSeq() - if self._prods.STRING == self._type(end): - name = self._stringtokenvalue(end) - # TODO: for now comments are lost after name - nametokens, end = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - wellformed, expected = self._parse(None, nameseq, nametokens, {}) - if not wellformed: - self._log.error(u'CSSMediaRule: Syntax Error: %s' % - self._valuestr(cssText)) - - - # check for { - if u'{' != self._tokenvalue(end): - self._log.error(u'CSSMediaRule: No "{" found: %s' % - self._valuestr(cssText)) - return - - # cssRules - cssrulestokens, braceOrEOF = self._tokensupto2(tokenizer, - mediaendonly=True, - separateEnd=True) - nonetoken = self._nexttoken(tokenizer, None) - if 'EOF' == self._type(braceOrEOF): - # HACK!!! - # TODO: Not complete, add EOF to rule and } to @media - cssrulestokens.append(braceOrEOF) - braceOrEOF = ('CHAR', '}', 0, 0) - self._log.debug(u'CSSMediaRule: Incomplete, adding "}".', - token=braceOrEOF, neverraise=True) - - if u'}' != self._tokenvalue(braceOrEOF): - self._log.error(u'CSSMediaRule: No "}" found.', - token=braceOrEOF) - elif nonetoken: - self._log.error(u'CSSMediaRule: Trailing content found.', - token=nonetoken) - else: - # for closures: must be a mutable - newcssrules = [] #cssutils.css.CSSRuleList() - new = {'wellformed': True } - - def ruleset(expected, seq, token, tokenizer): - rule = cssutils.css.CSSStyleRule(parentRule=self) - rule.cssText = (self._tokensupto2(tokenizer, token), - namespaces) - if rule.wellformed: - rule._parentStyleSheet=self.parentStyleSheet - seq.append(rule) - return expected - - def atrule(expected, seq, token, tokenizer): - # TODO: get complete rule! - tokens = self._tokensupto2(tokenizer, token) - atval = self._tokenvalue(token) - if atval in ('@charset ', '@font-face', '@import', '@namespace', - '@page', '@media'): - self._log.error( - u'CSSMediaRule: This rule is not allowed in CSSMediaRule - ignored: %s.' - % self._valuestr(tokens), - token = token, - error=xml.dom.HierarchyRequestErr) - else: - rule = cssutils.css.CSSUnknownRule(parentRule=self, - parentStyleSheet=self.parentStyleSheet) - rule.cssText = tokens - if rule.wellformed: - seq.append(rule) - return expected - - def COMMENT(expected, seq, token, tokenizer=None): - seq.append(cssutils.css.CSSComment([token])) - return expected - - tokenizer = (t for t in cssrulestokens) # TODO: not elegant! - wellformed, expected = self._parse(braceOrEOF, - newcssrules, - tokenizer, { - 'COMMENT': COMMENT, - 'CHARSET_SYM': atrule, - 'FONT_FACE_SYM': atrule, - 'IMPORT_SYM': atrule, - 'NAMESPACE_SYM': atrule, - 'PAGE_SYM': atrule, - 'MEDIA_SYM': atrule, - 'ATKEYWORD': atrule - }, - default=ruleset, - new=new) - - # no post condition - if self.media.wellformed and wellformed: - self.name = name - self._setSeq(nameseq) - del self._cssRules[:] - for r in newcssrules: - self._cssRules.append(r) - - else: - # RESET - self.media._absorb(oldmedia) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setName(self, name): - if isinstance(name, basestring) or name is None: - # "" or '' - if not name: - name = None - - self._name = name - else: - self._log.error(u'CSSImportRule: Not a valid name: %s' % name) - - name = property(lambda self: self._name, _setName, - doc=u"An optional name for this media rule.") - - media = property(lambda self: self._media, - doc=u"(DOM readonly) A list of media types for this rule of type " - u":class:`~cssutils.stylesheets.MediaList`.") - - def deleteRule(self, index): - """ - Delete the rule at `index` from the media block. - - :param index: - The `index` of the rule to be removed from the media block's rule - list. For an `index` < 0 **no** :exc:`~xml.dom.IndexSizeErr` is - raised but rules for normal Python lists are used. E.g. - ``deleteRule(-1)`` removes the last rule in cssRules. - - `index` may also be a CSSRule object which will then be removed - from the media block. - - :Exceptions: - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified index does not correspond to a rule in - the media rule list. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this media rule is readonly. - """ - self._checkReadonly() - - if isinstance(index, cssrule.CSSRule): - for i, r in enumerate(self.cssRules): - if index == r: - index = i - break - else: - raise xml.dom.IndexSizeErr(u"CSSMediaRule: Not a rule in" - " this rule'a cssRules list: %s" - % index) - - try: - self._cssRules[index]._parentRule = None # detach - del self._cssRules[index] # remove from @media - except IndexError: - raise xml.dom.IndexSizeErr( - u'CSSMediaRule: %s is not a valid index in the rulelist of length %i' % ( - index, self._cssRules.length)) - - def add(self, rule): - """Add `rule` to end of this mediarule. - Same as :meth:`~cssutils.css.CSSMediaRule.insertRule`.""" - self.insertRule(rule, index=None) - - def insertRule(self, rule, index=None): - """ - Insert `rule` into the media block. - - :param rule: - the parsable text representing the `rule` to be inserted. For rule - sets this contains both the selector and the style declaration. - For at-rules, this specifies both the at-identifier and the rule - content. - - cssutils also allows rule to be a valid :class:`~cssutils.css.CSSRule` - object. - - :param index: - before the specified `rule` will be inserted. - If the specified `index` is - equal to the length of the media blocks's rule collection, the - rule will be added to the end of the media block. - If index is not given or None rule will be appended to rule - list. - - :returns: - the index within the media block's rule collection of the - newly inserted rule. - - :exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the `rule` cannot be inserted at the specified `index`, - e.g., if an @import rule is inserted after a standard rule set - or other at-rule. - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified `index` is not a valid insertion point. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this media rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified `rule` has a syntax error and is - unparsable. - - """ - self._checkReadonly() - - # check position - if index is None: - index = len(self._cssRules) - elif index < 0 or index > self._cssRules.length: - raise xml.dom.IndexSizeErr( - u'CSSMediaRule: Invalid index %s for CSSRuleList with a length of %s.' % ( - index, self._cssRules.length)) - - # parse - if isinstance(rule, basestring): - tempsheet = cssutils.css.CSSStyleSheet() - tempsheet.cssText = rule - if len(tempsheet.cssRules) != 1 or (tempsheet.cssRules and - not isinstance(tempsheet.cssRules[0], cssutils.css.CSSRule)): - self._log.error(u'CSSMediaRule: Invalid Rule: %s' % rule) - return - rule = tempsheet.cssRules[0] - - elif isinstance(rule, cssutils.css.CSSRuleList): - # insert all rules - for i, r in enumerate(rule): - self.insertRule(r, index + i) - return index - - elif not isinstance(rule, cssutils.css.CSSRule): - self._log.error(u'CSSMediaRule: Not a CSSRule: %s' % rule) - return - - # CHECK HIERARCHY - # @charset @import @page @namespace @media - if isinstance(rule, cssutils.css.CSSCharsetRule) or \ - isinstance(rule, cssutils.css.CSSFontFaceRule) or \ - isinstance(rule, cssutils.css.CSSImportRule) or \ - isinstance(rule, cssutils.css.CSSNamespaceRule) or \ - isinstance(rule, cssutils.css.CSSPageRule) or \ - isinstance(rule, CSSMediaRule): - self._log.error(u'CSSMediaRule: This type of rule is not allowed here: %s' % - rule.cssText, - error=xml.dom.HierarchyRequestErr) - return - - self._cssRules.insert(index, rule) - rule._parentRule = self - rule._parentStyleSheet = self.parentStyleSheet - return index - - type = property(lambda self: self.MEDIA_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: self.media.wellformed) diff --git a/src/cssutils/css/cssnamespacerule.py b/src/cssutils/css/cssnamespacerule.py deleted file mode 100644 index ba2e84810c..0000000000 --- a/src/cssutils/css/cssnamespacerule.py +++ /dev/null @@ -1,282 +0,0 @@ -"""CSSNamespaceRule currently implements http://dev.w3.org/csswg/css3-namespace/""" -__all__ = ['CSSNamespaceRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssnamespacerule.py 1638 2009-01-13 20:39:33Z cthedot $' - -from cssutils.helper import Deprecated -import cssrule -import cssutils -import xml.dom - -class CSSNamespaceRule(cssrule.CSSRule): - """ - Represents an @namespace rule within a CSS style sheet. - - The @namespace at-rule declares a namespace prefix and associates - it with a given namespace (a string). This namespace prefix can then be - used in namespace-qualified names such as those described in the - Selectors Module [SELECT] or the Values and Units module [CSS3VAL]. - - Dealing with these rules directly is not needed anymore, easier is - the use of :attr:`cssutils.css.CSSStyleSheet.namespaces`. - - Format:: - - namespace - : NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S* - ; - namespace_prefix - : IDENT - ; - """ - def __init__(self, namespaceURI=None, prefix=None, cssText=None, - parentRule=None, parentStyleSheet=None, readonly=False): - """ - :Parameters: - namespaceURI - The namespace URI (a simple string!) which is bound to the - given prefix. If no prefix is set - (``CSSNamespaceRule.prefix==''``) the namespace defined by - namespaceURI is set as the default namespace - prefix - The prefix used in the stylesheet for the given - ``CSSNamespaceRule.uri``. - cssText - if no namespaceURI is given cssText must be given to set - a namespaceURI as this is readonly later on - parentStyleSheet - sheet where this rule belongs to - - Do not use as positional but as keyword parameters only! - - If readonly allows setting of properties in constructor only - - format namespace:: - - namespace - : NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S* - ; - namespace_prefix - : IDENT - ; - """ - super(CSSNamespaceRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@namespace' - self._prefix = u'' - self._namespaceURI = None - - if namespaceURI: - self.namespaceURI = namespaceURI - self.prefix = prefix - tempseq = self._tempSeq() - tempseq.append(self.prefix, 'prefix') - tempseq.append(self.namespaceURI, 'namespaceURI') - self._setSeq(tempseq) - elif cssText is not None: - self.cssText = cssText - - if parentStyleSheet: - self._parentStyleSheet = parentStyleSheet - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(namespaceURI=%r, prefix=%r)" % ( - self.__class__.__name__, self.namespaceURI, self.prefix) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.namespaceURI, self.prefix, id(self)) - - def _getCssText(self): - """Return serialized property cssText""" - return cssutils.ser.do_CSSNamespaceRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: initial value for this rules cssText which is parsed - :exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - super(CSSNamespaceRule, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.NAMESPACE_SYM: - self._log.error(u'CSSNamespaceRule: No CSSNamespaceRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # for closures: must be a mutable - new = {'keyword': self._tokenvalue(attoken), - 'prefix': u'', - 'uri': None, - 'wellformed': True - } - - def _ident(expected, seq, token, tokenizer=None): - # the namespace prefix, optional - if 'prefix or uri' == expected: - new['prefix'] = self._tokenvalue(token) - seq.append(new['prefix'], 'prefix') - return 'uri' - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected ident.', token) - return expected - - def _string(expected, seq, token, tokenizer=None): - # the namespace URI as a STRING - if expected.endswith('uri'): - new['uri'] = self._stringtokenvalue(token) - seq.append(new['uri'], 'namespaceURI') - return ';' - - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected string.', token) - return expected - - def _uri(expected, seq, token, tokenizer=None): - # the namespace URI as URI which is DEPRECATED - if expected.endswith('uri'): - uri = self._uritokenvalue(token) - new['uri'] = uri - seq.append(new['uri'], 'namespaceURI') - return ';' - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected URI.', token) - return expected - - def _char(expected, seq, token, tokenizer=None): - # final ; - val = self._tokenvalue(token) - if ';' == expected and u';' == val: - return 'EOF' - else: - new['wellformed'] = False - self._log.error( - u'CSSNamespaceRule: Unexpected char.', token) - return expected - - # "NAMESPACE_SYM S* [namespace_prefix S*]? [STRING|URI] S* ';' S*" - newseq = self._tempSeq() - wellformed, expected = self._parse(expected='prefix or uri', - seq=newseq, tokenizer=tokenizer, - productions={'IDENT': _ident, - 'STRING': _string, - 'URI': _uri, - 'CHAR': _char}, - new=new) - - # wellformed set by parse - wellformed = wellformed and new['wellformed'] - - # post conditions - if new['uri'] is None: - wellformed = False - self._log.error(u'CSSNamespaceRule: No namespace URI found: %s' % - self._valuestr(cssText)) - - if expected != 'EOF': - wellformed = False - self._log.error(u'CSSNamespaceRule: No ";" found: %s' % - self._valuestr(cssText)) - - # set all - if wellformed: - self.atkeyword = new['keyword'] - self._prefix = new['prefix'] - self.namespaceURI = new['uri'] - self._setSeq(newseq) - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setNamespaceURI(self, namespaceURI): - """ - :param namespaceURI: the initial value for this rules namespaceURI - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - (CSSRule) Raised if this rule is readonly or a namespaceURI is - already set in this rule. - """ - self._checkReadonly() - if not self._namespaceURI: - # initial setting - self._namespaceURI = namespaceURI - tempseq = self._tempSeq() - tempseq.append(namespaceURI, 'namespaceURI') - self._setSeq(tempseq) # makes seq readonly! - elif self._namespaceURI != namespaceURI: - self._log.error(u'CSSNamespaceRule: namespaceURI is readonly.', - error=xml.dom.NoModificationAllowedErr) - - namespaceURI = property(lambda self: self._namespaceURI, _setNamespaceURI, - doc="URI (handled as simple string) of the defined namespace.") - - def _setPrefix(self, prefix=None): - """ - :param prefix: the new prefix - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - if not prefix: - prefix = u'' - else: - tokenizer = self._tokenize2(prefix) - prefixtoken = self._nexttoken(tokenizer, None) - if not prefixtoken or self._type(prefixtoken) != self._prods.IDENT: - self._log.error(u'CSSNamespaceRule: No valid prefix "%s".' % - self._valuestr(prefix), - error=xml.dom.SyntaxErr) - return - else: - prefix = self._tokenvalue(prefixtoken) - # update seg - for i, x in enumerate(self._seq): - if x == self._prefix: - self._seq[i] = (prefix, 'prefix', None, None) - break - else: - # put prefix at the beginning! - self._seq[0] = (prefix, 'prefix', None, None) - - # set new prefix - self._prefix = prefix - - prefix = property(lambda self: self._prefix, _setPrefix, - doc="Prefix used for the defined namespace.") - -# def _setParentStyleSheet(self, parentStyleSheet): -# self._parentStyleSheet = parentStyleSheet -# -# parentStyleSheet = property(lambda self: self._parentStyleSheet, -# _setParentStyleSheet, -# doc=u"Containing CSSStyleSheet.") - - type = property(lambda self: self.NAMESPACE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: self.namespaceURI is not None) - \ No newline at end of file diff --git a/src/cssutils/css/csspagerule.py b/src/cssutils/css/csspagerule.py deleted file mode 100644 index 5727af99fe..0000000000 --- a/src/cssutils/css/csspagerule.py +++ /dev/null @@ -1,273 +0,0 @@ -"""CSSPageRule implements DOM Level 2 CSS CSSPageRule.""" -__all__ = ['CSSPageRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: csspagerule.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssstyledeclaration import CSSStyleDeclaration -from selectorlist import SelectorList -import cssrule -import cssutils -import xml.dom - -class CSSPageRule(cssrule.CSSRule): - """ - The CSSPageRule interface represents a @page rule within a CSS style - sheet. The @page rule is used to specify the dimensions, orientation, - margins, etc. of a page box for paged media. - - Format:: - - page - : PAGE_SYM S* pseudo_page? S* - LBRACE S* declaration [ ';' S* declaration ]* '}' S* - ; - pseudo_page - : ':' IDENT # :first, :left, :right in CSS 2.1 - ; - """ - def __init__(self, selectorText=None, style=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - If readonly allows setting of properties in constructor only. - - :param selectorText: - type string - :param style: - CSSStyleDeclaration for this CSSStyleRule - """ - super(CSSPageRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@page' - tempseq = self._tempSeq() - if selectorText: - self.selectorText = selectorText - tempseq.append(self.selectorText, 'selectorText') - else: - self._selectorText = self._tempSeq() - - self._style = CSSStyleDeclaration(parentRule=self) - if style: - self.style = style - tempseq.append(self.style, 'style') - - self._setSeq(tempseq) - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(selectorText=%r, style=%r)" % ( - self.__class__.__name__, self.selectorText, self.style.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.selectorText, self.style.cssText, - id(self)) - - def __parseSelectorText(self, selectorText): - """ - Parse `selectorText` which may also be a list of tokens - and returns (selectorText, seq). - - see _setSelectorText for details - """ - # for closures: must be a mutable - new = {'wellformed': True, 'last-S': False} - - def _char(expected, seq, token, tokenizer=None): - # pseudo_page, :left, :right or :first - val = self._tokenvalue(token) - if not new['last-S'] and expected in ['page', ': or EOF'] and u':' == val: - try: - identtoken = tokenizer.next() - except StopIteration: - self._log.error( - u'CSSPageRule selectorText: No IDENT found.', token) - else: - ival, ityp = self._tokenvalue(identtoken), self._type(identtoken) - if self._prods.IDENT != ityp: - self._log.error( - u'CSSPageRule selectorText: Expected IDENT but found: %r' % - ival, token) - else: - seq.append(val + ival, 'pseudo') - return 'EOF' - return expected - else: - new['wellformed'] = False - self._log.error( - u'CSSPageRule selectorText: Unexpected CHAR: %r' % val, token) - return expected - - def S(expected, seq, token, tokenizer=None): - "Does not raise if EOF is found." - if expected == ': or EOF': - # pseudo must directly follow IDENT if given - new['last-S'] = True - return expected - - def IDENT(expected, seq, token, tokenizer=None): - "" - val = self._tokenvalue(token) - if 'page' == expected: - seq.append(val, 'IDENT') - return ': or EOF' - else: - new['wellformed'] = False - self._log.error( - u'CSSPageRule selectorText: Unexpected IDENT: %r' % val, token) - return expected - - def COMMENT(expected, seq, token, tokenizer=None): - "Does not raise if EOF is found." - seq.append(cssutils.css.CSSComment([token]), 'COMMENT') - return expected - - newseq = self._tempSeq() - wellformed, expected = self._parse(expected='page', - seq=newseq, tokenizer=self._tokenize2(selectorText), - productions={'CHAR': _char, - 'IDENT': IDENT, - 'COMMENT': COMMENT, - 'S': S}, - new=new) - wellformed = wellformed and new['wellformed'] - - # post conditions - if expected == 'ident': - self._log.error( - u'CSSPageRule selectorText: No valid selector: %r' % - self._valuestr(selectorText)) - -# if not newselector in (None, u':first', u':left', u':right'): -# self._log.warn(u'CSSPageRule: Unknown CSS 2.1 @page selector: %r' % -# newselector, neverraise=True) - return wellformed, newseq - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSPageRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSPageRule, self)._setCssText(cssText) - - tokenizer = self._tokenize2(cssText) - if self._type(self._nexttoken(tokenizer)) != self._prods.PAGE_SYM: - self._log.error(u'CSSPageRule: No CSSPageRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldstyle = CSSStyleDeclaration() - oldstyle._absorb(self.style) - - ok = True - selectortokens, startbrace = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - styletokens, braceorEOFtoken = self._tokensupto2(tokenizer, - blockendonly=True, - separateEnd=True) - nonetoken = self._nexttoken(tokenizer) - if self._tokenvalue(startbrace) != u'{': - ok = False - self._log.error( - u'CSSPageRule: No start { of style declaration found: %r' % - self._valuestr(cssText), startbrace) - elif nonetoken: - ok = False - self._log.error( - u'CSSPageRule: Trailing content found.', token=nonetoken) - - selok, newselectorseq = self.__parseSelectorText(selectortokens) - ok = ok and selok - - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSPageRule: No "}" after style declaration found: %r' % - self._valuestr(cssText)) - else: - if 'EOF' == typ: - # add again as style needs it - styletokens.append(braceorEOFtoken) - self.style.cssText = styletokens - - if ok: - # TODO: TEST and REFS - self._selectorText = newselectorseq - else: - # RESET - self.style._absorb(oldstyle) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _getSelectorText(self): - """Wrapper for cssutils Selector object.""" - return cssutils.ser.do_CSSPageRuleSelector(self._selectorText)#self._selectorText - - def _setSelectorText(self, selectorText): - """Wrapper for cssutils Selector object. - - :param selectorText: - DOM String, in CSS 2.1 one of - - - :first - - :left - - :right - - empty - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # may raise SYNTAX_ERR - wellformed, newseq = self.__parseSelectorText(selectorText) - if wellformed: - self._selectorText = newseq - - selectorText = property(_getSelectorText, _setSelectorText, - doc="""(DOM) The parsable textual representation of the page selector for the rule.""") - - def _setStyle(self, style): - """ - :param style: - a CSSStyleDeclaration or string - """ - self._checkReadonly() - if isinstance(style, basestring): - self._style.cssText = style - else: - self._style = style - self._style.parentRule = self - - style = property(lambda self: self._style, _setStyle, - doc="(DOM) The declaration-block of this rule set, " - "a :class:`~cssutils.css.CSSStyleDeclaration`.") - - type = property(lambda self: self.PAGE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/cssproperties.py b/src/cssutils/css/cssproperties.py deleted file mode 100644 index fb55ce0dc4..0000000000 --- a/src/cssutils/css/cssproperties.py +++ /dev/null @@ -1,122 +0,0 @@ -"""CSS2Properties (partly!) implements DOM Level 2 CSS CSS2Properties used -by CSSStyleDeclaration - -TODO: CSS2Properties - If an implementation does implement this interface, it is expected to - understand the specific syntax of the shorthand properties, and apply - their semantics; when the margin property is set, for example, the - marginTop, marginRight, marginBottom and marginLeft properties are - actually being set by the underlying implementation. - - When dealing with CSS "shorthand" properties, the shorthand properties - should be decomposed into their component longhand properties as - appropriate, and when querying for their value, the form returned - should be the shortest form exactly equivalent to the declarations made - in the ruleset. However, if there is no shorthand declaration that - could be added to the ruleset without changing in any way the rules - already declared in the ruleset (i.e., by adding longhand rules that - were previously not declared in the ruleset), then the empty string - should be returned for the shorthand property. - - For example, querying for the font property should not return - "normal normal normal 14pt/normal Arial, sans-serif", when - "14pt Arial, sans-serif" suffices. (The normals are initial values, and - are implied by use of the longhand property.) - - If the values for all the longhand properties that compose a particular - string are the initial values, then a string consisting of all the - initial values should be returned (e.g. a border-width value of - "medium" should be returned as such, not as ""). - - For some shorthand properties that take missing values from other - sides, such as the margin, padding, and border-[width|style|color] - properties, the minimum number of sides possible should be used; i.e., - "0px 10px" will be returned instead of "0px 10px 0px 10px". - - If the value of a shorthand property can not be decomposed into its - component longhand properties, as is the case for the font property - with a value of "menu", querying for the values of the component - longhand properties should return the empty string. - -TODO: CSS2Properties DOMImplementation - The interface found within this section are not mandatory. A DOM - application can use the hasFeature method of the DOMImplementation - interface to determine whether it is supported or not. The feature - string for this extended interface listed in this section is "CSS2" - and the version is "2.0". - -""" -__all__ = ['CSS2Properties'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssproperties.py 1638 2009-01-13 20:39:33Z cthedot $' - -import cssutils.profiles -import re - -class CSS2Properties(object): - """The CSS2Properties interface represents a convenience mechanism - for retrieving and setting properties within a CSSStyleDeclaration. - The attributes of this interface correspond to all the properties - specified in CSS2. Getting an attribute of this interface is - equivalent to calling the getPropertyValue method of the - CSSStyleDeclaration interface. Setting an attribute of this - interface is equivalent to calling the setProperty method of the - CSSStyleDeclaration interface. - - cssutils actually also allows usage of ``del`` to remove a CSS property - from a CSSStyleDeclaration. - - This is an abstract class, the following functions need to be present - in inheriting class: - - - ``_getP`` - - ``_setP`` - - ``_delP`` - """ - # actual properties are set after the class definition! - def _getP(self, CSSname): pass - def _setP(self, CSSname, value): pass - def _delP(self, CSSname): pass - - -_reCSStoDOMname = re.compile('-[a-z]', re.I) -def _toDOMname(CSSname): - """Returns DOMname for given CSSname e.g. for CSSname 'font-style' returns - 'fontStyle'. - """ - def _doCSStoDOMname2(m): return m.group(0)[1].capitalize() - return _reCSStoDOMname.sub(_doCSStoDOMname2, CSSname) - -_reDOMtoCSSname = re.compile('([A-Z])[a-z]+') -def _toCSSname(DOMname): - """Return CSSname for given DOMname e.g. for DOMname 'fontStyle' returns - 'font-style'. - """ - def _doDOMtoCSSname2(m): return '-' + m.group(0).lower() - return _reDOMtoCSSname.sub(_doDOMtoCSSname2, DOMname) - -# add list of DOMname properties to CSS2Properties -# used for CSSStyleDeclaration to check if allowed properties -# but somehow doubled, any better way? -CSS2Properties._properties = [] -for group in cssutils.profiles.properties: - for name in cssutils.profiles.properties[group]: - CSS2Properties._properties.append(_toDOMname(name)) - - -# add CSS2Properties to CSSStyleDeclaration: -def __named_property_def(DOMname): - """ - Closure to keep name known in each properties accessor function - DOMname is converted to CSSname here, so actual calls use CSSname. - """ - CSSname = _toCSSname(DOMname) - def _get(self): return self._getP(CSSname) - def _set(self, value): self._setP(CSSname, value) - def _del(self): self._delP(CSSname) - return _get, _set, _del - -# add all CSS2Properties to CSSStyleDeclaration -for DOMname in CSS2Properties._properties: - setattr(CSS2Properties, DOMname, - property(*__named_property_def(DOMname))) diff --git a/src/cssutils/css/cssrule.py b/src/cssutils/css/cssrule.py deleted file mode 100644 index 587d380c29..0000000000 --- a/src/cssutils/css/cssrule.py +++ /dev/null @@ -1,106 +0,0 @@ -"""CSSRule implements DOM Level 2 CSS CSSRule.""" -__all__ = ['CSSRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssrule.py 1855 2009-10-07 17:03:19Z cthedot $' - -import cssutils -import xml.dom - -class CSSRule(cssutils.util.Base2): - """Abstract base interface for any type of CSS statement. This includes - both rule sets and at-rules. An implementation is expected to preserve - all rules specified in a CSS style sheet, even if the rule is not - recognized by the parser. Unrecognized rules are represented using the - :class:`CSSUnknownRule` interface. - """ - - """ - CSSRule type constants. - An integer indicating which type of rule this is. - """ - COMMENT = -1 # cssutils only - UNKNOWN_RULE = 0 #u - STYLE_RULE = 1 #s - CHARSET_RULE = 2 #c - IMPORT_RULE = 3 #i - MEDIA_RULE = 4 #m - FONT_FACE_RULE = 5 #f - PAGE_RULE = 6 #p - NAMESPACE_RULE = 7 # CSSOM - VARIABLES_RULE = 8 # CSS Variables - - _typestrings = ['UNKNOWN_RULE', 'STYLE_RULE', 'CHARSET_RULE', 'IMPORT_RULE', - 'MEDIA_RULE', 'FONT_FACE_RULE', 'PAGE_RULE', 'NAMESPACE_RULE', - 'VARIABLES_RULE', - 'COMMENT'] - - def __init__(self, parentRule=None, parentStyleSheet=None, readonly=False): - """Set common attributes for all rules.""" - super(CSSRule, self).__init__() - self._parent = parentRule - self._parentRule = parentRule - self._parentStyleSheet = parentStyleSheet - self._setSeq(self._tempSeq()) - # must be set after initialization of #inheriting rule is done - self._readonly = False - - def _setAtkeyword(self, akw): - """Check if new keyword fits the rule it is used for.""" - if not self.atkeyword or (self._normalize(akw) == - self._normalize(self.atkeyword)): - self._atkeyword = akw - else: - self._log.error(u'%s: Invalid atkeyword for this rule: %r' % - (self._normalize(self.atkeyword), akw), - error=xml.dom.InvalidModificationErr) - - atkeyword = property(lambda self: self._atkeyword, _setAtkeyword, - doc=u"Literal keyword of an @rule (e.g. ``@IMport``).") - - def _setCssText(self, cssText): - """ - :param cssText: - A parsable DOMString. - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - self._checkReadonly() - - cssText = property(lambda self: u'', _setCssText, - doc="(DOM) The parsable textual representation of the " - "rule. This reflects the current state of the rule " - "and not its initial value.") - - parent = property(lambda self: self._parent, - doc="The Parent Node of this CSSRule (currently if a " - "CSSStyleDeclaration only!) or None.") - - parentRule = property(lambda self: self._parentRule, - doc="If this rule is contained inside " - "another rule (e.g. a style rule inside " - "an @media block), this is the containing " - "rule. If this rule is not nested inside " - "any other rules, this returns None.") - - parentStyleSheet = property(lambda self: self._parentStyleSheet, - doc="The style sheet that contains this rule.") - - type = property(lambda self: self.UNKNOWN_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - typeString = property(lambda self: CSSRule._typestrings[self.type], - doc="Descriptive name of this rule's type.") - - wellformed = property(lambda self: False, - doc=u"If the rule is wellformed.") diff --git a/src/cssutils/css/cssrulelist.py b/src/cssutils/css/cssrulelist.py deleted file mode 100644 index a20f19cf47..0000000000 --- a/src/cssutils/css/cssrulelist.py +++ /dev/null @@ -1,47 +0,0 @@ -"""CSSRuleList implements DOM Level 2 CSS CSSRuleList. -Partly also http://dev.w3.org/csswg/cssom/#the-cssrulelist.""" -__all__ = ['CSSRuleList'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssrulelist.py 1824 2009-08-01 21:00:34Z cthedot $' - -class CSSRuleList(list): - """The CSSRuleList object represents an (ordered) list of statements. - - The items in the CSSRuleList are accessible via an integral index, - starting from 0. - - Subclasses a standard Python list so theoretically all standard list - methods are available. Setting methods like ``__init__``, ``append``, - ``extend`` or ``__setslice__`` are added later on instances of this - class if so desired. - E.g. CSSStyleSheet adds ``append`` which is not available in a simple - instance of this class! - """ - def __init__(self, *ignored): - "Nothing is set as this must also be defined later." - pass - - def __notimplemented(self, *ignored): - "Implemented in class using a CSSRuleList only." - raise NotImplementedError( - 'Must be implemented by class using an instance of this class.') - - append = extend = __setitem__ = __setslice__ = __notimplemented - - def item(self, index): - """(DOM) Retrieve a CSS rule by ordinal `index`. The order in this - collection represents the order of the rules in the CSS style - sheet. If index is greater than or equal to the number of rules in - the list, this returns None. - - Returns CSSRule, the style rule at the index position in the - CSSRuleList, or None if that is not a valid index. - """ - try: - return self[index] - except IndexError: - return None - - length = property(lambda self: len(self), - doc="(DOM) The number of CSSRules in the list.") - diff --git a/src/cssutils/css/cssstyledeclaration.py b/src/cssutils/css/cssstyledeclaration.py deleted file mode 100644 index 626245099d..0000000000 --- a/src/cssutils/css/cssstyledeclaration.py +++ /dev/null @@ -1,642 +0,0 @@ -"""CSSStyleDeclaration implements DOM Level 2 CSS CSSStyleDeclaration and -extends CSS2Properties - -see - http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#parsing-errors - -Unknown properties ------------------- -User agents must ignore a declaration with an unknown property. -For example, if the style sheet is:: - - H1 { color: red; rotation: 70minutes } - -the user agent will treat this as if the style sheet had been:: - - H1 { color: red } - -Cssutils gives a message about any unknown properties but -keeps any property (if syntactically correct). - -Illegal values --------------- -User agents must ignore a declaration with an illegal value. For example:: - - IMG { float: left } /* correct CSS2 */ - IMG { float: left here } /* "here" is not a value of 'float' */ - IMG { background: "red" } /* keywords cannot be quoted in CSS2 */ - IMG { border-width: 3 } /* a unit must be specified for length values */ - -A CSS2 parser would honor the first rule and ignore the rest, as if the -style sheet had been:: - - IMG { float: left } - IMG { } - IMG { } - IMG { } - -Cssutils again will issue a message (WARNING in this case) about invalid -CSS2 property values. - -TODO: - This interface is also used to provide a read-only access to the - computed values of an element. See also the ViewCSS interface. - - - return computed values and not literal values - - simplify unit pairs/triples/quadruples - 2px 2px 2px 2px -> 2px for border/padding... - - normalize compound properties like: - background: no-repeat left url() #fff - -> background: #fff url() no-repeat left -""" -__all__ = ['CSSStyleDeclaration', 'Property'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstyledeclaration.py 1879 2009-11-17 20:35:04Z cthedot $' - -from cssproperties import CSS2Properties -from property import Property -import cssutils -import xml.dom - -class CSSStyleDeclaration(CSS2Properties, cssutils.util.Base2): - """The CSSStyleDeclaration class represents a single CSS declaration - block. This class may be used to determine the style properties - currently set in a block or to set style properties explicitly - within the block. - - While an implementation may not recognize all CSS properties within - a CSS declaration block, it is expected to provide access to all - specified properties in the style sheet through the - CSSStyleDeclaration interface. - Furthermore, implementations that support a specific level of CSS - should correctly handle CSS shorthand properties for that level. For - a further discussion of shorthand properties, see the CSS2Properties - interface. - - Additionally the CSS2Properties interface is implemented. - - $css2propertyname - All properties defined in the CSS2Properties class are available - as direct properties of CSSStyleDeclaration with their respective - DOM name, so e.g. ``fontStyle`` for property 'font-style'. - - These may be used as:: - - >>> style = CSSStyleDeclaration(cssText='color: red') - >>> style.color = 'green' - >>> print style.color - green - >>> del style.color - >>> print style.color - - - Format:: - - [Property: Value Priority?;]* [Property: Value Priority?]? - """ - def __init__(self, cssText=u'', parentRule=None, readonly=False): - """ - :param cssText: - Shortcut, sets CSSStyleDeclaration.cssText - :param parentRule: - The CSS rule that contains this declaration block or - None if this CSSStyleDeclaration is not attached to a CSSRule. - :param readonly: - defaults to False - """ - super(CSSStyleDeclaration, self).__init__() - self._parentRule = parentRule - self.cssText = cssText - self._readonly = readonly - - def __contains__(self, nameOrProperty): - """Check if a property (or a property with given name) is in style. - - :param name: - a string or Property, uses normalized name and not literalname - """ - if isinstance(nameOrProperty, Property): - name = nameOrProperty.name - else: - name = self._normalize(nameOrProperty) - return name in self.__nnames() - - def __iter__(self): - """Iterator of set Property objects with different normalized names.""" - def properties(): - for name in self.__nnames(): - yield self.getProperty(name) - return properties() - - def keys(self): - """Analoguous to standard dict returns property names which are set in - this declaration.""" - return list(self.__nnames()) - - def __getitem__(self, CSSName): - """Retrieve the value of property ``CSSName`` from this declaration. - - ``CSSName`` will be always normalized. - """ - return self.getPropertyValue(CSSName) - - def __setitem__(self, CSSName, value): - """Set value of property ``CSSName``. ``value`` may also be a tuple of - (value, priority), e.g. style['color'] = ('red', 'important') - - ``CSSName`` will be always normalized. - """ - priority = None - if type(value) == tuple: - value, priority = value - - return self.setProperty(CSSName, value, priority) - - def __delitem__(self, CSSName): - """Delete property ``CSSName`` from this declaration. - If property is not in this declaration return u'' just like - removeProperty. - - ``CSSName`` will be always normalized. - """ - return self.removeProperty(CSSName) - - def __setattr__(self, n, v): - """Prevent setting of unknown properties on CSSStyleDeclaration - which would not work anyway. For these - ``CSSStyleDeclaration.setProperty`` MUST be called explicitly! - - TODO: - implementation of known is not really nice, any alternative? - """ - known = ['_tokenizer', '_log', '_ttypes', - '_seq', 'seq', 'parentRule', '_parentRule', 'cssText', - 'valid', 'wellformed', - '_readonly', '_profiles'] - known.extend(CSS2Properties._properties) - if n in known: - super(CSSStyleDeclaration, self).__setattr__(n, v) - else: - raise AttributeError( - 'Unknown CSS Property, ``CSSStyleDeclaration.setProperty("%s", ...)`` MUST be used.' - % n) - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.getCssText(separator=u' ')) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.length, - len(self.getProperties(all=True)), id(self)) - - def __nnames(self): - """Return iterator for all different names in order as set - if names are set twice the last one is used (double reverse!) - """ - names = [] - for item in reversed(self.seq): - val = item.value - if isinstance(val, Property) and not val.name in names: - names.append(val.name) - return reversed(names) - - def _absorb(self, other): - """Replace all own data with data from other object.""" - self._parentRule = other._parentRule - self.seq.absorb(other.seq) - self._readonly = other._readonly - - # overwritten accessor functions for CSS2Properties' properties - def _getP(self, CSSName): - """(DOM CSS2Properties) Overwritten here and effectively the same as - ``self.getPropertyValue(CSSname)``. - - Parameter is in CSSname format ('font-style'), see CSS2Properties. - - Example:: - - >>> style = CSSStyleDeclaration(cssText='font-style:italic;') - >>> print style.fontStyle - italic - """ - return self.getPropertyValue(CSSName) - - def _setP(self, CSSName, value): - """(DOM CSS2Properties) Overwritten here and effectively the same as - ``self.setProperty(CSSname, value)``. - - Only known CSS2Properties may be set this way, otherwise an - AttributeError is raised. - For these unknown properties ``setPropertyValue(CSSname, value)`` - has to be called explicitly. - Also setting the priority of properties needs to be done with a - call like ``setPropertyValue(CSSname, value, priority)``. - - Example:: - - >>> style = CSSStyleDeclaration() - >>> style.fontStyle = 'italic' - >>> # or - >>> style.setProperty('font-style', 'italic', '!important') - - """ - self.setProperty(CSSName, value) - # TODO: Shorthand ones - - def _delP(self, CSSName): - """(cssutils only) Overwritten here and effectively the same as - ``self.removeProperty(CSSname)``. - - Example:: - - >>> style = CSSStyleDeclaration(cssText='font-style:italic;') - >>> del style.fontStyle - >>> print style.fontStyle - - - """ - self.removeProperty(CSSName) - - def children(self): - """Generator yielding any known child in this declaration including - *all* properties, comments or CSSUnknownrules. - """ - for item in self._seq: - yield item.value - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_css_CSSStyleDeclaration(self) - - def _setCssText(self, cssText): - """Setting this attribute will result in the parsing of the new value - and resetting of all the properties in the declaration block - including the removal or addition of properties. - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or a property is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - self._checkReadonly() - tokenizer = self._tokenize2(cssText) - - # for closures: must be a mutable - new = {'wellformed': True} - def ident(expected, seq, token, tokenizer=None): - # a property - - tokens = self._tokensupto2(tokenizer, starttoken=token, - semicolon=True) - if self._tokenvalue(tokens[-1]) == u';': - tokens.pop() - property = Property(parent=self) - property.cssText = tokens - if property.wellformed: - seq.append(property, 'Property') - else: - self._log.error(u'CSSStyleDeclaration: Syntax Error in Property: %s' - % self._valuestr(tokens)) - # does not matter in this case - return expected - - def unexpected(expected, seq, token, tokenizer=None): - # error, find next ; or } to omit upto next property - ignored = self._tokenvalue(token) + self._valuestr( - self._tokensupto2(tokenizer, propertyvalueendonly=True)) - self._log.error(u'CSSStyleDeclaration: Unexpected token, ignoring upto %r.' % - ignored,token) - # does not matter in this case - return expected - - # [Property: Value;]* Property: Value? - newseq = self._tempSeq() - wellformed, expected = self._parse(expected=None, - seq=newseq, tokenizer=tokenizer, - productions={'IDENT': ident},#, 'CHAR': char}, - default=unexpected) - # wellformed set by parse - - for item in newseq: - item.value._parent = self - - # do not check wellformed as invalid things are removed anyway - self._setSeq(newseq) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) A parsable textual representation of the declaration\ - block excluding the surrounding curly braces.") - - def getCssText(self, separator=None): - """ - :returns: - serialized property cssText, each property separated by - given `separator` which may e.g. be ``u''`` to be able to use - cssText directly in an HTML style attribute. ``;`` is part of - each property (except the last one) and **cannot** be set with - separator! - """ - return cssutils.ser.do_css_CSSStyleDeclaration(self, separator) - - def _setParentRule(self, parentRule): - self._parentRule = parentRule - for x in self.children(): - x.parent = self - - parentRule = property(lambda self: self._parentRule, _setParentRule, - doc="(DOM) The CSS rule that contains this declaration block or " - "None if this CSSStyleDeclaration is not attached to a CSSRule.") - - def getProperties(self, name=None, all=False): - """ - :param name: - optional `name` of properties which are requested. - Only properties with this **always normalized** `name` are returned. - If `name` is ``None`` all properties are returned (at least one for - each set name depending on parameter `all`). - :param all: - if ``False`` (DEFAULT) only the effective properties are returned. - If name is given a list with only one property is returned. - - if ``True`` all properties including properties set multiple times - with different values or priorities for different UAs are returned. - The order of the properties is fully kept as in the original - stylesheet. - :returns: - a list of :class:`~cssutils.css.Property` objects set in - this declaration. - """ - if name and not all: - # single prop but list - p = self.getProperty(name) - if p: - return [p] - else: - return [] - elif not all: - # effective Properties in name order - return [self.getProperty(name)for name in self.__nnames()] - else: - # all properties or all with this name - nname = self._normalize(name) - properties = [] - for item in self.seq: - val = item.value - if isinstance(val, Property) and ( - (bool(nname) == False) or (val.name == nname)): - properties.append(val) - return properties - - def getProperty(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized name. - :returns: - the effective :class:`~cssutils.css.Property` object. - """ - nname = self._normalize(name) - found = None - for item in reversed(self.seq): - val = item.value - if isinstance(val, Property): - if (normalize and nname == val.name) or name == val.literalname: - if val.priority: - return val - elif not found: - found = val - return found - - def getPropertyCSSValue(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the effective - for the unnormalized name. - :returns: - :class:`~cssutils.css.CSSValue`, the value of the effective - property if it has been explicitly set for this declaration block. - - (DOM) - Used to retrieve the object representation of the value of a CSS - property if it has been explicitly set within this declaration - block. Returns None if the property has not been set. - - (This method returns None if the property is a shorthand - property. Shorthand property values can only be accessed and - modified as strings, using the getPropertyValue and setProperty - methods.) - - **cssutils currently always returns a CSSValue if the property is - set.** - - for more on shorthand properties see - http://www.dustindiaz.com/css-shorthand/ - """ - nname = self._normalize(name) - if nname in self._SHORTHANDPROPERTIES: - self._log.info( - u'CSSValue for shorthand property "%s" should be None, this may be implemented later.' % - nname, neverraise=True) - - p = self.getProperty(name, normalize) - if p: - return p.cssValue - else: - return None - - def getPropertyValue(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized name. - :returns: - the value of the effective property if it has been explicitly set - for this declaration block. Returns the empty string if the - property has not been set. - """ - p = self.getProperty(name, normalize) - if p: - return p.value - else: - return u'' - - def getPropertyPriority(self, name, normalize=True): - """ - :param name: - of the CSS property, always lowercase (even if not normalized) - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized name. - :returns: - the priority of the effective CSS property (e.g. the - "important" qualifier) if the property has been explicitly set in - this declaration block. The empty string if none exists. - """ - p = self.getProperty(name, normalize) - if p: - return p.priority - else: - return u'' - - def removeProperty(self, name, normalize=True): - """ - (DOM) - Used to remove a CSS property if it has been explicitly set within - this declaration block. - - :param name: - of the CSS property - :param normalize: - if ``True`` (DEFAULT) name will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent. - The effective Property value is returned and *all* Properties - with ``Property.name == name`` are removed. - - If ``False`` may return **NOT** the effective value but the - effective for the unnormalized `name` only. Also only the - Properties with the literal name `name` are removed. - :returns: - the value of the property if it has been explicitly set for - this declaration block. Returns the empty string if the property - has not been set or the property name does not correspond to a - known CSS property - - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or the property is - readonly. - """ - self._checkReadonly() - r = self.getPropertyValue(name, normalize=normalize) - newseq = self._tempSeq() - if normalize: - # remove all properties with name == nname - nname = self._normalize(name) - for item in self.seq: - if not (isinstance(item.value, Property) and item.value.name == nname): - newseq.appendItem(item) - else: - # remove all properties with literalname == name - for item in self.seq: - if not (isinstance(item.value, Property) and item.value.literalname == name): - newseq.appendItem(item) - self._setSeq(newseq) - return r - - def setProperty(self, name, value=None, priority=u'', normalize=True): - """(DOM) Set a property value and priority within this declaration - block. - - :param name: - of the CSS property to set (in W3C DOM the parameter is called - "propertyName"), always lowercase (even if not normalized) - - If a property with this `name` is present it will be reset. - - cssutils also allowed `name` to be a - :class:`~cssutils.css.Property` object, all other - parameter are ignored in this case - - :param value: - the new value of the property, ignored if `name` is a Property. - :param priority: - the optional priority of the property (e.g. "important"), - ignored if `name` is a Property. - :param normalize: - if True (DEFAULT) `name` will be normalized (lowercase, no simple - escapes) so "color", "COLOR" or "C\olor" will all be equivalent - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified value has a syntax error and is - unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or the property is - readonly. - """ - self._checkReadonly() - - if isinstance(name, Property): - newp = name - name = newp.literalname - elif not value: - # empty string or None effectively removed property - return self.removeProperty(name) - else: - newp = Property(name, value, priority) - if not newp.wellformed: - self._log.warn(u'Invalid Property: %s: %s %s' - % (name, value, priority)) - else: - nname = self._normalize(name) - properties = self.getProperties(name, all=(not normalize)) - for property in reversed(properties): - if normalize and property.name == nname: - property.cssValue = newp.cssValue.cssText - property.priority = newp.priority - break - elif property.literalname == name: - property.cssValue = newp.cssValue.cssText - property.priority = newp.priority - break - else: - newp.parent = self - self.seq._readonly = False - self.seq.append(newp, 'Property') - self.seq._readonly = True - - def item(self, index): - """(DOM) Retrieve the properties that have been explicitly set in - this declaration block. The order of the properties retrieved using - this method does not have to be the order in which they were set. - This method can be used to iterate over all properties in this - declaration block. - - :param index: - of the property to retrieve, negative values behave like - negative indexes on Python lists, so -1 is the last element - - :returns: - the name of the property at this ordinal position. The - empty string if no property exists at this position. - - **ATTENTION:** - Only properties with different names are counted. If two - properties with the same name are present in this declaration - only the effective one is included. - - :meth:`item` and :attr:`length` work on the same set here. - """ - names = list(self.__nnames()) - try: - return names[index] - except IndexError: - return u'' - - length = property(lambda self: len(list(self.__nnames())), - doc="(DOM) The number of distinct properties that have been explicitly " - "in this declaration block. The range of valid indices is 0 to " - "length-1 inclusive. These are properties with a different ``name`` " - "only. :meth:`item` and :attr:`length` work on the same set here.") diff --git a/src/cssutils/css/cssstylerule.py b/src/cssutils/css/cssstylerule.py deleted file mode 100644 index 6d1798b88a..0000000000 --- a/src/cssutils/css/cssstylerule.py +++ /dev/null @@ -1,233 +0,0 @@ -"""CSSStyleRule implements DOM Level 2 CSS CSSStyleRule.""" -__all__ = ['CSSStyleRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstylerule.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssstyledeclaration import CSSStyleDeclaration -from selectorlist import SelectorList -import cssrule -import cssutils -import xml.dom - -class CSSStyleRule(cssrule.CSSRule): - """The CSSStyleRule object represents a ruleset specified (if any) in a CSS - style sheet. It provides access to a declaration block as well as to the - associated group of selectors. - - Format:: - - : selector [ COMMA S* selector ]* - LBRACE S* declaration [ ';' S* declaration ]* '}' S* - ; - """ - def __init__(self, selectorText=None, style=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - :Parameters: - selectorText - string parsed into selectorList - style - string parsed into CSSStyleDeclaration for this CSSStyleRule - readonly - if True allows setting of properties in constructor only - """ - super(CSSStyleRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - - self._selectorList = SelectorList(parentRule=self) - self._style = CSSStyleDeclaration(parentRule=self) - if selectorText: - self.selectorText = selectorText - if style: - self.style = style - - self._readonly = readonly - - def __repr__(self): - if self._namespaces: - st = (self.selectorText, self._namespaces) - else: - st = self.selectorText - return "cssutils.css.%s(selectorText=%r, style=%r)" % ( - self.__class__.__name__, st, self.style.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.selectorText, self.style.cssText, - self._namespaces, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSStyleRule(self) - - def _setCssText(self, cssText): - """ - :param cssText: - a parseable string or a tuple of (cssText, dict-of-namespaces) - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSStyleRule, self)._setCssText(cssText) - - # might be (cssText, namespaces) - cssText, namespaces = self._splitNamespacesOff(cssText) - try: - # use parent style sheet ones if available - namespaces = self.parentStyleSheet.namespaces - except AttributeError: - pass - - tokenizer = self._tokenize2(cssText) - selectortokens = self._tokensupto2(tokenizer, blockstartonly=True) - styletokens = self._tokensupto2(tokenizer, blockendonly=True) - trail = self._nexttoken(tokenizer) - if trail: - self._log.error(u'CSSStyleRule: Trailing content: %s' % - self._valuestr(cssText), token=trail) - elif not selectortokens: - self._log.error(u'CSSStyleRule: No selector found: %r' % - self._valuestr(cssText)) - elif self._tokenvalue(selectortokens[0]).startswith(u'@'): - self._log.error(u'CSSStyleRule: No style rule: %r' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldstyle = CSSStyleDeclaration() - oldstyle._absorb(self.style) - oldselector = SelectorList() - oldselector._absorb(self.selectorList) - - ok = True - - bracetoken = selectortokens.pop() - if self._tokenvalue(bracetoken) != u'{': - ok = False - self._log.error( - u'CSSStyleRule: No start { of style declaration found: %r' % - self._valuestr(cssText), bracetoken) - elif not selectortokens: - ok = False - self._log.error(u'CSSStyleRule: No selector found: %r.' % - self._valuestr(cssText), bracetoken) - # SET - self.selectorList.selectorText = (selectortokens, - namespaces) - if not styletokens: - ok = False - self._log.error( - u'CSSStyleRule: No style declaration or "}" found: %r' % - self._valuestr(cssText)) - else: - braceorEOFtoken = styletokens.pop() - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSStyleRule: No "}" after style declaration found: %r' % - self._valuestr(cssText)) - else: - if 'EOF' == typ: - # add again as style needs it - styletokens.append(braceorEOFtoken) - - # SET - try: - self.style.cssText = styletokens - except: - # reset in case of error - self.selectorList._absorb(oldselector) - raise - - if not ok or not self.wellformed: - # reset as not ok - self.selectorList._absorb(oldselector) - self.style._absorb(oldstyle) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - - def __getNamespaces(self): - "Uses children namespaces if not attached to a sheet, else the sheet's ones." - try: - return self.parentStyleSheet.namespaces - except AttributeError: - return self.selectorList._namespaces - - _namespaces = property(__getNamespaces, - doc="If this Rule is attached to a CSSStyleSheet " - "the namespaces of that sheet are mirrored " - "here. While the Rule is not attached the " - "namespaces of selectorList are used.""") - - def _setSelectorList(self, selectorList): - """ - :param selectorList: A SelectorList which replaces the current - selectorList object - """ - self._checkReadonly() - selectorList._parentRule = self - self._selectorList = selectorList - - selectorList = property(lambda self: self._selectorList, _setSelectorList, - doc="The SelectorList of this rule.") - - def _setSelectorText(self, selectorText): - """ - wrapper for cssutils SelectorList object - - :param selectorText: - of type string, might also be a comma separated list - of selectors - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - self._selectorList.selectorText = selectorText - - selectorText = property(lambda self: self._selectorList.selectorText, - _setSelectorText, - doc="(DOM) The textual representation of the " - "selector for the rule set.") - - def _setStyle(self, style): - """ - :param style: A string or CSSStyleDeclaration which replaces the - current style object. - """ - self._checkReadonly() - if isinstance(style, basestring): - self._style.cssText = style - else: - style._parentRule = self - self._style = style - - style = property(lambda self: self._style, _setStyle, - doc="(DOM) The declaration-block of this rule set.") - - type = property(lambda self: self.STYLE_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: self.selectorList.wellformed) diff --git a/src/cssutils/css/cssstylesheet.py b/src/cssutils/css/cssstylesheet.py deleted file mode 100644 index f6bc2cb7cd..0000000000 --- a/src/cssutils/css/cssstylesheet.py +++ /dev/null @@ -1,739 +0,0 @@ -"""CSSStyleSheet implements DOM Level 2 CSS CSSStyleSheet. - -Partly also: - - http://dev.w3.org/csswg/cssom/#the-cssstylesheet - - http://www.w3.org/TR/2006/WD-css3-namespace-20060828/ - -TODO: - - ownerRule and ownerNode -""" -__all__ = ['CSSStyleSheet'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstylesheet.py 1857 2009-10-10 21:49:33Z cthedot $' - -from cssutils.helper import Deprecated -from cssutils.util import _Namespaces, _SimpleNamespaces, _readUrl -from cssrule import CSSRule -import cssutils.stylesheets -import xml.dom - -class CSSStyleSheet(cssutils.stylesheets.StyleSheet): - """CSSStyleSheet represents a CSS style sheet. - - Format:: - - stylesheet - : [ CHARSET_SYM S* STRING S* ';' ]? - [S|CDO|CDC]* [ import [S|CDO|CDC]* ]* - [ namespace [S|CDO|CDC]* ]* # according to @namespace WD - [ [ ruleset | media | page ] [S|CDO|CDC]* ]* - - ``cssRules`` - All Rules in this style sheet, a :class:`~cssutils.css.CSSRuleList`. - """ - def __init__(self, href=None, media=None, title=u'', disabled=None, - ownerNode=None, parentStyleSheet=None, readonly=False, - ownerRule=None): - """ - For parameters see :class:`~cssutils.stylesheets.StyleSheet` - """ - super(CSSStyleSheet, self).__init__( - 'text/css', href, media, title, disabled, - ownerNode, parentStyleSheet) - - self._ownerRule = ownerRule - self.cssRules = cssutils.css.CSSRuleList() - self._namespaces = _Namespaces(parentStyleSheet=self, log=self._log) - self._readonly = readonly - - # used only during setting cssText by parse*() - self.__encodingOverride = None - self._fetcher = None - - def __iter__(self): - "Generator which iterates over cssRules." - for rule in self._cssRules: - yield rule - - def __repr__(self): - if self.media: - mediaText = self.media.mediaText - else: - mediaText = None - return "cssutils.css.%s(href=%r, media=%r, title=%r)" % ( - self.__class__.__name__, - self.href, mediaText, self.title) - - def __str__(self): - if self.media: - mediaText = self.media.mediaText - else: - mediaText = None - return "" % ( - self.__class__.__name__, self.encoding, self.href, - mediaText, self.title, self.namespaces.namespaces, - id(self)) - - def _cleanNamespaces(self): - "Remove all namespace rules with same namespaceURI but last one set." - rules = self._cssRules - namespaceitems = self.namespaces.items() - i = 0 - while i < len(rules): - rule = rules[i] - if rule.type == rule.NAMESPACE_RULE and \ - (rule.prefix, rule.namespaceURI) not in namespaceitems: - self.deleteRule(i) - else: - i += 1 - - def _getUsedURIs(self): - "Return set of URIs used in the sheet." - useduris = set() - for r1 in self: - if r1.STYLE_RULE == r1.type: - useduris.update(r1.selectorList._getUsedUris()) - elif r1.MEDIA_RULE == r1.type: - for r2 in r1: - if r2.type == r2.STYLE_RULE: - useduris.update(r2.selectorList._getUsedUris()) - return useduris - - def _setCssRules(self, cssRules): - "Set new cssRules and update contained rules refs." - cssRules.append = self.insertRule - cssRules.extend = self.insertRule - cssRules.__delitem__ == self.deleteRule - for rule in cssRules: - rule._parentStyleSheet = self - self._cssRules = cssRules - - cssRules = property(lambda self: self._cssRules, _setCssRules, - "All Rules in this style sheet, a " - ":class:`~cssutils.css.CSSRuleList`.") - - def _getCssText(self): - "Textual representation of the stylesheet (a byte string)." - return cssutils.ser.do_CSSStyleSheet(self) - - def _setCssText(self, cssText): - """Parse `cssText` and overwrites the whole stylesheet. - - :param cssText: - a parseable string or a tuple of (cssText, dict-of-namespaces) - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - If a namespace prefix is found which is not declared. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - """ - self._checkReadonly() - - cssText, namespaces = self._splitNamespacesOff(cssText) - if not namespaces: - namespaces = _SimpleNamespaces(log=self._log) - - tokenizer = self._tokenize2(cssText) - newseq = [] #cssutils.css.CSSRuleList() - - # for closures: must be a mutable - new = {'encoding': None, # needed for setting encoding of @import rules - 'namespaces': namespaces} - def S(expected, seq, token, tokenizer=None): - # @charset must be at absolute beginning of style sheet - if expected == 0: - return 1 - else: - return expected - - def COMMENT(expected, seq, token, tokenizer=None): - "special: sets parent*" - comment = cssutils.css.CSSComment([token], - parentStyleSheet=self.parentStyleSheet) - seq.append(comment) - return expected - - def charsetrule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSCharsetRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if expected > 0 or len(seq) > 0: - self._log.error( - u'CSSStylesheet: CSSCharsetRule only allowed at beginning of stylesheet.', - token, xml.dom.HierarchyRequestErr) - else: - if rule.wellformed: - seq.append(rule) - new['encoding'] = rule.encoding - return 1 - - def importrule(expected, seq, token, tokenizer): - if new['encoding']: - # set temporarily as used by _resolveImport - # save newEncoding which have been set by resolveImport - self.__newEncoding = new['encoding'] - - rule = cssutils.css.CSSImportRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if expected > 1: - self._log.error( - u'CSSStylesheet: CSSImportRule not allowed here.', - token, xml.dom.HierarchyRequestErr) - else: - if rule.wellformed: - #del rule._parentEncoding # remove as later it is read from this sheet! - seq.append(rule) - - try: - # remove as only used temporarily but may not be set at all - del self.__newEncoding - except AttributeError, e: - pass - - return 1 - - def namespacerule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSNamespaceRule( - cssText=self._tokensupto2(tokenizer, token), - parentStyleSheet=self) - if expected > 2: - self._log.error( - u'CSSStylesheet: CSSNamespaceRule not allowed here.', - token, xml.dom.HierarchyRequestErr) - else: - if rule.wellformed: - for i, r in enumerate(seq): - if r.type == r.NAMESPACE_RULE and r.prefix == rule.prefix: - # replace as doubled: - seq[i] = rule - self._log.info( - u'CSSStylesheet: CSSNamespaceRule with same prefix found, replacing: %r' - % r.cssText, - token, neverraise=True) - seq.append(rule) - # temporary namespaces given to CSSStyleRule and @media - new['namespaces'][rule.prefix] = rule.namespaceURI - return 2 - - def variablesrule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSVariablesRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return 2 - - def fontfacerule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSFontFaceRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return 3 - - def mediarule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSMediaRule() - rule.cssText = (self._tokensupto2(tokenizer, token), - new['namespaces']) - if rule.wellformed: - rule._parentStyleSheet=self - for r in rule: - r._parentStyleSheet=self - seq.append(rule) - return 3 - - def pagerule(expected, seq, token, tokenizer): - rule = cssutils.css.CSSPageRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return 3 - - def unknownrule(expected, seq, token, tokenizer): - self._log.warn( - u'CSSStylesheet: Unknown @rule found.', - token, neverraise=True) - rule = cssutils.css.CSSUnknownRule(parentStyleSheet=self) - rule.cssText = self._tokensupto2(tokenizer, token) - if rule.wellformed: - seq.append(rule) - return expected - - def ruleset(expected, seq, token, tokenizer): - rule = cssutils.css.CSSStyleRule() - rule.cssText = (self._tokensupto2(tokenizer, token), - new['namespaces']) - if rule.wellformed: - rule._parentStyleSheet=self - seq.append(rule) - return 3 - - # expected: - # ['CHARSET', 'IMPORT', 'NAMESPACE', ('PAGE', 'MEDIA', ruleset)] - wellformed, expected = self._parse(0, newseq, tokenizer, - {'S': S, - 'COMMENT': COMMENT, - 'CDO': lambda *ignored: None, - 'CDC': lambda *ignored: None, - 'CHARSET_SYM': charsetrule, - 'FONT_FACE_SYM': fontfacerule, - 'IMPORT_SYM': importrule, - 'NAMESPACE_SYM': namespacerule, - 'PAGE_SYM': pagerule, - 'MEDIA_SYM': mediarule, - 'VARIABLES_SYM': variablesrule, - 'ATKEYWORD': unknownrule - }, - default=ruleset) - - if wellformed: - del self._cssRules[:] - for rule in newseq: - self.insertRule(rule, _clean=False) - self._cleanNamespaces() - - cssText = property(_getCssText, _setCssText, - "Textual representation of the stylesheet (a byte string)") - - def _resolveImport(self, url): - """Read (encoding, enctype, decodedContent) from `url` for @import - sheets.""" - try: - # only available during parse of a complete sheet - selfAsParentEncoding = self.__newEncoding - except AttributeError: - try: - # explicit @charset - selfAsParentEncoding = self._cssRules[0].encoding - except (IndexError, AttributeError): - # default not UTF-8 but None! - selfAsParentEncoding = None - - return _readUrl(url, fetcher=self._fetcher, - overrideEncoding=self.__encodingOverride, - parentEncoding=selfAsParentEncoding) - - def _setCssTextWithEncodingOverride(self, cssText, encodingOverride=None, - encoding=None): - """Set `cssText` but use `encodingOverride` to overwrite detected - encoding. This is used by parse and @import during setting of cssText. - - If `encoding` is given use this but do not save it as `encodingOverride`.""" - if encodingOverride: - # encoding during resolving of @import - self.__encodingOverride = encodingOverride - - self.__newEncoding = encoding # save for nested @import - self.cssText = cssText - - if encodingOverride: - # set encodingOverride explicit again! - self.encoding = self.__encodingOverride - # remove? - self.__encodingOverride = None - elif encoding: - # may e.g. be httpEncoding - self.encoding = encoding - - def _setFetcher(self, fetcher=None): - """Set @import URL loader, if None the default is used.""" - self._fetcher = fetcher - - def _getEncoding(self): - """Encoding set in :class:`~cssutils.css.CSSCharsetRule` or if ``None`` - resulting in default ``utf-8`` encoding being used.""" - try: - return self._cssRules[0].encoding - except (IndexError, AttributeError): - return 'utf-8' - - def _setEncoding(self, encoding): - """Set `encoding` of charset rule if present in sheet or insert a new - :class:`~cssutils.css.CSSCharsetRule` with given `encoding`. - If `encoding` is None removes charsetrule if present resulting in - default encoding of utf-8. - """ - try: - rule = self._cssRules[0] - except IndexError: - rule = None - if rule and rule.CHARSET_RULE == rule.type: - if encoding: - rule.encoding = encoding - else: - self.deleteRule(0) - elif encoding: - self.insertRule(cssutils.css.CSSCharsetRule(encoding=encoding), 0) - - encoding = property(_getEncoding, _setEncoding, - "(cssutils) Reflect encoding of an @charset rule or 'utf-8' " - "(default) if set to ``None``") - - namespaces = property(lambda self: self._namespaces, - doc="All Namespaces used in this CSSStyleSheet.") - - def add(self, rule): - """Add `rule` to style sheet at appropriate position. - Same as ``insertRule(rule, inOrder=True)``. - """ - return self.insertRule(rule, index=None, inOrder=True) - - def deleteRule(self, index): - """Delete rule at `index` from the style sheet. - - :param index: - The `index` of the rule to be removed from the StyleSheet's rule - list. For an `index` < 0 **no** :exc:`~xml.dom.IndexSizeErr` is - raised but rules for normal Python lists are used. E.g. - ``deleteRule(-1)`` removes the last rule in cssRules. - - `index` may also be a CSSRule object which will then be removed - from the StyleSheet. - - :exceptions: - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified index does not correspond to a rule in - the style sheet's rule list. - - :exc:`~xml.dom.NamespaceErr`: - Raised if removing this rule would result in an invalid StyleSheet - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this style sheet is readonly. - """ - self._checkReadonly() - - if isinstance(index, CSSRule): - for i, r in enumerate(self.cssRules): - if index == r: - index = i - break - else: - raise xml.dom.IndexSizeErr(u"CSSStyleSheet: Not a rule in" - " this sheets'a cssRules list: %s" - % index) - - try: - rule = self._cssRules[index] - except IndexError: - raise xml.dom.IndexSizeErr( - u'CSSStyleSheet: %s is not a valid index in the rulelist of length %i' % ( - index, self._cssRules.length)) - else: - if rule.type == rule.NAMESPACE_RULE: - # check all namespacerules if used - uris = [r.namespaceURI for r in self if r.type == r.NAMESPACE_RULE] - useduris = self._getUsedURIs() - if rule.namespaceURI in useduris and\ - uris.count(rule.namespaceURI) == 1: - raise xml.dom.NoModificationAllowedErr( - u'CSSStyleSheet: NamespaceURI defined in this rule is used, cannot remove.') - return - - rule._parentStyleSheet = None # detach - del self._cssRules[index] # delete from StyleSheet - - def insertRule(self, rule, index=None, inOrder=False, _clean=True): - """ - Used to insert a new rule into the style sheet. The new rule now - becomes part of the cascade. - - :param rule: - a parsable DOMString, in cssutils also a - :class:`~cssutils.css.CSSRule` or :class:`~cssutils.css.CSSRuleList` - :param index: - of the rule before the new rule will be inserted. - If the specified `index` is equal to the length of the - StyleSheet's rule collection, the rule will be added to the end - of the style sheet. - If `index` is not given or ``None`` rule will be appended to rule - list. - :param inOrder: - if ``True`` the rule will be put to a proper location while - ignoring `index` and without raising :exc:`~xml.dom.HierarchyRequestErr`. - The resulting index is returned nevertheless. - :returns: The index within the style sheet's rule collection - :Exceptions: - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at the specified `index` - e.g. if an @import rule is inserted after a standard rule set - or other at-rule. - - :exc:`~xml.dom.IndexSizeErr`: - Raised if the specified `index` is not a valid insertion point. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this style sheet is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified rule has a syntax error and is - unparsable. - """ - self._checkReadonly() - - # check position - if index is None: - index = len(self._cssRules) - elif index < 0 or index > self._cssRules.length: - raise xml.dom.IndexSizeErr( - u'CSSStyleSheet: Invalid index %s for CSSRuleList with a length of %s.' % ( - index, self._cssRules.length)) - return - - if isinstance(rule, basestring): - # init a temp sheet which has the same properties as self - tempsheet = CSSStyleSheet(href=self.href, - media=self.media, - title=self.title, - parentStyleSheet=self.parentStyleSheet, - ownerRule=self.ownerRule) - tempsheet._ownerNode = self.ownerNode - tempsheet._fetcher = self._fetcher - - # prepend encoding if in this sheet to be able to use it in - # @import rules encoding resolution - # do not add if new rule startswith "@charset" (which is exact!) - if not rule.startswith(u'@charset') and (self._cssRules and - self._cssRules[0].type == self._cssRules[0].CHARSET_RULE): - # rule 0 is @charset! - newrulescount, newruleindex = 2, 1 - rule = self._cssRules[0].cssText + rule - else: - newrulescount, newruleindex = 1, 0 - - # parse the new rule(s) - tempsheet.cssText = (rule, self._namespaces) - - if len(tempsheet.cssRules) != newrulescount or (not isinstance( - tempsheet.cssRules[newruleindex], cssutils.css.CSSRule)): - self._log.error(u'CSSStyleSheet: Not a CSSRule: %s' % rule) - return - rule = tempsheet.cssRules[newruleindex] - rule._parentStyleSheet = None # done later? - - # TODO: - #tempsheet._namespaces = self._namespaces - - elif isinstance(rule, cssutils.css.CSSRuleList): - # insert all rules - for i, r in enumerate(rule): - self.insertRule(r, index + i) - return index - - if not rule.wellformed: - self._log.error(u'CSSStyleSheet: Invalid rules cannot be added.') - return - - # CHECK HIERARCHY - # @charset - if rule.type == rule.CHARSET_RULE: - if inOrder: - index = 0 - # always first and only - if (self._cssRules - and self._cssRules[0].type == rule.CHARSET_RULE): - self._cssRules[0].encoding = rule.encoding - else: - self._cssRules.insert(0, rule) - elif index != 0 or (self._cssRules and - self._cssRules[0].type == rule.CHARSET_RULE): - self._log.error( - u'CSSStylesheet: @charset only allowed once at the' - ' beginning of a stylesheet.', - error=xml.dom.HierarchyRequestErr) - return - else: - self._cssRules.insert(index, rule) - - # @unknown or comment - elif rule.type in (rule.UNKNOWN_RULE, rule.COMMENT) and not inOrder: - if index == 0 and self._cssRules and\ - self._cssRules[0].type == rule.CHARSET_RULE: - self._log.error( - u'CSSStylesheet: @charset must be the first rule.', - error=xml.dom.HierarchyRequestErr) - return - else: - self._cssRules.insert(index, rule) - - # @import - elif rule.type == rule.IMPORT_RULE: - if inOrder: - # automatic order - if rule.type in (r.type for r in self): - # find last of this type - for i, r in enumerate(reversed(self._cssRules)): - if r.type == rule.type: - index = len(self._cssRules) - i - break - else: - # find first point to insert - if self._cssRules and self._cssRules[0].type in (rule.CHARSET_RULE, - rule.COMMENT): - index = 1 - else: - index = 0 - else: - # after @charset - if index == 0 and self._cssRules and\ - self._cssRules[0].type == rule.CHARSET_RULE: - self._log.error( - u'CSSStylesheet: Found @charset at index 0.', - error=xml.dom.HierarchyRequestErr) - return - # before @namespace @variables @page @font-face @media stylerule - for r in self._cssRules[:index]: - if r.type in (r.NAMESPACE_RULE, - r.VARIABLES_RULE, - r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @import here,' - ' found @namespace, @variables, @media, @page or' - ' CSSStyleRule before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - self._cssRules.insert(index, rule) - - # @namespace - elif rule.type == rule.NAMESPACE_RULE: - if inOrder: - if rule.type in (r.type for r in self): - # find last of this type - for i, r in enumerate(reversed(self._cssRules)): - if r.type == rule.type: - index = len(self._cssRules) - i - break - else: - # find first point to insert - for i, r in enumerate(self._cssRules): - if r.type in (r.VARIABLES_RULE, r.MEDIA_RULE, - r.PAGE_RULE, r.STYLE_RULE, - r.FONT_FACE_RULE, r.UNKNOWN_RULE, - r.COMMENT): - index = i # before these - break - else: - # after @charset and @import - for r in self._cssRules[index:]: - if r.type in (r.CHARSET_RULE, r.IMPORT_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @namespace here,' - ' found @charset or @import after index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - # before @variables @media @page @font-face and stylerule - for r in self._cssRules[:index]: - if r.type in (r.VARIABLES_RULE, - r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @namespace here,' - ' found @variables, @media, @page or CSSStyleRule' - ' before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - - if not (rule.prefix in self.namespaces and - self.namespaces[rule.prefix] == rule.namespaceURI): - # no doublettes - self._cssRules.insert(index, rule) - if _clean: - self._cleanNamespaces() - - - # @variables - elif rule.type == rule.VARIABLES_RULE: - if inOrder: - if rule.type in (r.type for r in self): - # find last of this type - for i, r in enumerate(reversed(self._cssRules)): - if r.type == rule.type: - index = len(self._cssRules) - i - break - else: - # find first point to insert - for i, r in enumerate(self._cssRules): - if r.type in (r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE, - r.UNKNOWN_RULE, - r.COMMENT): - index = i # before these - break - else: - # after @charset @import @namespace - for r in self._cssRules[index:]: - if r.type in (r.CHARSET_RULE, - r.IMPORT_RULE, - r.NAMESPACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @variables here,' - ' found @charset, @import or @namespace after' - ' index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - # before @media @page @font-face and stylerule - for r in self._cssRules[:index]: - if r.type in (r.MEDIA_RULE, - r.PAGE_RULE, - r.STYLE_RULE, - r.FONT_FACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert @variables here,' - ' found @media, @page or CSSStyleRule' - ' before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - - self._cssRules.insert(index, rule) - - # all other where order is not important - else: - if inOrder: - # simply add to end as no specific order - self._cssRules.append(rule) - index = len(self._cssRules) - 1 - else: - for r in self._cssRules[index:]: - if r.type in (r.CHARSET_RULE, r.IMPORT_RULE, r.NAMESPACE_RULE): - self._log.error( - u'CSSStylesheet: Cannot insert rule here, found @charset, @import or @namespace before index %s.' % - index, - error=xml.dom.HierarchyRequestErr) - return - self._cssRules.insert(index, rule) - - # post settings, TODO: for other rules which contain @rules - rule._parentStyleSheet = self - if rule.MEDIA_RULE == rule.type: - for r in rule: - r._parentStyleSheet = self - # ? - elif rule.IMPORT_RULE == rule.type: - rule.href = rule.href # try to reload stylesheet - - return index - - ownerRule = property(lambda self: self._ownerRule, - doc="A ref to an @import rule if it is imported, else ``None``.") - - def setSerializer(self, cssserializer): - """Set the cssutils global Serializer used for all output.""" - if isinstance(cssserializer, cssutils.CSSSerializer): - cssutils.ser = cssserializer - else: - raise ValueError(u'Serializer must be an instance of cssutils.CSSSerializer.') - - def setSerializerPref(self, pref, value): - """Set a Preference of CSSSerializer used for output. - See :class:`cssutils.serialize.Preferences` for possible - preferences to be set. - """ - cssutils.ser.prefs.__setattr__(pref, value) diff --git a/src/cssutils/css/cssunknownrule.py b/src/cssutils/css/cssunknownrule.py deleted file mode 100644 index 5659b19a9b..0000000000 --- a/src/cssutils/css/cssunknownrule.py +++ /dev/null @@ -1,208 +0,0 @@ -"""CSSUnknownRule implements DOM Level 2 CSS CSSUnknownRule.""" -__all__ = ['CSSUnknownRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssunknownrule.py 1897 2009-12-17 22:09:06Z cthedot $' - -import cssrule -import cssutils -import xml.dom - -class CSSUnknownRule(cssrule.CSSRule): - """ - Represents an at-rule not supported by this user agent, so in - effect all other at-rules not defined in cssutils. - - Format:: - - @xxx until ';' or block {...} - """ - def __init__(self, cssText=u'', parentRule=None, - parentStyleSheet=None, readonly=False): - """ - :param cssText: - of type string - """ - super(CSSUnknownRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = None - if cssText: - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssText, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSUnknownRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - super(CSSUnknownRule, self)._setCssText(cssText) - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if not attoken or self._type(attoken) != self._prods.ATKEYWORD: - self._log.error(u'CSSUnknownRule: No CSSUnknownRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # for closures: must be a mutable - new = {'nesting': [], # {} [] or () - 'wellformed': True - } - - def CHAR(expected, seq, token, tokenizer=None): - type_, val, line, col = token - if expected != 'EOF': - if val in u'{[(': - new['nesting'].append(val) - elif val in u'}])': - opening = {u'}': u'{', u']': u'[', u')': u'('}[val] - try: - if new['nesting'][-1] == opening: - new['nesting'].pop() - else: - raise IndexError() - except IndexError: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Wrong nesting of {, [ or (.', - token=token) - - if val in u'};' and not new['nesting']: - expected = 'EOF' - - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def FUNCTION(expected, seq, token, tokenizer=None): - # handled as opening ( - type_, val, line, col = token - val = self._tokenvalue(token) - if expected != 'EOF': - new['nesting'].append(u'(') - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def EOF(expected, seq, token, tokenizer=None): - "close all blocks and return 'EOF'" - for x in reversed(new['nesting']): - closing = {u'{': u'}', u'[': u']', u'(': u')'}[x] - seq.append(closing, closing) - new['nesting'] = [] - return 'EOF' - - def INVALID(expected, seq, token, tokenizer=None): - # makes rule invalid - self._log.error(u'CSSUnknownRule: Bad syntax.', - token=token, error=xml.dom.SyntaxErr) - new['wellformed'] = False - return expected - - def STRING(expected, seq, token, tokenizer=None): - type_, val, line, col = token - val = self._stringtokenvalue(token) - if expected != 'EOF': - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def URI(expected, seq, token, tokenizer=None): - type_, val, line, col = token - val = self._uritokenvalue(token) - if expected != 'EOF': - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - def default(expected, seq, token, tokenizer=None): - type_, val, line, col = token - if expected != 'EOF': - seq.append(val, type_, line=line, col=col) - return expected - else: - new['wellformed'] = False - self._log.error(u'CSSUnknownRule: Expected end of rule.', - token=token) - return expected - - # unknown : ATKEYWORD S* ... ; | } - newseq = self._tempSeq() - wellformed, expected = self._parse(expected=None, - seq=newseq, tokenizer=tokenizer, - productions={'CHAR': CHAR, - 'EOF': EOF, - 'FUNCTION': FUNCTION, - 'INVALID': INVALID, - 'STRING': STRING, - 'URI': URI, - 'S': default # overwrite default default! - }, - default=default, - new=new) - - # wellformed set by parse - wellformed = wellformed and new['wellformed'] - - # post conditions - if expected != 'EOF': - wellformed = False - self._log.error( - u'CSSUnknownRule: No ending ";" or "}" found: %r' % - self._valuestr(cssText)) - elif new['nesting']: - wellformed = False - self._log.error( - u'CSSUnknownRule: Unclosed "{", "[" or "(": %r' % - self._valuestr(cssText)) - - # set all - if wellformed: - self.atkeyword = self._tokenvalue(attoken) - self._setSeq(newseq) - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="(DOM) The parsable textual representation.") - - type = property(lambda self: self.UNKNOWN_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - wellformed = property(lambda self: bool(self.atkeyword)) - \ No newline at end of file diff --git a/src/cssutils/css/cssvalue.py b/src/cssutils/css/cssvalue.py deleted file mode 100644 index 4b045e78dd..0000000000 --- a/src/cssutils/css/cssvalue.py +++ /dev/null @@ -1,1137 +0,0 @@ -"""CSSValue related classes - -- CSSValue implements DOM Level 2 CSS CSSValue -- CSSPrimitiveValue implements DOM Level 2 CSS CSSPrimitiveValue -- CSSValueList implements DOM Level 2 CSS CSSValueList - -""" -__all__ = ['CSSValue', 'CSSPrimitiveValue', 'CSSValueList', - 'CSSVariable', 'RGBColor'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssvalue.py 1909 2010-01-04 19:28:52Z cthedot $' - -from cssutils.prodparser import * -import cssutils -import cssutils.helper -import re -import xml.dom - - -class CSSValue(cssutils.util._NewBase): - """The CSSValue interface represents a simple or a complex value. - A CSSValue object only occurs in a context of a CSS property. - """ - - # The value is inherited and the cssText contains "inherit". - CSS_INHERIT = 0 - # The value is a CSSPrimitiveValue. - CSS_PRIMITIVE_VALUE = 1 - # The value is a CSSValueList. - CSS_VALUE_LIST = 2 - # The value is a custom value. - CSS_CUSTOM = 3 - # The value is a CSSVariable. - CSS_VARIABLE = 4 - - _typestrings = {0: 'CSS_INHERIT' , - 1: 'CSS_PRIMITIVE_VALUE', - 2: 'CSS_VALUE_LIST', - 3: 'CSS_CUSTOM', - 4: 'CSS_VARIABLE'} - - def __init__(self, cssText=None, parent=None, readonly=False): - """ - :param cssText: - the parsable cssText of the value - :param readonly: - defaults to False - """ - super(CSSValue, self).__init__() - - self._cssValueType = None - self.wellformed = False - self.parent = parent - - if cssText is not None: # may be 0 - if type(cssText) in (int, float): - cssText = unicode(cssText) # if it is a number - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssValueTypeString, - self.cssText, id(self)) - - def _setCssText(self, cssText): - """ - Format:: - - unary_operator - : '-' | '+' - ; - operator - : '/' S* | ',' S* | /* empty */ - ; - expr - : term [ operator term ]* - ; - term - : unary_operator? - [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | - TIME S* | FREQ S* ] - | STRING S* | IDENT S* | URI S* | hexcolor | function - | UNICODE-RANGE S* - ; - function - : FUNCTION S* expr ')' S* - ; - /* - * There is a constraint on the color that it must - * have either 3 or 6 hex-digits (i.e., [0-9a-fA-F]) - * after the "#"; e.g., "#000" is OK, but "#abcd" is not. - */ - hexcolor - : HASH S* - ; - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - (according to the attached property) or is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - TODO: Raised if the specified CSS string value represents a different - type of values than the values allowed by the CSS property. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this value is readonly. - """ - self._checkReadonly() - - # used as operator is , / or S - nextSor = u',/' - - term = Choice(Sequence(PreDef.unary(), - Choice(PreDef.number(nextSor=nextSor), - PreDef.percentage(nextSor=nextSor), - PreDef.dimension(nextSor=nextSor))), - PreDef.string(nextSor=nextSor), - PreDef.ident(nextSor=nextSor), - PreDef.uri(nextSor=nextSor), - PreDef.hexcolor(nextSor=nextSor), - PreDef.unicode_range(nextSor=nextSor), - # special case IE only expression - Prod(name='expression', - match=lambda t, v: t == self._prods.FUNCTION and ( - cssutils.helper.normalize(v) in (u'expression(', - u'alpha(') or - v.startswith(u'progid:DXImageTransform.Microsoft.') - ), - nextSor=nextSor, - toSeq=lambda t, tokens: (ExpressionValue._functionName, - ExpressionValue(cssutils.helper.pushtoken(t, - tokens))) - ), - # CSS Variable var( - PreDef.variable(nextSor=nextSor, - toSeq=lambda t, tokens: ('CSSVariable', - CSSVariable( - cssutils.helper.pushtoken(t, tokens)) - ) - ), - # other functions like rgb( etc - PreDef.function(nextSor=nextSor, - toSeq=lambda t, tokens: ('FUNCTION', - CSSFunction( - cssutils.helper.pushtoken(t, tokens)) - ) - ) - ) - operator = Choice(PreDef.S(), - PreDef.char('comma', ',', - toSeq=lambda t, tokens: ('operator', t[1])), - PreDef.char('slash', '/', - toSeq=lambda t, tokens: ('operator', t[1])), - optional=True) - # CSSValue PRODUCTIONS - valueprods = Sequence(term, - # TODO: only when setting via other class - PreDef.char('END', ';', - stopAndKeep=True, - optional=True), - Sequence(operator, # mayEnd this Sequence if whitespace - term, - PreDef.char('END', ';', - stopAndKeep=True, - optional=True), - minmax=lambda: (0, None))) - # parse - wellformed, seq, store, notused = ProdParser().parse(cssText, - u'CSSValue', - valueprods, - keepS=True) - if wellformed: - # - count actual values and set firstvalue which is used later on - # - combine comma separated list, e.g. font-family to a single item - # - remove S which should be an operator but is no needed - count, firstvalue = 0, () - newseq = self._tempSeq() - i, end = 0, len(seq) - while i < end: - item = seq[i] - if item.type == self._prods.S: - pass - - elif (item.value, item.type) == (u',', 'operator'): - # , separared counts as a single STRING for now - # URI or STRING value might be a single CHAR too! - newseq.appendItem(item) - count -= 1 - if firstvalue: - # list of IDENTs is handled as STRING! - if firstvalue[1] == self._prods.IDENT: - firstvalue = firstvalue[0], 'STRING' - - elif item.value == u'/': - # / separated items count as one - newseq.appendItem(item) - - elif item.value == u'-' or item.value == u'+': - # combine +- and following number or other - i += 1 - try: - next = seq[i] - except IndexError: - firstvalue = () # raised later - break - - newval = item.value + next.value - newseq.append(newval, next.type, - item.line, item.col) - if not firstvalue: - firstvalue = (newval, next.type) - count += 1 - - elif item.type != cssutils.css.CSSComment: - newseq.appendItem(item) - if not firstvalue: - firstvalue = (item.value, item.type) - count += 1 - - else: - newseq.appendItem(item) - - i += 1 - - if not firstvalue: - self._log.error( - u'CSSValue: Unknown syntax or no value: %r.' % - self._valuestr(cssText)) - else: - # ok and set - self._setSeq(newseq) - self.wellformed = wellformed - - if hasattr(self, '_value'): - # only in case of CSSPrimitiveValue, else remove! - del self._value - - if count == 1: - # inherit, primitive or variable - if isinstance(firstvalue[0], basestring) and\ - u'inherit' == cssutils.helper.normalize(firstvalue[0]): - self.__class__ = CSSValue - self._cssValueType = CSSValue.CSS_INHERIT - elif 'CSSVariable' == firstvalue[1]: - self.__class__ = CSSVariable - self._value = firstvalue - # TODO: remove major hack! - self._name = firstvalue[0]._name - else: - self.__class__ = CSSPrimitiveValue - self._value = firstvalue - - elif count > 1: - # valuelist - self.__class__ = CSSValueList - - # change items in list to specific type (primitive etc) - newseq = self._tempSeq() - commalist = [] - nexttocommalist = False - - def itemValue(item): - "Reserialized simple item.value" - if self._prods.STRING == item.type: - return cssutils.helper.string(item.value) - elif self._prods.URI == item.type: - return cssutils.helper.uri(item.value) - elif self._prods.FUNCTION == item.type or\ - 'CSSVariable' == item.type: - return item.value.cssText - else: - return item.value - - def saveifcommalist(commalist, newseq): - """ - saves items in commalist to seq and items - if anything in there - """ - if commalist: - newseq.replace(-1, - CSSPrimitiveValue(cssText=u''.join( - commalist)), - CSSPrimitiveValue, - newseq[-1].line, - newseq[-1].col) - del commalist[:] - - for i, item in enumerate(self._seq): - if item.type in (self._prods.DIMENSION, - self._prods.FUNCTION, - self._prods.HASH, - self._prods.IDENT, - self._prods.NUMBER, - self._prods.PERCENTAGE, - self._prods.STRING, - self._prods.URI, - self._prods.UNICODE_RANGE, - 'CSSVariable'): - if nexttocommalist: - # wait until complete - commalist.append(itemValue(item)) - else: - saveifcommalist(commalist, newseq) - # append new item - if hasattr(item.value, 'cssText'): - newseq.append(item.value, - item.value.__class__, - item.line, item.col) - - else: - newseq.append(CSSPrimitiveValue(itemValue(item)), - CSSPrimitiveValue, - item.line, item.col) - - nexttocommalist = False - - elif u',' == item.value: - if not commalist: - # save last item to commalist - commalist.append(itemValue(self._seq[i - 1])) - commalist.append(u',') - nexttocommalist = True - - else: - if nexttocommalist: - commalist.append(item.value.cssText) - else: - newseq.appendItem(item) - - saveifcommalist(commalist, newseq) - self._setSeq(newseq) - - else: - # should not happen... - self.__class__ = CSSValue - self._cssValueType = CSSValue.CSS_CUSTOM - - cssText = property(lambda self: cssutils.ser.do_css_CSSValue(self), - _setCssText, - doc="A string representation of the current value.") - - cssValueType = property(lambda self: self._cssValueType, - doc="A (readonly) code defining the type of the value.") - - cssValueTypeString = property( - lambda self: CSSValue._typestrings.get(self.cssValueType, None), - doc="(readonly) Name of cssValueType.") - - -class CSSPrimitiveValue(CSSValue): - """Represents a single CSS Value. May be used to determine the value of a - specific style property currently set in a block or to set a specific - style property explicitly within the block. Might be obtained from the - getPropertyCSSValue method of CSSStyleDeclaration. - - Conversions are allowed between absolute values (from millimeters to - centimeters, from degrees to radians, and so on) but not between - relative values. (For example, a pixel value cannot be converted to a - centimeter value.) Percentage values can't be converted since they are - relative to the parent value (or another property value). There is one - exception for color percentage values: since a color percentage value - is relative to the range 0-255, a color percentage value can be - converted to a number; (see also the RGBColor interface). - """ - # constant: type of this CSSValue class - cssValueType = CSSValue.CSS_PRIMITIVE_VALUE - - __types = cssutils.cssproductions.CSSProductions - - # An integer indicating which type of unit applies to the value. - CSS_UNKNOWN = 0 # only obtainable via cssText - CSS_NUMBER = 1 - CSS_PERCENTAGE = 2 - CSS_EMS = 3 - CSS_EXS = 4 - CSS_PX = 5 - CSS_CM = 6 - CSS_MM = 7 - CSS_IN = 8 - CSS_PT = 9 - CSS_PC = 10 - CSS_DEG = 11 - CSS_RAD = 12 - CSS_GRAD = 13 - CSS_MS = 14 - CSS_S = 15 - CSS_HZ = 16 - CSS_KHZ = 17 - CSS_DIMENSION = 18 - CSS_STRING = 19 - CSS_URI = 20 - CSS_IDENT = 21 - CSS_ATTR = 22 - CSS_COUNTER = 23 - CSS_RECT = 24 - CSS_RGBCOLOR = 25 - # NOT OFFICIAL: - CSS_RGBACOLOR = 26 - CSS_UNICODE_RANGE = 27 - - _floattypes = (CSS_NUMBER, CSS_PERCENTAGE, CSS_EMS, CSS_EXS, - CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC, - CSS_DEG, CSS_RAD, CSS_GRAD, CSS_MS, CSS_S, - CSS_HZ, CSS_KHZ, CSS_DIMENSION) - _stringtypes = (CSS_ATTR, CSS_IDENT, CSS_STRING, CSS_URI) - _countertypes = (CSS_COUNTER,) - _recttypes = (CSS_RECT,) - _rbgtypes = (CSS_RGBCOLOR, CSS_RGBACOLOR) - _lengthtypes = (CSS_NUMBER, CSS_EMS, CSS_EXS, - CSS_PX, CSS_CM, CSS_MM, CSS_IN, CSS_PT, CSS_PC) - - # oldtype: newType: converterfunc - _converter = { - # cm <-> mm <-> in, 1 inch is equal to 2.54 centimeters. - # pt <-> pc, the points used by CSS 2.1 are equal to 1/72nd of an inch. - # pc: picas - 1 pica is equal to 12 points - (CSS_CM, CSS_MM): lambda x: x * 10, - (CSS_MM, CSS_CM): lambda x: x / 10, - - (CSS_PT, CSS_PC): lambda x: x * 12, - (CSS_PC, CSS_PT): lambda x: x / 12, - - (CSS_CM, CSS_IN): lambda x: x / 2.54, - (CSS_IN, CSS_CM): lambda x: x * 2.54, - (CSS_MM, CSS_IN): lambda x: x / 25.4, - (CSS_IN, CSS_MM): lambda x: x * 25.4, - - (CSS_IN, CSS_PT): lambda x: x / 72, - (CSS_PT, CSS_IN): lambda x: x * 72, - (CSS_CM, CSS_PT): lambda x: x / 2.54 / 72, - (CSS_PT, CSS_CM): lambda x: x * 72 * 2.54, - (CSS_MM, CSS_PT): lambda x: x / 25.4 / 72, - (CSS_PT, CSS_MM): lambda x: x * 72 * 25.4, - - (CSS_IN, CSS_PC): lambda x: x / 72 / 12, - (CSS_PC, CSS_IN): lambda x: x * 12 * 72, - (CSS_CM, CSS_PC): lambda x: x / 2.54 / 72 / 12, - (CSS_PC, CSS_CM): lambda x: x * 12 * 72 * 2.54, - (CSS_MM, CSS_PC): lambda x: x / 25.4 / 72 / 12, - (CSS_PC, CSS_MM): lambda x: x * 12 * 72 * 25.4, - - # hz <-> khz - (CSS_KHZ, CSS_HZ): lambda x: x * 1000, - (CSS_HZ, CSS_KHZ): lambda x: x / 1000, - # s <-> ms - (CSS_S, CSS_MS): lambda x: x * 1000, - (CSS_MS, CSS_S): lambda x: x / 1000 - - # TODO: convert deg <-> rad <-> grad - } - - def __init__(self, cssText=None, readonly=False): - """See CSSPrimitiveValue.__init__()""" - super(CSSPrimitiveValue, self).__init__(cssText=cssText, - readonly=readonly) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.primitiveTypeString, - self.cssText, id(self)) - - _unitnames = ['CSS_UNKNOWN', - 'CSS_NUMBER', 'CSS_PERCENTAGE', - 'CSS_EMS', 'CSS_EXS', - 'CSS_PX', - 'CSS_CM', 'CSS_MM', - 'CSS_IN', - 'CSS_PT', 'CSS_PC', - 'CSS_DEG', 'CSS_RAD', 'CSS_GRAD', - 'CSS_MS', 'CSS_S', - 'CSS_HZ', 'CSS_KHZ', - 'CSS_DIMENSION', - 'CSS_STRING', 'CSS_URI', 'CSS_IDENT', - 'CSS_ATTR', 'CSS_COUNTER', 'CSS_RECT', - 'CSS_RGBCOLOR', 'CSS_RGBACOLOR', - 'CSS_UNICODE_RANGE' - ] - - _reNumDim = re.compile(ur'([+-]?\d*\.\d+|[+-]?\d+)(.*)$', re.I | re.U | re.X) - - def _unitDIMENSION(value): - """Check val for dimension name.""" - units = {'em': 'CSS_EMS', 'ex': 'CSS_EXS', - 'px': 'CSS_PX', - 'cm': 'CSS_CM', 'mm': 'CSS_MM', - 'in': 'CSS_IN', - 'pt': 'CSS_PT', 'pc': 'CSS_PC', - 'deg': 'CSS_DEG', 'rad': 'CSS_RAD', 'grad': 'CSS_GRAD', - 'ms': 'CSS_MS', 's': 'CSS_S', - 'hz': 'CSS_HZ', 'khz': 'CSS_KHZ' - } - val, dim = CSSPrimitiveValue._reNumDim.findall(cssutils.helper.normalize(value))[0] - return units.get(dim, 'CSS_DIMENSION') - - def _unitFUNCTION(value): - """Check val for function name.""" - units = {'attr(': 'CSS_ATTR', - 'counter(': 'CSS_COUNTER', - 'rect(': 'CSS_RECT', - 'rgb(': 'CSS_RGBCOLOR', - 'rgba(': 'CSS_RGBACOLOR', - } - return units.get(re.findall(ur'^(.*?\()', - cssutils.helper.normalize(value.cssText), - re.U)[0], - 'CSS_UNKNOWN') - - __unitbytype = { - __types.NUMBER: 'CSS_NUMBER', - __types.PERCENTAGE: 'CSS_PERCENTAGE', - __types.STRING: 'CSS_STRING', - __types.UNICODE_RANGE: 'CSS_UNICODE_RANGE', - __types.URI: 'CSS_URI', - __types.IDENT: 'CSS_IDENT', - __types.HASH: 'CSS_RGBCOLOR', - __types.DIMENSION: _unitDIMENSION, - __types.FUNCTION: _unitFUNCTION - } - - def __set_primitiveType(self): - """primitiveType is readonly but is set lazy if accessed""" - # TODO: check unary and font-family STRING a, b, "c" - val, type_ = self._value - # try get by type_ - pt = self.__unitbytype.get(type_, 'CSS_UNKNOWN') - if callable(pt): - # multiple options, check value too - pt = pt(val) - self._primitiveType = getattr(self, pt) - - def _getPrimitiveType(self): - if not hasattr(self, '_primitivetype'): - self.__set_primitiveType() - return self._primitiveType - - primitiveType = property(_getPrimitiveType, - doc="(readonly) The type of the value as defined " - "by the constants in this class.") - - def _getPrimitiveTypeString(self): - return self._unitnames[self.primitiveType] - - primitiveTypeString = property(_getPrimitiveTypeString, - doc="Name of primitive type of this value.") - - def _getCSSPrimitiveTypeString(self, type): - "get TypeString by given type which may be unknown, used by setters" - try: - return self._unitnames[type] - except (IndexError, TypeError): - return u'%r (UNKNOWN TYPE)' % type - - def _getNumDim(self, value=None): - "Split self._value in numerical and dimension part." - if value is None: - value = cssutils.helper.normalize(self._value[0]) - - try: - val, dim = CSSPrimitiveValue._reNumDim.findall(value)[0] - except IndexError: - val, dim = value, u'' - try: - val = float(val) - if val == int(val): - val = int(val) - except ValueError: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: No float value %r' % self._value[0]) - - return val, dim - - def getFloatValue(self, unitType=None): - """(DOM) This method is used to get a float value in a - specified unit. If this CSS value doesn't contain a float value - or can't be converted into the specified unit, a DOMException - is raised. - - :param unitType: - to get the float value. The unit code can only be a float unit type - (i.e. CSS_NUMBER, CSS_PERCENTAGE, CSS_EMS, CSS_EXS, CSS_PX, CSS_CM, - CSS_MM, CSS_IN, CSS_PT, CSS_PC, CSS_DEG, CSS_RAD, CSS_GRAD, CSS_MS, - CSS_S, CSS_HZ, CSS_KHZ, CSS_DIMENSION) or None in which case - the current dimension is used. - - :returns: - not necessarily a float but some cases just an integer - e.g. if the value is ``1px`` it return ``1`` and **not** ``1.0`` - - Conversions might return strange values like 1.000000000001 - """ - if unitType is not None and unitType not in self._floattypes: - raise xml.dom.InvalidAccessErr( - u'unitType Parameter is not a float type') - - val, dim = self._getNumDim() - - if unitType is not None and self.primitiveType != unitType: - # convert if needed - try: - val = self._converter[self.primitiveType, unitType](val) - except KeyError: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: Cannot coerce primitiveType %r to %r' - % (self.primitiveTypeString, - self._getCSSPrimitiveTypeString(unitType))) - - if val == int(val): - val = int(val) - - return val - - def setFloatValue(self, unitType, floatValue): - """(DOM) A method to set the float value with a specified unit. - If the property attached with this value can not accept the - specified unit or the float value, the value will be unchanged and - a DOMException will be raised. - - :param unitType: - a unit code as defined above. The unit code can only be a float - unit type - :param floatValue: - the new float value which does not have to be a float value but - may simple be an int e.g. if setting:: - - setFloatValue(CSS_PX, 1) - - :exceptions: - - :exc:`~xml.dom.InvalidAccessErr`: - Raised if the attached property doesn't - support the float value or the unit type. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this property is readonly. - """ - self._checkReadonly() - if unitType not in self._floattypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: unitType %r is not a float type' % - self._getCSSPrimitiveTypeString(unitType)) - try: - val = float(floatValue) - except ValueError, e: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: floatValue %r is not a float' % - floatValue) - - oldval, dim = self._getNumDim() - if self.primitiveType != unitType: - # convert if possible - try: - val = self._converter[unitType, self.primitiveType](val) - except KeyError: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: Cannot coerce primitiveType %r to %r' - % (self.primitiveTypeString, - self._getCSSPrimitiveTypeString(unitType))) - - if val == int(val): - val = int(val) - - self.cssText = '%s%s' % (val, dim) - - def getStringValue(self): - """(DOM) This method is used to get the string value. If the - CSS value doesn't contain a string value, a DOMException is raised. - - Some properties (like 'font-family' or 'voice-family') - convert a whitespace separated list of idents to a string. - - Only the actual value is returned so e.g. all the following return the - actual value ``a``: url(a), attr(a), "a", 'a' - """ - if self.primitiveType not in self._stringtypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue %r is not a string type' - % self.primitiveTypeString) - - if CSSPrimitiveValue.CSS_ATTR == self.primitiveType: - return self._value[0].cssText[5:-1] - else: - return self._value[0] - - def setStringValue(self, stringType, stringValue): - """(DOM) A method to set the string value with the specified - unit. If the property attached to this value can't accept the - specified unit or the string value, the value will be unchanged and - a DOMException will be raised. - - :param stringType: - a string code as defined above. The string code can only be a - string unit type (i.e. CSS_STRING, CSS_URI, CSS_IDENT, and - CSS_ATTR). - :param stringValue: - the new string value - Only the actual value is expected so for (CSS_URI, "a") the - new value will be ``url(a)``. For (CSS_STRING, "'a'") - the new value will be ``"\\'a\\'"`` as the surrounding ``'`` are - not part of the string value - - :exceptions: - - :exc:`~xml.dom.InvalidAccessErr`: - Raised if the CSS value doesn't contain a - string value or if the string value can't be converted into - the specified unit. - - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this property is readonly. - """ - self._checkReadonly() - # self not stringType - if self.primitiveType not in self._stringtypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue %r is not a string type' - % self.primitiveTypeString) - # given stringType is no StringType - if stringType not in self._stringtypes: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: stringType %s is not a string type' - % self._getCSSPrimitiveTypeString(stringType)) - - if self._primitiveType != stringType: - raise xml.dom.InvalidAccessErr( - u'CSSPrimitiveValue: Cannot coerce primitiveType %r to %r' - % (self.primitiveTypeString, - self._getCSSPrimitiveTypeString(stringType))) - - if CSSPrimitiveValue.CSS_STRING == self._primitiveType: - self.cssText = cssutils.helper.string(stringValue) - elif CSSPrimitiveValue.CSS_URI == self._primitiveType: - self.cssText = cssutils.helper.uri(stringValue) - elif CSSPrimitiveValue.CSS_ATTR == self._primitiveType: - self.cssText = u'attr(%s)' % stringValue - else: - self.cssText = stringValue - self._primitiveType = stringType - - def getCounterValue(self): - """(DOM) This method is used to get the Counter value. If - this CSS value doesn't contain a counter value, a DOMException - is raised. Modification to the corresponding style property - can be achieved using the Counter interface. - - **Not implemented.** - """ - if not self.CSS_COUNTER == self.primitiveType: - raise xml.dom.InvalidAccessErr(u'Value is not a counter type') - # TODO: use Counter class - raise NotImplementedError() - - def getRGBColorValue(self): - """(DOM) This method is used to get the RGB color. If this - CSS value doesn't contain a RGB color value, a DOMException - is raised. Modification to the corresponding style property - can be achieved using the RGBColor interface. - """ - if self.primitiveType not in self._rbgtypes: - raise xml.dom.InvalidAccessErr(u'Value is not a RGBColor value') - return RGBColor(self._value[0]) - - def getRectValue(self): - """(DOM) This method is used to get the Rect value. If this CSS - value doesn't contain a rect value, a DOMException is raised. - Modification to the corresponding style property can be achieved - using the Rect interface. - - **Not implemented.** - """ - if self.primitiveType not in self._recttypes: - raise xml.dom.InvalidAccessErr(u'value is not a Rect value') - # TODO: use Rect class - raise NotImplementedError() - - def _getCssText(self): - """Overwrites CSSValue.""" - return cssutils.ser.do_css_CSSPrimitiveValue(self) - - def _setCssText(self, cssText): - """Use CSSValue.""" - return super(CSSPrimitiveValue, self)._setCssText(cssText) - - cssText = property(_getCssText, _setCssText, - doc="A string representation of the current value.") - - -class CSSValueList(CSSValue): - """The CSSValueList interface provides the abstraction of an ordered - collection of CSS values. - - Some properties allow an empty list into their syntax. In that case, - these properties take the none identifier. So, an empty list means - that the property has the value none. - - The items in the CSSValueList are accessible via an integral index, - starting from 0. - """ - cssValueType = CSSValue.CSS_VALUE_LIST - - def __init__(self, cssText=None, parent=None, readonly=False): - """Init a new CSSValueList""" - super(CSSValueList, self).__init__(cssText=cssText, - parent=parent, - readonly=readonly) - self._items = [] - - def __iter__(self): - "CSSValueList is iterable." - for item in self.__items(): - yield item.value - - def __str__(self): - return "" % ( - self.__class__.__name__, self.cssValueTypeString, - self.cssText, self.length, id(self)) - - def __items(self): - return [item for item in self._seq - if isinstance(item.value, CSSValue)] - - def item(self, index): - """(DOM) Retrieve a CSSValue by ordinal `index`. The - order in this collection represents the order of the values in the - CSS style property. If `index` is greater than or equal to the number - of values in the list, this returns ``None``. - """ - try: - return self.__items()[index].value - except IndexError: - return None - - length = property(lambda self: len(self.__items()), - doc="(DOM attribute) The number of CSSValues in the list.") - - -class CSSFunction(CSSPrimitiveValue): - """A CSS function value like rect() etc.""" - _functionName = u'CSSFunction' - primitiveType = CSSPrimitiveValue.CSS_UNKNOWN - - def __init__(self, cssText=None, readonly=False): - """ - Init a new CSSFunction - - :param cssText: - the parsable cssText of the value - :param readonly: - defaults to False - """ - super(CSSFunction, self).__init__() - self._funcType = None - self.valid = False - self.wellformed = False - if cssText is not None: - self.cssText = cssText - - self._readonly = readonly - - def _productiondefinition(self): - """Return defintion used for parsing.""" - types = self._prods # rename! - valueOrFunc = Choice(Prod(name='PrimitiveValue', - match=lambda t, v: t in (types.DIMENSION, - types.IDENT, - types.NUMBER, - types.PERCENTAGE, - types.STRING), - toSeq=lambda t, tokens: (t[0], CSSPrimitiveValue(t[1])) - ), - # FUNC is actually not in spec but used in e.g. Prince - PreDef.function(toSeq=lambda t, - tokens: ('FUNCTION', - CSSFunction( - cssutils.helper.pushtoken(t, tokens)) - ) - ) - ) - - funcProds = Sequence(Prod(name='FUNC', - match=lambda t, v: t == types.FUNCTION, - toSeq=lambda t, tokens: (t[0], cssutils.helper.normalize(t[1]))), - Choice(Sequence(PreDef.unary(), - valueOrFunc, - # more values starting with Comma - # should use store where colorType is saved to - # define min and may, closure? - Sequence(PreDef.comma(), - PreDef.unary(), - valueOrFunc, - minmax=lambda: (0, 3)), - PreDef.funcEnd(stop=True)), - PreDef.funcEnd(stop=True)) - ) - return funcProds - - def _setCssText(self, cssText): - self._checkReadonly() - # store: colorType, parts - wellformed, seq, store, unusedtokens = ProdParser().parse(cssText, - self._functionName, - self._productiondefinition(), - keepS=True) - if wellformed: - # combine +/- and following CSSPrimitiveValue, remove S - newseq = self._tempSeq() - i, end = 0, len(seq) - while i < end: - item = seq[i] - if item.type == self._prods.S: - pass - elif item.value == u'+' or item.value == u'-': - i += 1 - next = seq[i] - newval = next.value - if isinstance(newval, CSSPrimitiveValue): - newval.setFloatValue(newval.primitiveType, - float(item.value + str(newval.getFloatValue()))) - newseq.append(newval, next.type, - item.line, item.col) - else: - # expressions only? - newseq.appendItem(item) - newseq.appendItem(next) - else: - newseq.appendItem(item) - - i += 1 - - self.wellformed = True - self._setSeq(newseq) - self._funcType = newseq[0].value - - cssText = property(lambda self: cssutils.ser.do_css_RGBColor(self), - _setCssText) - - funcType = property(lambda self: self._funcType) - - -class RGBColor(CSSPrimitiveValue): - """A CSS color like RGB, RGBA or a simple value like `#000` or `red`.""" - def __init__(self, cssText=None, readonly=False): - """ - Init a new RGBColor - - :param cssText: - the parsable cssText of the value - :param readonly: - defaults to False - """ - super(RGBColor, self).__init__() - self._colorType = None - self.valid = False - self.wellformed = False - if cssText is not None: - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(%r)" % (self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.colorType, self.cssText, - id(self)) - - def _setCssText(self, cssText): - self._checkReadonly() - types = self._prods # rename! - valueProd = Prod(name='value', - match=lambda t, v: t in (types.NUMBER, types.PERCENTAGE), - toSeq=lambda t, v: (CSSPrimitiveValue, CSSPrimitiveValue(v)), - toStore='parts' - ) - # COLOR PRODUCTION - funccolor = Sequence(Prod(name='FUNC', - match=lambda t, v: self._normalize(v) in ('rgb(', 'rgba(', 'hsl(', 'hsla(') and t == types.FUNCTION, - toSeq=lambda t, v: (t, self._normalize(v)), - toStore='colorType'), - PreDef.unary(), - valueProd, - # 2 or 3 more values starting with Comma - Sequence(PreDef.comma(), - PreDef.unary(), - valueProd, - minmax=lambda: (2, 3)), - PreDef.funcEnd() - ) - colorprods = Choice(funccolor, - PreDef.hexcolor('colorType'), - Prod(name='named color', - match=lambda t, v: t == types.IDENT, - toStore='colorType' - ) - ) - # store: colorType, parts - wellformed, seq, store, unusedtokens = ProdParser().parse(cssText, - u'RGBColor', - colorprods, - keepS=True, - store={'parts': []}) - - if wellformed: - self.wellformed = True - if store['colorType'].type == self._prods.HASH: - self._colorType = 'HEX' - elif store['colorType'].type == self._prods.IDENT: - self._colorType = 'Named Color' - else: - self._colorType = self._normalize(store['colorType'].value)[:-1] - - self._setSeq(seq) - - cssText = property(lambda self: cssutils.ser.do_css_RGBColor(self), - _setCssText) - - colorType = property(lambda self: self._colorType) - - -class ExpressionValue(CSSFunction): - """Special IE only CSSFunction which may contain *anything*. - Used for expressions and ``alpha(opacity=100)`` currently.""" - _functionName = u'Expression (IE only)' - - def _productiondefinition(self): - """Return defintion used for parsing.""" - types = self._prods # rename! - - def toSeq(t, tokens): - "Do not normalize function name!" - return t[0], t[1] - - funcProds = Sequence(Prod(name='expression', - match=lambda t, v: t == types.FUNCTION, - toSeq=toSeq - ), - Sequence(Choice(Prod(name='nested function', - match=lambda t, v: t == self._prods.FUNCTION, - toSeq=lambda t, tokens: (CSSFunction._functionName, - CSSFunction(cssutils.helper.pushtoken(t, - tokens))) - ), - Prod(name='part', - match=lambda t, v: v != u')', - toSeq=lambda t, tokens: (t[0], t[1])), - ), - minmax=lambda: (0, None)), - PreDef.funcEnd(stop=True)) - return funcProds - - def _getCssText(self): - return cssutils.ser.do_css_ExpressionValue(self) - - def _setCssText(self, cssText): - return super(ExpressionValue, self)._setCssText(cssText) - - cssText = property(_getCssText, _setCssText, - doc="A string representation of the current value.") - - -class CSSVariable(CSSValue): - """The CSSVariable represents a call to CSS Variable.""" - - def __init__(self, cssText=None, readonly=False): - """Init a new CSSVariable. - - :param cssText: - the parsable cssText of the value, e.g. ``var(x)`` - :param readonly: - defaults to False - """ - self._name = None - super(CSSVariable, self).__init__(cssText=cssText, - readonly=readonly) - - def __repr__(self): - return "cssutils.css.%s(%r)" % (self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.name, self.value, - id(self)) - - def _setCssText(self, cssText): - self._checkReadonly() - - types = self._prods # rename! - - funcProds = Sequence(Prod(name='var', - match=lambda t, v: t == types.FUNCTION - ), - PreDef.ident(toStore='ident'), - PreDef.funcEnd(stop=True)) - - # store: name of variable - store = {'ident': None} - wellformed, seq, store, unusedtokens = ProdParser().parse(cssText, - u'CSSVariable', - funcProds, - keepS=True) - if wellformed: - self._name = store['ident'].value - self._setSeq(seq) - self.wellformed = True - - cssText = property(lambda self: cssutils.ser.do_css_CSSVariable(self), - _setCssText, - doc="A string representation of the current variable.") - - cssValueType = CSSValue.CSS_VARIABLE - - # TODO: writable? check if var (value) available? - name = property(lambda self: self._name) - - def _getValue(self): - "Find contained sheet and @variables there" - # TODO: imports! - - # property: - if self.parent: - # styleDeclaration: - if self.parent.parent: - # styleRule: - if self.parent.parent.parentRule: - # stylesheet - if self.parent.parent.parentRule.parentStyleSheet: - sheet = self.parent.parent.parentRule.parentStyleSheet - for r in sheet.cssRules: - if r.VARIABLES_RULE == r.type and r.variables: - try: - return r.variables[self.name] - except KeyError: - return None - - value = property(_getValue) diff --git a/src/cssutils/css/cssvariablesdeclaration.py b/src/cssutils/css/cssvariablesdeclaration.py deleted file mode 100644 index 8595b68df6..0000000000 --- a/src/cssutils/css/cssvariablesdeclaration.py +++ /dev/null @@ -1,292 +0,0 @@ -"""CSSVariablesDeclaration -http://disruptive-innovations.com/zoo/cssvariables/#mozTocId496530 -""" -__all__ = ['CSSVariablesDeclaration'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssstyledeclaration.py 1819 2009-08-01 20:52:43Z cthedot $' - -from cssutils.prodparser import * -from cssvalue import CSSValue -import cssutils -import itertools -import xml.dom - -class CSSVariablesDeclaration(cssutils.util._NewBase): - """The CSSVariablesDeclaration interface represents a single block of - variable declarations. - """ - def __init__(self, cssText=u'', parentRule=None, readonly=False): - """ - :param cssText: - Shortcut, sets CSSVariablesDeclaration.cssText - :param parentRule: - The CSS rule that contains this declaration block or - None if this CSSVariablesDeclaration is not attached to a CSSRule. - :param readonly: - defaults to False - """ - super(CSSVariablesDeclaration, self).__init__() - self._parentRule = parentRule - self._vars = {} - if cssText: - self.cssText = cssText - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(cssText=%r)" % ( - self.__class__.__name__, self.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.length, id(self)) - - def __contains__(self, variableName): - """Check if a variable is in variable declaration block. - - :param variableName: - a string - """ - return variableName.lower() in self.keys() - - def __getitem__(self, variableName): - """Retrieve the value of variable ``variableName`` from this - declaration. - """ - return self.getVariableValue(variableName.lower()) - - def __setitem__(self, variableName, value): - self.setVariable(variableName.lower(), value) - - def __delitem__(self, variableName): - return self.removeVariable(variableName.lower()) - - def __iter__(self): - """Iterator of names of set variables.""" - for name in self.keys(): - yield name - - def _absorb(self, other): - """Replace all own data with data from other object.""" - self._parentRule = other._parentRule - self.seq.absorb(other.seq) - self._readonly = other._readonly - - def keys(self): - """Analoguous to standard dict returns variable names which are set in - this declaration.""" - return self._vars.keys() - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_css_CSSVariablesDeclaration(self) - - def _setCssText(self, cssText): - """Setting this attribute will result in the parsing of the new value - and resetting of all the properties in the declaration block - including the removal or addition of properties. - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or a property is readonly. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - Format:: - - variableset - : vardeclaration [ ';' S* vardeclaration ]* - ; - - vardeclaration - : varname ':' S* term - ; - - varname - : IDENT S* - ; - - expr - : [ VARCALL | term ] [ operator [ VARCALL | term ] ]* - ; - - """ - self._checkReadonly() - - vardeclaration = Sequence( - PreDef.ident(), - PreDef.char(u':', u':', toSeq=False), - #PreDef.S(toSeq=False, optional=True), - Prod(name=u'term', match=lambda t, v: True, - toSeq=lambda t, tokens: (u'value', - CSSValue(itertools.chain([t], - tokens)) - ) - ), - PreDef.char(u';', u';', toSeq=False, optional=True), - ) - prods = Sequence(vardeclaration, minmax=lambda: (0, None)) - # parse - wellformed, seq, store, notused = \ - ProdParser().parse(cssText, - u'CSSVariableDeclaration', - prods) - if wellformed: - newseq = self._tempSeq() - - # seq contains only name: value pairs plus comments etc - lastname = None - for item in seq: - if u'IDENT' == item.type: - lastname = item - self._vars[lastname.value.lower()] = None - elif u'value' == item.type: - self._vars[lastname.value.lower()] = item.value - newseq.append((lastname.value, item.value), - 'var', - lastname.line, lastname.col) - else: - newseq.appendItem(item) - - self._setSeq(newseq) - self.wellformed = True - - - cssText = property(_getCssText, _setCssText, - doc="(DOM) A parsable textual representation of the declaration\ - block excluding the surrounding curly braces.") - - def _setParentRule(self, parentRule): - self._parentRule = parentRule - - parentRule = property(lambda self: self._parentRule, _setParentRule, - doc="(DOM) The CSS rule that contains this" - " declaration block or None if this block" - " is not attached to a CSSRule.") - - def getVariableValue(self, variableName): - """Used to retrieve the value of a variable if it has been explicitly - set within this variable declaration block. - - :param variableName: - The name of the variable. - :returns: - the value of the variable if it has been explicitly set in this - variable declaration block. Returns the empty string if the - variable has not been set. - """ - try: - return self._vars[variableName.lower()].cssText - except KeyError, e: - return u'' - - def removeVariable(self, variableName): - """Used to remove a variable if it has been explicitly set within this - variable declaration block. - - :param variableName: - The name of the variable. - :returns: - the value of the variable if it has been explicitly set for this - variable declaration block. Returns the empty string if the - variable has not been set. - - :exceptions: - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly is readonly. - """ - try: - r = self._vars[variableName.lower()] - except KeyError, e: - return u'' - else: - self.seq._readonly = False - if variableName in self._vars: - for i, x in enumerate(self.seq): - if x.value[0] == variableName: - del self.seq[i] - self.seq._readonly = True - del self._vars[variableName.lower()] - - return r.cssText - - def setVariable(self, variableName, value): - """Used to set a variable value within this variable declaration block. - - :param variableName: - The name of the CSS variable. - :param value: - The new value of the variable, may also be a CSSValue object. - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified value has a syntax error and is - unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this declaration is readonly or the property is - readonly. - """ - self._checkReadonly() - - # check name - wellformed, seq, store, unused = ProdParser().parse(variableName.lower(), - u'variableName', - Sequence(PreDef.ident() - )) - if not wellformed: - self._log.error(u'Invalid variableName: %r: %r' - % (variableName, value)) - else: - # check value - if isinstance(value, CSSValue): - v = value - else: - v = CSSValue(cssText=value) - - if not v.wellformed: - self._log.error(u'Invalid variable value: %r: %r' - % (variableName, value)) - else: - # update seq - self.seq._readonly = False - if variableName in self._vars: - for i, x in enumerate(self.seq): - if x.value[0] == variableName: - x.replace(i, - [variableName, v], - x.type, - x.line, - x.col) - break - else: - self.seq.append([variableName, v], 'var') - self.seq._readonly = True - self._vars[variableName] = v - - - - def item(self, index): - """Used to retrieve the variables that have been explicitly set in - this variable declaration block. The order of the variables - retrieved using this method does not have to be the order in which - they were set. This method can be used to iterate over all variables - in this variable declaration block. - - :param index: - of the variable name to retrieve, negative values behave like - negative indexes on Python lists, so -1 is the last element - - :returns: - The name of the variable at this ordinal position. The empty - string if no variable exists at this position. - """ - try: - return self.keys()[index] - except IndexError: - return u'' - - length = property(lambda self: len(self._vars), - doc="The number of variables that have been explicitly set in this" - " variable declaration block. The range of valid indices is 0" - " to length-1 inclusive.") diff --git a/src/cssutils/css/cssvariablesrule.py b/src/cssutils/css/cssvariablesrule.py deleted file mode 100644 index f7a311f506..0000000000 --- a/src/cssutils/css/cssvariablesrule.py +++ /dev/null @@ -1,164 +0,0 @@ -"""CSSVariables implements (and only partly) experimental -`CSS Variables `_ -""" -__all__ = ['CSSVariablesRule'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssfontfacerule.py 1818 2009-07-30 21:39:00Z cthedot $' - -from cssvariablesdeclaration import CSSVariablesDeclaration -import cssrule -import cssutils -import xml.dom - -class CSSVariablesRule(cssrule.CSSRule): - """ - The CSSVariablesRule interface represents a @variables rule within a CSS - style sheet. The @variables rule is used to specify variables. - - cssutils uses a :class:`~cssutils.css.CSSVariablesDeclaration` to - represent the variables. - """ - def __init__(self, mediaText=None, variables=None, parentRule=None, - parentStyleSheet=None, readonly=False): - """ - If readonly allows setting of properties in constructor only. - """ - super(CSSVariablesRule, self).__init__(parentRule=parentRule, - parentStyleSheet=parentStyleSheet) - self._atkeyword = u'@variables' - self._media = cssutils.stylesheets.MediaList(mediaText, - readonly=readonly) - self._variables = CSSVariablesDeclaration(parentRule=self) - if variables: - self.variables = variables - - self._readonly = readonly - - def __repr__(self): - return "cssutils.css.%s(mediaText=%r, variables=%r)" % ( - self.__class__.__name__, - self._media.mediaText, self.variables.cssText) - - def __str__(self): - return "" % ( - self.__class__.__name__, self._media.mediaText, - self.variables.cssText, self.valid, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_CSSVariablesRule(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - Raised if the specified CSS string value represents a different - type of rule than the current one. - - :exc:`~xml.dom.HierarchyRequestErr`: - Raised if the rule cannot be inserted at this point in the - style sheet. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - - Format:: - - variables - : VARIABLES_SYM S* medium [ COMMA S* medium ]* LBRACE S* variableset* '}' S* - ; - - variableset - : LBRACE S* vardeclaration [ ';' S* vardeclaration ]* '}' S* - ; - """ - super(CSSVariablesRule, self)._setCssText(cssText) - - tokenizer = self._tokenize2(cssText) - attoken = self._nexttoken(tokenizer, None) - if self._type(attoken) != self._prods.VARIABLES_SYM: - self._log.error(u'CSSVariablesRule: No CSSVariablesRule found: %s' % - self._valuestr(cssText), - error=xml.dom.InvalidModificationErr) - else: - # save if parse goes wrong - oldvariables = CSSVariablesDeclaration() - oldvariables._absorb(self.variables) - - ok = True - beforetokens, brace = self._tokensupto2(tokenizer, - blockstartonly=True, - separateEnd=True) - if self._tokenvalue(brace) != u'{': - ok = False - self._log.error( - u'CSSVariablesRule: No start { of variable declaration found: %r' % - self._valuestr(cssText), brace) - - # parse stuff before { which should be comments and S only - new = {'wellformed': True} - newseq = self._tempSeq()#[] - - beforewellformed, expected = self._parse(expected=':', - seq=newseq, tokenizer=self._tokenize2(beforetokens), - productions={}) - ok = ok and beforewellformed and new['wellformed'] - - variablestokens, braceorEOFtoken = self._tokensupto2(tokenizer, - blockendonly=True, - separateEnd=True) - - val, typ = self._tokenvalue(braceorEOFtoken), self._type(braceorEOFtoken) - if val != u'}' and typ != 'EOF': - ok = False - self._log.error( - u'CSSVariablesRule: No "}" after variables declaration found: %r' % - self._valuestr(cssText)) - - nonetoken = self._nexttoken(tokenizer) - if nonetoken: - ok = False - self._log.error(u'CSSVariablesRule: Trailing content found.', - token=nonetoken) - - if 'EOF' == typ: - # add again as variables needs it - variablestokens.append(braceorEOFtoken) - # may raise: - self.variables.cssText = variablestokens - - if ok: - # contains probably comments only upto { - self._setSeq(newseq) - else: - # RESET - self.variables._absorb(oldvariables) - - cssText = property(_getCssText, _setCssText, - doc="(DOM) The parsable textual representation of this rule.") - - def _setVariables(self, variables): - """ - :param variables: - a CSSVariablesDeclaration or string - """ - self._checkReadonly() - if isinstance(variables, basestring): - self._variables.cssText = variables - else: - self._variables = variables - self._variables.parentRule = self - - variables = property(lambda self: self._variables, _setVariables, - doc="(DOM) The variables of this rule set, " - "a :class:`~cssutils.css.CSSVariablesDeclaration`.") - - type = property(lambda self: self.VARIABLES_RULE, - doc="The type of this rule, as defined by a CSSRule " - "type constant.") - - valid = property(lambda self: True, doc='TODO') - - # constant but needed: - wellformed = property(lambda self: True) diff --git a/src/cssutils/css/property.py b/src/cssutils/css/property.py deleted file mode 100644 index c8a7333630..0000000000 --- a/src/cssutils/css/property.py +++ /dev/null @@ -1,477 +0,0 @@ -"""Property is a single CSS property in a CSSStyleDeclaration.""" -__all__ = ['Property'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: property.py 1878 2009-11-17 20:16:26Z cthedot $' - -from cssutils.helper import Deprecated -from cssvalue import CSSValue -import cssutils -import xml.dom - -class Property(cssutils.util.Base): - """A CSS property in a StyleDeclaration of a CSSStyleRule (cssutils). - - Format:: - - property = name - : IDENT S* - ; - - expr = value - : term [ operator term ]* - ; - term - : unary_operator? - [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | - TIME S* | FREQ S* | function ] - | STRING S* | IDENT S* | URI S* | hexcolor - ; - function - : FUNCTION S* expr ')' S* - ; - /* - * There is a constraint on the color that it must - * have either 3 or 6 hex-digits (i.e., [0-9a-fA-F]) - * after the "#"; e.g., "#000" is OK, but "#abcd" is not. - */ - hexcolor - : HASH S* - ; - - prio - : IMPORTANT_SYM S* - ; - - """ - def __init__(self, name=None, value=None, priority=u'', - _mediaQuery=False, parent=None): - """ - :param name: - a property name string (will be normalized) - :param value: - a property value string - :param priority: - an optional priority string which currently must be u'', - u'!important' or u'important' - :param _mediaQuery: - if ``True`` value is optional (used by MediaQuery) - :param parent: - the parent object, normally a - :class:`cssutils.css.CSSStyleDeclaration` - """ - super(Property, self).__init__() - self.seqs = [[], None, []] - self.wellformed = False - self._mediaQuery = _mediaQuery - self.parent = parent - - self.__nametoken = None - self._name = u'' - self._literalname = u'' - self.seqs[1] = CSSValue(parent=self) - if name: - self.name = name - self.cssValue = value - - self._priority = u'' - self._literalpriority = u'' - if priority: - self.priority = priority - - def __repr__(self): - return "cssutils.css.%s(name=%r, value=%r, priority=%r)" % ( - self.__class__.__name__, - self.literalname, self.cssValue.cssText, self.priority) - - def __str__(self): - return "<%s.%s object name=%r value=%r priority=%r valid=%r at 0x%x>" % ( - self.__class__.__module__, self.__class__.__name__, - self.name, self.cssValue.cssText, self.priority, - self.valid, id(self)) - - def _getCssText(self): - """Return serialized property cssText.""" - return cssutils.ser.do_Property(self) - - def _setCssText(self, cssText): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error and - is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if the rule is readonly. - """ - # check and prepare tokenlists for setting - tokenizer = self._tokenize2(cssText) - nametokens = self._tokensupto2(tokenizer, propertynameendonly=True) - if nametokens: - wellformed = True - - valuetokens = self._tokensupto2(tokenizer, - propertyvalueendonly=True) - prioritytokens = self._tokensupto2(tokenizer, - propertypriorityendonly=True) - - if self._mediaQuery and not valuetokens: - # MediaQuery may consist of name only - self.name = nametokens - self.cssValue = None - self.priority = None - return - - # remove colon from nametokens - colontoken = nametokens.pop() - if self._tokenvalue(colontoken) != u':': - wellformed = False - self._log.error(u'Property: No ":" after name found: %r' % - self._valuestr(cssText), colontoken) - elif not nametokens: - wellformed = False - self._log.error(u'Property: No property name found: %r.' % - self._valuestr(cssText), colontoken) - - if valuetokens: - if self._tokenvalue(valuetokens[-1]) == u'!': - # priority given, move "!" to prioritytokens - prioritytokens.insert(0, valuetokens.pop(-1)) - else: - wellformed = False - self._log.error(u'Property: No property value found: %r.' % - self._valuestr(cssText), colontoken) - - if wellformed: - self.wellformed = True - self.name = nametokens - self.cssValue = valuetokens - self.priority = prioritytokens - - # also invalid values are set! - self.validate() - - else: - self._log.error(u'Property: No property name found: %r.' % - self._valuestr(cssText)) - - cssText = property(fget=_getCssText, fset=_setCssText, - doc="A parsable textual representation.") - - def _setName(self, name): - """ - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified name has a syntax error and is - unparsable. - """ - # for closures: must be a mutable - new = {'literalname': None, - 'wellformed': True} - - def _ident(expected, seq, token, tokenizer=None): - # name - if 'name' == expected: - new['literalname'] = self._tokenvalue(token).lower() - seq.append(new['literalname']) - return 'EOF' - else: - new['wellformed'] = False - self._log.error(u'Property: Unexpected ident.', token) - return expected - - newseq = [] - wellformed, expected = self._parse(expected='name', - seq=newseq, - tokenizer=self._tokenize2(name), - productions={'IDENT': _ident}) - wellformed = wellformed and new['wellformed'] - - # post conditions - # define a token for error logging - if isinstance(name, list): - token = name[0] - self.__nametoken = token - else: - token = None - - if not new['literalname']: - wellformed = False - self._log.error(u'Property: No name found: %r' % - self._valuestr(name), token=token) - - if wellformed: - self.wellformed = True - self._literalname = new['literalname'] - self._name = self._normalize(self._literalname) - self.seqs[0] = newseq - -# # validate - if self._name not in cssutils.profile.knownNames: - # self.valid = False - self._log.warn(u'Property: Unknown Property name.', - token=token, neverraise=True) - else: - pass -# self.valid = True -# if self.cssValue: -# self.cssValue._propertyName = self._name -# #self.valid = self.cssValue.valid - else: - self.wellformed = False - - name = property(lambda self: self._name, _setName, - doc="Name of this property.") - - literalname = property(lambda self: self._literalname, - doc="Readonly literal (not normalized) name " - "of this property") - - def _getCSSValue(self): - return self.seqs[1] - - def _setCSSValue(self, cssText): - """ - See css.CSSValue - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - (according to the attached property) or is unparsable. - - :exc:`~xml.dom.InvalidModificationErr`: - TODO: Raised if the specified CSS string value represents a different - type of values than the values allowed by the CSS property. - """ - if self._mediaQuery and not cssText: - self.seqs[1] = CSSValue(parent=self) - else: - oldvalue = self.seqs[1].cssText - try: - self.seqs[1].cssText = cssText - except: - self.seqs[1].cssText = oldvalue - raise - - self.wellformed = self.wellformed and self.seqs[1].wellformed - - cssValue = property(_getCSSValue, _setCSSValue, - doc="(cssutils) CSSValue object of this property") - - def _getValue(self): - if self.cssValue: - return self.cssValue.cssText - else: - return u'' - - def _setValue(self, value): - self._setCSSValue(value) - - value = property(_getValue, _setValue, - doc="The textual value of this Properties cssValue.") - - def _setPriority(self, priority): - """ - priority - a string, currently either u'', u'!important' or u'important' - - Format:: - - prio - : IMPORTANT_SYM S* - ; - - "!"{w}"important" {return IMPORTANT_SYM;} - - :exceptions: - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified priority has a syntax error and is - unparsable. - In this case a priority not equal to None, "" or "!{w}important". - As CSSOM defines CSSStyleDeclaration.getPropertyPriority resulting in - u'important' this value is also allowed to set a Properties priority - """ - if self._mediaQuery: - self._priority = u'' - self._literalpriority = u'' - if priority: - self._log.error(u'Property: No priority in a MediaQuery - ignored.') - return - - if isinstance(priority, basestring) and\ - u'important' == self._normalize(priority): - priority = u'!%s' % priority - - # for closures: must be a mutable - new = {'literalpriority': u'', - 'wellformed': True} - - def _char(expected, seq, token, tokenizer=None): - # "!" - val = self._tokenvalue(token) - if u'!' == expected == val: - seq.append(val) - return 'important' - else: - new['wellformed'] = False - self._log.error(u'Property: Unexpected char.', token) - return expected - - def _ident(expected, seq, token, tokenizer=None): - # "important" - val = self._tokenvalue(token) - if 'important' == expected: - new['literalpriority'] = val - seq.append(val) - return 'EOF' - else: - new['wellformed'] = False - self._log.error(u'Property: Unexpected ident.', token) - return expected - - newseq = [] - wellformed, expected = self._parse(expected='!', - seq=newseq, - tokenizer=self._tokenize2(priority), - productions={'CHAR': _char, - 'IDENT': _ident}) - wellformed = wellformed and new['wellformed'] - - # post conditions - if priority and not new['literalpriority']: - wellformed = False - self._log.info(u'Property: Invalid priority: %r.' % - self._valuestr(priority)) - - if wellformed: - self.wellformed = self.wellformed and wellformed - self._literalpriority = new['literalpriority'] - self._priority = self._normalize(self.literalpriority) - self.seqs[2] = newseq - # validate priority - if self._priority not in (u'', u'important'): - self._log.error(u'Property: No CSS priority value: %r.' % - self._priority) - - priority = property(lambda self: self._priority, _setPriority, - doc="Priority of this property.") - - literalpriority = property(lambda self: self._literalpriority, - doc="Readonly literal (not normalized) priority of this property") - - def _setParent(self, parent): - self._parent = parent - - parent = property(lambda self: self._parent, _setParent, - doc="The Parent Node (normally a CSSStyledeclaration) of this " - "Property") - - def validate(self): - """Validate value against `profiles` which are checked dynamically. - properties in e.g. @font-face rules are checked against - ``cssutils.profile.CSS3_FONT_FACE`` only. - - For each of the following cases a message is reported: - - - INVALID (so the property is known but not valid) - ``ERROR Property: Invalid value for "{PROFILE-1[/PROFILE-2...]" - property: ...`` - - - VALID but not in given profiles or defaultProfiles - ``WARNING Property: Not valid for profile "{PROFILE-X}" but valid - "{PROFILE-Y}" property: ...`` - - - VALID in current profile - ``DEBUG Found valid "{PROFILE-1[/PROFILE-2...]" property...`` - - - UNKNOWN property - ``WARNING Unknown Property name...`` is issued - - so for example:: - - cssutils.log.setLevel(logging.DEBUG) - parser = cssutils.CSSParser() - s = parser.parseString('''body { - unknown-property: x; - color: 4; - color: rgba(1,2,3,4); - color: red - }''') - - # Log output: - - WARNING Property: Unknown Property name. [2:9: unknown-property] - ERROR Property: Invalid value for "CSS Color Module Level 3/CSS Level 2.1" property: 4 [3:9: color] - DEBUG Property: Found valid "CSS Color Module Level 3" value: rgba(1, 2, 3, 4) [4:9: color] - DEBUG Property: Found valid "CSS Level 2.1" value: red [5:9: color] - - - and when setting an explicit default profile:: - - cssutils.profile.defaultProfiles = cssutils.profile.CSS_LEVEL_2 - s = parser.parseString('''body { - unknown-property: x; - color: 4; - color: rgba(1,2,3,4); - color: red - }''') - - # Log output: - - WARNING Property: Unknown Property name. [2:9: unknown-property] - ERROR Property: Invalid value for "CSS Color Module Level 3/CSS Level 2.1" property: 4 [3:9: color] - WARNING Property: Not valid for profile "CSS Level 2.1" but valid "CSS Color Module Level 3" value: rgba(1, 2, 3, 4) [4:9: color] - DEBUG Property: Found valid "CSS Level 2.1" value: red [5:9: color] - """ - valid = False - - profiles = None - try: - # if @font-face use that profile - rule = self.parent.parentRule - if rule.type == rule.FONT_FACE_RULE: - profiles = [cssutils.profile.CSS3_FONT_FACE] - #TODO: same for @page - except AttributeError: - pass - - if self.name and self.value: - - if self.name in cssutils.profile.knownNames: - # add valid, matching, validprofiles... - valid, matching, validprofiles = \ - cssutils.profile.validateWithProfile(self.name, - self.value, - profiles) - - if not valid: - self._log.error(u'Property: Invalid value for ' - u'"%s" property: %s' - % (u'/'.join(validprofiles), self.value), - token=self.__nametoken, - neverraise=True) - - # TODO: remove logic to profiles! - elif valid and not matching:#(profiles and profiles not in validprofiles): - if not profiles: - notvalidprofiles = u'/'.join(cssutils.profile.defaultProfiles) - else: - notvalidprofiles = profiles - self._log.warn(u'Property: Not valid for profile "%s" ' - u'but valid "%s" value: %s ' - % (notvalidprofiles, u'/'.join(validprofiles), - self.value), - token = self.__nametoken, - neverraise=True) - valid = False - - elif valid: - self._log.debug(u'Property: Found valid "%s" value: %s' - % (u'/'.join(validprofiles), self.value), - token = self.__nametoken, - neverraise=True) - - if self._priority not in (u'', u'important'): - valid = False - - return valid - - valid = property(validate, doc="Check if value of this property is valid " - "in the properties context.") diff --git a/src/cssutils/css/selector.py b/src/cssutils/css/selector.py deleted file mode 100644 index 9446cc303a..0000000000 --- a/src/cssutils/css/selector.py +++ /dev/null @@ -1,798 +0,0 @@ -"""Selector is a single Selector of a CSSStyleRule SelectorList. -Partly implements http://www.w3.org/TR/css3-selectors/. - -TODO - - .contains(selector) - - .isSubselector(selector) -""" -__all__ = ['Selector'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: selector.py 1868 2009-10-17 19:36:54Z cthedot $' - -from cssutils.util import _SimpleNamespaces -from cssutils.helper import Deprecated -import cssutils -import xml.dom - -class Selector(cssutils.util.Base2): - """ - (cssutils) a single selector in a :class:`~cssutils.css.SelectorList` - of a :class:`~cssutils.css.CSSStyleRule`. - - Format:: - - # implemented in SelectorList - selectors_group - : selector [ COMMA S* selector ]* - ; - - selector - : simple_selector_sequence [ combinator simple_selector_sequence ]* - ; - - combinator - /* combinators can be surrounded by white space */ - : PLUS S* | GREATER S* | TILDE S* | S+ - ; - - simple_selector_sequence - : [ type_selector | universal ] - [ HASH | class | attrib | pseudo | negation ]* - | [ HASH | class | attrib | pseudo | negation ]+ - ; - - type_selector - : [ namespace_prefix ]? element_name - ; - - namespace_prefix - : [ IDENT | '*' ]? '|' - ; - - element_name - : IDENT - ; - - universal - : [ namespace_prefix ]? '*' - ; - - class - : '.' IDENT - ; - - attrib - : '[' S* [ namespace_prefix ]? IDENT S* - [ [ PREFIXMATCH | - SUFFIXMATCH | - SUBSTRINGMATCH | - '=' | - INCLUDES | - DASHMATCH ] S* [ IDENT | STRING ] S* - ]? ']' - ; - - pseudo - /* '::' starts a pseudo-element, ':' a pseudo-class */ - /* Exceptions: :first-line, :first-letter, :before and :after. */ - /* Note that pseudo-elements are restricted to one per selector and */ - /* occur only in the last simple_selector_sequence. */ - : ':' ':'? [ IDENT | functional_pseudo ] - ; - - functional_pseudo - : FUNCTION S* expression ')' - ; - - expression - /* In CSS3, the expressions are identifiers, strings, */ - /* or of the form "an+b" */ - : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+ - ; - - negation - : NOT S* negation_arg S* ')' - ; - - negation_arg - : type_selector | universal | HASH | class | attrib | pseudo - ; - - """ - def __init__(self, selectorText=None, parent=None, - readonly=False): - """ - :Parameters: - selectorText - initial value of this selector - parent - a SelectorList - readonly - default to False - """ - super(Selector, self).__init__() - - self.__namespaces = _SimpleNamespaces(log=self._log) - self._element = None - self._parent = parent - self._specificity = (0, 0, 0, 0) - - if selectorText: - self.selectorText = selectorText - - self._readonly = readonly - - def __repr__(self): - if self.__getNamespaces(): - st = (self.selectorText, self._getUsedNamespaces()) - else: - st = self.selectorText - return u"cssutils.css.%s(selectorText=%r)" % ( - self.__class__.__name__, st) - - def __str__(self): - return u"" % ( - self.__class__.__name__, self.selectorText, self.specificity, - self._getUsedNamespaces(), id(self)) - - def _getUsedUris(self): - "Return list of actually used URIs in this Selector." - uris = set() - for item in self.seq: - type_, val = item.type, item.value - if type_.endswith(u'-selector') or type_ == u'universal' and \ - type(val) == tuple and val[0] not in (None, u'*'): - uris.add(val[0]) - return uris - - def _getUsedNamespaces(self): - "Return actually used namespaces only." - useduris = self._getUsedUris() - namespaces = _SimpleNamespaces(log=self._log) - for p, uri in self._namespaces.items(): - if uri in useduris: - namespaces[p] = uri - return namespaces - - def __getNamespaces(self): - "Use own namespaces if not attached to a sheet, else the sheet's ones." - try: - return self._parent.parentRule.parentStyleSheet.namespaces - except AttributeError: - return self.__namespaces - - _namespaces = property(__getNamespaces, doc="""If this Selector is attached - to a CSSStyleSheet the namespaces of that sheet are mirrored here. - While the Selector (or parent SelectorList or parentRule(s) of that are - not attached a own dict of {prefix: namespaceURI} is used.""") - - - element = property(lambda self: self._element, - doc=u"Effective element target of this selector.") - - parent = property(lambda self: self._parent, - doc="(DOM) The SelectorList that contains this Selector or\ - None if this Selector is not attached to a SelectorList.") - - def _getSelectorText(self): - """Return serialized format.""" - return cssutils.ser.do_css_Selector(self) - - def _setSelectorText(self, selectorText): - """ - :param selectorText: - parsable string or a tuple of (selectorText, dict-of-namespaces). - Given namespaces are ignored if this object is attached to a - CSSStyleSheet! - - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # might be (selectorText, namespaces) - selectorText, namespaces = self._splitNamespacesOff(selectorText) - - try: - # uses parent stylesheets namespaces if available, otherwise given ones - namespaces = self.parent.parentRule.parentStyleSheet.namespaces - except AttributeError: - pass - tokenizer = self._tokenize2(selectorText) - if not tokenizer: - self._log.error(u'Selector: No selectorText given.') - else: - # prepare tokenlist: - # "*" -> type "universal" - # "*"|IDENT + "|" -> combined to "namespace_prefix" - # "|" -> type "namespace_prefix" - # "." + IDENT -> combined to "class" - # ":" + IDENT, ":" + FUNCTION -> pseudo-class - # FUNCTION "not(" -> negation - # "::" + IDENT, "::" + FUNCTION -> pseudo-element - tokens = [] - for t in tokenizer: - typ, val, lin, col = t - if val == u':' and tokens and\ - self._tokenvalue(tokens[-1]) == ':': - # combine ":" and ":" - tokens[-1] = (typ, u'::', lin, col) - - elif typ == 'IDENT' and tokens\ - and self._tokenvalue(tokens[-1]) == u'.': - # class: combine to .IDENT - tokens[-1] = ('class', u'.'+val, lin, col) - elif typ == 'IDENT' and tokens and \ - self._tokenvalue(tokens[-1]).startswith(u':') and\ - not self._tokenvalue(tokens[-1]).endswith(u'('): - # pseudo-X: combine to :IDENT or ::IDENT but not ":a(" + "b" - if self._tokenvalue(tokens[-1]).startswith(u'::'): - t = 'pseudo-element' - else: - t = 'pseudo-class' - tokens[-1] = (t, self._tokenvalue(tokens[-1])+val, lin, col) - - elif typ == 'FUNCTION' and val == u'not(' and tokens and \ - u':' == self._tokenvalue(tokens[-1]): - tokens[-1] = ('negation', u':' + val, lin, tokens[-1][3]) - elif typ == 'FUNCTION' and tokens\ - and self._tokenvalue(tokens[-1]).startswith(u':'): - # pseudo-X: combine to :FUNCTION( or ::FUNCTION( - if self._tokenvalue(tokens[-1]).startswith(u'::'): - t = 'pseudo-element' - else: - t = 'pseudo-class' - tokens[-1] = (t, self._tokenvalue(tokens[-1])+val, lin, col) - - elif val == u'*' and tokens and\ - self._type(tokens[-1]) == 'namespace_prefix' and\ - self._tokenvalue(tokens[-1]).endswith(u'|'): - # combine prefix|* - tokens[-1] = ('universal', self._tokenvalue(tokens[-1])+val, - lin, col) - elif val == u'*': - # universal: "*" - tokens.append(('universal', val, lin, col)) - - elif val == u'|' and tokens and\ - self._type(tokens[-1]) in (self._prods.IDENT, 'universal') and\ - self._tokenvalue(tokens[-1]).find(u'|') == -1: - # namespace_prefix: "IDENT|" or "*|" - tokens[-1] = ('namespace_prefix', - self._tokenvalue(tokens[-1])+u'|', lin, col) - elif val == u'|': - # namespace_prefix: "|" - tokens.append(('namespace_prefix', val, lin, col)) - - else: - tokens.append(t) - - # TODO: back to generator but not elegant at all! - tokenizer = (t for t in tokens) - - # for closures: must be a mutable - new = {'context': [''], # stack of: 'attrib', 'negation', 'pseudo' - 'element': None, - '_PREFIX': None, - 'specificity': [0, 0, 0, 0], # mutable, finally a tuple! - 'wellformed': True - } - # used for equality checks and setting of a space combinator - S = u' ' - - def append(seq, val, typ=None, token=None): - """ - appends to seq - - namespace_prefix, IDENT will be combined to a tuple - (prefix, name) where prefix might be None, the empty string - or a prefix. - - Saved are also: - - specificity definition: style, id, class/att, type - - element: the element this Selector is for - """ - context = new['context'][-1] - if token: - line, col = token[2], token[3] - else: - line, col = None, None - - if typ == '_PREFIX': - # SPECIAL TYPE: save prefix for combination with next - new['_PREFIX'] = val[:-1] - # handle next time - return - - if new['_PREFIX'] is not None: - # as saved from before and reset to None - prefix, new['_PREFIX'] = new['_PREFIX'], None - elif typ == 'universal' and '|' in val: - # val == *|* or prefix|* - prefix, val = val.split('|') - else: - prefix = None - - # namespace - if (typ.endswith('-selector') or typ == 'universal') and not ( - 'attribute-selector' == typ and not prefix): - # att **IS NOT** in default ns - if prefix == u'*': - # *|name: in ANY_NS - namespaceURI = cssutils._ANYNS - elif prefix is None: - # e or *: default namespace with prefix u'' or local-name() - namespaceURI = namespaces.get(u'', None) - elif prefix == u'': - # |name or |*: in no (or the empty) namespace - namespaceURI = u'' - else: - # explicit namespace prefix - # does not raise KeyError, see _SimpleNamespaces - namespaceURI = namespaces[prefix] - - if namespaceURI is None: - new['wellformed'] = False - self._log.error( - u'Selector: No namespaceURI found for prefix %r' % - prefix, token=token, error=xml.dom.NamespaceErr) - return - - # val is now (namespaceprefix, name) tuple - val = (namespaceURI, val) - - # specificity - if not context or context == 'negation': - if 'id' == typ: - new['specificity'][1] += 1 - elif 'class' == typ or '[' == val: - new['specificity'][2] += 1 - elif typ in ('type-selector', 'negation-type-selector', - 'pseudo-element'): - new['specificity'][3] += 1 - if not context and typ in ('type-selector', 'universal'): - # define element - new['element'] = val - - seq.append(val, typ, line=line, col=col) - - # expected constants - simple_selector_sequence = 'type_selector universal HASH class attrib pseudo negation ' - simple_selector_sequence2 = 'HASH class attrib pseudo negation ' - - element_name = 'element_name' - - negation_arg = 'type_selector universal HASH class attrib pseudo' - negationend = ')' - - attname = 'prefix attribute' - attname2 = 'attribute' - attcombinator = 'combinator ]' # optional - attvalue = 'value' # optional - attend = ']' - - expressionstart = 'PLUS - DIMENSION NUMBER STRING IDENT' - expression = expressionstart + ' )' - - combinator = ' combinator' - - def _COMMENT(expected, seq, token, tokenizer=None): - "special implementation for comment token" - append(seq, cssutils.css.CSSComment([token]), 'COMMENT', - token=token) - return expected - - def _S(expected, seq, token, tokenizer=None): - # S - context = new['context'][-1] - if context.startswith('pseudo-'): - if seq and seq[-1].value not in u'+-': - # e.g. x:func(a + b) - append(seq, S, 'S', token=token) - return expected - - elif context != 'attrib' and 'combinator' in expected: - append(seq, S, 'descendant', token=token) - return simple_selector_sequence + combinator - - else: - return expected - - def _universal(expected, seq, token, tokenizer=None): - # *|* or prefix|* - context = new['context'][-1] - val = self._tokenvalue(token) - if 'universal' in expected: - append(seq, val, 'universal', token=token) - - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected universal.', token=token) - return expected - - def _namespace_prefix(expected, seq, token, tokenizer=None): - # prefix| => element_name - # or prefix| => attribute_name if attrib - context = new['context'][-1] - val = self._tokenvalue(token) - if 'attrib' == context and 'prefix' in expected: - # [PREFIX|att] - append(seq, val, '_PREFIX', token=token) - return attname2 - elif 'type_selector' in expected: - # PREFIX|* - append(seq, val, '_PREFIX', token=token) - return element_name - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected namespace prefix.', token=token) - return expected - - def _pseudo(expected, seq, token, tokenizer=None): - # pseudo-class or pseudo-element :a ::a :a( ::a( - """ - /* '::' starts a pseudo-element, ':' a pseudo-class */ - /* Exceptions: :first-line, :first-letter, :before and :after. */ - /* Note that pseudo-elements are restricted to one per selector and */ - /* occur only in the last simple_selector_sequence. */ - """ - context = new['context'][-1] - val, typ = self._tokenvalue(token, normalize=True), self._type(token) - if 'pseudo' in expected: - if val in (':first-line', ':first-letter', ':before', ':after'): - # always pseudo-element ??? - typ = 'pseudo-element' - append(seq, val, typ, token=token) - - if val.endswith(u'('): - # function - new['context'].append(typ) # "pseudo-" "class" or "element" - return expressionstart - elif 'negation' == context: - return negationend - elif 'pseudo-element' == typ: - # only one per element, check at ) also! - return combinator - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected start of pseudo.', token=token) - return expected - - def _expression(expected, seq, token, tokenizer=None): - # [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+ - context = new['context'][-1] - val, typ = self._tokenvalue(token), self._type(token) - if context.startswith('pseudo-'): - append(seq, val, typ, token=token) - return expression - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected %s.' % typ, token=token) - return expected - - def _attcombinator(expected, seq, token, tokenizer=None): - # context: attrib - # PREFIXMATCH | SUFFIXMATCH | SUBSTRINGMATCH | INCLUDES | - # DASHMATCH - context = new['context'][-1] - val, typ = self._tokenvalue(token), self._type(token) - if 'attrib' == context and 'combinator' in expected: - # combinator in attrib - append(seq, val, typ.lower(), token=token) - return attvalue - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected %s.' % typ, token=token) - return expected - - def _string(expected, seq, token, tokenizer=None): - # identifier - context = new['context'][-1] - typ, val = self._type(token), self._stringtokenvalue(token) - - # context: attrib - if 'attrib' == context and 'value' in expected: - # attrib: [...=VALUE] - append(seq, val, typ, token=token) - return attend - - # context: pseudo - elif context.startswith('pseudo-'): - # :func(...) - append(seq, val, typ, token=token) - return expression - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected STRING.', token=token) - return expected - - def _ident(expected, seq, token, tokenizer=None): - # identifier - context = new['context'][-1] - val, typ = self._tokenvalue(token), self._type(token) - - # context: attrib - if 'attrib' == context and 'attribute' in expected: - # attrib: [...|ATT...] - append(seq, val, 'attribute-selector', token=token) - return attcombinator - - elif 'attrib' == context and 'value' in expected: - # attrib: [...=VALUE] - append(seq, val, 'attribute-value', token=token) - return attend - - # context: negation - elif 'negation' == context: - # negation: (prefix|IDENT) - append(seq, val, 'negation-type-selector', token=token) - return negationend - - # context: pseudo - elif context.startswith('pseudo-'): - # :func(...) - append(seq, val, typ, token=token) - return expression - - elif 'type_selector' in expected or element_name == expected: - # element name after ns or complete type_selector - append(seq, val, 'type-selector', token=token) - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected IDENT.', - token=token) - return expected - - def _class(expected, seq, token, tokenizer=None): - # .IDENT - context = new['context'][-1] - val = self._tokenvalue(token) - if 'class' in expected: - append(seq, val, 'class', token=token) - - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected class.', token=token) - return expected - - def _hash(expected, seq, token, tokenizer=None): - # #IDENT - context = new['context'][-1] - val = self._tokenvalue(token) - if 'HASH' in expected: - append(seq, val, 'id', token=token) - - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected HASH.', token=token) - return expected - - def _char(expected, seq, token, tokenizer=None): - # + > ~ ) [ ] + - - context = new['context'][-1] - val = self._tokenvalue(token) - - # context: attrib - if u']' == val and 'attrib' == context and ']' in expected: - # end of attrib - append(seq, val, 'attribute-end', token=token) - context = new['context'].pop() # attrib is done - context = new['context'][-1] - if 'negation' == context: - return negationend - else: - return simple_selector_sequence2 + combinator - - elif u'=' == val and 'attrib' == context and 'combinator' in expected: - # combinator in attrib - append(seq, val, 'equals', token=token) - return attvalue - - # context: negation - elif u')' == val and 'negation' == context and u')' in expected: - # not(negation_arg)" - append(seq, val, 'negation-end', token=token) - new['context'].pop() # negation is done - context = new['context'][-1] - return simple_selector_sequence + combinator - - # context: pseudo (at least one expression) - elif val in u'+-' and context.startswith('pseudo-'): - # :func(+ -)" - _names = {'+': 'plus', '-': 'minus'} - if val == u'+' and seq and seq[-1].value == S: - seq.replace(-1, val, _names[val]) - else: - append(seq, val, _names[val], - token=token) - return expression - - elif u')' == val and context.startswith('pseudo-') and\ - expression == expected: - # :func(expression)" - append(seq, val, 'function-end', token=token) - new['context'].pop() # pseudo is done - if 'pseudo-element' == context: - return combinator - else: - return simple_selector_sequence + combinator - - # context: ROOT - elif u'[' == val and 'attrib' in expected: - # start of [attrib] - append(seq, val, 'attribute-start', token=token) - new['context'].append('attrib') - return attname - - elif val in u'+>~' and 'combinator' in expected: - # no other combinator except S may be following - _names = { - '>': 'child', - '+': 'adjacent-sibling', - '~': 'following-sibling'} - if seq and seq[-1].value == S: - seq.replace(-1, val, _names[val]) - else: - append(seq, val, _names[val], token=token) - return simple_selector_sequence - - elif u',' == val: - # not a selectorlist - new['wellformed'] = False - self._log.error( - u'Selector: Single selector only.', - error=xml.dom.InvalidModificationErr, - token=token) - return expected - - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected CHAR.', token=token) - return expected - - def _negation(expected, seq, token, tokenizer=None): - # not( - context = new['context'][-1] - val = self._tokenvalue(token, normalize=True) - if 'negation' in expected: - new['context'].append('negation') - append(seq, val, 'negation-start', token=token) - return negation_arg - else: - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected negation.', token=token) - return expected - - def _atkeyword(expected, seq, token, tokenizer=None): - "invalidates selector" - new['wellformed'] = False - self._log.error( - u'Selector: Unexpected ATKEYWORD.', token=token) - return expected - - - # expected: only|not or mediatype, mediatype, feature, and - newseq = self._tempSeq() - - wellformed, expected = self._parse(expected=simple_selector_sequence, - seq=newseq, tokenizer=tokenizer, - productions={'CHAR': _char, - 'class': _class, - 'HASH': _hash, - 'STRING': _string, - 'IDENT': _ident, - 'namespace_prefix': _namespace_prefix, - 'negation': _negation, - 'pseudo-class': _pseudo, - 'pseudo-element': _pseudo, - 'universal': _universal, - # pseudo - 'NUMBER': _expression, - 'DIMENSION': _expression, - # attribute - 'PREFIXMATCH': _attcombinator, - 'SUFFIXMATCH': _attcombinator, - 'SUBSTRINGMATCH': _attcombinator, - 'DASHMATCH': _attcombinator, - 'INCLUDES': _attcombinator, - - 'S': _S, - 'COMMENT': _COMMENT, - 'ATKEYWORD': _atkeyword}) - wellformed = wellformed and new['wellformed'] - - # post condition - if len(new['context']) > 1 or not newseq: - wellformed = False - self._log.error(u'Selector: Invalid or incomplete selector: %s' % - self._valuestr(selectorText)) - - if expected == 'element_name': - wellformed = False - self._log.error(u'Selector: No element name found: %s' % - self._valuestr(selectorText)) - - if expected == simple_selector_sequence and newseq: - wellformed = False - self._log.error(u'Selector: Cannot end with combinator: %s' % - self._valuestr(selectorText)) - - if newseq and hasattr(newseq[-1].value, 'strip') and \ - newseq[-1].value.strip() == u'': - del newseq[-1] - - # set - if wellformed: - self.__namespaces = namespaces - self._element = new['element'] - self._specificity = tuple(new['specificity']) - self._setSeq(newseq) - # filter that only used ones are kept - self.__namespaces = self._getUsedNamespaces() - - selectorText = property(_getSelectorText, _setSelectorText, - doc="(DOM) The parsable textual representation of the selector.") - - - specificity = property(lambda self: self._specificity, - doc="""Specificity of this selector (READONLY). - Tuple of (a, b, c, d) where: - - a - presence of style in document, always 0 if not used on a document - b - number of ID selectors - c - number of .class selectors - d - number of Element (type) selectors - """) - - wellformed = property(lambda self: bool(len(self.seq))) - - - @Deprecated('Use property parent instead') - def _getParentList(self): - return self.parent - - parentList = property(_getParentList, - doc="DEPRECATED, see property parent instead") diff --git a/src/cssutils/css/selectorlist.py b/src/cssutils/css/selectorlist.py deleted file mode 100644 index 2ec4577544..0000000000 --- a/src/cssutils/css/selectorlist.py +++ /dev/null @@ -1,234 +0,0 @@ -"""SelectorList is a list of CSS Selector objects. - -TODO - - remove duplicate Selectors. -> CSSOM canonicalize - - - ??? CSS2 gives a special meaning to the comma (,) in selectors. - However, since it is not known if the comma may acquire other - meanings in future versions of CSS, the whole statement should be - ignored if there is an error anywhere in the selector, even though - the rest of the selector may look reasonable in CSS2. - - Illegal example(s): - - For example, since the "&" is not a valid token in a CSS2 selector, - a CSS2 user agent must ignore the whole second line, and not set - the color of H3 to red: -""" -__all__ = ['SelectorList'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: selectorlist.py 1868 2009-10-17 19:36:54Z cthedot $' - -from selector import Selector -import cssutils -import xml.dom - -class SelectorList(cssutils.util.Base, cssutils.util.ListSeq): - """A list of :class:`~cssutils.css.Selector` objects - of a :class:`~cssutils.css.CSSStyleRule`.""" - def __init__(self, selectorText=None, parentRule=None, - readonly=False): - """ - :Parameters: - selectorText - parsable list of Selectors - parentRule - the parent CSSRule if available - """ - super(SelectorList, self).__init__() - - self._parentRule = parentRule - - if selectorText: - self.selectorText = selectorText - - self._readonly = readonly - - def __repr__(self): - if self._namespaces: - st = (self.selectorText, self._namespaces) - else: - st = self.selectorText - return "cssutils.css.%s(selectorText=%r)" % ( - self.__class__.__name__, st) - - def __str__(self): - return "" % ( - self.__class__.__name__, self.selectorText, self._namespaces, - id(self)) - - def __setitem__(self, index, newSelector): - """Overwrite ListSeq.__setitem__ - - Any duplicate Selectors are **not** removed. - """ - newSelector = self.__prepareset(newSelector) - if newSelector: - self.seq[index] = newSelector - - def __prepareset(self, newSelector, namespaces=None): - "Used by appendSelector and __setitem__" - if not namespaces: - namespaces = {} - self._checkReadonly() - if not isinstance(newSelector, Selector): - newSelector = Selector((newSelector, namespaces), - parent=self) - if newSelector.wellformed: - newSelector._parent = self # maybe set twice but must be! - return newSelector - - def __getNamespaces(self): - "Use children namespaces if not attached to a sheet, else the sheet's ones." - try: - return self.parentRule.parentStyleSheet.namespaces - except AttributeError: - namespaces = {} - for selector in self.seq: - namespaces.update(selector._namespaces) - return namespaces - - def _absorb(self, other): - """Replace all own data with data from other object.""" - self._parentRule = other._parentRule - self.seq[:] = other.seq[:] - self._readonly = other._readonly - - def _getUsedUris(self): - "Used by CSSStyleSheet to check if @namespace rules are needed" - uris = set() - for s in self: - uris.update(s._getUsedUris()) - return uris - - _namespaces = property(__getNamespaces, doc="""If this SelectorList is - attached to a CSSStyleSheet the namespaces of that sheet are mirrored - here. While the SelectorList (or parentRule(s) are - not attached the namespaces of all children Selectors are used.""") - - def append(self, newSelector): - "Same as :meth:`appendSelector`." - self.appendSelector(newSelector) - - def appendSelector(self, newSelector): - """ - Append `newSelector` to this list (a string will be converted to a - :class:`~cssutils.css.Selector`). - - :param newSelector: - comma-separated list of selectors (as a single string) or a tuple of - `(newSelector, dict-of-namespaces)` - :returns: New :class:`~cssutils.css.Selector` or ``None`` if - `newSelector` is not wellformed. - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # might be (selectorText, namespaces) - newSelector, namespaces = self._splitNamespacesOff(newSelector) - try: - # use parent's only if available - namespaces = self.parentRule.parentStyleSheet.namespaces - except AttributeError: - # use already present namespaces plus new given ones - _namespaces = self._namespaces - _namespaces.update(namespaces) - namespaces = _namespaces - - newSelector = self.__prepareset(newSelector, namespaces) - if newSelector: - seq = self.seq[:] - del self.seq[:] - for s in seq: - if s.selectorText != newSelector.selectorText: - self.seq.append(s) - self.seq.append(newSelector) - return newSelector - - def _getSelectorText(self): - "Return serialized format." - return cssutils.ser.do_css_SelectorList(self) - - def _setSelectorText(self, selectorText): - """ - :param selectorText: - comma-separated list of selectors or a tuple of - (selectorText, dict-of-namespaces) - :exceptions: - - :exc:`~xml.dom.NamespaceErr`: - Raised if the specified selector uses an unknown namespace - prefix. - - :exc:`~xml.dom.SyntaxErr`: - Raised if the specified CSS string value has a syntax error - and is unparsable. - - :exc:`~xml.dom.NoModificationAllowedErr`: - Raised if this rule is readonly. - """ - self._checkReadonly() - - # might be (selectorText, namespaces) - selectorText, namespaces = self._splitNamespacesOff(selectorText) - try: - # use parent's only if available - namespaces = self.parentRule.parentStyleSheet.namespaces - except AttributeError: - pass - - wellformed = True - tokenizer = self._tokenize2(selectorText) - newseq = [] - - expected = True - while True: - # find all upto and including next ",", EOF or nothing - selectortokens = self._tokensupto2(tokenizer, listseponly=True) - if selectortokens: - if self._tokenvalue(selectortokens[-1]) == ',': - expected = selectortokens.pop() - else: - expected = None - - selector = Selector((selectortokens, namespaces), - parent=self) - if selector.wellformed: - newseq.append(selector) - else: - wellformed = False - self._log.error(u'SelectorList: Invalid Selector: %s' % - self._valuestr(selectortokens)) - else: - break - - # post condition - if u',' == expected: - wellformed = False - self._log.error(u'SelectorList: Cannot end with ",": %r' % - self._valuestr(selectorText)) - elif expected: - wellformed = False - self._log.error(u'SelectorList: Unknown Syntax: %r' % - self._valuestr(selectorText)) - if wellformed: - self.seq = newseq - - selectorText = property(_getSelectorText, _setSelectorText, - doc="""(cssutils) The textual representation of the selector for - a rule set.""") - - length = property(lambda self: len(self), - doc="The number of :class:`~cssutils.css.Selector` objects in the list.") - - parentRule = property(lambda self: self._parentRule, - doc="(DOM) The CSS rule that contains this SelectorList or " - "``None`` if this SelectorList is not attached to a CSSRule.") - - wellformed = property(lambda self: bool(len(self.seq))) - diff --git a/src/cssutils/css2productions.py b/src/cssutils/css2productions.py deleted file mode 100644 index a836df3f93..0000000000 --- a/src/cssutils/css2productions.py +++ /dev/null @@ -1,131 +0,0 @@ -"""productions for CSS 2.1 - -CSS2_1_MACROS and CSS2_1_PRODUCTIONS are from both -http://www.w3.org/TR/CSS21/grammar.html and -http://www.w3.org/TR/css3-syntax/#grammar0 - - -""" -__all__ = ['CSSProductions', 'MACROS', 'PRODUCTIONS'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: css2productions.py 1394 2008-07-27 13:29:22Z cthedot $' - -# option case-insensitive -MACROS = { - 'h': r'[0-9a-f]', - #'nonascii': r'[\200-\377]', - 'nonascii': r'[^\0-\177]', # CSS3 - 'unicode': r'\\{h}{1,6}(\r\n|[ \t\r\n\f])?', - - 'escape': r'{unicode}|\\[^\r\n\f0-9a-f]', - 'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}', - 'nmchar': r'[_a-zA-Z0-9-]|{nonascii}|{escape}', - 'string1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*\"', - 'string2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*\'", - 'invalid1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*', - 'invalid2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*", - 'comment': r'\/\*[^*]*\*+([^/*][^*]*\*+)*\/', - # CSS list 080725 19:43 - # \/\*([^*\\]|{escape})*\*+(([^/*\\]|{escape})[^*]*\*+)*\/ - - 'ident': r'[-]?{nmstart}{nmchar}*', - 'name': r'{nmchar}+', - # CHANGED TO SPEC: added "-?" - 'num': r'-?[0-9]*\.[0-9]+|[0-9]+', - 'string': r'{string1}|{string2}', - 'invalid': r'{invalid1}|{invalid2}', - 'url': r'([!#$%&*-~]|{nonascii}|{escape})*', - 's': r'[ \t\r\n\f]+', - 'w': r'{s}?', - 'nl': r'\n|\r\n|\r|\f', - 'range': r'\?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h})))))', - - 'A': r'a|\\0{0,4}(41|61)(\r\n|[ \t\r\n\f])?', - 'C': r'c|\\0{0,4}(43|63)(\r\n|[ \t\r\n\f])?', - 'D': r'd|\\0{0,4}(44|64)(\r\n|[ \t\r\n\f])?', - 'E': r'e|\\0{0,4}(45|65)(\r\n|[ \t\r\n\f])?', - 'F': r'f|\\0{0,4}(46|66)(\r\n|[ \t\r\n\f])?', - 'G': r'g|\\0{0,4}(47|67)(\r\n|[ \t\r\n\f])?|\\g', - 'H': r'h|\\0{0,4}(48|68)(\r\n|[ \t\r\n\f])?|\\h', - 'I': r'i|\\0{0,4}(49|69)(\r\n|[ \t\r\n\f])?|\\i', - 'K': r'k|\\0{0,4}(4b|6b)(\r\n|[ \t\r\n\f])?|\\k', - 'M': r'm|\\0{0,4}(4d|6d)(\r\n|[ \t\r\n\f])?|\\m', - 'N': r'n|\\0{0,4}(4e|6e)(\r\n|[ \t\r\n\f])?|\\n', - 'O': r'o|\\0{0,4}(51|71)(\r\n|[ \t\r\n\f])?|\\o', - 'P': r'p|\\0{0,4}(50|70)(\r\n|[ \t\r\n\f])?|\\p', - 'R': r'r|\\0{0,4}(52|72)(\r\n|[ \t\r\n\f])?|\\r', - 'S': r's|\\0{0,4}(53|73)(\r\n|[ \t\r\n\f])?|\\s', - 'T': r't|\\0{0,4}(54|74)(\r\n|[ \t\r\n\f])?|\\t', - 'X': r'x|\\0{0,4}(58|78)(\r\n|[ \t\r\n\f])?|\\x', - 'Z': r'z|\\0{0,4}(5a|7a)(\r\n|[ \t\r\n\f])?|\\z', - } - -PRODUCTIONS = [ - ('URI', r'url\({w}{string}{w}\)'), #"url("{w}{string}{w}")" {return URI;} - ('URI', r'url\({w}{url}{w}\)'), #"url("{w}{url}{w}")" {return URI;} - ('FUNCTION', r'{ident}\('), #{ident}"(" {return FUNCTION;} - - ('IMPORT_SYM', r'@{I}{M}{P}{O}{R}{T}'), #"@import" {return IMPORT_SYM;} - ('PAGE_SYM', r'@{P}{A}{G}{E}'), #"@page" {return PAGE_SYM;} - ('MEDIA_SYM', r'@{M}{E}{D}{I}{A}'), #"@media" {return MEDIA_SYM;} - ('FONT_FACE_SYM', r'@{F}{O}{N}{T}\-{F}{A}{C}{E}'), #"@font-face" {return FONT_FACE_SYM;} - - # CHANGED TO SPEC: only @charset - ('CHARSET_SYM', r'@charset '), #"@charset " {return CHARSET_SYM;} - - ('NAMESPACE_SYM', r'@{N}{A}{M}{E}{S}{P}{A}{C}{E}'), #"@namespace" {return NAMESPACE_SYM;} - - # CHANGED TO SPEC: ATKEYWORD - ('ATKEYWORD', r'\@{ident}'), - - ('IDENT', r'{ident}'), #{ident} {return IDENT;} - ('STRING', r'{string}'), #{string} {return STRING;} - ('INVALID', r'{invalid}'), # {return INVALID; /* unclosed string */} - ('HASH', r'\#{name}'), #"#"{name} {return HASH;} - ('PERCENTAGE', r'{num}%'), #{num}% {return PERCENTAGE;} - ('LENGTH', r'{num}{E}{M}'), #{num}em {return EMS;} - ('LENGTH', r'{num}{E}{X}'), #{num}ex {return EXS;} - ('LENGTH', r'{num}{P}{X}'), #{num}px {return LENGTH;} - ('LENGTH', r'{num}{C}{M}'), #{num}cm {return LENGTH;} - ('LENGTH', r'{num}{M}{M}'), #{num}mm {return LENGTH;} - ('LENGTH', r'{num}{I}{N}'), #{num}in {return LENGTH;} - ('LENGTH', r'{num}{P}{T}'), #{num}pt {return LENGTH;} - ('LENGTH', r'{num}{P}{C}'), #{num}pc {return LENGTH;} - ('ANGLE', r'{num}{D}{E}{G}'), #{num}deg {return ANGLE;} - ('ANGLE', r'{num}{R}{A}{D}'), #{num}rad {return ANGLE;} - ('ANGLE', r'{num}{G}{R}{A}{D}'), #{num}grad {return ANGLE;} - ('TIME', r'{num}{M}{S}'), #{num}ms {return TIME;} - ('TIME', r'{num}{S}'), #{num}s {return TIME;} - ('FREQ', r'{num}{H}{Z}'), #{num}Hz {return FREQ;} - ('FREQ', r'{num}{K}{H}{Z}'), #{num}kHz {return FREQ;} - ('DIMEN', r'{num}{ident}'), #{num}{ident} {return DIMEN;} - ('NUMBER', r'{num}'), #{num} {return NUMBER;} - #('UNICODERANGE', r'U\+{range}'), #U\+{range} {return UNICODERANGE;} - #('UNICODERANGE', r'U\+{h}{1,6}-{h}{1,6}'), #U\+{h}{1,6}-{h}{1,6} {return UNICODERANGE;} - # --- CSS3 --- - ('UNICODE-RANGE', r'[0-9A-F?]{1,6}(\-[0-9A-F]{1,6})?'), - ('CDO', r'\<\!\-\-'), #"" {return CDC;} - ('S', r'{s}'),# {return S;} - - # \/\*[^*]*\*+([^/*][^*]*\*+)*\/ /* ignore comments */ - # {s}+\/\*[^*]*\*+([^/*][^*]*\*+)*\/ {unput(' '); /*replace by space*/} - - ('INCLUDES', r'\~\='), #"~=" {return INCLUDES;} - ('DASHMATCH', r'\|\='), #"|=" {return DASHMATCH;} - ('LBRACE', r'\{'), #{w}"{" {return LBRACE;} - ('PLUS', r'\+'), #{w}"+" {return PLUS;} - ('GREATER', r'\>'), #{w}">" {return GREATER;} - ('COMMA', r'\,'), #{w}"," {return COMMA;} - ('IMPORTANT_SYM', r'\!({w}|{comment})*{I}{M}{P}{O}{R}{T}{A}{N}{T}'), #"!{w}important" {return IMPORTANT_SYM;} - ('COMMENT', '\/\*[^*]*\*+([^/][^*]*\*+)*\/'), # /* ignore comments */ - ('CLASS', r'\.'), #. {return *yytext;} - - # --- CSS3! --- - ('CHAR', r'[^"\']'), - ] - -class CSSProductions(object): - pass -for i, t in enumerate(PRODUCTIONS): - setattr(CSSProductions, t[0].replace('-', '_'), t[0]) \ No newline at end of file diff --git a/src/cssutils/cssproductions.py b/src/cssutils/cssproductions.py deleted file mode 100644 index 177a96cc0b..0000000000 --- a/src/cssutils/cssproductions.py +++ /dev/null @@ -1,121 +0,0 @@ -"""productions for cssutils based on a mix of CSS 2.1 and CSS 3 Syntax -productions - -- http://www.w3.org/TR/css3-syntax -- http://www.w3.org/TR/css3-syntax/#grammar0 - -open issues - - numbers contain "-" if present - - HASH: #aaa is, #000 is not anymore, - CSS2.1: 'nmchar': r'[_a-z0-9-]|{nonascii}|{escape}', - CSS3: 'nmchar': r'[_a-z-]|{nonascii}|{escape}', -""" -__all__ = ['CSSProductions', 'MACROS', 'PRODUCTIONS'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssproductions.py 1855 2009-10-07 17:03:19Z cthedot $' - -# a complete list of css3 macros -MACROS = { - 'nonascii': r'[^\0-\177]', - 'unicode': r'\\[0-9A-Fa-f]{1,6}(?:{nl}|{s})?', - #'escape': r'{unicode}|\\[ -~\200-\777]', - 'escape': r'{unicode}|\\[^\n\r\f0-9a-f]', - 'nmstart': r'[_a-zA-Z]|{nonascii}|{escape}', - 'nmchar': r'[-_a-zA-Z0-9]|{nonascii}|{escape}', - 'string1': r'"([^\n\r\f\\"]|\\{nl}|{escape})*"', - 'string2': r"'([^\n\r\f\\']|\\{nl}|{escape})*'", - 'invalid1': r'\"([^\n\r\f\\"]|\\{nl}|{escape})*', - 'invalid2': r"\'([^\n\r\f\\']|\\{nl}|{escape})*", - - 'comment': r'\/\*[^*]*\*+([^/][^*]*\*+)*\/', - 'ident': r'[-]?{nmstart}{nmchar}*', - 'name': r'{nmchar}+', - 'num': r'[0-9]*\.[0-9]+|[0-9]+', #r'[-]?\d+|[-]?\d*\.\d+', - 'string': r'{string1}|{string2}', - # from CSS2.1 - 'invalid': r'{invalid1}|{invalid2}', - 'url': r'[\x09\x21\x23-\x26\x28\x2a-\x7E]|{nonascii}|{escape}', - - 's': r'\t|\r|\n|\f|\x20', - 'w': r'{s}*', - 'nl': r'\n|\r\n|\r|\f', - - 'A': r'A|a|\\0{0,4}(?:41|61)(?:\r\n|[ \t\r\n\f])?', - 'B': r'B|b|\\0{0,4}(?:42|62)(?:\r\n|[ \t\r\n\f])?', - 'C': r'C|c|\\0{0,4}(?:43|63)(?:\r\n|[ \t\r\n\f])?', - 'D': r'D|d|\\0{0,4}(?:44|64)(?:\r\n|[ \t\r\n\f])?', - 'E': r'E|e|\\0{0,4}(?:45|65)(?:\r\n|[ \t\r\n\f])?', - 'F': r'F|f|\\0{0,4}(?:46|66)(?:\r\n|[ \t\r\n\f])?', - 'G': r'G|g|\\0{0,4}(?:47|67)(?:\r\n|[ \t\r\n\f])?|\\G|\\g', - 'H': r'H|h|\\0{0,4}(?:48|68)(?:\r\n|[ \t\r\n\f])?|\\H|\\h', - 'I': r'I|i|\\0{0,4}(?:49|69)(?:\r\n|[ \t\r\n\f])?|\\I|\\i', - 'K': r'K|k|\\0{0,4}(?:4b|6b)(?:\r\n|[ \t\r\n\f])?|\\K|\\k', - 'L': r'L|l|\\0{0,4}(?:4c|6c)(?:\r\n|[ \t\r\n\f])?|\\L|\\l', - 'M': r'M|m|\\0{0,4}(?:4d|6d)(?:\r\n|[ \t\r\n\f])?|\\M|\\m', - 'N': r'N|n|\\0{0,4}(?:4e|6e)(?:\r\n|[ \t\r\n\f])?|\\N|\\n', - 'O': r'O|o|\\0{0,4}(?:4f|6f)(?:\r\n|[ \t\r\n\f])?|\\O|\\o', - 'P': r'P|p|\\0{0,4}(?:50|70)(?:\r\n|[ \t\r\n\f])?|\\P|\\p', - 'R': r'R|r|\\0{0,4}(?:52|72)(?:\r\n|[ \t\r\n\f])?|\\R|\\r', - 'S': r'S|s|\\0{0,4}(?:53|73)(?:\r\n|[ \t\r\n\f])?|\\S|\\s', - 'T': r'T|t|\\0{0,4}(?:54|74)(?:\r\n|[ \t\r\n\f])?|\\T|\\t', - 'U': r'U|u|\\0{0,4}(?:55|75)(?:\r\n|[ \t\r\n\f])?|\\U|\\u', - 'V': r'V|v|\\0{0,4}(?:56|76)(?:\r\n|[ \t\r\n\f])?|\\V|\\v', - 'X': r'X|x|\\0{0,4}(?:58|78)(?:\r\n|[ \t\r\n\f])?|\\X|\\x', - 'Z': r'Z|z|\\0{0,4}(?:5a|7a)(?:\r\n|[ \t\r\n\f])?|\\Z|\\z', - } - -# The following productions are the complete list of tokens -# used by cssutils, a mix of CSS3 and some CSS2.1 productions. -# The productions are **ordered**: -PRODUCTIONS = [ - ('BOM', r'\xFEFF'), # will only be checked at beginning of CSS - - ('S', r'{s}+'), # 1st in list of general productions - ('URI', r'{U}{R}{L}\({w}({string}|{url}*){w}\)'), - ('FUNCTION', r'{ident}\('), - ('UNICODE-RANGE', r'{U}\+[0-9A-Fa-f?]{1,6}(\-[0-9A-Fa-f]{1,6})?'), - ('IDENT', r'{ident}'), - ('STRING', r'{string}'), - ('INVALID', r'{invalid}'), # from CSS2.1 - ('HASH', r'\#{name}'), - ('PERCENTAGE', r'{num}\%'), - ('DIMENSION', r'{num}{ident}'), - ('NUMBER', r'{num}'), - # valid ony at start so not checked everytime - #('CHARSET_SYM', r'@charset '), # from Errata includes ending space! - # checked specially if fullsheet is parsed - ('COMMENT', r'{comment}'), #r'\/\*[^*]*\*+([^/][^*]*\*+)*\/'), - ('ATKEYWORD', r'@{ident}'), # other keywords are done in the tokenizer - ('CDO', r'\<\!\-\-'), - ('CDC', r'\-\-\>'), - ('INCLUDES', '\~\='), - ('DASHMATCH', r'\|\='), - ('PREFIXMATCH', r'\^\='), - ('SUFFIXMATCH', r'\$\='), - ('SUBSTRINGMATCH', r'\*\='), - ('CHAR', r'[^"\']') # MUST always be last - ] - -class CSSProductions(object): - """ - most attributes are set later - """ - EOF = True - # removed from productions as they simply are ATKEYWORD until - # tokenizing - CHARSET_SYM = 'CHARSET_SYM' - FONT_FACE_SYM = 'FONT_FACE_SYM' - MEDIA_SYM = 'MEDIA_SYM' - IMPORT_SYM = 'IMPORT_SYM' - NAMESPACE_SYM = 'NAMESPACE_SYM' - PAGE_SYM = 'PAGE_SYM' - VARIABLES_SYM = 'VARIABLES_SYM' - -for i, t in enumerate(PRODUCTIONS): - setattr(CSSProductions, t[0].replace('-', '_'), t[0]) - - -# may be enabled by settings.set -_DXImageTransform = ('FUNCTION', - r'progid\:DXImageTransform\.Microsoft\..+\(' - ) diff --git a/src/cssutils/errorhandler.py b/src/cssutils/errorhandler.py deleted file mode 100644 index d3f891e76e..0000000000 --- a/src/cssutils/errorhandler.py +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env python -"""cssutils ErrorHandler - -ErrorHandler - used as log with usual levels (debug, info, warn, error) - - if instanciated with ``raiseExceptions=True`` raises exeptions instead - of logging - -log - defaults to instance of ErrorHandler for any kind of log message from - lexerm, parser etc. - - - raiseExceptions = [False, True] - - setloglevel(loglevel) -""" -__all__ = ['ErrorHandler'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: errorhandler.py 1812 2009-07-29 13:11:49Z cthedot $' - -from helper import Deprecated -import logging -import urllib2 -import xml.dom - -class _ErrorHandler(object): - """ - handles all errors and log messages - """ - def __init__(self, log, defaultloglevel=logging.INFO, - raiseExceptions=True): - """ - inits log if none given - - log - for parse messages, default logs to sys.stderr - defaultloglevel - if none give this is logging.DEBUG - raiseExceptions - - True: Errors will be raised e.g. during building - - False: Errors will be written to the log, this is the - default behaviour when parsing - """ - # may be disabled during setting of known valid items - self.enabled = True - - if log: - self._log = log - else: - import sys - self._log = logging.getLogger('CSSUTILS') - hdlr = logging.StreamHandler(sys.stderr) - formatter = logging.Formatter('%(levelname)s\t%(message)s') - hdlr.setFormatter(formatter) - self._log.addHandler(hdlr) - self._log.setLevel(defaultloglevel) - - self.raiseExceptions = raiseExceptions - - def __getattr__(self, name): - "use self._log items" - calls = ('debug', 'info', 'warn', 'error', 'critical', 'fatal') - other = ('setLevel', 'getEffectiveLevel', 'addHandler', 'removeHandler') - - if name in calls: - self._logcall = getattr(self._log, name) - return self.__handle - elif name in other: - return getattr(self._log, name) - else: - raise AttributeError( - '(errorhandler) No Attribute %r found' % name) - - def __handle(self, msg=u'', token=None, error=xml.dom.SyntaxErr, - neverraise=False, args=None): - """ - handles all calls - logs or raises exception - """ - if self.enabled: - line, col = None, None - if token: - if isinstance(token, tuple): - value, line, col = token[1], token[2], token[3] - else: - value, line, col = token.value, token.line, token.col - msg = u'%s [%s:%s: %s]' % ( - msg, line, col, value) - - if error and self.raiseExceptions and not neverraise: - if isinstance(error, urllib2.HTTPError) or isinstance(error, urllib2.URLError): - raise - elif issubclass(error, xml.dom.DOMException): - error.line = line - error.col = col - # raise error(msg, line, col) - # else: - raise error(msg) - else: - self._logcall(msg) - - def setLog(self, log): - """set log of errorhandler's log""" - self._log = log - - @Deprecated('Use setLog() instead.') - def setlog(self, log): - self.setLog(log) - - @Deprecated('Use setLevel() instead.') - def setloglevel(self, level): - self.setLevel(level) - - -class ErrorHandler(_ErrorHandler): - "Singleton, see _ErrorHandler" - instance = None - - def __init__(self, - log=None, defaultloglevel=logging.INFO, raiseExceptions=True): - - if ErrorHandler.instance is None: - ErrorHandler.instance = _ErrorHandler(log=log, - defaultloglevel=defaultloglevel, - raiseExceptions=raiseExceptions) - self.__dict__ = ErrorHandler.instance.__dict__ diff --git a/src/cssutils/helper.py b/src/cssutils/helper.py deleted file mode 100644 index 513c8712da..0000000000 --- a/src/cssutils/helper.py +++ /dev/null @@ -1,137 +0,0 @@ -"""cssutils helper -""" -__docformat__ = 'restructuredtext' -__version__ = '$Id: errorhandler.py 1234 2008-05-22 20:26:12Z cthedot $' - -import os -import re -import sys -import urllib - -class Deprecated(object): - """This is a decorator which can be used to mark functions - as deprecated. It will result in a warning being emitted - when the function is used. - - It accepts a single paramter ``msg`` which is shown with the warning. - It should contain information which function or method to use instead. - """ - def __init__(self, msg): - self.msg = msg - - def __call__(self, func): - def newFunc(*args, **kwargs): - import warnings - warnings.warn("Call to deprecated method %r. %s" % - (func.__name__, self.msg), - category=DeprecationWarning, - stacklevel=2) - return func(*args, **kwargs) - newFunc.__name__ = func.__name__ - newFunc.__doc__ = func.__doc__ - newFunc.__dict__.update(func.__dict__) - return newFunc - -# simple escapes, all non unicodes -_simpleescapes = re.compile(ur'(\\[^0-9a-fA-F])').sub -def normalize(x): - """ - normalizes x, namely: - - - remove any \ before non unicode sequences (0-9a-zA-Z) so for - x=="c\olor\" return "color" (unicode escape sequences should have - been resolved by the tokenizer already) - - lowercase - """ - if x: - def removeescape(matchobj): - return matchobj.group(0)[1:] - x = _simpleescapes(removeescape, x) - return x.lower() - else: - return x - -def path2url(path): - """Return file URL of `path`""" - return u'file:' + urllib.pathname2url(os.path.abspath(path)) - -def pushtoken(token, tokens): - """Return new generator starting with token followed by all tokens in - ``tokens``""" - # TODO: may use itertools.chain? - yield token - for t in tokens: - yield t - -def string(value): - """ - Serialize value with quotes e.g.:: - - ``a \'string`` => ``'a \'string'`` - """ - # \n = 0xa, \r = 0xd, \f = 0xc - value = value.replace(u'\n', u'\\a ').replace( - u'\r', u'\\d ').replace( - u'\f', u'\\c ').replace( - u'"', u'\\"') - - if value.endswith(u'\\'): - value = value[:-1] + u'\\\\' - - return u'"%s"' % value - -def stringvalue(string): - """ - Retrieve actual value of string without quotes. Escaped - quotes inside the value are resolved, e.g.:: - - ``'a \'string'`` => ``a 'string`` - """ - return string.replace(u'\\'+string[0], string[0])[1:-1] - -_match_forbidden_in_uri = re.compile(ur'''.*?[\(\)\s\;,'"]''', re.U).match -def uri(value): - """ - Serialize value by adding ``url()`` and with quotes if needed e.g.:: - - ``"`` => ``url("\"")`` - """ - if _match_forbidden_in_uri(value): - value = string(value) - return u'url(%s)' % value - -def urivalue(uri): - """ - Return actual content without surrounding "url(" and ")" - and removed surrounding quotes too including contained - escapes of quotes, e.g.:: - - ``url("\"")`` => ``"`` - """ - uri = uri[uri.find('(')+1:-1].strip() - if uri and (uri[0] in '\'"') and (uri[0] == uri[-1]): - return stringvalue(uri) - else: - return uri - -#def normalnumber(num): -# """ -# Return normalized number as string. -# """ -# sign = '' -# if num.startswith('-'): -# sign = '-' -# num = num[1:] -# elif num.startswith('+'): -# num = num[1:] -# -# if float(num) == 0.0: -# return '0' -# else: -# if num.find('.') == -1: -# return sign + str(int(num)) -# else: -# a, b = num.split('.') -# if not a: -# a = '0' -# return '%s%s.%s' % (sign, int(a), b) diff --git a/src/cssutils/parse.py b/src/cssutils/parse.py deleted file mode 100644 index 4330f153f7..0000000000 --- a/src/cssutils/parse.py +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env python -"""A validating CSSParser""" -__all__ = ['CSSParser'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1754 2009-05-30 14:50:13Z cthedot $' - -from helper import Deprecated, path2url -import codecs -import cssutils -import os -import tokenize2 -import urllib - -class CSSParser(object): - """Parse a CSS StyleSheet from URL, string or file and return a DOM Level 2 - CSS StyleSheet object. - - Usage:: - - parser = CSSParser() - # optionally - parser.setFetcher(fetcher) - sheet = parser.parseFile('test1.css', 'ascii') - print sheet.cssText - """ - def __init__(self, log=None, loglevel=None, raiseExceptions=None, - fetcher=None): - """ - log - logging object - loglevel - logging loglevel - raiseExceptions - if log should simply log (default) or raise errors during - parsing. Later while working with the resulting sheets - the setting used in cssutils.log.raiseExeptions is used - fetcher - see ``setFetcher(fetcher)`` - """ - if log is not None: - cssutils.log.setLog(log) - if loglevel is not None: - cssutils.log.setLevel(loglevel) - - # remember global setting - self.__globalRaising = cssutils.log.raiseExceptions - if raiseExceptions: - self.__parseRaising = raiseExceptions - else: - # DEFAULT during parse - self.__parseRaising = False - - self.__tokenizer = tokenize2.Tokenizer() - self.setFetcher(fetcher) - - def __parseSetting(self, parse): - """during parse exceptions may be handled differently depending on - init parameter ``raiseExceptions`` - """ - if parse: - cssutils.log.raiseExceptions = self.__parseRaising - else: - cssutils.log.raiseExceptions = self.__globalRaising - - def parseString(self, cssText, encoding=None, href=None, media=None, - title=None): - """Parse `cssText` as :class:`~cssutils.css.CSSStyleSheet`. - Errors may be raised (e.g. UnicodeDecodeError). - - :param cssText: - CSS string to parse - :param encoding: - If ``None`` the encoding will be read from BOM or an @charset - rule or defaults to UTF-8. - If given overrides any found encoding including the ones for - imported sheets. - It also will be used to decode `cssText` if given as a (byte) - string. - :param href: - The ``href`` attribute to assign to the parsed style sheet. - Used to resolve other urls in the parsed sheet like @import hrefs. - :param media: - The ``media`` attribute to assign to the parsed style sheet - (may be a MediaList, list or a string). - :param title: - The ``title`` attribute to assign to the parsed style sheet. - :returns: - :class:`~cssutils.css.CSSStyleSheet`. - """ - self.__parseSetting(True) - if isinstance(cssText, str): - cssText = codecs.getdecoder('css')(cssText, encoding=encoding)[0] - - sheet = cssutils.css.CSSStyleSheet(href=href, - media=cssutils.stylesheets.MediaList(media), - title=title) - sheet._setFetcher(self.__fetcher) - # tokenizing this ways closes open constructs and adds EOF - sheet._setCssTextWithEncodingOverride(self.__tokenizer.tokenize(cssText, - fullsheet=True), - encodingOverride=encoding) - self.__parseSetting(False) - return sheet - - def parseFile(self, filename, encoding=None, - href=None, media=None, title=None): - """Retrieve content from `filename` and parse it. Errors may be raised - (e.g. IOError). - - :param filename: - of the CSS file to parse, if no `href` is given filename is - converted to a (file:) URL and set as ``href`` of resulting - stylesheet. - If `href` is given it is set as ``sheet.href``. Either way - ``sheet.href`` is used to resolve e.g. stylesheet imports via - @import rules. - :param encoding: - Value ``None`` defaults to encoding detection via BOM or an - @charset rule. - Other values override detected encoding for the sheet at - `filename` including any imported sheets. - :returns: - :class:`~cssutils.css.CSSStyleSheet`. - """ - if not href: - # prepend // for file URL, urllib does not do this? - #href = u'file:' + urllib.pathname2url(os.path.abspath(filename)) - href = path2url(filename) - - return self.parseString(open(filename, 'rb').read(), - encoding=encoding, # read returns a str - href=href, media=media, title=title) - - def parseUrl(self, href, encoding=None, media=None, title=None): - """Retrieve content from URL `href` and parse it. Errors may be raised - (e.g. URLError). - - :param href: - URL of the CSS file to parse, will also be set as ``href`` of - resulting stylesheet - :param encoding: - Value ``None`` defaults to encoding detection via HTTP, BOM or an - @charset rule. - A value overrides detected encoding for the sheet at ``href`` - including any imported sheets. - :returns: - :class:`~cssutils.css.CSSStyleSheet`. - """ - encoding, enctype, text = cssutils.util._readUrl(href, - overrideEncoding=encoding) - if enctype == 5: - # do not used if defaulting to UTF-8 - encoding = None - - if text is not None: - return self.parseString(text, encoding=encoding, - href=href, media=media, title=title) - - def setFetcher(self, fetcher=None): - """Replace the default URL fetch function with a custom one. - - :param fetcher: - A function which gets a single parameter - - ``url`` - the URL to read - - and must return ``(encoding, content)`` where ``encoding`` is the - HTTP charset normally given via the Content-Type header (which may - simply omit the charset in which case ``encoding`` would be - ``None``) and ``content`` being the string (or unicode) content. - - The Mimetype should be 'text/css' but this has to be checked by the - fetcher itself (the default fetcher emits a warning if encountering - a different mimetype). - - Calling ``setFetcher`` with ``fetcher=None`` resets cssutils - to use its default function. - """ - self.__fetcher = fetcher - - @Deprecated('Use cssutils.CSSParser().parseFile() instead.') - def parse(self, filename, encoding=None, - href=None, media=None, title=None): - self.parseFile(filename, encoding, href, media, title) diff --git a/src/cssutils/prodparser.py b/src/cssutils/prodparser.py deleted file mode 100644 index 368f9a7b5b..0000000000 --- a/src/cssutils/prodparser.py +++ /dev/null @@ -1,666 +0,0 @@ -# -*- coding: utf-8 -*- -"""Productions parser used by css and stylesheets classes to parse -test into a cssutils.util.Seq and at the same time retrieving -additional specific cssutils.util.Item objects for later use. - -TODO: - - ProdsParser - - handle EOF or STOP? - - handle unknown @rules - - handle S: maybe save to Seq? parameterized? - - store['_raw']: always? - - - Sequence: - - opt first(), naive impl for now - -""" -__all__ = ['ProdParser', 'Sequence', 'Choice', 'Prod', 'PreDef'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1418 2008-08-09 19:27:50Z cthedot $' - -import cssutils -import sys - - -class ParseError(Exception): - """Base Exception class for ProdParser (used internally).""" - pass - -class Done(ParseError): - """Raised if Sequence or Choice is finished and no more Prods left.""" - pass - -class Exhausted(ParseError): - """Raised if Sequence or Choice is finished but token is given.""" - pass - -class Missing(ParseError): - """Raised if Sequence or Choice is not finished but no matching token given.""" - pass - -class NoMatch(ParseError): - """Raised if nothing in Sequence or Choice does match.""" - pass - - -class Choice(object): - """A Choice of productions (Sequence or single Prod).""" - - def __init__(self, *prods, **options): - """ - *prods - Prod or Sequence objects - options: - optional=False - """ - self._prods = prods - - try: - self.optional = options['optional'] - except KeyError, e: - for p in self._prods: - if p.optional: - self.optional = True - break - else: - self.optional = False - - self.reset() - - def reset(self): - """Start Choice from zero""" - self._exhausted = False - - def matches(self, token): - """Check if token matches""" - for prod in self._prods: - if prod.matches(token): - return True - return False - - def nextProd(self, token): - """ - Return: - - - next matching Prod or Sequence - - ``None`` if any Prod or Sequence is optional and no token matched - - raise ParseError if nothing matches and all are mandatory - - raise Exhausted if choice already done - - ``token`` may be None but this occurs when no tokens left.""" - if not self._exhausted: - optional = False - for x in self._prods: - if x.matches(token): - self._exhausted = True - x.reset() - return x - elif x.optional: - optional = True - else: - if not optional: - # None matched but also None is optional - raise ParseError(u'No match in %s' % self) - elif token: - raise Exhausted(u'Extra token') - - def __str__(self): - return u'Choice(%s)' % u', '.join([str(x) for x in self._prods]) - - -class Sequence(object): - """A Sequence of productions (Choice or single Prod).""" - def __init__(self, *prods, **options): - """ - *prods - Prod or Sequence objects - **options: - minmax = lambda: (1, 1) - callback returning number of times this sequence may run - """ - self._prods = prods - try: - minmax = options['minmax'] - except KeyError: - minmax = lambda: (1, 1) - - self._min, self._max = minmax() - if self._max is None: - # unlimited - try: - # py2.6/3 - self._max = sys.maxsize - except AttributeError: - # py<2.6 - self._max = sys.maxint - - self._prodcount = len(self._prods) - self.reset() - - def matches(self, token): - """Called by Choice to try to find if Sequence matches.""" - for prod in self._prods: - if prod.matches(token): - return True - try: - if not prod.optional: - break - except AttributeError: - pass - return False - - def reset(self): - """Reset this Sequence if it is nested.""" - self._roundstarted = False - self._i = 0 - self._round = 0 - - def _currentName(self): - """Return current element of Sequence, used by name""" - # TODO: current impl first only if 1st if an prod! - for prod in self._prods[self._i:]: - if not prod.optional: - return str(prod) - else: - return 'Sequence' - - optional = property(lambda self: self._min == 0) - - def nextProd(self, token): - """Return - - - next matching Prod or Choice - - raises ParseError if nothing matches - - raises Exhausted if sequence already done - """ - while self._round < self._max: - # for this round - i = self._i - round = self._round - p = self._prods[i] - if i == 0: - self._roundstarted = False - - # for next round - self._i += 1 - if self._i == self._prodcount: - self._round += 1 - self._i = 0 - - if p.matches(token): - self._roundstarted = True - # reset nested Choice or Prod to use from start - p.reset() - return p - - elif p.optional: - continue - - elif round < self._min: - raise Missing(u'Missing token for production %s' % p) - - elif not token: - if self._roundstarted: - raise Missing(u'Missing token for production %s' % p) - else: - raise Done() - - else: - raise NoMatch(u'No matching production for token') - - if token: - raise Exhausted(u'Extra token') - - def __str__(self): - return u'Sequence(%s)' % u', '.join([str(x) for x in self._prods]) - - -class Prod(object): - """Single Prod in Sequence or Choice.""" - def __init__(self, name, match, optional=False, - toSeq=None, toStore=None, - stop=False, stopAndKeep=False, - nextSor=False, mayEnd=False): - """ - name - name used for error reporting - match callback - function called with parameters tokentype and tokenvalue - returning True, False or raising ParseError - toSeq callback (optional) or False - calling toSeq(token, tokens) returns (type_, val) == (token[0], token[1]) - to be appended to seq else simply unaltered (type_, val) - - if False nothing is added - - toStore (optional) - key to save util.Item to store or callback(store, util.Item) - optional = False - wether Prod is optional or not - stop = False - if True stop parsing of tokens here - stopAndKeep - if True stop parsing of tokens here but return stopping - token in unused tokens - nextSor=False - next is S or other like , or / (CSSValue) - mayEnd = False - no token must follow even defined by Sequence. - Used for operator ',/ ' currently only - """ - self._name = name - self.match = match - self.optional = optional - self.stop = stop - self.stopAndKeep = stopAndKeep - self.nextSor = nextSor - self.mayEnd = mayEnd - - def makeToStore(key): - "Return a function used by toStore." - def toStore(store, item): - "Set or append store item." - if key in store: - store[key].append(item) - else: - store[key] = item - return toStore - - if toSeq or toSeq is False: - # called: seq.append(toSeq(value)) - self.toSeq = toSeq - else: - self.toSeq = lambda t, tokens: (t[0], t[1]) - - if hasattr(toStore, '__call__'): - self.toStore = toStore - elif toStore: - self.toStore = makeToStore(toStore) - else: - # always set! - self.toStore = None - - def matches(self, token): - """Return if token matches.""" - if not token: - return False - type_, val, line, col = token - return self.match(type_, val) - - def reset(self): - pass - - def __str__(self): - return self._name - - def __repr__(self): - return "" % ( - self.__class__.__name__, self._name, id(self)) - - -# global tokenizer as there is only one! -tokenizer = cssutils.tokenize2.Tokenizer() - -class ProdParser(object): - """Productions parser.""" - def __init__(self, clear=True): - self.types = cssutils.cssproductions.CSSProductions - self._log = cssutils.log - if clear: - tokenizer.clear() - - def _texttotokens(self, text): - """Build a generator which is the only thing that is parsed! - old classes may use lists etc - """ - if isinstance(text, basestring): - # DEFAULT, to tokenize strip space - return tokenizer.tokenize(text.strip()) - - elif isinstance(text, tuple): - # OLD: (token, tokens) or a single token - if len(text) == 2: - # (token, tokens) - def gen(token, tokens): - "new generator appending token and tokens" - yield token - for t in tokens: - yield t - - return (t for t in gen(*text)) - - else: - # single token - return (t for t in [text]) - - elif isinstance(text, list): - # OLD: generator from list - return (t for t in text) - - else: - # DEFAULT, already tokenized, assume generator - return text - - def _SorTokens(self, tokens, until=',/'): - """New tokens generator which has S tokens removed, - if followed by anything in ``until``, normally a ``,``.""" - def removedS(tokens): - for token in tokens: - if token[0] == self.types.S: - try: - next_ = tokens.next() - except StopIteration: - yield token - else: - if next_[1] in until: - # omit S as e.g. ``,`` has been found - yield next_ - elif next_[0] == self.types.COMMENT: - # pass COMMENT - yield next_ - else: - yield token - yield next_ - - elif token[0] == self.types.COMMENT: - # pass COMMENT - yield token - else: - yield token - break - # normal mode again - for token in tokens: - yield token - - return (token for token in removedS(tokens)) - - def parse(self, text, name, productions, keepS=False, store=None): - """ - text (or token generator) - to parse, will be tokenized if not a generator yet - - may be: - - a string to be tokenized - - a single token, a tuple - - a tuple of (token, tokensGenerator) - - already tokenized so a tokens generator - - name - used for logging - productions - used to parse tokens - keepS - if WS should be added to Seq or just be ignored - store UPDATED - If a Prod defines ``toStore`` the key defined there - is a key in store to be set or if store[key] is a list - the next Item is appended here. - - TODO: NEEDED? : - Key ``raw`` is always added and holds all unprocessed - values found - - returns - :wellformed: True or False - :seq: a filled cssutils.util.Seq object which is NOT readonly yet - :store: filled keys defined by Prod.toStore - :unusedtokens: token generator containing tokens not used yet - """ - tokens = self._texttotokens(text) - if not tokens: - self._log.error(u'No content to parse.') - # TODO: return??? - - seq = cssutils.util.Seq(readonly=False) - if not store: # store for specific values - store = {} - prods = [productions] # stack of productions - wellformed = True - - # while no real token is found any S are ignored - started = False - prod = None - # flag if default S handling should be done - defaultS = True - while True: - try: - token = tokens.next() - except StopIteration: - break - type_, val, line, col = token - - # default productions - if type_ == self.types.COMMENT: - # always append COMMENT - seq.append(cssutils.css.CSSComment(val), - cssutils.css.CSSComment, line, col) - elif defaultS and type_ == self.types.S: - # append S (but ignore starting ones) - if not keepS or not started: - continue - else: - seq.append(val, type_, line, col) -# elif type_ == self.types.ATKEYWORD: -# # @rule -# r = cssutils.css.CSSUnknownRule(cssText=val) -# seq.append(r, type(r), line, col) - elif type_ == self.types.INVALID: - # invalidate parse - wellformed = False - self._log.error(u'Invalid token: %r' % (token,)) - break - elif type_ == 'EOF': - # do nothing? (self.types.EOF == True!) - pass - else: - started = True # check S now - nextSor = False # reset - - try: - while True: - # find next matching production - try: - prod = prods[-1].nextProd(token) - except (Exhausted, NoMatch), e: - # try next - prod = None - if isinstance(prod, Prod): - # found actual Prod, not a Choice or Sequence - break - elif prod: - # nested Sequence, Choice - prods.append(prod) - else: - # nested exhausted, try in parent - if len(prods) > 1: - prods.pop() - else: - raise ParseError('No match') - except ParseError, e: - wellformed = False - self._log.error(u'%s: %s: %r' % (name, e, token)) - break - else: - # process prod - if prod.toSeq and not prod.stopAndKeep: - type_, val = prod.toSeq(token, tokens) - if val is not None: - seq.append(val, type_, line, col) - if prod.toStore: - prod.toStore(store, seq[-1]) - - if prod.stop: # EOF? - # stop here and ignore following tokens - break - - if prod.stopAndKeep: # e.g. ; - # stop here and ignore following tokens - # but keep this token for next run - tokenizer.push(token) - break - - if prod.nextSor: - # following is S or other token (e.g. ",")? - # remove S if - tokens = self._SorTokens(tokens, ',/') - defaultS = False - else: - defaultS = True - - lastprod = prod - while True: - # all productions exhausted? - try: - prod = prods[-1].nextProd(token=None) - except Done, e: - # ok - prod = None - - except Missing, e: - prod = None - # last was a S operator which may End a Sequence, then ok - if hasattr(lastprod, 'mayEnd') and not lastprod.mayEnd: - wellformed = False - self._log.error(u'%s: %s' % (name, e)) - - except ParseError, e: - prod = None - wellformed = False - self._log.error(u'%s: %s' % (name, e)) - - else: - if prods[-1].optional: - prod = None - elif prod and prod.optional: - # ignore optional - continue - - if prod and not prod.optional: - wellformed = False - self._log.error(u'%s: Missing token for production %r' - % (name, str(prod))) - break - elif len(prods) > 1: - # nested exhausted, next in parent - prods.pop() - else: - break - - # trim S from end - seq.rstrip() - return wellformed, seq, store, tokens - - -class PreDef(object): - """Predefined Prod definition for use in productions definition - for ProdParser instances. - """ - types = cssutils.cssproductions.CSSProductions - - @staticmethod - def char(name='char', char=u',', toSeq=None, - stop=False, stopAndKeep=False, - optional=True, nextSor=False): - "any CHAR" - return Prod(name=name, match=lambda t, v: v == char, toSeq=toSeq, - stop=stop, stopAndKeep=stopAndKeep, optional=optional, - nextSor=nextSor) - - @staticmethod - def comma(): - return PreDef.char(u'comma', u',') - - @staticmethod - def dimension(nextSor=False): - return Prod(name=u'dimension', - match=lambda t, v: t == PreDef.types.DIMENSION, - toSeq=lambda t, tokens: (t[0], cssutils.helper.normalize(t[1])), - nextSor=nextSor) - - @staticmethod - def function(toSeq=None, nextSor=False): - return Prod(name=u'function', - match=lambda t, v: t == PreDef.types.FUNCTION, - toSeq=toSeq, - nextSor=nextSor) - - @staticmethod - def funcEnd(stop=False): - ")" - return PreDef.char(u'end FUNC ")"', u')', - stop=stop) - - @staticmethod - def ident(toStore=None, nextSor=False): - return Prod(name=u'ident', - match=lambda t, v: t == PreDef.types.IDENT, - toStore=toStore, - nextSor=nextSor) - - @staticmethod - def number(nextSor=False): - return Prod(name=u'number', - match=lambda t, v: t == PreDef.types.NUMBER, - nextSor=nextSor) - - @staticmethod - def string(nextSor=False): - "string delimiters are removed by default" - return Prod(name=u'string', - match=lambda t, v: t == PreDef.types.STRING, - toSeq=lambda t, tokens: (t[0], cssutils.helper.stringvalue(t[1])), - nextSor=nextSor) - - @staticmethod - def percentage(nextSor=False): - return Prod(name=u'percentage', - match=lambda t, v: t == PreDef.types.PERCENTAGE, - nextSor=nextSor) - - @staticmethod - def S(toSeq=None, optional=False): - return Prod(name=u'whitespace', - match=lambda t, v: t == PreDef.types.S, - toSeq=toSeq, - optional=optional, - mayEnd=True) - - @staticmethod - def unary(): - "+ or -" - return Prod(name=u'unary +-', match=lambda t, v: v in (u'+', u'-'), - optional=True) - - @staticmethod - def uri(nextSor=False): - "'url(' and ')' are removed and URI is stripped" - return Prod(name=u'URI', - match=lambda t, v: t == PreDef.types.URI, - toSeq=lambda t, tokens: (t[0], cssutils.helper.urivalue(t[1])), - nextSor=nextSor) - - @staticmethod - def hexcolor(nextSor=False): - "#123456" - return Prod(name='HEX color', - match=lambda t, v: t == PreDef.types.HASH and ( - len(v) == 4 or len(v) == 7), - nextSor=nextSor - ) - - @staticmethod - def unicode_range(nextSor=False): - "u+123456-abc normalized to lower `u`" - return Prod(name='unicode-range', - match=lambda t, v: t == PreDef.types.UNICODE_RANGE, - toSeq=lambda t, tokens: (t[0], t[1].lower()), - nextSor=nextSor - ) - - @staticmethod - def variable(toSeq=None, nextSor=False): - return Prod(name=u'variable', - match=lambda t, v: u'var(' == cssutils.helper.normalize(v), - toSeq=toSeq, - nextSor=nextSor) - diff --git a/src/cssutils/profiles.py b/src/cssutils/profiles.py deleted file mode 100644 index 09d1e9a007..0000000000 --- a/src/cssutils/profiles.py +++ /dev/null @@ -1,572 +0,0 @@ -"""CSS profiles. - -Profiles is based on code by Kevin D. Smith, orginally used as cssvalues, -thanks! -""" -__all__ = ['Profiles'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: cssproperties.py 1116 2008-03-05 13:52:23Z cthedot $' - -import re - -class NoSuchProfileException(Exception): - """Raised if no profile with given name is found""" - pass - - -class Profiles(object): - """ - All profiles used for validation. ``cssutils.profile`` is a - preset object of this class and used by all properties for validation. - - Predefined profiles are (use - :meth:`~cssutils.profiles.Profiles.propertiesByProfile` to - get a list of defined properties): - - :attr:`~cssutils.profiles.Profiles.CSS_LEVEL_2` - Properties defined by CSS2.1 - :attr:`~cssutils.profiles.Profiles.CSS3_COLOR` - CSS 3 color properties - :attr:`~cssutils.profiles.Profiles.CSS3_BOX` - Currently overflow related properties only - :attr:`~cssutils.profiles.Profiles.CSS3_PAGED_MEDIA` - As defined at http://www.w3.org/TR/css3-page/ (at 090307) - - Predefined macros are: - - :attr:`~cssutils.profiles.Profiles._TOKEN_MACROS` - Macros containing the token values as defined to CSS2 - :attr:`~cssutils.profiles.Profiles._MACROS` - Additional general macros. - - If you want to redefine any of these macros do this in your custom - macros. - """ - CSS_LEVEL_2 = 'CSS Level 2.1' - CSS3_BOX = CSS_BOX_LEVEL_3 = 'CSS Box Module Level 3' - CSS3_COLOR = CSS_COLOR_LEVEL_3 = 'CSS Color Module Level 3' - CSS3_FONTS = 'CSS Fonts Module Level 3' - CSS3_FONT_FACE = 'CSS Fonts Module Level 3 @font-face properties' - CSS3_PAGED_MEDIA = 'CSS3 Paged Media Module' - - _TOKEN_MACROS = { - 'ident': r'[-]?{nmstart}{nmchar}*', - 'name': r'{nmchar}+', - 'nmstart': r'[_a-z]|{nonascii}|{escape}', - 'nonascii': r'[^\0-\177]', - 'unicode': r'\\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])?', - 'escape': r'{unicode}|\\[ -~\200-\777]', - # 'escape': r'{unicode}|\\[ -~\200-\4177777]', - 'int': r'[-]?\d+', - 'nmchar': r'[\w-]|{nonascii}|{escape}', - 'num': r'[-]?\d+|[-]?\d*\.\d+', - 'positivenum': r'\d+|\d*\.\d+', - 'number': r'{num}', - 'string': r'{string1}|{string2}', - 'string1': r'"(\\\"|[^\"])*"', - 'uri': r'url\({w}({string}|(\\\)|[^\)])+){w}\)', - 'string2': r"'(\\\'|[^\'])*'", - 'nl': r'\n|\r\n|\r|\f', - 'w': r'\s*', - } - _MACROS = { - 'hexcolor': r'#[0-9a-f]{3}|#[0-9a-f]{6}', - 'rgbcolor': r'rgb\({w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgb\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w}\)', - 'namedcolor': r'(transparent|orange|maroon|red|orange|yellow|olive|purple|fuchsia|white|lime|green|navy|blue|aqua|teal|black|silver|gray)', - 'uicolor': r'(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)', - 'color': r'{namedcolor}|{hexcolor}|{rgbcolor}|{uicolor}', - #'color': r'(maroon|red|orange|yellow|olive|purple|fuchsia|white|lime|green|navy|blue|aqua|teal|black|silver|gray|ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)|#[0-9a-f]{3}|#[0-9a-f]{6}|rgb\({w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgb\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w}\)', - 'integer': r'{int}', - 'length': r'0|{num}(em|ex|px|in|cm|mm|pt|pc)', - 'positivelength': r'0|{positivenum}(em|ex|px|in|cm|mm|pt|pc)', - 'angle': r'0|{num}(deg|grad|rad)', - 'time': r'0|{num}m?s', - 'frequency': r'0|{num}k?Hz', - 'percentage': r'{num}%', - } - - def __init__(self, log=None): - """A few known profiles are predefined.""" - self._log = log - self._profileNames = [] # to keep order, REFACTOR! - self._profiles = {} - self._defaultProfiles = None - - self.addProfile(self.CSS_LEVEL_2, - properties[self.CSS_LEVEL_2], - macros[self.CSS_LEVEL_2]) - self.addProfile(self.CSS3_BOX, - properties[self.CSS3_BOX], - macros[self.CSS3_BOX]) - self.addProfile(self.CSS3_COLOR, - properties[self.CSS3_COLOR], - macros[self.CSS3_COLOR]) - - self.addProfile(self.CSS3_FONTS, - properties[self.CSS3_FONTS], - macros[self.CSS3_FONTS]) - - # new object for font-face only? - self.addProfile(self.CSS3_FONT_FACE, - properties[self.CSS3_FONT_FACE], - macros[self.CSS3_FONTS]) # same - - self.addProfile(self.CSS3_PAGED_MEDIA, - properties[self.CSS3_PAGED_MEDIA], - macros[self.CSS3_PAGED_MEDIA]) - - self.__update_knownNames() - - def _expand_macros(self, dictionary, macros): - """Expand macros in token dictionary""" - def macro_value(m): - return '(?:%s)' % macros[m.groupdict()['macro']] - for key, value in dictionary.items(): - if not hasattr(value, '__call__'): - while re.search(r'{[a-z][a-z0-9-]*}', value): - value = re.sub(r'{(?P[a-z][a-z0-9-]*)}', - macro_value, value) - dictionary[key] = value - return dictionary - - def _compile_regexes(self, dictionary): - """Compile all regular expressions into callable objects""" - for key, value in dictionary.items(): - if not hasattr(value, '__call__'): - value = re.compile('^(?:%s)$' % value, re.I).match - dictionary[key] = value - - return dictionary - - def __update_knownNames(self): - self._knownNames = [] - for properties in self._profiles.values(): - self._knownNames.extend(properties.keys()) - - def _getDefaultProfiles(self): - "If not explicitly set same as Profiles.profiles but in reverse order." - if not self._defaultProfiles: - return self.profiles - else: - return self._defaultProfiles - - def _setDefaultProfiles(self, profiles): - "profiles may be a single or a list of profile names" - if isinstance(profiles, basestring): - self._defaultProfiles = (profiles,) - else: - self._defaultProfiles = profiles - - defaultProfiles = property(_getDefaultProfiles, - _setDefaultProfiles, - doc=u"Names of profiles to use for validation." - u"To use e.g. the CSS2 profile set " - u"``cssutils.profile.defaultProfiles = " - u"cssutils.profile.CSS_LEVEL_2``") - - profiles = property(lambda self: self._profileNames, - doc=u'Names of all profiles in order as defined.') - - knownNames = property(lambda self: self._knownNames, - doc="All known property names of all profiles.") - - def addProfile(self, profile, properties, macros=None): - """Add a new profile with name `profile` (e.g. 'CSS level 2') - and the given `properties`. - - :param profile: - the new `profile`'s name - :param properties: - a dictionary of ``{ property-name: propery-value }`` items where - property-value is a regex which may use macros defined in given - ``macros`` or the standard macros Profiles.tokens and - Profiles.generalvalues. - - ``propery-value`` may also be a function which takes a single - argument which is the value to validate and which should return - True or False. - Any exceptions which may be raised during this custom validation - are reported or raised as all other cssutils exceptions depending - on cssutils.log.raiseExceptions which e.g during parsing normally - is False so the exceptions would be logged only. - :param macros: - may be used in the given properties definitions. There are some - predefined basic macros which may always be used in - :attr:`Profiles._TOKEN_MACROS` and :attr:`Profiles._MACROS`. - """ - if not macros: - macros = {} - m = Profiles._TOKEN_MACROS.copy() - m.update(Profiles._MACROS) - m.update(macros) - properties = self._expand_macros(properties, m) - self._profileNames.append(profile) - self._profiles[profile] = self._compile_regexes(properties) - - self.__update_knownNames() - - def removeProfile(self, profile=None, all=False): - """Remove `profile` or remove `all` profiles. - - :param profile: - profile name to remove - :param all: - if ``True`` removes all profiles to start with a clean state - :exceptions: - - :exc:`cssutils.profiles.NoSuchProfileException`: - If given `profile` cannot be found. - """ - if all: - self._profiles.clear() - del self._profileNames[:] - else: - try: - del self._profiles[profile] - del self._profileNames[self._profileNames.index(profile)] - except KeyError: - raise NoSuchProfileException(u'No profile %r.' % profile) - - self.__update_knownNames() - - def propertiesByProfile(self, profiles=None): - """Generator: Yield property names, if no `profiles` is given all - profile's properties are used. - - :param profiles: - a single profile name or a list of names. - """ - if not profiles: - profiles = self.profiles - elif isinstance(profiles, basestring): - profiles = (profiles, ) - try: - for profile in sorted(profiles): - for name in sorted(self._profiles[profile].keys()): - yield name - except KeyError, e: - raise NoSuchProfileException(e) - - def validate(self, name, value): - """Check if `value` is valid for given property `name` using **any** - profile. - - :param name: - a property name - :param value: - a CSS value (string) - :returns: - if the `value` is valid for the given property `name` in any - profile - """ - for profile in self.profiles: - if name in self._profiles[profile]: - try: - # custom validation errors are caught - r = bool(self._profiles[profile][name](value)) - except Exception, e: - self._log.error(e, error=Exception) - return False - if r: - return r - return False - - def validateWithProfile(self, name, value, profiles=None): - """Check if `value` is valid for given property `name` returning - ``(valid, profile)``. - - :param name: - a property name - :param value: - a CSS value (string) - :param profiles: - internal parameter used by Property.validate only - :returns: - ``valid, matching, profiles`` where ``valid`` is if the `value` - is valid for the given property `name` in any profile, - ``matching==True`` if it is valid in the given `profiles` - and ``profiles`` the profile names for which the value is valid - (or ``[]`` if not valid at all) - - Example:: - - >>> cssutils.profile.defaultProfiles = cssutils.profile.CSS_LEVEL_2 - >>> print cssutils.profile.validateWithProfile('color', 'rgba(1,1,1,1)') - (True, False, Profiles.CSS3_COLOR) - """ - if name not in self.knownNames: - return False, False, [] - else: - if not profiles: - profiles = self.defaultProfiles - elif isinstance(profiles, basestring): - profiles = (profiles, ) - - for profilename in profiles: - # check given profiles - if name in self._profiles[profilename]: - validate = self._profiles[profilename][name] - try: - if validate(value): - return True, True, [profilename] - except Exception, e: - self._log.error(e, error=Exception) - - for profilename in (p for p in self._profileNames - if p not in profiles): - # check remaining profiles as well - if name in self._profiles[profilename]: - validate = self._profiles[profilename][name] - try: - if validate(value): - return True, False, [profilename] - except Exception, e: - self._log.error(e, error=Exception) - - names = [] - for profilename, properties in self._profiles.items(): - # return profile to which name belongs - if name in properties.keys(): - names.append(profilename) - names.sort() - return False, False, names - - -properties = {} -macros = {} -""" -Define some regular expression fragments that will be used as -macros within the CSS property value regular expressions. -""" -macros[Profiles.CSS_LEVEL_2] = { - 'border-style': 'none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset', - 'border-color': '{color}', - 'border-width': '{length}|thin|medium|thick', - - 'background-color': r'{color}|transparent|inherit', - 'background-image': r'{uri}|none|inherit', - #'background-position': r'({percentage}|{length})(\s*({percentage}|{length}))?|((top|center|bottom)\s*(left|center|right)?)|((left|center|right)\s*(top|center|bottom)?)|inherit', - 'background-position': r'({percentage}|{length}|left|center|right)(\s*({percentage}|{length}|top|center|bottom))?|((top|center|bottom)\s*(left|center|right)?)|((left|center|right)\s*(top|center|bottom)?)|inherit', - 'background-repeat': r'repeat|repeat-x|repeat-y|no-repeat|inherit', - 'background-attachment': r'scroll|fixed|inherit', - - 'shape': r'rect\(({w}({length}|auto}){w},){3}{w}({length}|auto){w}\)', - 'counter': r'counter\({w}{identifier}{w}(?:,{w}{list-style-type}{w})?\)', - 'identifier': r'{ident}', - 'family-name': r'{string}|{identifier}({w}{identifier})*', - 'generic-family': r'serif|sans-serif|cursive|fantasy|monospace', - 'absolute-size': r'(x?x-)?(small|large)|medium', - 'relative-size': r'smaller|larger', - 'font-family': r'(({family-name}|{generic-family}){w},{w})*({family-name}|{generic-family})|inherit', - 'font-size': r'{absolute-size}|{relative-size}|{positivelength}|{percentage}|inherit', - 'font-style': r'normal|italic|oblique|inherit', - 'font-variant': r'normal|small-caps|inherit', - 'font-weight': r'normal|bold|bolder|lighter|[1-9]00|inherit', - 'line-height': r'normal|{number}|{length}|{percentage}|inherit', - 'list-style-image': r'{uri}|none|inherit', - 'list-style-position': r'inside|outside|inherit', - 'list-style-type': r'disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-(latin|alpha)|upper-(latin|alpha)|armenian|georgian|none|inherit', - 'margin-width': r'{length}|{percentage}|auto', - 'outline-color': r'{color}|invert|inherit', - 'outline-style': r'{border-style}|inherit', - 'outline-width': r'{border-width}|inherit', - 'padding-width': r'{length}|{percentage}', - 'specific-voice': r'{identifier}', - 'generic-voice': r'male|female|child', - 'content': r'{string}|{uri}|{counter}|attr\({w}{identifier}{w}\)|open-quote|close-quote|no-open-quote|no-close-quote', - 'border-attrs': r'{border-width}|{border-style}|{border-color}', - 'background-attrs': r'{background-color}|{background-image}|{background-repeat}|{background-attachment}|{background-position}', - 'list-attrs': r'{list-style-type}|{list-style-position}|{list-style-image}', - 'font-attrs': r'{font-style}|{font-variant}|{font-weight}', - 'outline-attrs': r'{outline-color}|{outline-style}|{outline-width}', - 'text-attrs': r'underline|overline|line-through|blink', - 'overflow': r'visible|hidden|scroll|auto|inherit', -} - -""" -Define the regular expressions for validation all CSS values -""" -properties[Profiles.CSS_LEVEL_2] = { - 'azimuth': r'{angle}|(behind\s+)?(left-side|far-left|left|center-left|center|center-right|right|far-right|right-side)(\s+behind)?|behind|leftwards|rightwards|inherit', - 'background-attachment': r'{background-attachment}', - 'background-color': r'{background-color}', - 'background-image': r'{background-image}', - 'background-position': r'{background-position}', - 'background-repeat': r'{background-repeat}', - # Each piece should only be allowed one time - 'background': r'{background-attrs}(\s+{background-attrs})*|inherit', - 'border-collapse': r'collapse|separate|inherit', - 'border-color': r'({border-color}|transparent)(\s+({border-color}|transparent)){0,3}|inherit', - 'border-spacing': r'{length}(\s+{length})?|inherit', - 'border-style': r'{border-style}(\s+{border-style}){0,3}|inherit', - 'border-top': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-right': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-bottom': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-left': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'border-top-color': r'{border-color}|transparent|inherit', - 'border-right-color': r'{border-color}|transparent|inherit', - 'border-bottom-color': r'{border-color}|transparent|inherit', - 'border-left-color': r'{border-color}|transparent|inherit', - 'border-top-style': r'{border-style}|inherit', - 'border-right-style': r'{border-style}|inherit', - 'border-bottom-style': r'{border-style}|inherit', - 'border-left-style': r'{border-style}|inherit', - 'border-top-width': r'{border-width}|inherit', - 'border-right-width': r'{border-width}|inherit', - 'border-bottom-width': r'{border-width}|inherit', - 'border-left-width': r'{border-width}|inherit', - 'border-width': r'{border-width}(\s+{border-width}){0,3}|inherit', - 'border': r'{border-attrs}(\s+{border-attrs})*|inherit', - 'bottom': r'{length}|{percentage}|auto|inherit', - 'caption-side': r'top|bottom|inherit', - 'clear': r'none|left|right|both|inherit', - 'clip': r'{shape}|auto|inherit', - 'color': r'{color}|inherit', - 'content': r'none|normal|{content}(\s+{content})*|inherit', - 'counter-increment': r'({identifier}(\s+{integer})?)(\s+({identifier}(\s+{integer})))*|none|inherit', - 'counter-reset': r'({identifier}(\s+{integer})?)(\s+({identifier}(\s+{integer})))*|none|inherit', - 'cue-after': r'{uri}|none|inherit', - 'cue-before': r'{uri}|none|inherit', - 'cue': r'({uri}|none|inherit){1,2}|inherit', - 'cursor': r'((({uri}{w},{w})*)?(auto|crosshair|default|pointer|move|(e|ne|nw|n|se|sw|s|w)-resize|text|wait|help|progress))|inherit', - 'direction': r'ltr|rtl|inherit', - 'display': r'inline|block|list-item|run-in|inline-block|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|none|inherit', - 'elevation': r'{angle}|below|level|above|higher|lower|inherit', - 'empty-cells': r'show|hide|inherit', - 'float': r'left|right|none|inherit', - 'font-family': r'{font-family}', - 'font-size': r'{font-size}', - 'font-style': r'{font-style}', - 'font-variant': r'{font-variant}', - 'font-weight': r'{font-weight}', - 'font': r'({font-attrs}\s+)*{font-size}({w}/{w}{line-height})?\s+{font-family}|caption|icon|menu|message-box|small-caption|status-bar|inherit', - 'height': r'{length}|{percentage}|auto|inherit', - 'left': r'{length}|{percentage}|auto|inherit', - 'letter-spacing': r'normal|{length}|inherit', - 'line-height': r'{line-height}', - 'list-style-image': r'{list-style-image}', - 'list-style-position': r'{list-style-position}', - 'list-style-type': r'{list-style-type}', - 'list-style': r'{list-attrs}(\s+{list-attrs})*|inherit', - 'margin-right': r'{margin-width}|inherit', - 'margin-left': r'{margin-width}|inherit', - 'margin-top': r'{margin-width}|inherit', - 'margin-bottom': r'{margin-width}|inherit', - 'margin': r'{margin-width}(\s+{margin-width}){0,3}|inherit', - 'max-height': r'{length}|{percentage}|none|inherit', - 'max-width': r'{length}|{percentage}|none|inherit', - 'min-height': r'{length}|{percentage}|none|inherit', - 'min-width': r'{length}|{percentage}|none|inherit', - 'orphans': r'{integer}|inherit', - 'outline-color': r'{outline-color}', - 'outline-style': r'{outline-style}', - 'outline-width': r'{outline-width}', - 'outline': r'{outline-attrs}(\s+{outline-attrs})*|inherit', - 'overflow': r'{overflow}', - 'padding-top': r'{padding-width}|inherit', - 'padding-right': r'{padding-width}|inherit', - 'padding-bottom': r'{padding-width}|inherit', - 'padding-left': r'{padding-width}|inherit', - 'padding': r'{padding-width}(\s+{padding-width}){0,3}|inherit', - 'page-break-after': r'auto|always|avoid|left|right|inherit', - 'page-break-before': r'auto|always|avoid|left|right|inherit', - 'page-break-inside': r'avoid|auto|inherit', - 'pause-after': r'{time}|{percentage}|inherit', - 'pause-before': r'{time}|{percentage}|inherit', - 'pause': r'({time}|{percentage}){1,2}|inherit', - 'pitch-range': r'{number}|inherit', - 'pitch': r'{frequency}|x-low|low|medium|high|x-high|inherit', - 'play-during': r'{uri}(\s+(mix|repeat))*|auto|none|inherit', - 'position': r'static|relative|absolute|fixed|inherit', - 'quotes': r'({string}\s+{string})(\s+{string}\s+{string})*|none|inherit', - 'richness': r'{number}|inherit', - 'right': r'{length}|{percentage}|auto|inherit', - 'speak-header': r'once|always|inherit', - 'speak-numeral': r'digits|continuous|inherit', - 'speak-punctuation': r'code|none|inherit', - 'speak': r'normal|none|spell-out|inherit', - 'speech-rate': r'{number}|x-slow|slow|medium|fast|x-fast|faster|slower|inherit', - 'stress': r'{number}|inherit', - 'table-layout': r'auto|fixed|inherit', - 'text-align': r'left|right|center|justify|inherit', - 'text-decoration': r'none|{text-attrs}(\s+{text-attrs})*|inherit', - 'text-indent': r'{length}|{percentage}|inherit', - 'text-transform': r'capitalize|uppercase|lowercase|none|inherit', - 'top': r'{length}|{percentage}|auto|inherit', - 'unicode-bidi': r'normal|embed|bidi-override|inherit', - 'vertical-align': r'baseline|sub|super|top|text-top|middle|bottom|text-bottom|{percentage}|{length}|inherit', - 'visibility': r'visible|hidden|collapse|inherit', - 'voice-family': r'({specific-voice}|{generic-voice}{w},{w})*({specific-voice}|{generic-voice})|inherit', - 'volume': r'{number}|{percentage}|silent|x-soft|soft|medium|loud|x-loud|inherit', - 'white-space': r'normal|pre|nowrap|pre-wrap|pre-line|inherit', - 'widows': r'{integer}|inherit', - 'width': r'{length}|{percentage}|auto|inherit', - 'word-spacing': r'normal|{length}|inherit', - 'z-index': r'auto|{integer}|inherit', -} - -# CSS Box Module Level 3 -macros[Profiles.CSS3_BOX] = { - 'overflow': macros[Profiles.CSS_LEVEL_2]['overflow'] - } -properties[Profiles.CSS3_BOX] = { - 'overflow': '{overflow}{w}{overflow}?|inherit', - 'overflow-x': '{overflow}|inherit', - 'overflow-y': '{overflow}|inherit' - } - -# CSS Color Module Level 3 -macros[Profiles.CSS3_COLOR] = { - # orange and transparent in CSS 2.1 - 'namedcolor': r'(currentcolor|transparent|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)', - # orange? - 'rgbacolor': r'rgba\({w}{int}{w},{w}{int}{w},{w}{int}{w},{w}{int}{w}\)|rgba\({w}{num}%{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)', - 'hslcolor': r'hsl\({w}{int}{w},{w}{num}%{w},{w}{num}%{w}\)|hsla\({w}{int}{w},{w}{num}%{w},{w}{num}%{w},{w}{num}{w}\)', - 'x11color': r'aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen', - 'uicolor': r'(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)', - } -properties[Profiles.CSS3_COLOR] = { - 'color': r'{namedcolor}|{hexcolor}|{rgbcolor}|{rgbacolor}|{hslcolor}|inherit', - 'opacity': r'{num}|inherit' - } - -# CSS Fonts Module Level 3 http://www.w3.org/TR/css3-fonts/ -macros[Profiles.CSS3_FONTS] = { - 'family-name': r'{string}|{ident}', # but STRING is effectively an IDENT??? - 'font-face-name': 'local\({w}{ident}{w}\)', - 'font-stretch-names': r'(ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded)', - 'unicode-range': r'[uU]\+[0-9A-Fa-f?]{1,6}(\-[0-9A-Fa-f]{1,6})?' - } -properties[Profiles.CSS3_FONTS] = { - 'font-size-adjust': r'{number}|none|inherit', - 'font-stretch': r'normal|wider|narrower|{font-stretch-names}|inherit' - } -properties[Profiles.CSS3_FONT_FACE] = { - 'font-family': '{family-name}', - 'font-stretch': r'{font-stretch-names}', - 'font-style': r'normal|italic|oblique', - 'font-weight': r'normal|bold|[1-9]00', - 'src': r'({uri}{w}(format\({w}{string}{w}(\,{w}{string}{w})*\))?|{font-face-name})({w},{w}({uri}{w}(format\({w}{string}{w}(\,{w}{string}{w})*\))?|{font-face-name}))*', - 'unicode-range': '{unicode-range}({w},{w}{unicode-range})*' - } - - - -# CSS3 Paged Media -macros[Profiles.CSS3_PAGED_MEDIA] = { - 'pagesize': 'a5|a4|a3|b5|b4|letter|legal|ledger', - 'pagebreak': 'auto|always|avoid|left|right' - } -properties[Profiles.CSS3_PAGED_MEDIA] = { - 'fit': 'fill|hidden|meet|slice', - 'fit-position': r'auto|(({percentage}|{length})(\s*({percentage}|{length}))?|((top|center|bottom)\s*(left|center|right)?)|((left|center|right)\s*(top|center|bottom)?))', - 'image-orientation': 'auto|{angle}', - 'orphans': r'{integer}|inherit', - 'page': 'auto|{ident}', - 'page-break-before': '{pagebreak}|inherit', - 'page-break-after': '{pagebreak}|inherit', - 'page-break-inside': 'auto|avoid|inherit', - 'size': '({length}{w}){1,2}|auto|{pagesize}{w}(?:portrait|landscape)', - 'widows': r'{integer}|inherit' - } - - diff --git a/src/cssutils/sac.py b/src/cssutils/sac.py deleted file mode 100644 index 4e4fe0990f..0000000000 --- a/src/cssutils/sac.py +++ /dev/null @@ -1,428 +0,0 @@ -#!/usr/bin/env python -"""A validating CSSParser""" -__all__ = ['CSSParser'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1754 2009-05-30 14:50:13Z cthedot $' - -import helper -import codecs -import errorhandler -import os -import tokenize2 -import urllib -import sys - - -class ErrorHandler(object): - """Basic class for CSS error handlers. - - This class class provides a default implementation ignoring warnings and - recoverable errors and throwing a SAXParseException for fatal errors. - - If a CSS application needs to implement customized error handling, it must - extend this class and then register an instance with the CSS parser - using the parser's setErrorHandler method. The parser will then report all - errors and warnings through this interface. - - The parser shall use this class instead of throwing an exception: it is - up to the application whether to throw an exception for different types of - errors and warnings. Note, however, that there is no requirement that the - parser continue to provide useful information after a call to fatalError - (in other words, a CSS driver class could catch an exception and report a - fatalError). - """ - def __init__(self): - self._log = errorhandler.ErrorHandler() - - def error(self, exception, token=None): - self._log.error(exception, token, neverraise=True) - - def fatal(self, exception, token=None): - self._log.fatal(exception, token) - - def warn(self, exception, token=None): - self._log.warn(exception, token, neverraise=True) - - -class DocumentHandler(object): - """ - void endFontFace() - Receive notification of the end of a font face statement. - void endMedia(SACMediaList media) - Receive notification of the end of a media statement. - void endPage(java.lang.String name, java.lang.String pseudo_page) - Receive notification of the end of a media statement. - void importStyle(java.lang.String uri, SACMediaList media, java.lang.String defaultNamespaceURI) - Receive notification of a import statement in the style sheet. - void startFontFace() - Receive notification of the beginning of a font face statement. - void startMedia(SACMediaList media) - Receive notification of the beginning of a media statement. - void startPage(java.lang.String name, java.lang.String pseudo_page) - Receive notification of the beginning of a page statement. - """ - def __init__(self): - def log(msg): - sys.stderr.write('INFO\t%s\n' % msg) - self._log = log - - def comment(self, text, line=None, col=None): - "Receive notification of a comment." - self._log("comment %r at [%s, %s]" % (text, line, col)) - - def startDocument(self, encoding): - "Receive notification of the beginning of a style sheet." - # source - self._log("startDocument encoding=%s" % encoding) - - def endDocument(self, source=None, line=None, col=None): - "Receive notification of the end of a document." - self._log("endDocument EOF") - - def importStyle(self, uri, media, name, line=None, col=None): - "Receive notification of a import statement in the style sheet." - # defaultNamespaceURI??? - self._log("importStyle at [%s, %s]" % (line, col)) - - def namespaceDeclaration(self, prefix, uri, line=None, col=None): - "Receive notification of an unknown rule t-rule not supported by this parser." - # prefix might be None! - self._log("namespaceDeclaration at [%s, %s]" % (line, col)) - - def startSelector(self, selectors=None, line=None, col=None): - "Receive notification of the beginning of a rule statement." - # TODO selectorList! - self._log("startSelector at [%s, %s]" % (line, col)) - - def endSelector(self, selectors=None, line=None, col=None): - "Receive notification of the end of a rule statement." - self._log("endSelector at [%s, %s]" % (line, col)) - - def property(self, name, value='TODO', important=False, line=None, col=None): - "Receive notification of a declaration." - # TODO: value is LexicalValue? - self._log("property %r at [%s, %s]" % (name, line, col)) - - def ignorableAtRule(self, atRule, line=None, col=None): - "Receive notification of an unknown rule t-rule not supported by this parser." - self._log("ignorableAtRule %r at [%s, %s]" % (atRule, line, col)) - - - -class EchoHandler(DocumentHandler): - "Echos all input to property `out`" - def __init__(self): - super(EchoHandler, self).__init__() - self._out = [] - - out = property(lambda self: u''.join(self._out)) - - def startDocument(self, encoding): - super(EchoHandler, self).startDocument(encoding) - if u'utf-8' != encoding: - self._out.append(u'@charset "%s";\n' % encoding) - -# def comment(self, text, line=None, col=None): -# self._out.append(u'/*%s*/' % text) - - def importStyle(self, uri, media, name, line=None, col=None): - "Receive notification of a import statement in the style sheet." - # defaultNamespaceURI??? - super(EchoHandler, self).importStyle(uri, media, name, line, col) - self._out.append(u'@import %s%s%s;\n' % (helper.string(uri), - u'%s ' % media if media else u'', - u'%s ' % name if name else u'') - ) - - - def namespaceDeclaration(self, prefix, uri, line=None, col=None): - super(EchoHandler, self).namespaceDeclaration(prefix, uri, line, col) - self._out.append(u'@namespace %s%s;\n' % (u'%s ' % prefix if prefix else u'', - helper.string(uri))) - - def startSelector(self, selectors=None, line=None, col=None): - super(EchoHandler, self).startSelector(selectors, line, col) - if selectors: - self._out.append(u', '.join(selectors)) - self._out.append(u' {\n') - - def endSelector(self, selectors=None, line=None, col=None): - self._out.append(u' }') - - def property(self, name, value, important=False, line=None, col=None): - super(EchoHandler, self).property(name, value, line, col) - self._out.append(u' %s: %s%s;\n' % (name, value, - u' !important' if important else u'')) - - -class Parser(object): - """ - java.lang.String getParserVersion() - Returns a string about which CSS language is supported by this parser. - boolean parsePriority(InputSource source) - Parse a CSS priority value (e.g. - LexicalUnit parsePropertyValue(InputSource source) - Parse a CSS property value. - void parseRule(InputSource source) - Parse a CSS rule. - SelectorList parseSelectors(InputSource source) - Parse a comma separated list of selectors. - void parseStyleDeclaration(InputSource source) - Parse a CSS style declaration (without '{' and '}'). - void parseStyleSheet(InputSource source) - Parse a CSS document. - void parseStyleSheet(java.lang.String uri) - Parse a CSS document from a URI. - void setConditionFactory(ConditionFactory conditionFactory) - - void setDocumentHandler(DocumentHandler handler) - Allow an application to register a document event handler. - void setErrorHandler(ErrorHandler handler) - Allow an application to register an error event handler. - void setLocale(java.util.Locale locale) - Allow an application to request a locale for errors and warnings. - void setSelectorFactory(SelectorFactory selectorFactory) - """ - def __init__(self, documentHandler=None, errorHandler=None): - self._tokenizer = tokenize2.Tokenizer() - if documentHandler: - self.setDocumentHandler(documentHandler) - else: - self.setDocumentHandler(DocumentHandler()) - - if errorHandler: - self.setErrorHandler(errorHandler) - else: - self.setErrorHandler(ErrorHandler()) - - def parseString(self, cssText, encoding=None): - if isinstance(cssText, str): - cssText = codecs.getdecoder('css')(cssText, encoding=encoding)[0] - - tokens = self._tokenizer.tokenize(cssText, fullsheet=True) - - def COMMENT(val, line, col): - self._handler.comment(val[2:-2], line, col) - - def EOF(val, line, col): - self._handler.endDocument(val, line, col) - - def simple(t): - map = {'COMMENT': COMMENT, - 'S': lambda val, line, col: None, - 'EOF': EOF} - type_, val, line, col = t - if type_ in map: - map[type_](val, line, col) - return True - else: - return False - - # START PARSING - t = tokens.next() - type_, val, line, col = t - - encoding = 'utf-8' - if 'CHARSET_SYM' == type_: - # @charset "encoding"; - # S - encodingtoken = tokens.next() - semicolontoken = tokens.next() - if 'STRING' == type_: - encoding = helper.stringvalue(val) - # ; - if 'STRING' == encodingtoken[0] and semicolontoken: - encoding = helper.stringvalue(encodingtoken[1]) - else: - self._errorHandler.fatal(u'Invalid @charset') - - t = tokens.next() - type_, val, line, col = t - - self._handler.startDocument(encoding) - - while True: - start = (line, col) - try: - if simple(t): - pass - - elif 'ATKEYWORD' == type_ or type_ in ('PAGE_SYM', 'MEDIA_SYM', 'FONT_FACE_SYM'): - atRule = [val] - braces = 0 - while True: - # read till end ; - # TODO: or {} - t = tokens.next() - type_, val, line, col = t - atRule.append(val) - if u';' == val and not braces: - break - elif u'{' == val: - braces += 1 - elif u'}' == val: - braces -= 1 - if braces == 0: - break - - self._handler.ignorableAtRule(u''.join(atRule), *start) - - elif 'IMPORT_SYM' == type_: - # import URI or STRING media? name? - uri, media, name = None, None, None - while True: - t = tokens.next() - type_, val, line, col = t - if 'STRING' == type_: - uri = helper.stringvalue(val) - elif 'URI' == type_: - uri = helper.urivalue(val) - elif u';' == val: - break - - if uri: - self._handler.importStyle(uri, media, name) - else: - self._errorHandler.error(u'Invalid @import' - u' declaration at %r' - % (start,)) - - elif 'NAMESPACE_SYM' == type_: - prefix, uri = None, None - while True: - t = tokens.next() - type_, val, line, col = t - if 'IDENT' == type_: - prefix = val - elif 'STRING' == type_: - uri = helper.stringvalue(val) - elif 'URI' == type_: - uri = helper.urivalue(val) - elif u';' == val: - break - if uri: - self._handler.namespaceDeclaration(prefix, uri, *start) - else: - self._errorHandler.error(u'Invalid @namespace' - u' declaration at %r' - % (start,)) - - else: - # CSSSTYLERULE - selector = [] - selectors = [] - while True: - # selectors[, selector]* { - if 'S' == type_: - selector.append(u' ') - elif simple(t): - pass - elif u',' == val: - selectors.append(u''.join(selector).strip()) - selector = [] - elif u'{' == val: - selectors.append(u''.join(selector).strip()) - self._handler.startSelector(selectors, *start) - break - else: - selector.append(val) - - t = tokens.next() - type_, val, line, col = t - - end = None - while True: - # name: value [!important][;name: value [!important]]*;? - name, value, important = None, [], False - - while True: - # name: - t = tokens.next() - type_, val, line, col = t - if 'S' == type_: - pass - elif simple(t): - pass - elif 'IDENT' == type_: - if name: - self._errorHandler.error('more than one property name', t) - else: - name = val - elif u':' == val: - if not name: - self._errorHandler.error('no property name', t) - break - elif u';' == val: - self._errorHandler.error('premature end of property', t) - end = val - break - elif u'}' == val: - if name: - self._errorHandler.error('premature end of property', t) - end = val - break - else: - self._errorHandler.error('unexpected property name token %r' % val, t) - - while not u';' == end and not u'}' == end: - # value !;} - t = tokens.next() - type_, val, line, col = t - - if 'S' == type_: - value.append(u' ') - elif simple(t): - pass - elif u'!' == val or u';' == val or u'}' == val: - value = ''.join(value).strip() - if not value: - self._errorHandler.error('premature end of property (no value)', t) - end = val - break - else: - value.append(val) - - while u'!' == end: - # !important - t = tokens.next() - type_, val, line, col = t - - if simple(t): - pass - elif u'IDENT' == type_ and not important: - important = True - elif u';' == val or u'}' == val: - end = val - break - else: - self._errorHandler.error('unexpected priority token %r' % val) - - if name and value: - self._handler.property(name, value, important) - - if u'}' == end: - self._handler.endSelector(selectors, line=line, col=col) - break - else: - # reset - end = None - - else: - self._handler.endSelector(selectors, line=line, col=col) - - t = tokens.next() - type_, val, line, col = t - - except StopIteration: - break - - - - def setDocumentHandler(self, handler): - "Allow an application to register a document event `handler`." - self._handler = handler - - def setErrorHandler(self, handler): - "TODO" - self._errorHandler = handler - \ No newline at end of file diff --git a/src/cssutils/script.py b/src/cssutils/script.py deleted file mode 100644 index 9e5e5b0497..0000000000 --- a/src/cssutils/script.py +++ /dev/null @@ -1,354 +0,0 @@ -"""classes and functions used by cssutils scripts -""" -__all__ = ['CSSCapture', 'csscombine'] -__docformat__ = 'restructuredtext' -__version__ = '$Id: parse.py 1323 2008-07-06 18:13:57Z cthedot $' - -import HTMLParser -import codecs -import cssutils -import errno -import logging -import os -import sys -import urllib2 -import urlparse - -try: - import cssutils.encutils as encutils -except ImportError: - try: - import encutils - except ImportError: - sys.exit("You need encutils from http://cthedot.de/encutils/") - -# types of sheets in HTML -LINK = 0 # -STYLE = 1 # - -class CSSCaptureHTMLParser(HTMLParser.HTMLParser): - """CSSCapture helper: Parse given data for link and style elements""" - curtag = u'' - sheets = [] # (type, [atts, cssText]) - - def _loweratts(self, atts): - return dict([(a.lower(), v.lower()) for a, v in atts]) - - def handle_starttag(self, tag, atts): - if tag == u'link': - atts = self._loweratts(atts) - if u'text/css' == atts.get(u'type', u''): - self.sheets.append((LINK, atts)) - elif tag == u'style': - # also get content of style - atts = self._loweratts(atts) - if u'text/css' == atts.get(u'type', u''): - self.sheets.append((STYLE, [atts, u''])) - self.curtag = tag - else: - # close as only intersting

Book Title